gabriel / musehub public
blame.ts typescript
24 lines 851 B
Raw
sha256:20b27796ed512236119feef48b4577a8fd9ded05a15267dd4e6da23604ad1f1a docs: update Suggested Ownership Split table to reflect ful… Sonnet 5 27 days ago
1 /**
2 * blame.ts — interactivity for the code blame page.
3 *
4 * Registered as: window.MusePages['blame']
5 */
6
7 export function initBlame(_data: Record<string, unknown>): void {
8 // Line hash navigation: highlight target line on load and hash change
9 function highlightTargetLine(): void {
10 document.querySelectorAll<HTMLElement>('.blm-code-row--targeted').forEach((el) => {
11 el.classList.remove('blm-code-row--targeted');
12 });
13 const hash = window.location.hash;
14 if (!hash) return;
15 const target = document.querySelector<HTMLElement>(hash);
16 if (target && target.classList.contains('blm-code-row')) {
17 target.classList.add('blm-code-row--targeted');
18 target.scrollIntoView({ behavior: 'smooth', block: 'center' });
19 }
20 }
21
22 highlightTargetLine();
23 window.addEventListener('hashchange', highlightTargetLine);
24 }
File History 3 commits
sha256:20b27796ed512236119feef48b4577a8fd9ded05a15267dd4e6da23604ad1f1a docs: update Suggested Ownership Split table to reflect ful… Sonnet 5 27 days ago
sha256:8ea2f75226d5834770ccaddbaa6efda1cc337446fd481bb385de8bec4555ae79 docs: Section 9 CI pipeline — confirm job queue is idempote… Sonnet 5 28 days ago
sha256:80e1a60a39562f6e616aaafbb27487f03abbec7d8ffc6164302b7a0c0bfc63ee docs: check off Section 0 items verified in inventory doc, … Sonnet 5 28 days ago