From af98694e486e250e5b2659b5bc9f11a98426b9ee Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 5 Apr 2026 21:16:23 +1200 Subject: [PATCH 1/3] Experimental fix for broken internal document links --- client/homebrew/brewRenderer/brewRenderer.jsx | 10 +++++++++- client/homebrew/brewRenderer/headerNav/headerNav.jsx | 2 +- shared/markdown.js | 6 +++--- shared/markdownLegacy.js | 6 +++--- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 8e74473b3..0a8ac6e1c 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -33,7 +33,7 @@ const INITIAL_CONTENT = dedent` - +
`; @@ -272,6 +272,14 @@ const BrewRenderer = (props)=>{ const frameDidMount = ()=>{ //This triggers when iFrame finishes internal "componentDidMount" scrollToHash(window.location.hash); + navigation.addEventListener('navigate', (e)=>{ + console.log(e); + if(e.hashChange && e.destination.sameDocument){ + const dest = e.destination.url.slice(e.destination.url.indexOf('#')); + scrollToHash(dest); + } + }); + setTimeout(()=>{ //We still see a flicker where the style isn't applied yet, so wait 100ms before showing iFrame renderPages(); //Make sure page is renderable before showing setState((prevState)=>({ diff --git a/client/homebrew/brewRenderer/headerNav/headerNav.jsx b/client/homebrew/brewRenderer/headerNav/headerNav.jsx index 3b184aff0..080ce5ad5 100644 --- a/client/homebrew/brewRenderer/headerNav/headerNav.jsx +++ b/client/homebrew/brewRenderer/headerNav/headerNav.jsx @@ -104,7 +104,7 @@ const HeaderNavItem = ({ link, text, depth, className })=>{ if(!link || !text) return; return
  • - + {trimString(text, depth)}
  • ; diff --git a/shared/markdown.js b/shared/markdown.js index 09a6b37e3..d2a108e01 100644 --- a/shared/markdown.js +++ b/shared/markdown.js @@ -70,9 +70,9 @@ renderer.link = function (token) { if(title) { out += ` title="${escape(title)}"`; } - if(self) { - out += ' target="_self"'; - } + // if(self) { + // out += ' target="_self"'; + // } out += `>${text}`; return out; }; diff --git a/shared/markdownLegacy.js b/shared/markdownLegacy.js index 9cea8dbb2..b26bd8cdc 100644 --- a/shared/markdownLegacy.js +++ b/shared/markdownLegacy.js @@ -34,9 +34,9 @@ renderer.link = function (href, title, text) { if(title) { out += ` title="${title}"`; } - if(self) { - out += ' target="_self"'; - } + // if(self) { + // out += ' target="_self"'; + // } out += `>${text}`; return out; }; From 01a9950d7c3b084e4b6696785a685e487fc04a4f Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 5 Apr 2026 21:41:39 +1200 Subject: [PATCH 2/3] Remove unnecessary console.log --- client/homebrew/brewRenderer/brewRenderer.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 0a8ac6e1c..efdfce5c9 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -273,7 +273,6 @@ const BrewRenderer = (props)=>{ scrollToHash(window.location.hash); navigation.addEventListener('navigate', (e)=>{ - console.log(e); if(e.hashChange && e.destination.sameDocument){ const dest = e.destination.url.slice(e.destination.url.indexOf('#')); scrollToHash(dest); From e1061e1970feb43eebac0a527afe33e3424f3718 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 5 Apr 2026 22:28:29 +1200 Subject: [PATCH 3/3] Remove obsolete test --- tests/markdown/basic.test.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/markdown/basic.test.js b/tests/markdown/basic.test.js index f2405d0d8..6a131eb91 100644 --- a/tests/markdown/basic.test.js +++ b/tests/markdown/basic.test.js @@ -8,8 +8,10 @@ test('Processes the markdown within an HTML block if its just a class wrapper', expect(rendered).toBe('

    Bold text

    \n
    '); }); -test('Check markdown is using the custom renderer; specifically that it adds target=_self attribute to internal links in HTML blocks', function() { - const source = '
    [Has _self Attribute?](#p1)
    '; - const rendered = Markdown.render(source); - expect(rendered).toBe('

    Has _self Attribute?

    \n
    '); -}); +// TEST REMOVED AS IT IS NO LONGER REQUIRED +// +// test('Check markdown is using the custom renderer; specifically that it adds target=_self attribute to internal links in HTML blocks', function() { +// const source = '
    [Has _self Attribute?](#p1)
    '; +// const rendered = Markdown.render(source); +// expect(rendered).toBe('

    Has _self Attribute?

    \n
    '); +// });