Skip to content

Commit 6dcadb8

Browse files
committed
Add support for icons in sidebar
Fixes #3830
1 parent aa4420e commit 6dcadb8

File tree

4 files changed

+18
-13
lines changed

4 files changed

+18
-13
lines changed

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -219,26 +219,32 @@ const sidebarContentsHandler = (context: NavigationPipelineContext) => {
219219
".sidebar-item:not(.sidebar-item-section) .sidebar-item-text",
220220
);
221221
for (let i = 0; i < sidebarItemEls.length; i++) {
222-
const link = sidebarItemEls[i] as Element;
223-
const href = link.getAttribute("href");
222+
const sidebarEl = sidebarItemEls[i] as Element;
223+
const href = sidebarEl.getAttribute("href");
224224
const sidebarText = rendered[`${kSidebarIdPrefix}${href}`];
225225
if (sidebarText) {
226-
link.innerHTML = sidebarText.innerHTML;
226+
const link = sidebarEl.querySelector(".menu-text");
227+
if (link) {
228+
link.innerHTML = sidebarText.innerHTML;
229+
}
227230
}
228231
}
229232

230233
const sidebarSectionEls = doc.querySelectorAll(
231234
".sidebar-item.sidebar-item-section .sidebar-item-text",
232235
);
233236
for (let i = 0; i < sidebarSectionEls.length; i++) {
234-
const link = sidebarSectionEls[i] as Element;
235-
const target = link.getAttribute("data-bs-target");
237+
const sectionEl = sidebarSectionEls[i] as Element;
238+
const target = sectionEl.getAttribute("data-bs-target");
236239

237240
if (target) {
238241
const id = target.slice(1);
239242
const sectionText = rendered[`${kSidebarIdPrefix}${id}`];
240243
if (sectionText) {
241-
link.innerHTML = sectionText.innerHTML;
244+
const link = sectionEl.querySelector(".menu-text");
245+
if (link) {
246+
link.innerHTML = sectionText.innerHTML;
247+
}
242248
}
243249
}
244250
}

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ import {
5858
import { projectOffset, projectOutputDir } from "../../project-shared.ts";
5959
import { resolveInputTarget } from "../../project-index.ts";
6060
import {
61-
kAriaLabel,
6261
kCollapseBelow,
6362
kCollapseLevel,
6463
kSidebarMenus,

src/resources/projects/website/templates/navicon.ejs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
<% if(item.icon) { %>
33
<i
4-
class="bi <%- item.icon %>"
4+
class="bi <%- item.icon.startsWith('bi-') ? item.icon : 'bi-' + item.icon %>"
55
role="img"
66
<% if(item["aria-label"]){ %>
77
aria-label="<%- item["aria-label"] %>"

src/resources/projects/website/templates/sidebaritem.ejs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<% if (item.href && item.text && !item.contents) { %>
22
<li class="sidebar-item">
33
<div class="sidebar-item-container">
4-
<a href="<%- item.href %>" class="sidebar-item-text sidebar-link<%- item.active ? " active" : "" %>"<%- item.target ? ` target="${item.target}"` : "" %>><%= item.text %></a>
4+
<a href="<%- item.href %>" class="sidebar-item-text sidebar-link<%- item.active ? " active" : "" %>"<%- item.target ? ` target="${item.target}"` : "" %>><% partial('navicon.ejs', { item }) %> <span class="menu-text"><%- item.text %></span></a>
55
</div>
66
</li>
77
<% } else if (item.contents && item.text) { %>
@@ -17,9 +17,9 @@
1717
<% if (item.contents.length > 0) { %>
1818
<div class="sidebar-item-container">
1919
<% if (item.href) { %>
20-
<a href="<%- item.href %>" class="sidebar-item-text sidebar-link<%- item.active ? " active" : "" %>"<%- item.target ? ` target="${item.target}"` : "" %>><%= item.text %></a>
20+
<a href="<%- item.href %>" class="sidebar-item-text sidebar-link<%- item.active ? " active" : "" %>"<%- item.target ? ` target="${item.target}"` : "" %>><% partial('navicon.ejs', { item }) %> <span class="menu-text"><%- item.text %></span></a>
2121
<% } else { %>
22-
<a class="sidebar-item-text sidebar-link text-start<%- isCollapsed ? " collapsed" : "" %>" data-bs-toggle="collapse" data-bs-target="#<%- sectionId %>" aria-expanded="<%- isCollapsed ? "false" : "true" %>"><%= item.text %></a>
22+
<a class="sidebar-item-text sidebar-link text-start<%- isCollapsed ? " collapsed" : "" %>" data-bs-toggle="collapse" data-bs-target="#<%- sectionId %>" aria-expanded="<%- isCollapsed ? "false" : "true" %>"><% partial('navicon.ejs', { item }) %> <span class="menu-text"><%- item.text %></span></a>
2323
<% } %>
2424
<a class="sidebar-item-toggle text-start<%- isCollapsed ? " collapsed" : "" %>" data-bs-toggle="collapse" data-bs-target="#<%- sectionId %>" aria-expanded="<%- isCollapsed ? "false" : "true" %>">
2525
<i class="bi bi-chevron-right ms-2"></i>
@@ -31,14 +31,14 @@
3131
<% }) %>
3232
</ul>
3333
<% } else { %>
34-
<span class="sidebar-item-text sidebar-link text-start"><%= item.text %></span>
34+
<span class="sidebar-item-text sidebar-link text-start"><% partial('navicon.ejs', { item }) %> <span class="menu-text"><%- item.text %></span></span>
3535
<% } %>
3636
3737
</li>
3838
<% } else if (item.text && item.text.match(/^\-+$/)) { %>
3939
<li class="px-0"><hr class="sidebar-divider hi <%- borderColor %>"></li>
4040
<% } else if (item.text) { %>
4141
<li class="sidebar-item">
42-
<%= item.text %>
42+
<% partial('navicon.ejs', { item }) %> <span class="menu-text"><%- item.text %></span>
4343
</li>
4444
<% } %>

0 commit comments

Comments
 (0)