Add 404 page which fits the rest of the theme

* Noting that (as of 0.14) zola does not pass much of a context when
  rendering the 404 page, so things like current URL/path aren't
  available
* To work around this the `menu` macro has been split into `menu_for`
  which accepts a parameter for which item is active.
* The previous macro continues to work as is, forwarding the results of
  figuring out which item is active to the new `menu_for` macro
* The added 404 page will then use the `menu_for` macro and pass in a
  blank item
This commit is contained in:
Ivan Petkov 2021-12-07 17:25:02 -08:00
parent f37c65c951
commit b04b1f5951
No known key found for this signature in database
GPG key ID: BB6F9EFC065832B6
3 changed files with 28 additions and 2 deletions

View file

@ -2,8 +2,6 @@
{%- if config.extra.menu_items %}
{%- set menu_items = config.extra.menu_items -%}
<nav class="menu">
<ul class="menu__inner">
{%- for item in menu_items %}
{%- set abs_item_url = item.url | replace(from="$BASE_URL", to=config.base_url) -%}
{%- set is_current = current_url == abs_item_url ~ "/"
@ -27,6 +25,16 @@
{%- set current_item = base_item -%}
{% endif -%}
{{ menu_macros::menu_for(config=config, current_item=current_item) }}
{% endif -%}
{% endmacro menu %}
{% macro menu_for(config, current_item) %}
{%- if config.extra.menu_items %}
{%- set menu_items = config.extra.menu_items -%}
<nav class="menu">
<ul class="menu__inner">
{%- for item in menu_items %}
<li {%- if current_item and current_item == item %} class="active" {%- endif %}>
{%- if item.newtab -%}