summaryrefslogtreecommitdiffhomepage
path: root/resources
diff options
context:
space:
mode:
authorCamil Staps2021-06-23 10:28:05 +0200
committerCamil Staps2021-06-23 10:28:36 +0200
commit8e5dc18b9a655200e3355410e812e49db27a4171 (patch)
tree21b387fd9ffe89b579fc2c7e6c6b125f3146c393 /resources
parentSetup infrastructure for articles written in markdown (diff)
Arrange menu on /articles by year
Diffstat (limited to 'resources')
-rw-r--r--resources/pug/include/layout-articles.pug4
-rw-r--r--resources/pug/include/layout-sidebar.pug45
2 files changed, 40 insertions, 9 deletions
diff --git a/resources/pug/include/layout-articles.pug b/resources/pug/include/layout-articles.pug
index 88b1aea..26fa69f 100644
--- a/resources/pug/include/layout-articles.pug
+++ b/resources/pug/include/layout-articles.pug
@@ -4,5 +4,7 @@ block append menu
- var base_url = '/articles/'
+menu(
{name: 'Home', link: ''},
- {name: 'Clean Sandbox', year: 2021, month: 6, day: 22},
+ {name: 2021, menu: [
+ {name: 'Clean Sandbox', year: 2021, month: 6, day: 22},
+ ]},
)
diff --git a/resources/pug/include/layout-sidebar.pug b/resources/pug/include/layout-sidebar.pug
index 8cf7d5a..265564d 100644
--- a/resources/pug/include/layout-sidebar.pug
+++ b/resources/pug/include/layout-sidebar.pug
@@ -1,22 +1,51 @@
extends layout.pug
+block prepend js
+ script(src='/assets/js/jquery.slim.min.js')
+ script(src='/assets/js/transition.min.js')
+ script(src='/assets/js/collapse.min.js')
+
block content
div.row
div.col-lg-3.col-md-4
ul.nav.nav-pills.nav-stacked
block menu
mixin menu(...items)
- - const pad_zero = n => n < 10 ? '0' + n : n;
+ -
+ function pad_zero (n) {
+ return n < 10 ? '0' + n : n;
+ }
- each item in items
- if typeof item.link == 'undefined'
- - item.link = item.name.toLowerCase().replace(/\W/g, '-')
+ function item_link (item) {
+ if (!('link' in item)) {
+ item.link = new String(item.name).toLowerCase().replace(/\W/g, '-');
+
+ if ('year' in item && 'month' in item && 'day' in item)
+ item.link = item.year + '-' + pad_zero(item.month) + '-' + pad_zero(item.day) + '-' + item.link;
+ }
- unless typeof item.year == 'undefined' || typeof item.month == 'undefined' || typeof item.day == 'undefined'
- - item.link = item.year + '-' + pad_zero(item.month) + '-' + pad_zero(item.day) + '-' + item.link
+ return item.link;
+ }
+
+ function item_is_active (item) {
+ return item_link(item) == page;
+ }
+
+ each item in items
+ if 'menu' in item
+ - const active = item.menu.some(item_is_active)
+ li(role='presentation')
+ - const id = 'menu-' + item_link(item);
+ a(href='#' + id, data-toggle='collapse', role='button', aria-expanded=active.toString(), aria-controls=id)= item.name
+ div.collapse(id=id, class=active ? 'in' : '')
+ ul.nav.nav-pills.nav-stacked.col-xs-12.col-md-10.pull-right
+ +menu(...item.menu)
+ br(style='clear:both;')
- li(role='presentation', class=(page == item.link) ? 'active' : '')
- a(href=base_url + (item.link == '' ? '' : item.link + '.html'))= item.name
+ else
+ - var link = item_link(item)
+ li(role='presentation', class=item_is_active(item) ? 'active' : '')
+ a(href=base_url + (link == '' ? '' : link + '.html'))= item.name
div.col-lg-7.col-md-6
h3