Skip to content

Commit de05f15

Browse files
authored
Merge pull request #1638 from gethinode/develop
feat: support exact case override in frontmatter
2 parents 48d91b0 + 9730ab1 commit de05f15

File tree

24 files changed

+96
-77
lines changed

24 files changed

+96
-77
lines changed

data/structures/card.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ arguments:
7575
release: v0.24.23
7676
links:
7777
release: v1.14.0
78+
exact:
79+
release: v1.22.0
7880
# deprecated arguments
7981
header:
8082
type: select

data/structures/link.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,6 @@ arguments:
2727
optional: true
2828
release: v1.0.0
2929
exact:
30-
type: bool
31-
comment: >-
32-
Renders the provided link description as-is, without adjusting the case.
33-
Overrides the case setting.
34-
optional: true
3530
release: v1.20.0
3631
# deprecated arguments
3732
destination:

exampleSite/content/en/blog/third-post.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
---
22
author: Mark Dumay
3-
title: Third post
3+
title: third post (exact case)
44
date: 2022-12-01
55
description: This is my third blog post.
66
tags: ["blog"]
7+
exact: true
78
thumbnail:
89
url: https://picsum.photos/id/184/4288/2848.jpg
910
author: Tim de Groot

exampleSite/hugo_stats.json

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -679,11 +679,11 @@
679679
"docs",
680680
"documentation",
681681
"dropdown-nav-0",
682-
"dropdown-panel-050a0480b2739af3444a7692d2ffabe4",
683-
"dropdown-panel-5b0475bb2ff0ff88359696e7f42ea140",
684-
"dropdown-panel-7dd85b0c0ed4b21f5f9f3d4123461dc5",
685-
"dropdown-panel-d3a1583185021c5589c2d1eee3e0a043",
686-
"dropdown-panel-d58afa5209f5ce67666e6a11f6c51c82",
682+
"dropdown-panel-2c1faea20cc4330400f5959b4e9e2921",
683+
"dropdown-panel-480250d281ef5e9fe78132c75a19f244",
684+
"dropdown-panel-8da9211b308a6609a7c77652786b694c",
685+
"dropdown-panel-aba39929e3bac8f182b590b68841b337",
686+
"dropdown-panel-c84e76e5efa3a3520a2b32a8559a7a28",
687687
"eerste-artikel",
688688
"elements-type",
689689
"entity-relationship-diagram",
@@ -704,11 +704,11 @@
704704
"fab-whatsapp",
705705
"fab-x-twitter",
706706
"faq",
707-
"faq-2a15771251138b1ed59e44671a1ec0fb",
708-
"faq-2a15771251138b1ed59e44671a1ec0fb-heading-faq-2a15771251138b1ed59e44671a1ec0fb",
709-
"faq-2a15771251138b1ed59e44671a1ec0fb-item-0",
710-
"faq-2a15771251138b1ed59e44671a1ec0fb-item-1",
711-
"faq-2a15771251138b1ed59e44671a1ec0fb-item-2",
707+
"faq-c59ffb31c41d6dc70fd6be1ba9a6fc56",
708+
"faq-c59ffb31c41d6dc70fd6be1ba9a6fc56-heading-faq-c59ffb31c41d6dc70fd6be1ba9a6fc56",
709+
"faq-c59ffb31c41d6dc70fd6be1ba9a6fc56-item-0",
710+
"faq-c59ffb31c41d6dc70fd6be1ba9a6fc56-item-1",
711+
"faq-c59ffb31c41d6dc70fd6be1ba9a6fc56-item-2",
712712
"fas-1",
713713
"fas-2",
714714
"fas-3",
@@ -805,11 +805,11 @@
805805
"nav-0-btn-1",
806806
"nav-0-btn-2",
807807
"nav-nav-0",
808-
"nav-panel-050a0480b2739af3444a7692d2ffabe4",
809-
"nav-panel-5b0475bb2ff0ff88359696e7f42ea140",
810-
"nav-panel-7dd85b0c0ed4b21f5f9f3d4123461dc5",
811-
"nav-panel-d3a1583185021c5589c2d1eee3e0a043",
812-
"nav-panel-d58afa5209f5ce67666e6a11f6c51c82",
808+
"nav-panel-2c1faea20cc4330400f5959b4e9e2921",
809+
"nav-panel-480250d281ef5e9fe78132c75a19f244",
810+
"nav-panel-8da9211b308a6609a7c77652786b694c",
811+
"nav-panel-aba39929e3bac8f182b590b68841b337",
812+
"nav-panel-c84e76e5efa3a3520a2b32a8559a7a28",
813813
"navbar",
814814
"navbar-0-collapse",
815815
"navbar-mode",
@@ -819,36 +819,36 @@
819819
"notification",
820820
"over-mij",
821821
"overview",
822-
"panel-050a0480b2739af3444a7692d2ffabe4-0",
823-
"panel-050a0480b2739af3444a7692d2ffabe4-1",
824-
"panel-050a0480b2739af3444a7692d2ffabe4-2",
825-
"panel-050a0480b2739af3444a7692d2ffabe4-btn-0",
826-
"panel-050a0480b2739af3444a7692d2ffabe4-btn-1",
827-
"panel-050a0480b2739af3444a7692d2ffabe4-btn-2",
828-
"panel-5b0475bb2ff0ff88359696e7f42ea140-0",
829-
"panel-5b0475bb2ff0ff88359696e7f42ea140-1",
830-
"panel-5b0475bb2ff0ff88359696e7f42ea140-2",
831-
"panel-5b0475bb2ff0ff88359696e7f42ea140-btn-0",
832-
"panel-5b0475bb2ff0ff88359696e7f42ea140-btn-1",
833-
"panel-5b0475bb2ff0ff88359696e7f42ea140-btn-2",
834-
"panel-7dd85b0c0ed4b21f5f9f3d4123461dc5-0",
835-
"panel-7dd85b0c0ed4b21f5f9f3d4123461dc5-1",
836-
"panel-7dd85b0c0ed4b21f5f9f3d4123461dc5-2",
837-
"panel-7dd85b0c0ed4b21f5f9f3d4123461dc5-btn-0",
838-
"panel-7dd85b0c0ed4b21f5f9f3d4123461dc5-btn-1",
839-
"panel-7dd85b0c0ed4b21f5f9f3d4123461dc5-btn-2",
840-
"panel-d3a1583185021c5589c2d1eee3e0a043-0",
841-
"panel-d3a1583185021c5589c2d1eee3e0a043-1",
842-
"panel-d3a1583185021c5589c2d1eee3e0a043-2",
843-
"panel-d3a1583185021c5589c2d1eee3e0a043-btn-0",
844-
"panel-d3a1583185021c5589c2d1eee3e0a043-btn-1",
845-
"panel-d3a1583185021c5589c2d1eee3e0a043-btn-2",
846-
"panel-d58afa5209f5ce67666e6a11f6c51c82-0",
847-
"panel-d58afa5209f5ce67666e6a11f6c51c82-1",
848-
"panel-d58afa5209f5ce67666e6a11f6c51c82-2",
849-
"panel-d58afa5209f5ce67666e6a11f6c51c82-btn-0",
850-
"panel-d58afa5209f5ce67666e6a11f6c51c82-btn-1",
851-
"panel-d58afa5209f5ce67666e6a11f6c51c82-btn-2",
822+
"panel-2c1faea20cc4330400f5959b4e9e2921-0",
823+
"panel-2c1faea20cc4330400f5959b4e9e2921-1",
824+
"panel-2c1faea20cc4330400f5959b4e9e2921-2",
825+
"panel-2c1faea20cc4330400f5959b4e9e2921-btn-0",
826+
"panel-2c1faea20cc4330400f5959b4e9e2921-btn-1",
827+
"panel-2c1faea20cc4330400f5959b4e9e2921-btn-2",
828+
"panel-480250d281ef5e9fe78132c75a19f244-0",
829+
"panel-480250d281ef5e9fe78132c75a19f244-1",
830+
"panel-480250d281ef5e9fe78132c75a19f244-2",
831+
"panel-480250d281ef5e9fe78132c75a19f244-btn-0",
832+
"panel-480250d281ef5e9fe78132c75a19f244-btn-1",
833+
"panel-480250d281ef5e9fe78132c75a19f244-btn-2",
834+
"panel-8da9211b308a6609a7c77652786b694c-0",
835+
"panel-8da9211b308a6609a7c77652786b694c-1",
836+
"panel-8da9211b308a6609a7c77652786b694c-2",
837+
"panel-8da9211b308a6609a7c77652786b694c-btn-0",
838+
"panel-8da9211b308a6609a7c77652786b694c-btn-1",
839+
"panel-8da9211b308a6609a7c77652786b694c-btn-2",
840+
"panel-aba39929e3bac8f182b590b68841b337-0",
841+
"panel-aba39929e3bac8f182b590b68841b337-1",
842+
"panel-aba39929e3bac8f182b590b68841b337-2",
843+
"panel-aba39929e3bac8f182b590b68841b337-btn-0",
844+
"panel-aba39929e3bac8f182b590b68841b337-btn-1",
845+
"panel-aba39929e3bac8f182b590b68841b337-btn-2",
846+
"panel-c84e76e5efa3a3520a2b32a8559a7a28-0",
847+
"panel-c84e76e5efa3a3520a2b32a8559a7a28-1",
848+
"panel-c84e76e5efa3a3520a2b32a8559a7a28-2",
849+
"panel-c84e76e5efa3a3520a2b32a8559a7a28-btn-0",
850+
"panel-c84e76e5efa3a3520a2b32a8559a7a28-btn-1",
851+
"panel-c84e76e5efa3a3520a2b32a8559a7a28-btn-2",
852852
"panels",
853853
"persona",
854854
"pie-chart",
@@ -884,7 +884,7 @@
884884
"table",
885885
"tabs",
886886
"third-party-links--use-of-your-information",
887-
"third-post",
887+
"third-post-exact-case",
888888
"timeline",
889889
"title",
890890
"toast",

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ require (
77
github.com/cloudcannon/bookshop/hugo/v3 v3.16.5 // indirect
88
github.com/gethinode/mod-bootstrap v1.3.4 // indirect
99
github.com/gethinode/mod-csp v1.0.8 // indirect
10-
github.com/gethinode/mod-flexsearch/v3 v3.0.2 // indirect
10+
github.com/gethinode/mod-flexsearch/v3 v3.1.0 // indirect
1111
github.com/gethinode/mod-fontawesome/v2 v2.1.3 // indirect
1212
github.com/gethinode/mod-google-analytics v1.3.3 // indirect
1313
github.com/gethinode/mod-katex v1.1.4 // indirect
1414
github.com/gethinode/mod-leaflet v1.3.1 // indirect
1515
github.com/gethinode/mod-lottie v1.6.1 // indirect
1616
github.com/gethinode/mod-mermaid/v3 v3.0.1 // indirect
1717
github.com/gethinode/mod-simple-datatables/v2 v2.0.2 // indirect
18-
github.com/gethinode/mod-utils/v4 v4.18.0 // indirect
18+
github.com/gethinode/mod-utils/v4 v4.19.0 // indirect
1919
github.com/nextapps-de/flexsearch v0.0.0-20250907103239-defb38b083f0 // indirect
2020
github.com/twbs/bootstrap v5.3.8+incompatible // indirect
2121
)

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ github.com/gethinode/mod-flexsearch/v3 v3.0.1 h1:dHaSImDDp1xtzpW0vc4zychCGOxOCQb
1212
github.com/gethinode/mod-flexsearch/v3 v3.0.1/go.mod h1:iYvaBF6Y62pjnCepYAqLxoX1ZdEBoD+9caj4cBC+MxY=
1313
github.com/gethinode/mod-flexsearch/v3 v3.0.2 h1:CZu0QI2KvqsvQbfbX3GfBjjpXR5rqTpOsMTxg1vd67Y=
1414
github.com/gethinode/mod-flexsearch/v3 v3.0.2/go.mod h1:iYvaBF6Y62pjnCepYAqLxoX1ZdEBoD+9caj4cBC+MxY=
15+
github.com/gethinode/mod-flexsearch/v3 v3.1.0 h1:6H2scrjze3aivlPJU3PHJ2nkQulvmw/U3TiZ7mk/prk=
16+
github.com/gethinode/mod-flexsearch/v3 v3.1.0/go.mod h1:iYvaBF6Y62pjnCepYAqLxoX1ZdEBoD+9caj4cBC+MxY=
1517
github.com/gethinode/mod-fontawesome/v2 v2.1.2 h1:v1aHhbLLwe/05zRHnx9qGqh6b3toDzcLzuv61rWAoGU=
1618
github.com/gethinode/mod-fontawesome/v2 v2.1.2/go.mod h1:zukv88wXqquEvTJJ9mWWk8Ia+9INnA41wYqusf2RcHA=
1719
github.com/gethinode/mod-fontawesome/v2 v2.1.3 h1:G2LyPQVhrXxBSJ/q+mBMXpNClobkQPd3Rw1vzIyvAdk=
@@ -30,6 +32,8 @@ github.com/gethinode/mod-simple-datatables/v2 v2.0.2 h1:6HkJkHg754HG2P5FTXiRePEn
3032
github.com/gethinode/mod-simple-datatables/v2 v2.0.2/go.mod h1:bmXZJeTQ+GZJ83vasFBTS3JSm09Oa/jDX9T187stdnA=
3133
github.com/gethinode/mod-utils/v4 v4.18.0 h1:CLxuPCbsQBGVgAM1x5nmh6V0HJoOcltIfKG9sthpsTk=
3234
github.com/gethinode/mod-utils/v4 v4.18.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
35+
github.com/gethinode/mod-utils/v4 v4.19.0 h1:zTKbfhcFDrEsrQI09zyI7JKQTmAQuuB9OGy7bpB8nDY=
36+
github.com/gethinode/mod-utils/v4 v4.19.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
3337
github.com/nextapps-de/flexsearch v0.0.0-20250907103239-defb38b083f0 h1:55phPhe6fDjfjG0jX4+br3nLORKgjgx8abZUdI0YJRA=
3438
github.com/nextapps-de/flexsearch v0.0.0-20250907103239-defb38b083f0/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
3539
github.com/twbs/bootstrap v5.3.8+incompatible h1:eK1fsXP7R/FWFt+sSNmmvUH9usPocf240nWVw7Dh02o=

