fix: clicking highlighted line number clears the highlight

This commit is contained in:
ComputerTech 2026-04-06 19:50:10 +01:00
parent f93d232769
commit c8d78c7d61
1 changed files with 20 additions and 0 deletions

View File

@ -260,6 +260,11 @@ function _wireLineClicks() {
_hlStart = a; _hlEnd = b;
_drawHighlight(a, b);
_updateLineUrl(a, b);
} else if (_hlStart === lineNum && _hlEnd === lineNum) {
// Clicking the sole highlighted line → clear
_hlAnchor = null; _hlStart = null; _hlEnd = null;
_clearHighlight();
_clearLineUrl();
} else {
_hlAnchor = lineNum;
_hlStart = lineNum;
@ -271,6 +276,21 @@ function _wireLineClicks() {
});
}
function _clearHighlight() {
const viewPre = document.getElementById('viewPre');
if (!viewPre) return;
viewPre.querySelectorAll('.line-hl').forEach(el => el.remove());
viewPre.querySelectorAll('.line-numbers-rows > span').forEach(
s => s.classList.remove('hl-active')
);
}
function _clearLineUrl() {
const url = new URL(window.location.href);
url.searchParams.delete('L');
history.replaceState(null, '', url.toString());
}
function _drawHighlight(start, end) {
const viewPre = document.getElementById('viewPre');
const code = document.getElementById('codeBlock');