mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 18:14:28 +00:00
Compare commits
30 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
a4057ad498 | ||
![]() |
09d3294867 | ||
![]() |
7b167e32c4 | ||
![]() |
941698cc15 | ||
![]() |
1ec7d7477b | ||
![]() |
9ef702ef06 | ||
![]() |
5e41fddef3 | ||
![]() |
a620900c18 | ||
![]() |
cc25fe311d | ||
![]() |
c057b11094 | ||
![]() |
df6fb8f0ff | ||
![]() |
a6c3de6a7d | ||
![]() |
efb9c56b55 | ||
![]() |
7e3301d277 | ||
![]() |
068df86fd8 | ||
![]() |
4f57919a96 | ||
![]() |
21f90455d4 | ||
![]() |
50499a415a | ||
![]() |
e75c8cf40f | ||
![]() |
42529594b0 | ||
![]() |
73afeb13bd | ||
![]() |
23ece830e2 | ||
![]() |
41f5dbaea1 | ||
![]() |
5e368f2726 | ||
![]() |
2db3365115 | ||
![]() |
bf2235a96b | ||
![]() |
2ab8ee674f | ||
![]() |
e52d14e21a | ||
![]() |
46101e174e | ||
![]() |
d28b51aa63 |
@@ -75,6 +75,35 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a.toc-item {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.toc-level-1 {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.toc-level-2 {
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.toc-level-3 {
|
||||||
|
margin-left: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.toc-level-4 {
|
||||||
|
margin-left: 3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.toc-level-5 {
|
||||||
|
margin-left: 4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.toc-level-6 {
|
||||||
|
margin-left: 5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@if $enable-dark-mode {
|
@if $enable-dark-mode {
|
||||||
[data-bs-theme="dark"] {
|
[data-bs-theme="dark"] {
|
||||||
.toc-button {
|
.toc-button {
|
||||||
|
@@ -116,7 +116,7 @@ home = ["HTML", "RSS", "REDIR", "netlify", "server"]
|
|||||||
[module]
|
[module]
|
||||||
[module.hugoVersion]
|
[module.hugoVersion]
|
||||||
extended = true
|
extended = true
|
||||||
min = "0.136.3"
|
min = "0.141.0"
|
||||||
[[module.mounts]]
|
[[module.mounts]]
|
||||||
source = "archetypes"
|
source = "archetypes"
|
||||||
target = "archetypes"
|
target = "archetypes"
|
||||||
|
@@ -10,6 +10,7 @@
|
|||||||
footerBelowFold = false
|
footerBelowFold = false
|
||||||
loading = "lazy"
|
loading = "lazy"
|
||||||
breakpoint = "md"
|
breakpoint = "md"
|
||||||
|
titleCase = false
|
||||||
[main.internalLinks]
|
[main.internalLinks]
|
||||||
validate = true
|
validate = true
|
||||||
pretty = false
|
pretty = false
|
||||||
@@ -41,6 +42,12 @@
|
|||||||
host = "youtube"
|
host = "youtube"
|
||||||
# toml-docs-end videos
|
# toml-docs-end videos
|
||||||
|
|
||||||
|
[dam]
|
||||||
|
videoCodecs = [
|
||||||
|
"webm/vp9",
|
||||||
|
"mp4/h265",
|
||||||
|
"mp4"
|
||||||
|
]
|
||||||
|
|
||||||
# toml-docs-start debugging
|
# toml-docs-start debugging
|
||||||
[debugging]
|
[debugging]
|
||||||
|
@@ -79,12 +79,10 @@ arguments:
|
|||||||
- 16x9
|
- 16x9
|
||||||
- 21x9
|
- 21x9
|
||||||
release: v0.26.5
|
release: v0.26.5
|
||||||
portrait:
|
options:
|
||||||
type: bool
|
type: string
|
||||||
optional: true
|
optional: true
|
||||||
default: false
|
release: v0.28.2
|
||||||
comment: >-
|
comment: >-
|
||||||
Flag to adjust the ratio from landscape to portrait. The image itself is
|
Optional query parameters to append to video asset's url. The query string
|
||||||
not rotated, only the crop area is adjusted. Not applicable to vector
|
is prepended with a `?` symbol. Only applicable to Cloudinary.
|
||||||
graphics.
|
|
||||||
release: v0.26.5
|
|
2
exampleSite/config/_default/params.fr.toml
Normal file
2
exampleSite/config/_default/params.fr.toml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[main]
|
||||||
|
titleCase = false
|
2
exampleSite/config/_default/params.nl.toml
Normal file
2
exampleSite/config/_default/params.nl.toml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[main]
|
||||||
|
titleCase = false
|
@@ -8,6 +8,7 @@
|
|||||||
footerBelowFold = false
|
footerBelowFold = false
|
||||||
loading = "lazy"
|
loading = "lazy"
|
||||||
breakpoint = "md"
|
breakpoint = "md"
|
||||||
|
titleCase = true
|
||||||
[main.internalLinks]
|
[main.internalLinks]
|
||||||
validate = true
|
validate = true
|
||||||
pretty = true
|
pretty = true
|
||||||
@@ -63,6 +64,11 @@
|
|||||||
|
|
||||||
[dam]
|
[dam]
|
||||||
dimensions = "dimensions.yml"
|
dimensions = "dimensions.yml"
|
||||||
|
videoCodecs = [
|
||||||
|
"webm/vp9",
|
||||||
|
"mp4/h265",
|
||||||
|
"mp4"
|
||||||
|
]
|
||||||
|
|
||||||
[[dam.providers]]
|
[[dam.providers]]
|
||||||
name = "Cloudinary"
|
name = "Cloudinary"
|
||||||
|
@@ -14,7 +14,6 @@
|
|||||||
"footer",
|
"footer",
|
||||||
"form",
|
"form",
|
||||||
"h2",
|
"h2",
|
||||||
"h3",
|
|
||||||
"head",
|
"head",
|
||||||
"hr",
|
"hr",
|
||||||
"html",
|
"html",
|
||||||
@@ -252,6 +251,7 @@
|
|||||||
"font-monospace",
|
"font-monospace",
|
||||||
"footer",
|
"footer",
|
||||||
"form-control",
|
"form-control",
|
||||||
|
"fs-2",
|
||||||
"fs-3",
|
"fs-3",
|
||||||
"fs-5",
|
"fs-5",
|
||||||
"fs-6",
|
"fs-6",
|
||||||
@@ -357,7 +357,6 @@
|
|||||||
"p-2",
|
"p-2",
|
||||||
"p-3",
|
"p-3",
|
||||||
"p-4",
|
"p-4",
|
||||||
"pb-2",
|
|
||||||
"pb-3",
|
"pb-3",
|
||||||
"pb-4",
|
"pb-4",
|
||||||
"pb-5",
|
"pb-5",
|
||||||
@@ -373,6 +372,7 @@
|
|||||||
"ps-1",
|
"ps-1",
|
||||||
"ps-3",
|
"ps-3",
|
||||||
"pt-1",
|
"pt-1",
|
||||||
|
"pt-4",
|
||||||
"pt-5",
|
"pt-5",
|
||||||
"pt-md-3",
|
"pt-md-3",
|
||||||
"ptw-3",
|
"ptw-3",
|
||||||
@@ -469,6 +469,8 @@
|
|||||||
"toast-header",
|
"toast-header",
|
||||||
"toc",
|
"toc",
|
||||||
"toc-button",
|
"toc-button",
|
||||||
|
"toc-item",
|
||||||
|
"toc-level-1",
|
||||||
"toc-panel",
|
"toc-panel",
|
||||||
"toc-sidebar",
|
"toc-sidebar",
|
||||||
"toggler-icon",
|
"toggler-icon",
|
||||||
@@ -485,7 +487,6 @@
|
|||||||
"w-50"
|
"w-50"
|
||||||
],
|
],
|
||||||
"ids": [
|
"ids": [
|
||||||
"TableOfContents",
|
|
||||||
"abbr",
|
"abbr",
|
||||||
"accordion",
|
"accordion",
|
||||||
"accordion-0",
|
"accordion-0",
|
||||||
|
6
go.mod
6
go.mod
@@ -6,14 +6,14 @@ require (
|
|||||||
github.com/airbnb/lottie-web v5.12.2+incompatible // indirect
|
github.com/airbnb/lottie-web v5.12.2+incompatible // indirect
|
||||||
github.com/gethinode/mod-bootstrap v1.3.2 // indirect
|
github.com/gethinode/mod-bootstrap v1.3.2 // indirect
|
||||||
github.com/gethinode/mod-csp v1.0.7 // indirect
|
github.com/gethinode/mod-csp v1.0.7 // indirect
|
||||||
github.com/gethinode/mod-flexsearch/v2 v2.0.3 // indirect
|
github.com/gethinode/mod-flexsearch/v2 v2.1.0 // indirect
|
||||||
github.com/gethinode/mod-fontawesome v1.10.1 // indirect
|
github.com/gethinode/mod-fontawesome v1.10.1 // indirect
|
||||||
github.com/gethinode/mod-google-analytics v1.3.1 // indirect
|
github.com/gethinode/mod-google-analytics v1.3.1 // indirect
|
||||||
github.com/gethinode/mod-katex v1.1.3 // indirect
|
github.com/gethinode/mod-katex v1.1.3 // indirect
|
||||||
github.com/gethinode/mod-leaflet v1.2.1 // indirect
|
github.com/gethinode/mod-leaflet v1.2.1 // indirect
|
||||||
github.com/gethinode/mod-lottie v1.5.13 // indirect
|
github.com/gethinode/mod-lottie v1.5.13 // indirect
|
||||||
github.com/gethinode/mod-simple-datatables v1.1.6 // indirect
|
github.com/gethinode/mod-simple-datatables v1.1.7 // indirect
|
||||||
github.com/gethinode/mod-utils/v2 v2.8.6 // indirect
|
github.com/gethinode/mod-utils/v2 v2.9.0 // indirect
|
||||||
github.com/nextapps-de/flexsearch v0.0.0-20240501124520-961c3ae84a87 // indirect
|
github.com/nextapps-de/flexsearch v0.0.0-20240501124520-961c3ae84a87 // indirect
|
||||||
github.com/twbs/bootstrap v5.3.3+incompatible // indirect
|
github.com/twbs/bootstrap v5.3.3+incompatible // indirect
|
||||||
)
|
)
|
||||||
|
6
go.sum
6
go.sum
@@ -96,6 +96,8 @@ github.com/gethinode/mod-flexsearch/v2 v2.0.2 h1:5FkLbjORwKvK544H/yaAltyIB7eptRP
|
|||||||
github.com/gethinode/mod-flexsearch/v2 v2.0.2/go.mod h1:d7MMkVlz0l6cEk76e0mkveEsDxGfu5Sv+HUIhoGguhE=
|
github.com/gethinode/mod-flexsearch/v2 v2.0.2/go.mod h1:d7MMkVlz0l6cEk76e0mkveEsDxGfu5Sv+HUIhoGguhE=
|
||||||
github.com/gethinode/mod-flexsearch/v2 v2.0.3 h1:lC4UN9DPYyj3lsRm86Rt+kKx2DmAS10dOxbM/1H8fVw=
|
github.com/gethinode/mod-flexsearch/v2 v2.0.3 h1:lC4UN9DPYyj3lsRm86Rt+kKx2DmAS10dOxbM/1H8fVw=
|
||||||
github.com/gethinode/mod-flexsearch/v2 v2.0.3/go.mod h1:d7MMkVlz0l6cEk76e0mkveEsDxGfu5Sv+HUIhoGguhE=
|
github.com/gethinode/mod-flexsearch/v2 v2.0.3/go.mod h1:d7MMkVlz0l6cEk76e0mkveEsDxGfu5Sv+HUIhoGguhE=
|
||||||
|
github.com/gethinode/mod-flexsearch/v2 v2.1.0 h1:NzCruYAKQBMM1DwFFoH7/tzqmItR6sKByMHZWRaRiRk=
|
||||||
|
github.com/gethinode/mod-flexsearch/v2 v2.1.0/go.mod h1:d7MMkVlz0l6cEk76e0mkveEsDxGfu5Sv+HUIhoGguhE=
|
||||||
github.com/gethinode/mod-fontawesome v1.0.2 h1:ZSK6D20/w4y5GnfYfTBB58uHD0ChIfkpKfRGwioS9rg=
|
github.com/gethinode/mod-fontawesome v1.0.2 h1:ZSK6D20/w4y5GnfYfTBB58uHD0ChIfkpKfRGwioS9rg=
|
||||||
github.com/gethinode/mod-fontawesome v1.0.2/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
github.com/gethinode/mod-fontawesome v1.0.2/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
github.com/gethinode/mod-fontawesome v1.1.0 h1:rsDzUI+3ZlS/do2ff3ne8/z3KwHeysmuA+WsXlumXXk=
|
github.com/gethinode/mod-fontawesome v1.1.0 h1:rsDzUI+3ZlS/do2ff3ne8/z3KwHeysmuA+WsXlumXXk=
|
||||||
@@ -308,6 +310,8 @@ github.com/gethinode/mod-simple-datatables v1.1.5 h1:DKJ+aR94mekzcDwOnm6MJ/+MjAz
|
|||||||
github.com/gethinode/mod-simple-datatables v1.1.5/go.mod h1:bvMdmQFk4Hvyltf/QhMqUaApvPbIGTnbI3JLjOEh8go=
|
github.com/gethinode/mod-simple-datatables v1.1.5/go.mod h1:bvMdmQFk4Hvyltf/QhMqUaApvPbIGTnbI3JLjOEh8go=
|
||||||
github.com/gethinode/mod-simple-datatables v1.1.6 h1:7nPeRwHlYbmlNEg7fBV6FyXqpxWW6ZAemaZyYxpIF8U=
|
github.com/gethinode/mod-simple-datatables v1.1.6 h1:7nPeRwHlYbmlNEg7fBV6FyXqpxWW6ZAemaZyYxpIF8U=
|
||||||
github.com/gethinode/mod-simple-datatables v1.1.6/go.mod h1:bvMdmQFk4Hvyltf/QhMqUaApvPbIGTnbI3JLjOEh8go=
|
github.com/gethinode/mod-simple-datatables v1.1.6/go.mod h1:bvMdmQFk4Hvyltf/QhMqUaApvPbIGTnbI3JLjOEh8go=
|
||||||
|
github.com/gethinode/mod-simple-datatables v1.1.7 h1:wCY2bWFUxRHWbWzb/zefCACooCSbDPYKrZthfn+qAgM=
|
||||||
|
github.com/gethinode/mod-simple-datatables v1.1.7/go.mod h1:FjkIEuxqeLLEqqDcz/nHAGHsRfV7EJP5Uhk4kYD8okY=
|
||||||
github.com/gethinode/mod-utils v1.0.0 h1:cqHm2xS5uDiJzRm1KfHaNbq6uMVDKLhQa8/BuTZ1nhY=
|
github.com/gethinode/mod-utils v1.0.0 h1:cqHm2xS5uDiJzRm1KfHaNbq6uMVDKLhQa8/BuTZ1nhY=
|
||||||
github.com/gethinode/mod-utils v1.0.0/go.mod h1:ONJm3pHCq7nvaPNjusLZNCeCbhOhSBH4HVKHwK1FdYE=
|
github.com/gethinode/mod-utils v1.0.0/go.mod h1:ONJm3pHCq7nvaPNjusLZNCeCbhOhSBH4HVKHwK1FdYE=
|
||||||
github.com/gethinode/mod-utils v1.0.1 h1:jhZGlGFHHL1f5HXbBMXfiZ2gCz4TVafAzjnRPTIBSEE=
|
github.com/gethinode/mod-utils v1.0.1 h1:jhZGlGFHHL1f5HXbBMXfiZ2gCz4TVafAzjnRPTIBSEE=
|
||||||
@@ -378,6 +382,8 @@ github.com/gethinode/mod-utils/v2 v2.8.5 h1:e71ncO2NYpum7JTdNTwb0lw8aDe8Zc64Ehja
|
|||||||
github.com/gethinode/mod-utils/v2 v2.8.5/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
github.com/gethinode/mod-utils/v2 v2.8.5/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
||||||
github.com/gethinode/mod-utils/v2 v2.8.6 h1:gtTtL37YPq1n/POIzbj40aYOg1VaZq8IjqwSf2V5yo0=
|
github.com/gethinode/mod-utils/v2 v2.8.6 h1:gtTtL37YPq1n/POIzbj40aYOg1VaZq8IjqwSf2V5yo0=
|
||||||
github.com/gethinode/mod-utils/v2 v2.8.6/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
github.com/gethinode/mod-utils/v2 v2.8.6/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
||||||
|
github.com/gethinode/mod-utils/v2 v2.9.0 h1:IGaYO+DNo7CcplyAUJASP1sf10/EqiG8sVVM1Q4SJKc=
|
||||||
|
github.com/gethinode/mod-utils/v2 v2.9.0/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
||||||
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3 h1:H/qVR5O4BXjRjD+5PZB+r4ug2BSJ2Of4RtwOntd+OKo=
|
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3 h1:H/qVR5O4BXjRjD+5PZB+r4ug2BSJ2Of4RtwOntd+OKo=
|
||||||
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
|
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
|
||||||
github.com/nextapps-de/flexsearch v0.0.0-20240108021025-afd75f742f22 h1:re7L8FxbXQpnX8BgzkdUnDpsUmloGNyLmiy2ZCln8pg=
|
github.com/nextapps-de/flexsearch v0.0.0-20240108021025-afd75f742f22 h1:re7L8FxbXQpnX8BgzkdUnDpsUmloGNyLmiy2ZCln8pg=
|
||||||
|
@@ -1,11 +1,11 @@
|
|||||||
{{ with transform.ToMath .Inner (dict "displayMode" true) }}
|
{{ with try (transform.ToMath .Inner (dict "displayMode" true)) }}
|
||||||
{{ with .Err }}
|
{{ with .Err }}
|
||||||
{{ errorf "Failed to render KaTeX: %q. See %s" . $.Position }}
|
{{ errorf "Failed to render KaTeX: %q. See %s" . $.Position }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ if $.Attributes.class }}
|
{{ if $.Attributes.class }}
|
||||||
<div class="{{ $.Attributes.class }}">{{ . }}</div>
|
<div class="{{ $.Attributes.class | safeHTMLAttr }}">{{ .Value }}</div>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ . }}
|
{{ .Value }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
17
layouts/_default/_markup/render-heading-new.html
Normal file
17
layouts/_default/_markup/render-heading-new.html
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{{ $text := chomp .Text }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $text = title $text }}{{ end }}
|
||||||
|
|
||||||
|
{{ if eq page.RelPermalink "/en/privacy/" }}
|
||||||
|
{{ warnf "title: %s" (.Text | safeHTML) }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if and site.Params.navigation.anchor $text }}
|
||||||
|
<h{{ .Level }} id="{{ .Anchor | safeURL }}" class="heading">
|
||||||
|
{{- $text | safeHTML -}}
|
||||||
|
<a href="#{{ .Anchor | safeURL }}" aria-labelledby="{{ .Anchor | safeURL }}">
|
||||||
|
{{- partial "assets/icon.html" (dict "icon" "fas link anchor") }}
|
||||||
|
</a>
|
||||||
|
</h{{ .Level }}>
|
||||||
|
{{ else }}
|
||||||
|
<h{{ .Level }} id="{{ .Anchor | safeURL }}">{{ $text | safeHTML }}</h{{ .Level }}>
|
||||||
|
{{ end }}
|
@@ -1,12 +1,13 @@
|
|||||||
{{ $text := trim .Text " \n\r" }}
|
{{ $text := chomp .Text }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $text = (title ($text | htmlUnescape)) | htmlEscape }}{{ end }}
|
||||||
|
|
||||||
{{ if and site.Params.navigation.anchor $text }}
|
{{ if and site.Params.navigation.anchor $text }}
|
||||||
<h{{ .Level }} id="{{ .Anchor | safeURL }}" class="heading">
|
<h{{ .Level }} id="{{ .Anchor | safeURL }}" class="heading">
|
||||||
{{- .Text | safeHTML -}}
|
{{- $text | safeHTML -}}
|
||||||
<a href="#{{ .Anchor | safeURL }}" aria-labelledby="{{ .Anchor | safeURL }}">
|
<a href="#{{ .Anchor | safeURL }}" aria-labelledby="{{ .Anchor | safeURL }}">
|
||||||
{{- partial "assets/icon.html" (dict "icon" "fas link anchor") }}
|
{{- partial "assets/icon.html" (dict "icon" "fas link anchor") }}
|
||||||
</a>
|
</a>
|
||||||
</h{{ .Level }}>
|
</h{{ .Level }}>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<h{{ .Level }} id="{{ .Anchor | safeURL }}">{{ .Text | safeHTML }}</h{{ .Level }}>
|
<h{{ .Level }} id="{{ .Anchor | safeURL }}">{{ $text | safeHTML }}</h{{ .Level }}>
|
||||||
{{ end }}
|
{{ end }}
|
@@ -4,10 +4,10 @@
|
|||||||
{{ $opts = dict "displayMode" true }}
|
{{ $opts = dict "displayMode" true }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ with transform.ToMath .Inner $opts }}
|
{{ with try (transform.ToMath .Inner $opts) }}
|
||||||
{{ with .Err }}
|
{{ with .Err }}
|
||||||
{{ errorf "Failed to render KaTeX: %q. See %s" . $.Position }}
|
{{ errorf "Failed to render KaTeX: %q. See %s" . $.Position }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ . }}
|
{{ .Value }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
@@ -2,11 +2,13 @@
|
|||||||
{{- $fullCover := $.Scratch.Get "fullCover" -}}
|
{{- $fullCover := $.Scratch.Get "fullCover" -}}
|
||||||
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
|
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
|
||||||
{{- $layout := .Params.layout -}}
|
{{- $layout := .Params.layout -}}
|
||||||
|
{{- $title := .Title }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
|
|
||||||
<div class="row row-cols-1 row-cols-{{ $breakpoint.current }}-2">
|
<div class="row row-cols-1 row-cols-{{ $breakpoint.current }}-2">
|
||||||
<div class="col-12 col-{{ $breakpoint.current }}-9">
|
<div class="col-12 col-{{ $breakpoint.current }}-9">
|
||||||
{{ if not .IsHome }}
|
{{ if not .IsHome }}
|
||||||
{{ with .Title }}<p id="{{ anchorize . }}" class="display-4 mt-5{{ if and $.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
|
{{ with $title }}<p id="{{ anchorize . }}" class="display-4 mt-5{{ if and $.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ if (.Params.menu) }}
|
{{ if (.Params.menu) }}
|
||||||
{{- partial "assets/section-menu.html" (dict "page" .) -}}
|
{{- partial "assets/section-menu.html" (dict "page" .) -}}
|
||||||
|
@@ -12,7 +12,10 @@
|
|||||||
{{- errorf "layout [_default/single/header.html] - Invalid value for param 'metadata': %s" $metadata -}}
|
{{- errorf "layout [_default/single/header.html] - Invalid value for param 'metadata': %s" $metadata -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
|
{{ $title := .Title }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
|
|
||||||
|
{{ with $title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
|
||||||
{{ if ne $metadata "none" }}
|
{{ if ne $metadata "none" }}
|
||||||
<small class="text-body-secondary text-uppercase">
|
<small class="text-body-secondary text-uppercase">
|
||||||
{{ if .Date }}
|
{{ if .Date }}
|
||||||
|
@@ -1,3 +1,6 @@
|
|||||||
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
|
{{ $title := .Title }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
|
|
||||||
|
{{ with $title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
|
||||||
{{ partial "assets/sharing.html" (dict "page" .) }}
|
{{ partial "assets/sharing.html" (dict "page" .) }}
|
||||||
<p class="lead mb-5">{{ .Description }}</p>
|
<p class="lead mb-5">{{ .Description }}</p>
|
||||||
|
@@ -1,3 +1,6 @@
|
|||||||
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
|
{{ $title := .Title }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
|
|
||||||
|
{{ with $title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
|
||||||
{{ partial "assets/sharing.html" (dict "page" .) }}
|
{{ partial "assets/sharing.html" (dict "page" .) }}
|
||||||
<p class="lead mb-5">{{ .Description }}</p>
|
<p class="lead mb-5">{{ .Description }}</p>
|
||||||
|
@@ -30,7 +30,8 @@
|
|||||||
{{ $items := slice }}
|
{{ $items := slice }}
|
||||||
{{- range $index, $item := $page.Ancestors.Reverse -}}
|
{{- range $index, $item := $page.Ancestors.Reverse -}}
|
||||||
{{- $title := .LinkTitle -}}
|
{{- $title := .LinkTitle -}}
|
||||||
{{- if .IsHome }}{{ $title = T "home" }}{{ end -}}
|
{{- if .IsHome }}{{ $title = T "home" }}{{ end -}}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
{{- $address := or .RelPermalink .Params.Redirect -}}
|
{{- $address := or .RelPermalink .Params.Redirect -}}
|
||||||
{{ if and $title $address}}
|
{{ if and $title $address}}
|
||||||
{{ $items = $items | append (dict "title" $title "address" $address) }}
|
{{ $items = $items | append (dict "title" $title "address" $address) }}
|
||||||
@@ -57,9 +58,15 @@
|
|||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
{{- $length := len $items }}
|
{{- $length := len $items }}
|
||||||
{{- range $index, $item := $items -}}
|
{{- range $index, $item := $items -}}
|
||||||
<li class="breadcrumb-item"><a href="{{ $item.address }}">{{ $item.title }}</a></li>
|
{{ $title := $item.title }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
|
<li class="breadcrumb-item"><a href="{{ $item.address }}">{{ $title }}</a></li>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
<li class="breadcrumb-item active" aria-current="page">{{ $page.LinkTitle }}</li>
|
<li class="breadcrumb-item active" aria-current="page">
|
||||||
|
{{ $title := $page.LinkTitle }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
|
{{ $title }}
|
||||||
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
{{ end }}
|
{{ end }}
|
@@ -86,6 +86,8 @@
|
|||||||
{{- if eq $body "title" }}{{ $description = "" }}{{ end -}}
|
{{- if eq $body "title" }}{{ $description = "" }}{{ end -}}
|
||||||
{{- if eq $body "none" }}{{ $title = "" }}{{ $description = "" }}{{ end -}}
|
{{- if eq $body "none" }}{{ $title = "" }}{{ $description = "" }}{{ end -}}
|
||||||
|
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
|
|
||||||
<!-- Inline partial to render the card's body -->
|
<!-- Inline partial to render the card's body -->
|
||||||
{{- define "partials/card-body.html" -}}
|
{{- define "partials/card-body.html" -}}
|
||||||
{{- $title := .title -}}
|
{{- $title := .title -}}
|
||||||
|
@@ -33,6 +33,9 @@
|
|||||||
{{- $url := .url -}}
|
{{- $url := .url -}}
|
||||||
{{- $mode := .mode -}}
|
{{- $mode := .mode -}}
|
||||||
{{- $modes := site.Params.main.modes | default (slice "light" "dark") -}}
|
{{- $modes := site.Params.main.modes | default (slice "light" "dark") -}}
|
||||||
|
{{ if and site.Params.main.titleCase (eq $caption (plainify $caption)) }}
|
||||||
|
{{ $caption = title $caption }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
<!-- Main code -->
|
<!-- Main code -->
|
||||||
{{ $params := dict }}
|
{{ $params := dict }}
|
||||||
|
@@ -106,7 +106,12 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{- if not $case }}{{ $text = lower $text }}{{ end -}}
|
{{- if not $case }}
|
||||||
|
{{ $text = lower $text }}
|
||||||
|
{{ else if site.Params.main.titleCase }}
|
||||||
|
{{ $text = title $text }}
|
||||||
|
{{ end -}}
|
||||||
|
|
||||||
{{ if and $pretty (not (hasSuffix $destination "/" )) (not (strings.Contains $destination "#")) }}
|
{{ if and $pretty (not (hasSuffix $destination "/" )) (not (strings.Contains $destination "#")) }}
|
||||||
{{ $destination = printf "%s/" $destination }}
|
{{ $destination = printf "%s/" $destination }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
@@ -77,16 +77,19 @@
|
|||||||
|
|
||||||
<!-- Main code -->
|
<!-- Main code -->
|
||||||
{{ if not $error }}
|
{{ if not $error }}
|
||||||
|
{{ $title := $menu.Name }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
|
|
||||||
{{ if $menu.Params.button }}
|
{{ if $menu.Params.button }}
|
||||||
{{ partial "assets/button.html" (dict
|
{{ partial "assets/button.html" (dict
|
||||||
"title" $menu.Name
|
"title" $title
|
||||||
"icon" $menu.Pre
|
"icon" $menu.Pre
|
||||||
"href" $menuURL
|
"href" $menuURL
|
||||||
"size" "sm"
|
"size" "sm"
|
||||||
)}}
|
)}}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ cond (ne $menuURL "") "<a" "<div" | safeHTML }} class="{{ $anchorClass }}{{ if $isActive }} active{{ end }}{{ with $class }} {{ . }}{{ end }}"
|
{{ cond (ne $menuURL "") "<a" "<div" | safeHTML }} class="{{ $anchorClass }}{{ if $isActive }} active{{ end }}{{ with $class }} {{ . }}{{ end }}"
|
||||||
{{ if $isIcon }}aria-label="{{ $menu.Name }}"{{ end }}
|
{{ if $isIcon }}aria-label="{{ $title }}"{{ end }}
|
||||||
data-nav="main" data-nav-main="{{ $mainNav }}"{{ with $childNav }} data-nav-child="{{ . }}"{{ end }}
|
data-nav="main" data-nav-main="{{ $mainNav }}"{{ with $childNav }} data-nav-child="{{ . }}"{{ end }}
|
||||||
{{ if $menuURL }} href="{{ $menuURL }}{{ $params | safeHTML }}"{{ with $externalHref }} {{ . | safeHTML }}{{ end }}{{ end }} {{ $button | safeHTML }}>
|
{{ if $menuURL }} href="{{ $menuURL }}{{ $params | safeHTML }}"{{ with $externalHref }} {{ . | safeHTML }}{{ end }}{{ end }} {{ $button | safeHTML }}>
|
||||||
|
|
||||||
@@ -97,7 +100,7 @@
|
|||||||
{{ partial "assets/icon.html" (dict "icon" (string .) )}}
|
{{ partial "assets/icon.html" (dict "icon" (string .) )}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
<span {{ if $isActive }} class="active"{{ end }}>{{ if or (not $isIcon) $plain }}{{ $menu.Name }}{{ end }}</span>
|
<span {{ if $isActive }} class="active"{{ end }}>{{ if or (not $isIcon) $plain }}{{ $title }}{{ end }}</span>
|
||||||
{{- with $menu.Post }}{{ . }}{{ end -}}
|
{{- with $menu.Post }}{{ . }}{{ end -}}
|
||||||
{{- if not $isIcon }} {{ $suffix }}{{ end -}}
|
{{- if not $isIcon }} {{ $suffix }}{{ end -}}
|
||||||
{{ cond (ne $menuURL "") "</a>" "</div>" | safeHTML }}
|
{{ cond (ne $menuURL "") "</a>" "</div>" | safeHTML }}
|
||||||
|
@@ -53,7 +53,7 @@
|
|||||||
{{- $title := .title -}}
|
{{- $title := .title -}}
|
||||||
{{- $content := .content -}}
|
{{- $content := .content -}}
|
||||||
|
|
||||||
<h3>{{ $title }}</h3>
|
<div class="fs-3 mt-4">{{ $title }}</div>
|
||||||
{{ with $content }}<p>{{ . }}</p>{{ end -}}
|
{{ with $content }}<p>{{ . }}</p>{{ end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
{{- $title := .title -}}
|
{{- $title := .title -}}
|
||||||
{{- $description := .description -}}
|
{{- $description := .description -}}
|
||||||
{{- $content := .content -}}
|
{{- $content := .content -}}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
|
|
||||||
<!-- Main code -->
|
<!-- Main code -->
|
||||||
{{ with $title }}<p id="{{ anchorize . }}" class="display-4 py-5{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
|
{{ with $title }}<p id="{{ anchorize . }}" class="display-4 py-5{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
|
||||||
|
@@ -37,6 +37,9 @@
|
|||||||
<li class="mb-1">
|
<li class="mb-1">
|
||||||
<div class="d-flex w-100 p-0 sidebar-item-group">
|
<div class="d-flex w-100 p-0 sidebar-item-group">
|
||||||
<div class="text-start flex-grow-1 {{ if $current }}fw-bold{{ end }}">
|
<div class="text-start flex-grow-1 {{ if $current }}fw-bold{{ end }}">
|
||||||
|
{{- $groupTitle := $group.title -}}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $groupTitle = title $groupTitle }}{{ end }}
|
||||||
|
|
||||||
{{ $dest := $href }}
|
{{ $dest := $href }}
|
||||||
{{ $target := "" }}
|
{{ $target := "" }}
|
||||||
{{ if or $current (not $ref) }}
|
{{ if or $current (not $ref) }}
|
||||||
@@ -45,7 +48,7 @@
|
|||||||
<a {{ with $dest }} href="{{ . }}"{{ else }}
|
<a {{ with $dest }} href="{{ . }}"{{ else }}
|
||||||
data-bs-toggle="collapse"
|
data-bs-toggle="collapse"
|
||||||
data-bs-target="#sidebar-collapse-{{ $index }}-{{ $level }}"
|
data-bs-target="#sidebar-collapse-{{ $index }}-{{ $level }}"
|
||||||
{{ end }}>{{ $group.title }}</a>
|
{{ end }}>{{ $groupTitle }}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button
|
<button
|
||||||
|
@@ -4,36 +4,60 @@
|
|||||||
Visit gethinode.com/license for more details.
|
Visit gethinode.com/license for more details.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
<!-- Initialize arguments -->
|
||||||
{{ $error := false }}
|
{{ $error := false }}
|
||||||
|
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "toc" "args" . "group" "partial") }}
|
||||||
<!-- Validate arguments -->
|
{{ if $args.err }}
|
||||||
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "toc" "args" . "group" "partial") }}
|
{{ partial "utilities/LogErr.html" (dict
|
||||||
{{- errorf "partial [assets/toc-dropdown.html] - Invalid arguments" -}}
|
"partial" "assets/schema.html"
|
||||||
|
"msg" "Invalid arguments"
|
||||||
|
"details" $args.errmsg
|
||||||
|
"file" page.File
|
||||||
|
)}}
|
||||||
{{ $error = true }}
|
{{ $error = true }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
<!-- Initialize arguments -->
|
<!-- Initialize local arguments -->
|
||||||
{{- $page := .page -}}
|
{{- $startLevel := or (.Site.Params.navigation.startLevel | int) 2 }}
|
||||||
{{ $items := len (findRE "<li.*?>(.|\n)*?</li>" $page.TableOfContents) -}}
|
{{- $endLevel := or (.Site.Params.navigation.endLevel | int) 3 }}
|
||||||
|
{{- $minNumHeadings := or (.Site.Params.navigation.minNumHeadings | int) 2 }}
|
||||||
|
|
||||||
{{ if and (not $error) (gt $items 1) -}}
|
<!-- Main code -->
|
||||||
<div class="d-grid gap-2 mx-auto">
|
{{ if not $error }}
|
||||||
{{ partial "assets/button.html" (dict
|
{{ $headings := partial "assets/toc-headings.html" $args.page }}
|
||||||
"title" (T "toc")
|
{{- with $headings }}
|
||||||
"color" "secondary"
|
{{- if and (not $error) (ge (len .) $minNumHeadings) }}
|
||||||
"outline" "true"
|
<div class="d-grid gap-2 mx-auto">
|
||||||
"class" "toc-button"
|
{{ partial "assets/button.html" (dict
|
||||||
"icon" "fas sort"
|
"title" (T "toc")
|
||||||
"justify" "between"
|
"color" "secondary"
|
||||||
"collapse" "toc-collapse"
|
"outline" "true"
|
||||||
"order" "last"
|
"class" "toc-button"
|
||||||
"spacing" false
|
"icon" "fas sort"
|
||||||
) -}}
|
"justify" "between"
|
||||||
</div>
|
"collapse" "toc-collapse"
|
||||||
|
"order" "last"
|
||||||
<div class="collapse border bg-body-tertiary rounded p-1 navbar-nav-scroll" id="toc-collapse">
|
"spacing" false
|
||||||
<div class="toc toc-panel text-body p-2">
|
) -}}
|
||||||
<small>{{ $page.TableOfContents }}</small>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
{{ end -}}
|
<div class="collapse border bg-body-tertiary rounded p-1 navbar-nav-scroll" id="toc-collapse">
|
||||||
|
<small>
|
||||||
|
<div class="toc toc-panel text-body p-2">
|
||||||
|
{{- range . }}
|
||||||
|
{{- $attrs := dict "class" (printf "toc-item toc-level-%d" (add 1 (sub .level $startLevel))) }}
|
||||||
|
{{- with .id }}
|
||||||
|
{{- $attrs = merge $attrs (dict "href" (printf "%s#%s" $args.page.RelPermalink .)) }}
|
||||||
|
{{- end }}
|
||||||
|
<a
|
||||||
|
{{- range $k, $v := $attrs }}
|
||||||
|
{{- printf " %s=%q" $k $v | safeHTMLAttr }}
|
||||||
|
{{- end -}}
|
||||||
|
>{{ .text }}</a>
|
||||||
|
{{- end }}
|
||||||
|
</div>
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
75
layouts/partials/assets/toc-headings.html
Normal file
75
layouts/partials/assets/toc-headings.html
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
{{- /*
|
||||||
|
Copyright 2023 Veriphor, LLC
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
the License at
|
||||||
|
|
||||||
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
License for the specific language governing permissions and limitations under
|
||||||
|
the License.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- /* Initialize. */}}
|
||||||
|
{{- $partialName := "toc-headings" }}
|
||||||
|
|
||||||
|
{{- /* Verify minimum required version. */}}
|
||||||
|
{{- $minHugoVersion := "0.125.6" }}
|
||||||
|
{{- if lt hugo.Version $minHugoVersion }}
|
||||||
|
{{- errorf "The %q partial requires Hugo v%s or later." $partialName $minHugoVersion }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- /* Determine content path for warning and error messages. */}}
|
||||||
|
{{- $contentPath := "" }}
|
||||||
|
{{- with .File }}
|
||||||
|
{{- $contentPath = .Path }}
|
||||||
|
{{- else }}
|
||||||
|
{{- $contentPath = .Path }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- /* Get configuration. */}}
|
||||||
|
{{- $startLevel := or (.Site.Params.navigation.startLevel | int) 2 }}
|
||||||
|
{{- $endLevel := or (.Site.Params.navigation.endLevel | int) 3 }}
|
||||||
|
|
||||||
|
{{- /* Get headings. */}}
|
||||||
|
{{- $headings := slice }}
|
||||||
|
{{- $ids := slice }}
|
||||||
|
{{- range findRE `(?is)<h\d.*?</h\d>` .Content }}
|
||||||
|
{{- $level := substr . 2 1 | int }}
|
||||||
|
{{- if and (ge $level $startLevel) (le $level $endLevel) }}
|
||||||
|
{{- $text := replaceRE `(?is)<h\d.*?>(.+?)</h\d>` "$1" . }}
|
||||||
|
{{- $text = trim $text " " | plainify | safeHTML }}
|
||||||
|
{{- $id := "" }}
|
||||||
|
{{- if findRE `\s+id=` . }}
|
||||||
|
{{- $id = replaceRE `(?is).+?\s+id=(?:\x22|\x27)?(.*?)(?:\x22|\x27)?[\s>].+` "$1" . }}
|
||||||
|
{{- $ids = $ids | append $id }}
|
||||||
|
{{- if not $id }}
|
||||||
|
{{- errorf "The %q partial detected that the %q heading has an empty ID attribute. See %s" $partialName $text $contentPath }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else }}
|
||||||
|
{{- errorf "The %q partial detected that the %q heading does not have an ID attribute. See %s" $partialName $text $contentPath }}
|
||||||
|
{{- end }}
|
||||||
|
{{- $headings = $headings | append (dict "id" $id "level" $level "text" $text) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- /* Check for duplicate heading IDs. */}}
|
||||||
|
{{- $unique := slice }}
|
||||||
|
{{- $duplicates := slice }}
|
||||||
|
{{- range $ids }}
|
||||||
|
{{- if in $unique . }}
|
||||||
|
{{- $duplicates = $duplicates | append . }}
|
||||||
|
{{- else }}
|
||||||
|
{{- $unique = $unique | append . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with $duplicates }}
|
||||||
|
{{- errorf "The %q partial detected duplicate heading IDs (%s) in %s" $partialName (delimit . ", ") $contentPath }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{ return $headings }}
|
||||||
|
|
107
layouts/partials/assets/toc-parse-content.html
Normal file
107
layouts/partials/assets/toc-parse-content.html
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
{{- /*
|
||||||
|
Copyright 2023 Veriphor, LLC
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
the License at
|
||||||
|
|
||||||
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
License for the specific language governing permissions and limitations under
|
||||||
|
the License.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- /*
|
||||||
|
Renders a table of contents by parsing rendered content.
|
||||||
|
|
||||||
|
In site configuration, set the default start level, end level, and the minimum
|
||||||
|
number of headings required to show the table of contents:
|
||||||
|
|
||||||
|
[params.toc]
|
||||||
|
startLevel = 2 # default is 2
|
||||||
|
endLevel = 3 # default is 3
|
||||||
|
minNumHeadings = 2 # default is 2
|
||||||
|
|
||||||
|
To display the table of contents on a page:
|
||||||
|
|
||||||
|
+++
|
||||||
|
title = 'Post 1'
|
||||||
|
toc = true
|
||||||
|
+++
|
||||||
|
|
||||||
|
To display the table of contents on a page, and override one or more of the
|
||||||
|
default settings:
|
||||||
|
|
||||||
|
+++
|
||||||
|
title = 'Post 1'
|
||||||
|
[toc]
|
||||||
|
startLevel = 2 # default is 2
|
||||||
|
endLevel = 3 # default is 3
|
||||||
|
minNumHeadings = 2 # default is 2
|
||||||
|
+++
|
||||||
|
|
||||||
|
Change or localize the title with a "toc_title" key in your i18n file(s).
|
||||||
|
|
||||||
|
Start with these basic CSS rules to style the table of contents:
|
||||||
|
|
||||||
|
a.toc-item {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
a.toc-level-1 {
|
||||||
|
margin-left: 0em;
|
||||||
|
}
|
||||||
|
a.toc-level-2 {
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
a.toc-level-3 {
|
||||||
|
margin-left: 2em;
|
||||||
|
}
|
||||||
|
a.toc-level-4 {
|
||||||
|
margin-left: 3em;
|
||||||
|
}
|
||||||
|
a.toc-level-5 {
|
||||||
|
margin-left: 4em;
|
||||||
|
}
|
||||||
|
a.toc-level-6 {
|
||||||
|
margin-left: 5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
@context {page} .
|
||||||
|
|
||||||
|
@returns {template.HTML}
|
||||||
|
|
||||||
|
@example {{ partial "toc-parse-content.html" . }}
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- /* Get configuration. */}}
|
||||||
|
{{- $startLevel := or (.Site.Params.navigation.startLevel | int) 2 }}
|
||||||
|
{{- $endLevel := or (.Site.Params.navigation.endLevel | int) 3 }}
|
||||||
|
{{- $minNumHeadings := or (.Site.Params.navigation.minNumHeadings | int) 2 }}
|
||||||
|
|
||||||
|
{{- /* Initialize. */}}
|
||||||
|
{{ $headings := partial "assets/toc-headings.html" . }}
|
||||||
|
|
||||||
|
{{- /* Render */}}
|
||||||
|
{{- if .Site.Params.navigation.toc }}
|
||||||
|
{{- with $headings }}
|
||||||
|
{{- if ge (len .) $minNumHeadings }}
|
||||||
|
<strong class="d-block h6 my-2 pt-4">{{ T "toc" }}:</strong>
|
||||||
|
<nav class="toc">
|
||||||
|
{{- range . }}
|
||||||
|
{{- $attrs := dict "class" (printf "toc-item toc-level-%d" (add 1 (sub .level $startLevel))) }}
|
||||||
|
{{- with .id }}
|
||||||
|
{{- $attrs = merge $attrs (dict "href" (printf "%s#%s" $.RelPermalink .)) }}
|
||||||
|
{{- end }}
|
||||||
|
<a
|
||||||
|
{{- range $k, $v := $attrs }}
|
||||||
|
{{- printf " %s=%q" $k $v | safeHTMLAttr }}
|
||||||
|
{{- end -}}
|
||||||
|
>{{ .text }}</a>
|
||||||
|
{{- end }}
|
||||||
|
</nav>
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2022 - 2025 The Hinode Team / Mark Dumay. All rights reserved.
|
Copyright © 2024 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.
|
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.
|
Visit gethinode.com/license for more details.
|
||||||
-->
|
-->
|
||||||
@@ -14,10 +14,8 @@
|
|||||||
|
|
||||||
<!-- Initialize arguments -->
|
<!-- Initialize arguments -->
|
||||||
{{- $page := .page -}}
|
{{- $page := .page -}}
|
||||||
{{ $items := len (findRE "<li.*?>(.|\n)*?</li>" $page.TableOfContents) -}}
|
|
||||||
|
|
||||||
<!-- Main code -->
|
<!-- Main code -->
|
||||||
{{ if and (not $error) (gt $items 1) -}}
|
{{ if not $error -}}
|
||||||
<strong class="d-block h6 my-2 pb-2">{{ T "toc" }}:</strong>
|
{{ partial "assets/toc-parse-content.html" $page }}
|
||||||
{{ $page.TableOfContents }}
|
|
||||||
{{ end -}}
|
{{ end -}}
|
@@ -68,11 +68,11 @@
|
|||||||
{{ $api := printf "https://www.youtube.com/oembed?format=json&url=%s" (printf "https://www.youtube.com/watch?v=%s" $id) }}
|
{{ $api := printf "https://www.youtube.com/oembed?format=json&url=%s" (printf "https://www.youtube.com/watch?v=%s" $id) }}
|
||||||
{{ $padding := "56.25%" }}
|
{{ $padding := "56.25%" }}
|
||||||
|
|
||||||
{{ with resources.GetRemote $api }}
|
{{ with try (resources.GetRemote $api) }}
|
||||||
{{ with .Err }}
|
{{ with .Err }}
|
||||||
{{ errorf "Unable to parse video metadata '%q': %s\n %s" $api $origin . }}
|
{{ errorf "Unable to parse video metadata '%q': %s\n %s" $api $origin . }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ $data := . | transform.Unmarshal }}
|
{{ $data := .Value | transform.Unmarshal }}
|
||||||
{{ if $autotitle }}{{ with $data.title }}{{ $title = . }}{{ end }}{{ end }}
|
{{ if $autotitle }}{{ with $data.title }}{{ $title = . }}{{ end }}{{ end }}
|
||||||
{{ $padding = printf "%.2f%%" (mul (div $data.height $data.width) 100) }}
|
{{ $padding = printf "%.2f%%" (mul (div $data.height $data.width) 100) }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
@@ -97,11 +97,11 @@
|
|||||||
{{- $dnt := cond $pc.EnableDNT 1 0 -}}
|
{{- $dnt := cond $pc.EnableDNT 1 0 -}}
|
||||||
{{- $query := querify "url" $url "dnt" $dnt -}}
|
{{- $query := querify "url" $url "dnt" $dnt -}}
|
||||||
{{- $api := printf "https://vimeo.com/api/oembed.json?%s" $query -}}
|
{{- $api := printf "https://vimeo.com/api/oembed.json?%s" $query -}}
|
||||||
{{- with resources.GetRemote $api -}}
|
{{- with try (resources.GetRemote $api) -}}
|
||||||
{{ with .Err }}
|
{{ with .Err }}
|
||||||
{{ errorf "Unable to parse video metadata '%q': %s\n %s" $api $origin . }}
|
{{ errorf "Unable to parse video metadata '%q': %s\n %s" $api $origin . }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ $data := . | transform.Unmarshal }}
|
{{ $data := .Value | transform.Unmarshal }}
|
||||||
{{ if $autotitle }}{{ with $data.title }}{{ $title = . }}{{ end }}{{ end }}
|
{{ if $autotitle }}{{ with $data.title }}{{ $title = . }}{{ end }}{{ end }}
|
||||||
{{ $padding = printf "%.2f%%" (mul (div $data.height $data.width) 100) }}
|
{{ $padding = printf "%.2f%%" (mul (div $data.height $data.width) 100) }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
@@ -117,9 +117,21 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ $url := printf "https://player.cloudinary.com/embed/?cloud_name=%s&public_id=%s" $account $id }}
|
{{ $url := printf "https://player.cloudinary.com/embed/?cloud_name=%s&public_id=%s" $account $id }}
|
||||||
{{ $params := "&controls=true" }}
|
{{ $params := "" }}
|
||||||
{{ if $autoplay }}{{ $params = print $params "&autoplay=true&muted=true" }}{{ end }}
|
{{ if $autoplay }}{{ $params = print $params "&player[autoplay]=true&player[muted]=true" }}{{ end }}
|
||||||
{{ with $params }}{{ $url = print $url . }}{{ end }}
|
|
||||||
|
{{ $codecs := slice }}
|
||||||
|
{{ with index site.Params "dam" }}{{ with index . "videoCodecs" }}{{ $codecs = . }}{{ end }}{{ end }}
|
||||||
|
{{ range $k, $v := $codecs }}
|
||||||
|
{{ $params = printf "%s&source[source_types][%d]=%s" $params $k (urlquery $v) }}
|
||||||
|
{{ end }}
|
||||||
|
{{ if gt (len $codecs) 0 }}
|
||||||
|
{{ $params = print $params "&source[transformation][1][quality]=auto" }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ with .options }}{{ $params = print $params "&" . }}{{ end }}
|
||||||
|
{{ $params = strings.TrimLeft "?&" $params }}
|
||||||
|
{{ with $params }}{{ $url = print $url "&" . }}{{ end }}
|
||||||
{{ $padding := "56.25%" }}
|
{{ $padding := "56.25%" }}
|
||||||
|
|
||||||
{{ $thumbnail := partial "utilities/URLJoin.html" (dict "base" (path.Dir $id) "path" (printf "%s.jpg" (path.BaseName $id))) }}
|
{{ $thumbnail := partial "utilities/URLJoin.html" (dict "base" (path.Dir $id) "path" (printf "%s.jpg" (path.BaseName $id))) }}
|
||||||
@@ -136,7 +148,7 @@
|
|||||||
{{ if not $title }}{{ $title = printf "Cloudinary video '%s'" (path.BaseName $id) }}{{ end }}
|
{{ if not $title }}{{ $title = printf "Cloudinary video '%s'" (path.BaseName $id) }}{{ end }}
|
||||||
|
|
||||||
<div class="video-embedded {{ $class }}" data-video-padding="{{ $padding }}">
|
<div class="video-embedded {{ $class }}" data-video-padding="{{ $padding }}">
|
||||||
<iframe src="{{ $url | safeHTMLAttr }}" title="{{ $title }}" webkitallowfullscreen mozallowfullscreen allowfullscreen>
|
<iframe src="{{ $url | safeURL }}" title="{{ $title }}" allow="autoplay; fullscreen; encrypted-media" frameborder="0">
|
||||||
</iframe>
|
</iframe>
|
||||||
</div>
|
</div>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
|
@@ -13,7 +13,9 @@
|
|||||||
<div class="col col-6">
|
<div class="col col-6">
|
||||||
<div class="row justify-content-end p-0">
|
<div class="row justify-content-end p-0">
|
||||||
<div class="col-12 col-md-8 p-0">
|
<div class="col-12 col-md-8 p-0">
|
||||||
<div class="fs-3 fw-bold">{{ or .Site.Params.footer.socialTitle .Site.Params.social.title }}</div>
|
{{- $title := or .Site.Params.footer.socialTitle .Site.Params.social.title }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
|
<div class="fs-3 fw-bold">{{ $title }}</div>
|
||||||
<p>{{ or .Site.Params.footer.socialCaption .Site.Params.social.caption }}</p>
|
<p>{{ or .Site.Params.footer.socialCaption .Site.Params.social.caption }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
<!-- Adapted from doks -->
|
<!-- Adapted from doks -->
|
||||||
{{ with .Params.meta.title }}
|
{{ with .Params.meta.title }}
|
||||||
{{ $.Scratch.Set "title" . -}}
|
{{ $title := . }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
|
{{ $.Scratch.Set "title" $title -}}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ with .Title -}}
|
{{ $title := .Title | default .Site.Title }}
|
||||||
{{ $.Scratch.Set "title" . -}}
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
{{ else -}}
|
{{ $.Scratch.Set "title" $title -}}
|
||||||
{{ $.Scratch.Set "title" .Site.Title -}}
|
|
||||||
{{ end -}}
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ $description := or (partial "utilities/GetDescription.html" (dict "page" . "meta" true)) .Site.Params.main.description }}
|
{{ $description := or (partial "utilities/GetDescription.html" (dict "page" . "meta" true)) .Site.Params.main.description }}
|
||||||
|
@@ -33,7 +33,10 @@
|
|||||||
{{- $align := .align | default "center" -}}
|
{{- $align := .align | default "center" -}}
|
||||||
|
|
||||||
<div class="text-{{ $align }}">
|
<div class="text-{{ $align }}">
|
||||||
{{ with $page.Title }}<p class="display-4">{{ . }}</p>{{ end }}
|
{{ $title := $page.Title }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
|
|
||||||
|
{{ with $title }}<p class="display-4">{{ . }}</p>{{ end }}
|
||||||
<span class="fs-5 text-muted">{{ $page.Description }}</span>
|
<span class="fs-5 text-muted">{{ $page.Description }}</span>
|
||||||
|
|
||||||
{{ if $actions }}
|
{{ if $actions }}
|
||||||
|
@@ -46,6 +46,8 @@
|
|||||||
{{- with index . "title" }}{{ $title = or . $title }}{{ end -}}
|
{{- with index . "title" }}{{ $title = or . $title }}{{ end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
|
|
||||||
{{- $thumbnail := "" -}}
|
{{- $thumbnail := "" -}}
|
||||||
{{ if reflect.IsMap $sectionPage.Params.Thumbnail }}{{ $thumbnail = $sectionPage.Params.Thumbnail.url }}{{ else }}{{ $thumbnail = $sectionPage.Params.Thumbnail }}{{ end }}
|
{{ if reflect.IsMap $sectionPage.Params.Thumbnail }}{{ $thumbnail = $sectionPage.Params.Thumbnail.url }}{{ else }}{{ $thumbnail = $sectionPage.Params.Thumbnail }}{{ end }}
|
||||||
{{- $icon := $sectionPage.Params.Icon -}}
|
{{- $icon := $sectionPage.Params.Icon -}}
|
||||||
|
@@ -53,11 +53,11 @@
|
|||||||
|
|
||||||
<div class="accordion-item">
|
<div class="accordion-item">
|
||||||
{{- with $header -}}
|
{{- with $header -}}
|
||||||
<h2 class="accordion-header m-0" id="{{ $parent }}-heading-{{ $id }}">
|
<div class="accordion-header m-0 fs-2" id="{{ $parent }}-heading-{{ $id }}">
|
||||||
<button class="accordion-button{{ if not $show }} collapsed{{ end }}" type="button" data-bs-toggle="collapse" data-bs-target="#{{ $parent }}-item-{{ $id }}" aria-expanded="false" aria-controls="{{ $parent }}-item-{{ $id }}">
|
<button class="accordion-button{{ if not $show }} collapsed{{ end }}" type="button" data-bs-toggle="collapse" data-bs-target="#{{ $parent }}-item-{{ $id }}" aria-expanded="false" aria-controls="{{ $parent }}-item-{{ $id }}">
|
||||||
{{ . }}
|
{{ . }}
|
||||||
</button>
|
</button>
|
||||||
</h2>
|
</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
<div id="{{ $parent }}-item-{{ $id }}" class="accordion-collapse collapse{{ if $show }} show{{ end }}{{ with $class }} {{ . }}{{ end }}" aria-labelledby="{{ $parent }}-heading-{{ $id }}" data-bs-parent="#{{ $parent }}">
|
<div id="{{ $parent }}-item-{{ $id }}" class="accordion-collapse collapse{{ if $show }} show{{ end }}{{ with $class }} {{ . }}{{ end }}" aria-labelledby="{{ $parent }}-heading-{{ $id }}" data-bs-parent="#{{ $parent }}">
|
||||||
<div class="accordion-body">{{ $body | .Page.RenderString | safeHTML }}</div>
|
<div class="accordion-body">{{ $body | .Page.RenderString | safeHTML }}</div>
|
||||||
|
@@ -22,7 +22,10 @@
|
|||||||
{{ $force := false }}
|
{{ $force := false }}
|
||||||
{{ $cue := site.Params.main.externalLinks.cue }}
|
{{ $cue := site.Params.main.externalLinks.cue }}
|
||||||
{{ $tab := site.Params.main.externalLinks.tab }}
|
{{ $tab := site.Params.main.externalLinks.tab }}
|
||||||
{{ $text := trim .Inner " \r\n" | .Page.RenderString | safeHTML }}
|
{{ $text := chomp .Inner }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $text = title $text }}{{ end }}
|
||||||
|
{{ $text := $text | .Page.RenderString | safeHTML }}
|
||||||
|
|
||||||
{{- $anchor := "" -}}
|
{{- $anchor := "" -}}
|
||||||
|
|
||||||
{{ if .IsNamedParams }}
|
{{ if .IsNamedParams }}
|
||||||
|
@@ -3,6 +3,8 @@
|
|||||||
{{- $layout := $page.Params.layout -}}
|
{{- $layout := $page.Params.layout -}}
|
||||||
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
|
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
|
||||||
{{- $hasSidebar := site.Params.navigation.sidebar | default true -}}
|
{{- $hasSidebar := site.Params.navigation.sidebar | default true -}}
|
||||||
|
{{- $pageTitle := .Page.Title }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $pageTitle = title $pageTitle }}{{ end }}
|
||||||
|
|
||||||
<div class="container-xxl flex-fill p-4 px-xxl-0">
|
<div class="container-xxl flex-fill p-4 px-xxl-0">
|
||||||
<div class="row row-cols-1 row-cols-{{ $breakpoint.prev }}-{{ if $hasSidebar }}3{{ else }}2{{ end }}">
|
<div class="row row-cols-1 row-cols-{{ $breakpoint.prev }}-{{ if $hasSidebar }}3{{ else }}2{{ end }}">
|
||||||
@@ -14,17 +16,20 @@
|
|||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
<p class="display-4 mt-5">{{ .Page.Title }}</p>
|
<p class="display-4 mt-5">{{ $pageTitle }}</p>
|
||||||
|
|
||||||
{{ if eq .Kind "taxonomy" }}
|
{{ if eq .Kind "taxonomy" }}
|
||||||
<div class="row mt-5"></div>
|
<div class="row mt-5"></div>
|
||||||
{{ range $.Site.Taxonomies.tags.ByCount }}
|
{{ range $.Site.Taxonomies.tags.ByCount }}
|
||||||
|
{{- $title := .Page.Title }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
|
|
||||||
<div class="row mt-2">
|
<div class="row mt-2">
|
||||||
<div class="col-3 mt-auto text-right">
|
<div class="col-3 mt-auto text-right">
|
||||||
{{ .Count }} {{ if gt .Count 1 }} {{ T "articles" }} {{ else }} {{ T "article" }} {{ end }}
|
{{ .Count }} {{ if gt .Count 1 }} {{ T "articles" }} {{ else }} {{ T "article" }} {{ end }}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-9">
|
<div class="col-9">
|
||||||
<a href="{{ .Page.RelPermalink }}">{{ .Page.Title | .Page.RenderString }}</a>
|
<a href="{{ .Page.RelPermalink }}">{{ $title | .Page.RenderString }}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
@@ -37,6 +42,8 @@
|
|||||||
{{ range .Pages }}
|
{{ range .Pages }}
|
||||||
{{ $year := .Date.Year }}
|
{{ $year := .Date.Year }}
|
||||||
{{ $lastYear := $.Scratch.Get "lastYear"}}
|
{{ $lastYear := $.Scratch.Get "lastYear"}}
|
||||||
|
{{- $title := .Title }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
<div class="row mt-2">
|
<div class="row mt-2">
|
||||||
<div class="d-none d-{{ $breakpoint.prev }}-block col-{{ $breakpoint.prev }}-3 mt-auto text-right">
|
<div class="d-none d-{{ $breakpoint.prev }}-block col-{{ $breakpoint.prev }}-3 mt-auto text-right">
|
||||||
{{ with .Date }}
|
{{ with .Date }}
|
||||||
@@ -52,7 +59,7 @@
|
|||||||
<p class="text-body-secondary mt-5">{{ $year }}</p>
|
<p class="text-body-secondary mt-5">{{ $year }}</p>
|
||||||
{{ $.Scratch.Set "lastYear" $year }}
|
{{ $.Scratch.Set "lastYear" $year }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<a href="{{ .Page.RelPermalink }}">{{ if .Draft }}{{ T "draft" | upper }}: {{ end }}{{ .Title | .Page.RenderString }}</a>
|
<a href="{{ .Page.RelPermalink }}">{{ if .Draft }}{{ T "draft" | upper }}: {{ end }}{{ $title | .Page.RenderString }}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
41
package-lock.json
generated
41
package-lock.json
generated
@@ -1,26 +1,26 @@
|
|||||||
{
|
{
|
||||||
"name": "@gethinode/hinode",
|
"name": "@gethinode/hinode",
|
||||||
"version": "0.28.0",
|
"version": "0.29.2",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@gethinode/hinode",
|
"name": "@gethinode/hinode",
|
||||||
"version": "0.28.0",
|
"version": "0.29.2",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fullhuman/postcss-purgecss": "^7.0.2",
|
"@fullhuman/postcss-purgecss": "^7.0.2",
|
||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.20",
|
||||||
"cssnano": "^7.0.6",
|
"cssnano": "^7.0.6",
|
||||||
"cssnano-preset-advanced": "^7.0.6",
|
"cssnano-preset-advanced": "^7.0.6",
|
||||||
"hugo-bin": "0.137.2",
|
"hugo-bin": "0.138.0",
|
||||||
"purgecss-whitelister": "^2.4.0"
|
"purgecss-whitelister": "^2.4.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@gethinode/netlify-plugin-dartsass": "^0.3.0",
|
"@gethinode/netlify-plugin-dartsass": "^0.3.0",
|
||||||
"cpy-cli": "^5.0.0",
|
"cpy-cli": "^5.0.0",
|
||||||
"eslint": "^9.18.0",
|
"eslint": "^9.18.0",
|
||||||
"markdownlint-cli2": "^0.17.1",
|
"markdownlint-cli2": "^0.17.2",
|
||||||
"neostandard": "^0.12.0",
|
"neostandard": "^0.12.0",
|
||||||
"netlify-plugin-hugo-cache-resources": "^0.2.1",
|
"netlify-plugin-hugo-cache-resources": "^0.2.1",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
@@ -789,9 +789,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@types/ms": {
|
"node_modules/@types/ms": {
|
||||||
"version": "0.7.34",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
|
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
|
||||||
"integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==",
|
"integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@types/unist": {
|
"node_modules/@types/unist": {
|
||||||
@@ -4172,9 +4172,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/hugo-bin": {
|
"node_modules/hugo-bin": {
|
||||||
"version": "0.137.2",
|
"version": "0.138.0",
|
||||||
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.137.2.tgz",
|
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.138.0.tgz",
|
||||||
"integrity": "sha512-tnq0BeOEHydDVboO3cVeq4aZ9ejzZA/iabSSuV346cQC8XwKH5rqZlA9xByJmijth4zZDeuvnDRpRVQf8NsHeA==",
|
"integrity": "sha512-WNpW+PQb9MFzZlaQBT354/MMN5/MWMvgQyTSHgIK/w8hfcefpcxklSnPmPXJxOYZNEphwzJ8jgDOwJ606gm0jA==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "github",
|
"type": "github",
|
||||||
@@ -4182,6 +4182,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@xhmikosr/bin-wrapper": "^13.0.5",
|
"@xhmikosr/bin-wrapper": "^13.0.5",
|
||||||
"package-config": "^5.0.0"
|
"package-config": "^5.0.0"
|
||||||
@@ -4910,9 +4911,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/katex": {
|
"node_modules/katex": {
|
||||||
"version": "0.16.19",
|
"version": "0.16.21",
|
||||||
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.19.tgz",
|
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz",
|
||||||
"integrity": "sha512-3IA6DYVhxhBabjSLTNO9S4+OliA3Qvb8pBQXMfC4WxXJgLwZgnfDl0BmB4z6nBMdznBsZ+CGM8DrGZ5hcguDZg==",
|
"integrity": "sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
"https://opencollective.com/katex",
|
"https://opencollective.com/katex",
|
||||||
@@ -5111,9 +5112,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/markdownlint": {
|
"node_modules/markdownlint": {
|
||||||
"version": "0.37.3",
|
"version": "0.37.4",
|
||||||
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.37.3.tgz",
|
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.37.4.tgz",
|
||||||
"integrity": "sha512-eoQqH0291YCCjd+Pe1PUQ9AmWthlVmS0XWgcionkZ8q34ceZyRI+pYvsWksXJJL8OBkWCPwp1h/pnXxrPFC4oA==",
|
"integrity": "sha512-u00joA/syf3VhWh6/ybVFkib5Zpj2e5KB/cfCei8fkSRuums6nyisTWGqjTWIOFoFwuXoTBQQiqlB4qFKp8ncQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"markdown-it": "14.1.0",
|
"markdown-it": "14.1.0",
|
||||||
@@ -5134,15 +5135,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/markdownlint-cli2": {
|
"node_modules/markdownlint-cli2": {
|
||||||
"version": "0.17.1",
|
"version": "0.17.2",
|
||||||
"resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.17.1.tgz",
|
"resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.17.2.tgz",
|
||||||
"integrity": "sha512-n1Im9lhKJJE12/u2N0GWBwPqeb0HGdylN8XpSFg9hbj35+QalY9Vi6mxwUQdG6wlSrrIq9ZDQ0Q85AQG9V2WOg==",
|
"integrity": "sha512-XH06ZOi8wCrtOSSj3p8y3yJzwgzYOSa7lglNyS3fP05JPRzRGyjauBb5UvlLUSCGysMmULS1moxdRHHudV+g/Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"globby": "14.0.2",
|
"globby": "14.0.2",
|
||||||
"js-yaml": "4.1.0",
|
"js-yaml": "4.1.0",
|
||||||
"jsonc-parser": "3.3.1",
|
"jsonc-parser": "3.3.1",
|
||||||
"markdownlint": "0.37.3",
|
"markdownlint": "0.37.4",
|
||||||
"markdownlint-cli2-formatter-default": "0.0.5",
|
"markdownlint-cli2-formatter-default": "0.0.5",
|
||||||
"micromatch": "4.0.8"
|
"micromatch": "4.0.8"
|
||||||
},
|
},
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@gethinode/hinode",
|
"name": "@gethinode/hinode",
|
||||||
"version": "0.28.0",
|
"version": "0.29.2",
|
||||||
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
|
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"hugo",
|
"hugo",
|
||||||
@@ -73,14 +73,14 @@
|
|||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.20",
|
||||||
"cssnano": "^7.0.6",
|
"cssnano": "^7.0.6",
|
||||||
"cssnano-preset-advanced": "^7.0.6",
|
"cssnano-preset-advanced": "^7.0.6",
|
||||||
"hugo-bin": "0.137.2",
|
"hugo-bin": "0.138.0",
|
||||||
"purgecss-whitelister": "^2.4.0"
|
"purgecss-whitelister": "^2.4.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@gethinode/netlify-plugin-dartsass": "^0.3.0",
|
"@gethinode/netlify-plugin-dartsass": "^0.3.0",
|
||||||
"cpy-cli": "^5.0.0",
|
"cpy-cli": "^5.0.0",
|
||||||
"eslint": "^9.18.0",
|
"eslint": "^9.18.0",
|
||||||
"markdownlint-cli2": "^0.17.1",
|
"markdownlint-cli2": "^0.17.2",
|
||||||
"neostandard": "^0.12.0",
|
"neostandard": "^0.12.0",
|
||||||
"netlify-plugin-hugo-cache-resources": "^0.2.1",
|
"netlify-plugin-hugo-cache-resources": "^0.2.1",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
|
@@ -6,7 +6,7 @@ homepage = "https://gethinode.com"
|
|||||||
demosite = "https://demo.gethinode.com"
|
demosite = "https://demo.gethinode.com"
|
||||||
tags = ["blog", "documentation", "minimal", "modern", "customizable", "search", "bootstrap"]
|
tags = ["blog", "documentation", "minimal", "modern", "customizable", "search", "bootstrap"]
|
||||||
features = ["security aware", "fast by default", "seo-ready", "development tools", "bootstrap framework", "netlify-ready", "full text search", "page layouts", "versioned documentation"]
|
features = ["security aware", "fast by default", "seo-ready", "development tools", "bootstrap framework", "netlify-ready", "full text search", "page layouts", "versioned documentation"]
|
||||||
min_version = "0.139.0"
|
min_version = "0.141.0"
|
||||||
|
|
||||||
[author]
|
[author]
|
||||||
name = "Mark Dumay"
|
name = "Mark Dumay"
|
||||||
|
Reference in New Issue
Block a user