Make breadcrumbs compulsory for the sidebar layout (optional for navbar layout)
authorNick Downing <nick@ndcode.org>
Fri, 11 Feb 2022 13:32:24 +0000 (00:32 +1100)
committerNick Downing <nick@ndcode.org>
Sat, 12 Feb 2022 01:56:15 +0000 (12:56 +1100)
13 files changed:
_lib/blog_post.jst
_lib/breadcrumbs.jst
_lib/navbar.jst
blog/index.html.jst
contact/index.html.jst
index.html.jst
my_account/index.html.jst
my_account/password_reset/index.html.jst
my_account/send_verification_email/index.html.jst
my_account/sign_up/index.html.jst
my_account/verify_email/index.html.jst
my_account/verify_password/index.html.jst
search/index.html.jst

index acbcd49..9e16a01 100644 (file)
@@ -1,7 +1,7 @@
 let assert = require('assert')
 
 return async (env, head, body, scripts) => {
-  let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
+  //let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
   let get_navigation = await _require('/_lib/get_navigation.jst')
   let navbar = await _require('/_lib/navbar.jst')
 
@@ -10,7 +10,7 @@ return async (env, head, body, scripts) => {
     head,
     // body
     async _out => {
-      await breadcrumbs(env, _out)
+      //await breadcrumbs(env, _out)
 
       let transaction = await env.site.database.Transaction()
       try {
index 6440418..e87597d 100644 (file)
@@ -1,21 +1,13 @@
 let assert = require('assert')
 
 return async (env, _out) => {
-  let fa_bars = await env.site.get_min_svg('/_svg/fa_bars.svg')
-
   // the breadcrumbs have already been determined by navbar.jst, as
   // the HTML title is similar to the breadcrumbs (but without links)
   let component_names = env.component_names
   let component_titles = env.component_titles
 
   // present component_titles as breadcrumbs, except last one as text
-  h2.page-header.grid-gutter-background.'py-2'.mb-0 {
-    button.btn.btn-outline-secondary.sidebar-toggle.mr-3#navbar-sidebar-toggle {
-      div.icon24-outer(style="top: -1px;") {
-        div.icon24-inner {_out.push(fa_bars)}
-      }
-      span.sr-only {'Navbar toggle'}
-    }
+  h2.py-2 {
     for (let i = 0; i < component_names.length; ++i) {
       a.h4(
         href=
index cabffb2..0116d12 100644 (file)
@@ -9,6 +9,7 @@ let arrays_equal =
 return async (env, head, body, scripts) => {
   //let cart = await _require('/online_store/cart.jst')
   let fa_arrow_circle_left = await env.site.get_min_svg('/_svg/fa_arrow-circle-left.svg')
+  let fa_bars = await env.site.get_min_svg('/_svg/fa_bars.svg')
   let fa_times_circle = await env.site.get_min_svg('/_svg/fa_times-circle.svg')
   let fa_envelope = await env.site.get_min_svg('/_svg/fa_envelope.svg')
   let fa_unlock_alt = await env.site.get_min_svg('/_svg/fa_unlock-alt.svg')
@@ -212,6 +213,33 @@ return async (env, head, body, scripts) => {
           }
 
           div.col-md.sidebar-content {
+            // the breadcrumbs have already been determined by navbar.jst, as
+            // the HTML title is similar to the breadcrumbs (but without links)
+            let component_names = env.component_names
+            let component_titles = env.component_titles
+
+            // present component_titles as breadcrumbs, except last one as text
+            h2.page-header.grid-gutter-background.'py-2'.mb-0 {
+              button.btn.btn-outline-secondary.sidebar-toggle.mr-3#navbar-sidebar-toggle {
+                div.icon24-outer(style="top: -1px;") {
+                  div.icon24-inner {_out.push(fa_bars)}
+                }
+                span.sr-only {'Navbar toggle'}
+              }
+              for (let i = 0; i < component_names.length; ++i) {
+                a.h4(
+                  href=
+                    `${
+                      component_names.slice(0, i).map(name => '/' + name).join('')
+                    }/index.html`
+                ) {`${component_titles[i]}`}
+                ' '
+                span.h5 {'>'}
+                ' '
+              }
+              `${component_titles[component_names.length]}`
+            }
+
             await body(_out)
 
             footer.page-footer.grid-gutter-background.py-5 {
@@ -431,6 +459,7 @@ return async (env, head, body, scripts) => {
             let id_navbar_search_button = document.getElementById('navbar-search-button')
             let id_navbar_sidebar_inner = document.getElementById('navbar-sidebar-inner')
             let id_navbar_sidebar_outer = document.getElementById('navbar-sidebar-outer')
+            let id_navbar_sidebar_toggle = document.getElementById('navbar-sidebar-toggle')
             let id_navbar_sign_in = document.getElementById('navbar-sign-in')
             let id_navbar_sign_in_alert = document.getElementById('navbar-sign-in-alert')
             let id_navbar_sign_in_cross = document.getElementById('navbar-sign-in-cross')
@@ -445,10 +474,6 @@ return async (env, head, body, scripts) => {
             let id_navbar_sign_out = document.getElementById('navbar-sign-out')
             let id_navbar_sign_up = document.getElementById('navbar-sign-up')
             let id_navbar_signed_in_status = document.getElementById('navbar-signed-in-status')
-            //let id_navbarDropdown = document.getElementById('navbarDropdown')
-            //let id_navbarSupportedContent = document.getElementById('navbarSupportedContent')
-            // the following is defined in breadcrumbs.jst for now:
-            let id_navbar_sidebar_toggle = document.getElementById('navbar-sidebar-toggle')
 
             // sign in form
             id_navbar_sign_in.addEventListener(
index fb8996a..428d3d8 100644 (file)
@@ -1,5 +1,5 @@
 return async env => {
-  let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
+  //let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
   let get_navigation = await _require('/_lib/get_navigation.jst')
   let navbar = await _require('/_lib/navbar.jst')
 
@@ -7,7 +7,7 @@ return async env => {
     env,
     async _out => {},
     async _out => {
-      await breadcrumbs(env, _out)
+      //await breadcrumbs(env, _out)
 
       let transaction = await env.site.database.Transaction()
       try {
index fb865fa..a9f149c 100644 (file)
@@ -1,5 +1,5 @@
 return async env => {
-  let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
+  //let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
   let fa_envelope = await env.site.get_min_svg('/_svg/fa_envelope.svg')
   let get_placeholder = await _require('/_lib/get_placeholder.jst')
   let get_session = await _require('/_lib/get_session.jst')
@@ -34,7 +34,7 @@ return async env => {
     async _out => {},
     // body
     async _out => {
-      await breadcrumbs(env, _out)
+      //await breadcrumbs(env, _out)
 
       p.mt-3 {'Would you like to hear more about homeschooling or any of my other projects? I would be thrilled to make contact with you.'}
 
index 89a4486..a4c945d 100644 (file)
@@ -1,5 +1,5 @@
 return async env => {
-  let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
+  //let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
   let navbar = await _require('/_lib/navbar.jst')
 
   await navbar(
@@ -8,7 +8,7 @@ return async env => {
     async _out => {},
     // body
     async _out => {
-      await breadcrumbs(env, _out)
+      //await breadcrumbs(env, _out)
 
       h4.mt-3 {'About this site'}
 
index a14b9c1..6c3d538 100644 (file)
@@ -1,5 +1,5 @@
 return async env => {
-  let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
+  //let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
   let fa_arrow_circle_left = await env.site.get_min_svg('/_svg/fa_arrow-circle-left.svg')
   let fa_cloud_upload_alt = await env.site.get_min_svg('/_svg/fa_cloud-upload-alt.svg')
   let fa_envelope = await env.site.get_min_svg('/_svg/fa_envelope.svg')
@@ -62,7 +62,7 @@ return async env => {
     async _out => {},
     // body
     async _out => {
-      await breadcrumbs(env, _out)
+      //await breadcrumbs(env, _out)
 
       if (signed_in_as !== undefined) {
         // signed in
index 8fa627d..77add49 100644 (file)
@@ -1,5 +1,5 @@
 return async env => {
-  let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
+  //let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
   let fa_envelope = await env.site.get_min_svg('/_svg/fa_envelope.svg')
   let get_placeholder = await _require('/_lib/get_placeholder.jst')
   let get_session = await _require('/_lib/get_session.jst')
@@ -36,7 +36,7 @@ return async env => {
     async _out => {},
     // body
     async _out => {
-      await breadcrumbs(env, _out)
+      //await breadcrumbs(env, _out)
 
       p.mt-3 {'To reset your password, please enter new details below and we will send you a password reset link.'}
 
index 0882ef4..ffa9e15 100644 (file)
@@ -1,5 +1,5 @@
 return async env => {
-  let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
+  //let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
   let fa_envelope = await env.site.get_min_svg('/_svg/fa_envelope.svg')
   let get_placeholder = await _require('/_lib/get_placeholder.jst')
   let get_session = await _require('/_lib/get_session.jst')
@@ -36,7 +36,7 @@ return async env => {
     async _out => {},
     // body
     async _out => {
-      await breadcrumbs(env, _out)
+      //await breadcrumbs(env, _out)
 
       p.mt-3 {'Your email is not yet verified. Check your email for next steps, or re-send the verification email below.'}
 
index 116b863..99f7413 100644 (file)
@@ -1,5 +1,5 @@
 return async env => {
-  let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
+  //let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
   let fa_arrow_circle_left = await env.site.get_min_svg('/_svg/fa_arrow-circle-left.svg')
   let fa_envelope = await env.site.get_min_svg('/_svg/fa_envelope.svg')
   let fa_redo = await env.site.get_min_svg('/_svg/fa_redo.svg')
@@ -37,7 +37,7 @@ return async env => {
     async _out => {},
     // body
     async _out => {
-      await breadcrumbs(env, _out)
+      //await breadcrumbs(env, _out)
 
       p.mt-3 {'Signing up allows you to leave comments on our blog and receive communications from us.'}
 
index 0e68551..4871e5e 100644 (file)
@@ -1,5 +1,5 @@
 return async env => {
-  let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
+  //let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
   let fa_user_check = await env.site.get_min_svg('/_svg/fa_user-check.svg')
   let get_placeholder = await _require('/_lib/get_placeholder.jst')
   let get_session = await _require('/_lib/get_session.jst')
@@ -43,7 +43,7 @@ return async env => {
     async _out => {},
     // body
     async _out => {
-      await breadcrumbs(env, _out)
+      //await breadcrumbs(env, _out)
 
       p.mt-3 {'You will need to verify your email address via an emailed link before you can sign in to your account.'}
 
index 35af0c0..b26fbeb 100644 (file)
@@ -1,5 +1,5 @@
 return async env => {
-  let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
+  //let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
   let fa_user_check = await env.site.get_min_svg('/_svg/fa_user-check.svg')
   let get_placeholder = await _require('/_lib/get_placeholder.jst')
   let get_session = await _require('/_lib/get_session.jst')
@@ -43,7 +43,7 @@ return async env => {
     async _out => {},
     // body
     async _out => {
-      await breadcrumbs(env, _out)
+      //await breadcrumbs(env, _out)
 
       p.mt-3 {'You will need to verify your new password via an emailed link before you can use it to sign in to your account.'}
 
index a890c60..4c481e4 100644 (file)
@@ -2,7 +2,7 @@ let assert = require('assert')
 let querystring = require('querystring')
 
 return async env => {
-  let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
+  //let breadcrumbs = await _require('/_lib/breadcrumbs.jst')
   let navbar = await _require('/_lib/navbar.jst')
   let zet_site = await env.site.get_zettair('/_zet/site')
 
@@ -40,7 +40,7 @@ return async env => {
         return components.join(' > ')
       }
 
-      await breadcrumbs(env, _out)
+      //await breadcrumbs(env, _out)
 
       h4.mt-3 {
         'Query: '