Compare commits

...

118 Commits

Author SHA1 Message Date
Mark Dumay
6ad6eef347 Merge pull request #576 from gethinode/develop
Fix buttons
2023-10-22 15:27:55 +02:00
Mark Dumay
43ed4d411e Merge branch 'main' into develop 2023-10-22 15:20:11 +02:00
mark
7c8d5453cc Update dependencies 2023-10-22 15:19:24 +02:00
mark
f4a40367f6 Fix close button image 2023-10-22 15:19:12 +02:00
mark
e786ef279a Fix close button aria labels 2023-10-22 14:39:24 +02:00
mark
a6684e1bb5 Fix close button aria label 2023-10-22 14:28:51 +02:00
Mark Dumay
4fbe389245 Merge pull request #575 from gethinode/develop
Improve layout
2023-10-22 13:42:32 +02:00
Mark Dumay
04b0af5d58 Merge branch 'main' into develop 2023-10-22 12:55:37 +02:00
mark
7f797af3eb Sort actions by weight 2023-10-22 12:52:33 +02:00
mark
4a3a0fb0bb Fix gap between CTA buttons 2023-10-22 12:39:33 +02:00
mark
f9e9eec611 Fix vertical centering of button icon 2023-10-22 12:38:10 +02:00
mark
cb71742a91 Fix spacing between button rows 2023-10-22 12:32:13 +02:00
mark
638c7054d0 Bump package release 2023-10-22 08:43:14 +02:00
mark
fb21633f8c Fix support of floating numbers 2023-10-22 08:42:45 +02:00
mark
9bb7cf1825 Set dimensions of vector image in light/dark mode 2023-10-22 08:42:18 +02:00
Mark Dumay
e00ad4498b Merge pull request #574 from gethinode/develop
Fix section menu initialization
2023-10-21 15:14:40 +02:00
Mark Dumay
a0f7e62616 Merge branch 'main' into develop 2023-10-21 14:56:17 +02:00
mark
11653015ab Fix section menu initialization 2023-10-21 14:55:38 +02:00
mark
e6a37cab0f Fix typos 2023-10-21 14:53:39 +02:00
Mark Dumay
7fcc6713a4 Merge pull request #573 from gethinode/develop
Fix alignment of 404 message
2023-10-21 08:19:52 +02:00
Mark Dumay
5694938b81 Merge branch 'main' into develop 2023-10-21 07:53:05 +02:00
mark
b6d3c17a87 Bump package release 2023-10-21 07:52:33 +02:00
mark
40ba175409 Fix alignment of 404 message 2023-10-21 07:51:37 +02:00
Mark Dumay
bcc98d507b Merge pull request #571 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2023-10-21 06:16:48 +02:00
Mark Dumay
ce1c32c930 Merge branch 'main' into hugo-mod-dependencies 2023-10-21 05:58:14 +02:00
Mark Dumay
08d462f698 Merge pull request #572 from gethinode/develop
Refine base layout
2023-10-21 05:57:20 +02:00
Mark Dumay
d32e615837 Merge branch 'main' into develop 2023-10-21 05:49:58 +02:00
mark
83368cdf3a Bump package version 2023-10-21 05:49:14 +02:00
mark
45525a6e3c Set explicit default values 2023-10-21 05:48:33 +02:00
mark
75a082c8df Update build stats 2023-10-21 05:48:24 +02:00
mark
d3d4d99fe4 Set explicit default values 2023-10-21 05:48:19 +02:00
mark
f05764d4a8 Update build stats 2023-10-21 05:48:08 +02:00
mark
a7822fcd55 Refine base layout 2023-10-21 05:48:00 +02:00
mark
f0a0d2022a Enable wrapper for button 2023-10-20 14:53:13 +02:00
markdumay
2ccc85926e fix: update Hugo module dependencies 2023-10-20 03:15:48 +00:00
Mark Dumay
b9699ab8bc Merge pull request #570 from gethinode/develop
Support content view templates for single pages
2023-10-18 15:20:09 +02:00
Mark Dumay
02ca7271fc Merge branch 'main' into develop 2023-10-18 15:09:50 +02:00
mark
9dbe4bc8a1 Support content view templates for single pages 2023-10-18 15:09:14 +02:00
Mark Dumay
2ca20096a0 Merge pull request #569 from gethinode/develop
Use redirect for more button when applicable
2023-10-18 13:35:29 +02:00
Mark Dumay
1d7e8e3adb Merge branch 'main' into develop 2023-10-18 13:18:13 +02:00
mark
88c897e09c Use redirect for more button when applicable 2023-10-18 13:17:28 +02:00
Mark Dumay
f1a1ec128f Merge pull request #568 from gethinode/develop
Refactor link partial and shortcode
2023-10-18 13:15:05 +02:00
Mark Dumay
b0bc03f251 Merge branch 'main' into develop 2023-10-18 13:08:35 +02:00
mark
0f57e9ad1d Bump package release 2023-10-18 13:07:39 +02:00
mark
8b27c8986b Refactor link partial and shortcode 2023-10-18 13:06:57 +02:00
mark
1210117922 Standardize padding 2023-10-18 13:00:49 +02:00
Mark Dumay
3a1e310e22 Merge pull request #567 from gethinode/develop
Refine layout
2023-10-18 07:31:09 +02:00
Mark Dumay
918c043f10 Merge branch 'main' into develop 2023-10-18 07:21:43 +02:00
mark
fbfb02d7ca Bump package release 2023-10-18 07:20:41 +02:00
mark
3026837946 Improve icon spacing 2023-10-18 07:20:07 +02:00
mark
f7ccdad1df Update build stats 2023-10-18 06:57:22 +02:00
mark
4b4f70e6e0 Fix abbr element on devices with touch screen 2023-10-18 06:57:03 +02:00
mark
c28e9861ba Enable keyboard focus for abbr element 2023-10-18 06:56:13 +02:00
mark
15c2b5466e Fix background color of TOC button on hover 2023-10-18 06:30:42 +02:00
mark
58bcdff782 Fix gap between tags in dark mode 2023-10-18 06:25:22 +02:00
Mark Dumay
a08cdeeeb6 Merge pull request #566 from gethinode/develop
Improve definition of image dimensions
2023-10-17 17:00:37 +02:00
Mark Dumay
9be2f7712d Merge branch 'main' into develop 2023-10-17 16:52:02 +02:00
mark
f59e34758c Add dimensions for vector brand logo 2023-10-17 16:51:06 +02:00
mark
fc3846424d Add image dimensions 2023-10-17 16:50:12 +02:00
github-actions[bot]
11a0e4943a Merge pull request #565 from gethinode/dependabot/npm_and_yarn/stylelint-15.11.0
Bump stylelint from 15.10.3 to 15.11.0
2023-10-17 13:57:57 +00:00
dependabot[bot]
5d95eb0420 Bump stylelint from 15.10.3 to 15.11.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.10.3 to 15.11.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.10.3...15.11.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-17 13:50:11 +00:00
Mark Dumay
ef0b797e60 Merge pull request #564 from gethinode/develop
Optimize js and css handling
2023-10-17 14:54:02 +02:00
mark
dfa34a1838 Sync translated about pages 2023-10-17 14:40:00 +02:00
mark
d58a32e283 Support configuration of script processing 2023-10-17 13:55:20 +02:00
Mark Dumay
5fa1abe7bc Merge branch 'main' into develop 2023-10-17 13:11:13 +02:00
mark
251dec084c Update build stats 2023-10-17 13:09:31 +02:00
mark
52ef24a5f6 Fix alignment of featured content 2023-10-17 13:09:22 +02:00
mark
0a7fc04fa5 Fix purge settings for example site 2023-10-17 13:09:06 +02:00
mark
612dbcc868 Optimize css and js handling 2023-10-17 13:06:48 +02:00
Mark Dumay
850a92bee9 Merge pull request #563 from gethinode/develop
Add modal search support
2023-10-17 06:01:48 +02:00
Mark Dumay
5664e98d89 Merge branch 'main' into develop 2023-10-17 05:40:33 +02:00
mark
1bd6f0f04e Bump package release 2023-10-17 05:39:58 +02:00
mark
58e3e0f53e Add modal search support 2023-10-17 05:39:15 +02:00
mark
a3d8585276 Adjust icon spacing 2023-10-17 05:38:43 +02:00
mark
882269bf72 Update build stats 2023-10-17 05:38:01 +02:00
mark
c71e21ca0b Fix typo 2023-10-17 05:37:41 +02:00
Mark Dumay
890ab25210 Merge pull request #562 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2023-10-17 05:36:12 +02:00
markdumay
81687c19ef fix: update Hugo module dependencies 2023-10-17 03:16:24 +00:00
Mark Dumay
c98165c61e Merge pull request #561 from gethinode/develop
Standardize padding
2023-10-16 11:50:36 +02:00
Mark Dumay
0ee3ddef1d Merge branch 'main' into develop 2023-10-16 11:33:09 +02:00
mark
06af1481e6 Standardize padding 2023-10-16 11:32:43 +02:00
Mark Dumay
740108432b Merge pull request #560 from gethinode/develop
Refine section heading rendering
2023-10-16 11:31:39 +02:00
Mark Dumay
331959e3da Merge branch 'main' into develop 2023-10-16 11:24:36 +02:00
mark
679e49e55f Refine section heading rendering 2023-10-16 11:23:58 +02:00
Mark Dumay
5ae69f2466 Merge pull request #559 from gethinode/develop
Remove trailing whitespace from external link icon
2023-10-16 11:21:52 +02:00
Mark Dumay
15c7d53acc Merge branch 'main' into develop 2023-10-16 11:09:52 +02:00
mark
a1d93fca52 Remove trailing whitespace from external link icon 2023-10-16 11:07:18 +02:00
Mark Dumay
56af6dda1d Merge pull request #558 from gethinode/develop
Refine featured partial
2023-10-16 09:15:23 +02:00
Mark Dumay
7c62e115c3 Merge branch 'main' into develop 2023-10-16 08:53:04 +02:00
mark
5f13e2d7ab Fix featured padding 2023-10-16 08:52:16 +02:00
mark
0186b3db8b Support icon color modes 2023-10-16 08:51:58 +02:00
Mark Dumay
db4e353d8a Merge pull request #557 from gethinode/develop
Add color mode support for animations
2023-10-16 08:47:33 +02:00
Mark Dumay
30468c2dab Merge branch 'main' into develop 2023-10-16 07:34:40 +02:00
mark
3afe0a8a99 Add color mode support for animations 2023-10-16 07:33:46 +02:00
mark
fc626dc4c0 Bump package version 2023-10-15 07:52:50 +02:00
mark
7e4f582445 Fix alignment of breadcrumb 2023-10-15 07:52:09 +02:00
mark
f740443f73 Add section header for main list content 2023-10-15 07:28:03 +02:00
mark
d43da60e8e Update nodejs version 2023-10-14 07:51:13 +02:00
Mark Dumay
d29759da9b Merge pull request #555 from gethinode/develop
Refine base layout
2023-10-14 07:47:29 +02:00
Mark Dumay
4b3a2e441b Merge branch 'main' into develop 2023-10-14 07:31:42 +02:00
mark
a8b8d07bf4 Refine featured configuration 2023-10-14 07:31:07 +02:00
mark
34410446f3 Update build stats 2023-10-14 07:30:40 +02:00
mark
13098a351d Configure featured layout 2023-10-14 07:30:33 +02:00
mark
d071fa03a6 Update build stats 2023-10-14 07:30:13 +02:00
Mark Dumay
6ff65c37ac Merge pull request #551 from aefly/french-translation
Update French Translation with latest hinode version
2023-10-12 13:41:42 +02:00
aefly
e03396490e Update components.md 2023-10-12 13:16:41 +02:00
Mark Dumay
ad453b6400 Merge branch 'main' into develop 2023-10-12 13:11:03 +02:00
mark
500a572a9c Bump package release 2023-10-12 13:09:49 +02:00
mark
f3bffcb5fb Improve featured section layout 2023-10-12 13:08:33 +02:00
mark
30305ffd1c Fix scroll offset for display headings 2023-10-12 13:07:52 +02:00
mark
62f2e33b64 Fix anchorization of section titles 2023-10-12 13:07:13 +02:00
mark
24d655ec76 Fix typo 2023-10-12 13:06:45 +02:00
mark
7668f795da Support word wrap config of nav 2023-10-12 13:06:31 +02:00
Mark Dumay
96a5853333 Merge branch 'main' into french-translation 2023-10-12 07:05:30 +02:00
github-actions[bot]
6b767410dc Merge pull request #553 from gethinode/dependabot/npm_and_yarn/eslint-plugin-n-16.2.0
Bump eslint-plugin-n from 16.1.0 to 16.2.0
2023-10-11 13:41:24 +00:00
dependabot[bot]
3f8dd1d457 Bump eslint-plugin-n from 16.1.0 to 16.2.0
Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 16.1.0 to 16.2.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/16.1.0...16.2.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-n
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-11 13:35:04 +00:00
aefly
8cb501186a Update components.md 2023-10-11 08:08:12 +02:00
Mark Dumay
bdfe42b22f Merge pull request #550 from gethinode/main
Sync with main
2023-10-10 10:21:37 +02:00
63 changed files with 766 additions and 483 deletions

View File

@@ -14,10 +14,11 @@
@import "common/variables-dark.scss"; @import "common/variables-dark.scss";
// Import Hinode theme styles // Import Hinode theme styles
@import "components/abbr.scss";
@import "components/alert.scss"; @import "components/alert.scss";
@import "components/blockquote.scss"; @import "components/blockquote.scss";
@import "components/breadcrumb.scss"; @import "components/breadcrumb.scss";
@import "components/buttons.scss"; @import "components/button.scss";
@import "components/card.scss"; @import "components/card.scss";
@import "components/carousel.scss"; @import "components/carousel.scss";
@import "components/clipboard.scss"; @import "components/clipboard.scss";

View File

@@ -12,10 +12,11 @@
@import "common/variables-dark.scss"; @import "common/variables-dark.scss";
// Import Hinode theme styles // Import Hinode theme styles
@import "components/abbr.scss";
@import "components/alert.scss"; @import "components/alert.scss";
@import "components/blockquote.scss"; @import "components/blockquote.scss";
@import "components/breadcrumb.scss"; @import "components/breadcrumb.scss";
@import "components/buttons.scss"; @import "components/button.scss";
@import "components/card.scss"; @import "components/card.scss";
@import "components/carousel.scss"; @import "components/carousel.scss";
@import "components/clipboard.scss"; @import "components/clipboard.scss";

View File

@@ -15,6 +15,12 @@ a:active {
min-height: 100vh; min-height: 100vh;
} }
.fullcover {
--navbar-height: #{$navbar-height};
min-height: calc(100vh - var(--navbar-height));
}
.fullscreen { .fullscreen {
--navbar-offset: #{$navbar-offset}; --navbar-offset: #{$navbar-offset};

View File

@@ -18,6 +18,7 @@ strong {
font-weight: 600 if($enable-important-utilities, !important, null); font-weight: 600 if($enable-important-utilities, !important, null);
} }
$navbar-height: h.$navbar-height;
$navbar-offset: h.$navbar-offset; $navbar-offset: h.$navbar-offset;
$primary: h.$primary; $primary: h.$primary;
$secondary: h.$secondary; $secondary: h.$secondary;

View File

@@ -0,0 +1,22 @@
@media (hover: none) {
abbr[title] {
position: relative;
text-decoration: underline dotted;
}
abbr[title]:hover::after,
abbr[title]:focus::after {
content: attr(title);
position: absolute;
left: 0;
bottom: -30px;
width: auto;
white-space: nowrap;
background-color: var(--bs-body-bg);
color: var(--bs-tooltip-color);
border-radius: 3px;
box-shadow: 1px 1px 5px 0 rgba(0,0,0,0.4);
font-size: 14px;
padding: 3px 5px;
}
}

View File

@@ -28,3 +28,16 @@
background-color: transparent; background-color: transparent;
color: var(--bs-primary) if($enable-important-utilities, !important, null); color: var(--bs-primary) if($enable-important-utilities, !important, null);
} }
a.btn {
margin-top: $spacer * .25;
margin-bottom: $spacer * .25;
}
.btn-close {
background-color: transparent if($enable-important-utilities, !important, null);
background-image: var(--#{$prefix}btn-close-bg) if($enable-important-utilities, !important, null);
background-position: center if($enable-important-utilities, !important, null);
background-repeat: no-repeat if($enable-important-utilities, !important, null);
background-size: $btn-close-width if($enable-important-utilities, !important, null);
}

View File

@@ -108,7 +108,7 @@
background-color: $white if($enable-important-utilities, !important, null); background-color: $white if($enable-important-utilities, !important, null);
} }
.emphasis, { .emphasis {
background-color: $black if($enable-important-utilities, !important, null); background-color: $black if($enable-important-utilities, !important, null);
} }

