<nav class="navbar is-fixed-top is-transparent" role="navigation" aria-label="main navigation"> <div class="navbar-brand"> <a class="navbar-item" href="{{ .Site.Home.Permalink }}"> {{ $imageURL := "https://bulma.io/images/placeholders/64x64.png" }} {{ $image := resources.Get "img/logo.jpg" }} {{ with $image }} {{ $imageResized := $image.Resize "64x" }} {{ $imageURL = $imageResized.Permalink }} {{ end }} <img src="{{ $imageURL }}"> </a> <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbar"> <span aria-hidden="true"></span> <span aria-hidden="true"></span> <span aria-hidden="true"></span> </a> </div> <div id="navbar" class="navbar-menu"> {{/* In case of another navbar-start right after */}} <div class="navbar-start mr-0"> <div class="navbar-item has-dropdown is-hoverable"> <a class="navbar-link"> Catégories </a> <div class="navbar-dropdown"> {{ range $key, $value := .Site.Taxonomies.categories }} <a class="navbar-item {{ if eq $.Permalink .Page.Permalink }}is-active{{ end }}" href="{{ .Page.Permalink }}"> {{ $key | humanize }} <span class="tag ml-2 is-rounded">{{ len . }}</span> </a> {{ end }} </div> </div> <div class="navbar-item has-dropdown is-hoverable"> <a class="navbar-link"> Séries thématiques </a> <div class="navbar-dropdown"> {{ range where .Site.Pages "Params.code" "!=" nil }} <a class="navbar-item {{ if eq $.Permalink .Page.Permalink }}is-active{{ end }}" href="{{ .Page.Permalink }}"> {{ .Title }} {{ $casePosts := where .Site.RegularPages "CurrentSection.Params.code" "==" .Params.code }} <span class="tag ml-2 is-rounded">{{ len $casePosts }}</span> </a> {{ end }} </div> </div> </div> {{/* start/end menu shares the exact same code, just not the same position, factorize with a loop */}} {{ $currentPage := . }} {{ range (slice "start" "end")}} {{ $menuName := . }} <div class="navbar-{{ . }} mr-2"> {{/* now get the menu if it exists */}} {{ with index $.Site.Menus $menuName }} {{/* and range over its pages */}} {{ range . }} {{ if .HasChildren }} <div class="navbar-item has-dropdown is-hoverable {{ if $currentPage.HasMenuCurrent $menuName . }}is-active is-tab{{ end }}"> <a class="navbar-link"> {{ .Pre }} <span>{{ .Name }}</span> </a> <div class="navbar-dropdown"> {{ range .Children }} <a class="navbar-item {{ if $currentPage.IsMenuCurrent $menuName . }}is-active is-tab{{ end }}" href="{{ .URL }}">{{ .Name }}</a> {{ end }} </div> </div> {{ else }} <a class="navbar-item {{ if $currentPage.IsMenuCurrent $menuName . }}is-active is-tab{{ end }}" href="{{ .URL }}">{{ .Name }}</a> {{ end }} {{ end }} {{ end }} </div> {{ end }} <div class="navbar-end ml-0 mr-4"> <div class="level"> <div class="level-left"> <div class="level-item"> {{/* Each item should have a corresponding assets/img/x.png and link in config.yaml */}} {{ range (slice "rss" "mastodon" "peertube" "funkwhale" "gitea" "mail" )}} {{ $imageName := . }} {{/* Get image and resize to logo size */}} {{ $imagePath := printf "img/%s.png" $imageName }} {{ $image := resources.Get $imagePath }} {{ $imageResized := $image.Resize "64x" }} {{/* Get logo link in site params (index allows to use a dynamic parameter name) */}} <a class="navbar-item" href="{{ index $.Site.Params $imageName }}"> <img src="{{ $imageResized.Permalink }}"> </a> {{ end }} </div> </div> </div> </div> </div> </nav> <script> document.addEventListener('DOMContentLoaded', () => { // Get all "navbar-burger" elements const $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0); // Add a click event on each of them $navbarBurgers.forEach( el => { el.addEventListener('click', () => { // Get the target from the "data-target" attribute const target = el.dataset.target; const $target = document.getElementById(target); // Toggle the "is-active" class on both the "navbar-burger" and the "navbar-menu" el.classList.toggle('is-active'); $target.classList.toggle('is-active'); }); }); }); </script>