aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorLMBishop <13875753+LMBishop@users.noreply.github.com>2021-11-22 12:58:43 +0000
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2021-11-22 12:58:43 +0000
commit00d757863fa30137dd103470c947d4922ba4a112 (patch)
treef0d4e59a0d91ce1d5779d2b49f075047c1f77b1c /app
parent5cda4203d94bce78479f554b797f44c646b7b57c (diff)
Add navbar sort order
Diffstat (limited to 'app')
-rw-r--r--app/directory.mjs26
-rw-r--r--app/wikiparser.mjs3
2 files changed, 21 insertions, 8 deletions
diff --git a/app/directory.mjs b/app/directory.mjs
index 5be6cce..4b5339c 100644
--- a/app/directory.mjs
+++ b/app/directory.mjs
@@ -37,7 +37,8 @@ export function buildPage(path) {
html: content,
raw: data,
buildTime: result.metadata.buildTime,
- hidden: result.metadata.hidden ?? false,
+ primary: result.metadata.primary ?? false,
+ sortOrder: result.metadata.sortOrder ?? -1,
notitle: result.metadata.notitle ?? false,
displayTitle: title
};
@@ -57,6 +58,17 @@ export function rebuild() {
file = file.replace('.wiki', '');
buildPage(file);
});
+
+ let primaryPages = [];
+ for (const page of Object.keys(pages)) {
+ if (pages[page].primary) {
+ primaryPages.push(page);
+ }
+ }
+ primaryPages.sort((a, b) => {
+ return a.sortOrder - b.sortOrder;
+ });
+ metadata.navbar = primaryPages;
metadata.fileTreeBuildTime = new Date();
}
@@ -89,12 +101,12 @@ export function getPages() {
}
export function getNavbar(current = '') {
- let navbar = '';
- for (const path of Object.keys(pages)) {
- if (pages[path].hidden) {
- continue;
- }
- navbar = navbar + `<div class="navbar-element"><a href="/${path}"${current == path ? ' class="highlight"' : ''}>${pages[path].displayTitle}</a></div>`;
+ if (!metadata.navbar) {
+ return '';
+ }
+ let navbar = '';
+ for (const page of metadata.navbar) {
+ navbar = navbar + `<div class="navbar-element"><a href="/${page}"${current == page ? ' class="highlight"' : ''}>${pages[page].displayTitle}</a></div>`;
}
return navbar;
}
diff --git a/app/wikiparser.mjs b/app/wikiparser.mjs
index a3231aa..4210bd1 100644
--- a/app/wikiparser.mjs
+++ b/app/wikiparser.mjs
@@ -40,11 +40,12 @@ export function parse(data) {
// Metadata: displayTitle, __NOTOC__, etc
.replace(re(r`{{ \s* displayTitle: ([^}]+) }}`), (_, title) => (metadata.displayTitle = title, ''))
+ .replace(re(r`{{ \s* navbarSortOrder: ([^}]+) }}`), (_, order) => (metadata.sortOrder = parseInt(order, 10), ''))
.replace(re(r`__NOINDEX__`), () => (metadata.noindex = true, ''))
.replace(re(r`__NOTOC__`), () => (metadata.notoc = true, ''))
.replace(re(r`__FORCETOC__`), () => (metadata.toc = true, ''))
.replace(re(r`__TOC__`), () => (metadata.toc = true, '<toc></toc>'))
- .replace(re(r`__HIDDEN__`), () => (metadata.hidden = true, ''))
+ .replace(re(r`__PRIMARY__`), () => (metadata.primary = true, ''))
.replace(re(r`__NOTITLE__`), () => (metadata.notitle = true, ''))
// Magic words: {{!}}, {{reflist}}, etc