aboutsummaryrefslogtreecommitdiff
path: root/templates/_nav.html
diff options
context:
space:
mode:
authorAlex <alex@adnab.me>2022-06-01 17:04:10 +0200
committerAlex <alex@adnab.me>2022-06-01 17:04:10 +0200
commite69ee6ab7c0519d6897133d6269be16a307cf175 (patch)
treedeb249595896219cefdd11a641de8cb651cabe7d /templates/_nav.html
parent40596285a182ddd469422de25f7c78bcef098953 (diff)
parent71980e93aecc7137017f769f8de746d9b2959b9d (diff)
downloadguide.deuxfleurs.fr-e69ee6ab7c0519d6897133d6269be16a307cf175.tar.gz
guide.deuxfleurs.fr-e69ee6ab7c0519d6897133d6269be16a307cf175.zip
Merge pull request 'Hierarchical navigation menu' (#4) from hier-nav-menu into main
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/man.deuxfleurs.fr/pulls/4
Diffstat (limited to 'templates/_nav.html')
-rw-r--r--templates/_nav.html61
1 files changed, 61 insertions, 0 deletions
diff --git a/templates/_nav.html b/templates/_nav.html
new file mode 100644
index 0000000..9b76c96
--- /dev/null
+++ b/templates/_nav.html
@@ -0,0 +1,61 @@
+{% macro navsection(hierarchy, level, current) %}
+ {% set sec = hierarchy | nth(n=level) %}
+ {% set sec = get_section(path=sec) %}
+ {% set maxlevel = hierarchy | length %}
+
+ {% if sec.subsections %}
+ {% for s in sec.subsections %}
+ {% set p = get_section(path=s) %}
+ <div class="toc-item">
+ {% if p.subsections or p.pages %}
+ {% if p.path == current.path %}
+ <a class="subtext" href="{{ p.permalink | safe}}">⯆ <b>{{ p.title }}</b></a>
+ {% elif hierarchy is containing(s) %}
+ <a class="subtext" href="{{ p.permalink | safe}}">⯆ {{ p.title }}</a>
+ {% else %}
+ <a class="subtext" href="{{ p.permalink | safe}}">⯈ {{ p.title }}</a>
+ {% endif %}
+ {% if hierarchy is containing(s) or current.path == p.path %}
+ {% if level + 1 < maxlevel %}
+ {{ nav::navsection(hierarchy=hierarchy,level=level + 1,current=current) }}
+ {% endif %}
+ {% endif %}
+ {% else %}
+ {% if p.path == current.path %}
+ <a class="subtext" href="{{p.permalink | safe}}"><b>{{ p.title }}</b></a>
+ {% else %}
+ <a class="subtext" href="{{p.permalink | safe}}">{{ p.title }}</a>
+ {% endif %}
+ {% endif %}
+ </div>
+ {% endfor %}
+ {% endif %}
+
+ {% if sec.pages %}
+ {% for p in sec.pages %}
+ <div class="toc-item">
+ {% if p.path == current.path %}
+ <a class="subtext" href="{{p.permalink | safe}}"><b>{{ p.title }}</b></a>
+ {% else %}
+ <a class="subtext" href="{{p.permalink | safe}}">{{ p.title }}</a>
+ {% endif %}
+ </div>
+ {% endfor %}
+ {% endif %}
+{% endmacro navsection %}
+
+{% macro navmenu(current) %}
+ {% if current.ancestors %}
+ {% set hierarchy = current.ancestors | slice(start=1) | concat(with=current.relative_path) %}
+ {% else %}
+ {% set hierarchy = [current.relative_path] %}
+ {% endif %}
+
+ {% set root_path = hierarchy | nth(n=0) %}
+ {% set root = get_section(path=root_path) %}
+ <div class="toc-item toc-section">
+ <a class="subtext" href="{{root.permalink | safe}}">{{ root.title }}</a>
+ </div>
+
+ {{ nav::navsection(hierarchy=hierarchy,level=0,current=current) }}
+{% endmacro %}