diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 9a673f1207..33e89b9342 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -91,8 +91,7 @@ {{- $showBreadcrumb := (and (not .Params.disableBreadcrumb) (not .Site.Params.disableBreadcrumb)) }} {{- if $showBreadcrumb }} <ol class="links" itemscope itemtype="http://schema.org/BreadcrumbList"> - <meta itemprop="itemListOrder" content="Descending"> - {{- template "breadcrumb" dict "page" . "depth" 0 }} + {{- template "breadcrumb" dict "page" . }} </ol> {{- else }} <span class="links"> @@ -111,16 +110,31 @@ {{- partial "tags.html" . }} </div> {{- define "breadcrumb" }} - {{- $parent := .page.Parent }} - {{- $ispublished := gt (int (len .page.Permalink)) 0 }} - {{- $depth := .depth }} - {{- if $ispublished }} - {{- $depth = add $depth 1 }} + {{- $breadcrumb := slice }} + {{- $page := .page }} + {{- $breadcrumb = $breadcrumb | append $page }} + {{- range seq (len .page.Site.Home.Pages) }} + {{- $page = $page.Parent }} + {{- if $page }} + {{- $breadcrumb = $breadcrumb | append $page }} + {{- else }} + {{- break }} + {{- end }} {{- end }} - {{- if $parent }} - {{- template "breadcrumb" dict "page" $parent "depth" $depth }} + {{- $len := len $breadcrumb -}} + {{- $breadcrumbReversed := slice }} + {{- range seq $len }} + {{- $breadcrumbReversed = $breadcrumbReversed | append (index $breadcrumb (sub $len .)) }} {{- end }} - {{- if $ispublished }} - <li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><meta itemprop="position" content="{{ $depth }}"><a itemprop="item" href="{{ .page.RelPermalink }}"{{if not .depth}} aria-disabled="true"{{end}}><span itemprop="name">{{if .page.Title}}{{ .page.Title }}{{else}}{{ .page.Site.Title }}{{end}}</span></a>{{ if .depth }} > {{ end }}</li> + {{- $remaining := $len }} + {{- $depth := 0 }} + {{- range $i, $e := $breadcrumbReversed }} + {{- $page := $e }} + {{- $ispublished := gt (int (len $page.Permalink)) 0 }} + {{- $remaining = sub $remaining 1 }} + {{- if $ispublished }} + {{- $depth = add $depth 1 }} + <li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement">{{ if $remaining }}<a itemprop="item" href="{{ $page.RelPermalink }}">{{end}}<span itemprop="name">{{ if $page.Title }}{{ $page.Title }}{{ else }}{{ $page.Site.Title }}{{ end }}</span>{{ if $remaining }}</a>{{ end }}<meta itemprop="position" content="{{ $depth }}"></li>{{ if $remaining }} > {{ end }} + {{- end }} {{- end }} {{- end }} \ No newline at end of file