From 87588c9305fd76dd75af8eae7a2170f81eff9474 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Tue, 21 Jun 2022 22:43:54 -0300 Subject: various navbar layout/grid improvements --- src/upd8.js | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'src/upd8.js') diff --git a/src/upd8.js b/src/upd8.js index 7a8a37c1..d1077fbb 100755 --- a/src/upd8.js +++ b/src/upd8.js @@ -175,7 +175,7 @@ import FileSizePreloader from './file-size-preloader.js'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); -const CACHEBUST = 9; +const CACHEBUST = 10; const DEFAULT_STRINGS_FILE = 'strings-default.json'; @@ -883,7 +883,9 @@ writePage.html = (pageInfo, { nav.classes ??= []; nav.content ??= ''; + nav.bottomRowContent ??= ''; nav.links ??= []; + nav.linkContainerClasses ??= []; secondaryNav ??= {}; secondaryNav.content ??= ''; @@ -951,6 +953,7 @@ writePage.html = (pageInfo, { const sidebarRightHTML = generateSidebarHTML('sidebar-right', sidebarRight); if (nav.simple) { + nav.linkContainerClasses = ['nav-links-hierarchy']; nav.links = [ {toHome: true}, {toCurrentPage: true} @@ -973,13 +976,14 @@ writePage.html = (pageInfo, { linkTitle ??= title; } - let part = prev && (cur.divider ?? true) ? '/ ' : ''; + let partContent; if (typeof cur.html === 'string') { if (!cur.html) { logWarn`Empty HTML in nav link ${JSON.stringify(cur)}`; + console.trace(); } - part += `${cur.html}`; + partContent = cur.html; } else { const attributes = { class: (cur.toCurrentPage || i === links.length - 1) && 'current', @@ -996,8 +1000,13 @@ writePage.html = (pageInfo, { if (attributes.href === null) { throw new Error(`Expected some href specifier for link to ${linkTitle} (${JSON.stringify(cur)})`); } - part += html.tag('a', attributes, linkTitle); + partContent = html.tag('a', attributes, linkTitle); } + + const part = html.tag('span', + {class: cur.divider === false && 'no-divider'}, + partContent); + navLinkParts.push(part); } @@ -1006,8 +1015,11 @@ writePage.html = (pageInfo, { id: 'header', class: nav.classes }, [ - links.length && html.tag('h2', {class: 'highlight-last-link'}, navLinkParts), - nav.content + links.length && html.tag('div', + {class: ['nav-main-links', ...nav.linkContainerClasses]}, + navLinkParts), + html.tag('div', {class: 'nav-content'}, nav.content), + nav.bottomRowContent && html.tag('div', {class: 'nav-bottom-row'}, nav.bottomRowContent), ]); const secondaryNavHTML = html.tag('nav', { -- cgit 1.3.0-6-gf8a5