From cf2ac83ea865c52639d9efeaad1f03f54d4d4edd Mon Sep 17 00:00:00 2001
From: kj_sh604
Date: Sat, 18 Apr 2026 14:53:14 -0400
Subject: fix: highlighting for some languages
also makes highlighting safer and more secure
---
src/server.py | 38 ++++++++++++++++++++++++++++++++++++--
1 file changed, 36 insertions(+), 2 deletions(-)
diff --git a/src/server.py b/src/server.py
index 303c1bf..1946439 100644
--- a/src/server.py
+++ b/src/server.py
@@ -595,6 +595,7 @@ def paste_page(paste, csp_nonce):
paste_id_json = json.dumps(paste_id)
code_lang_class = f"language-{language}" if language else ""
code_lang_class_json = json.dumps(code_lang_class)
+ language_json = json.dumps(language)
script_nonce_attr = f' nonce="{html_escape_attr(csp_nonce)}"'
@@ -650,7 +651,13 @@ def paste_page(paste, csp_nonce):
codeInner.textContent = data.content;
codeEl.appendChild(codeInner);
el.appendChild(codeEl);
- hljs.highlightElement(codeInner);
+ const ready = window.kjClipboardHighlightReady;
+ if (ready && typeof ready.then === "function") {{
+ await ready;
+ }}
+ if (window.hljs && typeof hljs.highlightElement === "function") {{
+ hljs.highlightElement(codeInner);
+ }}
'''}
{"" if is_code else '''
const pre = document.createElement("pre");
@@ -676,7 +683,34 @@ def paste_page(paste, csp_nonce):
if is_code:
highlight_css = ''
highlight_js = f"""
- """
+ """
return f"""
--
cgit v1.2.3