-
Notifications
You must be signed in to change notification settings - Fork 62
Expand file tree
/
Copy pathbreadcrumb.html
More file actions
78 lines (70 loc) · 2.99 KB
/
breadcrumb.html
File metadata and controls
78 lines (70 loc) · 2.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
{{/*
Copyright © 2022 - 2025 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
*/}}
{{ $error := false }}
{{/* Limits a title to a maximum of 33 runes, adds a "..." suffix otherwise */}}
{{ define "_partials/inline/short-title.html" }}
{{- $title := . -}}
{{ if gt (strings.RuneCount $title) 33 }}
{{ $title = print (substr $title 0 30) "..." }}
{{ end }}
{{ return $title }}
{{ end }}
{{/* Initialize arguments */}}
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "breadcrumb" "args" . "group" "partial") }}
{{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/breadcrumb.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg)
"file" page.File
)}}
{{ $error = $args.err }}
{{ end }}
{{/* Initialize local arguments */}}
{{- $breakpoint := $args.page.Scratch.Get "breakpoint" -}}
{{/* Include breadcrumb items that have both a title and address */}}
{{ $items := slice }}
{{- range $index, $item := $args.page.Ancestors.Reverse -}}
{{- $title := .LinkTitle -}}
{{- if .IsHome }}{{ $title = T "home" }}{{ end -}}
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
{{- $address := or .RelPermalink .Params.Redirect -}}
{{ if and $title $address}}
{{ $items = $items | append (dict "title" $title "address" $address) }}
{{ end }}
{{ end }}
{{/* Main code */}}
{{ if not $error }}
<nav aria-label="breadcrumb" class="d-{{ $breakpoint.prev }}-none">
<ol class="breadcrumb">
{{- $length := len $items -}}
{{- if gt $length 0 -}}
{{ $item := index $items (sub $length 1) }}
<li class="breadcrumb-item">
<a href="{{ $item.address }}">
{{ partial "assets/icon.html" (dict "icon" "fas angle-left") }} {{ partial "inline/short-title" $item.title }}
</a>
</li>
{{- end -}}
</ol>
</nav>
<nav aria-label="breadcrumb" class="d-none d-{{ $breakpoint.prev }}-block">
<ol class="breadcrumb">
{{- $length := len $items }}
{{- range $index, $item := $items -}}
{{ $title := $item.title }}
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
<li class="breadcrumb-item"><a href="{{ $item.address }}">{{ $title }}</a></li>
{{- end -}}
<li class="breadcrumb-item active" aria-current="page">
{{ $title := $args.page.LinkTitle }}
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
{{ $title }}
</li>
</ol>
</nav>
{{ end }}