View File

@@ -75,6 +75,10 @@
.toc-button { .toc-button {
--bs-btn-color: var(--bs-body-color); --bs-btn-color: var(--bs-body-color);
--bs-btn-border-color: var(--bs-body-color); --bs-btn-border-color: var(--bs-body-color);
&:hover {
background-color: transparent;
}
} }
#toc-collapse { #toc-collapse {

View File

@@ -30,3 +30,7 @@ h6 {
margin-top: $spacer; margin-top: $spacer;
scroll-margin-top: $navbar-offset; scroll-margin-top: $navbar-offset;
} }
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
scroll-margin-top: $navbar-offset;
}

View File

@@ -6,6 +6,7 @@
modes = ["light", "dark"] modes = ["light", "dark"]
canonifyAssetsURLs = false canonifyAssetsURLs = false
endorse = true endorse = true
footerBelowFold = false
[main.externalLinks] [main.externalLinks]
cue = false cue = false
tab = false tab = false
@@ -19,6 +20,8 @@
optional = ["leaflet", "katex", "lottie"] optional = ["leaflet", "katex", "lottie"]
excludeSCSS = ["bootstrap"] excludeSCSS = ["bootstrap"]
disableTemplate = ["katex"] disableTemplate = ["katex"]
[modules.katex]
state = "defer"
[modules.fontawesome] [modules.fontawesome]
inline = true inline = true
debug = true debug = true
@@ -48,7 +51,8 @@
[home.feature] [home.feature]
orientation = "horizontal" orientation = "horizontal"
color = "primary" color = "primary"
colWidth = 6 width = 4
align = "start"
# toml-docs-end home # toml-docs-end home
# toml-docs-start navigation # toml-docs-start navigation
@@ -56,8 +60,10 @@
anchor = true anchor = true
logo = "/img/logo_icon.svg" logo = "/img/logo_icon.svg"
color = "body" color = "body"
fixed = true
offset = "5.5rem" offset = "5.5rem"
search = true search = true
searchModal = false
breadcrumb = true breadcrumb = true
toc = true toc = true
sidebar = true sidebar = true

View File

@@ -4,6 +4,7 @@
enableDarkMode = true enableDarkMode = true
modes = ["light", "dark"] modes = ["light", "dark"]
canonifyAssetsURLs = false canonifyAssetsURLs = false
footerBelowFold = false
[main.externalLinks] [main.externalLinks]
cue = true cue = true
tab = true tab = true
@@ -36,6 +37,11 @@
fullCover = false fullCover = false
centerHeadline = false centerHeadline = false
style = "" style = ""
[home.feature]
orientation = "horizontal"
color = "primary"
width = 4
align = "start"
[navigation] [navigation]
anchor = true anchor = true
@@ -44,6 +50,7 @@
fixed = true fixed = true
offset = "5.5rem" offset = "5.5rem"
search = true search = true
searchModal = false
breadcrumb = true breadcrumb = true
toc = true toc = true
sidebar = true sidebar = true

View File

@@ -0,0 +1,44 @@
const autoprefixer = require('autoprefixer')({})
const cssnano = require('cssnano')({
preset: 'advanced'
})
const whitelister = require('purgecss-whitelister')
const purgecss = require('@fullhuman/postcss-purgecss')({
content: ['./exampleSite/hugo_stats.json'],
defaultExtractor: (content) => {
const els = JSON.parse(content).htmlElements
return [...(els.tags || []), ...(els.classes || []), ...(els.ids || [])]
},
dynamicAttributes: ['data-bs-theme'],
safelist: [
...whitelister([
'./assets/scss/components/_clipboard.scss',
'./assets/scss/components/_command.scss',
'./assets/scss/components/_navbar.scss',
'./assets/scss/components/_search.scss',
'./assets/scss/components/_syntax.scss',
'./assets/scss/components/_syntax-dark.scss',
'./assets/scss/components/_syntax-light.scss',
'./assets/scss/components/_table.scss',
'./assets/scss/theme/fonts.scss',
'./assets/scss/theme/theme.scss',
'./_vendor/github.com/gethinode/mod-flexsearch/assets/scss/modules/flexsearch/flexsearch.scss',
'./_vendor/github.com/gethinode/mod-katex/dist/katex.scss',
'./_vendor/github.com/gethinode/mod-leaflet/dist/leaflet.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_carousel.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_reboot.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_tooltip.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_transitions.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_utilities.scss'
])
]
})
module.exports = {
plugins: [
autoprefixer,
cssnano,
purgecss
]
}

View File

@@ -294,9 +294,9 @@ As an example, the following shortcodes render links in different formats.
- {{</* link url="projects/another-project" /*/>}} - {{</* link url="projects/another-project" /*/>}}
- {{</* link url="/projects/another-project" /*/>}} - {{</* link url="/projects/another-project" /*/>}}
- {{</* link url="../projects/another-project" case=false /*/>}} - {{</* link url="../projects/another-project" case=false /*/>}}
- {{</* link "/about/" /*/>}} - {{</* link "about" /*/>}}
- {{</* link "/fr/about/" /*/>}} - {{</* link "/fr/a-propos/" /*/>}}
- {{</* link "/fr/about" >}}About (French){{< /link */>}} - {{</* link "/fr/a-propos" >}}About (French){{< /link */>}}
- {{</* link "#image" /*/>}} - {{</* link "#image" /*/>}}
- {{</* link "components/#map" /*/>}} - {{</* link "components/#map" /*/>}}

View File

@@ -31,9 +31,4 @@ Les fonctionnalités supplémentaires incluent:
- Gestion d'images adaptatives pour plusieurs tailles d'écran et résolutions. - Gestion d'images adaptatives pour plusieurs tailles d'écran et résolutions.
- Résultats de recherche optimisés, obtenant un score de 100 points pour le référencement (SEO) sur [PageSpeed Insights]({{< param "links.pagespeed" >}}). - Résultats de recherche optimisés, obtenant un score de 100 points pour le référencement (SEO) sur [PageSpeed Insights]({{< param "links.pagespeed" >}}).
- Sécurisé par défaut, obtenant un score A+ au test [Mozilla Observatory]({{< param "links.observatory" >}}) - Sécurisé par défaut, obtenant un score A+ au test [Mozilla Observatory]({{< param "links.observatory" >}})
{.tickmark} {.tickmark}
Hinode est inspiré par les thèmes suivants:
- [Blist](https://github.com/apvarun/blist-hugo-theme) - Un thème de blog pour Hugo basé sur Tailwind CSS.
- [Doks](https://github.com/h-enk/doks) - Un thème Hugo pour la création de sites de documentation sécurisés, rapides et optimisés pour le référencement (SEO), que vous pouvez facilement mettre à jour et personnaliser.

View File

@@ -295,7 +295,7 @@ Utilisez le shortcode `file` pour afficher et mettre en évidence le contenu com
- {{</* link url="projects/another-project" /*/>}} - {{</* link url="projects/another-project" /*/>}}
- {{</* link url="/projects/another-project" /*/>}} - {{</* link url="/projects/another-project" /*/>}}
- {{</* link url="../projects/another-project" case=false /*/>}} - {{</* link url="../projects/another-project" case=false /*/>}}
- {{</* link "/about/" /*/>}} - {{</* link "about" /*/>}}
- {{</* link "/en/about/" /*/>}} - {{</* link "/en/about/" /*/>}}
- {{</* link "/en/about" >}}About (Anglais){{< /link */>}} - {{</* link "/en/about" >}}About (Anglais){{< /link */>}}
- {{</* link "#image" /*/>}} - {{</* link "#image" /*/>}}
@@ -404,11 +404,11 @@ H{{</* sub 2 */>}}O est un liquide.
<!-- markdownlint-disable MD037 --> <!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}} {{< example lang="hugo" >}}
{{</* button toast="toast-example-1" */>}} {{</* button toast="toast-example-1" */>}}
Affiche la notifiaction #1 Affiche la notification #1
{{</* /button */>}} {{</* /button */>}}
{{</* button toast="toast-example-2" */>}} {{</* button toast="toast-example-2" */>}}
Affiche la notifiaction #1 Affiche la notification #1
{{</* /button */>}} {{</* /button */>}}
{{</* toast id="toast-example-1" header="Premier titre" */>}} {{</* toast id="toast-example-1" header="Premier titre" */>}}

View File

@@ -11,11 +11,21 @@ thumbnail:
authorURL: https://unsplash.com/@ryoji__iwata authorURL: https://unsplash.com/@ryoji__iwata
origin: Unsplash origin: Unsplash
originURL: https://unsplash.com/photos/5siQcvSxCP8 originURL: https://unsplash.com/photos/5siQcvSxCP8
modules: ["katex", "leaflet"] modules: ["katex", "leaflet", "lottie"]
--- ---
Hinode propose plusieurs shortcodes en plus des [éléments Bootstrap]({{< relref "bootstrap-elements" >}}) courants. Consultez la [documentation officielle]({{< param "links.hinode_docs" >}}) pour plus de détails. Hinode propose plusieurs shortcodes en plus des [éléments Bootstrap]({{< relref "bootstrap-elements" >}}) courants. Consultez la [documentation officielle]({{< param "links.hinode_docs" >}}) pour plus de détails.
## Animation
À titre d'exemple, le shortcode suivant affiche une animation qui se déclenche au survol.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* animation data="gatin.json" auto=false hover=true class="col-6 mx-auto" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Formule (KaTeX) ## Formule (KaTeX)
À titre d'exemple, le markdown suivant affiche deux formules en utilisant la bibliothèque de composition typographique KaTeX. À titre d'exemple, le markdown suivant affiche deux formules en utilisant la bibliothèque de composition typographique KaTeX.

View File

