mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 10:04:22 +00:00
Compare commits
118 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 | ||
![]() |
dd80ee2bfe | ||
![]() |
2e8b087c48 | ||
![]() |
03592cba67 | ||
![]() |
65a44637d5 | ||
![]() |
6bbdb813de | ||
![]() |
3ad358bb96 | ||
![]() |
2e1c05fa63 | ||
![]() |
d67fc81c87 | ||
![]() |
8e532ce61b | ||
![]() |
dd7803110d | ||
![]() |
8c05e15693 | ||
![]() |
b78d0a9912 | ||
![]() |
25aeaeb195 | ||
![]() |
d8336200ef | ||
![]() |
2831b510d6 | ||
![]() |
ddc319e380 | ||
![]() |
0e4c493dd2 | ||
![]() |
48ceeb0b64 | ||
![]() |
45bd45c5fa | ||
![]() |
9f85b5bc93 | ||
![]() |
41215fcc25 | ||
![]() |
912a34baa3 | ||
![]() |
db4fa60bff | ||
![]() |
8ebc170e0e | ||
![]() |
0b5a8756ad | ||
![]() |
7cec88af78 | ||
![]() |
1681d9691e | ||
![]() |
5b661f8f7f | ||
![]() |
3ca09592f7 | ||
![]() |
2d701111aa | ||
![]() |
dbb3b2026c | ||
![]() |
7d724dbb1f | ||
![]() |
7c436dcacd | ||
![]() |
1da69c08ae | ||
![]() |
1bca15042b | ||
![]() |
40fd76988d | ||
![]() |
8190e77152 | ||
![]() |
d0d681a6a9 | ||
![]() |
0d6964c7ed | ||
![]() |
3090aaa810 | ||
![]() |
c7cf48a6c1 | ||
![]() |
300a473a37 | ||
![]() |
dac09afbba | ||
![]() |
a35e59df3d | ||
![]() |
51b80d8820 | ||
![]() |
28c12e61e9 | ||
![]() |
c2d4782375 | ||
![]() |
4aa5723235 | ||
![]() |
6d602df62d | ||
![]() |
336f32b4a4 | ||
![]() |
1792ee527d | ||
![]() |
d750dcfb5a | ||
![]() |
448ebdbaad | ||
![]() |
7b8152d84e | ||
![]() |
df00db0447 | ||
![]() |
658a02798e | ||
![]() |
7329fdf3f9 | ||
![]() |
34550a3e00 | ||
![]() |
b88b17642d | ||
![]() |
ecb06164e0 | ||
![]() |
a4d9638cc1 | ||
![]() |
c8af80ab86 | ||
![]() |
1e06f4ef2c | ||
![]() |
3cfe1c296b | ||
![]() |
2b32c3c8fc | ||
![]() |
efa1ae2076 | ||
![]() |
35c869b729 | ||
![]() |
ccbc9b24d5 | ||
![]() |
680614d446 | ||
![]() |
93f6acd70d | ||
![]() |
8d761aa5d7 | ||
![]() |
9df7f951c6 | ||
![]() |
0bf7671675 | ||
![]() |
43a285db86 | ||
![]() |
f982b0f9d4 | ||
![]() |
669dfec6af | ||
![]() |
05ea55d73d | ||
![]() |
e64fdee0ea | ||
![]() |
90ef36d39a | ||
![]() |
d4321cea30 | ||
![]() |
9fd3781c25 | ||
![]() |
ed833307f8 | ||
![]() |
a73268fea6 | ||
![]() |
413082a23d | ||
![]() |
2b15ff26dc | ||
![]() |
42db5b3f9b | ||
![]() |
d3e58591be | ||
![]() |
5c9187a5ed |
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2024 Mark Dumay
|
Copyright (c) 2022-2025 Mark Dumay
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@@ -25,17 +25,37 @@
|
|||||||
window.location.href = href
|
window.location.href = href
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
window.location.href = folder + language + '/'
|
let target = folder + language + '/'
|
||||||
|
if (window.location.href !== target) {
|
||||||
|
window.location.href = target
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Event listener for language selection
|
// Event listener for language selection
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
const storedLanguage = getLanguage()
|
// override stored language when query string contains force is true
|
||||||
const languageItems = document.querySelectorAll('#language-selector .dropdown-item')
|
let params = new URLSearchParams(document.location.search)
|
||||||
|
let force = params.get('force')
|
||||||
|
if (force !== null && force.toLowerCase() == 'true') {
|
||||||
|
setLanguage(document.documentElement.lang)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (languageItems.length > 0) {
|
// continue with regular code
|
||||||
|
const storedLanguage = getLanguage()
|
||||||
|
const languageItems = document.querySelectorAll('#language-selector[data-translated=true] .dropdown-item')
|
||||||
|
|
||||||
|
const link = document.querySelector("link[rel='canonical']")
|
||||||
|
let alias = ''
|
||||||
|
if (link !== null) {
|
||||||
|
alias = link.getAttribute('href')
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((alias !== '') && (window.location.href !== alias)) {
|
||||||
|
window.location.href = alias
|
||||||
|
} else if (languageItems.length > 0) {
|
||||||
// Redirect if the stored language differs from the active language
|
// Redirect if the stored language differs from the active language
|
||||||
if ((storedLanguage) && (document.documentElement.lang !== storedLanguage)) {
|
if ((storedLanguage) && (document.documentElement.lang !== storedLanguage)) {
|
||||||
languageItems.forEach(item => {
|
languageItems.forEach(item => {
|
||||||
@@ -57,10 +77,8 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Redirect to the localized homepage
|
// overrule the current stored language when no translation is available
|
||||||
const defaultLang = '{{ site.LanguageCode | default site.Language.Lang }}'
|
setLanguage(document.documentElement.lang)
|
||||||
let language = storedLanguage ? storedLanguage : defaultLang
|
|
||||||
window.location.href = folder + language + '/'
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})()
|
})()
|
||||||
|
@@ -7,22 +7,45 @@
|
|||||||
top: var(--navbar-offset);
|
top: var(--navbar-offset);
|
||||||
max-height: 90vh;
|
max-height: 90vh;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
scrollbar-gutter: stable;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-item {
|
.sidebar-item {
|
||||||
color: rgba(0, 0, 0, 0.65);
|
color: rgba(0, 0, 0, 0.65);
|
||||||
margin-left: 0 !important;
|
margin-left: 0 !important;
|
||||||
padding-left: 0.85rem !important;
|
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
padding: 0.1875rem 0.5rem !important;
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
color: $primary;
|
||||||
|
}
|
||||||
|
|
||||||
&.active,
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
color: black;
|
color: $primary;
|
||||||
|
background-color: tint-color($primary, 90%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-toggle {
|
.sidebar-item-group {
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
color: $primary;
|
||||||
|
background-color: tint-color($primary, 90%);
|
||||||
|
}
|
||||||
|
|
||||||
|
> div > a {
|
||||||
|
color: var(--bs-body-color) !important;
|
||||||
|
text-decoration: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-item-group > div {
|
||||||
|
padding: 0.1875rem 0.5rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-toggle-group {
|
||||||
padding: 0.25rem 0.5rem;
|
padding: 0.25rem 0.5rem;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: rgba(0, 0, 0, 0.65);
|
color: rgba(0, 0, 0, 0.65);
|
||||||
@@ -30,8 +53,7 @@
|
|||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
color: black;
|
background-color: transparent;
|
||||||
background-color: tint-color($primary, 90%);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
@@ -43,50 +65,49 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-toggle[aria-expanded="true"] {
|
.btn-toggle-group[aria-expanded="true"] {
|
||||||
color: black;
|
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
transform: rotate(90deg);
|
transform: rotate(90deg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-toggle-nav a {
|
|
||||||
padding: 0.1875rem 0.5rem;
|
|
||||||
margin-top: 0.125rem;
|
|
||||||
margin-left: 1.25rem;
|
|
||||||
|
|
||||||
&:hover,
|
|
||||||
&:focus {
|
|
||||||
background-color: tint-color($primary, 90%);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@if $enable-dark-mode {
|
@if $enable-dark-mode {
|
||||||
@include color-mode(dark) {
|
@include color-mode(dark) {
|
||||||
.sidebar-item {
|
.sidebar-item {
|
||||||
color: var(--bs-body-color);
|
color: var(--bs-body-color);
|
||||||
margin-left: 0 !important;
|
|
||||||
padding-left: 0.85rem !important;
|
&.active {
|
||||||
|
color: $primary-text-emphasis-dark !important;
|
||||||
&.active,
|
}
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
color: $primary-text-emphasis-dark !important;
|
||||||
|
background-color: transparent;
|
||||||
|
box-shadow: inset 0 0 0 1px $primary-bg-subtle-dark;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-item-group {
|
||||||
|
color: var(--bs-body-color) !important;
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
color: $primary-text-emphasis-dark !important;
|
||||||
|
}
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
color: white !important;
|
color: white !important;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
|
box-shadow: inset 0 0 0 1px $primary-bg-subtle-dark;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-toggle {
|
.btn-toggle-group {
|
||||||
color: var(--bs-body-color);
|
color: var(--bs-body-color);
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
color: white !important;
|
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,26 +116,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-toggle[aria-expanded="true"] {
|
.btn-toggle-group[aria-expanded="true"] {
|
||||||
color: var(--bs-secondary-color);
|
color: var(--bs-secondary-color);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
.btn-toggle-nav a {
|
|
||||||
padding: 0.1875rem 0.5rem;
|
|
||||||
margin-top: 0.125rem;
|
|
||||||
margin-left: 1.25rem;
|
|
||||||
|
|
||||||
&:hover,
|
|
||||||
&:focus {
|
|
||||||
color: white !important;
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// scss-docs-end sidebar
|
// scss-docs-end sidebar
|
||||||
|
@@ -11,6 +11,10 @@
|
|||||||
padding-right: 1rem;
|
padding-right: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.table-border-bottom-wrap {
|
||||||
|
border-bottom-style: none !important
|
||||||
|
}
|
||||||
|
|
||||||
@if $enable-dark-mode {
|
@if $enable-dark-mode {
|
||||||
@include color-mode(dark) {
|
@include color-mode(dark) {
|
||||||
.table-striped, .table-striped-columns {
|
.table-striped, .table-striped-columns {
|
||||||
|
@@ -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 {
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
# toml-docs-start main
|
# toml-docs-start main
|
||||||
title = "Hinode"
|
title = "Hinode"
|
||||||
copyright = "Copyright © 2024 Mark Dumay."
|
copyright = "Copyright © 2022 - 2025 Mark Dumay."
|
||||||
enableGitInfo = true
|
enableGitInfo = true
|
||||||
# toml-docs-end main
|
# toml-docs-end main
|
||||||
|
|
||||||
@@ -116,8 +116,7 @@ home = ["HTML", "RSS", "REDIR", "netlify", "server"]
|
|||||||
[module]
|
[module]
|
||||||
[module.hugoVersion]
|
[module.hugoVersion]
|
||||||
extended = true
|
extended = true
|
||||||
min = "0.134.0"
|
min = "0.141.0"
|
||||||
max = ""
|
|
||||||
[[module.mounts]]
|
[[module.mounts]]
|
||||||
source = "archetypes"
|
source = "archetypes"
|
||||||
target = "archetypes"
|
target = "archetypes"
|
||||||
@@ -139,6 +138,11 @@ home = ["HTML", "RSS", "REDIR", "netlify", "server"]
|
|||||||
[[module.mounts]]
|
[[module.mounts]]
|
||||||
source = "static"
|
source = "static"
|
||||||
target = "static"
|
target = "static"
|
||||||
|
# ensures main package.json is always available, even when using workspaces
|
||||||
|
# in workspaces, the package.json is pointing to the first imported module
|
||||||
|
[[module.mounts]]
|
||||||
|
source = "package.json"
|
||||||
|
target = "assets/data/package-hinode.json"
|
||||||
[[module.mounts]]
|
[[module.mounts]]
|
||||||
source = "netlify.toml"
|
source = "netlify.toml"
|
||||||
target = "assets/config/netlify.toml"
|
target = "assets/config/netlify.toml"
|
||||||
|
@@ -10,8 +10,10 @@
|
|||||||
footerBelowFold = false
|
footerBelowFold = false
|
||||||
loading = "lazy"
|
loading = "lazy"
|
||||||
breakpoint = "md"
|
breakpoint = "md"
|
||||||
|
titleCase = false
|
||||||
[main.internalLinks]
|
[main.internalLinks]
|
||||||
validate = true
|
validate = true
|
||||||
|
pretty = false
|
||||||
[main.externalLinks]
|
[main.externalLinks]
|
||||||
cue = false
|
cue = false
|
||||||
tab = false
|
tab = false
|
||||||
@@ -40,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]
|
||||||
|
@@ -3,13 +3,15 @@ const cssnano = require('cssnano')({
|
|||||||
preset: 'advanced'
|
preset: 'advanced'
|
||||||
})
|
})
|
||||||
const whitelister = require('purgecss-whitelister')
|
const whitelister = require('purgecss-whitelister')
|
||||||
const purgecss = require('@fullhuman/postcss-purgecss')({
|
const purgeImport = require('@fullhuman/postcss-purgecss')
|
||||||
|
const purgeCSSPlugin = purgeImport.purgeCSSPlugin || purgeImport.default || purgeImport
|
||||||
|
const purgecss = purgeCSSPlugin({
|
||||||
content: ['./hugo_stats.json'],
|
content: ['./hugo_stats.json'],
|
||||||
defaultExtractor: (content) => {
|
defaultExtractor: (content) => {
|
||||||
const els = JSON.parse(content).htmlElements
|
const els = JSON.parse(content).htmlElements
|
||||||
return [...(els.tags || []), ...(els.classes || []), ...(els.ids || [])]
|
return [...(els.tags || []), ...(els.classes || []), ...(els.ids || [])]
|
||||||
},
|
},
|
||||||
dynamicAttributes: ['data-bs-theme'],
|
dynamicAttributes: ['data-bs-theme', 'data-bs-theme-animate'],
|
||||||
safelist: ['was-validated',
|
safelist: ['was-validated',
|
||||||
...whitelister([
|
...whitelister([
|
||||||
'./assets/scss/components/_clipboard.scss',
|
'./assets/scss/components/_clipboard.scss',
|
||||||
|
@@ -4,12 +4,12 @@
|
|||||||
command = "npm run build:example"
|
command = "npm run build:example"
|
||||||
|
|
||||||
[build.environment]
|
[build.environment]
|
||||||
DART_SASS_VERSION = "1.78.0"
|
DART_SASS_VERSION = "1.83.1"
|
||||||
HUGO_VERSION = "0.134.1"
|
HUGO_VERSION = "0.140.2"
|
||||||
HUGO_ENV = "production"
|
HUGO_ENV = "production"
|
||||||
HUGO_ENABLEGITINFO = "true"
|
HUGO_ENABLEGITINFO = "true"
|
||||||
NODE_VERSION = "20.17.0"
|
NODE_VERSION = "22.12.0"
|
||||||
NPM_VERSION = "10.8.2"
|
NPM_VERSION = "10.9.0"
|
||||||
# toml-docs-end netlify
|
# toml-docs-end netlify
|
||||||
|
|
||||||
[context.deploy-preview]
|
[context.deploy-preview]
|
||||||
|
@@ -63,6 +63,15 @@ arguments:
|
|||||||
default: false
|
default: false
|
||||||
comment: >-
|
comment: >-
|
||||||
Flag to indicate if a link that contains baseURL host should be forced as external.
|
Flag to indicate if a link that contains baseURL host should be forced as external.
|
||||||
|
force:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: false
|
||||||
|
comment: >-
|
||||||
|
Flag to indicate a link should bypass any language redirection. Only applicable when
|
||||||
|
the site param `enableLanguageSelectionStorage` is set to true. When `force` is true,
|
||||||
|
the link to a local page is kept as is.
|
||||||
|
release: v0.27.20
|
||||||
class:
|
class:
|
||||||
type: string
|
type: string
|
||||||
optional: true
|
optional: true
|
||||||
|
@@ -3,6 +3,20 @@ comment: >-
|
|||||||
improve their layout on smaller screens. To features `sortable`, `paging`,
|
improve their layout on smaller screens. To features `sortable`, `paging`,
|
||||||
and `searchable` require the module `simple-datatables`.
|
and `searchable` require the module `simple-datatables`.
|
||||||
arguments:
|
arguments:
|
||||||
|
page:
|
||||||
|
type:
|
||||||
|
- '*hugolib.pageState'
|
||||||
|
- '*hugolib.pageForShortcode'
|
||||||
|
optional: false
|
||||||
|
comment: Page to display the breadcrumb for.
|
||||||
|
group: partial
|
||||||
|
input:
|
||||||
|
type:
|
||||||
|
- string
|
||||||
|
- template.HTML
|
||||||
|
optional: false
|
||||||
|
comment: Table input in markdown format.
|
||||||
|
group: partial
|
||||||
breakpoint:
|
breakpoint:
|
||||||
type: select
|
type: select
|
||||||
optional: true
|
optional: true
|
||||||
@@ -55,6 +69,13 @@ arguments:
|
|||||||
optional: true
|
optional: true
|
||||||
comment: Toggle the ability to search the dataset.
|
comment: Toggle the ability to search the dataset.
|
||||||
release: v0.24.13
|
release: v0.24.13
|
||||||
|
wrap:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Toggle the last column to wrap to a new row on smaller devices. This
|
||||||
|
setting is not compatible with data tables.
|
||||||
|
release: v0.28.0
|
||||||
body:
|
body:
|
||||||
type: string
|
type: string
|
||||||
optional: false
|
optional: false
|
||||||
|
@@ -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
|
|
@@ -1,6 +1,6 @@
|
|||||||
resourcedir = '../resources/'
|
resourcedir = '../resources/'
|
||||||
title = "Hinode"
|
title = "Hinode"
|
||||||
copyright = "Copyright © 2024 Mark Dumay."
|
copyright = "Copyright © 2022 - 2025 Mark Dumay."
|
||||||
enableGitInfo = true
|
enableGitInfo = true
|
||||||
|
|
||||||
# additional settings
|
# additional settings
|
||||||
|
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,8 +8,10 @@
|
|||||||
footerBelowFold = false
|
footerBelowFold = false
|
||||||
loading = "lazy"
|
loading = "lazy"
|
||||||
breakpoint = "md"
|
breakpoint = "md"
|
||||||
|
titleCase = true
|
||||||
[main.internalLinks]
|
[main.internalLinks]
|
||||||
validate = true
|
validate = true
|
||||||
|
pretty = true
|
||||||
[main.externalLinks]
|
[main.externalLinks]
|
||||||
cue = true
|
cue = true
|
||||||
tab = true
|
tab = true
|
||||||
@@ -62,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"
|
||||||
@@ -157,7 +164,7 @@
|
|||||||
# themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" # external path
|
# themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" # external path
|
||||||
themeFontPath = "/fonts" # local path
|
themeFontPath = "/fonts" # local path
|
||||||
themeFontPreload = "/fonts/inter-v12-latin-regular.woff2"
|
themeFontPreload = "/fonts/inter-v12-latin-regular.woff2"
|
||||||
purge = false # TODO: fix purge setting of example site
|
purge = true
|
||||||
# toml-docs-end theme-colors
|
# toml-docs-end theme-colors
|
||||||
|
|
||||||
[schema]
|
[schema]
|
||||||
|
@@ -3,31 +3,34 @@ const cssnano = require('cssnano')({
|
|||||||
preset: 'advanced'
|
preset: 'advanced'
|
||||||
})
|
})
|
||||||
const whitelister = require('purgecss-whitelister')
|
const whitelister = require('purgecss-whitelister')
|
||||||
const purgecss = require('@fullhuman/postcss-purgecss')({
|
const purgeImport = require('@fullhuman/postcss-purgecss')
|
||||||
content: ['./hugo_stats.json'],
|
const purgeCSSPlugin = purgeImport.purgeCSSPlugin || purgeImport.default || purgeImport
|
||||||
|
const purgecss = purgeCSSPlugin({
|
||||||
|
content: ['./exampleSite/hugo_stats.json'],
|
||||||
defaultExtractor: (content) => {
|
defaultExtractor: (content) => {
|
||||||
const els = JSON.parse(content).htmlElements
|
const els = JSON.parse(content).htmlElements
|
||||||
return [...(els.tags || []), ...(els.classes || []), ...(els.ids || [])]
|
return [...(els.tags || []), ...(els.classes || []), ...(els.ids || [])]
|
||||||
},
|
},
|
||||||
dynamicAttributes: ['data-bs-theme'],
|
dynamicAttributes: ['data-bs-theme', 'data-bs-theme-animate'],
|
||||||
safelist: ['was-validated',
|
safelist: ['was-validated',
|
||||||
...whitelister([
|
...whitelister([
|
||||||
'./_vendor/github.com/gethinode/hinode/assets/scss/components/_clipboard.scss',
|
'./assets/scss/components/_clipboard.scss',
|
||||||
'./_vendor/github.com/gethinode/hinode/assets/scss/components/_command.scss',
|
'./assets/scss/components/_command.scss',
|
||||||
'./_vendor/github.com/gethinode/hinode/assets/scss/components/_nav.scss',
|
'./assets/scss/components/_nav.scss',
|
||||||
'./_vendor/github.com/gethinode/hinode/assets/scss/components/_navbar.scss',
|
'./assets/scss/components/_navbar.scss',
|
||||||
'./_vendor/github.com/gethinode/hinode/assets/scss/components/_search.scss',
|
'./assets/scss/components/_search.scss',
|
||||||
'./_vendor/github.com/gethinode/hinode/assets/scss/components/_syntax.scss',
|
'./assets/scss/components/_syntax.scss',
|
||||||
'./_vendor/github.com/gethinode/hinode/assets/scss/components/_syntax-dark.scss',
|
'./assets/scss/components/_syntax-dark.scss',
|
||||||
'./_vendor/github.com/gethinode/hinode/assets/scss/components/_syntax-light.scss',
|
'./assets/scss/components/_syntax-light.scss',
|
||||||
'./_vendor/github.com/gethinode/hinode/assets/scss/components/_table.scss',
|
'./assets/scss/components/_table.scss',
|
||||||
'./_vendor/github.com/gethinode/hinode/assets/scss/components/_video.scss',
|
'./assets/scss/components/_video.scss',
|
||||||
'./_vendor/github.com/gethinode/hinode/assets/scss/theme/fonts.scss',
|
'./assets/scss/theme/fonts.scss',
|
||||||
'./_vendor/github.com/gethinode/hinode/assets/scss/theme/theme.scss',
|
'./assets/scss/theme/theme.scss',
|
||||||
'./exampleSite/_vendor/github.com/gethinode/mod-cookieyes/v2/assets/scss/cookieyes.scss',
|
'./_vendor/github.com/gethinode/mod-cookieyes/v2/assets/scss/cookieyes.scss',
|
||||||
'./_vendor/github.com/gethinode/mod-flexsearch/v2/assets/scss/modules/flexsearch/flexsearch.scss',
|
'./_vendor/github.com/gethinode/mod-flexsearch/v2/assets/scss/modules/flexsearch/flexsearch.scss',
|
||||||
'./_vendor/github.com/gethinode/mod-katex/dist/katex.scss',
|
'./_vendor/github.com/gethinode/mod-katex/dist/katex.scss',
|
||||||
'./_vendor/github.com/gethinode/mod-leaflet/dist/leaflet.scss',
|
'./_vendor/github.com/gethinode/mod-leaflet/dist/leaflet.scss',
|
||||||
|
'./_vendor/github.com/gethinode/mod-simple-datatables/dist/simple-datatables.scss',
|
||||||
'./_vendor/github.com/twbs/bootstrap/scss/_carousel.scss',
|
'./_vendor/github.com/twbs/bootstrap/scss/_carousel.scss',
|
||||||
'./_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss',
|
'./_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss',
|
||||||
'./_vendor/github.com/twbs/bootstrap/scss/_modal.scss',
|
'./_vendor/github.com/twbs/bootstrap/scss/_modal.scss',
|
||||||
|
@@ -316,7 +316,7 @@ As an example, the following shortcodes render links in different formats.
|
|||||||
- {{</* link url="../projects/another-project" case=false /*/>}}
|
- {{</* link url="../projects/another-project" case=false /*/>}}
|
||||||
- {{</* link "about" /*/>}}
|
- {{</* link "about" /*/>}}
|
||||||
- {{</* link "/fr/a-propos/" /*/>}}
|
- {{</* link "/fr/a-propos/" /*/>}}
|
||||||
- {{</* link "/fr/a-propos" >}}About (French){{< /link */>}}
|
- {{</* link href="/fr/a-propos" force=true >}}About (French){{< /link */>}}
|
||||||
- {{</* link "#image" /*/>}}
|
- {{</* link "#image" /*/>}}
|
||||||
- {{</* link "components/#map" /*/>}}
|
- {{</* link "components/#map" /*/>}}
|
||||||
|
|
||||||
|
@@ -136,7 +136,7 @@ En-tête 6 {{</* badge title="Nouveau" */>}}
|
|||||||
|
|
||||||
{{% comment %}}<!-- markdownlint-disable MD037 -->{{% /comment %}}
|
{{% comment %}}<!-- markdownlint-disable MD037 -->{{% /comment %}}
|
||||||
{{< example lang="hugo" >}}
|
{{< example lang="hugo" >}}
|
||||||
{{</* card-group padding="3" gutter="3" */>}}
|
{{</* card-group padding="3" gutter="3" button=true buttonType="link" cols=2 scroll=true */>}}
|
||||||
{{</* card title="Framework Bootstrap" icon="fab bootstrap" */>}}
|
{{</* card title="Framework Bootstrap" icon="fab bootstrap" */>}}
|
||||||
Créez des sites rapides et réactifs avec Bootstrap 5. Personnalisez facilement votre site
|
Créez des sites rapides et réactifs avec Bootstrap 5. Personnalisez facilement votre site
|
||||||
avec les fichiers source Sass.
|
avec les fichiers source Sass.
|
||||||
@@ -298,7 +298,7 @@ Utilisez le shortcode `file` pour afficher et mettre en évidence le contenu com
|
|||||||
- {{</* link url="../projects/another-project" case=false /*/>}}
|
- {{</* link url="../projects/another-project" case=false /*/>}}
|
||||||
- {{</* link "about" /*/>}}
|
- {{</* link "about" /*/>}}
|
||||||
- {{</* link "/en/about/" /*/>}}
|
- {{</* link "/en/about/" /*/>}}
|
||||||
- {{</* link "/en/about" >}}About (Anglais){{< /link */>}}
|
- {{</* link url="/en/about/" force=true >}}About (Anglais){{< /link */>}}
|
||||||
- {{</* link "#image" /*/>}}
|
- {{</* link "#image" /*/>}}
|
||||||
- {{</* link "components/#map" /*/>}}
|
- {{</* link "components/#map" /*/>}}
|
||||||
|
|
||||||
|
@@ -3,5 +3,5 @@ module github.com/gethinode/hinode/exampleSite
|
|||||||
go 1.19
|
go 1.19
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/gethinode/mod-cookieyes/v2 v2.2.2 // indirect
|
github.com/gethinode/mod-cookieyes/v2 v2.2.4 // indirect
|
||||||
)
|
)
|
||||||
|
@@ -1,2 +1,2 @@
|
|||||||
github.com/gethinode/mod-cookieyes/v2 v2.2.2 h1:VNIdbZnzXw/0Jito/IcDNqQ9yRYLCGrDwyrMqtSJgE4=
|
github.com/gethinode/mod-cookieyes/v2 v2.2.4 h1:MxKKNSpX2cb9+4l3mH/xfZUqiJ1buaGLj0AFRnPci5M=
|
||||||
github.com/gethinode/mod-cookieyes/v2 v2.2.2/go.mod h1:tULb7D7CoTycGUyL7ryqHJKaX11XuL2SN+XwP7/DI0Y=
|
github.com/gethinode/mod-cookieyes/v2 v2.2.4/go.mod h1:tULb7D7CoTycGUyL7ryqHJKaX11XuL2SN+XwP7/DI0Y=
|
||||||
|
@@ -14,7 +14,6 @@
|
|||||||
"footer",
|
"footer",
|
||||||
"form",
|
"form",
|
||||||
"h2",
|
"h2",
|
||||||
"h3",
|
|
||||||
"head",
|
"head",
|
||||||
"hr",
|
"hr",
|
||||||
"html",
|
"html",
|
||||||
@@ -65,6 +64,7 @@
|
|||||||
"use"
|
"use"
|
||||||
],
|
],
|
||||||
"classes": [
|
"classes": [
|
||||||
|
"%!s(<nil>)",
|
||||||
"accordion",
|
"accordion",
|
||||||
"accordion-body",
|
"accordion-body",
|
||||||
"accordion-button",
|
"accordion-button",
|
||||||
@@ -207,6 +207,7 @@
|
|||||||
"fa-2xs",
|
"fa-2xs",
|
||||||
"fa-4x",
|
"fa-4x",
|
||||||
"fa-activity",
|
"fa-activity",
|
||||||
|
"fa-angle-left",
|
||||||
"fa-arrow-left",
|
"fa-arrow-left",
|
||||||
"fa-arrow-right",
|
"fa-arrow-right",
|
||||||
"fa-bootstrap",
|
"fa-bootstrap",
|
||||||
@@ -250,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",
|
||||||
@@ -355,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",
|
||||||
@@ -371,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",
|
||||||
@@ -467,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",
|
||||||
@@ -483,7 +487,6 @@
|
|||||||
"w-50"
|
"w-50"
|
||||||
],
|
],
|
||||||
"ids": [
|
"ids": [
|
||||||
"TableOfContents",
|
|
||||||
"abbr",
|
"abbr",
|
||||||
"accordion",
|
"accordion",
|
||||||
"accordion-0",
|
"accordion-0",
|
||||||
|
20
go.mod
20
go.mod
@@ -4,16 +4,16 @@ go 1.19
|
|||||||
|
|
||||||
require (
|
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.1 // indirect
|
github.com/gethinode/mod-bootstrap v1.3.2 // indirect
|
||||||
github.com/gethinode/mod-csp v1.0.5 // indirect
|
github.com/gethinode/mod-csp v1.0.7 // indirect
|
||||||
github.com/gethinode/mod-flexsearch/v2 v2.0.2 // indirect
|
github.com/gethinode/mod-flexsearch/v2 v2.1.0 // indirect
|
||||||
github.com/gethinode/mod-fontawesome v1.10.0 // indirect
|
github.com/gethinode/mod-fontawesome v1.10.1 // indirect
|
||||||
github.com/gethinode/mod-google-analytics v1.1.5 // indirect
|
github.com/gethinode/mod-google-analytics v1.3.1 // indirect
|
||||||
github.com/gethinode/mod-katex v1.1.2 // indirect
|
github.com/gethinode/mod-katex v1.1.3 // indirect
|
||||||
github.com/gethinode/mod-leaflet v1.2.0 // indirect
|
github.com/gethinode/mod-leaflet v1.2.1 // indirect
|
||||||
github.com/gethinode/mod-lottie v1.5.12 // indirect
|
github.com/gethinode/mod-lottie v1.5.13 // indirect
|
||||||
github.com/gethinode/mod-simple-datatables v1.1.4 // indirect
|
github.com/gethinode/mod-simple-datatables v1.1.7 // indirect
|
||||||
github.com/gethinode/mod-utils/v2 v2.8.4 // 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
|
||||||
)
|
)
|
||||||
|
38
go.sum
38
go.sum
@@ -24,6 +24,8 @@ github.com/gethinode/mod-bootstrap v1.3.0 h1:UxNmXgXo7gA8C8z1ar47+tSccmKYpaYBBN+
|
|||||||
github.com/gethinode/mod-bootstrap v1.3.0/go.mod h1:CL9IDot6nbXIWJYE/KxfsTdYYEJIGL17BXbAYPn+wVQ=
|
github.com/gethinode/mod-bootstrap v1.3.0/go.mod h1:CL9IDot6nbXIWJYE/KxfsTdYYEJIGL17BXbAYPn+wVQ=
|
||||||
github.com/gethinode/mod-bootstrap v1.3.1 h1:ZUX72St0WZ5tyXpEPBJlayX/dmCH3cGErzsozkUKCok=
|
github.com/gethinode/mod-bootstrap v1.3.1 h1:ZUX72St0WZ5tyXpEPBJlayX/dmCH3cGErzsozkUKCok=
|
||||||
github.com/gethinode/mod-bootstrap v1.3.1/go.mod h1:CL9IDot6nbXIWJYE/KxfsTdYYEJIGL17BXbAYPn+wVQ=
|
github.com/gethinode/mod-bootstrap v1.3.1/go.mod h1:CL9IDot6nbXIWJYE/KxfsTdYYEJIGL17BXbAYPn+wVQ=
|
||||||
|
github.com/gethinode/mod-bootstrap v1.3.2 h1:mf9Qgr+xHZeHjZGYFdurETfdEKKldB158fpjH0GoaNU=
|
||||||
|
github.com/gethinode/mod-bootstrap v1.3.2/go.mod h1:CL9IDot6nbXIWJYE/KxfsTdYYEJIGL17BXbAYPn+wVQ=
|
||||||
github.com/gethinode/mod-csp v1.0.0 h1:Obp0MVMBjIPZbKDh6Ejl5pImDG7yERMLf2or9UVnwPA=
|
github.com/gethinode/mod-csp v1.0.0 h1:Obp0MVMBjIPZbKDh6Ejl5pImDG7yERMLf2or9UVnwPA=
|
||||||
github.com/gethinode/mod-csp v1.0.0/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
|
github.com/gethinode/mod-csp v1.0.0/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
|
||||||
github.com/gethinode/mod-csp v1.0.1 h1:IUUwPc41UNw7DAFuJ75nNPzhkPExenxXU7susdLaxdQ=
|
github.com/gethinode/mod-csp v1.0.1 h1:IUUwPc41UNw7DAFuJ75nNPzhkPExenxXU7susdLaxdQ=
|
||||||
@@ -36,6 +38,10 @@ github.com/gethinode/mod-csp v1.0.4 h1:ChI+DMkkkCF5tKs+K9VSqdsXPS01/QANQiJ2LoJp1
|
|||||||
github.com/gethinode/mod-csp v1.0.4/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
|
github.com/gethinode/mod-csp v1.0.4/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
|
||||||
github.com/gethinode/mod-csp v1.0.5 h1:Ypdzw26iQ9/4sAgHvwFY1mg/EMoLrcI2knvVmHq2Ffs=
|
github.com/gethinode/mod-csp v1.0.5 h1:Ypdzw26iQ9/4sAgHvwFY1mg/EMoLrcI2knvVmHq2Ffs=
|
||||||
github.com/gethinode/mod-csp v1.0.5/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
|
github.com/gethinode/mod-csp v1.0.5/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
|
||||||
|
github.com/gethinode/mod-csp v1.0.6 h1:ufEKQldQe9ZCXbENTpwqVlYnPRgVv3WDhPjur5OLUEA=
|
||||||
|
github.com/gethinode/mod-csp v1.0.6/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
|
||||||
|
github.com/gethinode/mod-csp v1.0.7 h1:V4D8vYA/jJ2Nv9kPz5gt96fkVd3NtT7sBqVhnG5TvAU=
|
||||||
|
github.com/gethinode/mod-csp v1.0.7/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
|
||||||
github.com/gethinode/mod-flexsearch v1.0.1 h1:FJkRsUzSnQTXl3MWCigT4E6vfff870UWTnkGqaDGIhA=
|
github.com/gethinode/mod-flexsearch v1.0.1 h1:FJkRsUzSnQTXl3MWCigT4E6vfff870UWTnkGqaDGIhA=
|
||||||
github.com/gethinode/mod-flexsearch v1.0.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
github.com/gethinode/mod-flexsearch v1.0.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||||
github.com/gethinode/mod-flexsearch v1.1.0 h1:7BCMyQDlYlskNXuazt8Jg/jg9WREexu2xVkYqThkAX4=
|
github.com/gethinode/mod-flexsearch v1.1.0 h1:7BCMyQDlYlskNXuazt8Jg/jg9WREexu2xVkYqThkAX4=
|
||||||
@@ -88,6 +94,10 @@ github.com/gethinode/mod-flexsearch/v2 v2.0.1 h1:5unGUSb1tX1LBtKygnLfdt7CnVJuFKS
|
|||||||
github.com/gethinode/mod-flexsearch/v2 v2.0.1/go.mod h1:d7MMkVlz0l6cEk76e0mkveEsDxGfu5Sv+HUIhoGguhE=
|
github.com/gethinode/mod-flexsearch/v2 v2.0.1/go.mod h1:d7MMkVlz0l6cEk76e0mkveEsDxGfu5Sv+HUIhoGguhE=
|
||||||
github.com/gethinode/mod-flexsearch/v2 v2.0.2 h1:5FkLbjORwKvK544H/yaAltyIB7eptRPxxh5VcfDDeqM=
|
github.com/gethinode/mod-flexsearch/v2 v2.0.2 h1:5FkLbjORwKvK544H/yaAltyIB7eptRPxxh5VcfDDeqM=
|
||||||
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/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=
|
||||||
@@ -132,6 +142,8 @@ github.com/gethinode/mod-fontawesome v1.9.1 h1:cQk84vriqffM4fuUUoM9j3SSD+3ppeW2j
|
|||||||
github.com/gethinode/mod-fontawesome v1.9.1/go.mod h1:xBKsZH3WJtMOItZVlp9SbO51uaBy6IbvUZSKpNu3b6Y=
|
github.com/gethinode/mod-fontawesome v1.9.1/go.mod h1:xBKsZH3WJtMOItZVlp9SbO51uaBy6IbvUZSKpNu3b6Y=
|
||||||
github.com/gethinode/mod-fontawesome v1.10.0 h1:Izs2AKc+YVBa1TywcH54OKLTNCUMXRoFIqOs+n0FgOo=
|
github.com/gethinode/mod-fontawesome v1.10.0 h1:Izs2AKc+YVBa1TywcH54OKLTNCUMXRoFIqOs+n0FgOo=
|
||||||
github.com/gethinode/mod-fontawesome v1.10.0/go.mod h1:xBKsZH3WJtMOItZVlp9SbO51uaBy6IbvUZSKpNu3b6Y=
|
github.com/gethinode/mod-fontawesome v1.10.0/go.mod h1:xBKsZH3WJtMOItZVlp9SbO51uaBy6IbvUZSKpNu3b6Y=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.10.1 h1:gXQ75VXI+a0W2ALkAFHd/QFQ/VoZR6eujX0Hm7DkG94=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.10.1/go.mod h1:xBKsZH3WJtMOItZVlp9SbO51uaBy6IbvUZSKpNu3b6Y=
|
||||||
github.com/gethinode/mod-google-analytics v1.0.0 h1:fly42RQ69bdyJe8WFefsBIo7WMIXkd3wZn32kyAr4h4=
|
github.com/gethinode/mod-google-analytics v1.0.0 h1:fly42RQ69bdyJe8WFefsBIo7WMIXkd3wZn32kyAr4h4=
|
||||||
github.com/gethinode/mod-google-analytics v1.0.0/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
|
github.com/gethinode/mod-google-analytics v1.0.0/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
|
||||||
github.com/gethinode/mod-google-analytics v1.0.1 h1:zbmOdnAhhFCA7qWw7fnR46biWhqW2r06sIaTWyhB5R0=
|
github.com/gethinode/mod-google-analytics v1.0.1 h1:zbmOdnAhhFCA7qWw7fnR46biWhqW2r06sIaTWyhB5R0=
|
||||||
@@ -150,6 +162,14 @@ github.com/gethinode/mod-google-analytics v1.1.4 h1:GkLzbSdVIMLWSQ4VOSaJZIKyofmV
|
|||||||
github.com/gethinode/mod-google-analytics v1.1.4/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
|
github.com/gethinode/mod-google-analytics v1.1.4/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
|
||||||
github.com/gethinode/mod-google-analytics v1.1.5 h1:wlOcgwNEJAnIQmPJIo3cT06xnr1dxN/ydUIztoC/7rM=
|
github.com/gethinode/mod-google-analytics v1.1.5 h1:wlOcgwNEJAnIQmPJIo3cT06xnr1dxN/ydUIztoC/7rM=
|
||||||
github.com/gethinode/mod-google-analytics v1.1.5/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
|
github.com/gethinode/mod-google-analytics v1.1.5/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
|
||||||
|
github.com/gethinode/mod-google-analytics v1.1.6 h1:0eNIM4NTzXnnRHMM04IVnYPPGwbMAmit6fjuUuCQv2I=
|
||||||
|
github.com/gethinode/mod-google-analytics v1.1.6/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
|
||||||
|
github.com/gethinode/mod-google-analytics v1.1.9 h1:ld3bRGiJiUCfe/deH+4vOP3oZNhG6mPssT254EcK0Ro=
|
||||||
|
github.com/gethinode/mod-google-analytics v1.1.9/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
|
||||||
|
github.com/gethinode/mod-google-analytics v1.3.0 h1:R9oRB6nbFDwLsNmIhxlcmUVH4JE1kvcmbOloKSHhiIQ=
|
||||||
|
github.com/gethinode/mod-google-analytics v1.3.0/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
|
||||||
|
github.com/gethinode/mod-google-analytics v1.3.1 h1:WPXrsO6Kpp0k8PYY9a1JyiZgYGMlkBfHY8eEg6CfcL0=
|
||||||
|
github.com/gethinode/mod-google-analytics v1.3.1/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
|
||||||
github.com/gethinode/mod-katex v1.0.0 h1:me/3dIIZBkfk1mRIFt8QiAGYwYDoSG5bc2hHRtIutFc=
|
github.com/gethinode/mod-katex v1.0.0 h1:me/3dIIZBkfk1mRIFt8QiAGYwYDoSG5bc2hHRtIutFc=
|
||||||
github.com/gethinode/mod-katex v1.0.0/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
github.com/gethinode/mod-katex v1.0.0/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||||
github.com/gethinode/mod-katex v1.0.1 h1:809QUztxmKgMNchU+v03iMO7Ma+ISc3ZzhXYauc21rs=
|
github.com/gethinode/mod-katex v1.0.1 h1:809QUztxmKgMNchU+v03iMO7Ma+ISc3ZzhXYauc21rs=
|
||||||
@@ -174,6 +194,8 @@ github.com/gethinode/mod-katex v1.1.1 h1:z8+mfVI6UTWcfpQMVPIzxQzt6Lp9BcmXxSOILQ8
|
|||||||
github.com/gethinode/mod-katex v1.1.1/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
github.com/gethinode/mod-katex v1.1.1/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||||
github.com/gethinode/mod-katex v1.1.2 h1:TbeVIWeG5TqldlVxpM1upOWj11RljXy4fhpOQIwOnS4=
|
github.com/gethinode/mod-katex v1.1.2 h1:TbeVIWeG5TqldlVxpM1upOWj11RljXy4fhpOQIwOnS4=
|
||||||
github.com/gethinode/mod-katex v1.1.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
github.com/gethinode/mod-katex v1.1.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||||
|
github.com/gethinode/mod-katex v1.1.3 h1:fRgoBZVCJeLUFqGrGweg4FhCcbGsyqNRmd9WezG/CUQ=
|
||||||
|
github.com/gethinode/mod-katex v1.1.3/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||||
github.com/gethinode/mod-leaflet v0.2.3 h1:QQI4h+IH0jZ7fx4q0um2YIEiYBoW3OAfW8qHzbRCDPk=
|
github.com/gethinode/mod-leaflet v0.2.3 h1:QQI4h+IH0jZ7fx4q0um2YIEiYBoW3OAfW8qHzbRCDPk=
|
||||||
github.com/gethinode/mod-leaflet v0.2.3/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
|
github.com/gethinode/mod-leaflet v0.2.3/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
|
||||||
github.com/gethinode/mod-leaflet v0.3.1 h1:H5MaOa+BB1KuVw7abTqfIn/SNzzRsAyx/WQoSe+2Ykc=
|
github.com/gethinode/mod-leaflet v0.3.1 h1:H5MaOa+BB1KuVw7abTqfIn/SNzzRsAyx/WQoSe+2Ykc=
|
||||||
@@ -196,6 +218,8 @@ github.com/gethinode/mod-leaflet v1.1.1 h1:AIHR4k8SjmeoZxtjLgSS6/N3jKeZNZGdZTgu/
|
|||||||
github.com/gethinode/mod-leaflet v1.1.1/go.mod h1:Ei0x9WiL7Dbi4JeG6yI1CE63bT1QJ8sKi67Jea1wFSE=
|
github.com/gethinode/mod-leaflet v1.1.1/go.mod h1:Ei0x9WiL7Dbi4JeG6yI1CE63bT1QJ8sKi67Jea1wFSE=
|
||||||
github.com/gethinode/mod-leaflet v1.2.0 h1:5q5LHmGNi9N4cdRDCsl/6oI8vY3oQ2ogNUjP3NCnk4Y=
|
github.com/gethinode/mod-leaflet v1.2.0 h1:5q5LHmGNi9N4cdRDCsl/6oI8vY3oQ2ogNUjP3NCnk4Y=
|
||||||
github.com/gethinode/mod-leaflet v1.2.0/go.mod h1:Ei0x9WiL7Dbi4JeG6yI1CE63bT1QJ8sKi67Jea1wFSE=
|
github.com/gethinode/mod-leaflet v1.2.0/go.mod h1:Ei0x9WiL7Dbi4JeG6yI1CE63bT1QJ8sKi67Jea1wFSE=
|
||||||
|
github.com/gethinode/mod-leaflet v1.2.1 h1:p0bKi+F5vbXwYknBvFEN9KymK8PRqKaYhVz5O1QPs/c=
|
||||||
|
github.com/gethinode/mod-leaflet v1.2.1/go.mod h1:Ei0x9WiL7Dbi4JeG6yI1CE63bT1QJ8sKi67Jea1wFSE=
|
||||||
github.com/gethinode/mod-lottie v1.0.0 h1:1CUZMcgN5FAyjjyuP3qkaOQ6M5sv6HUAbosW4sIT5VE=
|
github.com/gethinode/mod-lottie v1.0.0 h1:1CUZMcgN5FAyjjyuP3qkaOQ6M5sv6HUAbosW4sIT5VE=
|
||||||
github.com/gethinode/mod-lottie v1.0.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
github.com/gethinode/mod-lottie v1.0.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
||||||
github.com/gethinode/mod-lottie v1.0.1 h1:+IE7xtnSVQpJS56oBJq9RWKZeFEfxrOZAqE3BSrS/u0=
|
github.com/gethinode/mod-lottie v1.0.1 h1:+IE7xtnSVQpJS56oBJq9RWKZeFEfxrOZAqE3BSrS/u0=
|
||||||
@@ -248,6 +272,8 @@ github.com/gethinode/mod-lottie v1.5.11 h1:xhxBPDS0iyUY+C1ANaD5EeQV7fO1FG0wMoCjg
|
|||||||
github.com/gethinode/mod-lottie v1.5.11/go.mod h1:6FKqk8c+Jkbk2udCxUKVLF1K1wrGwthPsOvRzeoPXRQ=
|
github.com/gethinode/mod-lottie v1.5.11/go.mod h1:6FKqk8c+Jkbk2udCxUKVLF1K1wrGwthPsOvRzeoPXRQ=
|
||||||
github.com/gethinode/mod-lottie v1.5.12 h1:ny+5DfxWpgRPszhrSUqg+BcNt05ai1OvPAEgCuioFnA=
|
github.com/gethinode/mod-lottie v1.5.12 h1:ny+5DfxWpgRPszhrSUqg+BcNt05ai1OvPAEgCuioFnA=
|
||||||
github.com/gethinode/mod-lottie v1.5.12/go.mod h1:0WZP8x7duK/AIZ8fWdZNRnteG03kYfLtsaph7z1mdOg=
|
github.com/gethinode/mod-lottie v1.5.12/go.mod h1:0WZP8x7duK/AIZ8fWdZNRnteG03kYfLtsaph7z1mdOg=
|
||||||
|
github.com/gethinode/mod-lottie v1.5.13 h1:Vth/OZDjfBZ9Kz5ew3tXGj9tU6w4StIta6qgfa1daZo=
|
||||||
|
github.com/gethinode/mod-lottie v1.5.13/go.mod h1:tMFSUW9z3kC8IvDfs1ph9MGjuZFRBrpCnpodrwY+L4w=
|
||||||
github.com/gethinode/mod-simple-datatables v1.0.0 h1:Dj4WGw12OkaimwkCpLn5Jhmd49dvNJW9O2P/W9F+HlQ=
|
github.com/gethinode/mod-simple-datatables v1.0.0 h1:Dj4WGw12OkaimwkCpLn5Jhmd49dvNJW9O2P/W9F+HlQ=
|
||||||
github.com/gethinode/mod-simple-datatables v1.0.0/go.mod h1:K8T7fIdb8pMOB+OSW4A5lz5IW99+HyzcTgx764fvOGw=
|
github.com/gethinode/mod-simple-datatables v1.0.0/go.mod h1:K8T7fIdb8pMOB+OSW4A5lz5IW99+HyzcTgx764fvOGw=
|
||||||
github.com/gethinode/mod-simple-datatables v1.0.2 h1:zhqxHet3iLQWYCBbGROALpOY9zQlptMycFkz1Tto5bA=
|
github.com/gethinode/mod-simple-datatables v1.0.2 h1:zhqxHet3iLQWYCBbGROALpOY9zQlptMycFkz1Tto5bA=
|
||||||
@@ -280,6 +306,12 @@ github.com/gethinode/mod-simple-datatables v1.1.3 h1:a+uIfgc6c+9Zc38Q+Kzd3cWeFhC
|
|||||||
github.com/gethinode/mod-simple-datatables v1.1.3/go.mod h1:8q/6f3uAPNTTP5NjEJOuXr6tEWelRFLJfzVJ3AODMlQ=
|
github.com/gethinode/mod-simple-datatables v1.1.3/go.mod h1:8q/6f3uAPNTTP5NjEJOuXr6tEWelRFLJfzVJ3AODMlQ=
|
||||||
github.com/gethinode/mod-simple-datatables v1.1.4 h1:8+uwaEBoh8N2T2sHlcIcxqAGaHPqT0YhPBmr2SFWBCY=
|
github.com/gethinode/mod-simple-datatables v1.1.4 h1:8+uwaEBoh8N2T2sHlcIcxqAGaHPqT0YhPBmr2SFWBCY=
|
||||||
github.com/gethinode/mod-simple-datatables v1.1.4/go.mod h1:8q/6f3uAPNTTP5NjEJOuXr6tEWelRFLJfzVJ3AODMlQ=
|
github.com/gethinode/mod-simple-datatables v1.1.4/go.mod h1:8q/6f3uAPNTTP5NjEJOuXr6tEWelRFLJfzVJ3AODMlQ=
|
||||||
|
github.com/gethinode/mod-simple-datatables v1.1.5 h1:DKJ+aR94mekzcDwOnm6MJ/+MjAzal+GSYQXSdn0HRdc=
|
||||||
|
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/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=
|
||||||
@@ -346,6 +378,12 @@ github.com/gethinode/mod-utils/v2 v2.8.3 h1:t1MJcIdFhYi0gCkm8f0DYZwyfq7pRdRc0eNp
|
|||||||
github.com/gethinode/mod-utils/v2 v2.8.3/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
github.com/gethinode/mod-utils/v2 v2.8.3/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
||||||
github.com/gethinode/mod-utils/v2 v2.8.4 h1:ZBkIxFezFz2IrbTt0Y3Nq5ac7klU5N8TY19Qnj5px4M=
|
github.com/gethinode/mod-utils/v2 v2.8.4 h1:ZBkIxFezFz2IrbTt0Y3Nq5ac7klU5N8TY19Qnj5px4M=
|
||||||
github.com/gethinode/mod-utils/v2 v2.8.4/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
github.com/gethinode/mod-utils/v2 v2.8.4/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
||||||
|
github.com/gethinode/mod-utils/v2 v2.8.5 h1:e71ncO2NYpum7JTdNTwb0lw8aDe8Zc64Ehjavy8x9xM=
|
||||||
|
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/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=
|
||||||
|
@@ -63,6 +63,8 @@
|
|||||||
"d-inline",
|
"d-inline",
|
||||||
"d-md-block",
|
"d-md-block",
|
||||||
"d-none",
|
"d-none",
|
||||||
|
"d-sm-block",
|
||||||
|
"d-sm-none",
|
||||||
"display-1",
|
"display-1",
|
||||||
"display-4",
|
"display-4",
|
||||||
"emphasis",
|
"emphasis",
|
||||||
@@ -70,6 +72,7 @@
|
|||||||
"fa",
|
"fa",
|
||||||
"fa-10x",
|
"fa-10x",
|
||||||
"fa-2x",
|
"fa-2x",
|
||||||
|
"fa-angle-left",
|
||||||
"fa-book-open",
|
"fa-book-open",
|
||||||
"fa-ellipsis",
|
"fa-ellipsis",
|
||||||
"fa-face-frown",
|
"fa-face-frown",
|
||||||
@@ -177,6 +180,7 @@
|
|||||||
"fab-github",
|
"fab-github",
|
||||||
"fab-linkedin",
|
"fab-linkedin",
|
||||||
"fab-medium",
|
"fab-medium",
|
||||||
|
"fas-angle-left",
|
||||||
"fas-book-open",
|
"fas-book-open",
|
||||||
"fas-ellipsis",
|
"fas-ellipsis",
|
||||||
"fas-moon",
|
"fas-moon",
|
||||||
|
@@ -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 }}
|
||||||
|
@@ -7,8 +7,10 @@
|
|||||||
{{ $attr = merge $attr (dict "class" (trim (delimit ($class | append "table") " ") " ")) }}
|
{{ $attr = merge $attr (dict "class" (trim (delimit ($class | append "table") " ") " ")) }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
|
{{ $wrap := in $class "table-wrap" }}
|
||||||
{{ $align := dict "left" "start" "center" "center" "right" "end" }}
|
{{ $align := dict "left" "start" "center" "center" "right" "end" }}
|
||||||
|
|
||||||
|
{{ $header := "" }}
|
||||||
<table
|
<table
|
||||||
{{- range $k, $v := $attr }}
|
{{- range $k, $v := $attr }}
|
||||||
{{- if $v }}
|
{{- if $v }}
|
||||||
@@ -17,6 +19,19 @@
|
|||||||
{{- end }}>
|
{{- end }}>
|
||||||
<thead>
|
<thead>
|
||||||
{{- range .THead }}
|
{{- range .THead }}
|
||||||
|
{{ $length := len . }}
|
||||||
|
{{ if $wrap }}
|
||||||
|
<tr>
|
||||||
|
{{- range . | first (sub $length 1) }}
|
||||||
|
<th {{ with .Alignment }}class="text-{{ index $align . }}"{{ end }}>
|
||||||
|
{{- .Text -}}
|
||||||
|
</th>
|
||||||
|
{{- end }}
|
||||||
|
{{- range . | last 1 }}
|
||||||
|
{{ $header = .Text }}
|
||||||
|
{{ end }}
|
||||||
|
</tr>
|
||||||
|
{{ else }}
|
||||||
<tr>
|
<tr>
|
||||||
{{- range . }}
|
{{- range . }}
|
||||||
<th {{ with .Alignment }}class="text-{{ index $align . }}"{{ end }}>
|
<th {{ with .Alignment }}class="text-{{ index $align . }}"{{ end }}>
|
||||||
@@ -24,17 +39,36 @@
|
|||||||
</th>
|
</th>
|
||||||
{{- end }}
|
{{- end }}
|
||||||
</tr>
|
</tr>
|
||||||
|
{{ end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{{- range .TBody }}
|
{{- range .TBody }}
|
||||||
|
{{ $length := len . }}
|
||||||
|
{{ if $wrap }}
|
||||||
<tr>
|
<tr>
|
||||||
{{- range . }}
|
{{- range . | first (sub $length 1) }}
|
||||||
<td {{ with .Alignment }}class="text-{{ index $align . }}"{{ end }}>
|
<td class="{{ with .Alignment }}text-{{ index $align . }}{{ end }} table-border-bottom-wrap">
|
||||||
{{- .Text -}}
|
{{- .Text -}}
|
||||||
</td>
|
</td>
|
||||||
{{- end }}
|
{{- end }}
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
{{- range . | last 1 }}
|
||||||
|
<td class="{{ with .Alignment }}text-{{ index $align . }}{{ end }}" colspan="{{ (sub $length 1) }}">
|
||||||
|
{{- .Text -}}
|
||||||
|
</td>
|
||||||
|
{{ end }}
|
||||||
|
</tr>
|
||||||
|
{{ else }}
|
||||||
|
<tr>
|
||||||
|
{{- range . }}
|
||||||
|
<td {{ with .Alignment }}class="text-{{ index $align . }}"{{ end }}>
|
||||||
|
{{- .Text -}}
|
||||||
|
</td>
|
||||||
|
{{- end }}
|
||||||
|
</tr>
|
||||||
|
{{ end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
@@ -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>
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,11 +1,21 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
{{ $error := false }}
|
{{ $error := false }}
|
||||||
|
|
||||||
|
<!-- Limits a title to a maximum of 33 runes, adds a "..." suffix otherwise -->
|
||||||
|
{{ define "partials/short-title.html" }}
|
||||||
|
{{- $title := . -}}
|
||||||
|
{{ if gt (strings.RuneCount $title) 33 }}
|
||||||
|
{{ $title = print (substr $title 0 30) "..." }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ return $title }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
<!-- Validate arguments -->
|
<!-- Validate arguments -->
|
||||||
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "breadcrumb" "args" . "group" "partial") }}
|
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "breadcrumb" "args" . "group" "partial") }}
|
||||||
{{- errorf "partial [assets/breadcrumb.html] - Invalid arguments" -}}
|
{{- errorf "partial [assets/breadcrumb.html] - Invalid arguments" -}}
|
||||||
@@ -13,23 +23,50 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
<!-- Initialize arguments -->
|
<!-- Initialize arguments -->
|
||||||
{{ $page := .page }}
|
{{- $page := .page -}}
|
||||||
|
{{- $breakpoint := $page.Scratch.Get "breakpoint" -}}
|
||||||
|
|
||||||
|
<!-- Include breadcrumb items that have both a title and address -->
|
||||||
|
{{ $items := slice }}
|
||||||
|
{{- range $index, $item := $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 -->
|
<!-- Main code -->
|
||||||
{{ if not $error }}
|
{{ if not $error }}
|
||||||
<nav aria-label="breadcrumb">
|
<nav aria-label="breadcrumb" class="d-{{ $breakpoint.prev }}-none">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
{{- range $index, $item := $page.Ancestors.Reverse -}}
|
{{- $length := len $items -}}
|
||||||
{{- $title := .LinkTitle -}}
|
{{- if gt $length 0 -}}
|
||||||
{{- if .IsHome }}{{ $title = T "home" }}{{ end -}}
|
{{ $item := index $items (sub $length 1) }}
|
||||||
{{- $address := or .RelPermalink .Params.Redirect -}}
|
<li class="breadcrumb-item">
|
||||||
{{ if $address }}
|
<a href="{{ $item.address }}">
|
||||||
<li class="breadcrumb-item"><a href="{{ $address }}">{{ $title }}</a></li>
|
{{ partial "assets/icon.html" (dict "icon" "fas angle-left") }} {{ partial "short-title" $item.title }}
|
||||||
{{ else }}
|
</a>
|
||||||
<li class="breadcrumb-item">{{ $title }}</li>
|
</li>
|
||||||
{{ end }}
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
<li class="breadcrumb-item active" aria-current="page">{{ $page.LinkTitle }}</li>
|
</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 := $page.LinkTitle }}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||||
|
{{ $title }}
|
||||||
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
{{ end }}
|
{{ end }}
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
@@ -25,6 +25,9 @@
|
|||||||
)}}
|
)}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
|
<!-- Initialize global variables -->
|
||||||
|
{{- $pretty := site.Params.main.internalLinks.pretty | default false }}
|
||||||
|
|
||||||
<!-- Initialize local variables -->
|
<!-- Initialize local variables -->
|
||||||
{{ $list := $args.list }}
|
{{ $list := $args.list }}
|
||||||
{{- $class := $args.class -}}
|
{{- $class := $args.class -}}
|
||||||
@@ -64,6 +67,8 @@
|
|||||||
{{ $paginator = $args.page.Paginate $list }}
|
{{ $paginator = $args.page.Paginate $list }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ $list = first $paginator.PagerSize (after (mul (sub $paginator.PageNumber 1) $paginator.PagerSize) $list) }}
|
{{ $list = first $paginator.PagerSize (after (mul (sub $paginator.PageNumber 1) $paginator.PagerSize) $list) }}
|
||||||
|
|
||||||
|
{{ page.Store.Set "paginator" $paginator }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
<!-- Initialize list elements -->
|
<!-- Initialize list elements -->
|
||||||
@@ -177,7 +182,11 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ if and (gt $count $max) $args.hrefTitle }}
|
{{ if and (gt $count $max) $args.hrefTitle }}
|
||||||
<a class="btn btn-outline-primary mt-4" href="{{ $args.href| safeURL }}" role="button">{{ $args.hrefTitle }}</a>
|
{{ $href := $args.href }}
|
||||||
|
{{ if and $pretty (not (hasSuffix $href "/" )) (not (strings.Contains $href "#")) }}
|
||||||
|
{{ $href = printf "%s/" $href }}
|
||||||
|
{{ end }}
|
||||||
|
<a class="btn btn-outline-primary mt-4" href="{{ $href | safeURL }}" role="button">{{ $args.hrefTitle }}</a>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
@@ -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 -}}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
Copyright © 2022 - 2025 The Hinode Team / Mark Dumay. All rights reserved.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
{{ $ratio := .ratio }}
|
{{ $ratio := .ratio }}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
@@ -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 }}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
@@ -28,9 +28,12 @@
|
|||||||
{{- $rel := "" -}}
|
{{- $rel := "" -}}
|
||||||
{{- $case := .case | default true }}
|
{{- $case := .case | default true }}
|
||||||
{{- $external := .external | default false }}
|
{{- $external := .external | default false }}
|
||||||
|
{{- $force := .force | default false }}
|
||||||
{{- $cue := .cue | default site.Params.main.externalLinks.cue -}}
|
{{- $cue := .cue | default site.Params.main.externalLinks.cue -}}
|
||||||
{{- $tab := .tab | default site.Params.main.externalLinks.tab -}}
|
{{- $tab := .tab | default site.Params.main.externalLinks.tab -}}
|
||||||
|
{{- $pretty := site.Params.main.internalLinks.pretty | default false }}
|
||||||
{{- $isExternal := or (ne (urls.Parse (absURL $destination)).Host (urls.Parse site.BaseURL).Host) $external -}}
|
{{- $isExternal := or (ne (urls.Parse (absURL $destination)).Host (urls.Parse site.BaseURL).Host) $external -}}
|
||||||
|
{{- $isSpecial := and $u.Scheme (not (in (slice "http" "https") $u.Scheme)) }}
|
||||||
{{- $isLocal := hasPrefix $destination "#" -}}
|
{{- $isLocal := hasPrefix $destination "#" -}}
|
||||||
{{- $page := .page -}}
|
{{- $page := .page -}}
|
||||||
{{- $anchor := "" -}}
|
{{- $anchor := "" -}}
|
||||||
@@ -39,7 +42,11 @@
|
|||||||
{{- $class := .class -}}
|
{{- $class := .class -}}
|
||||||
|
|
||||||
<!-- Main code -->
|
<!-- Main code -->
|
||||||
{{- if $isExternal -}}
|
{{- if $isSpecial -}}
|
||||||
|
{{- if not $text -}}
|
||||||
|
{{- $text = (urls.Parse (absURL $destination)).Host -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- else if $isExternal -}}
|
||||||
{{- if not $text -}}
|
{{- if not $text -}}
|
||||||
{{- $text = (urls.Parse (absURL $destination)).Host -}}
|
{{- $text = (urls.Parse (absURL $destination)).Host -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -99,7 +106,23 @@
|
|||||||
{{ 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 "#")) }}
|
||||||
|
{{ $destination = printf "%s/" $destination }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if $force }}
|
||||||
|
{{ if strings.Contains $destination "?" }}
|
||||||
|
{{ $destination = printf "%s&force=true" $destination }}
|
||||||
|
{{ else }}
|
||||||
|
{{ $destination = printf "%s?force=true" $destination }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{ if not $error -}}
|
{{ if not $error -}}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
{{- $menuURL = partial "utilities/URLJoin.html" (dict "base" $baseURL "path" ((or $menu.PageRef $menu.URL) | relLangURL)) -}}
|
{{- $menuURL = partial "utilities/URLJoin.html" (dict "base" $baseURL "path" ((or $menu.PageRef $menu.URL) | relLangURL)) -}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- $pageURL := $page.RelPermalink -}}
|
{{- $pageURL := $page.RelPermalink -}}
|
||||||
{{- $isActive := or (and (hasPrefix $pageURL $menuURL) (ne $menuURL ("/" | relLangURL))) (eq $pageURL $menuURL) -}}
|
{{- $isActive := or (and (eq $pageURL $menuURL) (ne $menuURL ("/" | relLangURL))) (eq $pageURL $menuURL) -}}
|
||||||
{{ if not $menu.PageRef }}{{ $isActive = false }}{{ end }}
|
{{ if not $menu.PageRef }}{{ $isActive = false }}{{ end }}
|
||||||
{{- $isAlias := $menu.Params.alias -}}
|
{{- $isAlias := $menu.Params.alias -}}
|
||||||
{{- $isIcon := $menu.Params.icon -}}
|
{{- $isIcon := $menu.Params.icon -}}
|
||||||
@@ -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 }}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
@@ -77,6 +77,7 @@
|
|||||||
|
|
||||||
<!-- Initialize arguments -->
|
<!-- Initialize arguments -->
|
||||||
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
|
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
|
||||||
|
{{- $pretty := site.Params.main.internalLinks.pretty | default false }}
|
||||||
{{- $id := .id | default (printf "navbar-%d" 0) -}}
|
{{- $id := .id | default (printf "navbar-%d" 0) -}}
|
||||||
{{- $page := .page -}}
|
{{- $page := .page -}}
|
||||||
{{- $baseURL := $page.Scratch.Get "baseURL" -}}
|
{{- $baseURL := $page.Scratch.Get "baseURL" -}}
|
||||||
@@ -269,14 +270,18 @@
|
|||||||
<a class="nav-link dropdown-toggle d-none d-{{ $size }}-block" role="button" data-bs-toggle="dropdown" aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false">
|
<a class="nav-link dropdown-toggle d-none d-{{ $size }}-block" role="button" data-bs-toggle="dropdown" aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false">
|
||||||
{{- partial "assets/icon.html" (dict "icon" "fas globe fa-fw" "spacing" false) }}
|
{{- partial "assets/icon.html" (dict "icon" "fas globe fa-fw" "spacing" false) }}
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu dropdown-menu-end " id="language-selector">
|
<ul class="dropdown-menu dropdown-menu-end " id="language-selector" data-translated="{{ $page.IsTranslated }}">
|
||||||
{{- if $page.IsTranslated -}}
|
{{- if $page.IsTranslated -}}
|
||||||
{{- range $page.AllTranslations -}}
|
{{- range $page.AllTranslations -}}
|
||||||
<li><a class="dropdown-item {{ if eq .Language.Lang $currentLang }}active{{ end }}" hreflang="{{.Language.Lang}}" href="{{ .RelPermalink }}">{{ .Language.LanguageName }}</a></li>
|
<li><a class="dropdown-item {{ if eq .Language.Lang $currentLang }}active{{ end }}" hreflang="{{ .Language.Lang }}" href="{{ .RelPermalink }}">{{ .Language.LanguageName }}</a></li>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- range site.Languages -}}
|
{{- range site.Languages -}}
|
||||||
<li><a class="dropdown-item" href="{{ partial "utilities/URLJoin.html" (dict "base" $baseURL "path" .Lang) }}" hreflang="{{.Lang}}">{{ default .Lang .LanguageName }}</a></li>
|
{{ $dest := partial "utilities/URLJoin.html" (dict "base" $baseURL "path" .Lang) }}
|
||||||
|
{{ if and $pretty (not (hasSuffix $dest "/")) }}
|
||||||
|
{{ $dest = printf "%s/" $dest }}
|
||||||
|
{{ end }}
|
||||||
|
<li><a class="dropdown-item" href="{{ $dest }}" hreflang="{{ .Lang }}">{{ default .Lang .LanguageName }}</a></li>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</ul>
|
</ul>
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
@@ -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 -}}
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
@@ -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 }}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
@@ -28,12 +28,37 @@
|
|||||||
|
|
||||||
{{- $doc_slug := partial "utilities/URLJoin.html" (dict "base" $baseURL "path" ($group.title | urlize)) -}}
|
{{- $doc_slug := partial "utilities/URLJoin.html" (dict "base" $baseURL "path" ($group.title | urlize)) -}}
|
||||||
{{- $href := or $group.link $doc_slug -}}
|
{{- $href := or $group.link $doc_slug -}}
|
||||||
|
{{ $ref := partial "utilities/GetPage.html" (dict "url" $href "page" $page) }}
|
||||||
|
{{ if eq $group.link "#" }}{{ $href = $doc_slug }}{{ end }}
|
||||||
{{- $collapsed := strings.HasPrefix $page.RelPermalink $href -}}
|
{{- $collapsed := strings.HasPrefix $page.RelPermalink $href -}}
|
||||||
|
{{ if not (hasSuffix $href "/") }}{{ $href = printf "%s/" $href }}{{ end }}
|
||||||
|
{{- $current := eq $href $page.RelPermalink }}
|
||||||
|
|
||||||
<li class="mb-1">
|
<li class="mb-1">
|
||||||
<button class="btn btn-toggle d-inline-flex align-items-center rounded border-0 collapsed" data-bs-toggle="collapse" data-bs-target="#sidebar-collapse-{{ $index }}-{{ $level }}" aria-expanded="{{ if $collapsed }}true{{ else }}false{{ end }}">
|
<div class="d-flex w-100 p-0 sidebar-item-group">
|
||||||
<div class="text-start flex-fill">{{ $group.title }}</div>
|
<div class="text-start flex-grow-1 {{ if $current }}fw-bold{{ end }}">
|
||||||
</button>
|
{{- $groupTitle := $group.title -}}
|
||||||
|
{{ if site.Params.main.titleCase }}{{ $groupTitle = title $groupTitle }}{{ end }}
|
||||||
|
|
||||||
|
{{ $dest := $href }}
|
||||||
|
{{ $target := "" }}
|
||||||
|
{{ if or $current (not $ref) }}
|
||||||
|
{{ $dest = "" }}
|
||||||
|
{{ end }}
|
||||||
|
<a {{ with $dest }} href="{{ . }}"{{ else }}
|
||||||
|
data-bs-toggle="collapse"
|
||||||
|
data-bs-target="#sidebar-collapse-{{ $index }}-{{ $level }}"
|
||||||
|
{{ end }}>{{ $groupTitle }}</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button
|
||||||
|
class="btn btn-toggle-group d-inline-flex align-items-center rounded border-0 collapsed"
|
||||||
|
data-bs-toggle="collapse"
|
||||||
|
data-bs-target="#sidebar-collapse-{{ $index }}-{{ $level }}"
|
||||||
|
aria-expanded="{{ if $collapsed }}true{{ else }}false{{ end }}"
|
||||||
|
>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
<div class="collapse {{ if $collapsed }}show{{ end }}" id="sidebar-collapse-{{ $index }}-{{ $level }}">
|
<div class="collapse {{ if $collapsed }}show{{ end }}" id="sidebar-collapse-{{ $index }}-{{ $level }}">
|
||||||
<ul class="btn-toggle-nav list-unstyled fw-normal {{ if eq $level 0}} pb-1 {{ end }}ps-3">
|
<ul class="btn-toggle-nav list-unstyled fw-normal {{ if eq $level 0}} pb-1 {{ end }}ps-3">
|
||||||
{{- range $item := $group.pages -}}
|
{{- range $item := $group.pages -}}
|
||||||
@@ -79,9 +104,11 @@
|
|||||||
{{ $href = . }}
|
{{ $href = . }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{- $href = partial "utilities/URLJoin.html" (dict "base" $baseURL "path" .) -}}
|
{{- $href = partial "utilities/URLJoin.html" (dict "base" $baseURL "path" .) -}}
|
||||||
|
{{ if not (hasSuffix $href "/") }}{{ $href = printf "%s/" $href }}{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{- $href = partial "utilities/URLJoin.html" (dict "base" $baseURL "path" ($title | urlize)) -}}
|
{{- $href = partial "utilities/URLJoin.html" (dict "base" $baseURL "path" ($title | urlize)) -}}
|
||||||
|
{{ if not (hasSuffix $href "/") }}{{ $href = printf "%s/" $href }}{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- $active := eq (strings.TrimSuffix "/" $page.RelPermalink) (strings.TrimSuffix "/" $href) -}}
|
{{- $active := eq (strings.TrimSuffix "/" $page.RelPermalink) (strings.TrimSuffix "/" $href) -}}
|
||||||
|
|
||||||
@@ -91,7 +118,7 @@
|
|||||||
<li>
|
<li>
|
||||||
<ul class="btn-toggle-nav list-unstyled fw-bold pb-1">
|
<ul class="btn-toggle-nav list-unstyled fw-bold pb-1">
|
||||||
<li>
|
<li>
|
||||||
{{ $class := "sidebar-item text-decoration-none rounded" }}
|
{{ $class := "sidebar-item text-decoration-none rounded w-100" }}
|
||||||
{{ if $active }}{{ $class = printf "%s active" $class }}{{ end }}
|
{{ if $active }}{{ $class = printf "%s active" $class }}{{ end }}
|
||||||
{{ $link := partial "assets/link.html" (dict "destination" $href "text" $title "class" $class "page" $page) }}
|
{{ $link := partial "assets/link.html" (dict "destination" $href "text" $title "class" $class "page" $page) }}
|
||||||
{{ if $link }}
|
{{ if $link }}
|
||||||
@@ -104,7 +131,7 @@
|
|||||||
</li>
|
</li>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<li>
|
<li>
|
||||||
{{ $class := "sidebar-item text-decoration-none rounded small" }}
|
{{ $class := "sidebar-item text-decoration-none rounded small w-100" }}
|
||||||
{{ if $active }}{{ $class = printf "%s active" $class }}{{ end }}
|
{{ if $active }}{{ $class = printf "%s active" $class }}{{ end }}
|
||||||
{{ $link := partial "assets/link.html" (dict "destination" $href "text" $title "class" $class "page" $page) }}
|
{{ $link := partial "assets/link.html" (dict "destination" $href "text" $title "class" $class "page" $page) }}
|
||||||
{{ if $link }}
|
{{ if $link }}
|
||||||
|
@@ -1,45 +1,89 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
{{ $page := .page }}
|
{{ define "partials/inline-table.html" }}
|
||||||
{{ $input := .input }}
|
{{ $page := .page }}
|
||||||
{{ $args := .args }}
|
{{ $input := .input }}
|
||||||
{{ $sortable := .sortable | default false }}
|
{{ $attributes := .attributes }}
|
||||||
{{ $paging := .paging | default false }}
|
{{ $class := .class }}
|
||||||
{{ $searchable := .searchable | default false }}
|
{{ $wrap := .wrap }}
|
||||||
{{ $pagingOptionPerPage := .pagingOptionPerPage }}
|
|
||||||
{{ $pagingOptionPerPageSelect := .pagingOptionPerPageSelect }}
|
|
||||||
{{- $responsiveVals := slice "table-responsive" "table-responsive-none" "table-responsive-sm" "table-responsive-md" "table-responsive-lg" "table-responsive-xl" "table-responsive-xxl" -}}
|
|
||||||
{{- $responsive := intersect $args $responsiveVals -}}
|
|
||||||
{{- $main := complement $responsive $args -}}
|
|
||||||
|
|
||||||
{{- if in $responsive "table-responsive-none" -}}
|
{{ if $wrap }}{{ $input = printf "%s\n{.table-wrap}" (chomp $input) }}{{ end }}
|
||||||
{{- $responsive = "" -}}
|
{{- $input = $input | $page.RenderString }}
|
||||||
{{- else if not $responsive -}}
|
{{ $regex := `<table\s*class="(.+?)"` }}
|
||||||
{{ $responsive = (slice "table-responsive") -}}
|
{{ $current := (index (index (findRESubmatch $regex $input) 0) 1) }}
|
||||||
{{- end -}}
|
{{ $target := delimit (((split $current " ") | append "table" | append $class) | uniq) " " }}
|
||||||
|
|
||||||
{{- $class := delimit $main " " -}}
|
{{- $new := printf `<table class="%s" %s` $target (trim $attributes " ") -}}
|
||||||
{{ if or $sortable $paging $searchable }}{{ $class = trim (printf "%s data-table" $class) " " }}{{ end }}
|
{{ $input := replaceRE $regex $new $input 1 -}}
|
||||||
{{- $input := $input | $page.RenderString }}
|
|
||||||
{{ $regex := `<table\s*class="(.+?)"` }}
|
{{ return $input }}
|
||||||
{{ $current := (index (index (findRESubmatch $regex $input) 0) 1) }}
|
{{ end }}
|
||||||
{{ $target := delimit (((split $current " ") | append "table" | append $class) | uniq) " " }}
|
|
||||||
|
<!-- Initialize arguments -->
|
||||||
|
{{ $error := false }}
|
||||||
|
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "table" "args" .) }}
|
||||||
|
{{ if $args.err }}
|
||||||
|
{{ partial "utilities/LogErr.html" (dict
|
||||||
|
"partial" "assets/table.html"
|
||||||
|
"msg" "Invalid arguments"
|
||||||
|
"details" $args.errmsg
|
||||||
|
"file" page.File
|
||||||
|
)}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
<!-- Initialize local variables -->
|
||||||
|
{{ $class := $args.class }}
|
||||||
|
{{ if or $args.sortable $args.paging $args.searchable }}{{ $class = trim (printf "%s data-table" $class) " " }}{{ end }}
|
||||||
|
|
||||||
{{ $attributes := "" }}
|
{{ $attributes := "" }}
|
||||||
{{ if $sortable }}{{ $attributes = printf "%s data-table-sortable=true" $attributes }}{{ end }}
|
{{ if $args.sortable }}{{ $attributes = printf "%s data-table-sortable=true" $attributes }}{{ end }}
|
||||||
{{ if $paging }}
|
{{ if $args.paging }}
|
||||||
{{ $attributes = printf "%s data-table-paging=true" $attributes }}
|
{{ $attributes = printf "%s data-table-paging=true" $attributes }}
|
||||||
{{ $attributes := printf "%s data-table-paging-option-perPage=%s" $attributes $pagingOptionPerPage }}
|
{{ $attributes = printf "%s data-table-paging-option-perPage=%d" $attributes $args.pagingOptionPerPage }}
|
||||||
{{ if (ne $pagingOptionPerPageSelect "") }}{{ $attributes := printf "%s data-table-paging-option-perPageSelect=%d" $attributes $pagingOptionPerPageSelect }}{{ end }}
|
{{ if (ne $args.pagingOptionPerPageSelect "") }}
|
||||||
|
{{ $attributes = printf "%s data-table-paging-option-perPageSelect=%s" $attributes $args.pagingOptionPerPageSelect }}
|
||||||
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ if $searchable }}{{ $attributes = printf "%s data-table-searchable=true" $attributes }}{{ end }}
|
{{ if $args.searchable }}{{ $attributes = printf "%s data-table-searchable=true" $attributes }}{{ end }}
|
||||||
|
|
||||||
{{- $new := printf `<table class="%s" %s` $target (trim $attributes " ") -}}
|
<!-- Main code -->
|
||||||
{{ $input := replaceRE $regex $new $input 1 -}}
|
{{- $breakpoint := $args.page.Scratch.Get "breakpoint" -}}
|
||||||
{{- with $responsive }}<div class="{{ delimit . " " }}">{{ end -}}
|
{{ $regular := partial "partials/inline-table.html" (dict
|
||||||
{{ $input | safeHTML }}
|
"page" $args.page
|
||||||
{{- with $responsive }}</div>{{ end -}}
|
"input" $args.input
|
||||||
|
"attributes" $attributes
|
||||||
|
"class" $class
|
||||||
|
"wrap" false
|
||||||
|
) }}
|
||||||
|
|
||||||
|
{{ $wrapped := "" }}
|
||||||
|
{{ if $args.wrap }}
|
||||||
|
{{ $wrapped = partial "partials/inline-table.html" (dict
|
||||||
|
"page" $args.page
|
||||||
|
"input" $args.input
|
||||||
|
"attributes" $attributes
|
||||||
|
"class" $class
|
||||||
|
"wrap" true
|
||||||
|
) }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if not $error }}
|
||||||
|
{{ if eq $args.breakpoint "none" }}
|
||||||
|
{{ $regular | safeHTML }}
|
||||||
|
{{ with $wrapped }}{{ . | safeHTML }}{{ end }}
|
||||||
|
{{ else }}
|
||||||
|
<div class="table-responsive{{- with $args.breakpoint }}-{{ . }}{{ end }} {{ if $wrapped }}d-none d-{{ $breakpoint.current }}-block{{ end }}">
|
||||||
|
{{ $regular | safeHTML }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ with $wrapped }}
|
||||||
|
<div class="table-responsive{{- with $args.breakpoint }}-{{ . }}{{ end }} d-{{ $breakpoint.current }}-none">
|
||||||
|
{{ . | safeHTML }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
41
layouts/partials/assets/theme-version.html
Normal file
41
layouts/partials/assets/theme-version.html
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<!--
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- TODO: merge with version.html -->
|
||||||
|
|
||||||
|
{{- define "partials/assets/version/mod.html" -}}
|
||||||
|
{{- $file := "go.mod" -}}
|
||||||
|
{{- $regex := printf `github.com/gethinode/hinode v.*(\r\n|\r|\n)` -}}
|
||||||
|
{{- $match := findRE $regex (readFile $file) -}}
|
||||||
|
|
||||||
|
{{- $result := "" -}}
|
||||||
|
{{- if gt (len $match) 0 -}}
|
||||||
|
{{- $result = (index (split (index $match 0) " ") 1) -}}
|
||||||
|
{{- $result = strings.TrimPrefix "v" $result -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- return $result -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "partials/assets/version/package.html" -}}
|
||||||
|
{{- $file := "data/package-hinode.json" -}}
|
||||||
|
{{ $data := dict }}
|
||||||
|
{{ $version := "" }}
|
||||||
|
{{ with resources.Get $file }}
|
||||||
|
{{ with . | transform.Unmarshal }}
|
||||||
|
{{ $data = . }}
|
||||||
|
{{ $version = index $data "version" }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ return $version }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $version := partial "assets/version/mod.html" . -}}
|
||||||
|
{{ if not $version }}
|
||||||
|
{{- $version = partial "assets/version/package.html" . -}}
|
||||||
|
{{ end }}
|
||||||
|
{{- print $version -}}
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,39 +1,63 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
<!-- 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 }}
|
||||||
|
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
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 }}
|
@@ -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 -}}
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
|
|
||||||
@@ -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 }}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -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>
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
{{ define "head" }}
|
{{ define "head" }}
|
||||||
{{- $version := strings.TrimPrefix "v" (partialCached "assets/version.html" .) -}}
|
{{- $version := strings.TrimSpace (partial "assets/theme-version.html" .) -}}
|
||||||
{{ $desc := .Page.Description | default (.Page.Content | safeHTML | truncate 150) -}}
|
{{ $desc := .Page.Description | default (.Page.Content | safeHTML | truncate 150) -}}
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
@@ -7,7 +7,6 @@
|
|||||||
<meta name="theme" content="{{ printf "Hinode %s" $version }}">
|
<meta name="theme" content="{{ printf "Hinode %s" $version }}">
|
||||||
{{ partialCached "head/stylesheet-core.html" . -}}
|
{{ partialCached "head/stylesheet-core.html" . -}}
|
||||||
|
|
||||||
|
|
||||||
{{ $config := page.Scratch.Get "modules" }}
|
{{ $config := page.Scratch.Get "modules" }}
|
||||||
{{ if not $config }}
|
{{ if not $config }}
|
||||||
{{ errorf "partial [head/head.html] - Cannot initialize module configuration" }}
|
{{ errorf "partial [head/head.html] - Cannot initialize module configuration" }}
|
||||||
|
@@ -3,9 +3,9 @@
|
|||||||
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}">
|
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}">
|
||||||
<meta property="og:title" content="{{ $.Scratch.Get "title" }}">
|
<meta property="og:title" content="{{ $.Scratch.Get "title" }}">
|
||||||
<meta property="og:description" content="{{ $.Scratch.Get "description" }}">
|
<meta property="og:description" content="{{ $.Scratch.Get "description" }}">
|
||||||
{{ if $.Scratch.Get "paginator" -}}
|
{{ $paginator := $.Store.Get "paginator" }}
|
||||||
{{ $paginator := .Paginate (where .Site.RegularPages.ByDate.Reverse "Section" "blog" ) -}}
|
{{ if $paginator }}
|
||||||
<meta property="og:url" content="{{ .Paginator.URL | absURL }}">
|
<meta property="og:url" content="{{ $paginator.URL | absURL }}">
|
||||||
{{ else -}}
|
{{ else -}}
|
||||||
<meta property="og:url" content="{{ .Permalink }}">
|
<meta property="og:url" content="{{ .Permalink }}">
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
@@ -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 }}
|
||||||
@@ -63,13 +63,15 @@
|
|||||||
|
|
||||||
<meta name="description" content="{{ $.Scratch.Get "description" }}">
|
<meta name="description" content="{{ $.Scratch.Get "description" }}">
|
||||||
|
|
||||||
{{ if $.Scratch.Get "paginator" }}
|
|
||||||
<link rel="canonical" href="{{ .Paginator.URL | absURL }}">
|
{{ $paginator := $.Store.Get "paginator" }}
|
||||||
{{ if .Paginator.HasPrev -}}
|
{{ if $paginator }}
|
||||||
<link rel="prev" href="{{ .Paginator.Prev.URL | absURL }}">
|
<link rel="canonical" href="{{ $paginator.URL | absURL }}">
|
||||||
|
{{ if $paginator.HasPrev -}}
|
||||||
|
<link rel="prev" href="{{ $paginator.Prev.URL | absURL }}">
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{ if .Paginator.HasNext -}}
|
{{ if $paginator.HasNext -}}
|
||||||
<link rel="next" href="{{ .Paginator.Next.URL | absURL }}">
|
<link rel="next" href="{{ $paginator.Next.URL | absURL }}">
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
|
@@ -34,7 +34,7 @@
|
|||||||
"name": "{{ .Site.Params.schema.name }}",
|
"name": "{{ .Site.Params.schema.name }}",
|
||||||
"url": {{ print $baseURL }},
|
"url": {{ print $baseURL }},
|
||||||
"sameAs": {{ $alt | uniq | complement (slice "") }},
|
"sameAs": {{ $alt | uniq | complement (slice "") }},
|
||||||
{{ if eq .Site.Params.schemaType "Organization" -}}
|
{{ if eq .Site.Params.schema.type "Organization" -}}
|
||||||
"logo": {
|
"logo": {
|
||||||
"@type": "ImageObject",
|
"@type": "ImageObject",
|
||||||
"@id": {{ print $baseURL "#/schema/image/1"}},
|
"@id": {{ print $baseURL "#/schema/image/1"}},
|
||||||
@@ -200,4 +200,4 @@
|
|||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@@ -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 }}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -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 -}}
|
||||||
|
4
layouts/robots.txt
Normal file
4
layouts/robots.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
User-agent: *
|
||||||
|
Allow: /
|
||||||
|
|
||||||
|
Sitemap: {{ urls.JoinPath .Site.BaseURL "sitemap.xml" }}
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
@@ -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>
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
@@ -81,5 +81,5 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ partial "assets/table.html" (dict "page" .Page "input" $table "args" slice) }}
|
{{ partial "assets/table.html" (dict "page" .Page "input" $table "wrap" true) }}
|
||||||
{{ end }}
|
{{ end }}
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
|
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.
|
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.
|
||||||
-->
|
-->
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user