extends layout.pug block prepend js script(src='/assets/js/bootstrap.min.js') block content div.row nav.col-lg-3.col-md-4 ul.nav.flex-column.nav-pills block menu mixin menu(...items) - function pad_zero (n) { return n < 10 ? '0' + n : n; } function item_link (item) { if (!('link' in item)) { item.link = new String(item.name).toLowerCase().replace(/\W/g, '-').replace(/--+/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; } 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.nav-item(role='presentation') - const id = 'menu-' + item_link(item); a.nav-link(href='#' + id, data-bs-toggle='collapse', role='button', aria-expanded=active.toString(), aria-controls=id)= item.name div.collapse(id=id, class=active ? 'in show' : '') ul.nav.flex-column.nav-pills.col-xs-11.col-md-10.float-end +menu(...item.menu) br(style='clear:both;') else - var link = item_link(item) li.nav-item(role='presentation') a.nav-link(href=base_url + (link == '' ? '' : link + '.html'), class=item_is_active(item) ? 'active' : '')= item.name nav.col-lg-9.col-md-8 ol.breadcrumb.hidden-xs.hidden-sm mixin breadcrumb(link, title) li.breadcrumb-item if typeof title != 'undefined' a(href=link)= title else a(href=base_url + page + '.html')= link block breadcrumbs +breadcrumb('/', 'Home') article.row.article div.col-lg-12 h3 strong block subtitle block subtitleExtra small |  by block subtitleAuthor | Camil Staps | , block subtitleDate div.col-lg-12.text-justify.markdown block page