@@ -33,8 +33,3 @@ Overige functies:
* Optimale zoekresultaten, met 100 punten voor SEO volgens [PageSpeed Insights]({{< param "links.pagespeed" >}}) * Optimale zoekresultaten, met 100 punten voor SEO volgens [PageSpeed Insights]({{< param "links.pagespeed" >}})
* Veilige communicatie, met een score van A+ volgens [Mozilla Observatory]({{< param "links.observatory" >}}) * Veilige communicatie, met een score van A+ volgens [Mozilla Observatory]({{< param "links.observatory" >}})
{.tickmark} {.tickmark}
Hinode is geinspireerd door de volgende thema's:
* [Blist](https://github.com/apvarun/blist-hugo-theme) - een blog thema voor Hugo op basis van Tailwind CSS.
* [Doks](https://github.com/h-enk/doks) - een Hugo thema voor het bouwen van veilige, snelle, en SEO-geoptimaliseerde documentatiesites, die je eenvoudig kunt actualiseren en aanpassen.

View File

@@ -12,6 +12,8 @@ github.com/gethinode/mod-flexsearch v1.4.0 h1:5e/NVRLyWzUZ9fO/fNsM5o+O7nw+xyln2r
github.com/gethinode/mod-flexsearch v1.4.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4= github.com/gethinode/mod-flexsearch v1.4.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.4.1 h1:z+GKvhJ4v6BsZsWVZRgbO9WcmSZEVUkb3Q9a09yXtd8= github.com/gethinode/mod-flexsearch v1.4.1 h1:z+GKvhJ4v6BsZsWVZRgbO9WcmSZEVUkb3Q9a09yXtd8=
github.com/gethinode/mod-flexsearch v1.4.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4= github.com/gethinode/mod-flexsearch v1.4.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.5.1 h1:9fYlnHgiEXckL0EoC0zlSNO7BWZf5yiOroSWT13Kphc=
github.com/gethinode/mod-flexsearch v1.5.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-fontawesome v1.2.4 h1:SqE3CQ+boaBIhrVh3MPu4nz0uoHPfEH5t60nNY1CfsI= github.com/gethinode/mod-fontawesome v1.2.4 h1:SqE3CQ+boaBIhrVh3MPu4nz0uoHPfEH5t60nNY1CfsI=
github.com/gethinode/mod-fontawesome v1.2.4/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI= github.com/gethinode/mod-fontawesome v1.2.4/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.2.5 h1:RqkLRj6+s+gM4nKd0IwNMMDA8cRmxfp0fxkVH4FdAGU= github.com/gethinode/mod-fontawesome v1.2.5 h1:RqkLRj6+s+gM4nKd0IwNMMDA8cRmxfp0fxkVH4FdAGU=
@@ -31,6 +33,8 @@ github.com/gethinode/mod-katex v1.0.2 h1:pIG4n3qLl/IVe7BEiwn+GL8r5lOCtF6FDxlcrPK
github.com/gethinode/mod-katex v1.0.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg= github.com/gethinode/mod-katex v1.0.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.3 h1:fvlUWqcUQqv2zRNM2kfmJ6GhXA816Tl1nfVrUkmBStI= github.com/gethinode/mod-katex v1.0.3 h1:fvlUWqcUQqv2zRNM2kfmJ6GhXA816Tl1nfVrUkmBStI=
github.com/gethinode/mod-katex v1.0.3/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg= github.com/gethinode/mod-katex v1.0.3/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.4 h1:NozgWPFnHhx1W+E9DnwMTRpvxPbdqdANEtwp9N3/mj8=
github.com/gethinode/mod-katex v1.0.4/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-leaflet v0.3.4 h1:oY+YQ0JiJuhFQNrk9XgFdg0NMsTUQPXNfnILp4ia4r4= github.com/gethinode/mod-leaflet v0.3.4 h1:oY+YQ0JiJuhFQNrk9XgFdg0NMsTUQPXNfnILp4ia4r4=
github.com/gethinode/mod-leaflet v0.3.4/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk= github.com/gethinode/mod-leaflet v0.3.4/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
github.com/gethinode/mod-leaflet v0.3.5 h1:69Bv/6zRXhbcTzo7TMr58h3ry47srHRpM1k81LrLbYU= github.com/gethinode/mod-leaflet v0.3.5 h1:69Bv/6zRXhbcTzo7TMr58h3ry47srHRpM1k81LrLbYU=
@@ -45,3 +49,5 @@ github.com/gethinode/mod-lottie v1.1.0 h1:KnfOQ45xdv1tpsKCkF5OiE3QuT29ycppBfY6o+
github.com/gethinode/mod-lottie v1.1.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs= github.com/gethinode/mod-lottie v1.1.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
github.com/gethinode/mod-lottie v1.2.0 h1:9S0Y4PlEO66dIvFxayatmDEf8WWxqbLNLi4z563i2gM= github.com/gethinode/mod-lottie v1.2.0 h1:9S0Y4PlEO66dIvFxayatmDEf8WWxqbLNLi4z563i2gM=
github.com/gethinode/mod-lottie v1.2.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs= github.com/gethinode/mod-lottie v1.2.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
github.com/gethinode/mod-lottie v1.3.0 h1:vQ8CXkjdp2IeFskTzu+ZnKOEio8GtN08urVK+oCH81E=
github.com/gethinode/mod-lottie v1.3.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=

View File

@@ -54,7 +54,6 @@
"alert", "alert",
"alert-danger", "alert-danger",
"alert-dismissible", "alert-dismissible",
"align-content-center",
"align-items-center", "align-items-center",
"align-items-end", "align-items-end",
"align-items-start", "align-items-start",
@@ -124,7 +123,7 @@
"col-lg-8", "col-lg-8",
"col-md-10", "col-md-10",
"col-md-2", "col-md-2",
"col-md-6", "col-md-4",
"col-md-8", "col-md-8",
"col-md-auto", "col-md-auto",
"col-sm-12", "col-sm-12",
@@ -166,6 +165,10 @@
"fa-2xs", "fa-2xs",
"fa-4x", "fa-4x",
"fa-activity", "fa-activity",
"fa-angle-left",
"fa-angle-right",
"fa-angles-left",
"fa-angles-right",
"fa-arrow-left", "fa-arrow-left",
"fa-arrow-right", "fa-arrow-right",
"fa-bootstrap", "fa-bootstrap",
@@ -199,13 +202,11 @@
"fab", "fab",
"fade", "fade",
"fas", "fas",
"feature",
"figure-caption", "figure-caption",
"fixed-top", "fixed-top",
"flex-column", "flex-column",
"flex-fill", "flex-fill",
"flex-grow-1", "flex-grow-1",
"flex-wrap",
"font-monospace", "font-monospace",
"footer", "footer",
"form-control", "form-control",
@@ -219,7 +220,6 @@
"g-4", "g-4",
"gap-1", "gap-1",
"gap-2", "gap-2",
"gap-3",
"gradient", "gradient",
"h-100", "h-100",
"h1", "h1",
@@ -238,7 +238,6 @@
"justify-content-between", "justify-content-between",
"justify-content-center", "justify-content-center",
"justify-content-end", "justify-content-end",
"justify-content-md-start",
"justify-content-start", "justify-content-start",
"lead", "lead",
"leaflet-map", "leaflet-map",
@@ -288,6 +287,7 @@
"navbar-collapse", "navbar-collapse",
"navbar-contrast", "navbar-contrast",
"navbar-expand-md", "navbar-expand-md",
"navbar-fixed-top",
"navbar-nav", "navbar-nav",
"navbar-nav-scroll", "navbar-nav-scroll",
"navbar-toggler", "navbar-toggler",
@@ -303,6 +303,10 @@
"p-2", "p-2",
"p-3", "p-3",
"p-4", "p-4",
"page-item",
"page-link",
"pagination",
"pagination-terse",
"pb-2", "pb-2",
"pb-3", "pb-3",
"pb-4", "pb-4",
@@ -317,14 +321,15 @@
"ps-1", "ps-1",
"ps-3", "ps-3",
"ps-xl-3", "ps-xl-3",
"pt-3",
"pt-5", "pt-5",
"pt-md-3", "pt-md-3",
"px-3",
"px-4", "px-4",
"px-xxl-0", "px-xxl-0",
"py-1", "py-1",
"py-2", "py-2",
"py-3", "py-3",
"py-5",
"py-md-1", "py-md-1",
"ratio", "ratio",
"ratio-16x9", "ratio-16x9",
@@ -371,12 +376,12 @@
"text-decoration-none", "text-decoration-none",
"text-end", "text-end",
"text-info", "text-info",
"text-md-start",
"text-muted", "text-muted",
"text-nowrap", "text-nowrap",
"text-right", "text-right",
"text-secondary", "text-secondary",
"text-sm-start", "text-sm-start",
"text-start",
"text-uppercase", "text-uppercase",
"theme-icon", "theme-icon",
"theme-icon-active", "theme-icon-active",

8
go.mod
View File

@@ -3,10 +3,10 @@ module github.com/gethinode/hinode
go 1.19 go 1.19
require ( require (
github.com/gethinode/mod-bootstrap v1.2.1 // indirect github.com/gethinode/mod-bootstrap v1.2.2 // indirect
github.com/gethinode/mod-flexsearch v1.4.1 // indirect github.com/gethinode/mod-flexsearch v1.5.1 // indirect
github.com/gethinode/mod-fontawesome v1.5.0 // indirect github.com/gethinode/mod-fontawesome v1.5.0 // indirect
github.com/gethinode/mod-katex v1.0.3 // indirect github.com/gethinode/mod-katex v1.0.4 // indirect
github.com/gethinode/mod-leaflet v0.3.5 // indirect github.com/gethinode/mod-leaflet v0.3.5 // indirect
github.com/gethinode/mod-lottie v1.2.0 // indirect github.com/gethinode/mod-lottie v1.3.0 // indirect
) )

8
go.sum
View File

@@ -8,6 +8,8 @@ github.com/gethinode/mod-bootstrap v1.2.0 h1:JkTcImU3qpi25WgKvUxUYiMoiXtrxrG+Wf/
github.com/gethinode/mod-bootstrap v1.2.0/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8= github.com/gethinode/mod-bootstrap v1.2.0/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
github.com/gethinode/mod-bootstrap v1.2.1 h1:z54dgsbhShhlri+X77Z+yLrg0wz/f8C8ojA/wnlhsJc= github.com/gethinode/mod-bootstrap v1.2.1 h1:z54dgsbhShhlri+X77Z+yLrg0wz/f8C8ojA/wnlhsJc=
github.com/gethinode/mod-bootstrap v1.2.1/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8= github.com/gethinode/mod-bootstrap v1.2.1/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
github.com/gethinode/mod-bootstrap v1.2.2 h1:Q8E04OKWr9owk7nhQ/NBukUgSFhsECxZsOLEaf5oeiQ=
github.com/gethinode/mod-bootstrap v1.2.2/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
github.com/gethinode/mod-flexsearch v1.0.1 h1:FJkRsUzSnQTXl3MWCigT4E6vfff870UWTnkGqaDGIhA= github.com/gethinode/mod-flexsearch v1.0.1 h1:FJkRsUzSnQTXl3MWCigT4E6vfff870UWTnkGqaDGIhA=
github.com/gethinode/mod-flexsearch v1.0.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4= github.com/gethinode/mod-flexsearch v1.0.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.1.0 h1:7BCMyQDlYlskNXuazt8Jg/jg9WREexu2xVkYqThkAX4= github.com/gethinode/mod-flexsearch v1.1.0 h1:7BCMyQDlYlskNXuazt8Jg/jg9WREexu2xVkYqThkAX4=
@@ -28,6 +30,8 @@ github.com/gethinode/mod-flexsearch v1.4.0 h1:5e/NVRLyWzUZ9fO/fNsM5o+O7nw+xyln2r
github.com/gethinode/mod-flexsearch v1.4.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4= github.com/gethinode/mod-flexsearch v1.4.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.4.1 h1:z+GKvhJ4v6BsZsWVZRgbO9WcmSZEVUkb3Q9a09yXtd8= github.com/gethinode/mod-flexsearch v1.4.1 h1:z+GKvhJ4v6BsZsWVZRgbO9WcmSZEVUkb3Q9a09yXtd8=
github.com/gethinode/mod-flexsearch v1.4.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4= github.com/gethinode/mod-flexsearch v1.4.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.5.1 h1:9fYlnHgiEXckL0EoC0zlSNO7BWZf5yiOroSWT13Kphc=
github.com/gethinode/mod-flexsearch v1.5.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-fontawesome v1.0.2 h1:ZSK6D20/w4y5GnfYfTBB58uHD0ChIfkpKfRGwioS9rg= github.com/gethinode/mod-fontawesome v1.0.2 h1:ZSK6D20/w4y5GnfYfTBB58uHD0ChIfkpKfRGwioS9rg=
github.com/gethinode/mod-fontawesome v1.0.2/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI= github.com/gethinode/mod-fontawesome v1.0.2/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.1.0 h1:rsDzUI+3ZlS/do2ff3ne8/z3KwHeysmuA+WsXlumXXk= github.com/gethinode/mod-fontawesome v1.1.0 h1:rsDzUI+3ZlS/do2ff3ne8/z3KwHeysmuA+WsXlumXXk=
@@ -62,6 +66,8 @@ github.com/gethinode/mod-katex v1.0.2 h1:pIG4n3qLl/IVe7BEiwn+GL8r5lOCtF6FDxlcrPK
github.com/gethinode/mod-katex v1.0.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg= github.com/gethinode/mod-katex v1.0.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.3 h1:fvlUWqcUQqv2zRNM2kfmJ6GhXA816Tl1nfVrUkmBStI= github.com/gethinode/mod-katex v1.0.3 h1:fvlUWqcUQqv2zRNM2kfmJ6GhXA816Tl1nfVrUkmBStI=
github.com/gethinode/mod-katex v1.0.3/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg= github.com/gethinode/mod-katex v1.0.3/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.4 h1:NozgWPFnHhx1W+E9DnwMTRpvxPbdqdANEtwp9N3/mj8=
github.com/gethinode/mod-katex v1.0.4/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-leaflet v0.2.3 h1:QQI4h+IH0jZ7fx4q0um2YIEiYBoW3OAfW8qHzbRCDPk= github.com/gethinode/mod-leaflet v0.2.3 h1:QQI4h+IH0jZ7fx4q0um2YIEiYBoW3OAfW8qHzbRCDPk=
github.com/gethinode/mod-leaflet v0.2.3/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk= github.com/gethinode/mod-leaflet v0.2.3/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
github.com/gethinode/mod-leaflet v0.3.1 h1:H5MaOa+BB1KuVw7abTqfIn/SNzzRsAyx/WQoSe+2Ykc= github.com/gethinode/mod-leaflet v0.3.1 h1:H5MaOa+BB1KuVw7abTqfIn/SNzzRsAyx/WQoSe+2Ykc=
@@ -82,3 +88,5 @@ github.com/gethinode/mod-lottie v1.1.0 h1:KnfOQ45xdv1tpsKCkF5OiE3QuT29ycppBfY6o+
github.com/gethinode/mod-lottie v1.1.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs= github.com/gethinode/mod-lottie v1.1.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
github.com/gethinode/mod-lottie v1.2.0 h1:9S0Y4PlEO66dIvFxayatmDEf8WWxqbLNLi4z563i2gM= github.com/gethinode/mod-lottie v1.2.0 h1:9S0Y4PlEO66dIvFxayatmDEf8WWxqbLNLi4z563i2gM=
github.com/gethinode/mod-lottie v1.2.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs= github.com/gethinode/mod-lottie v1.2.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
github.com/gethinode/mod-lottie v1.3.0 h1:vQ8CXkjdp2IeFskTzu+ZnKOEio8GtN08urVK+oCH81E=
github.com/gethinode/mod-lottie v1.3.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=

View File

@@ -8,7 +8,6 @@
"footer", "footer",
"form", "form",
"head", "head",
"hr",
"html", "html",
"img", "img",
"input", "input",
@@ -28,9 +27,7 @@
], ],
"classes": [ "classes": [
"active", "active",
"align-content-center",
"align-items-center", "align-items-center",
"align-items-end",
"align-self-center", "align-self-center",
"bg-body", "bg-body",
"bg-opacity-10", "bg-opacity-10",
@@ -43,11 +40,9 @@
"col", "col",
"col-12", "col-12",
"col-6", "col-6",
"col-8",
"col-md-2", "col-md-2",
"col-md-6", "col-md-4",
"col-md-8", "col-md-8",
"col-md-auto",
"col-sm-12", "col-sm-12",
"collapse", "collapse",
"collapsed", "collapsed",
@@ -56,13 +51,11 @@
"d-flex", "d-flex",
"d-inline", "d-inline",
"d-md-block", "d-md-block",
"d-md-flex",
"d-md-none", "d-md-none",
"d-none", "d-none",
"display-1", "display-1",
"display-4", "display-4",
"dropdown", "dropdown",
"dropdown-divider-bg",
"dropdown-item", "dropdown-item",
"dropdown-menu", "dropdown-menu",
"dropdown-menu-end", "dropdown-menu-end",
@@ -84,19 +77,16 @@
"fa-sun", "fa-sun",
"fab", "fab",
"fas", "fas",
"feature", "fixed-top",
"flex-column", "flex-column",
"flex-fill", "flex-fill",
"flex-grow-1", "flex-grow-1",
"flex-wrap",
"footer", "footer",
"form-control", "form-control",
"fs-3", "fs-3",
"fs-5", "fs-5",
"fw-30", "fw-30",
"fw-bold", "fw-bold",
"gap-3",
"h-100",
"hstack", "hstack",
"img-fluid", "img-fluid",
"img-wrap", "img-wrap",
@@ -104,7 +94,6 @@
"is-search", "is-search",
"justify-content-center", "justify-content-center",
"justify-content-end", "justify-content-end",
"justify-content-md-start",
"justify-content-start", "justify-content-start",
"link-bg-footer", "link-bg-footer",
"link-secondary", "link-secondary",
@@ -119,7 +108,6 @@
"mt-5", "mt-5",
"mx-auto", "mx-auto",
"mx-md-0", "mx-md-0",
"mx-md-2",
"my-auto", "my-auto",
"my-md-auto", "my-md-auto",
"nav-item", "nav-item",
@@ -128,6 +116,7 @@
"navbar-brand", "navbar-brand",
"navbar-collapse", "navbar-collapse",
"navbar-expand-md", "navbar-expand-md",
"navbar-fixed-top",
"navbar-nav", "navbar-nav",
"navbar-toggler", "navbar-toggler",
"no-js", "no-js",
@@ -140,19 +129,16 @@
"p-3", "p-3",
"p-4", "p-4",
"pb-4", "pb-4",
"pb-5",
"pb-md-0", "pb-md-0",
"position-fixed", "position-fixed",
"position-relative", "position-relative",
"ps-1", "ps-1",
"pt-4",
"pt-5", "pt-5",
"pt-md-3", "pt-md-3",
"px-3",
"px-4", "px-4",
"px-xxl-0", "px-xxl-0",
"py-2",
"py-3", "py-3",
"py-md-1",
"rounded", "rounded",
"row", "row",
"row-cols-1", "row-cols-1",
@@ -168,10 +154,10 @@
"switch-mode-collapsed", "switch-mode-collapsed",
"text-center", "text-center",
"text-decoration-none", "text-decoration-none",
"text-md-start",
"text-muted", "text-muted",
"text-secondary", "text-secondary",
"text-sm-start", "text-sm-start",
"text-start",
"theme-icon", "theme-icon",
"theme-icon-active", "theme-icon-active",
"toast", "toast",
@@ -179,9 +165,7 @@
"toast-container", "toast-container",
"toast-header", "toast-header",
"toggler-icon", "toggler-icon",
"top-bar", "top-bar"
"vr",
"w-100"
], ],
"ids": [ "ids": [
"-theme", "-theme",

View File

@@ -65,6 +65,8 @@
translation: "Startseite" translation: "Startseite"
- id: languageSwitcherLabel - id: languageSwitcherLabel
translation: "Sprache" translation: "Sprache"
- id: close
translation: "Schließen"
# Table of contents # Table of contents
- id: toc - id: toc

View File

@@ -71,6 +71,8 @@
translation: "Home" translation: "Home"
- id: languageSwitcherLabel - id: languageSwitcherLabel
translation: "Language" translation: "Language"
- id: close
translation: "Close"
# Table of contents # Table of contents
- id: toc - id: toc

View File

@@ -67,6 +67,8 @@
translation: "Accueil" translation: "Accueil"
- id: languageSwitcherLabel - id: languageSwitcherLabel
translation: "Langage" translation: "Langage"
- id: close
translation: "Fermer"
# Table of contents # Table of contents
- id: toc - id: toc

View File

@@ -69,6 +69,8 @@
translation: "Home" translation: "Home"
- id: languageSwitcherLabel - id: languageSwitcherLabel
translation: "Taal" translation: "Taal"
- id: close
translation: "Sluiten"
# Table of contents # Table of contents
- id: toc - id: toc

View File

@@ -1,13 +1,15 @@
{{ define "main"}} {{ define "main"}}
<div class="container-xxl flex-fill d-flex align-content-center flex-wrap feature"> <div class="d-flex flex-fill">
<div class="w-100 text-center"> <div class="container-xxl my-auto">
<span class="text-secondary fw-bold"> <div class="text-center">
{{ partial "assets/icon.html" (dict "icon" "fa face-frown fa-10x") }} <span class="text-secondary fw-bold">
<p class="display-1 mt-3 fw-bold">404</p> {{ partial "assets/icon.html" (dict "icon" "fa face-frown fa-10x") }}
<p class="fs-3">{{ T "pageNotFoundTitle" }}</p> <p class="display-1 mt-3 fw-bold">404</p>
</span> <p class="fs-3">{{ T "pageNotFoundTitle" }}</p>
{{- $home := printf "<a href=\"%s\">%s</a>" ("/" | relLangURL) (T "pageNotFoundHome") -}} </span>
<p>{{ T "pageNotFound" $home | safeHTML }}</p> {{- $home := printf "<a href=\"%s\">%s</a>" ("/" | relLangURL) (T "pageNotFoundHome") -}}
<p>{{ T "pageNotFound" $home | safeHTML }}</p>
</div>
</div> </div>
</div> </div>
{{ end }} {{ end }}

View File

@@ -10,7 +10,12 @@
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
{{- partial "footer/scripts.html" (dict "filename" $filename "match" $match "header" false "skipTemplate" $skipTemplate "page" .) }} {{ $state := "" }}
{{- with (index site.Params.modules $mod) -}}
{{- with index . "state" }}{{ $state = . }}{{ end -}}
{{- end -}}
{{- partial "footer/scripts.html" (dict "filename" $filename "match" $match "header" false "skipTemplate" $skipTemplate "state" $state "page" .) }}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
@@ -34,7 +39,11 @@
{{- errorf "Bootstrap is a required module, please add it to 'modules.core' in your site parameters" -}} {{- errorf "Bootstrap is a required module, please add it to 'modules.core' in your site parameters" -}}
{{- end -}} {{- end -}}
{{- $section := .Section }} {{- /* Define section headings */ -}}
{{ $sections := partial "utilities/GetSections.html" . }}
{{- $.Scratch.Set "sections" $sections -}}
{{- $fullCover := or (or (and .IsHome .Site.Params.home.fullCover) .Page.Params.fullCover) .Site.Params.main.footerBelowFold }}
<!doctype html> <!doctype html>
<html lang="{{ .Site.Language.Lang }}" class="no-js"> <html lang="{{ .Site.Language.Lang }}" class="no-js">
@@ -44,22 +53,34 @@
<body> <body>
{{- partial "footer/scripts.html" (dict "filename" "js/critical.bundle.js" "match" "js/critical/**.js" "header" true "page" .) -}} {{- partial "footer/scripts.html" (dict "filename" "js/critical.bundle.js" "match" "js/critical/**.js" "header" true "page" .) -}}
<div class="d-flex flex-column min-vh-100{{ if .IsHome }}{{ with .Site.Params.home.style }} {{ . }}{{ end }}{{ end }}"> <div class="d-flex flex-column min-vh-100">
{{- partial "assets/navbar.html" (dict <div class="d-flex flex-column {{ if $fullCover }} fullscreen{{ end }}{{ if .IsHome }} {{ .Site.Params.home.style }}{{ end }}">
"page" . {{- partial "assets/navbar.html" (dict
"fixed" (string site.Params.navigation.fixed) "page" .
"color" site.Params.navigation.color "fixed" (string site.Params.navigation.fixed)
"style" (default "light" site.Params.navigation.style) "color" site.Params.navigation.color
"size" (default "md" site.Params.navigation.size)) "style" (default "light" site.Params.navigation.style)
-}} "size" (default "md" site.Params.navigation.size))
-}}
<div class="flex-fill main-content{{ if .Site.Params.main.footerBelowFold }} fullscreen{{ end }} pb-4"> <div class="main-content">
{{ block "main" . }}{{ end -}} {{ block "featured" . }}{{ end -}}
</div>
{{ if .Site.Params.main.footerBelowFold }}
{{ block "main" . }}{{ end -}}
{{ end }}
</div> </div>
{{ if not .Site.Params.main.footerBelowFold }}
{{ block "main" . }}{{ end -}}
{{- partial "footer/social.html" . -}}
{{- partial "footer/footer.html" . -}}
{{ end }}
</div>
{{ if .Site.Params.main.footerBelowFold }}
{{- partial "footer/social.html" . -}} {{- partial "footer/social.html" . -}}
{{- partial "footer/footer.html" . -}} {{- partial "footer/footer.html" . -}}
</div> {{ end }}
{{- partial "footer/toast-container.html" . -}} {{- partial "footer/toast-container.html" . -}}
{{- partialCached "footer/scripts.html" (dict "header" false "page" . "core" true) }} {{- partialCached "footer/scripts.html" (dict "header" false "page" . "core" true) }}

View File

@@ -1,81 +1,48 @@
{{- define "main" -}} {{- define "featured" }}
{{- $page := . -}} {{- $sections := $.Scratch.Get "sections" -}}
{{- $orientation := "horizontal" -}} {{- $headings := slice }}
{{- $sections := slice -}} {{ if .Params.sectionMenu }}
{{- $actions := $page.Params.actions -}} {{ range $sections }}
{{- $headings := slice -}} {{ $headings = $headings | append .title }}
{{- $layout := $page.Params.layout -}}
{{ if $page.IsHome }}
{{- $orientation = site.Params.home.feature.orientation | default "horizontal" -}}
{{- $actions = (or $actions site.Params.featured.actions) -}}
{{- $sections = site.Params.home.sections -}}
{{- if not $sections -}}
{{ range $section := site.Sections }}
{{ $sections = $sections | append $section.Type }}
{{ end }}
{{- end -}}
{{ else }}
{{ $headings = $headings | append $page.Title }}
{{- range .Fragments.Headings }}
{{- range .Headings }}
{{- $headings = $headings | append .Title -}}
{{- end -}}
{{- end -}}
{{ $sections = $sections | append $page.Type }}
{{ with $page.Params.sections }}
{{ $sections = $sections | append . }}
{{ end }} {{ end }}
{{ end }} {{ end }}
{{/* Generate section content first to determine headings */}} {{- $page := . -}}
{{ $body := "" }} {{- $orientation := site.Params.list.feature.orientation | default "horizontal" -}}
{{- range $index, $section := $sections -}} {{- $width := site.Params.list.feature.width | default 6 -}}
{{- $sectionPage := site.GetPage "section" $section -}} {{- $justify := site.Params.list.feature.justify | default "center" -}}
{{- $sectionURL := $sectionPage.RelPermalink -}} {{- $align := site.Params.list.feature.align | default "center" -}}
{{- $title := or $sectionPage.Title $sectionPage.Type -}} {{- $actions := $page.Params.actions -}}
{{- $layout := $page.Params.layout -}}
{{- with (index site.Params.sections $section) -}} {{ if $page.IsHome }}
{{- with index . "title" }}{{ $title = or . $title }}{{ end -}} {{- $orientation = or site.Params.home.feature.orientation $orientation -}}
{{- end -}} {{- $width = or site.Params.home.feature.width $width -}}
{{- $justify = or site.Params.home.feature.justify $justify -}}
{{- $thumbnail := (or (and (reflect.IsMap $sectionPage.Params.Thumbnail) $sectionPage.Params.Thumbnail.url) $sectionPage.Params.Thumbnail) -}} {{- $align = or site.Params.home.feature.align $align -}}
{{- $icon := $sectionPage.Params.Icon -}} {{- $actions = (or $actions site.Params.featured.actions) -}}
{{- $content := $sectionPage.Content -}} {{ end }}
{{- $sectionTitle := strings.FirstUpper $sectionPage.Type -}}
{{- $moreTitle := "" -}}
{{- with (index site.Params.sections $section) -}}
{{- with index . "reference" }}{{ $moreTitle = . }}{{ end -}}
{{- end -}}
{{- $moreTitle = or $moreTitle (printf (T "more" (pluralize $sectionTitle))) -}}
{{- $sectionContent := trim (partial "assets/section-list.html" (dict
"page" $page
"section" $section
"home" $page.IsHome
"simple" (eq $section $page.Section)
"nested" $page.IsHome
"thumbnail" $thumbnail
"icon" $icon
"content" $content
"moreTitle" $moreTitle
"sectionURL" $sectionURL)) " \r\n"
-}}
{{ if $sectionContent }}
{{- if not $page.IsHome }}{{ $headings = $headings | append $title }}{{ end -}}
{{- $body = printf "%s%s" $body $sectionContent }}
{{ end }}
{{- end -}}
{{/* Display featured section */}} {{/* Display featured section */}}
{{- if or (eq $layout "featured") $page.IsHome -}} {{- if or (eq $layout "featured") $page.IsHome -}}
{{- partial "list/featured.html" (dict "page" . "headings" $headings "actions" $actions "orientation" $orientation) -}} {{- partial "list/featured.html" (dict
"page" .
"headings" $headings
"actions" $actions
"orientation" $orientation
"width" $width
"justify" $justify
"align" $align)
-}}
{{- end -}} {{- end -}}
{{ end }}
{{/* Display main content */}} {{- define "main" -}}
<div class="container-xxl px-4 px-xxl-0"> {{- $page := . -}}
{{- $sections := $.Scratch.Get "sections" -}}
{{- $layout := $page.Params.layout -}}
<div class="container-xxl flex-fill px-4 px-xxl-0">
{{- if ne $layout "featured" -}} {{- if ne $layout "featured" -}}
{{ if and (not $page.IsHome) site.Params.navigation.breadcrumb }} {{ if and (not $page.IsHome) site.Params.navigation.breadcrumb }}
<div>{{ partial "assets/breadcrumb.html" $page }}</div> <div>{{ partial "assets/breadcrumb.html" $page }}</div>
@@ -84,15 +51,15 @@
<div class="row row-cols-1 row-cols-sm-2"> <div class="row row-cols-1 row-cols-sm-2">
<div class="col col-sm-12 col-md-8"> <div class="col col-sm-12 col-md-8">
{{ if and (ne $layout "featured") (not $page.IsHome) }} {{ if not $page.IsHome }}
{{ with $page.Title }}<p id="{{ anchorize . }}" class="display-4 mt-3{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }} {{ with $page.Title }}<p id="{{ anchorize . }}" class="display-4 mt-5{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
{{ end }} {{ end }}
{{ if ($page.Params.menu) }} {{ if ($page.Params.menu) }}
{{- partial "assets/section-menu.html" $page -}} {{- partial "assets/section-menu.html" $page -}}
{{- end -}} {{- end -}}
{{- $content := partial "utilities/ProcessContent" (dict "page" $page "raw" $page.RawContent) -}} {{- $content := partial "utilities/ProcessContent" (dict "page" $page "raw" $page.RawContent) -}}
{{ $content | safeHTML }} {{ $content | safeHTML }}
{{ if and (and (and $sections (eq (len $sections) 1)) (not $body)) (not $content) }} {{ if and (and $sections (eq (len $sections) 1)) (not $content) }}
<p class="pt-4">{{- T "emptyList" }}.</p> <p class="pt-4">{{- T "emptyList" }}.</p>
{{ end }} {{ end }}
</div> </div>
@@ -115,5 +82,7 @@
</div> </div>
{{/* Display generated sections */}} {{/* Display generated sections */}}
{{ $body | safeHTML }} {{ range $sections }}
{{ .content | safeHTML }}
{{ end }}
{{- end -}} {{- end -}}

View File

@@ -1,118 +1,15 @@
{{- define "partials/header.html" -}} {{- define "partials/single-main.html" -}}
{{ 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 }}
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
{{ partial "assets/sharing.html" . }}
<p class="lead mb-5">{{ .Description }}</p>
{{ else }}
{{ $lastmodstr := (partial "utilities/date.html" (dict "date" .Lastmod "format" "long")) -}}
{{ $datestr := (partial "utilities/date.html" (dict "date" .Date "format" "long")) -}}
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
<small class="text-body-secondary text-uppercase">
{{ $datestr | i18n "postedOnDate" -}}
{{ if ne $datestr $lastmodstr -}}&nbsp;({{ $lastmodstr | i18n "lastModified" }}){{ end }} &bull;
{{ .ReadingTime | lang.FormatNumber 0 }}&nbsp;{{ i18n "minutesShort" }} {{ i18n "read" }} &bull;
{{ .WordCount | lang.FormatNumber 0 }}&nbsp;{{ i18n "words" }}
</small>
{{- if gt (len (.GetTerms "tags")) 0 -}} {{ .Render "single/header" }}
<div class="mt-3">
<div class="d-none-dark">
<div class="hstack gap-1">
{{ range (.GetTerms "tags") -}}
{{- $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" "primary" "size" "sm" "outline" "true") }}
{{ end -}}
</div>
</div>
</div>
{{- end -}}
{{ partial "assets/sharing.html" . }}
<p class="lead mb-5 mt-3">{{ .Description }}</p>
{{ end }}
{{ end -}}
{{ define "partials/body.html" -}}
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}} {{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}}
<div class="d-md-none pb-5">{{ partial "assets/toc-dropdown.html" . }}</div> <div class="d-md-none pb-5">{{ partial "assets/toc-dropdown.html" . }}</div>
{{- end -}} {{- end -}}
{{ .Render "single/body" }}
{{ if not (in (slice "docs" "minimal") .Layout) }}
{{- $thumbnail := "" -}}
{{- $credits := "" -}}
{{- if reflect.IsMap .Params.Thumbnail -}}
{{- $thumbnail = .Params.Thumbnail.url -}}
{{- $author := "" -}}
{{- if and .Params.Thumbnail.authorURL "text" .Params.Thumbnail.author }}
{{- $author = partial "utilities/link" (dict "destination" .Params.Thumbnail.authorURL "text" .Params.Thumbnail.author) -}}
{{- else if .Params.Thumbnail.author }}
{{- $author = .Params.Thumbnail.author -}}
{{- end -}}
{{- $origin := "" -}}
{{- if and .Params.Thumbnail.originURL "text" .Params.Thumbnail.origin }}
{{- $origin = partial "utilities/link" (dict "destination" .Params.Thumbnail.originURL "text" .Params.Thumbnail.origin) -}}
{{- else if .Params.Thumbnail.origin }}
{{- $origin = .Params.Thumbnail.origin -}}
{{- end }}
{{- if and $author $origin }}
{{ $credits = printf (T "photoFull") $author $origin }}
{{ else if $author }}
{{ $credits = T "photoShort" $author }}
{{ end }}
{{ else }}
{{- $thumbnail = .Params.Thumbnail -}}
{{ if or .Params.photoCredits .Params.photoSource }}
{{ warnf "DEPRECATED: frontmatter variables `photoCredits` and `photoSource` have been deprecated in release v0.18: %s" .RelPermalink }}
{{ end }}
{{- if and .Params.photoCredits .Params.PhotoSource }}{{ $credits = printf (T "photoFull") .Params.photoCredits .Params.PhotoSource }}{{ end -}}
{{- end -}}
{{ if $thumbnail -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "21x9" "outerClass" "img-wrap" "innerClass" "rounded" "title" .Params.title "caption" $credits) -}}
{{ end -}}
{{ end }}
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }} {{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}
{{ end -}}
{{ define "partials/footer.html" -}} {{ .Render "single/footer" }}
{{ if eq .Layout "docs" }}
<div class="mt-5 small">
{{ partial "utilities/git.html" . }}
</div>
{{ else if ne .Layout "minimal" }}
<div class="row row-cols-2 mt-5 mb-3">
<div class="col">
{{ with .NextInSection -}}
{{ $next := . -}}
{{ with .OutputFormats.Get "html" -}}
<a class="next" href="{{ $next.RelPermalink }}">
{{- partial "assets/icon.html" (dict "icon" "fas arrow-left") }}&nbsp;{{ $next.LinkTitle }}</a>
{{- end -}}
{{ end -}}
</div>
<div class="col text-end">
{{ with .PrevInSection -}}
{{ $prev := . -}}
{{ with .OutputFormats.Get "html" -}}
<a class="previous" href="{{ $prev.RelPermalink }}">{{ $prev.LinkTitle }}&nbsp;{{- partial "assets/icon.html" (dict "icon" "fas arrow-right") }}</a>
{{- end -}}
{{ end -}}
</div>
</div>
{{ end }}
{{- if and .Site.Params.comments.enabled .Params.showComments | default true -}} {{- if and .Site.Params.comments.enabled .Params.showComments | default true -}}
<hr> <hr>
{{ partial "assets/comments.html" . }} {{ partial "assets/comments.html" . }}
@@ -127,65 +24,59 @@
{{- $menu := .Scratch.Get "sidebar" -}} {{- $menu := .Scratch.Get "sidebar" -}}
{{- $version := .Scratch.Get "version" -}} {{- $version := .Scratch.Get "version" -}}
{{- $sidebar := .Site.Params.navigation.sidebar | default true -}}
{{ if and $menu $sidebar -}} {{ $sidebar := "" }}
{{- $hasSidebar := .Site.Params.navigation.sidebar | default true -}}
{{ if and $menu $hasSidebar }}{{ $sidebar = partial "assets/sidebar.html" (dict "page" . "menu" $menu "version" $version) }}{{ end }}
{{ $toc := "" }}
{{- $hasTOC := and .Site.Params.navigation.toc .Params.includeToc | default true -}}
{{ if $hasTOC }}{{ $toc = partial "assets/toc.html" (dict "page" . "download" $download) }}{{ end -}}
{{ with $sidebar -}}
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvass-sidebar" aria-inledby="offcanvas-label"> <div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvass-sidebar" aria-inledby="offcanvas-label">
<div class="offcanvas-header"> <div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvas-label">{{ strings.FirstUpper .Section }}</h5> <h5 class="offcanvas-title" id="offcanvas-label">{{ strings.FirstUpper $.Section }}</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="{{ T "close" }}"></button>
</div> </div>
<div class="offcanvas-body"> <div class="offcanvas-body">
{{ partial "assets/sidebar" (dict "page" . "menu" $menu "version" $version) }} {{ . | safeHTML }}
</div> </div>
</div> </div>
{{ end }}
<div class="container-xxl p-4 px-xxl-0">
<div class="container-xxl flex-fill p-4 px-xxl-0">
{{ if and $menu $hasSidebar -}}
<div class="row row-cols-md-2 row-cols-lg-3"> <div class="row row-cols-md-2 row-cols-lg-3">
<div class="col col-md-3 col-lg-2 d-none pt-5 d-md-block sidebar-overflow sticky-top"> <div class="col col-md-3 col-lg-2 d-none pt-5 d-md-block sidebar-overflow sticky-top">
{{ partial "assets/sidebar" (dict "page" . "menu" $menu "version" $version) }} {{ $sidebar | safeHTML }}
</div> </div>
<div class="col col-md-9 col-lg-8 mb-5 p-4"> <div class="col col-md-9 col-lg-8 mb-5 p-4">
{{ partial "partials/header.html" . }} {{ partial "partials/single-main.html" . }}
{{ partial "partials/body.html" . }}
{{ partial "partials/footer.html" . }}
</div> </div>
<div class="col col-lg-2 d-none d-lg-block pt-5"> <div class="col col-lg-2 d-none d-lg-block pt-5">
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}} {{ $toc | safeHTML }}
{{ partial "assets/toc.html" (dict "page" . "download" $download) -}}
{{ end -}}
</div> </div>
</div> </div>
</div> {{ else if $hasSidebar }}
{{ else if $sidebar }}
<div class="container-xxl px-3 px-xxl-0">
<div class="row row-cols-1 row-cols-sm-3"> <div class="row row-cols-1 row-cols-sm-3">
<div class="col col-md-2 d-none d-md-block"></div> <div class="col col-md-2 d-none d-md-block"></div>
<div class="col col-sm-12 col-md-8"> <div class="col col-sm-12 col-md-8">
{{ partial "partials/header.html" . }} {{ partial "partials/single-main.html" . }}
{{ partial "partials/body.html" . }}
{{ partial "partials/footer.html" . }}
</div> </div>
<div class="col col-md-2 d-none d-md-block"> <div class="col col-md-2 d-none d-md-block">
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}} {{ $toc | safeHTML }}
{{ partial "assets/toc.html" (dict "page" . "download" $download) -}}
{{ end -}}
</div> </div>
</div> </div>
</div> {{ else }}
{{ else }}
<div class="container-xxl px-3 px-xxl-0">
<div class="row row-cols-1 row-cols-sm-2"> <div class="row row-cols-1 row-cols-sm-2">
<div class="col col-sm-12 col-md-9"> <div class="col col-sm-12 col-md-9">
{{ partial "partials/header.html" . }} {{ partial "partials/single-main.html" . }}
{{ partial "partials/body.html" . }}
{{ partial "partials/footer.html" . }}
</div> </div>
<div class="col col-md-3 d-none d-md-block"> <div class="col col-md-3 d-none d-md-block">
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}} {{ $toc | safeHTML }}
{{ partial "assets/toc.html" (dict "page" . "download" $download) -}}
{{ end -}}
</div> </div>
</div> </div>
</div> {{ end -}}
{{ end -}} </div>
{{ end -}} {{ end -}}

