diff options
author | Sangeeth Sudheer <git@sangeeth.dev> | 2025-03-07 10:19:49 +0530 |
---|---|---|
committer | Sangeeth Sudheer <git@sangeeth.dev> | 2025-03-09 01:50:55 +0530 |
commit | c7188632b728bff9caf3bb0b9746e662f2eddee1 (patch) | |
tree | e8df4a97d88a1b2ddae7e4e133ac57dbd0761cf1 | |
parent | da22bc00a46bf3d0539bae77da9d278bc1131e02 (diff) |
Add breadcrumbs config to hide current page and change home text
Changes `breadcrumbs` config into an object to add customizations such as hiding current page and changing the text of
the home crumb.
By default, Typo will now show breadcrumbs. If breadcrumbs are enabled, the current default of showing the
current page crumb is preserved.
BREAKING CHANGE: `breadcrumbs` is now an object so existing `breadcrumbs = <true/false>` line in config needs to be changed.
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | assets/css/main.css | 8 | ||||
-rw-r--r-- | hugo.toml | 6 | ||||
-rw-r--r-- | layouts/partials/breadcrumbs.html | 28 | ||||
-rw-r--r-- | wiki/features/other-parameters.md | 14 | ||||
-rw-r--r-- | wiki/setup.md | 5 |
6 files changed, 47 insertions, 16 deletions
@@ -108,3 +108,5 @@ $RECYCLE.BIN/ # Windows shortcuts *.lnk + +.idea/ diff --git a/assets/css/main.css b/assets/css/main.css index 65ea0b4..6e83511 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -524,16 +524,14 @@ figcaption { /* breadcrumbs */ .breadcrumbs { + display: flex; + flex-wrap: wrap; + gap: 2px; font-size: small; margin-bottom: calc(-0.5 * var(--h1-margin-top)); font-family: var(--font-mono); } -.breadcrumbs span { - margin-right: -5px; - margin-left: -5px; -} - /* Comments */ .giscus { @@ -7,3 +7,9 @@ title = 'typo' [module.hugoVersion] extended = false min = "0.116.0" + +# Default config +[params.breadcrumbs] +enabled = true +showCurrentPage = true +home = "Home"
\ No newline at end of file diff --git a/layouts/partials/breadcrumbs.html b/layouts/partials/breadcrumbs.html index 5c4fb62..df67cb8 100644 --- a/layouts/partials/breadcrumbs.html +++ b/layouts/partials/breadcrumbs.html @@ -1,9 +1,23 @@ -{{ if .Site.Params.breadcrumbs }} +{{- if .Site.Params.breadcrumbs.enabled -}} +{{- $breadcrumbs := .Site.Params.breadcrumbs -}} <div class="breadcrumbs"> - {{ range .Ancestors.Reverse }} - <a href="{{ .RelPermalink }}">{{ .Title }}</a> - <span class="breadcrumbs-separator"> / </span> - {{ end }} - <a href="{{ .RelPermalink }}">{{ .Title }}</a> + {{- range $i, $v := .Ancestors.Reverse -}} + <a href="{{ .RelPermalink }}"> + {{- if (and (eq $i 0) (ne $breadcrumbs.home "")) -}} + {{- $breadcrumbs.home -}} + {{- else -}} + {{- .Title -}} + {{- end -}} + </a> + + {{- if (lt $i (sub $.Ancestors.Len 1)) -}} + <span class="breadcrumbs-separator">/</span> + {{- end -}} + {{- end -}} + + {{- if $breadcrumbs.showCurrentPage -}} + <span class="breadcrumbs-separator">/</span> + <a href="{{ .RelPermalink }}">{{ .Title }}</a> + {{- end -}} </div> -{{ end }}
\ No newline at end of file +{{- end -}}
\ No newline at end of file diff --git a/wiki/features/other-parameters.md b/wiki/features/other-parameters.md index 136698e..a6e370d 100644 --- a/wiki/features/other-parameters.md +++ b/wiki/features/other-parameters.md @@ -25,11 +25,21 @@ description = "Your description" Show breadcrumbs on pages. +Example: + ```toml -[params] -breadcrumbs = true +[params.breadcrumbs] +enabled = true +showCurrentPage = true +home = "~" ``` +Set `enabled` to `false` if you want to hide breadcrumbs. By default, breadcrumbs are shown. + +Set `showCurrentPage` to `false` to hide the last crumb, i.e, the current page. + +`home` when set with a non-empty string, uses the latter as the first crumb instead of the string "Home". + ## Comments Enable comments on your posts using [Giscus](https://giscus.app/). diff --git a/wiki/setup.md b/wiki/setup.md index db73c80..eb5c13f 100644 --- a/wiki/setup.md +++ b/wiki/setup.md @@ -114,8 +114,9 @@ paginationSize = 100 listSummaries = true listDateFormat = '2 Jan 2006' -# Breadcrumbs -breadcrumbs = true +# Breadcrumbs (Uncomment to disable) +# [params.breadcrumbs] +# enabled = false # Social icons [[params.social]] |