From 636d4c919e6aedaeb59bae8ed0db3b4cd62fd8ee Mon Sep 17 00:00:00 2001 From: ComputerTech Date: Mon, 6 Apr 2026 18:00:46 +0100 Subject: [PATCH] fix: line numbers button for plain text and initial render --- static/js/paste_view.js | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/static/js/paste_view.js b/static/js/paste_view.js index ee3acb5..4e518d1 100644 --- a/static/js/paste_view.js +++ b/static/js/paste_view.js @@ -86,27 +86,22 @@ function initLineNumbers() { viewPre.classList.add('line-numbers'); } else { viewPre.classList.remove('line-numbers'); + const existing = viewPre.querySelector('.line-numbers-rows'); + if (existing) existing.remove(); } localStorage.setItem('show_line_numbers', checked); - // Re-highlight if a language is selected to force Prism to update the numbers span + // Always re-highlight so Prism's line-numbers plugin runs (works for plain text too) const code = document.getElementById('codeBlock'); - if (code && (code.className.includes('language-') || viewPre.className.includes('language-'))) { - // Prism's line-numbers plugin needs to clean up if turning off - if (!checked) { - const existing = viewPre.querySelector('.line-numbers-rows'); - if (existing) existing.remove(); - } + if (code) { Prism.highlightElement(code); } }; toggle.addEventListener('change', updateLines); - // Initial state - if (isEnabled) { - viewPre.classList.add('line-numbers'); - } + // Apply initial state (calls Prism so line numbers render without needing a toggle) + updateLines(); } function renderPaste(paste) {