View File

@@ -0,0 +1 @@
{{- partial "single/thumbnail.html" . -}}

View File

@@ -0,0 +1,20 @@
<div class="row row-cols-2 mt-5 mb-3">
<div class="col">
{{ with .NextInSection -}}
{{ if .OutputFormats.Get "html" -}}
<a class="next" href="{{ .RelPermalink }}">
{{- partial "assets/icon.html" (dict "icon" "fas arrow-left" "spacing" false) }}&nbsp;{{ .LinkTitle }}
</a>
{{- end -}}
{{ end -}}
</div>
<div class="col text-end">
{{ with .PrevInSection -}}
{{ if .OutputFormats.Get "html" -}}
<a class="previous" href="{{ .RelPermalink }}">
{{ .LinkTitle }}&nbsp;{{- partial "assets/icon.html" (dict "icon" "fas arrow-right" "spacing" false) }}
</a>
{{- end -}}
{{ end -}}
</div>
</div>

View File

@@ -0,0 +1,33 @@
{{ $lastmodstr := (partial "utilities/date.html" (dict "date" .Lastmod "format" "long")) -}}
{{ $datestr := (partial "utilities/date.html" (dict "date" .Date "format" "long")) -}}
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
<small class="text-body-secondary text-uppercase">
{{ $datestr | i18n "postedOnDate" -}}
{{ if ne $datestr $lastmodstr -}}&nbsp;({{ $lastmodstr | i18n "lastModified" }}){{ end }} &bull;
{{ .ReadingTime | lang.FormatNumber 0 }}&nbsp;{{ i18n "minutesShort" }} {{ i18n "read" }} &bull;
{{ .WordCount | lang.FormatNumber 0 }}&nbsp;{{ i18n "words" }}
</small>
{{- if gt (len (.GetTerms "tags")) 0 -}}
<div class="mt-3">
<div class="d-none-dark">
<div class="hstack gap-1">
{{ range (.GetTerms "tags") -}}
{{- $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-1">
{{ range (.GetTerms "tags") -}}
{{- $url := (path.Join .Page.RelPermalink) | relLangURL -}}
{{ partial "assets/button.html" (dict "href" $url "title" .LinkTitle "color" "primary" "size" "sm" "outline" "true") }}
{{ end -}}
</div>
</div>
</div>
{{- end -}}
{{ partial "assets/sharing.html" . }}
<p class="lead mb-5 mt-3">{{ .Description }}</p>

View File

@@ -0,0 +1 @@
{{/* Intentionally left blank to suppress thumbnail */}}

View File

@@ -0,0 +1,3 @@
<div class="mt-5 small">
{{ partial "utilities/git.html" . }}
</div>

View File

@@ -0,0 +1,3 @@
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
{{ partial "assets/sharing.html" . }}
<p class="lead mb-5">{{ .Description }}</p>

View File

@@ -0,0 +1 @@
{{/* Intentionally left blank to suppress thumbnail */}}

View File

@@ -0,0 +1 @@
{{/* Intentionally left blank to suppress page navigation */}}

View File

@@ -0,0 +1,3 @@
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
{{ partial "assets/sharing.html" . }}
<p class="lead mb-5">{{ .Description }}</p>

View File

@@ -161,7 +161,7 @@
> >
<div class="d-flex justify-content-{{ $justify }}"> <div class="d-flex justify-content-{{ $justify }}">
<div class="my-auto">{{ $title | safeHTML }}</div> <div class="my-auto">{{ $title | safeHTML }}</div>
{{- with $icon }}<div class="align-self-center{{ if $title }}{{ if eq $order "first" }} order-first pe-1{{ else }} ps-1{{ end }}{{ end }}">{{ partial "assets/icon.html" (dict "icon" $icon) }}</div>{{ end }} {{- with $icon }}<div class="align-self-center{{ if $title }}{{ if eq $order "first" }} order-first pe-1{{ else }} ps-1{{ end }}{{ end }}">{{ partial "assets/icon.html" (dict "icon" $icon "spacing" false) }}</div>{{ end }}
</div> </div>
{{- with $badge }} {{- with $badge }}

View File

@@ -131,7 +131,7 @@
{{- $dims := slice -}} {{- $dims := slice -}}
{{- with $img -}} {{- with $img -}}
{{- if eq $ratio "4x3" -}} {{- if eq $ratio "4x3" -}}
{{- $dims = slice "576x432" "768x576" "992x744" "1200x900" "1400x1050" -}} {{- $dims = slice "576x432" "768x576" "992x744" "1200x900" "1400x1050" -}}
{{- else if eq $ratio "3x2" -}} {{- else if eq $ratio "3x2" -}}
{{- $dims = slice "576x384" "768x512" "992x661" "1200x800" "1400x933" -}} {{- $dims = slice "576x384" "768x512" "992x661" "1200x800" "1400x933" -}}
{{- else if eq $ratio "1x1" -}} {{- else if eq $ratio "1x1" -}}
@@ -224,12 +224,24 @@
{{ end }} {{ end }}
<div class="{{ if not $caption }}{{ $outerClass }}{{ end }}"> <div class="{{ if not $caption }}{{ $outerClass }}{{ end }}">
{{- if not $anchor -}} {{- if not $anchor -}}
{{- $input := (split (path.BaseName $fallbackURL) "-") | collections.Reverse -}}
{{- $width := "" -}}
{{- $height := "" -}}
{{- if gt ($input | len) 1 -}}
{{- $dim := (split (index $input 0) "x") -}}
{{- if eq ($dim | len) 2 -}}
{{- $width = index $dim 0 -}}
{{- $height = index $dim 1 -}}
{{- end -}}
{{- end }}
<img class="img-fluid {{ $innerClass }}" <img class="img-fluid {{ $innerClass }}"
{{ with $imgset -}} {{ with $imgset -}}
srcset="{{ . }}" srcset="{{ . }}"
sizes="100vw" sizes="100vw"
{{- end }} {{- end }}
src="{{ $fallbackURL }}" src="{{ $fallbackURL }}"
{{ with $height }}height="{{ . }}"{{ end }}
{{ with $width }}width="{{ . }}"{{ end }}
alt="{{ $title }}"> alt="{{ $title }}">
{{- else }} {{- else }}
<svg class="{{ $innerClass }}"> <svg class="{{ $innerClass }}">

View File

@@ -25,25 +25,25 @@
<li class="nav-item dropdown {{ if $collapsed }}d-{{ $size }}-none{{ else }}d-none d-{{ $size }}-block{{ end }}"> <li class="nav-item dropdown {{ if $collapsed }}d-{{ $size }}-none{{ else }}d-none d-{{ $size }}-block{{ end }}">
<a class="nav-link dropdown-toggle" href="#!" role="button" data-bs-toggle="dropdown" aria-label="{{ T "colorMode" }}" aria-expanded="false" id="{{ $id }}-theme{{ if $collapsed }}-collapsed{{ end }}"> <a class="nav-link dropdown-toggle" href="#!" role="button" data-bs-toggle="dropdown" aria-label="{{ T "colorMode" }}" aria-expanded="false" id="{{ $id }}-theme{{ if $collapsed }}-collapsed{{ end }}">
<span class="theme-icon-active">{{- partial "assets/icon.html" (dict "icon" "fas sun fa-fw") }}</span>{{ if $collapsed }} {{ T "colorMode" }} {{ end }} <span class="theme-icon-active">{{- partial "assets/icon.html" (dict "icon" "fas sun fa-fw") }}</span>{{ if $collapsed }}&nbsp;{{ T "colorMode" }} {{ end }}
<span class="d-md-none"></span> <span class="d-md-none"></span>
</a> </a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="{{ $id }}-theme{{ if $collapsed }}-collapsed{{ end }}"> <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="{{ $id }}-theme{{ if $collapsed }}-collapsed{{ end }}">
<li> <li>
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="light" href="#!"> <a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="light" href="#!">
<span class="theme-icon">{{- partial "assets/icon.html" (dict "icon" "fas sun fa-fw") }}</span>&nbsp; <span class="theme-icon">{{- partial "assets/icon.html" (dict "icon" "fas sun fa-fw" "spacing" false) }}</span>&nbsp;
{{ T "colorLight" }} {{ T "colorLight" }}
</a> </a>
</li> </li>
<li> <li>
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="dark" href="#!"> <a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="dark" href="#!">
<span class="theme-icon">{{- partial "assets/icon.html" (dict "icon" "fas moon fa-fw") }}</span>&nbsp; <span class="theme-icon">{{- partial "assets/icon.html" (dict "icon" "fas moon fa-fw" "spacing" false) }}</span>&nbsp;
{{ T "colorDark" }} {{ T "colorDark" }}
</a> </a>
</li> </li>
<li> <li>
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="auto" href="#!"> <a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="auto" href="#!">
<span class="theme-icon">{{- partial "assets/icon.html" (dict "icon" "fas circle-half-stroke fa-fw" ) }}</span>&nbsp; <span class="theme-icon">{{- partial "assets/icon.html" (dict "icon" "fas circle-half-stroke fa-fw" "spacing" false) }}</span>&nbsp;
{{ T "colorAuto" }} {{ T "colorAuto" }}
</a> </a>
</li> </li>
@@ -154,6 +154,8 @@
{{- errorf "partial [assets/navbar.html] - Invalid value for param 'search': %s" $searchParam -}} {{- errorf "partial [assets/navbar.html] - Invalid value for param 'search': %s" $searchParam -}}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
{{- $searchModal := and $search site.Params.navigation.searchModal -}}
{{- $enableDarkMode := default false site.Params.main.enableDarkMode -}} {{- $enableDarkMode := default false site.Params.main.enableDarkMode -}}
{{- with .mode -}} {{- with .mode -}}
@@ -221,7 +223,7 @@
<div class="container-fluid {{ if $fixed }}fixed-top{{ end }} p-0{{ with $class }} {{ . }}{{ end }}"> <div class="container-fluid {{ if $fixed }}fixed-top{{ end }} p-0{{ with $class }} {{ . }}{{ end }}">
{{- partial "assets/page-alert.html" (dict "page" $page) -}} {{- partial "assets/page-alert.html" (dict "page" $page) -}}
<nav class="navbar navbar-expand-{{ $size }}{{ if $contrast }} navbar-contrast{{ end }}{{ with $color }} bg-{{ . }}{{ end }} p-4"{{ with $theme }} data-bs-theme="{{ . }}"{{ end }}> <nav class="navbar {{ if $fixed }}navbar-fixed-top{{ end }} navbar-expand-{{ $size }}{{ if $contrast }} navbar-contrast{{ end }}{{ with $color }} bg-{{ . }}{{ 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">
@@ -240,10 +242,12 @@
<!-- Insert the brand logo or name --> <!-- Insert the brand logo or name -->
<a class="navbar-brand mx-auto" href="{{ site.Home.RelPermalink }}"> <a class="navbar-brand mx-auto" href="{{ site.Home.RelPermalink }}">
{{- if (and $logoLight $logoDark) -}} {{- if (and $logoLight $logoDark) -}}
<img src="{{if $absoluteURL }}{{ absURL $logoLight }}{{ else }}{{ $logoLight }}{{ end }}" class="d-none-dark" alt="{{ $title }} logo" height="30"> {{ $width := partial "utilities/GetWidth.html" (dict "path" $logoLight "height" 30) }}
<img src="{{if $absoluteURL }}{{ absURL $logoDark }}{{ else }}{{ $logoDark }}{{ end }}" class="d-none-light" alt="{{ $title }} logo" height="30"> <img src="{{if $absoluteURL }}{{ absURL $logoLight }}{{ else }}{{ $logoLight }}{{ end }}" class="d-none-dark" alt="{{ $title }} logo" height="30"{{ with $width }} width="{{ . }}"{{ end }}>
<img src="{{if $absoluteURL }}{{ absURL $logoDark }}{{ else }}{{ $logoDark }}{{ end }}" class="d-none-light" alt="{{ $title }} logo" height="30"{{ with $width }} width="{{ . }}"{{ end }}>
{{- else if $logo -}} {{- else if $logo -}}
<img src="{{if $absoluteURL }}{{ absURL $logo }}{{ else }}{{ $logo }}{{ end }}" alt="{{ $title }} logo" height="30"> {{ $width := partial "utilities/GetWidth.html" (dict "path" $logo "height" 30) }}
<img src="{{if $absoluteURL }}{{ absURL $logo }}{{ else }}{{ $logo }}{{ end }}" alt="{{ $title }} logo" height="30"{{ with $width }} width="{{ . }}"{{ end }}>
{{- else -}} {{- else -}}
<span class="fw-bold">{{ $title }}</span> <span class="fw-bold">{{ $title }}</span>
{{- end -}} {{- end -}}
@@ -261,7 +265,7 @@
<div class="navbar-collapse collapse" id="{{ $id }}-collapse"> <div class="navbar-collapse collapse" id="{{ $id }}-collapse">
<!-- Insert search input --> <!-- Insert search input -->
{{- if $search }}{{ partial "assets/search-input.html" -}}{{ end -}} {{- if and $search (not $searchModal) }}{{ 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">
@@ -286,15 +290,21 @@
<li><hr class="dropdown-divider-bg"></li> <li><hr class="dropdown-divider-bg"></li>
{{- end -}} {{- end -}}
<!-- Insert version switcher -->
{{- if $enableVersions -}}
{{- partial "partials/navbar-versions.html" (dict "page" $page "size" $size "collapsed" true "id" .id) -}}
{{- partial "partials/navbar-versions.html" (dict "page" $page "size" $size "collapsed" false "id" .id) -}}
{{- end -}}
<!-- Insert language switcher if applicable --> <!-- Insert language switcher if applicable -->
{{- if $enableLanguage -}} {{- if $enableLanguage -}}
{{- $currentLang := $page.Language.Lang -}} {{- $currentLang := $page.Language.Lang -}}
<li class="nav-item dropdown"> <li class="nav-item dropdown">
<a class="nav-link dropdown-toggle d-{{ $size }}-none" href="#!" role="button" data-bs-toggle="dropdown" aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false"> <a class="nav-link dropdown-toggle d-{{ $size }}-none" href="#!" role="button" data-bs-toggle="dropdown" aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false">
{{- partial "assets/icon.html" (dict "icon" "fas globe fa-fw") }} {{ T "languageSwitcherLabel" }} {{- partial "assets/icon.html" (dict "icon" "fas globe fa-fw" "spacing" false) }}&nbsp;{{ T "languageSwitcherLabel" }}&nbsp;
</a> </a>
<a class="nav-link dropdown-toggle d-none d-{{ $size }}-block" href="#!" role="button" data-bs-toggle="dropdown" aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false"> <a class="nav-link dropdown-toggle d-none d-{{ $size }}-block" href="#!" role="button" data-bs-toggle="dropdown" aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false">
{{- partial "assets/icon.html" (dict "icon" "fas globe fa-fw") }} {{- partial "assets/icon.html" (dict "icon" "fas globe fa-fw" "spacing" true) }}
</a> </a>
<ul class="dropdown-menu dropdown-menu-end "> <ul class="dropdown-menu dropdown-menu-end ">
{{- if $page.IsTranslated -}} {{- if $page.IsTranslated -}}
@@ -310,25 +320,49 @@
</li> </li>
{{- end -}} {{- end -}}
<!-- Insert version switcher -->
{{- if $enableVersions -}}
{{- partial "partials/navbar-versions.html" (dict "page" $page "size" $size "collapsed" true "id" .id) -}}
{{- partial "partials/navbar-versions.html" (dict "page" $page "size" $size "collapsed" false "id" .id) -}}
{{- end -}}
<!-- Insert color mode switcher --> <!-- Insert color mode switcher -->
{{- if $enableDarkMode -}} {{- if $enableDarkMode -}}
<!-- Insert divider --> {{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" true "id" .id) -}}
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" false "id" .id) -}}
{{- end -}}
<!-- Insert modal search button -->
{{- if $searchModal }}
<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>
</li> </li>
<li><hr class="dropdown-divider-bg"></li> <li><hr class="dropdown-divider-bg"></li>
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" true "id" .id) -}} <a class="nav-link d-{{ $size }}-none" href="#!" role="button" data-bs-toggle="modal" data-bs-target="#search-modal" aria-label="{{ T "ui_search" }}" aria-expanded="false">
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" false "id" .id) -}} {{ partial "assets/icon.html" (dict "icon" "fas magnifying-glass fa-fw") }} {{ T "ui_search" }}
{{- end -}} </a>
<a class="nav-link d-none d-{{ $size }}-block" href="#!" role="button" data-bs-toggle="modal" data-bs-target="#search-modal" aria-label="{{ T "ui_search" }}" aria-expanded="false">
{{ partial "assets/icon.html" (dict "icon" "fas magnifying-glass fa-fw") }}
</a>
{{ end -}}
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
</div> </div>
{{/* Insert modal search element */}}
{{- if $searchModal }}
<div class="modal fade search-modal" tabindex="-1" id="search-modal" aria-labelledby="searchModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable modal-lg">
<div class="modal-content h-50">
<div class="modal-header">
<div class="w-100">
<form class="search position-relative me-auto">
<input id="search-input-modal" class="search-input form-control is-search" tabindex="1" type="search" placeholder="{{ T "ui_search" }}..." aria-label="{{ T "ui_search" }}" autocomplete="off">
</form>
</div>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{{ T "close" }}"></button>
</div>
<div class="modal-body p-2">
<div class="search-suggestions bg-body" data-no-results="{{ T "ui_no_results" }}"></div>
</div>
</div>
</div>
</div>
{{ end -}}

View File

@@ -10,6 +10,6 @@
{{- if $pageAlertMsg -}} {{- if $pageAlertMsg -}}
<div id="page-alert" class="alert alert-primary alert-no-decoration fade show d-flex align-items-center small m-0 py-1" data-page-alert-version="{{ $version }}"> <div id="page-alert" class="alert alert-primary alert-no-decoration fade show d-flex align-items-center small m-0 py-1" data-page-alert-version="{{ $version }}">
<a href="{{ with $pageAlertURL }}{{ . }}{{ else }}#!{{ end }}" class="text-decoration-none flex-grow-1 text-center">{{ $pageAlertMsg }}</a> <a href="{{ with $pageAlertURL }}{{ . }}{{ else }}#!{{ end }}" class="text-decoration-none flex-grow-1 text-center">{{ $pageAlertMsg }}</a>
<button id="page-alert-btn-close" type="button" class="btn-close" data-bs-dismiss="alert"></button> <button id="page-alert-btn-close" type="button" class="btn-close" data-bs-dismiss="alert" aria-label="{{ T "close" }}"></button>
</div> </div>
{{- end -}} {{- end -}}

View File

@@ -20,27 +20,6 @@
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
<div class="container-fluid p-4 px-xxl-0"> {{ with $title }}<p id="{{ anchorize . }}" class="display-4 py-5{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
{{ with $title }}<p 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 }}
{{ with $description }} <p class="lead mb-5">{{ . }}</p>{{ end }} {{ $content }}
{{- 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>

View File

@@ -35,6 +35,7 @@
{{- $vertical := "false" -}} {{- $vertical := "false" -}}
{{- $width := 100 -}} {{- $width := 100 -}}
{{- $ratio := "" -}} {{- $ratio := "" -}}
{{- $wrap := false -}}
{{- 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 -}}
@@ -59,6 +60,7 @@
{{- with index . "width" }}{{ $width = . }}{{ end -}} {{- with index . "width" }}{{ $width = . }}{{ end -}}
{{- with index . "kind" }}{{ $kind = . }}{{ end -}} {{- with index . "kind" }}{{ $kind = . }}{{ end -}}
{{- with index . "ratio" }}{{ $ratio = . }}{{ end -}} {{- with index . "ratio" }}{{ $ratio = . }}{{ end -}}
{{- with index . "wrap" }}{{ $wrap = . }}{{ end -}}
{{- end -}} {{- end -}}
{{ if ne (printf "%T" $nested) "bool" }} {{ if ne (printf "%T" $nested) "bool" }}
{{ errorf "partial [assets/section-list.html] - Invalid value for param 'nested'"}} {{ errorf "partial [assets/section-list.html] - Invalid value for param 'nested'"}}
@@ -151,6 +153,7 @@
"type" $type "type" $type
"vertical" $vertical "vertical" $vertical
"width" $width "width" $width
"wrap" $wrap
) )
-}} -}}
{{- else -}} {{- else -}}