layouts/_markup/render-heading.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{{ $class := .Attributes.class }}
22
{{ $text := chomp .Text }}
3-
{{ if site.Params.main.titleCase }}{{ $text = (title ($text | htmlUnescape)) | htmlEscape }}{{ end }}
3+
{{ if and site.Params.main.titleCase (not .Page.Params.exact) }}{{ $text = (title ($text | htmlUnescape)) | htmlEscape }}{{ end }}
44

55
{{ if and site.Params.navigation.anchor $text }}
66
<h{{ .Level }} id="{{ .Anchor | safeURL }}" class="heading {{ with $class }}{{ . }}{{ end }}">

layouts/_partials/assets/args.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@
126126
{{ $prefix := strings.Repeat $args.headerLevel "#" }}
127127
{{ range $k, $v := $types.udt }}
128128
{{ $title := $k }}
129-
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
129+
{{ if and site.Params.main.titleCase (not $args.page.Params.exact) }}{{ $title = title $title }}{{ end }}
130130
{{ printf "%s %s %s" $prefix $title (T "type") | $args.page.RenderString }}
131131
{{ partial "inline/args-table.html" (merge $params (dict "args" $v)) }}
132132
{{ end }}

layouts/_partials/assets/breadcrumb.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
{{- range $index, $item := $args.page.Ancestors.Reverse -}}
3838
{{- $title := .LinkTitle -}}
3939
{{- if .IsHome }}{{ $title = T "home" }}{{ end -}}
40-
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
40+
{{ if and site.Params.main.titleCase (not $args.page.Params.exact) }}{{ $title = title $title }}{{ end }}
4141
{{- $address := or .RelPermalink .Params.Redirect -}}
4242
{{ if and $title $address}}
4343
{{ $items = $items | append (dict "title" $title "address" $address) }}
@@ -65,12 +65,12 @@
6565
{{- $length := len $items }}
6666
{{- range $index, $item := $items -}}
6767
{{ $title := $item.title }}
68-
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
68+
{{ if and site.Params.main.titleCase (not $args.page.Params.exact) }}{{ $title = title $title }}{{ end }}
6969
<li class="breadcrumb-item"><a href="{{ $item.address }}">{{ $title }}</a></li>
7070
{{- end -}}
7171
<li class="breadcrumb-item active" aria-current="page">
7272
{{ $title := $args.page.LinkTitle }}
73-
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
73+
{{ if and site.Params.main.titleCase (not $args.page.Params.exact) }}{{ $title = title $title }}{{ end }}
7474
{{ $title }}
7575
</li>
7676
</ol>

layouts/_partials/assets/card-group.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
{{- $params := dict -}}
8585
{{/* regular page */}}
8686
{{- if and $element.RelPermalink $element.File -}}
87-
{{- $params = merge $params (dict "path" $element.Path) -}}
87+
{{- $params = merge $params (dict "path" $element.Path "exact" $element.Params.exact) -}}
8888
{{/* headless page */}}
8989
{{- else -}}
9090
{{- $thumbnail := "" -}}
@@ -191,7 +191,7 @@
191191
<div class="pt-{{ $padding.y }}">{{- partial "assets/pagination.html" (dict "page" $args.page "format" "terse") -}}</div>
192192
{{- end -}}
193193
{{- else -}}
194-
{{- if or (and (gt $count $max) $args.hrefTitle) (and $args.hrefForce $args.hrefTitle) -}}
194+
{{- if or (and (gt $count $max) $args.hrefTitle) (and $args.hrefForce $args.hrefTitle) -}}
195195
{{- $href := $args.href -}}
196196
{{- if and $pretty (not (hasSuffix $href "/" )) (not (strings.Contains $href "#")) -}}
197197
{{- $href = printf "%s/" $href -}}

0 commit comments

Comments
 (0)