1
0
mirror of https://github.com/alanorth/hugo-theme-bootstrap4-blog.git synced 2024-12-19 00:52:19 +01:00

layouts/: Use absLangURL to determine active page in menu

On sites with multiple languages we need to use the absolute URL in
the test to determine if the current page should be marked "active"
in the menu bar. Perhaps a bug with Hugo that relative links end up
like "/bg/bg/about" instead of "/bg/about".
This commit is contained in:
Alan Orth 2017-04-04 12:03:07 +03:00
parent 09d089f214
commit 77671af35d
Signed by: alanorth
GPG Key ID: 0FB860CC9C45B1B9

View File

@ -35,16 +35,16 @@
<div class="container"> <div class="container">
<nav class="nav blog-nav"> <nav class="nav blog-nav">
<a class="nav-link {{ if .IsHome }}active{{ end }}" href="{{ .Site.BaseURL | absLangURL }}">{{ i18n "home" }}</a> <a class="nav-link {{ if .IsHome }}active{{ end }}" href="{{ .Site.BaseURL | absLangURL }}">{{ i18n "home" }}</a>
{{ $currentRelURL := .URL | relLangURL }} {{ $currentURL := .URL | absLangURL }}
{{ if .Site.Params.custom_navbar }} {{ if .Site.Params.custom_navbar }}
{{ range .Site.Menus.navbar }} {{ range .Site.Menus.navbar }}
{{ $menuRelURL := .URL | relLangURL }} {{ $menuURL := .URL | absLangURL }}
<a class="nav-link {{ if eq $menuRelURL $currentRelURL }}active{{ end }}" href="{{.URL | absURL }}">{{ .Name }}</a> <a class="nav-link {{ if eq $menuURL $currentURL }}active{{ end }}" href="{{.URL | absURL }}">{{ .Name }}</a>
{{ end }} {{ end }}
{{ else }} {{ else }}
{{ range where .Site.RegularPages "Type" "!=" "post" }} {{ range where .Site.RegularPages "Type" "!=" "post" }}
{{ $permalinkRelURL := .Permalink | relLangURL }} {{ $permalinkURL := .Permalink | absLangURL }}
<a class="nav-link {{ if eq $permalinkRelURL $currentRelURL }}active{{ end }}" href="{{ .Permalink }}">{{ .Title }}</a> <a class="nav-link {{ if eq $permalinkURL $currentURL }}active{{ end }}" href="{{ .Permalink }}">{{ .Title }}</a>
{{ end }} {{ end }}
{{ end }} {{ end }}
</nav> </nav>