View File

@@ -25,7 +25,7 @@
<div id="{{ $id }}" class="toast{{ with $class }} {{ . }}{{ end }}" role="alert" aria-live="assertive" aria-atomic="true"> <div id="{{ $id }}" class="toast{{ with $class }} {{ . }}{{ end }}" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header"> <div class="toast-header">
{{ with $header }}<strong class="me-auto">{{ . }}</strong>{{ end }} {{ with $header }}<strong class="me-auto">{{ . }}</strong>{{ end }}
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="{{ T "close" }}"></button>
</div> </div>
<div class="toast-body">{{ $message }}</div> <div class="toast-body">{{ $message }}</div>
</div> </div>

View File

@@ -6,6 +6,14 @@
{{- $core := .core | default false -}} {{- $core := .core | default false -}}
{{- $skipTemplate := .skipTemplate | default false -}} {{- $skipTemplate := .skipTemplate | default false -}}
{{- $state := "async" -}}
{{- with .state }}{{ $state = . }}{{ end -}}
{{- if or $header (eq $state "immediate") }}{{ $state = "" }}{{ end -}}
{{- $supportedStates := slice "defer" "async" "immediate" -}}
{{- if and $state (not (in $supportedStates $state)) -}}
{{- errorf "partial [footer/script.html] - Invalid value for param 'processing': %s" $state -}}
{{- end -}}
{{- $modules := "" -}} {{- $modules := "" -}}
{{ if $core }} {{ if $core }}
{{- $modules = site.Params.modules.core -}} {{- $modules = site.Params.modules.core -}}
@@ -26,9 +34,9 @@
{{- if gt (len $js.Content) 0 -}} {{- if gt (len $js.Content) 0 -}}
{{- if not hugo.IsProduction -}} {{- if not hugo.IsProduction -}}
<script src="{{ if $absoluteURL }}{{ $js.Permalink }}{{ else }}{{ $js.RelPermalink }}{{ end }}"></script> <script src="{{ if $absoluteURL }}{{ $js.Permalink }}{{ else }}{{ $js.RelPermalink }}{{ end }}"{{ with $state }} {{ . | safeHTMLAttr }}{{ end }}></script>
{{ else -}} {{ else -}}
{{ $js = $js | minify | fingerprint -}} {{ $js = $js | minify | fingerprint -}}
<script src="{{ if $absoluteURL }}{{ $js.Permalink }}{{ else }}{{ $js.RelPermalink }}{{ end }}" integrity="{{ $js.Data.Integrity }}" crossorigin="anonymous"></script> <script src="{{ if $absoluteURL }}{{ $js.Permalink }}{{ else }}{{ $js.RelPermalink }}{{ end }}" integrity="{{ $js.Data.Integrity }}" crossorigin="anonymous"{{ with $state}} {{ . | safeHTMLAttr }}{{ end }}></script>
{{ end -}} {{ end -}}
{{ end -}} {{ end -}}

