mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 18:14:28 +00:00
Compare commits
118 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b125be2e7d | ||
![]() |
f075eb12ee | ||
![]() |
c30dd39ce2 | ||
![]() |
ad7cd18893 | ||
![]() |
cdc3accff3 | ||
![]() |
5916a89979 | ||
![]() |
dbc253cbf2 | ||
![]() |
1fd8989ad3 | ||
![]() |
0a401775ff | ||
![]() |
3534d6daec | ||
![]() |
ada5ac3d5c | ||
![]() |
1630eabff8 | ||
![]() |
4a492d2de5 | ||
![]() |
20a492d9d9 | ||
![]() |
179132964f | ||
![]() |
4768d6791f | ||
![]() |
c8e2d3410c | ||
![]() |
8d53c762d7 | ||
![]() |
22d2e41601 | ||
![]() |
b462c31916 | ||
![]() |
dbb5b4be69 | ||
![]() |
4f288ec5dd | ||
![]() |
8fb47e27af | ||
![]() |
a0d2063738 | ||
![]() |
c17986bb49 | ||
![]() |
bafd522530 | ||
![]() |
930e151365 | ||
![]() |
6687e09d68 | ||
![]() |
86ec79d08a | ||
![]() |
afb42a188c | ||
![]() |
c303e97eb0 | ||
![]() |
1ad2a4c617 | ||
![]() |
2bf15ca8b2 | ||
![]() |
e00ab2a2fd | ||
![]() |
98c422a6d4 | ||
![]() |
527060e219 | ||
![]() |
b5c81cd121 | ||
![]() |
9fbe81a668 | ||
![]() |
cf4ed131aa | ||
![]() |
15a9eb2c5c | ||
![]() |
3271fcc97e | ||
![]() |
0752b4cfbf | ||
![]() |
965845137c | ||
![]() |
8f83138cbc | ||
![]() |
86d726d10c | ||
![]() |
2860edd1bd | ||
![]() |
d802df87ef | ||
![]() |
808b3a5694 | ||
![]() |
cde8495583 | ||
![]() |
c2aaff81cf | ||
![]() |
5421839028 | ||
![]() |
a74466e281 | ||
![]() |
454c659e44 | ||
![]() |
2de384497e | ||
![]() |
ca41d9adb4 | ||
![]() |
a633e4eea0 | ||
![]() |
a341e916b9 | ||
![]() |
a3d289843f | ||
![]() |
8700e18ad9 | ||
![]() |
8936dafac6 | ||
![]() |
4d1c7d46eb | ||
![]() |
bffe6425da | ||
![]() |
3e1c3a2c9c | ||
![]() |
df83103718 | ||
![]() |
e54417bc02 | ||
![]() |
61f2b82221 | ||
![]() |
2689107e5a | ||
![]() |
d20d053232 | ||
![]() |
35fb72d408 | ||
![]() |
18cee3cac6 | ||
![]() |
192021fbb3 | ||
![]() |
a3c5d36584 | ||
![]() |
42d169bbc0 | ||
![]() |
3b4b3a65b6 | ||
![]() |
32ee66bf90 | ||
![]() |
6b8ff44fb0 | ||
![]() |
70cc8946b0 | ||
![]() |
eab0cfa6ab | ||
![]() |
1580898f1a | ||
![]() |
530fb03d29 | ||
![]() |
3e5261bd36 | ||
![]() |
e2d409baed | ||
![]() |
d009874ece | ||
![]() |
f8adffc131 | ||
![]() |
68a3a3be30 | ||
![]() |
c077c8b53b | ||
![]() |
6a0c6af296 | ||
![]() |
2bf16b0e59 | ||
![]() |
e56cc645e2 | ||
![]() |
8c361a8417 | ||
![]() |
65e9e57c9e | ||
![]() |
ffa4473d25 | ||
![]() |
6c5fe6f208 | ||
![]() |
60efecf946 | ||
![]() |
70fdf7c4f0 | ||
![]() |
ee4bb45368 | ||
![]() |
a08695d97e | ||
![]() |
1abeabcacd | ||
![]() |
16b2c8b058 | ||
![]() |
f8eab705fb | ||
![]() |
13b8421893 | ||
![]() |
6324a90d77 | ||
![]() |
faccca732b | ||
![]() |
04736fd8f1 | ||
![]() |
9c4378e5af | ||
![]() |
0574627010 | ||
![]() |
9e668775db | ||
![]() |
cefd152430 | ||
![]() |
48d2002d1c | ||
![]() |
259f0f321c | ||
![]() |
d24cb8ccb3 | ||
![]() |
96226e2d8a | ||
![]() |
27857b7fd5 | ||
![]() |
9a67f7bd4f | ||
![]() |
e15cd08bea | ||
![]() |
dd817bc5ce | ||
![]() |
4b4c9d1711 | ||
![]() |
38e68ac757 |
10
README.md
10
README.md
@@ -75,10 +75,10 @@ Start a new Hinode project in three steps:
|
|||||||
|
|
||||||
1. Create a new site
|
1. Create a new site
|
||||||
|
|
||||||
Hinode is available as a [child theme][repository_child], and a [main theme][repository]. The child theme uses [npm][npm] to link to the latest available version of Hinode. Unless you plan to customize a lot, it is recommended to use the child theme:
|
Hinode is available as a [template][repository_template], and a [main repository][repository]. The template [npm][npm] to link to the latest available version of Hinode. Unless you plan to customize a lot, it is recommended to use the template:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/gethinode/child.git my-hinode-site && cd my-hinode-site
|
git clone https://github.com/gethinode/template.git my-hinode-site && cd my-hinode-site
|
||||||
```
|
```
|
||||||
|
|
||||||
Use the main theme if you intend to customize the base code:
|
Use the main theme if you intend to customize the base code:
|
||||||
@@ -116,11 +116,11 @@ Hinode is inspired by the following themes:
|
|||||||
|
|
||||||
## Donate
|
## Donate
|
||||||
|
|
||||||
<a href="https://www.buymeacoffee.com/markdumay" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/lato-orange.png" alt="Buy Me A Coffee" style="height: 51px !important;width: 217px !important;"></a>
|
<a href="https://www.buymeacoffee.com/markdumay" target="_blank" rel="noopener noreferrer"><img src="https://cdn.buymeacoffee.com/buttons/lato-orange.png" alt="Buy Me A Coffee" style="height: 51px !important;width: 217px !important;"></a>
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
The `hinode` and `child` codebase is released under the [MIT license][license]. The documentation (including the "README" and `docs` codebase) is licensed under the Creative Commons ([CC BY-NC 4.0)][cc-by-nc-4.0] license.
|
The `hinode` and `template` codebase is released under the [MIT license][license]. The documentation (including the "README" and `docs` codebase) is licensed under the Creative Commons [(CC BY-NC 4.0)][cc-by-nc-4.0] license.
|
||||||
|
|
||||||
<!-- MARKDOWN PUBLIC LINKS -->
|
<!-- MARKDOWN PUBLIC LINKS -->
|
||||||
[blist]: https://github.com/apvarun/blist-hugo-theme
|
[blist]: https://github.com/apvarun/blist-hugo-theme
|
||||||
@@ -143,5 +143,5 @@ The `hinode` and `child` codebase is released under the [MIT license][license].
|
|||||||
[demo]: https://demo.gethinode.com/
|
[demo]: https://demo.gethinode.com/
|
||||||
[license]: https://github.com/gethinode/hinode/blob/main/LICENSE
|
[license]: https://github.com/gethinode/hinode/blob/main/LICENSE
|
||||||
[repository]: https://github.com/gethinode/hinode.git
|
[repository]: https://github.com/gethinode/hinode.git
|
||||||
[repository_child]: https://github.com/gethinode/child.git
|
[repository_template]: https://github.com/gethinode/template.git
|
||||||
[website]: https://gethinode.com/
|
[website]: https://gethinode.com/
|
||||||
|
@@ -14,10 +14,12 @@ const addCopyButtons = (clipboard) => {
|
|||||||
// 2. Create a button that will trigger a copy operation
|
// 2. Create a button that will trigger a copy operation
|
||||||
const button = document.createElement('button')
|
const button = document.createElement('button')
|
||||||
button.className = 'clipboard-button'
|
button.className = 'clipboard-button'
|
||||||
|
button.setAttribute('data-toast-target', 'toast-copied-code-message')
|
||||||
button.type = 'button'
|
button.type = 'button'
|
||||||
button.innerHTML = svgCopy
|
button.innerHTML = svgCopy
|
||||||
button.addEventListener('click', () => {
|
button.addEventListener('click', () => {
|
||||||
clipboard.writeText(codeBlock.innerText).then(
|
const text = codeBlock.innerText.split('\n').filter(Boolean).join('\n')
|
||||||
|
clipboard.writeText(text).then(
|
||||||
() => {
|
() => {
|
||||||
button.blur()
|
button.blur()
|
||||||
button.innerHTML = svgCheck
|
button.innerHTML = svgCheck
|
||||||
@@ -36,3 +38,10 @@ const addCopyButtons = (clipboard) => {
|
|||||||
if (navigator && navigator.clipboard) {
|
if (navigator && navigator.clipboard) {
|
||||||
addCopyButtons(navigator.clipboard)
|
addCopyButtons(navigator.clipboard)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll('[data-clipboard]').forEach(trigger => {
|
||||||
|
const text = trigger.getAttribute('data-clipboard')
|
||||||
|
trigger.addEventListener('click', () => {
|
||||||
|
navigator.clipboard.writeText(text)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
20
assets/js/menu.js
Normal file
20
assets/js/menu.js
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
const url = new URL(window.location.href)
|
||||||
|
const menu = url.searchParams.get('menu')
|
||||||
|
const child = url.searchParams.get('child')
|
||||||
|
const menuItems = document.querySelectorAll('[data-nav="main"]')
|
||||||
|
|
||||||
|
if (menu !== null) {
|
||||||
|
menuItems.forEach(element => {
|
||||||
|
element.classList.remove('active')
|
||||||
|
})
|
||||||
|
|
||||||
|
const targetMainItems = document.querySelectorAll(`[data-nav-main="${menu}"]:not([data-nav-child])`)
|
||||||
|
targetMainItems.forEach(element => {
|
||||||
|
element.classList.add('active')
|
||||||
|
})
|
||||||
|
|
||||||
|
const targetChildItems = document.querySelectorAll(`[data-nav-main="${menu}"][data-nav-child="${child}"]`)
|
||||||
|
targetChildItems.forEach(element => {
|
||||||
|
element.classList.add('active')
|
||||||
|
})
|
||||||
|
}
|
@@ -1,10 +1,24 @@
|
|||||||
// Bootstrap toast example: https://getbootstrap.com/docs/5.2/components/toasts/
|
// Script to move all embedded toast messages into a container with id 'toast-container'. The container ensures multiple
|
||||||
const toastTrigger = document.getElementById('toastButton')
|
// toast messages are stacked properly. The script targets all elements specified by a 'data-toast-target' and ensures
|
||||||
const toastLiveExample = document.getElementById('toastMessage')
|
// the click event of the origin is linked as well.
|
||||||
if (toastTrigger) {
|
|
||||||
toastTrigger.addEventListener('click', () => {
|
const container = document.getElementById('toast-container')
|
||||||
// eslint-disable-next-line no-undef
|
if (container !== null) {
|
||||||
const toast = new bootstrap.Toast(toastLiveExample)
|
// process all data-toast-target elements
|
||||||
toast.show()
|
document.querySelectorAll('[data-toast-target]').forEach(trigger => {
|
||||||
|
const target = document.getElementById(trigger.getAttribute('data-toast-target'))
|
||||||
|
if (target !== null) {
|
||||||
|
// move the element to the toast containr
|
||||||
|
container.appendChild(target)
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
const toast = bootstrap.Toast.getOrCreateInstance(target)
|
||||||
|
if (toast !== null) {
|
||||||
|
// associate the click event of the origin with the toast element
|
||||||
|
trigger.addEventListener('click', () => {
|
||||||
|
toast.show()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@@ -23,3 +23,19 @@ $btn-toggle: url("/icons/btn-toggle.svg") !de
|
|||||||
$btn-toggle-dark: url("/icons/btn-toggle-dark.svg") !default;
|
$btn-toggle-dark: url("/icons/btn-toggle-dark.svg") !default;
|
||||||
|
|
||||||
// scss-docs-end icons
|
// scss-docs-end icons
|
||||||
|
|
||||||
|
.fa-wrapper {
|
||||||
|
container: wrapper / inline-size;
|
||||||
|
}
|
||||||
|
|
||||||
|
// define fallback size for browsers not supporting containers
|
||||||
|
.fa-fluid {
|
||||||
|
font-size: 5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// set size based on container width
|
||||||
|
@container (min-width: 0) {
|
||||||
|
.fa-wrapper .fa-fluid {
|
||||||
|
font-size: 60cqi;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -6,3 +6,22 @@
|
|||||||
.open > .dropdown-toggle.btn-primary {
|
.open > .dropdown-toggle.btn-primary {
|
||||||
color: #fff if($enable-important-utilities, !important, null);
|
color: #fff if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.btn-social {
|
||||||
|
--bs-btn-bg: transparent;
|
||||||
|
--bs-btn-border-width: none;
|
||||||
|
--bs-btn-color: var(--bs-secondary);
|
||||||
|
--bs-btn-border-color: none;
|
||||||
|
--bs-btn-hover-bg: none;
|
||||||
|
--bs-btn-hover-border-color: none;
|
||||||
|
--bs-btn-active-bg: none;
|
||||||
|
--bs-btn-active-border-color: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-social:hover,
|
||||||
|
.btn-social:focus,
|
||||||
|
.btn-social:active,
|
||||||
|
.btn-social.active,
|
||||||
|
.open > .dropdown-toggle.btn-primary {
|
||||||
|
color: var(--bs-primary) if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
link = "about"
|
link = "about"
|
||||||
caption = "About"
|
caption = "About"
|
||||||
[en.params.footer]
|
[en.params.footer]
|
||||||
license = "Licensed under Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank'>CC BY-NC-SA 4.0</a>)."
|
license = "Licensed under Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank' rel='noopener noreferrer'>CC BY-NC-SA 4.0</a>)."
|
||||||
socialTitle = "Follow me"
|
socialTitle = "Follow me"
|
||||||
socialCaption = "I work on everything coding and tweet developer memes"
|
socialCaption = "I work on everything coding and tweet developer memes"
|
||||||
# toml-docs-end lang-param
|
# toml-docs-end lang-param
|
||||||
@@ -26,6 +26,6 @@
|
|||||||
link = "over-mij"
|
link = "over-mij"
|
||||||
caption = "Over mij"
|
caption = "Over mij"
|
||||||
[nl.params.footer]
|
[nl.params.footer]
|
||||||
license = "Gelicenseerd onder Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank'>CC BY-NC-SA 4.0</a>)."
|
license = "Gelicenseerd onder Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank' rel='noopener noreferrer'>CC BY-NC-SA 4.0</a>)."
|
||||||
socialTitle = "Volg mij"
|
socialTitle = "Volg mij"
|
||||||
socialCaption = "Ik doe aan programmeren en tweet memes"
|
socialCaption = "Ik doe aan programmeren en tweet memes"
|
@@ -1,33 +1,33 @@
|
|||||||
[[main]]
|
[[main]]
|
||||||
name = "About"
|
name = "About"
|
||||||
url = "/about/"
|
pageRef = "/about/"
|
||||||
weight = 10
|
weight = 10
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Blog"
|
name = "Blog"
|
||||||
url = "/blog/"
|
pageRef = "/blog/"
|
||||||
weight = 20
|
weight = 20
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Projects"
|
name = "Projects"
|
||||||
url = "/projects/"
|
pageRef = "/projects/"
|
||||||
weight = 30
|
weight = 30
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Sample project"
|
name = "Sample project"
|
||||||
url = "/projects/sample-project/"
|
pageRef = "/projects/sample-project/"
|
||||||
parent = "Projects"
|
parent = "Projects"
|
||||||
weight = 1
|
weight = 1
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Another project"
|
name = "Another project"
|
||||||
url = "/projects/another-project/"
|
pageRef = "/projects/another-project/"
|
||||||
parent = "Projects"
|
parent = "Projects"
|
||||||
weight = 2
|
weight = 2
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Tags"
|
name = "Tags"
|
||||||
url = "/tags/"
|
pageRef = "/tags/"
|
||||||
weight = 40
|
weight = 40
|
||||||
|
|
||||||
[[social]]
|
[[social]]
|
||||||
@@ -51,23 +51,23 @@
|
|||||||
# toml-docs-start sample-navigation
|
# toml-docs-start sample-navigation
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Blog"
|
name = "Blog"
|
||||||
url = "/blog/"
|
pageRef = "/blog/"
|
||||||
weight = 10
|
weight = 10
|
||||||
|
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Projects"
|
name = "Projects"
|
||||||
url = "/projects/"
|
pageRef = "/projects/"
|
||||||
weight = 20
|
weight = 20
|
||||||
|
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Sample project"
|
name = "Sample project"
|
||||||
url = "/projects/sample-project/"
|
pageRef = "/projects/sample-project/"
|
||||||
parent = "Projects"
|
parent = "Projects"
|
||||||
weight = 1
|
weight = 1
|
||||||
|
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Another project"
|
name = "Another project"
|
||||||
url = "/projects/another-project/"
|
pageRef = "/projects/another-project/"
|
||||||
parent = "Projects"
|
parent = "Projects"
|
||||||
weight = 2
|
weight = 2
|
||||||
# toml-docs-end sample-navigation
|
# toml-docs-end sample-navigation
|
@@ -1,33 +1,33 @@
|
|||||||
[[main]]
|
[[main]]
|
||||||
name = "Over mij"
|
name = "Over mij"
|
||||||
url = "/over-mij/"
|
pageRef = "/over-mij/"
|
||||||
weight = 10
|
weight = 10
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Blog"
|
name = "Blog"
|
||||||
url = "/blog/"
|
pageRef = "/blog/"
|
||||||
weight = 20
|
weight = 20
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Projecten"
|
name = "Projecten"
|
||||||
url = "/projecten/"
|
pageRef = "/projecten/"
|
||||||
weight = 30
|
weight = 30
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Voorbeeldproject"
|
name = "Voorbeeldproject"
|
||||||
url = "/projecten/voorbeeldproject/"
|
pageRef = "/projecten/voorbeeldproject/"
|
||||||
parent = "Projecten"
|
parent = "Projecten"
|
||||||
weight = 1
|
weight = 1
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Ander project"
|
name = "Ander project"
|
||||||
url = "/projecten/ander-project/"
|
pageRef = "/projecten/ander-project/"
|
||||||
parent = "Projecten"
|
parent = "Projecten"
|
||||||
weight = 2
|
weight = 2
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Tags"
|
name = "Tags"
|
||||||
url = "/tags/"
|
pageRef = "/tags/"
|
||||||
weight = 40
|
weight = 40
|
||||||
|
|
||||||
[[social]]
|
[[social]]
|
||||||
@@ -51,23 +51,23 @@
|
|||||||
# toml-docs-start sample-navigation
|
# toml-docs-start sample-navigation
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Blog"
|
name = "Blog"
|
||||||
url = "/blog/"
|
pageRef = "/blog/"
|
||||||
weight = 10
|
weight = 10
|
||||||
|
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Projecten"
|
name = "Projecten"
|
||||||
url = "/projecten/"
|
pageRef = "/projecten/"
|
||||||
weight = 20
|
weight = 20
|
||||||
|
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Voorbeeldproject"
|
name = "Voorbeeldproject"
|
||||||
url = "/projecten/voorbeeldproject/"
|
pageRef = "/projecten/voorbeeldproject/"
|
||||||
parent = "Projecten"
|
parent = "Projecten"
|
||||||
weight = 1
|
weight = 1
|
||||||
|
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Ander project"
|
name = "Ander project"
|
||||||
url = "/projecten/ander-project/"
|
pageRef = "/projecten/ander-project/"
|
||||||
parent = "Projecten"
|
parent = "Projecten"
|
||||||
weight = 2
|
weight = 2
|
||||||
# toml-docs-end sample-navigation
|
# toml-docs-end sample-navigation
|
@@ -10,6 +10,8 @@
|
|||||||
[docs]
|
[docs]
|
||||||
version = "0.8"
|
version = "0.8"
|
||||||
basePath = ""
|
basePath = ""
|
||||||
|
github = "https://github.com/gethinode/hinode"
|
||||||
|
release = "https://github.com/gethinode/hinode/releases/tag/"
|
||||||
# toml-docs-end docs
|
# toml-docs-end docs
|
||||||
|
|
||||||
# toml-docs-start home
|
# toml-docs-start home
|
||||||
@@ -34,12 +36,56 @@
|
|||||||
sidebar = true
|
sidebar = true
|
||||||
# toml-docs-end navigation
|
# toml-docs-end navigation
|
||||||
|
|
||||||
|
# toml-docs-start messages
|
||||||
|
[messages]
|
||||||
|
placement = "bottom-right"
|
||||||
|
# toml-docs-end messages
|
||||||
|
|
||||||
|
# toml-docs-start sharing
|
||||||
|
[sharing]
|
||||||
|
enabled = true
|
||||||
|
sort = "weight"
|
||||||
|
reverse = false
|
||||||
|
|
||||||
|
[[sharing.providers]]
|
||||||
|
name = "LinkedIn"
|
||||||
|
url = "https://www.linkedin.com/sharing/share-offsite/?url={url}"
|
||||||
|
icon = "fab linkedin"
|
||||||
|
weight = 10
|
||||||
|
|
||||||
|
[[sharing.providers]]
|
||||||
|
name = "Twitter"
|
||||||
|
url = "https://twitter.com/home?status={url}"
|
||||||
|
icon = "fab twitter"
|
||||||
|
weight = 20
|
||||||
|
|
||||||
|
[[sharing.providers]]
|
||||||
|
name = "Facebook"
|
||||||
|
url = "https://www.facebook.com/sharer.php?u={url}"
|
||||||
|
icon = "fab facebook"
|
||||||
|
weight = 30
|
||||||
|
|
||||||
|
[[sharing.providers]]
|
||||||
|
name = "WhatsApp"
|
||||||
|
url = "whatsapp://send?text={title}%20{url}"
|
||||||
|
icon = "fab whatsapp"
|
||||||
|
weight = 40
|
||||||
|
|
||||||
|
[[sharing.providers]]
|
||||||
|
name = "email"
|
||||||
|
url = "{url}"
|
||||||
|
icon = "fas link"
|
||||||
|
weight = 50
|
||||||
|
clipboard = true
|
||||||
|
# toml-docs-end sharing
|
||||||
|
|
||||||
# toml-docs-start sections
|
# toml-docs-start sections
|
||||||
[sections]
|
[sections]
|
||||||
[sections.blog]
|
[sections.blog]
|
||||||
title = "Blog"
|
title = "Blog"
|
||||||
sort = "date"
|
sort = "date"
|
||||||
reverse = true
|
reverse = true
|
||||||
|
nested = true
|
||||||
cols = 3
|
cols = 3
|
||||||
color = ""
|
color = ""
|
||||||
padding = "0"
|
padding = "0"
|
||||||
@@ -51,14 +97,17 @@
|
|||||||
separator = true
|
separator = true
|
||||||
[sections.projects]
|
[sections.projects]
|
||||||
title = "Projects"
|
title = "Projects"
|
||||||
|
layout = "card"
|
||||||
sort = "title"
|
sort = "title"
|
||||||
reverse = false
|
reverse = false
|
||||||
|
nested = true
|
||||||
cols = 1
|
cols = 1
|
||||||
color = "body-tertiary"
|
background = "body-tertiary"
|
||||||
|
color = "body"
|
||||||
padding = "3"
|
padding = "3"
|
||||||
header = "none"
|
header = "none"
|
||||||
footer = "tags"
|
footer = "tags"
|
||||||
orientation = "none"
|
orientation = "horizontal"
|
||||||
style = "border-1 card-emphasize"
|
style = "border-1 card-emphasize"
|
||||||
homepage = 3
|
homepage = 3
|
||||||
separator = false
|
separator = false
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
---
|
---
|
||||||
author: Mark Dumay
|
author: Mark Dumay
|
||||||
title: Blog
|
title: Blog
|
||||||
|
nested: true
|
||||||
---
|
---
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
author: Mark Dumay
|
author: Mark Dumay
|
||||||
title: Bootstrap elements
|
title: Bootstrap elements
|
||||||
date: 2023-02-17
|
date: 2023-05-20
|
||||||
description: Use shortcodes to add common Bootstrap elements with ease.
|
description: Use shortcodes to add common Bootstrap elements with ease.
|
||||||
tags: ["bootstrap", "shortcode"]
|
tags: ["bootstrap", "shortcode"]
|
||||||
thumbnail: img/boots.jpg
|
thumbnail: img/boots.jpg
|
||||||
@@ -223,6 +223,16 @@ As an example, the following shortcode displays a light navigation header.
|
|||||||
{{< /example >}}
|
{{< /example >}}
|
||||||
<!-- markdownlint-enable MD037 -->
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Release
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a default release button.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* release version="v0.14.1" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
## Spinner
|
## Spinner
|
||||||
|
|
||||||
As an example, the following shortcode displays a centered spinner.
|
As an example, the following shortcode displays a centered spinner.
|
||||||
@@ -241,12 +251,20 @@ As an example, the following shortcode displays a button that, when clicked, tri
|
|||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
<!-- markdownlint-disable MD037 -->
|
||||||
{{< example lang="hugo" >}}
|
{{< example lang="hugo" >}}
|
||||||
{{</* button id="toastButton" */>}}
|
{{</* button toast="toast-example-1" */>}}
|
||||||
Show toast
|
Show toast 1
|
||||||
{{</* /button */>}}
|
{{</* /button */>}}
|
||||||
|
|
||||||
{{</* toast header="Custom title" */>}}
|
{{</* button toast="toast-example-2" */>}}
|
||||||
This is a toast message.
|
Show toast 2
|
||||||
|
{{</* /button */>}}
|
||||||
|
|
||||||
|
{{</* toast id="toast-example-1" header="First title" */>}}
|
||||||
|
This is the first toast message.
|
||||||
|
{{</* /toast */>}}
|
||||||
|
|
||||||
|
{{</* toast id="toast-example-2" header="Second title" */>}}
|
||||||
|
This is the second toast message.
|
||||||
{{</* /toast */>}}
|
{{</* /toast */>}}
|
||||||
{{< /example >}}
|
{{< /example >}}
|
||||||
<!-- markdownlint-enable MD037 -->
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
@@ -4,9 +4,7 @@ title: Another project
|
|||||||
date: 2021-07-15
|
date: 2021-07-15
|
||||||
description: Another project.
|
description: Another project.
|
||||||
tags: ["javascript", "golang"]
|
tags: ["javascript", "golang"]
|
||||||
thumbnail: img/coffee.jpg # https://picsum.photos/id/1060/5598/3732
|
icon: fas rocket
|
||||||
photoCredits: <a href="https://unsplash.com/@kfred">Karl Fredrickson</a>
|
|
||||||
photoSource: <a href="https://unsplash.com/photos/TYIzeCiZ_60">Unsplash</a>
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Vivamus iaculis metus sed magna porta tincidunt. Aliquam molestie eget orci eu elementum. Integer pellentesque dolor sit amet suscipit maximus. Duis consequat, massa vitae volutpat rhoncus, erat augue venenatis velit, a auctor leo nulla nec turpis. Nunc ut libero sapien. Vivamus aliquam ultrices vestibulum. Sed sit amet vestibulum dolor, ut vehicula diam. Sed felis purus, feugiat vitae vulputate quis, sodales vitae dui. Pellentesque volutpat fringilla sapien varius condimentum. Integer odio massa, pharetra at bibendum vitae, aliquam nec erat.
|
Vivamus iaculis metus sed magna porta tincidunt. Aliquam molestie eget orci eu elementum. Integer pellentesque dolor sit amet suscipit maximus. Duis consequat, massa vitae volutpat rhoncus, erat augue venenatis velit, a auctor leo nulla nec turpis. Nunc ut libero sapien. Vivamus aliquam ultrices vestibulum. Sed sit amet vestibulum dolor, ut vehicula diam. Sed felis purus, feugiat vitae vulputate quis, sodales vitae dui. Pellentesque volutpat fringilla sapien varius condimentum. Integer odio massa, pharetra at bibendum vitae, aliquam nec erat.
|
||||||
|
@@ -4,9 +4,7 @@ title: Sample project
|
|||||||
date: 2021-07-15
|
date: 2021-07-15
|
||||||
description: A sample project.
|
description: A sample project.
|
||||||
tags: ["html", "css"]
|
tags: ["html", "css"]
|
||||||
thumbnail: img/laptop.jpg # https://picsum.photos/id/0/5616/3744
|
icon: fab docker
|
||||||
photoCredits: <a href="https://unsplash.com/@alejandroescamilla">Alejandro Escamilla</a>
|
|
||||||
photoSource: <a href="https://unsplash.com/photos/yC-Yzbqy7PY">Unsplash</a>
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||||
|
@@ -224,6 +224,16 @@ De volgende shortcode toont een navigatiemenu.
|
|||||||
{{< /example >}}
|
{{< /example >}}
|
||||||
<!-- markdownlint-enable MD037 -->
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Release
|
||||||
|
|
||||||
|
De volgende shortcode toont een knop voor een nieuwe release.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* release version="v0.14.1" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
## Spinner
|
## Spinner
|
||||||
|
|
||||||
De volgende shortcode toont een ronddraaiende cirkel.
|
De volgende shortcode toont een ronddraaiende cirkel.
|
||||||
@@ -242,12 +252,20 @@ De volgende shortcode toont een knop die een bericht laat verschijnen op het sch
|
|||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
<!-- markdownlint-disable MD037 -->
|
||||||
{{< example lang="hugo" >}}
|
{{< example lang="hugo" >}}
|
||||||
{{</* button id="toastButton" */>}}
|
{{</* button toast="toast-example-1" */>}}
|
||||||
Toon bericht
|
Toon bericht 1
|
||||||
{{</* /button */>}}
|
{{</* /button */>}}
|
||||||
|
|
||||||
{{</* toast header="Titel" */>}}
|
{{</* button toast="toast-example-2" */>}}
|
||||||
Dit is een bericht.
|
Toon bericht 2
|
||||||
|
{{</* /button */>}}
|
||||||
|
|
||||||
|
{{</* toast id="toast-example-1" header="Eerste titel" */>}}
|
||||||
|
Dit is het eerste bericht.
|
||||||
|
{{</* /toast */>}}
|
||||||
|
|
||||||
|
{{</* toast id="toast-example-2" header="Tweede titel" */>}}
|
||||||
|
Dit is het tweede bericht.
|
||||||
{{</* /toast */>}}
|
{{</* /toast */>}}
|
||||||
{{< /example >}}
|
{{< /example >}}
|
||||||
<!-- markdownlint-enable MD037 -->
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
16
i18n/en.yaml
16
i18n/en.yaml
@@ -31,6 +31,8 @@
|
|||||||
translation: "More Features"
|
translation: "More Features"
|
||||||
- id: moreGuides
|
- id: moreGuides
|
||||||
translation: "More Guides"
|
translation: "More Guides"
|
||||||
|
- id: moreOpensource
|
||||||
|
translation: "More Features"
|
||||||
- id: moreProjects
|
- id: moreProjects
|
||||||
translation: "More Projects"
|
translation: "More Projects"
|
||||||
- id: moreUsers
|
- id: moreUsers
|
||||||
@@ -62,7 +64,7 @@
|
|||||||
- id: toggleSidebar
|
- id: toggleSidebar
|
||||||
translation: "Toggle sidebar navigation"
|
translation: "Toggle sidebar navigation"
|
||||||
- id: colorMode
|
- id: colorMode
|
||||||
translation: "Color mode"
|
translation: "Toggle theme"
|
||||||
- id: colorLight
|
- id: colorLight
|
||||||
translation: "Light"
|
translation: "Light"
|
||||||
- id: colorDark
|
- id: colorDark
|
||||||
@@ -73,6 +75,18 @@
|
|||||||
translation: "Toggle main navigation"
|
translation: "Toggle main navigation"
|
||||||
- id: demo
|
- id: demo
|
||||||
translation: "Demo"
|
translation: "Demo"
|
||||||
|
- id: addedFeature
|
||||||
|
translation: "Added in"
|
||||||
|
- id: deprecatedFeature
|
||||||
|
translation: "Deprecated in"
|
||||||
|
- id: shareLink
|
||||||
|
translation: "Share via"
|
||||||
|
- id: copiedToClipboard
|
||||||
|
translation: "copied to clipboard"
|
||||||
|
- id: link
|
||||||
|
translation: "Link"
|
||||||
|
- id: code
|
||||||
|
translation: "Code"
|
||||||
|
|
||||||
# 404 page
|
# 404 page
|
||||||
- id: pageNotFound
|
- id: pageNotFound
|
||||||
|
14
i18n/nl.yaml
14
i18n/nl.yaml
@@ -56,7 +56,7 @@
|
|||||||
- id: toggleSidebar
|
- id: toggleSidebar
|
||||||
translation: "Toon of verberg navigatie"
|
translation: "Toon of verberg navigatie"
|
||||||
- id: colorMode
|
- id: colorMode
|
||||||
translation: "Modus"
|
translation: "Pas modus aan"
|
||||||
- id: colorLight
|
- id: colorLight
|
||||||
translation: "Licht"
|
translation: "Licht"
|
||||||
- id: colorDark
|
- id: colorDark
|
||||||
@@ -65,6 +65,18 @@
|
|||||||
translation: "Automatisch"
|
translation: "Automatisch"
|
||||||
- id: toggleMainNav
|
- id: toggleMainNav
|
||||||
translation: "Toon of verberg hoofdnavigatie"
|
translation: "Toon of verberg hoofdnavigatie"
|
||||||
|
- id: addedFeature
|
||||||
|
translation: "Toegevoegd in"
|
||||||
|
- id: deprecatedFeature
|
||||||
|
translation: "Verouderd in"
|
||||||
|
- id: shareLink
|
||||||
|
translation: "Delen via"
|
||||||
|
- id: copiedToClipboard
|
||||||
|
translation: "gekopieerd naar clipboard"
|
||||||
|
- id: link
|
||||||
|
translation: "Link"
|
||||||
|
- id: code
|
||||||
|
translation: "Code"
|
||||||
|
|
||||||
# 404 page
|
# 404 page
|
||||||
- id: pageNotFound
|
- id: pageNotFound
|
||||||
|
@@ -33,19 +33,23 @@
|
|||||||
<div class="d-flex flex-column flex-fill">
|
<div class="d-flex flex-column flex-fill">
|
||||||
{{ block "main" . }}{{ end -}}
|
{{ block "main" . }}{{ end -}}
|
||||||
</div>
|
</div>
|
||||||
<div class="">
|
{{ if not .Site.Params.main.footerBelowFold }}
|
||||||
{{- partial "footer/social.html" . -}}
|
<div class="">
|
||||||
{{- partial "footer/footer.html" . -}}
|
{{- partial "footer/social.html" . -}}
|
||||||
</div>
|
{{- partial "footer/footer.html" . -}}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{ else -}}
|
{{ else -}}
|
||||||
<div class="d-flex flex-column flex-fill {{ if .Site.Params.navigation.fixed }}mt-5{{ end }}">
|
<div class="d-flex flex-column flex-fill {{ if .Site.Params.navigation.fixed }}mt-5{{ end }}">
|
||||||
{{ block "main" . }}{{ end -}}
|
{{ block "main" . }}{{ end -}}
|
||||||
</div>
|
</div>
|
||||||
<div class="">
|
{{ if not .Site.Params.main.footerBelowFold }}
|
||||||
{{- partial "footer/social.html" . -}}
|
<div class="">
|
||||||
{{- partial "footer/footer.html" . -}}
|
{{- partial "footer/social.html" . -}}
|
||||||
</div>
|
{{- partial "footer/footer.html" . -}}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -53,10 +57,18 @@
|
|||||||
<div class="">
|
<div class="">
|
||||||
{{ block "main" . }}{{ end -}}
|
{{ block "main" . }}{{ end -}}
|
||||||
</div>
|
</div>
|
||||||
{{- partial "footer/social.html" . -}}
|
<div class="">
|
||||||
{{- partial "footer/footer.html" . -}}
|
{{- partial "footer/social.html" . -}}
|
||||||
{{ end -}}
|
{{- partial "footer/footer.html" . -}}
|
||||||
|
</div>
|
||||||
|
{{ else if .Site.Params.main.footerBelowFold }}
|
||||||
|
<div class="">
|
||||||
|
{{- partial "footer/social.html" . -}}
|
||||||
|
{{- partial "footer/footer.html" . -}}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{- partial "footer/toast-container.html" . -}}
|
||||||
{{- partialCached "footer/scripts.html" (dict "header" false "page" .) }}
|
{{- partialCached "footer/scripts.html" (dict "header" false "page" .) }}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@@ -1,9 +1,12 @@
|
|||||||
{{- define "main" -}}
|
{{- define "main" -}}
|
||||||
{{- partial "assets/section-list.html" (dict
|
{{- partial "assets/section-list.html" (dict
|
||||||
"page" .
|
"page" .
|
||||||
"section" .Section
|
"section" .Type
|
||||||
"home" false
|
"home" false
|
||||||
|
"nested" .Params.Nested
|
||||||
"title" .Title
|
"title" .Title
|
||||||
|
"description" .Description
|
||||||
|
"content" .Content
|
||||||
"paginate" true)
|
"paginate" true)
|
||||||
-}}
|
-}}
|
||||||
{{- end -}}
|
{{- end -}}
|
@@ -2,6 +2,7 @@
|
|||||||
{{ if site.Params.navigation.breadcrumb }}{{ partial "assets/breadcrumb.html" . }}{{ end -}}
|
{{ if site.Params.navigation.breadcrumb }}{{ partial "assets/breadcrumb.html" . }}{{ end -}}
|
||||||
{{ if in (slice "docs" "minimal") .Layout }}
|
{{ if in (slice "docs" "minimal") .Layout }}
|
||||||
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
|
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
|
||||||
|
{{ partial "assets/sharing.html" . }}
|
||||||
<p class="lead mb-5">{{ .Description }}</p>
|
<p class="lead mb-5">{{ .Description }}</p>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ $lastmodstr := (partial "utilities/date.html" (dict "date" .Lastmod "format" "long")) -}}
|
{{ $lastmodstr := (partial "utilities/date.html" (dict "date" .Lastmod "format" "long")) -}}
|
||||||
@@ -14,21 +15,28 @@
|
|||||||
{{ .WordCount | lang.FormatNumber 0 }} {{ i18n "words" }}
|
{{ .WordCount | lang.FormatNumber 0 }} {{ i18n "words" }}
|
||||||
</small>
|
</small>
|
||||||
|
|
||||||
<div class="mt-3">
|
{{- if gt (len (.GetTerms "tags")) 0 -}}
|
||||||
<div class="d-none-dark">
|
<div class="mt-3">
|
||||||
{{ range (.GetTerms "tags") -}}
|
<div class="d-none-dark">
|
||||||
<a class="btn btn-light btn-sm" href="{{ (path.Join .Page.RelPermalink) | relLangURL }}" role="button">{{ .LinkTitle }}</a>
|
<div class="hstack gap-3">
|
||||||
|
{{ range (.GetTerms "tags") -}}
|
||||||
{{ end -}}
|
{{- $url := (path.Join .Page.RelPermalink) | relLangURL -}}
|
||||||
|
{{ partial "assets/button.html" (dict "href" $url "title" .LinkTitle "color" "light" "size" "sm") }}
|
||||||
|
{{ end -}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-none-light">
|
||||||
|
<div class="hstack gap-3">
|
||||||
|
{{ range (.GetTerms "tags") -}}
|
||||||
|
{{- $url := (path.Join .Page.RelPermalink) | relLangURL -}}
|
||||||
|
{{ partial "assets/button.html" (dict "href" $url "title" .LinkTitle "color" "secondary" "size" "sm" "outline" "true") }}
|
||||||
|
{{ end -}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{{- end -}}
|
||||||
<div class="d-none-light">
|
{{ partial "assets/sharing.html" . }}
|
||||||
{{ range (.GetTerms "tags") -}}
|
|
||||||
<a class="btn btn-outline-secondary btn-sm" href="{{ (path.Join .Page.RelPermalink) | relLangURL }}" role="button">{{ .LinkTitle }}</a>
|
|
||||||
|
|
||||||
{{ end -}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<p class="lead mb-5 mt-3">{{ .Description }}</p>
|
<p class="lead mb-5 mt-3">{{ .Description }}</p>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
11
layouts/alias.html
Normal file
11
layouts/alias.html
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html{{ with site.LanguageCode | default site.Language.Lang }} lang="{{ . }}"{{ end }}>
|
||||||
|
<head>
|
||||||
|
<title>{{ .Permalink }}</title>
|
||||||
|
<link rel="canonical" href="{{ .Permalink }}">
|
||||||
|
<meta name="robots" content="noindex">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<noscript><meta http-equiv="refresh" content="0; url={{ .Permalink }}"></noscript>
|
||||||
|
<script src="/js/alias.js"></script>
|
||||||
|
</head>
|
||||||
|
</html>
|
@@ -1,10 +0,0 @@
|
|||||||
<!-- Hugo considers all first-level directories to be a root section. As such, as "/en/docs/" is considered to be a
|
|
||||||
branch bundle, despite it not having an "_index.md" page. Being a branch bundle, Hugo uses a list template to
|
|
||||||
render the "/en/docs/" page. This overwrites the alias defined in "/en/docs/<ver>/getting-started/introduction/".
|
|
||||||
|
|
||||||
This empty list template is deliberately added to the "/layouts/docs/" directory to prevent Hugo from generating
|
|
||||||
a list page for "/en/docs/" (all other nested sections). This enables the alias defined in
|
|
||||||
"/en/docs/<version>/getting-started/introduction/".
|
|
||||||
|
|
||||||
See https://gohugo.io/content-management/sections/ for more details.
|
|
||||||
-->
|
|
@@ -6,11 +6,13 @@
|
|||||||
{{- $page := . -}}
|
{{- $page := . -}}
|
||||||
|
|
||||||
{{- range $index, $section := site.Params.home.sections -}}
|
{{- range $index, $section := site.Params.home.sections -}}
|
||||||
{{- $pages := where site.RegularPages "Type" "in" $section -}}
|
{{- $sectionPage := site.GetPage "section" $section -}}
|
||||||
{{- $sectionURL := "" -}}
|
{{- $sectionURL := $sectionPage.RelPermalink -}}
|
||||||
{{- range $p := first 1 $pages -}}
|
{{- $title := $sectionPage.Title -}}
|
||||||
{{- $sectionURL = $p.Parent.RelPermalink -}}
|
{{- $thumbnail := $sectionPage.Params.Thumbnail -}}
|
||||||
{{- end -}}
|
{{- $icon := $sectionPage.Params.Icon -}}
|
||||||
|
{{- $description := $sectionPage.Description -}}
|
||||||
|
{{- $content := $sectionPage.Content -}}
|
||||||
|
|
||||||
{{- $moreTitle := (T (printf "more%s" (strings.FirstUpper $section))) -}}
|
{{- $moreTitle := (T (printf "more%s" (strings.FirstUpper $section))) -}}
|
||||||
|
|
||||||
@@ -18,6 +20,10 @@
|
|||||||
"page" $page
|
"page" $page
|
||||||
"section" $section
|
"section" $section
|
||||||
"home" true
|
"home" true
|
||||||
|
"nested" true
|
||||||
|
"thumbnail" $thumbnail
|
||||||
|
"icon" $icon
|
||||||
|
"content" $content
|
||||||
"moreTitle" $moreTitle
|
"moreTitle" $moreTitle
|
||||||
"sectionURL" $sectionURL)
|
"sectionURL" $sectionURL)
|
||||||
-}}
|
-}}
|
||||||
|
@@ -1,7 +1,14 @@
|
|||||||
<nav aria-label="breadcrumb">
|
<nav aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
{{- range .Page.Ancestors.Reverse -}}
|
{{- range $index, $item := .Page.Ancestors.Reverse -}}
|
||||||
<li class="breadcrumb-item"><a href="{{ .Permalink }}">{{ if not .IsHome }}{{ .Title }}{{ else }}{{ T "home" }}{{ end }}</a></li>
|
{{- $title := .Title -}}
|
||||||
|
{{- if .IsHome }}{{ $title = T "home" }}{{ end -}}
|
||||||
|
{{- $address := or .Permalink (.Params.Redirect | absLangURL) -}}
|
||||||
|
{{ if $address }}
|
||||||
|
<li class="breadcrumb-item"><a href="{{ $address }}">{{ $title }}</a></li>
|
||||||
|
{{ else }}
|
||||||
|
<li class="breadcrumb-item">{{ $title }}</li>
|
||||||
|
{{ end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
<li class="breadcrumb-item active" aria-current="page">{{ .Page.Title }}</li>
|
<li class="breadcrumb-item active" aria-current="page">{{ .Page.Title }}</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
<!--
|
<!--
|
||||||
Displays a button. The shortcode supports the following arguments:
|
Displays a button. The shortcode supports the following arguments:
|
||||||
"title" Required title of the button.
|
"title" Title of the button, required unless icon is set.
|
||||||
"href" Optional address for the button or hyperlink.
|
"href" Optional address for the button or hyperlink.
|
||||||
"id" Optional id of the button, to be used in the DOM.
|
"id" Optional id of the button, to be used in the DOM.
|
||||||
"state" Optional state of the button, either "enabled" (default), "disabled", "active", or "inactive".
|
"state" Optional state of the button, either "enabled" (default), "disabled", "active", or "inactive".
|
||||||
@@ -16,15 +16,18 @@
|
|||||||
"type" Optional type of the element, either "link" or "button" (default).
|
"type" Optional type of the element, either "link" or "button" (default).
|
||||||
"placement" Optional position of the tooltip: "top" (default), "bottom", "left", or "right".
|
"placement" Optional position of the tooltip: "top" (default), "bottom", "left", or "right".
|
||||||
"class" Optional class attribute of the button element, e.g. “toc-button”.
|
"class" Optional class attribute of the button element, e.g. “toc-button”.
|
||||||
"icon" Optional Font Awesome icon class attribute, e.g. "fas sort".
|
"icon" Font Awesome icon class attribute, required unless title is set. An example value is "fas sort".
|
||||||
"order" Optional order of the icon, either "first" or "last" (default).
|
"order" Optional order of the icon, either "first" or "last" (default).
|
||||||
"justify" Optional justification of the button title and icon, either "start", "end", "center" (default),
|
"justify" Optional justification of the button title and icon, either "start", "end", "center" (default),
|
||||||
"between", "around", or "evenly".
|
"between", "around", or "evenly".
|
||||||
|
"toast" Optional id of the toast to display when the button is clicked.
|
||||||
|
"clipboard" Optional text to be copied to the clipboard when the button is clicked.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
{{- $title := trim .title " \r\n" -}}
|
{{- $title := trim .title " \r\n" -}}
|
||||||
{{- if not $title -}}
|
{{- $icon := .icon }}
|
||||||
{{- errorf "partial [assets/button.html] - Missing element title" -}}
|
{{- if not (or $title $icon) -}}
|
||||||
|
{{- errorf "partial [assets/button.html] - Missing element title or icon" -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- $id := .id }}
|
{{- $id := .id }}
|
||||||
@@ -92,7 +95,6 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- $class := .class }}
|
{{- $class := .class }}
|
||||||
{{- $icon := .icon }}
|
|
||||||
|
|
||||||
{{- $order := "last" -}}
|
{{- $order := "last" -}}
|
||||||
{{- with .order }}{{ $order = . }}{{ end -}}
|
{{- with .order }}{{ $order = . }}{{ end -}}
|
||||||
@@ -108,14 +110,20 @@
|
|||||||
{{- errorf "partial [assets/button.html] - Invalid value for param 'justify': %s" $justify -}}
|
{{- errorf "partial [assets/button.html] - Invalid value for param 'justify': %s" $justify -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
<a aria-label="{{ $title }}" {{ if ne $state "disabled" }}{{ with $href }}href="{{ . }}"{{ end }}{{ end -}}
|
{{- $toast := .toast -}}
|
||||||
{{- with $id }}id="{{ . }}"{{ end -}}
|
{{- $clipboard := .clipboard -}}
|
||||||
{{- if eq $type "button" }}class="btn btn-{{ if $outline }}outline-{{ end }}{{ $color }} {{ if ne $size "md"}}btn-{{ $size }}{{ end }} position-relative {{ if in (slice "disabled" "active") $state }}{{ $state }}{{ end }} {{ $class }}" role="button" {{ if eq $state "disabled" }}aria-disabled="true"{{ end -}}
|
|
||||||
{{- else }}class="link-{{ $color }} position-relative {{ $class }}"{{ end -}}
|
<a aria-label="{{ $title }}" {{ if ne $state "disabled" }}{{ with $href }}href="{{ . }}"{{ end }}{{ end }}
|
||||||
{{- with $tooltip }}data-bs-toggle="tooltip" data-bs-title="{{ . }}" data-bs-placement="{{ $placement }}"{{ end -}}
|
{{ with $id }}id="{{ . }}"{{ end }}
|
||||||
{{- with $collapse }}data-bs-toggle="collapse" aria-expanded="false" aria-controls="{{ . }}"{{ end -}}
|
{{ with $toast }}data-toast-target="{{ $toast }}"{{ end }}
|
||||||
{{- if eq $state "active" }}data-bs-toggle="button" aria-pressed="true"{{ end -}}
|
{{ with $clipboard }}data-clipboard="{{ $clipboard }}"{{ end }}
|
||||||
{{- if eq $state "inactive" }}data-bs-toggle="button" aria-pressed="false"{{ end -}}
|
{{ if eq $type "button" }}class="btn btn-{{ if $outline }}outline-{{ end }}{{ $color }} {{ if ne $size "md"}}btn-{{ $size }}{{ end }} position-relative {{ if in (slice "disabled" "active") $state }}{{ $state }}{{ end }} {{ $class }}"
|
||||||
|
role="button" {{ if eq $state "disabled" }}aria-disabled="true"{{ end }}
|
||||||
|
{{ else }} class="link-{{ $color }} position-relative {{ $class }}"{{ end }}
|
||||||
|
{{ with $tooltip }}data-bs-toggle="tooltip" data-bs-title="{{ . }}" data-bs-placement="{{ $placement }}"{{ end }}
|
||||||
|
{{ with $collapse }}data-bs-toggle="collapse" aria-expanded="false" aria-controls="{{ . }}"{{ end }}
|
||||||
|
{{ if eq $state "active" }}data-bs-toggle="button" aria-pressed="true"{{ end }}
|
||||||
|
{{ if eq $state "inactive" }}data-bs-toggle="button" aria-pressed="false"{{ end }}
|
||||||
>
|
>
|
||||||
|
|
||||||
<div class="d-flex justify-content-{{ $justify }}">
|
<div class="d-flex justify-content-{{ $justify }}">
|
||||||
|
@@ -58,8 +58,6 @@
|
|||||||
{{- else if eq $cols 4 }}{{ $colGrid = "row-cols-1 row-cols-sm-2 row-cols-md-4" -}}
|
{{- else if eq $cols 4 }}{{ $colGrid = "row-cols-1 row-cols-sm-2 row-cols-md-4" -}}
|
||||||
{{- else if eq $cols 5 }}{{ $colGrid = "row-cols-1 row-cols-sm-3 row-cols-md-5" }}{{ end -}}
|
{{- else if eq $cols 5 }}{{ $colGrid = "row-cols-1 row-cols-sm-3 row-cols-md-5" }}{{ end -}}
|
||||||
|
|
||||||
{{- $title := .title -}}
|
|
||||||
|
|
||||||
{{- $paginate := false -}}
|
{{- $paginate := false -}}
|
||||||
{{- with .paginate -}}
|
{{- with .paginate -}}
|
||||||
{{- if ne (printf "%T" .) "bool" -}}
|
{{- if ne (printf "%T" .) "bool" -}}
|
||||||
@@ -89,8 +87,9 @@
|
|||||||
{{- $footer := .footer -}}
|
{{- $footer := .footer -}}
|
||||||
{{- $orientation := .orientation -}}
|
{{- $orientation := .orientation -}}
|
||||||
|
|
||||||
|
{{- if and (eq $cols 1) (eq $orientation "horizontal") }}{{ $orientation = "horizontal-sm" }}{{ end -}}
|
||||||
|
|
||||||
<div class="container-fluid p-4 px-xxl-0">
|
<div class="container-fluid p-4 px-xxl-0">
|
||||||
{{ with $title }}<p class="display-4 mt-3{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
|
|
||||||
{{ $paginator := "" }}
|
{{ $paginator := "" }}
|
||||||
{{ if $paginate }}
|
{{ if $paginate }}
|
||||||
{{ $paginator = $page.Paginate $list }}
|
{{ $paginator = $page.Paginate $list }}
|
||||||
@@ -107,13 +106,14 @@
|
|||||||
"footer" $footer
|
"footer" $footer
|
||||||
"orientation" $orientation
|
"orientation" $orientation
|
||||||
) -}}
|
) -}}
|
||||||
{{- if $element.IsPage -}}
|
|
||||||
|
{{- if $element.Permalink -}}
|
||||||
{{- $params = merge $params (dict "path" $element.File.Path) -}}
|
{{- $params = merge $params (dict "path" $element.File.Path) -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- $params = merge $params (dict
|
{{- $params = merge $params (dict
|
||||||
"title" $element.Title
|
"title" $element.Title
|
||||||
"href" (or $element.Permalink "#!")
|
"href" $element.Permalink
|
||||||
"description" $element.Description
|
"description" (or $element.Description $element.Content)
|
||||||
"thumbnail" $element.Params.thumbnail
|
"thumbnail" $element.Params.thumbnail
|
||||||
"icon" $element.Params.icon
|
"icon" $element.Params.icon
|
||||||
) -}}
|
) -}}
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
The shortcode supports the following arguments:
|
The shortcode supports the following arguments:
|
||||||
"path" Optional path of the page, override with other parameters.
|
"path" Optional path of the page, override with other parameters.
|
||||||
"title" Required title of the card.
|
"title" Required title of the card.
|
||||||
"href" Required address for the button or hyperlink.
|
"href" Optional address for the button or hyperlink.
|
||||||
"class" Optional class attribute of the card element, e.g. “w-50”.
|
"class" Optional class attribute of the card element, e.g. “w-50”.
|
||||||
"color": Optional theme color of the card, either "primary", "secondary", "success", "danger",
|
"color": Optional theme color of the card, either "primary", "secondary", "success", "danger",
|
||||||
"warning", "info", "light", "dark", "white", "black", "body", or "body-tertiary". By default, no
|
"warning", "info", "light", "dark", "white", "black", "body", or "body-tertiary". By default, no
|
||||||
@@ -18,7 +18,8 @@
|
|||||||
"description" Optional description of the card.
|
"description" Optional description of the card.
|
||||||
"thumbnail" Optional thumbnail image url, displayed on top or the left of the card.
|
"thumbnail" Optional thumbnail image url, displayed on top or the left of the card.
|
||||||
"icon" Optional Font Awesome icon, displayed on top or the left of the card.
|
"icon" Optional Font Awesome icon, displayed on top or the left of the card.
|
||||||
"orientation" Optional placecement of the thumbnail, either "stacked" (default), "horizontal", or "none".
|
"orientation" Optional placecement of the thumbnail or icon, either "stacked" (default), "horizontal",
|
||||||
|
"horizontal-sm" or "none".
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!-- Inline partial to render the card's body -->
|
<!-- Inline partial to render the card's body -->
|
||||||
@@ -28,10 +29,17 @@
|
|||||||
{{- $color := .color -}}
|
{{- $color := .color -}}
|
||||||
{{- $description := .description -}}
|
{{- $description := .description -}}
|
||||||
|
|
||||||
<a href="{{ $href }}" class="{{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }} stretched-link">
|
{{- if $href -}}
|
||||||
|
<a href="{{ $href }}" class="{{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }} stretched-link">
|
||||||
|
<p class="card-title fs-5 fw-bold">{{ $title }}</p>
|
||||||
|
{{ with $description }}<p class="card-text mb-4 {{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }}">{{ . }}</p>{{ end -}}
|
||||||
|
</a>
|
||||||
|
{{- else -}}
|
||||||
|
<div>
|
||||||
<p class="card-title fs-5 fw-bold">{{ $title }}</p>
|
<p class="card-title fs-5 fw-bold">{{ $title }}</p>
|
||||||
{{ with $description }}<p class="card-text mb-4 {{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }}">{{ . }}</p>{{ end -}}
|
{{ with $description }}<p class="card-text mb-4 {{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }}">{{ . }}</p>{{ end -}}
|
||||||
</a>
|
</div>
|
||||||
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
<!-- Inline partial to render the card's header or footer -->
|
<!-- Inline partial to render the card's header or footer -->
|
||||||
@@ -109,10 +117,6 @@
|
|||||||
{{- if not $icon }}{{ $icon = .Params.icon }}{{ end -}}
|
{{- if not $icon }}{{ $icon = .Params.icon }}{{ end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- if not $href -}}
|
|
||||||
{{- errorf "partial [assets/card.html] - Missing value for param 'href'" -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- $class := .class -}}
|
{{- $class := .class -}}
|
||||||
|
|
||||||
{{- $padding := "auto" -}}
|
{{- $padding := "auto" -}}
|
||||||
@@ -124,25 +128,25 @@
|
|||||||
|
|
||||||
{{- $orientation := "stacked" -}}
|
{{- $orientation := "stacked" -}}
|
||||||
{{- with .orientation }}{{ $orientation = . }}{{ end -}}
|
{{- with .orientation }}{{ $orientation = . }}{{ end -}}
|
||||||
{{- $supportedOrientations := slice "stacked" "horizontal" "none" -}}
|
{{- $supportedOrientations := slice "stacked" "horizontal" "horizontal-sm" "none" -}}
|
||||||
{{- if not (in $supportedOrientations $orientation) -}}
|
{{- if not (in $supportedOrientations $orientation) -}}
|
||||||
{{- errorf "partial [assets/card.html] - Invalid value for param 'orientation': %s" $orientation -}}
|
{{- errorf "partial [assets/card.html] - Invalid value for param 'orientation': %s" $orientation -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- if eq $orientation "none" }}{{ $thumbnail = "" }}{{ $icon = "" }}{{ end -}}
|
{{- if eq $orientation "none" }}{{ $thumbnail = "" }}{{ $icon = "" }}{{ end -}}
|
||||||
|
|
||||||
{{- if eq $orientation "horizontal" -}}
|
{{- if hasPrefix $orientation "horizontal" -}}
|
||||||
<div class="card mb-3 {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}">
|
<div class="card {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}">
|
||||||
<div class="row g-0">
|
<div class="row g-0 row-cols-1 h-100">
|
||||||
<div class="col-4">
|
<div class="col-4{{ if eq $orientation "horizontal-sm" }} col-md-2{{ end }}">
|
||||||
{{- if $thumbnail -}}
|
{{- if $thumbnail -}}
|
||||||
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "1x1" "outerClass" "h-100 card-img-wrap" "innerClass" "rounded-start card-img-h100" "title" $title) -}}
|
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "1x1" "outerClass" "h-100 card-img-wrap" "innerClass" "rounded-start card-img-h100" "title" $title) -}}
|
||||||
{{- else if $icon -}}
|
{{- else if $icon -}}
|
||||||
<div class="pt-{{ $padding }} ps-{{ $padding }} pe-{{ $padding }}">
|
<div class="p-{{ $padding }} h-100 fa-wrapper d-flex align-items-center justify-content-center">
|
||||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-4x text-secondary" $icon)) -}}
|
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-fluid text-secondary fa-fw" $icon)) -}}
|
||||||
</div>
|
</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-8">
|
<div class="col-8{{ if eq $orientation "horizontal-sm" }} col-md-10{{ end }}">
|
||||||
<div class="card-body d-flex p-{{ $padding }} flex-column h-100">
|
<div class="card-body d-flex p-{{ $padding }} flex-column h-100">
|
||||||
{{ if $page }}<div>{{ partial "card-caption.html" (dict "page" $page "keywords" $header "color" $color) }}</div>{{ end }}
|
{{ if $page }}<div>{{ partial "card-caption.html" (dict "page" $page "keywords" $header "color" $color) }}</div>{{ end }}
|
||||||
<div class="h-100">
|
<div class="h-100">
|
||||||
@@ -158,7 +162,7 @@
|
|||||||
{{- if $thumbnail -}}
|
{{- if $thumbnail -}}
|
||||||
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "16x9" "outerClass" "card-img-wrap" "innerClass" "card-img-top" "title" $title) -}}
|
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "16x9" "outerClass" "card-img-wrap" "innerClass" "card-img-top" "title" $title) -}}
|
||||||
{{- else if $icon -}}
|
{{- else if $icon -}}
|
||||||
<div class="pt-{{ $padding }} ps-{{ $padding }} pe-{{ $padding }}">
|
<div class="p-{{ $padding }}">
|
||||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-4x text-secondary" $icon)) -}}
|
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-4x text-secondary" $icon)) -}}
|
||||||
</div>
|
</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
@@ -53,10 +53,6 @@
|
|||||||
{{- range $index, $item := $list -}}
|
{{- range $index, $item := $list -}}
|
||||||
{{- $odd := eq (mod $index 2) 1 -}}
|
{{- $odd := eq (mod $index 2) 1 -}}
|
||||||
<div class="container ratio-section d-flex flex-column">
|
<div class="container ratio-section d-flex flex-column">
|
||||||
{{ if eq $index 0 }}
|
|
||||||
{{ with $title }}<p class="display-4 pt-5{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
<div class="row pt-5 pb-5 align-items-center flex-fill row-cols-2">
|
<div class="row pt-5 pb-5 align-items-center flex-fill row-cols-2">
|
||||||
<div class="col-6{{ if $odd }} order-last{{ end }}">
|
<div class="col-6{{ if $odd }} order-last{{ end }}">
|
||||||
{{- $style := "reveal fade-bottom" -}}
|
{{- $style := "reveal fade-bottom" -}}
|
||||||
@@ -78,9 +74,6 @@
|
|||||||
{{- range $index, $item := $list -}}
|
{{- range $index, $item := $list -}}
|
||||||
{{- $odd := eq (mod $index 2) 1 -}}
|
{{- $odd := eq (mod $index 2) 1 -}}
|
||||||
<div class="container d-flex flex-column">
|
<div class="container d-flex flex-column">
|
||||||
{{ if eq $index 0 }}
|
|
||||||
{{ with $title }}<p class="display-4 pt-5{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
<div class="row pt-5 pb-5 align-items-center flex-fill row-cols-2">
|
<div class="row pt-5 pb-5 align-items-center flex-fill row-cols-2">
|
||||||
<div class="col-12 text-center">
|
<div class="col-12 text-center">
|
||||||
{{ partial "partials/list-img.html" (dict "thumbnail" $item.Params.Thumbnail "mode" $item.Params.colormode) }}
|
{{ partial "partials/list-img.html" (dict "thumbnail" $item.Params.Thumbnail "mode" $item.Params.colormode) }}
|
||||||
|
@@ -76,7 +76,6 @@
|
|||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
{{ with $title }}<p class="display-4 pt-5{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
|
|
||||||
<div class="{{ if eq $width 50 }}col-sm-12 col-md-10 col-lg-8 col-xl-6{{ else }}col-12{{ end }} mx-auto pt-5 pb-5">
|
<div class="{{ if eq $width 50 }}col-sm-12 col-md-10 col-lg-8 col-xl-6{{ else }}col-12{{ end }} mx-auto pt-5 pb-5">
|
||||||
{{ if $vertical }}<div class="d-flex align-items-start">{{ end }}
|
{{ if $vertical }}<div class="d-flex align-items-start">{{ end }}
|
||||||
<div class="nav{{ with $type }} nav-{{ . }}{{ end }}{{ with $class }} {{ . }}{{ end }}{{ if $vertical }} flex-column{{ end }}" id="nav-{{ $id }}" role="tablist"{{ if $vertical }} aria-orientation="vertical"{{ end }}>
|
<div class="nav{{ with $type }} nav-{{ . }}{{ end }}{{ with $class }} {{ . }}{{ end }}{{ if $vertical }} flex-column{{ end }}" id="nav-{{ $id }}" role="tablist"{{ if $vertical }} aria-orientation="vertical"{{ end }}>
|
||||||
|
46
layouts/partials/assets/navbar-item.html
Normal file
46
layouts/partials/assets/navbar-item.html
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
{{- $menu := .menu -}}
|
||||||
|
{{- $parent := .parent -}}
|
||||||
|
{{- $page := .page -}}
|
||||||
|
{{- $class := .class -}}
|
||||||
|
{{- $anchorClass := "" -}}
|
||||||
|
|
||||||
|
{{- $menuURL := (or $menu.PageRef $menu.URL) | relLangURL -}}
|
||||||
|
{{- $pageURL := $page.RelPermalink | relLangURL -}}
|
||||||
|
{{- $isActive := hasPrefix $pageURL $menuURL -}}
|
||||||
|
{{- $isAlias := $menu.Params.alias -}}
|
||||||
|
|
||||||
|
{{- $url := urls.Parse $menuURL -}}
|
||||||
|
{{- $baseURL := urls.Parse $.Site.Params.Baseurl -}}
|
||||||
|
{{- $isExternal := ne $url.Host $baseURL.Host -}}
|
||||||
|
{{- $externalHref := "" }}
|
||||||
|
{{- if $isExternal }}{{ $externalHref = "target=\"_blank\" rel=\"noopener noreferrer\"" }}{{ end -}}
|
||||||
|
|
||||||
|
{{- $mainNav := urlize (lower $menu.Name) -}}
|
||||||
|
{{- $childNav := "" -}}
|
||||||
|
|
||||||
|
{{- $button := "" -}}
|
||||||
|
{{- if $parent -}}
|
||||||
|
{{- $mainNav = urlize (lower $parent.Name) -}}
|
||||||
|
{{- $childNav = urlize (lower $menu.Name) -}}
|
||||||
|
{{- $anchorClass = "dropdown-item" -}}
|
||||||
|
{{- else if $menu.HasChildren -}}
|
||||||
|
{{- $anchorClass = "nav-link dropdown-toggle" -}}
|
||||||
|
{{- $button = " role=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"" -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- $anchorClass = "nav-link" -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- $params := "" -}}
|
||||||
|
{{- if and $isAlias (not $isExternal) -}}
|
||||||
|
{{- $params = printf "?menu=%s" $mainNav -}}
|
||||||
|
{{- with $childNav }}{{ $params = printf "%s&child=%s" $params . }}{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<a class="{{ $anchorClass }}{{ if $isActive }} active{{ end }}{{ with $class }} {{. }}{{ end }}"
|
||||||
|
data-nav="main" data-nav-main="{{ $mainNav }}"{{ with $childNav }} data-nav-child="{{ . }}"{{ end }}
|
||||||
|
href="{{ $menuURL }}{{ $params | safeHTMLAttr }}"{{ with $externalHref }} {{ . | safeHTMLAttr }}{{ end }} {{ $button | safeHTMLAttr }}>
|
||||||
|
|
||||||
|
{{- with $menu.Pre }}{{ . }}{{ end -}}
|
||||||
|
<span {{ if $isActive }} class="active"{{ end }}>{{ $menu.Name }}</span>
|
||||||
|
{{- with $menu.Post }}{{ . }}{{ end -}}
|
||||||
|
{{- if $isExternal }} {{ partial "assets/icon.html" (dict "icon" "fas up-right-from-square fa-2xs") }}{{ end -}}
|
||||||
|
</a>
|
@@ -1,12 +1,13 @@
|
|||||||
<!--
|
<!--
|
||||||
Displays a navigation header with a toggler. The partial supports the following arguments:
|
Displays a navigation header with a toggler. The partial supports the following arguments:
|
||||||
|
"id" Optional id of the navbar toggler, defaults to "navbar-collapse-0".
|
||||||
"page" Required object reference to the current page.
|
"page" Required object reference to the current page.
|
||||||
"menus" Optional name of the menu configuration, defaults to "main".
|
"menus" Optional name of the menu configuration, defaults to "main".
|
||||||
"size" Optional size of the button, either "sm", "md" (default), or "lg".
|
"size" Optional size of the button, either "sm", "md" (default), or "lg".
|
||||||
"fixed" Optional flag to indicate the navbar should stick to the top, defaults to false.
|
"fixed" Optional flag to indicate the navbar should stick to the top, defaults to false.
|
||||||
"color" Optional background color of the navbar, either "primary", "secondary", "success",
|
"color" Optional background color of the navbar, either "primary", "secondary", "success",
|
||||||
"danger", "warning", "info", "light", "dark", "white", "black", "body", or "body-tertiary". The
|
"danger", "warning", "info", "white", "black", "body", or "body-tertiary". The default color is
|
||||||
default color is none.
|
none.
|
||||||
"mode" Optional flag to include a color mode switcher, default is "true" (if dark mode is enabled).
|
"mode" Optional flag to include a color mode switcher, default is "true" (if dark mode is enabled).
|
||||||
"search" Optional flag to include a search input, default is "true".
|
"search" Optional flag to include a search input, default is "true".
|
||||||
"logo" Optional address of the logo image, defaults to the parameter "logo" set in the "main" section of
|
"logo" Optional address of the logo image, defaults to the parameter "logo" set in the "main" section of
|
||||||
@@ -16,7 +17,6 @@
|
|||||||
|
|
||||||
<!-- Inline partial to render the color mode switcher -->
|
<!-- Inline partial to render the color mode switcher -->
|
||||||
{{- define "partials/navbar-mode.html" -}}
|
{{- define "partials/navbar-mode.html" -}}
|
||||||
{{- $id := .id -}}
|
|
||||||
{{- $size := .size -}}
|
{{- $size := .size -}}
|
||||||
{{- $collapsed := .collapsed -}}
|
{{- $collapsed := .collapsed -}}
|
||||||
|
|
||||||
@@ -50,8 +50,10 @@
|
|||||||
|
|
||||||
{{- $supportedFlags := slice "true" "false" -}}
|
{{- $supportedFlags := slice "true" "false" -}}
|
||||||
|
|
||||||
{{- $id := 0 -}}
|
{{- $id := printf "navbar-collapse-%d" 0 -}}
|
||||||
{{- with .id }}{{ $id = . }}{{ end -}}
|
{{ with .id }}
|
||||||
|
{{ $id = . }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{- $page := .page -}}
|
{{- $page := .page -}}
|
||||||
{{- if not $page -}}
|
{{- if not $page -}}
|
||||||
@@ -84,7 +86,7 @@
|
|||||||
{{- $color := "" -}}
|
{{- $color := "" -}}
|
||||||
{{- with .color -}}
|
{{- with .color -}}
|
||||||
{{- $color = . -}}
|
{{- $color = . -}}
|
||||||
{{- $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" "body" "body-tertiary" -}}
|
{{- $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "white" "black" "body" "body-tertiary" -}}
|
||||||
{{- if not (in $supportedColors $color) -}}
|
{{- if not (in $supportedColors $color) -}}
|
||||||
{{- errorf "partial [assets/navbar.html] - Invalid value for param 'color': %s" $color -}}
|
{{- errorf "partial [assets/navbar.html] - Invalid value for param 'color': %s" $color -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -124,7 +126,11 @@
|
|||||||
{{- $pre := .Pre -}}
|
{{- $pre := .Pre -}}
|
||||||
{{- $post := .Post -}}
|
{{- $post := .Post -}}
|
||||||
|
|
||||||
<nav class="navbar navbar-expand-{{ $size }} {{ with $color }}bg-{{ . }}{{ end }} {{ if $fixed }}fixed-top{{ end }} p-4">
|
{{- $theme := "" -}}
|
||||||
|
{{- if eq $color "black" }}{{ $theme = "dark" }}{{ end -}}
|
||||||
|
{{- if eq $color "white" }}{{ $theme = "light" }}{{ end -}}
|
||||||
|
|
||||||
|
<nav class="navbar navbar-expand-{{ $size }} {{ with $color }}bg-{{ . }}{{ end }} {{ if $fixed }}fixed-top{{ end }} p-4"{{ with $theme }} data-bs-theme="{{ . }}"{{ end }}>
|
||||||
<div class="container-xxl p-0">
|
<div class="container-xxl p-0">
|
||||||
<!-- Insert sidebar toggler when applicable -->
|
<!-- Insert sidebar toggler when applicable -->
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
@@ -151,54 +157,34 @@
|
|||||||
|
|
||||||
<!-- Insert main navigation toggler -->
|
<!-- Insert main navigation toggler -->
|
||||||
<div class="d-flex fw-30">
|
<div class="d-flex fw-30">
|
||||||
<button id="main-nav-toggler" class="navbar-toggler collapsed p-0" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent-{{ $id }}"
|
<button id="main-nav-toggler" class="navbar-toggler collapsed p-0" type="button" data-bs-toggle="collapse" data-bs-target="#{{ $id }}"
|
||||||
aria-controls="navbarSupportedContent-{{ $id }}" aria-expanded="false" aria-label="{{ T "toggleMainNav" }}">
|
aria-controls="{{ $id }}" aria-expanded="false" aria-label="{{ T "toggleMainNav" }}">
|
||||||
<span class="toggler-icon top-bar emphasis"></span>
|
<span class="toggler-icon top-bar emphasis"></span>
|
||||||
<span class="toggler-icon middle-bar emphasis"></span>
|
<span class="toggler-icon middle-bar emphasis"></span>
|
||||||
<span class="toggler-icon bottom-bar emphasis"></span>
|
<span class="toggler-icon bottom-bar emphasis"></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="navbar-collapse collapse" id="navbarSupportedContent-{{ $id }}">
|
<div class="navbar-collapse collapse" id="{{ $id }}">
|
||||||
<!-- Insert search input -->
|
<!-- Insert search input -->
|
||||||
{{- if $search }}{{ partial "assets/search-input.html" -}}{{ end -}}
|
{{- if $search }}{{ partial "assets/search-input.html" -}}{{ end -}}
|
||||||
|
|
||||||
<!-- Render top-menu items (maximum depth of 2) -->
|
<!-- Render top-menu items (maximum depth of 2) -->
|
||||||
<ul class="navbar-nav ms-auto">
|
<ul class="navbar-nav ms-auto">
|
||||||
{{- range $menu := $menus -}}
|
{{- range $menu := $menus -}}
|
||||||
{{- $menu_item_url := $menu.URL | relLangURL -}}
|
<li class="nav-item{{ if .HasChildren }} dropdown{{ end }}">
|
||||||
{{- $page_url:= $page.RelPermalink | relLangURL -}}
|
{{- partial "assets/navbar-item.html" (dict "menu" $menu "page" $page) -}}
|
||||||
{{- $active := hasPrefix $page_url $menu_item_url -}}
|
{{- if .HasChildren -}}
|
||||||
|
|
||||||
{{- $url := urls.Parse .URL -}}
|
|
||||||
{{- $baseurl := urls.Parse $.Site.Params.Baseurl -}}
|
|
||||||
{{- if .HasChildren -}}
|
|
||||||
<li class="nav-item dropdown">
|
|
||||||
<a class="nav-link {{ if $active }}active{{ end }} dropdown-toggle" href="{{ .URL | relLangURL }}" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
||||||
{{ if $active }}<span class="active">{{ .Name }}</span>{{ else }}{{ .Name }}{{ end }}
|
|
||||||
</a>
|
|
||||||
<ul class="dropdown-menu dropdown-menu-end">
|
<ul class="dropdown-menu dropdown-menu-end">
|
||||||
{{- range .Children -}}
|
{{- range .Children -}}
|
||||||
{{- $child_active := eq $page_url (.URL | relLangURL) -}}
|
{{- partial "assets/navbar-item.html" (dict "menu" . "parent" $menu "page" $page) -}}
|
||||||
<li><a class="dropdown-item {{ if $child_active }}active{{ end }}" href="{{ .URL | relLangURL }}">{{ .Name }}</a></li>
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
{{- end -}}
|
||||||
{{- else -}}
|
</li>
|
||||||
<li class="nav-item">
|
|
||||||
{{- $external := ne $url.Host $baseurl.Host -}}
|
|
||||||
<a class="nav-link {{ if $active }}active{{ end }}"
|
|
||||||
href="{{ with .Page }}{{ .RelPermalink }}{{ else }}{{ .URL | relLangURL }}{{ end }}" {{ if $external }}target="_blank" {{ end }}>
|
|
||||||
{{- with $pre}}{{ . }}{{ end -}}
|
|
||||||
<span {{if $active }} class="active"{{end}}>{{ .Name }}</span>
|
|
||||||
{{- with $post}}{{ . }}{{ end -}}
|
|
||||||
{{- if $external }} {{ partial "assets/icon.html" (dict "icon" "fas up-right-from-square fa-2xs") }}{{ end -}}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
<!-- Insert divider if applicable -->
|
||||||
{{- if or $enableLanguage $enableDarkMode -}}
|
{{- if or $enableLanguage $enableDarkMode -}}
|
||||||
<li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $size }}-block">
|
<li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $size }}-block">
|
||||||
<div class="vr d-none d-md-flex h-100 mx-md-2"></div>
|
<div class="vr d-none d-md-flex h-100 mx-md-2"></div>
|
||||||
@@ -232,8 +218,8 @@
|
|||||||
|
|
||||||
<!-- Insert color mode switcher -->
|
<!-- Insert color mode switcher -->
|
||||||
{{- if $enableDarkMode -}}
|
{{- if $enableDarkMode -}}
|
||||||
{{- partial "partials/navbar-mode.html" (dict "id" $id "size" $size "collapsed" true) -}}
|
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" true) -}}
|
||||||
{{- partial "partials/navbar-mode.html" (dict "id" $id "size" $size "collapsed" false) -}}
|
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" false) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
46
layouts/partials/assets/section-header.html
Normal file
46
layouts/partials/assets/section-header.html
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
{{- $title := .title -}}
|
||||||
|
{{- $thumbnail := .thumbnail -}}
|
||||||
|
{{- $icon := .icon -}}
|
||||||
|
{{- $sectionHeader := .sectionHeader -}}
|
||||||
|
{{- $description := .description -}}
|
||||||
|
{{- $content := .content -}}
|
||||||
|
|
||||||
|
{{- define "partials/section-header-img.html" -}}
|
||||||
|
{{- $title := .title -}}
|
||||||
|
{{- $thumbnail := .thumbnail -}}
|
||||||
|
{{- $icon := .icon -}}
|
||||||
|
{{ $padding := 5 }}
|
||||||
|
|
||||||
|
{{- if $thumbnail -}}
|
||||||
|
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "1x1" "outerClass" "h-100 card-img-wrap" "innerClass" "rounded-start card-img-h100" "title" $title) -}}
|
||||||
|
{{- else if $icon -}}
|
||||||
|
<div class="text-secondary fw-bold">
|
||||||
|
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-10x" $icon)) -}}
|
||||||
|
</div>
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<div class="container-fluid p-4 px-xxl-0">
|
||||||
|
{{ with $title }}<p class="display-4 mt-3{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
|
||||||
|
{{ with $description }} <p class="lead mb-5">{{ . }}</p>{{ end }}
|
||||||
|
{{- if $content -}}
|
||||||
|
<div class="row row-cols-1 row-cols-lg-3 pt-5">
|
||||||
|
<div class="col col-lg-3 d-none d-lg-block"></div>
|
||||||
|
<div class="col col-sm-12 col-lg-6 text-center">
|
||||||
|
<div class="row row-cols-1{{ if ne $sectionHeader "justify-content-center" }} row-cols-sm-2{{ end }} row-gap-5 p-0 align-items-center flex-fill">
|
||||||
|
{{- if eq $sectionHeader "justify-content-center" -}}
|
||||||
|
<div class="col p-0 w-50 mx-auto pb-5">{{ partial "partials/section-header-img.html" (dict "title" $title "thumbnail" $thumbnail "icon" $icon )}}</div>
|
||||||
|
<div class="col fs-md-5 fs-6">{{ $content }}</div>
|
||||||
|
{{- else if eq $sectionHeader "justify-content-end" -}}
|
||||||
|
<div class="col p-0">{{ partial "partials/section-header-img.html" (dict "title" $title "thumbnail" $thumbnail "icon" $icon )}}</div>
|
||||||
|
<div class="col fs-md-5 fs-6 text-sm-start">{{ $content }}</div>
|
||||||
|
{{- else -}}
|
||||||
|
<div class="col fs-md-5 fs-6 text-sm-start">{{ $content }}</div>
|
||||||
|
<div class="col p-0">{{ partial "partials/section-header-img.html" (dict "title" $title "thumbnail" $thumbnail "icon" $icon )}}</div>
|
||||||
|
{{- end -}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col col-lg-3 d-none d-lg-block"></div>
|
||||||
|
</div>
|
||||||
|
{{- end -}}
|
||||||
|
</div>
|
@@ -6,9 +6,14 @@
|
|||||||
{{ errorf "partial [assets/section-list.html] - Invalid value for param 'home'"}}
|
{{ errorf "partial [assets/section-list.html] - Invalid value for param 'home'"}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- $title := .title -}}
|
{{- $title := .title -}}
|
||||||
|
{{- $icon := .icon -}}
|
||||||
|
{{- $thumbnail := .thumbnail -}}
|
||||||
|
{{- $sectionHeader := .sectionHeader -}}
|
||||||
|
{{- $description := .description -}}
|
||||||
|
{{- $content := .content -}}
|
||||||
{{- $moreTitle := .moreTitle -}}
|
{{- $moreTitle := .moreTitle -}}
|
||||||
{{- $sectionURL := .sectionURL -}}
|
{{- $sectionURL := .sectionURL -}}
|
||||||
|
{{- $nested := .nested | default true -}}
|
||||||
{{- $paginate := true -}}
|
{{- $paginate := true -}}
|
||||||
{{- $sort := "date" -}}
|
{{- $sort := "date" -}}
|
||||||
{{- $order := "desc" -}}
|
{{- $order := "desc" -}}
|
||||||
@@ -30,8 +35,10 @@
|
|||||||
|
|
||||||
{{- with (index site.Params.sections $section) -}}
|
{{- with (index site.Params.sections $section) -}}
|
||||||
{{- with index . "title" }}{{ $title = or $.title . }}{{ end -}}
|
{{- with index . "title" }}{{ $title = or $.title . }}{{ end -}}
|
||||||
|
{{- with index . "sectionHeader" }}{{ $sectionHeader = . }}{{ end -}}
|
||||||
{{- with index . "sort" }}{{ $sort = . }}{{ end -}}
|
{{- with index . "sort" }}{{ $sort = . }}{{ end -}}
|
||||||
{{- if (index . "reverse") }}{{ $order = "desc" }}{{ else }}{{ $order = "asc" }}{{ end -}}
|
{{- if (index . "reverse") }}{{ $order = "desc" }}{{ else }}{{ $order = "asc" }}{{ end -}}
|
||||||
|
{{- if $home }}{{- if (isset . "nested") }}{{ $nested = (index . "nested") }}{{ end -}}{{ end -}}
|
||||||
{{- if (index . "separator") }}{{ $separator = true }}{{ else }}{{ $separator = false }}{{ end -}}
|
{{- if (index . "separator") }}{{ $separator = true }}{{ else }}{{ $separator = false }}{{ end -}}
|
||||||
{{- with index . "orientation" }}{{ $orientation = . }}{{ end -}}
|
{{- with index . "orientation" }}{{ $orientation = . }}{{ end -}}
|
||||||
{{- with index . "cols" }}{{ $cols = . }}{{ end -}}
|
{{- with index . "cols" }}{{ $cols = . }}{{ end -}}
|
||||||
@@ -48,8 +55,20 @@
|
|||||||
{{- with index . "vertical" }}{{ $vertical = . }}{{ end -}}
|
{{- with index . "vertical" }}{{ $vertical = . }}{{ end -}}
|
||||||
{{- with index . "width" }}{{ $width = . }}{{ end -}}
|
{{- with index . "width" }}{{ $width = . }}{{ end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{ if ne (printf "%T" $nested) "bool" }}
|
||||||
|
{{ errorf "partial [assets/section-list.html] - Invalid value for param 'nested'"}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ $list := "" }}
|
||||||
|
{{ if $nested }}
|
||||||
|
{{ $list = where site.RegularPages "Type" "in" $section }}
|
||||||
|
{{ else if $home }}
|
||||||
|
{{ $sectionPage := site.GetPage "section" $section }}
|
||||||
|
{{ $list = $sectionPage.RegularPages }}
|
||||||
|
{{ else }}
|
||||||
|
{{ $list = $page.RegularPages }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{ $list := where site.RegularPages "Type" "in" $section }}
|
|
||||||
{{ $max := (len $list) -}}
|
{{ $max := (len $list) -}}
|
||||||
{{ if eq $max 0 }}
|
{{ if eq $max 0 }}
|
||||||
{{- $bundle := site.GetPage $section -}}
|
{{- $bundle := site.GetPage $section -}}
|
||||||
@@ -74,6 +93,11 @@
|
|||||||
"page" $page
|
"page" $page
|
||||||
"list" $list
|
"list" $list
|
||||||
"title" $title
|
"title" $title
|
||||||
|
"icon" $icon
|
||||||
|
"thumbnail" $thumbnail
|
||||||
|
"sectionHeader" $sectionHeader
|
||||||
|
"description" $description
|
||||||
|
"content" $content
|
||||||
"class" $style
|
"class" $style
|
||||||
"color" $color
|
"color" $color
|
||||||
)
|
)
|
||||||
@@ -82,6 +106,8 @@
|
|||||||
|
|
||||||
<div class="container-fluid {{ with $background }} bg-{{ . }}{{ end }}">
|
<div class="container-fluid {{ with $background }} bg-{{ . }}{{ end }}">
|
||||||
<div class="container-xxl flex-fill p-0">
|
<div class="container-xxl flex-fill p-0">
|
||||||
|
{{- partial "assets/section-header.html" $params -}}
|
||||||
|
|
||||||
{{ if eq $layout "card" }}
|
{{ if eq $layout "card" }}
|
||||||
{{- $partial = "assets/card-group.html" -}}
|
{{- $partial = "assets/card-group.html" -}}
|
||||||
{{- $params = merge $params (dict
|
{{- $params = merge $params (dict
|
||||||
|
28
layouts/partials/assets/sharing.html
Normal file
28
layouts/partials/assets/sharing.html
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{{- if .Site.Params.sharing.enabled -}}
|
||||||
|
{{- if or .Params.sharing (not (isset .Params "sharing")) -}}
|
||||||
|
{{- $page := . -}}
|
||||||
|
{{- $order := "asc" -}}
|
||||||
|
{{- $list := .Site.Params.sharing.providers -}}
|
||||||
|
{{- if .Site.Params.sharing.reverse }}{{ $order = "desc" }}{{ else }}{{ $order = "asc" }}{{ end -}}
|
||||||
|
{{- $sort := .Site.Params.sharing.sort | default "weight" -}}
|
||||||
|
{{- $list = sort $list $sort $order -}}
|
||||||
|
<div class="py-3 text-body-secondary hstack gap-2">
|
||||||
|
{{ T "shareLink" }}
|
||||||
|
{{- range $index, $item := $list -}}
|
||||||
|
{{- $url := $item.url -}}
|
||||||
|
{{- $url = replace $url "{url}" $page.Permalink -}}
|
||||||
|
{{- $url = replace $url "{title}" (urlquery $page.Title) -}}
|
||||||
|
{{- $url = $url | safeURL -}}
|
||||||
|
{{- $target := "" -}}
|
||||||
|
{{- $clipboard := "" -}}
|
||||||
|
{{- if .clipboard -}}
|
||||||
|
{{- $target = (printf "toast-message-%s-%d" (anchorize $item.name) $index ) -}}
|
||||||
|
{{- $clipboard = $url -}}
|
||||||
|
{{- $url = "#!" -}}
|
||||||
|
{{- partial "assets/toast.html" (dict "id" $target "message" (printf "%s %s" (T "link") (T "copiedToClipboard"))) -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{ partial "assets/button.html" (dict "toast" $target "clipboard" $clipboard "href" $url "icon" (printf "%s fa-fw" $item.icon) "class" "btn-social p-0" )}}
|
||||||
|
{{- end -}}
|
||||||
|
</div>
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
28
layouts/partials/assets/toast.html
Normal file
28
layouts/partials/assets/toast.html
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<!--
|
||||||
|
Prepares a toast message. Use a trigger to display the message. The shortcode supports the following arguments:
|
||||||
|
"id" Optional id of the toast message, defaults to "toast-message-0".
|
||||||
|
"header": Optional header of the toast message.
|
||||||
|
"message": Required toast message.
|
||||||
|
-->
|
||||||
|
|
||||||
|
{{- $id := printf "toast-message-%d" 0 -}}
|
||||||
|
{{ with .id }}
|
||||||
|
{{ $id = . }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ $header := .header -}}
|
||||||
|
{{ if not $header -}}
|
||||||
|
{{ $header = site.Title -}}
|
||||||
|
{{ end -}}
|
||||||
|
{{- $message := .message -}}
|
||||||
|
{{ if not $message -}}
|
||||||
|
{{- errorf "partial [assets/toast.html] - Missing message text" -}}
|
||||||
|
{{ end -}}
|
||||||
|
|
||||||
|
<div id="{{ $id }}" class="toast" role="alert" aria-live="assertive" aria-atomic="true">
|
||||||
|
<div class="toast-header">
|
||||||
|
{{ with $header }}<strong class="me-auto">{{ . }}</strong>{{ end }}
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="toast-body">{{ $message }}</div>
|
||||||
|
</div>
|
@@ -7,7 +7,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col text-sm-start text-center col-sm-6 col-md-4">
|
<div class="col text-sm-start text-center col-sm-6 col-md-4">
|
||||||
{{ range .Site.Menus.social -}}
|
{{ range .Site.Menus.social -}}
|
||||||
<a href="{{ .URL | relLangURL }}" target="_blank" rel="noopener" aria-label="{{ .Name | safeHTML }}" class="text-decoration-none link-secondary d-inline p-2">
|
<a href="{{ .URL | relLangURL }}" target="_blank" rel="noopener noreferrer" aria-label="{{ .Name | safeHTML }}" class="text-decoration-none link-secondary d-inline p-2">
|
||||||
{{ .Pre | safeHTML }}
|
{{ .Pre | safeHTML }}
|
||||||
</a>
|
</a>
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
31
layouts/partials/footer/toast-container.html
Normal file
31
layouts/partials/footer/toast-container.html
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<!--
|
||||||
|
Defines a container to stack toast messages. By default, toast messages are displayed in the bottom right of the
|
||||||
|
viewport. Multiple toast messages are stacked vertically. Adjust the configuration by adjusting 'messages' in the
|
||||||
|
site parameters. The following arguments are supported:
|
||||||
|
"placement" Optional position of the toast messages relative to the viewport: "top-left", "top-center",
|
||||||
|
"top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", or
|
||||||
|
"bottom-right" (default).
|
||||||
|
-->
|
||||||
|
|
||||||
|
{{- $placement := "bottom-right" -}}
|
||||||
|
{{- $position := "bottom-0 end-0" -}}
|
||||||
|
{{- with site.Params.messages.placement }}{{ $placement = . }}{{ end -}}
|
||||||
|
{{- $supportedPlacements := slice "top-left" "top-center" "top-right" "middle-left" "middle-center" "middle-right" "bottom-left" "bottom-center" "bottom-right" -}}
|
||||||
|
{{- if not (in $supportedPlacements $placement) -}}
|
||||||
|
{{- errorf "partial [footer/toast-container.html] - Invalid value for param 'placement': %s" $placement -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if eq $placement "top-left" }}{{ $position = "top-0 start-0" -}}
|
||||||
|
{{- else if eq $placement "top-center" }}{{ $position = "top-0 start-50 translate-middle-x" -}}
|
||||||
|
{{- else if eq $placement "top-right" }}{{ $position = "top-0 end-0" -}}
|
||||||
|
{{- else if eq $placement "middle-left" }}{{ $position = "top-50 start-0 translate-middle-y" -}}
|
||||||
|
{{- else if eq $placement "middle-center" }}{{ $position = "top-50 start-50 translate-middle" -}}
|
||||||
|
{{- else if eq $placement "middle-right" }}{{ $position = "top-50 end-0 translate-middle-y" -}}
|
||||||
|
{{- else if eq $placement "bottom-left" }}{{ $position = "bottom-0 start-0" -}}
|
||||||
|
{{- else if eq $placement "bottom-center" }}{{ $position = "bottom-0 start-50 translate-middle-x" -}}
|
||||||
|
{{- else if eq $placement "bottom-right" }}{{ $position = "bottom-0 end-0" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<div id="toast-container" class="toast-container position-fixed {{ $position }} p-3">
|
||||||
|
{{- partial "assets/toast.html" (dict "id" "toast-copied-code-message" "message" (printf "%s %s" (T "code") (T "copiedToClipboard"))) -}}
|
||||||
|
</div>
|
@@ -30,7 +30,7 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- if not hugo.IsProduction -}}
|
{{- if not hugo.IsProduction -}}
|
||||||
<link rel="stylesheet" href="{{ $css.Permalink | relLangURL }}">
|
<link rel="stylesheet" href="{{ $css.Permalink }}">
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- $css = $css | fingerprint | resources.PostProcess -}}
|
{{- $css = $css | fingerprint | resources.PostProcess -}}
|
||||||
<link rel="stylesheet" href="{{ $css.Permalink }}" integrity="{{ $css.Data.Integrity }}" crossorigin="anonymous">
|
<link rel="stylesheet" href="{{ $css.Permalink }}" integrity="{{ $css.Data.Integrity }}" crossorigin="anonymous">
|
||||||
|
@@ -1 +1,6 @@
|
|||||||
{{ return index .Site.Data .Section }}
|
{{- $menu := "" -}}
|
||||||
|
{{- if .IsPage -}}
|
||||||
|
{{- $menu = index .Site.Data .Section -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- return $menu -}}
|
@@ -5,6 +5,12 @@
|
|||||||
"show" Optional flag to indicate an item should be shown as collapsed.
|
"show" Optional flag to indicate an item should be shown as collapsed.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
{{- $id := .Ordinal -}}
|
||||||
|
{{- $parent := printf "accordion-%d" .Parent.Ordinal -}}
|
||||||
|
{{- with (.Parent.Get "id") -}}
|
||||||
|
{{- $parent = . -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- $id := .Ordinal -}}
|
{{- $id := .Ordinal -}}
|
||||||
{{ $header := .Get "header" -}}
|
{{ $header := .Get "header" -}}
|
||||||
{{ if not $header -}}
|
{{ if not $header -}}
|
||||||
@@ -35,8 +41,6 @@
|
|||||||
{{ errorf "Invalid value for param 'show': %s" $showParam -}}
|
{{ errorf "Invalid value for param 'show': %s" $showParam -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
{{- $parent := printf "accordion-%d" .Parent.Ordinal -}}
|
|
||||||
|
|
||||||
<div class="accordion-item">
|
<div class="accordion-item">
|
||||||
{{- with $header -}}
|
{{- with $header -}}
|
||||||
<h2 class="accordion-header m-0" id="{{ $parent }}-heading-{{ $id }}">
|
<h2 class="accordion-header m-0" id="{{ $parent }}-heading-{{ $id }}">
|
||||||
|
@@ -1,12 +1,34 @@
|
|||||||
<!--
|
<!--
|
||||||
Displays a group of vertically collapsing and expanding items. Add accordion-item inner elements for each accordion
|
Displays a group of vertically collapsing and expanding items. Add accordion-item inner elements for each accordion
|
||||||
item. The shortcode supports the following arguments:
|
item. The shortcode supports the following arguments:
|
||||||
|
"id": Optional id of the accordion, defaults to "accordion-" with a sequential number.
|
||||||
|
"always-open": Optional flag to make accordion items stay open when another item is opened.
|
||||||
"class": Optional class attribute of the accordion element, e.g. “w-50”.
|
"class": Optional class attribute of the accordion element, e.g. “w-50”.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
{{- $id := .Ordinal -}}
|
{{- $id := printf "accordion-%d" .Ordinal -}}
|
||||||
|
{{ with .Get "id" }}
|
||||||
|
{{ $id = . }}
|
||||||
|
{{ end }}
|
||||||
{{- $class := .Get "class" -}}
|
{{- $class := .Get "class" -}}
|
||||||
|
|
||||||
<div id="accordion-{{ $id }}" class="accordion mb-3{{ with $class }} {{ . }}{{ end }}">
|
{{- $openParam := "false" -}}
|
||||||
{{- .Inner -}}
|
{{- $open := false -}}
|
||||||
|
{{- with .Get "always-open" }}{{ $openParam = . }}{{ end -}}
|
||||||
|
{{- $supportedFlags := slice "true" "false" -}}
|
||||||
|
{{- if in $supportedFlags $openParam -}}
|
||||||
|
{{- if eq $openParam "true" }}{{ $open = true }}{{ end -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- errorf "Invalid value for param 'always-open': %s" .Position -}}
|
||||||
|
{{- $error = true -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $body := .Inner -}}
|
||||||
|
{{- if $open -}}
|
||||||
|
{{- $pattern := printf "data-bs-parent=\"#%s\"" $id -}}
|
||||||
|
{{- $body = (replace .Inner $pattern "") | markdownify | safeHTML }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<div id="{{ $id }}" class="accordion mb-3{{ with $class }} {{ . }}{{ end }}">
|
||||||
|
{{- $body -}}
|
||||||
</div>
|
</div>
|
@@ -6,15 +6,19 @@
|
|||||||
"icon" Optional class and name of a Font Awesome icon to include.
|
"icon" Optional class and name of a Font Awesome icon to include.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
{{- $error := false -}}
|
||||||
{{ $color := "primary" -}}
|
{{ $color := "primary" -}}
|
||||||
{{ with .Get "color" }}{{ $color = . }}{{ end -}}
|
{{ with .Get "color" }}{{ $color = . }}{{ end -}}
|
||||||
{{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" -}}
|
{{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" -}}
|
||||||
{{ if not (in $supportedColors $color) -}}
|
{{ if not (in $supportedColors $color) -}}
|
||||||
{{ errorf "Invalid value for param 'color': %s" .Position -}}
|
{{ errorf "Invalid value for param 'color': %s" .Position -}}
|
||||||
{{ $color = "primary" -}}
|
{{ $error = true -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
{{ $icon := .Get "icon" }}
|
{{ $icon := "" }}
|
||||||
|
{{ with .Get "icon" }}
|
||||||
|
{{ $icon = partial "assets/icon.html" (dict "icon" (printf "%s fa-2x fa-pull-left" .)) }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{ $dismissibleParam := "false" -}}
|
{{ $dismissibleParam := "false" -}}
|
||||||
{{ $dismissible := false -}}
|
{{ $dismissible := false -}}
|
||||||
@@ -24,10 +28,13 @@
|
|||||||
{{ if eq $dismissibleParam "true" }}{{ $dismissible = true }}{{ end -}}
|
{{ if eq $dismissibleParam "true" }}{{ $dismissible = true }}{{ end -}}
|
||||||
{{ else -}}
|
{{ else -}}
|
||||||
{{ errorf "Invalid value for param 'dismissible': %s" .Position -}}
|
{{ errorf "Invalid value for param 'dismissible': %s" .Position -}}
|
||||||
|
{{ $error = true -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
<div class="alert alert-{{ $color }} {{ if $dismissible }}alert-dismissible fade show{{ end }}" role="alert">
|
{{- if not $error -}}
|
||||||
{{ with $icon }}<i class="{{ . }} fa-2x fa-pull-left"></i>{{ end }}
|
<div class="alert alert-{{ $color }} {{ if $dismissible }}alert-dismissible fade show{{ end }}" role="alert">
|
||||||
{{ trim .Inner " \r\n" | markdownify | safeHTML -}}
|
{{ with $icon }}{{ . }}{{ end }}
|
||||||
{{ if $dismissible }}<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>{{ end }}
|
{{ trim .Inner " \r\n" | markdownify | safeHTML -}}
|
||||||
</div>
|
{{ if $dismissible }}<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>{{ end }}
|
||||||
|
</div>
|
||||||
|
{{- end -}}
|
@@ -14,6 +14,7 @@
|
|||||||
inactive buttons.
|
inactive buttons.
|
||||||
"collapse" Optional panel to collapse. Cannot be used together with tooltip. Ignored for active/inactive buttons.
|
"collapse" Optional panel to collapse. Cannot be used together with tooltip. Ignored for active/inactive buttons.
|
||||||
"placement" Optional position of the tooltip: "top" (default), "bottom", "left", or "right".
|
"placement" Optional position of the tooltip: "top" (default), "bottom", "left", or "right".
|
||||||
|
"toast" Optional id of the toast to display when the button is clicked.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
{{ $error := false }}
|
{{ $error := false }}
|
||||||
@@ -77,6 +78,8 @@
|
|||||||
{{ $error = true }}
|
{{ $error = true }}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
|
{{- $toast := .Get "toast" -}}
|
||||||
|
|
||||||
{{ if not $error }}
|
{{ if not $error }}
|
||||||
{{- partial "assets/button.html" (dict
|
{{- partial "assets/button.html" (dict
|
||||||
"type" $type
|
"type" $type
|
||||||
@@ -91,6 +94,7 @@
|
|||||||
"href" $href
|
"href" $href
|
||||||
"id" $id
|
"id" $id
|
||||||
"state" $state
|
"state" $state
|
||||||
"placement" $placement)
|
"placement" $placement
|
||||||
|
"toast" $toast)
|
||||||
-}}
|
-}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
@@ -1,18 +1,23 @@
|
|||||||
<!--
|
<!--
|
||||||
Displays a carousel of several responsive images (see the image shortcode for more details). Add inner <img>
|
Displays a carousel of several responsive images (see the image shortcode for more details). Add inner <img>
|
||||||
elements to define individual image slides. The shortcode supports the following arguments:
|
elements to define individual image slides. The shortcode supports the following arguments:
|
||||||
|
"id": Optional id of the carousel, defaults to "carousel-" with a sequential number.
|
||||||
"ratio": Optional ratio of the image, either "1x1", "4x3", "16x9", or "21x9". Other values are ignored.
|
"ratio": Optional ratio of the image, either "1x1", "4x3", "16x9", or "21x9". Other values are ignored.
|
||||||
Instead, the original aspect ratio of the image is preserved.
|
Instead, the original aspect ratio of the image is preserved.
|
||||||
"class": Optional class attribute of the carousel element, e.g. “w-75”.
|
"class": Optional class attribute of the carousel element, e.g. “w-75”.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
{{- $id := printf "carousel-%d" .Ordinal -}}
|
||||||
|
{{ with .Get "id" }}
|
||||||
|
{{ $id = . }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{ $ratio := .Get "ratio" -}}
|
{{ $ratio := .Get "ratio" -}}
|
||||||
{{ $class := .Get "class" -}}
|
{{ $class := .Get "class" -}}
|
||||||
{{ $id := .Ordinal -}}
|
|
||||||
{{ $images := .Inner -}}
|
{{ $images := .Inner -}}
|
||||||
{{ $items := len (findRE "carousel-item" $images) -}}
|
{{ $items := len (findRE "carousel-item" $images) -}}
|
||||||
|
|
||||||
<div id="carousel-{{ $id }}" class="carousel slide mb-3{{ with $class }} {{ . }}{{ end }}" data-bs-ride="true">
|
<div id="{{ $id }}" class="carousel slide mb-3{{ with $class }} {{ . }}{{ end }}" data-bs-ride="true">
|
||||||
<div class="carousel-indicators">
|
<div class="carousel-indicators">
|
||||||
{{ range $index := (seq $items) -}}
|
{{ range $index := (seq $items) -}}
|
||||||
<button type="button" data-bs-target="#carousel-{{ $id }}" data-bs-slide-to="{{ sub $index 1 }}" {{ if eq $index 1 }}class="active"{{ end }} aria-current="true" aria-label="Slide {{ $index }}"></button>
|
<button type="button" data-bs-target="#carousel-{{ $id }}" data-bs-slide-to="{{ sub $index 1 }}" {{ if eq $index 1 }}class="active"{{ end }} aria-current="true" aria-label="Slide {{ $index }}"></button>
|
||||||
@@ -21,11 +26,11 @@
|
|||||||
<div class="carousel-inner">
|
<div class="carousel-inner">
|
||||||
{{ $images }}
|
{{ $images }}
|
||||||
</div>
|
</div>
|
||||||
<button class="carousel-control-prev" type="button" data-bs-target="#carousel-{{ $id }}" data-bs-slide="prev">
|
<button class="carousel-control-prev" type="button" data-bs-target="#{{ $id }}" data-bs-slide="prev">
|
||||||
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
|
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
|
||||||
<span class="visually-hidden">Previous</span>
|
<span class="visually-hidden">Previous</span>
|
||||||
</button>
|
</button>
|
||||||
<button class="carousel-control-next" type="button" data-bs-target="#carousel-{{ $id }}" data-bs-slide="next">
|
<button class="carousel-control-next" type="button" data-bs-target="#{{ $id }}" data-bs-slide="next">
|
||||||
<span class="carousel-control-next-icon" aria-hidden="true"></span>
|
<span class="carousel-control-next-icon" aria-hidden="true"></span>
|
||||||
<span class="visually-hidden">Next</span>
|
<span class="visually-hidden">Next</span>
|
||||||
</button>
|
</button>
|
||||||
|
@@ -2,13 +2,15 @@
|
|||||||
Displays a navigation header with a toggler. The menu items are derived from the site's configuration. Nested items
|
Displays a navigation header with a toggler. The menu items are derived from the site's configuration. Nested items
|
||||||
are supported at one-level depth. The navigation bar includes a search area and a language switcher if applicable.
|
are supported at one-level depth. The navigation bar includes a search area and a language switcher if applicable.
|
||||||
The shortcode supports the following arguments:
|
The shortcode supports the following arguments:
|
||||||
|
"id" Optional id of the navbar toggler, defaults to "navbar-collapse-n" with a sequential number n
|
||||||
|
starting at 1.
|
||||||
"path" Required path of the active page.
|
"path" Required path of the active page.
|
||||||
"menus" Optional name of the menu configuration, defaults to "main".
|
"menus" Optional name of the menu configuration, defaults to "main".
|
||||||
"size" Optional breakpoint of the navbar toggler, either "xs", "sm", "md" (default), "lg", or "xl".
|
"size" Optional breakpoint of the navbar toggler, either "xs", "sm", "md" (default), "lg", or "xl".
|
||||||
"style" Optional style of the navbar, either "light" (default) or "dark".
|
"style" Optional style of the navbar, either "light" (default) or "dark".
|
||||||
"color" Optional background color of the navbar, either "primary", "secondary", "success",
|
"color" Optional background color of the navbar, either "primary", "secondary", "success",
|
||||||
"danger", "warning", "info", "light", "dark", "white", "black", "body", or "body-tertiary". The
|
"danger", "warning", "info", "white", "black", "body", or "body-tertiary". The default color is
|
||||||
default color is none.
|
none.
|
||||||
"mode" Optional flag to include a color mode switcher, default is "true" (if dark mode is enabled).
|
"mode" Optional flag to include a color mode switcher, default is "true" (if dark mode is enabled).
|
||||||
"search" Optional flag to include a search input, default is "true".
|
"search" Optional flag to include a search input, default is "true".
|
||||||
"logo" Optional address of the logo image.
|
"logo" Optional address of the logo image.
|
||||||
@@ -16,10 +18,13 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
{{ $error := false }}
|
{{ $error := false }}
|
||||||
{{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" "body" "body" "body-tertiary" -}}
|
{{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "white" "black" "body" "body" "body-tertiary" -}}
|
||||||
{{ $supportedFlags := slice "true" "false" -}}
|
{{ $supportedFlags := slice "true" "false" -}}
|
||||||
|
|
||||||
{{ $id := add .Ordinal 1 }}
|
{{- $id := printf "navbar-collapse-%d" (add .Ordinal 1) -}}
|
||||||
|
{{ with .Get "id" }}
|
||||||
|
{{ $id = . }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{ $path := .Get "path" }}
|
{{ $path := .Get "path" }}
|
||||||
{{ $page := .Site.GetPage $path }}
|
{{ $page := .Site.GetPage $path }}
|
||||||
|
68
layouts/shortcodes/release.html
Normal file
68
layouts/shortcodes/release.html
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
<!--
|
||||||
|
Displays a release button that links to a specific release. Use the optional state to indicate if it is a new or
|
||||||
|
deprecated feature.
|
||||||
|
"version": Required version string, expects semver notation with a "v" prefix.
|
||||||
|
"state": Optional state, either "new" or "deprecated".
|
||||||
|
"short": Optional flag to indicate the release button should use short notation.
|
||||||
|
-->
|
||||||
|
|
||||||
|
{{- $error := false -}}
|
||||||
|
{{- $version := .Get "version" -}}
|
||||||
|
{{- $inline := false -}}
|
||||||
|
|
||||||
|
{{- $state := "new" -}}
|
||||||
|
{{- with .Get "state" }}{{ $state = . }}{{ end -}}
|
||||||
|
{{- $supportedStates := slice "new" "deprecated" -}}
|
||||||
|
{{- if not (in $supportedStates $state) -}}
|
||||||
|
{{- errorf "Invalid value for param 'state': %s" .Position -}}
|
||||||
|
{{- $error = true -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $shortParam := "false" -}}
|
||||||
|
{{- $short := false -}}
|
||||||
|
{{- with .Get "short" }}{{ $shortParam = . }}{{ end -}}
|
||||||
|
{{- $supportedFlags := slice "true" "false" -}}
|
||||||
|
{{- if in $supportedFlags $shortParam -}}
|
||||||
|
{{- if eq $shortParam "true" }}{{ $short = true }}{{ end -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- errorf "Invalid value for param 'short': %s" .Position -}}
|
||||||
|
{{- $error = true -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $inlineParam := "false" -}}
|
||||||
|
{{- $inline := false -}}
|
||||||
|
{{- with .Get "inline" }}{{ $inlineParam = . }}{{ end -}}
|
||||||
|
{{- $supportedFlags := slice "true" "false" -}}
|
||||||
|
{{- if in $supportedFlags $inlineParam -}}
|
||||||
|
{{- if eq $inlineParam "true" }}{{ $inline = true }}{{ end -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- errorf "Invalid value for param 'inline': %s" .Position -}}
|
||||||
|
{{- $error = true -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $title := $version -}}
|
||||||
|
{{- $color := "success" -}}
|
||||||
|
{{- if eq $state "deprecated" -}}
|
||||||
|
{{- $color = "secondary" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if not $short -}}
|
||||||
|
{{- if eq $state "deprecated" -}}
|
||||||
|
{{- $title = (printf "Deprecated in %s" $version) -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- $title = (printf "Added in %s" $version) -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if not $error -}}
|
||||||
|
<div class="pb-3">
|
||||||
|
{{- partial "assets/button.html" (dict
|
||||||
|
"title" $title
|
||||||
|
"href" (printf "%s/%s" (strings.TrimSuffix "/" site.Params.docs.release) $version)
|
||||||
|
"size" "sm"
|
||||||
|
"color" $color
|
||||||
|
"outline" "true"
|
||||||
|
"class" "rounded-2 fw-semibold")
|
||||||
|
-}}
|
||||||
|
</div>
|
||||||
|
{{- end -}}
|
@@ -1,24 +1,17 @@
|
|||||||
<!--
|
<!--
|
||||||
Prepares a toast message. Use a trigger to display the message. The shortcode supports the following arguments:
|
Prepares a toast message. Use a trigger to display the message. The shortcode supports the following arguments:
|
||||||
|
"id" Optional id of the toast message, defaults to "toast-message-n" with sequence n.
|
||||||
"header": Optional header of the toast message. Uses the site title by default.
|
"header": Optional header of the toast message. Uses the site title by default.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
{{- $error := false -}}
|
||||||
|
{{- $id := printf "toast-message-%d" .Ordinal -}}
|
||||||
|
{{- with .Get "id" }}{{ $id = . }}{{ end -}}
|
||||||
{{ $header := .Get "header" -}}
|
{{ $header := .Get "header" -}}
|
||||||
{{ if not $header -}}
|
|
||||||
{{ $header = site.Title -}}
|
|
||||||
{{ end -}}
|
|
||||||
|
|
||||||
{{ $message := trim .Inner " \r\n" -}}
|
{{ $message := trim .Inner " \r\n" -}}
|
||||||
|
|
||||||
{{ if not $message -}}
|
{{ if not $message -}}
|
||||||
{{ errorf "Missing inner element text: %s" .Position -}}
|
{{ errorf "Missing inner element text: %s" .Position -}}
|
||||||
|
{{ else if not $error -}}
|
||||||
|
{{ partial "assets/toast.html" (dict "id" $id "header" $header "message" $message) }}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
<div class="toast-container position-fixed bottom-0 end-0 p-3">
|
|
||||||
<div id="toastMessage" class="toast" role="alert" aria-live="assertive" aria-atomic="true">
|
|
||||||
<div class="toast-header">
|
|
||||||
<strong class="me-auto">{{ $header }}</strong>
|
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
|
|
||||||
</div>
|
|
||||||
<div class="toast-body">{{ $message }}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
@@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
Displays a tooltip for a link. The shortcode supports the following arguments:
|
Displays a tooltip for a link. The shortcode supports the following arguments:
|
||||||
"color": Optional theme color of the element, either "primary" (default), "secondary", "success",
|
"color": Optional theme color of the element, either "primary" (default), "secondary", "success",
|
||||||
"danger", "warning", "info", "light", "dark", "white", or "black".
|
"danger", "warning", "info", "light", or "dark".
|
||||||
"title" Required text to display in the tooltip.
|
"title" Required text to display in the tooltip.
|
||||||
"href" Required address for the button or hyperlink.
|
"href" Required address for the button or hyperlink.
|
||||||
"placement" Optional position of the tooltip: "top" (default), "bottom", "left", or "right".
|
"placement" Optional position of the tooltip: "top" (default), "bottom", "left", or "right".
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
{{ $color := "primary" -}}
|
{{ $color := "primary" -}}
|
||||||
{{ with .Get "color" }}{{ $color = . }}{{ end -}}
|
{{ with .Get "color" }}{{ $color = . }}{{ end -}}
|
||||||
{{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" -}}
|
{{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" -}}
|
||||||
{{ if not (in $supportedColors $color) -}}
|
{{ if not (in $supportedColors $color) -}}
|
||||||
{{ errorf "Invalid value for param 'color': %s" .Position -}}
|
{{ errorf "Invalid value for param 'color': %s" .Position -}}
|
||||||
{{ $error = true }}
|
{{ $error = true }}
|
||||||
|
522
package-lock.json
generated
522
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@gethinode/hinode",
|
"name": "@gethinode/hinode",
|
||||||
"version": "0.12.10",
|
"version": "0.14.5",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@gethinode/hinode",
|
"name": "@gethinode/hinode",
|
||||||
"version": "0.12.10",
|
"version": "0.14.5",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@fortawesome/fontawesome-free": "^6.4.0",
|
"@fortawesome/fontawesome-free": "^6.4.0",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
"eslint-plugin-n": "^15.7.0",
|
"eslint-plugin-n": "^15.7.0",
|
||||||
"eslint-plugin-promise": "^6.1.1",
|
"eslint-plugin-promise": "^6.1.1",
|
||||||
"flexsearch": "^0.7.31",
|
"flexsearch": "^0.7.31",
|
||||||
"hugo-bin": "^0.102.0",
|
"hugo-bin": "^0.103.0",
|
||||||
"markdownlint-cli2": "^0.7.0",
|
"markdownlint-cli2": "^0.7.0",
|
||||||
"postcss-cli": "^10.1.0",
|
"postcss-cli": "^10.1.0",
|
||||||
"purgecss-whitelister": "^2.4.0",
|
"purgecss-whitelister": "^2.4.0",
|
||||||
@@ -247,9 +247,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@eslint/js": {
|
"node_modules/@eslint/js": {
|
||||||
"version": "8.40.0",
|
"version": "8.41.0",
|
||||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz",
|
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz",
|
||||||
"integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==",
|
"integrity": "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||||
@@ -310,6 +310,102 @@
|
|||||||
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
|
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/@isaacs/cliui": {
|
||||||
|
"version": "8.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
|
||||||
|
"integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"string-width": "^5.1.2",
|
||||||
|
"string-width-cjs": "npm:string-width@^4.2.0",
|
||||||
|
"strip-ansi": "^7.0.1",
|
||||||
|
"strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
|
||||||
|
"wrap-ansi": "^8.1.0",
|
||||||
|
"wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@isaacs/cliui/node_modules/ansi-regex": {
|
||||||
|
"version": "6.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
|
||||||
|
"integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/chalk/ansi-regex?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@isaacs/cliui/node_modules/ansi-styles": {
|
||||||
|
"version": "6.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
|
||||||
|
"integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@isaacs/cliui/node_modules/emoji-regex": {
|
||||||
|
"version": "9.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
|
||||||
|
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"node_modules/@isaacs/cliui/node_modules/string-width": {
|
||||||
|
"version": "5.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
|
||||||
|
"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"eastasianwidth": "^0.2.0",
|
||||||
|
"emoji-regex": "^9.2.2",
|
||||||
|
"strip-ansi": "^7.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@isaacs/cliui/node_modules/strip-ansi": {
|
||||||
|
"version": "7.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
|
||||||
|
"integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-regex": "^6.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
|
||||||
|
"version": "8.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
|
||||||
|
"integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-styles": "^6.1.0",
|
||||||
|
"string-width": "^5.0.1",
|
||||||
|
"strip-ansi": "^7.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@nodelib/fs.scandir": {
|
"node_modules/@nodelib/fs.scandir": {
|
||||||
"version": "2.1.5",
|
"version": "2.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
||||||
@@ -345,6 +441,16 @@
|
|||||||
"node": ">= 8"
|
"node": ">= 8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@pkgjs/parseargs": {
|
||||||
|
"version": "0.11.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
|
||||||
|
"integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@popperjs/core": {
|
"node_modules/@popperjs/core": {
|
||||||
"version": "2.11.7",
|
"version": "2.11.7",
|
||||||
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz",
|
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz",
|
||||||
@@ -1972,6 +2078,12 @@
|
|||||||
"url": "https://github.com/fb55/domutils?sponsor=1"
|
"url": "https://github.com/fb55/domutils?sponsor=1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/eastasianwidth": {
|
||||||
|
"version": "0.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
|
||||||
|
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"node_modules/electron-to-chromium": {
|
"node_modules/electron-to-chromium": {
|
||||||
"version": "1.4.284",
|
"version": "1.4.284",
|
||||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
|
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
|
||||||
@@ -2100,15 +2212,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint": {
|
"node_modules/eslint": {
|
||||||
"version": "8.40.0",
|
"version": "8.41.0",
|
||||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz",
|
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz",
|
||||||
"integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==",
|
"integrity": "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eslint-community/eslint-utils": "^4.2.0",
|
"@eslint-community/eslint-utils": "^4.2.0",
|
||||||
"@eslint-community/regexpp": "^4.4.0",
|
"@eslint-community/regexpp": "^4.4.0",
|
||||||
"@eslint/eslintrc": "^2.0.3",
|
"@eslint/eslintrc": "^2.0.3",
|
||||||
"@eslint/js": "8.40.0",
|
"@eslint/js": "8.41.0",
|
||||||
"@humanwhocodes/config-array": "^0.11.8",
|
"@humanwhocodes/config-array": "^0.11.8",
|
||||||
"@humanwhocodes/module-importer": "^1.0.1",
|
"@humanwhocodes/module-importer": "^1.0.1",
|
||||||
"@nodelib/fs.walk": "^1.2.8",
|
"@nodelib/fs.walk": "^1.2.8",
|
||||||
@@ -2128,13 +2240,12 @@
|
|||||||
"find-up": "^5.0.0",
|
"find-up": "^5.0.0",
|
||||||
"glob-parent": "^6.0.2",
|
"glob-parent": "^6.0.2",
|
||||||
"globals": "^13.19.0",
|
"globals": "^13.19.0",
|
||||||
"grapheme-splitter": "^1.0.4",
|
"graphemer": "^1.4.0",
|
||||||
"ignore": "^5.2.0",
|
"ignore": "^5.2.0",
|
||||||
"import-fresh": "^3.0.0",
|
"import-fresh": "^3.0.0",
|
||||||
"imurmurhash": "^0.1.4",
|
"imurmurhash": "^0.1.4",
|
||||||
"is-glob": "^4.0.0",
|
"is-glob": "^4.0.0",
|
||||||
"is-path-inside": "^3.0.3",
|
"is-path-inside": "^3.0.3",
|
||||||
"js-sdsl": "^4.1.4",
|
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"json-stable-stringify-without-jsonify": "^1.0.1",
|
"json-stable-stringify-without-jsonify": "^1.0.1",
|
||||||
"levn": "^0.4.1",
|
"levn": "^0.4.1",
|
||||||
@@ -2831,6 +2942,34 @@
|
|||||||
"integrity": "sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==",
|
"integrity": "sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/foreground-child": {
|
||||||
|
"version": "3.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
|
||||||
|
"integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"cross-spawn": "^7.0.0",
|
||||||
|
"signal-exit": "^4.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/foreground-child/node_modules/signal-exit": {
|
||||||
|
"version": "4.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
|
||||||
|
"integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/fraction.js": {
|
"node_modules/fraction.js": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
|
||||||
@@ -3283,10 +3422,10 @@
|
|||||||
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
|
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/grapheme-splitter": {
|
"node_modules/graphemer": {
|
||||||
"version": "1.0.4",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
|
||||||
"integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
|
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/hard-rejection": {
|
"node_modules/hard-rejection": {
|
||||||
@@ -3398,9 +3537,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/hugo-bin": {
|
"node_modules/hugo-bin": {
|
||||||
"version": "0.102.0",
|
"version": "0.103.3",
|
||||||
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.102.0.tgz",
|
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.103.3.tgz",
|
||||||
"integrity": "sha512-gJeDdC4W0x/+a8rf7pz8L/NheEeHIKrtLIHFwMumX04UAFYUA065A4uQmDjRspsMdQ9muwB9eQfOwTSjqaYyrQ==",
|
"integrity": "sha512-nB5CcOni4zAkWcPVCu2CJGq0WKEmrjONjGgZBVoxPe0DZivIclu2BLurkWFwMTuoiipfmsmqyCk9LZfLVhgwpw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -3414,7 +3553,7 @@
|
|||||||
"pkg-conf": "^4.0.0"
|
"pkg-conf": "^4.0.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"hugo": "cli.js"
|
"hugo": "bin/cli.js"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^14.14.0 || >=16.0.0"
|
"node": "^14.14.0 || >=16.0.0"
|
||||||
@@ -3824,14 +3963,22 @@
|
|||||||
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/js-sdsl": {
|
"node_modules/jackspeak": {
|
||||||
"version": "4.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz",
|
||||||
"integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==",
|
"integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@isaacs/cliui": "^8.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "opencollective",
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
"url": "https://opencollective.com/js-sdsl"
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@pkgjs/parseargs": "^0.11.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/js-tokens": {
|
"node_modules/js-tokens": {
|
||||||
@@ -4295,12 +4442,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/minipass": {
|
"node_modules/minipass": {
|
||||||
"version": "5.0.0",
|
"version": "6.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz",
|
||||||
"integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
|
"integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8"
|
"node": ">=16 || 14 >=14.17"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/ms": {
|
"node_modules/ms": {
|
||||||
@@ -4671,13 +4818,13 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/path-scurry": {
|
"node_modules/path-scurry": {
|
||||||
"version": "1.6.4",
|
"version": "1.9.2",
|
||||||
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz",
|
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz",
|
||||||
"integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==",
|
"integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"lru-cache": "^9.0.0",
|
"lru-cache": "^9.1.1",
|
||||||
"minipass": "^5.0.0"
|
"minipass": "^5.0.0 || ^6.0.2"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=16 || 14 >=14.17"
|
"node": ">=16 || 14 >=14.17"
|
||||||
@@ -4687,12 +4834,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/path-scurry/node_modules/lru-cache": {
|
"node_modules/path-scurry/node_modules/lru-cache": {
|
||||||
"version": "9.0.0",
|
"version": "9.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz",
|
||||||
"integrity": "sha512-9AEKXzvOZc4BMacFnYiTOlDH/197LNnQIK9wZ6iMB5NXPzuv4bWR/Msv7iUMplkiMQ1qQL+KSv/JF1mZAB5Lrg==",
|
"integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=16.14"
|
"node": "14 || >=16.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/path-type": {
|
"node_modules/path-type": {
|
||||||
@@ -5916,12 +6063,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rimraf": {
|
"node_modules/rimraf": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz",
|
||||||
"integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==",
|
"integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"glob": "^10.0.0"
|
"glob": "^10.2.5"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"rimraf": "dist/cjs/src/bin.js"
|
"rimraf": "dist/cjs/src/bin.js"
|
||||||
@@ -5943,15 +6090,19 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rimraf/node_modules/glob": {
|
"node_modules/rimraf/node_modules/glob": {
|
||||||
"version": "10.0.0",
|
"version": "10.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/glob/-/glob-10.2.5.tgz",
|
||||||
"integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==",
|
"integrity": "sha512-Gj+dFYPZ5hc5dazjXzB0iHg2jKWJZYMjITXYPBRQ/xc2Buw7H0BINknRTwURJ6IC6MEFpYbLvtgVb3qD+DwyuA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fs.realpath": "^1.0.0",
|
"foreground-child": "^3.1.0",
|
||||||
|
"jackspeak": "^2.0.3",
|
||||||
"minimatch": "^9.0.0",
|
"minimatch": "^9.0.0",
|
||||||
"minipass": "^5.0.0",
|
"minipass": "^5.0.0 || ^6.0.2",
|
||||||
"path-scurry": "^1.6.4"
|
"path-scurry": "^1.7.0"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"glob": "dist/cjs/src/bin.js"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=16 || 14 >=14.17"
|
"node": ">=16 || 14 >=14.17"
|
||||||
@@ -6335,6 +6486,21 @@
|
|||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/string-width-cjs": {
|
||||||
|
"name": "string-width",
|
||||||
|
"version": "4.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||||
|
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"emoji-regex": "^8.0.0",
|
||||||
|
"is-fullwidth-code-point": "^3.0.0",
|
||||||
|
"strip-ansi": "^6.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/string.prototype.trimend": {
|
"node_modules/string.prototype.trimend": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
|
||||||
@@ -6375,6 +6541,19 @@
|
|||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/strip-ansi-cjs": {
|
||||||
|
"name": "strip-ansi",
|
||||||
|
"version": "6.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||||
|
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-regex": "^5.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/strip-bom": {
|
"node_modules/strip-bom": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
|
||||||
@@ -6461,9 +6640,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/stylelint": {
|
"node_modules/stylelint": {
|
||||||
"version": "15.6.1",
|
"version": "15.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.6.2.tgz",
|
||||||
"integrity": "sha512-d8icFBlVl93Elf3Z5ABQNOCe4nx69is3D/NZhDLAie1eyYnpxfeKe7pCfqzT5W4F8vxHCLSDfV8nKNJzogvV2Q==",
|
"integrity": "sha512-fjQWwcdUye4DU+0oIxNGwawIPC5DvG5kdObY5Sg4rc87untze3gC/5g/ikePqVjrAsBUZjwMN+pZsAYbDO6ArQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@csstools/css-parser-algorithms": "^2.1.1",
|
"@csstools/css-parser-algorithms": "^2.1.1",
|
||||||
@@ -7037,6 +7216,24 @@
|
|||||||
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/wrap-ansi-cjs": {
|
||||||
|
"name": "wrap-ansi",
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-styles": "^4.0.0",
|
||||||
|
"string-width": "^4.1.0",
|
||||||
|
"strip-ansi": "^6.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/wrappy": {
|
"node_modules/wrappy": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||||
@@ -7305,9 +7502,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@eslint/js": {
|
"@eslint/js": {
|
||||||
"version": "8.40.0",
|
"version": "8.41.0",
|
||||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz",
|
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz",
|
||||||
"integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==",
|
"integrity": "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@fortawesome/fontawesome-free": {
|
"@fortawesome/fontawesome-free": {
|
||||||
@@ -7348,6 +7545,71 @@
|
|||||||
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
|
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"@isaacs/cliui": {
|
||||||
|
"version": "8.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
|
||||||
|
"integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"string-width": "^5.1.2",
|
||||||
|
"string-width-cjs": "npm:string-width@^4.2.0",
|
||||||
|
"strip-ansi": "^7.0.1",
|
||||||
|
"strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
|
||||||
|
"wrap-ansi": "^8.1.0",
|
||||||
|
"wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-regex": {
|
||||||
|
"version": "6.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
|
||||||
|
"integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"ansi-styles": {
|
||||||
|
"version": "6.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
|
||||||
|
"integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"emoji-regex": {
|
||||||
|
"version": "9.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
|
||||||
|
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"string-width": {
|
||||||
|
"version": "5.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
|
||||||
|
"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"eastasianwidth": "^0.2.0",
|
||||||
|
"emoji-regex": "^9.2.2",
|
||||||
|
"strip-ansi": "^7.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"strip-ansi": {
|
||||||
|
"version": "7.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
|
||||||
|
"integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-regex": "^6.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wrap-ansi": {
|
||||||
|
"version": "8.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
|
||||||
|
"integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-styles": "^6.1.0",
|
||||||
|
"string-width": "^5.0.1",
|
||||||
|
"strip-ansi": "^7.0.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@nodelib/fs.scandir": {
|
"@nodelib/fs.scandir": {
|
||||||
"version": "2.1.5",
|
"version": "2.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
||||||
@@ -7374,6 +7636,13 @@
|
|||||||
"fastq": "^1.6.0"
|
"fastq": "^1.6.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@pkgjs/parseargs": {
|
||||||
|
"version": "0.11.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
|
||||||
|
"integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"@popperjs/core": {
|
"@popperjs/core": {
|
||||||
"version": "2.11.7",
|
"version": "2.11.7",
|
||||||
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz",
|
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz",
|
||||||
@@ -8529,6 +8798,12 @@
|
|||||||
"domhandler": "^5.0.1"
|
"domhandler": "^5.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"eastasianwidth": {
|
||||||
|
"version": "0.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
|
||||||
|
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"electron-to-chromium": {
|
"electron-to-chromium": {
|
||||||
"version": "1.4.284",
|
"version": "1.4.284",
|
||||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
|
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
|
||||||
@@ -8630,15 +8905,15 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"eslint": {
|
"eslint": {
|
||||||
"version": "8.40.0",
|
"version": "8.41.0",
|
||||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz",
|
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz",
|
||||||
"integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==",
|
"integrity": "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@eslint-community/eslint-utils": "^4.2.0",
|
"@eslint-community/eslint-utils": "^4.2.0",
|
||||||
"@eslint-community/regexpp": "^4.4.0",
|
"@eslint-community/regexpp": "^4.4.0",
|
||||||
"@eslint/eslintrc": "^2.0.3",
|
"@eslint/eslintrc": "^2.0.3",
|
||||||
"@eslint/js": "8.40.0",
|
"@eslint/js": "8.41.0",
|
||||||
"@humanwhocodes/config-array": "^0.11.8",
|
"@humanwhocodes/config-array": "^0.11.8",
|
||||||
"@humanwhocodes/module-importer": "^1.0.1",
|
"@humanwhocodes/module-importer": "^1.0.1",
|
||||||
"@nodelib/fs.walk": "^1.2.8",
|
"@nodelib/fs.walk": "^1.2.8",
|
||||||
@@ -8658,13 +8933,12 @@
|
|||||||
"find-up": "^5.0.0",
|
"find-up": "^5.0.0",
|
||||||
"glob-parent": "^6.0.2",
|
"glob-parent": "^6.0.2",
|
||||||
"globals": "^13.19.0",
|
"globals": "^13.19.0",
|
||||||
"grapheme-splitter": "^1.0.4",
|
"graphemer": "^1.4.0",
|
||||||
"ignore": "^5.2.0",
|
"ignore": "^5.2.0",
|
||||||
"import-fresh": "^3.0.0",
|
"import-fresh": "^3.0.0",
|
||||||
"imurmurhash": "^0.1.4",
|
"imurmurhash": "^0.1.4",
|
||||||
"is-glob": "^4.0.0",
|
"is-glob": "^4.0.0",
|
||||||
"is-path-inside": "^3.0.3",
|
"is-path-inside": "^3.0.3",
|
||||||
"js-sdsl": "^4.1.4",
|
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"json-stable-stringify-without-jsonify": "^1.0.1",
|
"json-stable-stringify-without-jsonify": "^1.0.1",
|
||||||
"levn": "^0.4.1",
|
"levn": "^0.4.1",
|
||||||
@@ -9174,6 +9448,24 @@
|
|||||||
"integrity": "sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==",
|
"integrity": "sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"foreground-child": {
|
||||||
|
"version": "3.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
|
||||||
|
"integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"cross-spawn": "^7.0.0",
|
||||||
|
"signal-exit": "^4.0.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"signal-exit": {
|
||||||
|
"version": "4.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
|
||||||
|
"integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"fraction.js": {
|
"fraction.js": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
|
||||||
@@ -9513,10 +9805,10 @@
|
|||||||
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
|
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"grapheme-splitter": {
|
"graphemer": {
|
||||||
"version": "1.0.4",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
|
||||||
"integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
|
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"hard-rejection": {
|
"hard-rejection": {
|
||||||
@@ -9592,9 +9884,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"hugo-bin": {
|
"hugo-bin": {
|
||||||
"version": "0.102.0",
|
"version": "0.103.3",
|
||||||
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.102.0.tgz",
|
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.103.3.tgz",
|
||||||
"integrity": "sha512-gJeDdC4W0x/+a8rf7pz8L/NheEeHIKrtLIHFwMumX04UAFYUA065A4uQmDjRspsMdQ9muwB9eQfOwTSjqaYyrQ==",
|
"integrity": "sha512-nB5CcOni4zAkWcPVCu2CJGq0WKEmrjONjGgZBVoxPe0DZivIclu2BLurkWFwMTuoiipfmsmqyCk9LZfLVhgwpw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@xhmikosr/bin-wrapper": "^5.0.1",
|
"@xhmikosr/bin-wrapper": "^5.0.1",
|
||||||
@@ -9880,11 +10172,15 @@
|
|||||||
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"js-sdsl": {
|
"jackspeak": {
|
||||||
"version": "4.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz",
|
||||||
"integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==",
|
"integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@isaacs/cliui": "^8.0.2",
|
||||||
|
"@pkgjs/parseargs": "^0.11.0"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"js-tokens": {
|
"js-tokens": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
@@ -10242,9 +10538,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minipass": {
|
"minipass": {
|
||||||
"version": "5.0.0",
|
"version": "6.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz",
|
||||||
"integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
|
"integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"ms": {
|
"ms": {
|
||||||
@@ -10500,19 +10796,19 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"path-scurry": {
|
"path-scurry": {
|
||||||
"version": "1.6.4",
|
"version": "1.9.2",
|
||||||
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz",
|
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz",
|
||||||
"integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==",
|
"integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"lru-cache": "^9.0.0",
|
"lru-cache": "^9.1.1",
|
||||||
"minipass": "^5.0.0"
|
"minipass": "^5.0.0 || ^6.0.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"lru-cache": {
|
"lru-cache": {
|
||||||
"version": "9.0.0",
|
"version": "9.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz",
|
||||||
"integrity": "sha512-9AEKXzvOZc4BMacFnYiTOlDH/197LNnQIK9wZ6iMB5NXPzuv4bWR/Msv7iUMplkiMQ1qQL+KSv/JF1mZAB5Lrg==",
|
"integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==",
|
||||||
"dev": true
|
"dev": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -11317,12 +11613,12 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"rimraf": {
|
"rimraf": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz",
|
||||||
"integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==",
|
"integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"glob": "^10.0.0"
|
"glob": "^10.2.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
@@ -11335,15 +11631,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"glob": {
|
"glob": {
|
||||||
"version": "10.0.0",
|
"version": "10.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/glob/-/glob-10.2.5.tgz",
|
||||||
"integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==",
|
"integrity": "sha512-Gj+dFYPZ5hc5dazjXzB0iHg2jKWJZYMjITXYPBRQ/xc2Buw7H0BINknRTwURJ6IC6MEFpYbLvtgVb3qD+DwyuA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"fs.realpath": "^1.0.0",
|
"foreground-child": "^3.1.0",
|
||||||
|
"jackspeak": "^2.0.3",
|
||||||
"minimatch": "^9.0.0",
|
"minimatch": "^9.0.0",
|
||||||
"minipass": "^5.0.0",
|
"minipass": "^5.0.0 || ^6.0.2",
|
||||||
"path-scurry": "^1.6.4"
|
"path-scurry": "^1.7.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimatch": {
|
"minimatch": {
|
||||||
@@ -11618,6 +11915,17 @@
|
|||||||
"strip-ansi": "^6.0.1"
|
"strip-ansi": "^6.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"string-width-cjs": {
|
||||||
|
"version": "npm:string-width@4.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||||
|
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"emoji-regex": "^8.0.0",
|
||||||
|
"is-fullwidth-code-point": "^3.0.0",
|
||||||
|
"strip-ansi": "^6.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"string.prototype.trimend": {
|
"string.prototype.trimend": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
|
||||||
@@ -11649,6 +11957,15 @@
|
|||||||
"ansi-regex": "^5.0.1"
|
"ansi-regex": "^5.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"strip-ansi-cjs": {
|
||||||
|
"version": "npm:strip-ansi@6.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||||
|
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-regex": "^5.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"strip-bom": {
|
"strip-bom": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
|
||||||
@@ -11705,9 +12022,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"stylelint": {
|
"stylelint": {
|
||||||
"version": "15.6.1",
|
"version": "15.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.6.2.tgz",
|
||||||
"integrity": "sha512-d8icFBlVl93Elf3Z5ABQNOCe4nx69is3D/NZhDLAie1eyYnpxfeKe7pCfqzT5W4F8vxHCLSDfV8nKNJzogvV2Q==",
|
"integrity": "sha512-fjQWwcdUye4DU+0oIxNGwawIPC5DvG5kdObY5Sg4rc87untze3gC/5g/ikePqVjrAsBUZjwMN+pZsAYbDO6ArQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@csstools/css-parser-algorithms": "^2.1.1",
|
"@csstools/css-parser-algorithms": "^2.1.1",
|
||||||
@@ -12142,6 +12459,17 @@
|
|||||||
"strip-ansi": "^6.0.0"
|
"strip-ansi": "^6.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"wrap-ansi-cjs": {
|
||||||
|
"version": "npm:wrap-ansi@7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-styles": "^4.0.0",
|
||||||
|
"string-width": "^4.1.0",
|
||||||
|
"strip-ansi": "^6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"wrappy": {
|
"wrappy": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@gethinode/hinode",
|
"name": "@gethinode/hinode",
|
||||||
"version": "0.12.10",
|
"version": "0.14.5",
|
||||||
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
|
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"hugo",
|
"hugo",
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
"eslint-plugin-n": "^15.7.0",
|
"eslint-plugin-n": "^15.7.0",
|
||||||
"eslint-plugin-promise": "^6.1.1",
|
"eslint-plugin-promise": "^6.1.1",
|
||||||
"flexsearch": "^0.7.31",
|
"flexsearch": "^0.7.31",
|
||||||
"hugo-bin": "^0.102.0",
|
"hugo-bin": "^0.103.0",
|
||||||
"markdownlint-cli2": "^0.7.0",
|
"markdownlint-cli2": "^0.7.0",
|
||||||
"postcss-cli": "^10.1.0",
|
"postcss-cli": "^10.1.0",
|
||||||
"purgecss-whitelister": "^2.4.0",
|
"purgecss-whitelister": "^2.4.0",
|
||||||
|
3
static/js/alias.js
Normal file
3
static/js/alias.js
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
const alias = document.querySelector("link[rel='canonical']").getAttribute('href')
|
||||||
|
const params = window.location.search + window.location.hash
|
||||||
|
window.location = alias + params
|
Reference in New Issue
Block a user