Skip to content

Commit 5b8c134

Browse files
committed
Render navbar href
Fixes #1627 Note that I allow shortcode looking hrefs through untouched now when resolving items. Otherwise they’ll resolve to `/{{< shortcode >}}`
1 parent a099079 commit 5b8c134

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

src/project/types/website/website-navigation-md.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,10 @@ const navbarContentsHandler = (context: NavigationPipelineContext) => {
270270
if (entry.text) {
271271
markdown[`${kNavbarIdPrefix}${entry.text.trim()}`] = entry.text;
272272
}
273+
if (entry.href) {
274+
markdown[`${kNavbarIdPrefix}${entry.href.trim()}`] = entry.href;
275+
}
276+
273277
if (entry.menu?.entries) {
274278
for (const childEntry of entry.menu) {
275279
addEntry(childEntry);
@@ -301,6 +305,17 @@ const navbarContentsHandler = (context: NavigationPipelineContext) => {
301305
link.innerHTML = renderedEl?.innerHTML;
302306
}
303307
}
308+
309+
const textParent = link.parentElement;
310+
if (textParent) {
311+
const href = textParent.getAttribute("href");
312+
if (href) {
313+
const renderedHref = rendered[`${kNavbarIdPrefix}${href}`];
314+
if (renderedHref) {
315+
textParent.setAttribute("href", renderedHref?.innerText);
316+
}
317+
}
318+
}
304319
}
305320
});
306321
},

src/project/types/website/website-navigation.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1408,6 +1408,8 @@ async function resolveItem<T extends { href?: string; text?: string }>(
14081408
);
14091409
}
14101410
return inputItem;
1411+
} else if (looksLikeShortCode(href)) {
1412+
return item;
14111413
} else {
14121414
return {
14131415
...item,
@@ -1419,6 +1421,10 @@ async function resolveItem<T extends { href?: string; text?: string }>(
14191421
}
14201422
}
14211423

1424+
function looksLikeShortCode(href: string) {
1425+
return href.startsWith("{{<") && href.endsWith(">}}");
1426+
}
1427+
14221428
function sidebarTitle(sidebar: Sidebar, project: ProjectContext) {
14231429
const { navbar } = websiteNavigationConfig(project);
14241430
if (sidebar.title) {

0 commit comments

Comments
 (0)