View File

@@ -39,6 +39,7 @@
"danger" (default "#dc3545" site.Params.style.danger) "danger" (default "#dc3545" site.Params.style.danger)
"light" (default "#f8f9fa" site.Params.style.light) "light" (default "#f8f9fa" site.Params.style.light)
"dark" (default "#212529" site.Params.style.dark) "dark" (default "#212529" site.Params.style.dark)
"navbar-height" (site.Params.navigation.offset | default "4em")
"navbar-offset" $navbarOffset "navbar-offset" $navbarOffset
"enable-dark-mode" (printf "%t" ((default true site.Params.main.enableDarkMode))) "enable-dark-mode" (printf "%t" ((default true site.Params.main.enableDarkMode)))
"import-fonts" (printf "%t" (not (hasPrefix (lower site.Params.style.themeFontPath) "http"))) "import-fonts" (printf "%t" (not (hasPrefix (lower site.Params.style.themeFontPath) "http")))
@@ -56,14 +57,14 @@
{{- partial "head/icons.html" (dict "css" $css) -}} {{- partial "head/icons.html" (dict "css" $css) -}}
{{ end }} {{ end }}
{{- if site.Params.style.purge -}} {{- if site.Params.style.purge -}}
{{- $post_options := dict "config" "config" -}} {{- $post_options := dict "config" "config" "noMap" hugo.IsProduction -}}
{{- $css = $css | resources.PostCSS $post_options -}} {{- $css = $css | resources.PostCSS $post_options -}}
{{- end -}} {{- end -}}
{{- if not hugo.IsProduction -}} {{- if not hugo.IsProduction -}}
<link rel="stylesheet" href="{{ if $absoluteURL }}{{ $css.Permalink }}{{ else }}{{ $css.RelPermalink }}{{ end }}"> <link rel="stylesheet" href="{{ if $absoluteURL }}{{ $css.Permalink }}{{ else }}{{ $css.RelPermalink }}{{ end }}">
{{- else -}} {{- else -}}
{{- $css = $css | fingerprint | resources.PostProcess -}} {{- $css = $css | minify | fingerprint | resources.PostProcess -}}
<link rel="stylesheet" href="{{ if $absoluteURL }}{{ $css.Permalink }}{{ else }}{{ $css.RelPermalink }}{{ end }}" integrity="{{ $css.Data.Integrity }}" crossorigin="anonymous"> <link rel="stylesheet" href="{{ if $absoluteURL }}{{ $css.Permalink }}{{ else }}{{ $css.RelPermalink }}{{ end }}" integrity="{{ $css.Data.Integrity }}" crossorigin="anonymous">
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}

View File

@@ -2,64 +2,85 @@
{{- $headings := .headings -}} {{- $headings := .headings -}}
{{- $orientation := .orientation | default "stacked" -}} {{- $orientation := .orientation | default "stacked" -}}
{{- $actions := .actions -}} {{- $actions := .actions -}}
{{- $colWidth := .colWidth | default 6 }} {{- $width := .width | default 6 }}
{{- if or (lt $width 1) (gt $width 12) -}}
{{- $width = 6 -}}
{{- warnf "partial [list/featured.html] - Invalid column width: %d" $width -}}
{{ end -}}
{{- $justify := .justify | default "center" -}}
{{- $supportedJustify := slice "start" "end" "center" "between" "around" "evenly" -}}
{{- if not (in $supportedJustify $justify) -}}
{{- errorf "partial [list/featured.html] - Invalid value for param 'justify': %s" $justify -}}
{{- end -}}
{{- $align := .align | default "center" -}}
{{- $supportedAlign := slice "start" "end" "center" -}}
{{- if not (in $supportedAlign $align) -}}
{{- errorf "partial [list/featured.html] - Invalid value for param 'align': %s" $align -}}
{{- end -}}
{{- $breadcrumb := and (not $page.IsHome) site.Params.navigation.breadcrumb -}}
{{- define "partials/list/featured-body.html" }} {{- define "partials/list/featured-body.html" }}
{{- $page := .page -}} {{- $page := .page -}}
{{- $headings := .headings -}} {{- $headings := .headings -}}
{{- $orientation := .orientation | default "stacked" -}} {{- $orientation := .orientation | default "stacked" -}}
{{- $actions := .actions -}} {{- $actions := .actions -}}
{{- $align := .align | default "center" -}}
<div class="row justify-content-end"> <div class="text-{{ $align }}">
<div class="text-center {{ if ne $orientation "stacked" }} text-md-start{{ end }} col-md-8"> {{ with $page.Title }}<p class="display-4">{{ . }}</p>{{ end }}
{{ with $page.Title }}<p class="display-4">{{ . }}</p>{{ end }} <span class="fs-5 text-muted">{{ $page.Description }}</span>
<span class="fs-5 text-muted">{{ $page.Description }}</span>
{{ if $actions }} {{ if $actions }}
<div class="hstack gap-3 justify-content-center{{ if ne $orientation "stacked" }} justify-content-md-start{{ end }} pt-5 pt-md-3"> {{- $actions = sort $actions "weight" "asc" -}}
{{ range $actions }} <div class="hstack{{ if gt (len $actions) 1 }} gap-1{{ end }} justify-content-{{ $align}} pt-5 pt-md-3">
{{ partial "assets/button.html" (dict "href" .url "icon" .icon "title" .title "outline" .outline "order" "last" "justify" "start") }} {{ range $actions }}
{{ end }} {{ partial "assets/button.html" (dict "href" .url "icon" .icon "title" .title "outline" .outline "order" "last" "justify" "start") }}
</div> {{ end }}
{{ end }} </div>
</div> {{ end }}
</div> </div>
{{- end -}} {{- end -}}
{{- define "partials/list/featured-illustration.html" }} {{- define "partials/list/featured-illustration.html" }}
{{- $page := .page -}} {{- $page := .page -}}
{{- $style := printf "img-wrap mx-auto mx-md-0 %s" .style -}}
{{ with $page.Params.icon }} {{ if $page.Params.icon }}
{{ if eq (lower (path.Ext .)) ".json" }} {{- $icon := (or (and (reflect.IsMap $page.Params.Icon) $page.Params.Icon.url) $page.Params.Icon) -}}
{{ partial "assets/animation.html" (dict "data" . "loop" false "hover" true "class" "col-8 mx-auto text-center") }} {{- $mode := and (reflect.IsMap $page.Params.Icon) $page.Params.Icon.mode -}}
{{ if eq (lower (path.Ext $icon)) ".json" }}
{{ partial "assets/animation.html" (dict "data" $icon "mode" $mode "loop" false "hover" true "class" "col-6 mx-auto text-center") }}
{{ else }} {{ else }}
{{ partial "assets/icon.html" (dict "icon" . "wrapper" "col-8 mx-auto text-center")}} {{ partial "assets/icon.html" (dict "icon" "mode" $mode $icon "wrapper" "col-6 mx-auto text-center")}}
{{ end }} {{ end }}
{{ else }} {{ else }}
{{- $thumbnail := (or (and (reflect.IsMap $page.Params.Thumbnail) $page.Params.Thumbnail.url) $page.Params.Thumbnail) -}} {{- $thumbnail := (or (and (reflect.IsMap $page.Params.Thumbnail) $page.Params.Thumbnail.url) $page.Params.Thumbnail) -}}
{{- if $thumbnail }} {{- if $thumbnail }}
{{ partial "assets/image.html" (dict "url" $thumbnail "ratio" "16x9" "outerClass" "img-wrap col-8 mx-auto mx-md-0 pb-5 pb-md-0" "innerClass" "rounded" "title" .Site.Title) }} {{ partial "assets/image.html" (dict "url" $thumbnail "ratio" "16x9" "outerClass" $style "innerClass" "rounded" "title" .Site.Title) }}
{{ end }} {{ end }}
{{ end }} {{ end }}
{{- end -}} {{- end -}}
<div class="container-fluid {{ with site.Params.home.feature.color }} bg-{{ . }} bg-opacity-{{ site.Params.style.themeOpacity | default "25" | safeHTML }}{{ end }}"> <div class="container-fluid p-0 {{ with site.Params.home.feature.color }} bg-{{ . }} bg-opacity-{{ site.Params.style.themeOpacity | default "25" | safeHTML }}{{ end }}">
<div class="container-xxl p-4 px-xxl-0{{ if site.Params.home.fullCover }} fullscreen{{ end }} d-flex flex-column"> <div class="container-xxl {{ if $breadcrumb }} pb-4 px-4 {{ else }} p-4 {{ end }} px-xxl-0 {{ if site.Params.home.fullCover }} fullcover{{ end }} d-flex flex-column">
{{ if and (not $page.IsHome) site.Params.navigation.breadcrumb }} {{ if $breadcrumb }}
<div>{{ partial "assets/breadcrumb.html" $page }}</div> <div>{{ partial "assets/breadcrumb.html" $page }}</div>
{{ end -}} {{ end -}}
{{ if eq $orientation "stacked" }} {{ if eq $orientation "stacked" }}
<div class="col-12 col-md-{{ $colWidth }} m-auto text-center h-100"> <div class="row justify-content-center flex-fill">
{{ partial "partials/list/featured-illustration.html" (dict "page" $page) }} <div class="col-12 col-md-{{ $width }} m-auto text-center">
{{ partial "partials/list/featured-body.html" (dict "page" $page "headings" $headings "orientation" $orientation "actions" $actions) }} {{ partial "partials/list/featured-illustration.html" (dict "page" $page "style" "pb-4") }}
</div>
{{ else }}
<div class="row row-cols-1 row-cols-md-2 flex-fill">
<div class="col col-12 col-md-{{ $colWidth }} order-1 order-md-0 my-md-auto">
{{ partial "partials/list/featured-body.html" (dict "page" $page "headings" $headings "orientation" $orientation "actions" $actions) }} {{ partial "partials/list/featured-body.html" (dict "page" $page "headings" $headings "orientation" $orientation "actions" $actions) }}
</div> </div>
<div class="col col-12 col-md-{{ sub 12 $colWidth }} order-0 order-md-1 text-center my-md-auto align-items-end"> </div>
{{ partial "partials/list/featured-illustration.html" (dict "page" $page) }} {{ else }}
<div class="row row-cols-1 row-cols-md-2 justify-content-{{ $justify }} flex-fill">
<div class="col col-12 col-md-{{ $width }} order-1 order-md-0 my-md-auto">
{{ partial "partials/list/featured-body.html" (dict "page" $page "headings" $headings "orientation" $orientation "actions" $actions "align" $align) }}
</div>
<div class="col col-12 col-md-{{ if gt $width 6 }}{{ sub 12 $width }}{{ else }}{{ $width }}{{ end }} order-0 order-md-1 text-center my-md-auto">
{{ partial "partials/list/featured-illustration.html" (dict "page" $page "style" "pb-4 pb-md-0") }}
</div> </div>
</div> </div>
{{ end }} {{ end }}

View File

@@ -0,0 +1,35 @@
{{- $thumbnail := "" -}}
{{- $credits := "" -}}
{{- if reflect.IsMap .Params.Thumbnail -}}
{{- $thumbnail = .Params.Thumbnail.url -}}
{{- $author := "" -}}
{{- if and .Params.Thumbnail.authorURL "text" .Params.Thumbnail.author }}
{{- $author = partial "utilities/link" (dict "destination" .Params.Thumbnail.authorURL "text" .Params.Thumbnail.author) -}}
{{- else if .Params.Thumbnail.author }}
{{- $author = .Params.Thumbnail.author -}}
{{- end -}}
{{- $origin := "" -}}
{{- if and .Params.Thumbnail.originURL "text" .Params.Thumbnail.origin }}
{{- $origin = partial "utilities/link" (dict "destination" .Params.Thumbnail.originURL "text" .Params.Thumbnail.origin) -}}
{{- else if .Params.Thumbnail.origin }}
{{- $origin = .Params.Thumbnail.origin -}}
{{- end }}
{{- if and $author $origin }}
{{ $credits = printf (T "photoFull") $author $origin }}
{{ else if $author }}
{{ $credits = T "photoShort" $author }}
{{ end }}
{{ else }}
{{- $thumbnail = .Params.Thumbnail -}}
{{ if or .Params.photoCredits .Params.photoSource }}
{{ warnf "DEPRECATED: frontmatter variables `photoCredits` and `photoSource` have been deprecated in release v0.18: %s" .RelPermalink }}
{{ end }}
{{- if and .Params.photoCredits .Params.PhotoSource }}{{ $credits = printf (T "photoFull") .Params.photoCredits .Params.PhotoSource }}{{ end -}}
{{- end -}}
{{ if $thumbnail -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "21x9" "outerClass" "img-wrap" "innerClass" "rounded" "title" .Params.title "caption" $credits) -}}
{{ end -}}

View File

@@ -0,0 +1,33 @@
{{- $ref := "" -}}
{{- $anchor := "" -}}
{{ $url := .url }}
{{ if not $url }}
{{- errorf "partial [utilities/GetPage.html] - Expected param 'url'" -}}
{{ end }}
{{ $page := .page }}
{{ if not $page }}
{{- errorf "partial [utilities/GetPage.html] - Expected param 'page'" -}}
{{ end }}
{{- $isExternal := ne (urls.Parse (absURL $url)).Host (urls.Parse site.BaseURL).Host -}}
{{- if not $isExternal -}}
{{- $ref = $page.GetPage $url -}}
{{ if not $ref }}
{{ $ref = (index (where $page.Site.AllPages "RelPermalink" (printf "%s/" (strings.TrimSuffix "/" $url))) 0)}}
{{ end }}
{{- if not $ref }}
{{- $segments := split $url "/" -}}
{{- if and (hasPrefix $url "/") (gt (len $segments) 1) -}}
{{- $prefix := index $segments 1 -}}
{{ with index (where site.Sites "Language.Lang" $prefix) 0 }}
{{- $path := printf "/%s" (strings.TrimPrefix (printf "/%s/" $prefix) $url) }}
{{- $ref = .GetPage $path -}}
{{ end }}
{{- end -}}
{{- end -}}
{{- end -}}
{{ return $ref }}

View File

@@ -0,0 +1,76 @@
{{- $page := . -}}
{{/* Add title for current page */}}
{{- $items := slice -}}
{{ $items = $items | append (dict "title" .Title "content" "" )}}
{{/* Identify page sections */}}
{{- $sections := slice -}}
{{- $sections = $sections | append $page.Type -}}
{{ with $page.Params.sections }}
{{ $sections = $sections | append . }}
{{ end }}
{{ if $page.IsHome }}
{{- if not $page.Params.sections -}}
{{- with site.Params.home.sections }}
{{ $sections = $sections | append . }}
{{ else }}
{{ range $section := site.Sections }}
{{ $sections = $sections | append $section.Type }}
{{ end }}
{{ end }}
{{- end -}}
{{ end }}
{{/* Generate title and content for each section */}}
{{- range $index, $section := $sections -}}
{{- $sectionPage := site.GetPage "section" $section -}}
{{- $sectionURL := $sectionPage.RelPermalink -}}
{{ with $sectionPage.Params.redirect}}
{{ $target := partial "utilities/GetPage.html" (dict "url" . "page" $page) }}
{{- if not $target -}}
{{ if eq (printf "%T" $page.File) "*hugolib.fileInfo"}}
{{- errorf "Cannot find redirect target on page '%s': %s" $page.File . -}}
{{ else }}
{{- errorf "Cannot find redirect target: %s" . -}}
{{ end }}
{{ else }}
{{- $sectionURL = $target.RelPermalink -}}
{{ end }}
{{ end }}
{{- $title := or $sectionPage.Title $sectionPage.Type -}}
{{- with (index site.Params.sections $section) -}}
{{- with index . "title" }}{{ $title = or . $title }}{{ end -}}
{{- end -}}
{{- $thumbnail := (or (and (reflect.IsMap $sectionPage.Params.Thumbnail) $sectionPage.Params.Thumbnail.url) $sectionPage.Params.Thumbnail) -}}
{{- $icon := $sectionPage.Params.Icon -}}
{{- $content := $sectionPage.Content -}}
{{- $sectionTitle := strings.FirstUpper $sectionPage.Type -}}
{{- $moreTitle := "" -}}
{{- with (index site.Params.sections $section) -}}
{{- with index . "reference" }}{{ $moreTitle = . }}{{ end -}}
{{- end -}}
{{- $moreTitle = or $moreTitle (printf (T "more" (pluralize $sectionTitle))) -}}
{{- $sectionContent := trim (partial "assets/section-list.html" (dict
"page" $page
"section" $section
"home" $page.IsHome
"simple" (eq (len $sections) 1)
"nested" (and $page.IsHome (eq $section $page.Section))
"thumbnail" $thumbnail
"icon" $icon
"content" $content
"moreTitle" $moreTitle
"sectionURL" $sectionURL)) " \r\n"
-}}
{{ if $sectionContent }}
{{ $items = $items | append (dict "title" $title "content" $sectionContent)}}
{{ end }}
{{- end -}}
{{ return $items }}

View File

@@ -0,0 +1,17 @@
{{ $path := .path }}
{{ $height := .height }}
{{ $width := "" }}
{{ if eq (path.Ext $path) ".svg" }}
{{ $path := path.Join "static" .path }}
{{ if fileExists $path }}
{{ with findRE `viewBox="\d*\.?\d+[\s,]\d*\.?\d+[\s,]\d*\.?\d+[\s,]\d*\.?\d+"` (readFile $path) 1 }}
{{ $content := split (index (split (index . 0) `"`) 1) " " }}
{{ $viewbox_width := float (index $content 2) }}
{{ $viewbox_height := float (index $content 3) }}
{{ $width = int (math.Round (mul (div $height $viewbox_height) $viewbox_width)) }}
{{ end }}
{{ end }}
{{ end }}
{{ return $width }}

View File

@@ -26,7 +26,7 @@
{{- end -}} {{- end -}}
{{- if $cue -}} {{- if $cue -}}
{{ $suffix := partial "assets/icon.html" (dict "icon" "fas up-right-from-square fa-2xs") }} {{ $suffix := partial "assets/icon.html" (dict "icon" "fas up-right-from-square fa-2xs" "spacing" false) }}
{{- $text = printf "%s&nbsp;%s" $text $suffix | safeHTML -}} {{- $text = printf "%s&nbsp;%s" $text $suffix | safeHTML -}}
{{- end -}} {{- end -}}
{{- else -}} {{- else -}}
@@ -35,25 +35,12 @@
{{- if ne (len $segments) 2 }} {{- if ne (len $segments) 2 }}
{{- errorf "partial [utilities/link.html] - Malformed path, expected one anchor '#' only: %s" $destination -}} {{- errorf "partial [utilities/link.html] - Malformed path, expected one anchor '#' only: %s" $destination -}}
{{ else }} {{ else }}
{{- $destination = index $segments 0 -}} {{- $destination = index $segments 0 -}}
{{- $anchor = index $segments 1 -}} {{- $anchor = index $segments 1 -}}
{{ end }} {{ end }}
{{ end }} {{ end }}
{{- $destination = strings.TrimSuffix "/" $destination -}}
{{- $ref := $page.GetPage $destination -}}
{{- if not $ref }}
{{- $segments := split $destination "/" -}}
{{- if and (hasPrefix $destination "/") (gt (len $segments) 1) -}}
{{- $prefix := index $segments 1 -}}
{{- $page := .Page -}}
{{ with index (where site.Sites "Language.Lang" $prefix) 0 }}
{{- $path := printf "/%s" (strings.TrimPrefix (printf "/%s/" $prefix) $destination) }}
{{- $ref = .GetPage $path -}}
{{ end }}
{{- end -}}
{{- end -}}
{{ $ref := partial "utilities/GetPage.html" (dict "url" $destination "page" $page) }}
{{- if not $ref -}} {{- if not $ref -}}
{{- errorf "partial [utilities/link.html] - Cannot find page: %s" $destination -}} {{- errorf "partial [utilities/link.html] - Cannot find page: %s" $destination -}}
{{- $error = true -}} {{- $error = true -}}

View File

@@ -63,6 +63,6 @@
{{ end }} {{ end }}
{{ if not $error }} {{ if not $error }}
<abbr {{ with $class }}class="{{ . }}"{{ end }} title="{{ $title }}">{{ $key }}</abbr> <abbr {{ with $class }}class="{{ . }}"{{ end }} title="{{ $title }}" tabindex="0">{{ $key }}</abbr>
{{ end }} {{ end }}
{{ end }} {{ end }}

View File

@@ -56,7 +56,7 @@
{{ with $icon }}<div class="pt-1 pe-2">{{ . }}</div>{{ end }} {{ with $icon }}<div class="pt-1 pe-2">{{ . }}</div>{{ end }}
<div class="flex-grow-1 my-auto"> <div class="flex-grow-1 my-auto">
{{ trim .Inner " \r\n" | .Page.RenderString | safeHTML -}} {{ trim .Inner " \r\n" | .Page.RenderString | safeHTML -}}
{{ if $dismissible }}<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>{{ end }} {{ if $dismissible }}<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="{{ T "close" }}"></button>{{ end }}
</div> </div>
</div> </div>
{{- end -}} {{- end -}}

View File

@@ -27,6 +27,7 @@
"tab" Optional flag to indicate if an external link should open in a new tab, defaults to setting "tab" Optional flag to indicate if an external link should open in a new tab, defaults to setting
"main.externalLinks.tab" in the site's parameters. "main.externalLinks.tab" in the site's parameters.
"spacing" Optional flag to add spacing to the inline button, defaults to "true". "spacing" Optional flag to add spacing to the inline button, defaults to "true".
"wrapper" Optional element to wrap the button.
--> -->
{{ $error := false }} {{ $error := false }}
@@ -140,6 +141,10 @@
"spacing" $spacing) "spacing" $spacing)
-}} -}}
{{ with .Get "wrapper" }}
{{ $output = printf `<div class="%s">%s</div>` . $output }}
{{ end }}
{{- if .Parent -}} {{- if .Parent -}}
{{ $current := .Parent.Scratch.Get "inner" }} {{ $current := .Parent.Scratch.Get "inner" }}
{{ if $current }} {{ if $current }}

View File

@@ -1,5 +1,5 @@
<!-- <!--
Displays a Bootstrap card that links to a page. Any inner text is used as description The shortcode supports the Displays a Bootstrap card that links to a page. Any inner text is used as description. The shortcode supports the
following arguments: following arguments:
"path" Optional path of the page. If omitted, specify the title, icon, thumbnail, and body as needed. "path" Optional path of the page. If omitted, specify the title, icon, thumbnail, and body as needed.
"title" Optional title of the card. "title" Optional title of the card.

View File

@@ -73,27 +73,9 @@
{{- $isExternal := ne (urls.Parse (absURL $url)).Host (urls.Parse site.BaseURL).Host -}} {{- $isExternal := ne (urls.Parse (absURL $url)).Host (urls.Parse site.BaseURL).Host -}}
{{- if not $isExternal -}} {{- if not $isExternal -}}
{{- $url = strings.TrimSuffix "/" $url -}} {{ $ref := partial "utilities/GetPage.html" (dict "url" $url "page" .Page) }}
{{- $ref := "" -}}
{{- if not $ref -}} {{- if not $ref -}}
{{- $ref = .Page.GetPage $url -}} {{- errorf "Cannot find page: '%s' at %s" $url .Position -}}
{{- end -}}
{{- if not $ref }}
{{- $segments := split $url "/" -}}
{{- if and (hasPrefix $url "/") (gt (len $segments) 1) -}}
{{- $prefix := index $segments 1 -}}
{{- $page := .Page -}}
{{ with index (where site.Sites "Language.Lang" $prefix) 0 }}
{{- $path := printf "/%s" (strings.TrimPrefix (printf "/%s/" $prefix) $url) }}
{{- $ref = .GetPage $path -}}
{{ end }}
{{- end -}}
{{- end -}}
{{- if not $ref -}}
{{- errorf "Cannot find page: '%s' at %s" $href .Position -}}
{{- $error = true -}} {{- $error = true -}}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
@@ -101,9 +83,7 @@
{{ with $anchor }} {{ with $anchor }}
{{ $url = printf "%s#%s" $url .}} {{ $url = printf "%s#%s" $url .}}
{{ end }} {{ end }}
{{- if not $error -}} {{- if not $error -}}
{{ partial "utilities/link.html" (dict "destination" $url "text" $text "cue" $cue "tab" $tab "case" $case "class" $class "page" .Page) }} {{ partial "utilities/link.html" (dict "destination" $url "text" $text "cue" $cue "tab" $tab "case" $case "class" $class "page" .Page) }}
{{- end -}} {{- end -}}

View File

@@ -1,5 +1,5 @@
{{ define "main" }} {{ define "main" }}
<div class="container-xxl px-3 px-xxl-0"> <div class="container-xxl flex-fill px-4 px-xxl-0">
<div class="row row-cols-1 row-cols-sm-3"> <div class="row row-cols-1 row-cols-sm-3">
<div class="col col-md-2 d-none d-md-block"></div> <div class="col col-md-2 d-none d-md-block"></div>
<div class="col col-sm-12 col-md-8"> <div class="col col-sm-12 col-md-8">

View File

@@ -8,7 +8,7 @@
HUGO_VERSION = "0.119.0" HUGO_VERSION = "0.119.0"
HUGO_ENV = "production" HUGO_ENV = "production"
HUGO_ENABLEGITINFO = "true" HUGO_ENABLEGITINFO = "true"
NODE_VERSION = "18.18.0" NODE_VERSION = "18.18.2"
NPM_VERSION = "9.8.1" NPM_VERSION = "9.8.1"
# toml-docs-end netlify # toml-docs-end netlify

139
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "0.21.0-alpha", "version": "0.21.0-beta5",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "0.21.0-alpha", "version": "0.21.0-beta5",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"@fullhuman/postcss-purgecss": "^5.0.0", "@fullhuman/postcss-purgecss": "^5.0.0",
@@ -18,7 +18,7 @@
"eslint": "^8.51.0", "eslint": "^8.51.0",
"eslint-config-standard": "^17.1.0", "eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.28.1", "eslint-plugin-import": "^2.28.1",
"eslint-plugin-n": "^16.1.0", "eslint-plugin-n": "^16.2.0",
"eslint-plugin-promise": "^6.1.1", "eslint-plugin-promise": "^6.1.1",
"hugo-bin": "^0.115.0", "hugo-bin": "^0.115.0",
"markdownlint-cli2": "^0.10.0", "markdownlint-cli2": "^0.10.0",
@@ -29,7 +29,7 @@
"replace-in-files-cli": "^2.2.0", "replace-in-files-cli": "^2.2.0",
"rimraf": "^5.0.5", "rimraf": "^5.0.5",
"shx": "^0.3.4", "shx": "^0.3.4",
"stylelint": "^15.10.3", "stylelint": "^15.11.0",
"stylelint-config-standard-scss": "^11.0.0" "stylelint-config-standard-scss": "^11.0.0"
}, },
"optionalDependencies": { "optionalDependencies": {
@@ -1882,12 +1882,12 @@
} }
}, },
"node_modules/css-functions-list": { "node_modules/css-functions-list": {
"version": "3.2.0", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz", "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz",
"integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==", "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=12.22" "node": ">=12 || >=16"
} }
}, },
"node_modules/css-select": { "node_modules/css-select": {
@@ -2759,9 +2759,9 @@
} }
}, },
"node_modules/eslint-plugin-n": { "node_modules/eslint-plugin-n": {
"version": "16.1.0", "version": "16.2.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.2.0.tgz",
"integrity": "sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==", "integrity": "sha512-AQER2jEyQOt1LG6JkGJCCIFotzmlcCZFur2wdKrp1JX2cNotC7Ae0BcD/4lLv3lUAArM9uNS8z/fsvXTd0L71g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.4.0", "@eslint-community/eslint-utils": "^4.4.0",
@@ -3258,16 +3258,17 @@
} }
}, },
"node_modules/flat-cache": { "node_modules/flat-cache": {
"version": "3.0.4", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz",
"integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"flatted": "^3.1.0", "flatted": "^3.2.9",
"keyv": "^4.5.3",
"rimraf": "^3.0.2" "rimraf": "^3.0.2"
}, },
"engines": { "engines": {
"node": "^10.12.0 || >=12.0.0" "node": ">=12.0.0"
} }
}, },
"node_modules/flat-cache/node_modules/glob": { "node_modules/flat-cache/node_modules/glob": {
@@ -3306,9 +3307,9 @@
} }
}, },
"node_modules/flatted": { "node_modules/flatted": {
"version": "3.2.7", "version": "3.2.9",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
"integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
"dev": true "dev": true
}, },
"node_modules/for-each": { "node_modules/for-each": {
@@ -4762,9 +4763,9 @@
} }
}, },
"node_modules/keyv": { "node_modules/keyv": {
"version": "4.5.2", "version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
"integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"json-buffer": "3.0.1" "json-buffer": "3.0.1"
@@ -4780,9 +4781,9 @@
} }
}, },
"node_modules/known-css-properties": { "node_modules/known-css-properties": {
"version": "0.28.0", "version": "0.29.0",
"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.28.0.tgz", "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
"integrity": "sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==", "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
"dev": true "dev": true
}, },
"node_modules/levn": { "node_modules/levn": {
@@ -8575,9 +8576,9 @@
} }
}, },
"node_modules/stylelint": { "node_modules/stylelint": {
"version": "15.10.3", "version": "15.11.0",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.3.tgz", "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz",
"integrity": "sha512-aBQMMxYvFzJJwkmg+BUUg3YfPyeuCuKo2f+LOw7yYbU8AZMblibwzp9OV4srHVeQldxvSFdz0/Xu8blq2AesiA==", "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@csstools/css-parser-algorithms": "^2.3.1", "@csstools/css-parser-algorithms": "^2.3.1",
@@ -8587,12 +8588,12 @@
"balanced-match": "^2.0.0", "balanced-match": "^2.0.0",
"colord": "^2.9.3", "colord": "^2.9.3",
"cosmiconfig": "^8.2.0", "cosmiconfig": "^8.2.0",
"css-functions-list": "^3.2.0", "css-functions-list": "^3.2.1",
"css-tree": "^2.3.1", "css-tree": "^2.3.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"fast-glob": "^3.3.1", "fast-glob": "^3.3.1",
"fastest-levenshtein": "^1.0.16", "fastest-levenshtein": "^1.0.16",
"file-entry-cache": "^6.0.1", "file-entry-cache": "^7.0.0",
"global-modules": "^2.0.0", "global-modules": "^2.0.0",
"globby": "^11.1.0", "globby": "^11.1.0",
"globjoin": "^0.1.4", "globjoin": "^0.1.4",
@@ -8601,13 +8602,13 @@
"import-lazy": "^4.0.0", "import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4", "imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0", "is-plain-object": "^5.0.0",
"known-css-properties": "^0.28.0", "known-css-properties": "^0.29.0",
"mathml-tag-names": "^2.1.3", "mathml-tag-names": "^2.1.3",
"meow": "^10.1.5", "meow": "^10.1.5",
"micromatch": "^4.0.5", "micromatch": "^4.0.5",
"normalize-path": "^3.0.0", "normalize-path": "^3.0.0",
"picocolors": "^1.0.0", "picocolors": "^1.0.0",
"postcss": "^8.4.27", "postcss": "^8.4.28",
"postcss-resolve-nested-selector": "^0.1.1", "postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0", "postcss-safe-parser": "^6.0.0",
"postcss-selector-parser": "^6.0.13", "postcss-selector-parser": "^6.0.13",
@@ -8719,6 +8720,18 @@
"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
"dev": true "dev": true
}, },
"node_modules/stylelint/node_modules/file-entry-cache": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.1.tgz",
"integrity": "sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ==",
"dev": true,
"dependencies": {
"flat-cache": "^3.1.1"
},
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/stylelint/node_modules/globby": { "node_modules/stylelint/node_modules/globby": {
"version": "11.1.0", "version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
@@ -10858,9 +10871,9 @@
"requires": {} "requires": {}
}, },
"css-functions-list": { "css-functions-list": {
"version": "3.2.0", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz", "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz",
"integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==", "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==",
"dev": true "dev": true
}, },
"css-select": { "css-select": {
@@ -11504,9 +11517,9 @@
} }
}, },
"eslint-plugin-n": { "eslint-plugin-n": {
"version": "16.1.0", "version": "16.2.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.1.0.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.2.0.tgz",
"integrity": "sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==", "integrity": "sha512-AQER2jEyQOt1LG6JkGJCCIFotzmlcCZFur2wdKrp1JX2cNotC7Ae0BcD/4lLv3lUAArM9uNS8z/fsvXTd0L71g==",
"dev": true, "dev": true,
"requires": { "requires": {
"@eslint-community/eslint-utils": "^4.4.0", "@eslint-community/eslint-utils": "^4.4.0",
@@ -11883,12 +11896,13 @@
} }
}, },
"flat-cache": { "flat-cache": {
"version": "3.0.4", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz",
"integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==",
"dev": true, "dev": true,
"requires": { "requires": {
"flatted": "^3.1.0", "flatted": "^3.2.9",
"keyv": "^4.5.3",
"rimraf": "^3.0.2" "rimraf": "^3.0.2"
}, },
"dependencies": { "dependencies": {
@@ -11918,9 +11932,9 @@
} }
}, },
"flatted": { "flatted": {
"version": "3.2.7", "version": "3.2.9",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
"integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
"dev": true "dev": true
}, },
"for-each": { "for-each": {
@@ -12966,9 +12980,9 @@
} }
}, },
"keyv": { "keyv": {
"version": "4.5.2", "version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
"integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
"dev": true, "dev": true,
"requires": { "requires": {
"json-buffer": "3.0.1" "json-buffer": "3.0.1"
@@ -12981,9 +12995,9 @@
"dev": true "dev": true
}, },
"known-css-properties": { "known-css-properties": {
"version": "0.28.0", "version": "0.29.0",
"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.28.0.tgz", "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
"integrity": "sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==", "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
"dev": true "dev": true
}, },
"levn": { "levn": {
@@ -15627,9 +15641,9 @@
} }
}, },
"stylelint": { "stylelint": {
"version": "15.10.3", "version": "15.11.0",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.3.tgz", "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz",
"integrity": "sha512-aBQMMxYvFzJJwkmg+BUUg3YfPyeuCuKo2f+LOw7yYbU8AZMblibwzp9OV4srHVeQldxvSFdz0/Xu8blq2AesiA==", "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@csstools/css-parser-algorithms": "^2.3.1", "@csstools/css-parser-algorithms": "^2.3.1",
@@ -15639,12 +15653,12 @@
"balanced-match": "^2.0.0", "balanced-match": "^2.0.0",
"colord": "^2.9.3", "colord": "^2.9.3",
"cosmiconfig": "^8.2.0", "cosmiconfig": "^8.2.0",
"css-functions-list": "^3.2.0", "css-functions-list": "^3.2.1",
"css-tree": "^2.3.1", "css-tree": "^2.3.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"fast-glob": "^3.3.1", "fast-glob": "^3.3.1",
"fastest-levenshtein": "^1.0.16", "fastest-levenshtein": "^1.0.16",
"file-entry-cache": "^6.0.1", "file-entry-cache": "^7.0.0",
"global-modules": "^2.0.0", "global-modules": "^2.0.0",
"globby": "^11.1.0", "globby": "^11.1.0",
"globjoin": "^0.1.4", "globjoin": "^0.1.4",
@@ -15653,13 +15667,13 @@
"import-lazy": "^4.0.0", "import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4", "imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0", "is-plain-object": "^5.0.0",
"known-css-properties": "^0.28.0", "known-css-properties": "^0.29.0",
"mathml-tag-names": "^2.1.3", "mathml-tag-names": "^2.1.3",
"meow": "^10.1.5", "meow": "^10.1.5",
"micromatch": "^4.0.5", "micromatch": "^4.0.5",
"normalize-path": "^3.0.0", "normalize-path": "^3.0.0",
"picocolors": "^1.0.0", "picocolors": "^1.0.0",
"postcss": "^8.4.27", "postcss": "^8.4.28",
"postcss-resolve-nested-selector": "^0.1.1", "postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0", "postcss-safe-parser": "^6.0.0",
"postcss-selector-parser": "^6.0.13", "postcss-selector-parser": "^6.0.13",
@@ -15680,6 +15694,15 @@
"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
"dev": true "dev": true
}, },
"file-entry-cache": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.1.tgz",
"integrity": "sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ==",
"dev": true,
"requires": {
"flat-cache": "^3.1.1"
}
},
"globby": { "globby": {
"version": "11.1.0", "version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "0.21.0-alpha", "version": "0.21.0-beta5",
"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",
@@ -76,7 +76,7 @@
"eslint": "^8.51.0", "eslint": "^8.51.0",
"eslint-config-standard": "^17.1.0", "eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.28.1", "eslint-plugin-import": "^2.28.1",
"eslint-plugin-n": "^16.1.0", "eslint-plugin-n": "^16.2.0",
"eslint-plugin-promise": "^6.1.1", "eslint-plugin-promise": "^6.1.1",
"hugo-bin": "^0.115.0", "hugo-bin": "^0.115.0",
"markdownlint-cli2": "^0.10.0", "markdownlint-cli2": "^0.10.0",
@@ -87,7 +87,7 @@
"replace-in-files-cli": "^2.2.0", "replace-in-files-cli": "^2.2.0",
"rimraf": "^5.0.5", "rimraf": "^5.0.5",
"shx": "^0.3.4", "shx": "^0.3.4",
"stylelint": "^15.10.3", "stylelint": "^15.11.0",
"stylelint-config-standard-scss": "^11.0.0" "stylelint-config-standard-scss": "^11.0.0"
}, },
"optionalDependencies": { "optionalDependencies": {