mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 18:14:28 +00:00
Compare commits
116 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
42a4fc4618 | ||
![]() |
683ffff1b2 | ||
![]() |
7738c06b6c | ||
![]() |
9aca661574 | ||
![]() |
3d5440fa3d | ||
![]() |
4854d238b7 | ||
![]() |
898764eb12 | ||
![]() |
40e66bba8a | ||
![]() |
a543db250f | ||
![]() |
8d6b34716f | ||
![]() |
ea89e1c8b5 | ||
![]() |
fb6d47c33e | ||
![]() |
dc71f43faf | ||
![]() |
78df40873f | ||
![]() |
43f996acc3 | ||
![]() |
dd51fbd542 | ||
![]() |
49df936f3b | ||
![]() |
b6643f12dd | ||
![]() |
2de996242a | ||
![]() |
3b8611ebd0 | ||
![]() |
3274c7453e | ||
![]() |
ff622c8080 | ||
![]() |
455e77b3e9 | ||
![]() |
22c85f7997 | ||
![]() |
d8799fabb5 | ||
![]() |
8ae01a2ce1 | ||
![]() |
d9d3054f22 | ||
![]() |
0bf25f7acd | ||
![]() |
d5c228d43c | ||
![]() |
96886e20d7 | ||
![]() |
171259fb29 | ||
![]() |
a706936849 | ||
![]() |
f538f3b772 | ||
![]() |
a848fccec8 | ||
![]() |
69352dd60a | ||
![]() |
e1c8641d41 | ||
![]() |
deb8dfb3cb | ||
![]() |
0dcd3f02c9 | ||
![]() |
d3105436a3 | ||
![]() |
38c982f7f4 | ||
![]() |
9c19327e19 | ||
![]() |
a9f2d56dd6 | ||
![]() |
434e02e7f5 | ||
![]() |
7e44d71ecb | ||
![]() |
be8c6d539b | ||
![]() |
3db2b1f734 | ||
![]() |
6802524aac | ||
![]() |
71cdad17d3 | ||
![]() |
626b82a619 | ||
![]() |
fbb60a0622 | ||
![]() |
a0684a8a49 | ||
![]() |
55516602e5 | ||
![]() |
fcab852216 | ||
![]() |
cb714201bc | ||
![]() |
c8de62f46b | ||
![]() |
53ab00357e | ||
![]() |
0cc246a79a | ||
![]() |
21541b9f80 | ||
![]() |
e3d4339730 | ||
![]() |
710efd0caa | ||
![]() |
493ff64be0 | ||
![]() |
f2e35074c2 | ||
![]() |
7597710980 | ||
![]() |
c44340ef9e | ||
![]() |
8dfe0cb9d4 | ||
![]() |
fdb8287951 | ||
![]() |
f4f9b7c754 | ||
![]() |
4bb5ba728a | ||
![]() |
bdb8c43fb9 | ||
![]() |
63e51006ed | ||
![]() |
37b623e48c | ||
![]() |
27019594ca | ||
![]() |
d4ee11b7a5 | ||
![]() |
009314943b | ||
![]() |
826b5f58d8 | ||
![]() |
f6fb80d690 | ||
![]() |
8ed98bc5b4 | ||
![]() |
0cc3775370 | ||
![]() |
7be81f4393 | ||
![]() |
869f696a67 | ||
![]() |
c6d942b350 | ||
![]() |
18275acc80 | ||
![]() |
a85540f8de | ||
![]() |
3c93828d4f | ||
![]() |
8ca629978f | ||
![]() |
d99d416838 | ||
![]() |
b58a69b2ad | ||
![]() |
49d7736e1a | ||
![]() |
04531b6158 | ||
![]() |
b7fb9fb05b | ||
![]() |
4a78bd9e6b | ||
![]() |
4d0007a26b | ||
![]() |
ac7e564857 | ||
![]() |
f804ab747c | ||
![]() |
cfd292ddff | ||
![]() |
d4b0c379e2 | ||
![]() |
60ebd5fd41 | ||
![]() |
19a4398c90 | ||
![]() |
841c2e397f | ||
![]() |
3f42d781ec | ||
![]() |
dd9fcc6cbd | ||
![]() |
70aed1ed63 | ||
![]() |
1c635c814c | ||
![]() |
ff1c8ff056 | ||
![]() |
44c70f4036 | ||
![]() |
28f13f8385 | ||
![]() |
849d481cd6 | ||
![]() |
a0987e33a9 | ||
![]() |
f5dae5caa2 | ||
![]() |
d640ed1f8e | ||
![]() |
0c46c0080e | ||
![]() |
7319a3f9e3 | ||
![]() |
2e6ba557c8 | ||
![]() |
1d24b8ff0e | ||
![]() |
df307be37c | ||
![]() |
5d09963bb5 |
17
README.md
17
README.md
@@ -9,25 +9,28 @@
|
|||||||
<!-- Badges -->
|
<!-- Badges -->
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://gohugo.io" alt="Hugo website">
|
<a href="https://gohugo.io" alt="Hugo website">
|
||||||
<img src="https://img.shields.io/badge/generator-hugo-brightgreen" />
|
<img src="https://img.shields.io/badge/generator-hugo-brightgreen">
|
||||||
|
</a>
|
||||||
|
<a href="https://www.npmjs.com/package/%40gethinode/hinode" alt="npm package">
|
||||||
|
<img src="https://img.shields.io/npm/v/%40gethinode/hinode">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://app.netlify.com/sites/gethinode-demo/deploys" alt="Netlify Status">
|
<a href="https://app.netlify.com/sites/gethinode-demo/deploys" alt="Netlify Status">
|
||||||
<img src="https://img.shields.io/netlify/0ad42e3e-fdfa-4d37-8e26-58badd429a67" />
|
<img src="https://img.shields.io/netlify/0ad42e3e-fdfa-4d37-8e26-58badd429a67">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://stats.uptimerobot.com/xyGVYhLJmV" alt="UptimeRobot Status">
|
<a href="https://stats.uptimerobot.com/xyGVYhLJmV" alt="UptimeRobot Status">
|
||||||
<img src="https://img.shields.io/uptimerobot/status/m791334689-73d9dfc82030f4f955b2d6bb" />
|
<img src="https://img.shields.io/uptimerobot/status/m791334689-73d9dfc82030f4f955b2d6bb">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/gethinode/hinode/commits/main" alt="Last commit">
|
<a href="https://github.com/gethinode/hinode/commits/main" alt="Last commit">
|
||||||
<img src="https://img.shields.io/github/last-commit/gethinode/hinode.svg" />
|
<img src="https://img.shields.io/github/last-commit/gethinode/hinode.svg">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/gethinode/hinode/issues" alt="Issues">
|
<a href="https://github.com/gethinode/hinode/issues" alt="Issues">
|
||||||
<img src="https://img.shields.io/github/issues/gethinode/hinode.svg" />
|
<img src="https://img.shields.io/github/issues/gethinode/hinode.svg">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/gethinode/hinode/pulls" alt="Pulls">
|
<a href="https://github.com/gethinode/hinode/pulls" alt="Pulls">
|
||||||
<img src="https://img.shields.io/github/issues-pr-raw/gethinode/hinode.svg" />
|
<img src="https://img.shields.io/github/issues-pr-raw/gethinode/hinode.svg">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/gethinode/hinode/blob/main/LICENSE" alt="License">
|
<a href="https://github.com/gethinode/hinode/blob/main/LICENSE" alt="License">
|
||||||
<img src="https://img.shields.io/github/license/gethinode/hinode" />
|
<img src="https://img.shields.io/github/license/gethinode/hinode">
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
14
assets/js/alert.js
Normal file
14
assets/js/alert.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
const alert = document.getElementById('page-alert')
|
||||||
|
const closeBtn = document.getElementById('page-alert-btn-close')
|
||||||
|
if (alert !== null && closeBtn !== null) {
|
||||||
|
const version = alert.getAttribute('data-page-alert-version') || 'unknown'
|
||||||
|
const hideAlert = sessionStorage.getItem(`page-alert-${version}`) !== null
|
||||||
|
if (hideAlert) {
|
||||||
|
alert.classList.add('d-none')
|
||||||
|
}
|
||||||
|
|
||||||
|
closeBtn.addEventListener('click', () => {
|
||||||
|
sessionStorage.setItem(`page-alert-${version}`, 'seen')
|
||||||
|
alert.classList.add('d-none')
|
||||||
|
})
|
||||||
|
}
|
@@ -62,7 +62,9 @@
|
|||||||
// scss-docs-end awesome
|
// scss-docs-end awesome
|
||||||
|
|
||||||
// Import Hinode theme styles
|
// Import Hinode theme styles
|
||||||
|
@import "components/alert.scss";
|
||||||
@import "components/blockquote.scss";
|
@import "components/blockquote.scss";
|
||||||
|
@import "components/breadcrumb.scss";
|
||||||
@import "components/buttons.scss";
|
@import "components/buttons.scss";
|
||||||
@import "components/card.scss";
|
@import "components/card.scss";
|
||||||
@import "components/carousel.scss";
|
@import "components/carousel.scss";
|
||||||
@@ -77,6 +79,7 @@
|
|||||||
@import "components/search.scss";
|
@import "components/search.scss";
|
||||||
@import "components/sidebar.scss";
|
@import "components/sidebar.scss";
|
||||||
@import "components/syntax.scss";
|
@import "components/syntax.scss";
|
||||||
|
@import "components/timeline.scss";
|
||||||
@import "components/toc.scss";
|
@import "components/toc.scss";
|
||||||
@import "components/vimeo.scss";
|
@import "components/vimeo.scss";
|
||||||
@import "common/animation.scss";
|
@import "common/animation.scss";
|
||||||
|
3
assets/scss/components/_alert.scss
Normal file
3
assets/scss/components/_alert.scss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.alert-no-decoration {
|
||||||
|
--bs-alert-border-radius: none;
|
||||||
|
}
|
6
assets/scss/components/_breadcrumb.scss
Normal file
6
assets/scss/components/_breadcrumb.scss
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
// scss-docs-start breadcrumb
|
||||||
|
.breadcrumb {
|
||||||
|
padding-top: 0.3 * $navbar-offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
// scss-docs-end breadcrumb
|
@@ -13,7 +13,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.preview-background {
|
.preview-background {
|
||||||
background-color: var(--bs-secondary-bg) if($enable-important-utilities, !important, null);
|
background-color: var(--bs-dark-bg-subtle) if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@if $enable-dark-mode {
|
@if $enable-dark-mode {
|
||||||
|
165
assets/scss/components/_timeline.scss
Normal file
165
assets/scss/components/_timeline.scss
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
// scss-docs-start timeline
|
||||||
|
$connector-radius: 0.8rem;
|
||||||
|
$semi-circle-radius: 8rem;
|
||||||
|
$semi-circle-border: 0.2rem;
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--timeline-highlight: var(--bs-primary);
|
||||||
|
--timeline-icon-radius: #{$semi-circle-radius};
|
||||||
|
--timeline-offset: 50%;
|
||||||
|
--timeline-connector-bg: var(--bs-body-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $state in map-keys($theme-colors) {
|
||||||
|
.timeline-#{$state} {
|
||||||
|
--timeline-highlight: var(--#{$prefix}#{$state});
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-bg-#{$state} {
|
||||||
|
--timeline-connector-bg: var(--#{$prefix}#{$state}-bg-subtle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// scss-docs-end timeline
|
||||||
|
|
||||||
|
.timeline, .timeline-sm {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-sm {
|
||||||
|
--timeline-icon-radius: calc(#{$semi-circle-radius} / 2);
|
||||||
|
--timeline-offset: 25%
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline::before, .timeline-sm::before {
|
||||||
|
content: "";
|
||||||
|
width: 2 * $semi-circle-border;
|
||||||
|
margin: 0 auto;
|
||||||
|
background: var(--bs-body-color);
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-sm::before {
|
||||||
|
margin: 0 calc(var(--timeline-offset) - #{$semi-circle-border});
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-semi-circle-start, .timeline-semi-circle-end {
|
||||||
|
width: var(--timeline-icon-radius);
|
||||||
|
height: var(--timeline-icon-radius);
|
||||||
|
border-radius: 100%;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-semi-circle-start {
|
||||||
|
left: -$semi-circle-border;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-semi-circle-end {
|
||||||
|
left: $semi-circle-border;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-semi-circle-start::before {
|
||||||
|
content: "";
|
||||||
|
width: var(--timeline-icon-radius);
|
||||||
|
height: var(--timeline-icon-radius);
|
||||||
|
border-radius: 100%;
|
||||||
|
border: $semi-circle-border solid;
|
||||||
|
position: absolute;
|
||||||
|
border-color: transparent var(--timeline-highlight) var(--timeline-highlight) var(--timeline-highlight);
|
||||||
|
transform: rotate(-90deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-semi-circle-start::after {
|
||||||
|
content: "";
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: var(--timeline-icon-radius);
|
||||||
|
height: var(--timeline-icon-radius);
|
||||||
|
border-radius: 100%;
|
||||||
|
border: $semi-circle-border solid;
|
||||||
|
position: absolute;
|
||||||
|
border-color: var(--timeline-highlight) var(--timeline-highlight) var(--timeline-highlight) transparent;
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-semi-circle-end::before {
|
||||||
|
content: "";
|
||||||
|
width: var(--timeline-icon-radius);
|
||||||
|
height: var(--timeline-icon-radius);
|
||||||
|
border-radius: 100%;
|
||||||
|
border: $semi-circle-border solid;
|
||||||
|
position: absolute;
|
||||||
|
border-color: transparent var(--timeline-highlight) var(--timeline-highlight) var(--timeline-highlight);
|
||||||
|
transform: rotate(-225deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-semi-circle-end::after {
|
||||||
|
content: "";
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: var(--timeline-icon-radius);
|
||||||
|
height: var(--timeline-icon-radius);
|
||||||
|
border-radius: 100%;
|
||||||
|
border: $semi-circle-border solid;
|
||||||
|
position: absolute;
|
||||||
|
border-color: var(--timeline-highlight) var(--timeline-highlight) var(--timeline-highlight) transparent;
|
||||||
|
transform: rotate(-180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-description-text-start {
|
||||||
|
border-bottom: $semi-circle-border solid var(--timeline-highlight);
|
||||||
|
margin-right: 2 * $connector-radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-description-text-end {
|
||||||
|
border-bottom: $semi-circle-border solid var(--timeline-highlight);
|
||||||
|
margin-left: 2 * $connector-radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-panel-start, .timeline-panel-end, .timeline-connector-start, .timeline-connector-end {
|
||||||
|
top: calc(var(--timeline-icon-radius) / 2);
|
||||||
|
position: relative;
|
||||||
|
width: calc(var(--timeline-icon-radius) / 2);
|
||||||
|
height: calc($semi-circle-border + var(--timeline-icon-radius) / 2);
|
||||||
|
border: $semi-circle-border solid var(--timeline-highlight);
|
||||||
|
border-bottom: none;
|
||||||
|
border-right: none;
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-panel-start {
|
||||||
|
top: 50%;
|
||||||
|
right: 50%;
|
||||||
|
position: absolute;
|
||||||
|
width: calc(var(--timeline-icon-radius) * 2);
|
||||||
|
width: 2 * $connector-radius;
|
||||||
|
height: 50%;
|
||||||
|
border-top: $semi-circle-border solid var(--timeline-highlight);
|
||||||
|
border-left: $semi-circle-border solid var(--timeline-highlight);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-panel-end {
|
||||||
|
top: 50%;
|
||||||
|
position: absolute;
|
||||||
|
width: calc(var(--timeline-icon-radius) * 2);
|
||||||
|
width: 2 * $connector-radius;
|
||||||
|
height: 50%;
|
||||||
|
border-top: $semi-circle-border solid var(--timeline-highlight);
|
||||||
|
border-right: $semi-circle-border solid var(--timeline-highlight);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-dot::after {
|
||||||
|
display: inline-block;
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: var(--timeline-offset);
|
||||||
|
margin: (-$connector-radius) 0 0 (-$connector-radius);
|
||||||
|
width: 2 * $connector-radius;
|
||||||
|
height: 2 * $connector-radius;
|
||||||
|
border-radius: 100%;
|
||||||
|
border: ($semi-circle-border * 1.5) solid var(--timeline-connector-bg);
|
||||||
|
color: var(--timeline-highlight);
|
||||||
|
background: var(--timeline-highlight);
|
||||||
|
}
|
@@ -27,6 +27,20 @@ defaultContentLanguage = "en"
|
|||||||
defaultContentLanguageInSubdir = true
|
defaultContentLanguageInSubdir = true
|
||||||
# toml-docs-end language
|
# toml-docs-end language
|
||||||
|
|
||||||
|
# toml-docs-start redirect
|
||||||
|
[outputFormats.REDIR]
|
||||||
|
mediaType = "text/netlify"
|
||||||
|
baseName = "_redirects"
|
||||||
|
isPlainText = true
|
||||||
|
notAlternative = true
|
||||||
|
|
||||||
|
[mediaTypes."text/netlify"]
|
||||||
|
delimiter = ""
|
||||||
|
|
||||||
|
[outputs]
|
||||||
|
home = ["HTML", "RSS", "REDIR"]
|
||||||
|
# toml-docs-end redirect
|
||||||
|
|
||||||
# toml-docs-start build
|
# toml-docs-start build
|
||||||
[build]
|
[build]
|
||||||
writeStats = true
|
writeStats = true
|
||||||
@@ -71,7 +85,7 @@ defaultContentLanguageInSubdir = true
|
|||||||
[module]
|
[module]
|
||||||
[module.hugoVersion]
|
[module.hugoVersion]
|
||||||
extended = true
|
extended = true
|
||||||
min = "0.81.0"
|
min = "0.110.0"
|
||||||
max = ""
|
max = ""
|
||||||
[[module.mounts]]
|
[[module.mounts]]
|
||||||
source = "assets"
|
source = "assets"
|
@@ -8,10 +8,9 @@
|
|||||||
|
|
||||||
# toml-docs-start docs
|
# toml-docs-start docs
|
||||||
[docs]
|
[docs]
|
||||||
version = "0.8"
|
|
||||||
basePath = ""
|
|
||||||
github = "https://github.com/gethinode/hinode"
|
github = "https://github.com/gethinode/hinode"
|
||||||
release = "https://github.com/gethinode/hinode/releases/tag/"
|
release = "https://github.com/gethinode/hinode/releases/tag/"
|
||||||
|
checkVersion = false
|
||||||
# toml-docs-end docs
|
# toml-docs-end docs
|
||||||
|
|
||||||
# toml-docs-start home
|
# toml-docs-start home
|
||||||
@@ -31,7 +30,7 @@
|
|||||||
fixed = true
|
fixed = true
|
||||||
offset = "3.8em"
|
offset = "3.8em"
|
||||||
search = true
|
search = true
|
||||||
breadcrumb = false
|
breadcrumb = true
|
||||||
toc = true
|
toc = true
|
||||||
sidebar = true
|
sidebar = true
|
||||||
# toml-docs-end navigation
|
# toml-docs-end navigation
|
||||||
|
@@ -1 +0,0 @@
|
|||||||
canonifyURLs = false
|
|
@@ -2,7 +2,7 @@
|
|||||||
title: About
|
title: About
|
||||||
description: Hinode is a clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
description: Hinode is a clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
||||||
date: 2022-04-11
|
date: 2022-04-11
|
||||||
updated: 2023-02-11
|
updated: 2023-06-26
|
||||||
showComments: false
|
showComments: false
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -35,8 +35,8 @@ Additional features include:
|
|||||||
* Switching between light mode and dark mode
|
* Switching between light mode and dark mode
|
||||||
* Support for multiple languages
|
* Support for multiple languages
|
||||||
* Reusable Bootstrap components through configurable shortcodes and partials
|
* Reusable Bootstrap components through configurable shortcodes and partials
|
||||||
|
* Versioned documentation, including sidebar navigation and version switcher
|
||||||
* Embedded comments through light-weight integration with GitHub via [utteranc.es]({{< param "links.utterances" >}})
|
* Embedded comments through light-weight integration with GitHub via [utteranc.es]({{< param "links.utterances" >}})
|
||||||
* Integrated sidebar navigation for content-heavy sections, such as documentation pages
|
|
||||||
* Reponsive image handling for multiple screen sizes and resolutions
|
* Reponsive image handling for multiple screen sizes and resolutions
|
||||||
* Optimized search results, scoring 100 points for SEO on [PageSpeed Insights]({{< param "links.pagespeed" >}})
|
* Optimized search results, scoring 100 points for SEO on [PageSpeed Insights]({{< param "links.pagespeed" >}})
|
||||||
* Secure by default, scoring A+ on [Mozilla Observatory test]({{< param "links.observatory" >}})
|
* Secure by default, scoring A+ on [Mozilla Observatory test]({{< param "links.observatory" >}})
|
||||||
|
@@ -127,7 +127,7 @@ As an example, the following shortcode displays a button that, when clicked, tri
|
|||||||
Trigger panel
|
Trigger panel
|
||||||
{{</* /button */>}}
|
{{</* /button */>}}
|
||||||
|
|
||||||
{{</* collapse id="collapse-1" class="p-3 border rounded" */>}}
|
{{</* collapse id="collapse-1" class="p-3 border rounded bg-primary-subtle" */>}}
|
||||||
Some placeholder content for the collapse component. This panel is <i>hidden by default</i> but
|
Some placeholder content for the collapse component. This panel is <i>hidden by default</i> but
|
||||||
revealed when the user activates the relevant trigger.
|
revealed when the user activates the relevant trigger.
|
||||||
{{</* /collapse */>}}
|
{{</* /collapse */>}}
|
||||||
@@ -245,6 +245,16 @@ Loading...
|
|||||||
{{< /example>}}
|
{{< /example>}}
|
||||||
<!-- markdownlint-enable MD037 -->
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Timeline
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a timeline with the file `data/timeline-en.yml` as data.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* timeline data="timeline-en" background="dark" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
## Toast
|
## Toast
|
||||||
|
|
||||||
As an example, the following shortcode displays a button that, when clicked, triggers the toast message.
|
As an example, the following shortcode displays a button that, when clicked, triggers the toast message.
|
||||||
|
@@ -3,6 +3,7 @@ slug: over-mij
|
|||||||
title: Over mij
|
title: Over mij
|
||||||
description: Een blog en documentatie thema voor Hugo gebaseerd op Bootstrap 5.
|
description: Een blog en documentatie thema voor Hugo gebaseerd op Bootstrap 5.
|
||||||
date: 2023-02-17
|
date: 2023-02-17
|
||||||
|
updated: 2023-06-26
|
||||||
showComments: false
|
showComments: false
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -36,8 +37,8 @@ Overige functies:
|
|||||||
* Omschakelen tussen donkere en lichte modus
|
* Omschakelen tussen donkere en lichte modus
|
||||||
* Ondersteuning voor meerdere talen
|
* Ondersteuning voor meerdere talen
|
||||||
* Herbruikbare Bootstrap componenten via shortcodes en partials
|
* Herbruikbare Bootstrap componenten via shortcodes en partials
|
||||||
|
* Versiebeheer van documentatiepagina's, inclusief secundaire navigatie en selectie van versies
|
||||||
* Integreren van commentaar via [utteranc.es]({{< param "links.utterances" >}})
|
* Integreren van commentaar via [utteranc.es]({{< param "links.utterances" >}})
|
||||||
* Secundaire navigatie voor bijvoorbeeld documentatie
|
|
||||||
* Optimalisering van foto's voor meerdere schermafmetingen en resoluties
|
* Optimalisering van foto's voor meerdere schermafmetingen en resoluties
|
||||||
* 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" >}})
|
||||||
|
@@ -246,6 +246,16 @@ Loading...
|
|||||||
{{< /example>}}
|
{{< /example>}}
|
||||||
<!-- markdownlint-enable MD037 -->
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Timeline
|
||||||
|
|
||||||
|
De volgende shortcode toont een tijdslijn met het bestand `data/timeline-nl.yml` als input.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* timeline data="timeline-nl" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
## Toast
|
## Toast
|
||||||
|
|
||||||
De volgende shortcode toont een knop die een bericht laat verschijnen op het scherm.
|
De volgende shortcode toont een knop die een bericht laat verschijnen op het scherm.
|
||||||
|
35
data/timeline-en.yml
Normal file
35
data/timeline-en.yml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# This file holds all menu entries for the docs sidebar
|
||||||
|
|
||||||
|
- title: Product launch
|
||||||
|
icon: fas rocket
|
||||||
|
color: primary
|
||||||
|
date: 2023-07-01
|
||||||
|
url: https://github.com/gethinode/hinode/releases/tag/v0.15.2
|
||||||
|
content:
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
||||||
|
|
||||||
|
- title: I18N support
|
||||||
|
icon: fas globe
|
||||||
|
color: success
|
||||||
|
date: 2023-05-06
|
||||||
|
url: v0.14.0
|
||||||
|
content:
|
||||||
|
Lorem ipsum dolor sit amet.
|
||||||
|
|
||||||
|
- title: New feature
|
||||||
|
icon: fas house
|
||||||
|
color: warning
|
||||||
|
date: 2023-02-04
|
||||||
|
url: v0.8.1
|
||||||
|
content:
|
||||||
|
Cupiditate ducimus officiis quod!
|
||||||
|
|
||||||
|
- title: Beta release
|
||||||
|
icon: fas heart
|
||||||
|
color: info
|
||||||
|
date: 2022-11-30
|
||||||
|
# url: v0.1
|
||||||
|
content:
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
35
data/timeline-nl.yml
Normal file
35
data/timeline-nl.yml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# This file holds all menu entries for the docs sidebar
|
||||||
|
|
||||||
|
- title: Productlancering
|
||||||
|
icon: fas rocket
|
||||||
|
color: primary
|
||||||
|
date: 2023-07-01
|
||||||
|
url: https://github.com/gethinode/hinode/releases/tag/v0.15.2
|
||||||
|
content:
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
||||||
|
|
||||||
|
- title: Internationalisering
|
||||||
|
icon: fas globe
|
||||||
|
color: success
|
||||||
|
date: 2023-05-06
|
||||||
|
url: v0.14.0
|
||||||
|
content:
|
||||||
|
Lorem ipsum dolor sit amet.
|
||||||
|
|
||||||
|
- title: Nieuwe functie
|
||||||
|
icon: fas house
|
||||||
|
color: warning
|
||||||
|
date: 2023-02-04
|
||||||
|
url: v0.8.1
|
||||||
|
content:
|
||||||
|
Cupiditate ducimus officiis quod!
|
||||||
|
|
||||||
|
- title: Beta release
|
||||||
|
icon: fas heart
|
||||||
|
color: info
|
||||||
|
date: 2022-11-30
|
||||||
|
# url: v0.1
|
||||||
|
content:
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
@@ -89,6 +89,12 @@
|
|||||||
translation: "Link"
|
translation: "Link"
|
||||||
- id: code
|
- id: code
|
||||||
translation: "Code"
|
translation: "Code"
|
||||||
|
- id: latest
|
||||||
|
translation: "latest"
|
||||||
|
- id: allVersions
|
||||||
|
translation: "All versions"
|
||||||
|
- id: newerVersionAlert
|
||||||
|
translation: "There is a newer version of {{ . }}!"
|
||||||
|
|
||||||
# 404 page
|
# 404 page
|
||||||
- id: pageNotFound
|
- id: pageNotFound
|
||||||
|
@@ -79,6 +79,12 @@
|
|||||||
translation: "Link"
|
translation: "Link"
|
||||||
- id: code
|
- id: code
|
||||||
translation: "Code"
|
translation: "Code"
|
||||||
|
- id: latest
|
||||||
|
translation: "meest recente"
|
||||||
|
- id: allVersions
|
||||||
|
translation: "Alle versies"
|
||||||
|
- id: newerVersionAlert
|
||||||
|
translation: "Er is een nieuwere versie van {{ . }}!"
|
||||||
|
|
||||||
# 404 page
|
# 404 page
|
||||||
- id: pageNotFound
|
- id: pageNotFound
|
||||||
|
@@ -1,6 +1,16 @@
|
|||||||
{{- $section := .Section }}
|
{{- $section := .Section }}
|
||||||
{{- with partial "utilities/GetMenu" . }}{{ $.Scratch.Set "sidebar" . }}{{ end -}}
|
{{- $version := partial "utilities/GetVersion.html" (dict "page" . "base" true) -}}
|
||||||
{{ $.Scratch.Set "version" (site.Param (printf "%s.version" .Section)) }}
|
{{- $.Scratch.Set "version" $version -}}
|
||||||
|
{{ with partial "utilities/GetMenu" (dict "page" . "version" $version) }}{{ $.Scratch.Set "sidebar" . }}{{ end }}
|
||||||
|
|
||||||
|
{{- if and site.Params.docs.checkVersion $version -}}
|
||||||
|
{{- if ne $version "latest" -}}
|
||||||
|
{{- if partial "utilities/IsOlder" (dict "current" $version) -}}
|
||||||
|
{{- $.Scratch.Set "pageAlertMsg" (T "newerVersionAlert" site.Title) -}}
|
||||||
|
{{- $.Scratch.Set "pageAlertURL" (or site.Params.docs.latestURL site.baseURL) -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html lang="{{ .Site.Language.Lang }}" class="no-js">
|
<html lang="{{ .Site.Language.Lang }}" class="no-js">
|
||||||
|
10
layouts/index.redir
Normal file
10
layouts/index.redir
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{{- range .Site.Params.docs.releases -}}
|
||||||
|
{{- if .redirect -}}
|
||||||
|
{{ urls.JoinPath .url "/*" }} {{ urls.JoinPath .redirect ":splat" }} 200
|
||||||
|
{{ end }}
|
||||||
|
{{- end -}}
|
||||||
|
{{ range $p := .Site.AllPages }}
|
||||||
|
{{- range .Aliases -}}
|
||||||
|
{{ if hasPrefix . "." }}{{ urls.JoinPath $p.RelPermalink . }}{{ else }}{{ . }}{{ end }} {{ $p.RelPermalink }}
|
||||||
|
{{ end }}
|
||||||
|
{{- end -}}
|
@@ -98,7 +98,7 @@
|
|||||||
{{- $scaled = $img.Fit (printf "%s webp" $dim) -}}
|
{{- $scaled = $img.Fit (printf "%s webp" $dim) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- $scaled = $scaled | resources.Copy (replace $img.RelPermalink $clean (printf "-%s.webp" $dim)) -}}
|
{{- $scaled = $scaled | resources.Copy (replace $img.RelPermalink $clean (printf "-%s.webp" $dim)) -}}
|
||||||
{{- $imgset = printf "%s, %s %sw" $imgset $scaled.RelPermalink (index $widths $index) -}}
|
{{- $imgset = printf "%s, %s %sw" $imgset $scaled.Permalink (index $widths $index) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- $imgset = strings.TrimPrefix ", " $imgset -}}
|
{{- $imgset = strings.TrimPrefix ", " $imgset -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -145,7 +145,7 @@
|
|||||||
srcset="{{ . }}"
|
srcset="{{ . }}"
|
||||||
sizes="100vw"
|
sizes="100vw"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
src="{{ $fallbackURL }}"
|
src="{{ absURL $fallbackURL }}"
|
||||||
alt="{{ $title }}">
|
alt="{{ $title }}">
|
||||||
</div>
|
</div>
|
||||||
{{- if $caption -}}
|
{{- if $caption -}}
|
||||||
|
@@ -48,6 +48,51 @@
|
|||||||
</li>
|
</li>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
<!-- Inline partial to render the version switcher -->
|
||||||
|
{{- define "partials/navbar-versions.html" -}}
|
||||||
|
{{- $size := .size -}}
|
||||||
|
{{- $collapsed := .collapsed -}}
|
||||||
|
{{- $page := .page -}}
|
||||||
|
{{- $list := site.Params.docs.releases -}}
|
||||||
|
{{- $version := partial "utilities/GetVersion.html" (dict "page" $page) -}}
|
||||||
|
|
||||||
|
<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-expanded="false" id="navbar-version-switch">
|
||||||
|
{{ if $collapsed }}{{ site.Title }} {{ end }}{{ $version }}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbar-version-switch">
|
||||||
|
{{- range $index, $item := $list -}}
|
||||||
|
{{- $active := eq $item.label $version -}}
|
||||||
|
{{- $disabled := false -}}
|
||||||
|
{{- if site.IsServer }}
|
||||||
|
{{- $disabled = and $item.redirect (gt (len $item.redirect) 0) -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{ if $item.url }}
|
||||||
|
<li>
|
||||||
|
{{- $url := (path.Join $item.url) | relLangURL -}}
|
||||||
|
<a class="pe-5 dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}{{ if $active }} active{{ end }}{{ if $disabled }} disabled{{ end }}" href="{{ $url }}">{{ $item.label }}
|
||||||
|
{{ if $item.latest }} ({{ T "latest" }}){{ end }}
|
||||||
|
{{ if $active }}
|
||||||
|
<span class="position-absolute end-0 me-3">{{- partial "assets/icon.html" (dict "icon" "fas check") }}</span>
|
||||||
|
{{ end }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{{ else }}
|
||||||
|
{{ if gt $index 0}}<li><hr class="dropdown-divider"></li>{{ end }}
|
||||||
|
<li><span class="dropdown-header fs-6">{{ $item.label }}</span></li>
|
||||||
|
{{ end }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if site.Params.docs.overview -}}
|
||||||
|
{{ if gt (len $list) 0 }}<li><hr class="dropdown-divider"></li>{{ end }}
|
||||||
|
<li>
|
||||||
|
{{- $url := (path.Join site.Params.docs.overview) | relLangURL -}}
|
||||||
|
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" href="{{ $url }}">{{ T "allVersions" }}</a>
|
||||||
|
</li>
|
||||||
|
{{- end -}}
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- $supportedFlags := slice "true" "false" -}}
|
{{- $supportedFlags := slice "true" "false" -}}
|
||||||
|
|
||||||
{{- $id := printf "navbar-collapse-%d" 0 -}}
|
{{- $id := printf "navbar-collapse-%d" 0 -}}
|
||||||
@@ -112,6 +157,12 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $enableVersions := false -}}
|
||||||
|
{{ $list := site.Params.docs.releases }}
|
||||||
|
{{ if $list }}
|
||||||
|
{{- $enableVersions = gt (len $list ) 1 -}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{- $enableLanguage := or $page.IsTranslated site.IsMultiLingual -}}
|
{{- $enableLanguage := or $page.IsTranslated site.IsMultiLingual -}}
|
||||||
|
|
||||||
{{- $logo := site.Params.navigation.logo -}}
|
{{- $logo := site.Params.navigation.logo -}}
|
||||||
@@ -130,98 +181,113 @@
|
|||||||
{{- if eq $color "black" }}{{ $theme = "dark" }}{{ end -}}
|
{{- if eq $color "black" }}{{ $theme = "dark" }}{{ end -}}
|
||||||
{{- if eq $color "white" }}{{ $theme = "light" }}{{ end -}}
|
{{- if eq $color "white" }}{{ $theme = "light" }}{{ end -}}
|
||||||
|
|
||||||
<nav class="navbar navbar-expand-{{ $size }} {{ with $color }}bg-{{ . }}{{ end }} {{ if $fixed }}fixed-top{{ end }} p-4"{{ with $theme }} data-bs-theme="{{ . }}"{{ end }}>
|
<div class="container-fluid {{ if $fixed }}fixed-top{{ end }} p-0"{{ with $theme }} data-bs-theme="{{ . }}"{{ end }}>
|
||||||
<div class="container-xxl p-0">
|
{{- partial "assets/page-alert.html" (dict "page" $page) -}}
|
||||||
<!-- Insert sidebar toggler when applicable -->
|
<nav class="navbar navbar-expand-{{ $size }} {{ with $color }}bg-{{ . }}{{ end }} p-4"{{ with $theme }} data-bs-theme="{{ . }}"{{ end }}>
|
||||||
<div class="d-flex">
|
<div class="container-xxl p-0">
|
||||||
{{- if $page.Scratch.Get "sidebar" -}}
|
<!-- Insert sidebar toggler when applicable -->
|
||||||
<button class="navbar-toggler fw-30 collapsed p-0 mx-auto" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvass-sidebar" aria-controls="offcanvass-sidebar" aria-label="{{ T "toggleSidebar" }}">
|
<div class="d-flex">
|
||||||
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis") -}}
|
{{- if $page.Scratch.Get "sidebar" -}}
|
||||||
|
<button class="navbar-toggler fw-30 collapsed p-0 mx-auto" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvass-sidebar" aria-controls="offcanvass-sidebar" aria-label="{{ T "toggleSidebar" }}">
|
||||||
|
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis") -}}
|
||||||
|
</button>
|
||||||
|
{{- else -}}
|
||||||
|
<!-- Insert invisible sidebar toggler to center logo correctly on smaller screens -->
|
||||||
|
<button class="navbar-toggler fw-30 collapsed p-0 mx-auto invisible" type="button">
|
||||||
|
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis") -}}
|
||||||
|
</button>
|
||||||
|
{{- end -}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Insert the brand logo or name -->
|
||||||
|
<a class="navbar-brand mx-auto" href="{{ site.Home.RelPermalink }}">
|
||||||
|
{{- if $logo -}}
|
||||||
|
<img src="{{ $logo }}" alt="{{ $title }} logo" height="30">
|
||||||
|
{{- else -}}
|
||||||
|
<span class="fw-bold">{{ $title }}</span>
|
||||||
|
{{- end -}}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- Insert main navigation toggler -->
|
||||||
|
<div class="d-flex fw-30">
|
||||||
|
<button id="main-nav-toggler" class="navbar-toggler collapsed p-0" type="button" data-bs-toggle="collapse" data-bs-target="#{{ $id }}"
|
||||||
|
aria-controls="{{ $id }}" aria-expanded="false" aria-label="{{ T "toggleMainNav" }}">
|
||||||
|
<span class="toggler-icon top-bar emphasis"></span>
|
||||||
|
<span class="toggler-icon middle-bar emphasis"></span>
|
||||||
|
<span class="toggler-icon bottom-bar emphasis"></span>
|
||||||
</button>
|
</button>
|
||||||
{{- else -}}
|
</div>
|
||||||
<!-- Insert invisible sidebar toggler to center logo correctly on smaller screens -->
|
|
||||||
<button class="navbar-toggler fw-30 collapsed p-0 mx-auto invisible" type="button">
|
<div class="navbar-collapse collapse" id="{{ $id }}">
|
||||||
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis") -}}
|
<!-- Insert search input -->
|
||||||
</button>
|
{{- if $search }}{{ partial "assets/search-input.html" -}}{{ end -}}
|
||||||
{{- end -}}
|
|
||||||
</div>
|
<!-- Render top-menu items (maximum depth of 2) -->
|
||||||
|
<ul class="navbar-nav ms-auto">
|
||||||
<!-- Insert the brand logo or name -->
|
{{- range $menu := $menus -}}
|
||||||
<a class="navbar-brand mx-auto" href="{{ site.Home.RelPermalink }}">
|
<li class="nav-item{{ if .HasChildren }} dropdown{{ end }}">
|
||||||
{{- if $logo -}}
|
{{- partial "assets/navbar-item.html" (dict "menu" $menu "page" $page) -}}
|
||||||
<img src="{{ $logo }}" alt="{{ $title }} logo" height="30">
|
{{- if .HasChildren -}}
|
||||||
{{- else -}}
|
<ul class="dropdown-menu dropdown-menu-end">
|
||||||
<span class="fw-bold">{{ $title }}</span>
|
{{- range .Children -}}
|
||||||
{{- end -}}
|
{{- partial "assets/navbar-item.html" (dict "menu" . "parent" $menu "page" $page) -}}
|
||||||
</a>
|
{{- end -}}
|
||||||
|
</ul>
|
||||||
<!-- Insert main navigation toggler -->
|
{{- end -}}
|
||||||
<div class="d-flex fw-30">
|
</li>
|
||||||
<button id="main-nav-toggler" class="navbar-toggler collapsed p-0" type="button" data-bs-toggle="collapse" data-bs-target="#{{ $id }}"
|
{{- end -}}
|
||||||
aria-controls="{{ $id }}" aria-expanded="false" aria-label="{{ T "toggleMainNav" }}">
|
|
||||||
<span class="toggler-icon top-bar emphasis"></span>
|
<!-- Insert divider if applicable -->
|
||||||
<span class="toggler-icon middle-bar emphasis"></span>
|
{{- if or $enableLanguage $enableVersions -}}
|
||||||
<span class="toggler-icon bottom-bar emphasis"></span>
|
<li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $size }}-block">
|
||||||
</button>
|
<div class="vr d-none d-md-flex h-100 mx-md-2"></div>
|
||||||
</div>
|
</li>
|
||||||
|
<li><hr class="dropdown-divider-bg"></li>
|
||||||
<div class="navbar-collapse collapse" id="{{ $id }}">
|
{{- end -}}
|
||||||
<!-- Insert search input -->
|
|
||||||
{{- if $search }}{{ partial "assets/search-input.html" -}}{{ end -}}
|
<!-- Insert language switcher if applicable -->
|
||||||
|
{{- if $enableLanguage -}}
|
||||||
<!-- Render top-menu items (maximum depth of 2) -->
|
{{- $currentLang := $page.Language.Lang -}}
|
||||||
<ul class="navbar-nav ms-auto">
|
<li class="nav-item dropdown">
|
||||||
{{- range $menu := $menus -}}
|
<a class="nav-link dropdown-toggle d-{{ $size }}-none" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
<li class="nav-item{{ if .HasChildren }} dropdown{{ end }}">
|
{{- partial "assets/icon.html" (dict "icon" "fas globe") }} {{ T "languageSwitcherLabel" }}
|
||||||
{{- partial "assets/navbar-item.html" (dict "menu" $menu "page" $page) -}}
|
</a>
|
||||||
{{- if .HasChildren -}}
|
<a class="nav-link dropdown-toggle d-none d-{{ $size }}-block" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
<ul class="dropdown-menu dropdown-menu-end">
|
{{- partial "assets/icon.html" (dict "icon" "fas globe") }}
|
||||||
{{- range .Children -}}
|
</a>
|
||||||
{{- partial "assets/navbar-item.html" (dict "menu" . "parent" $menu "page" $page) -}}
|
<ul class="dropdown-menu dropdown-menu-end ">
|
||||||
|
{{- if $page.IsTranslated -}}
|
||||||
|
{{- range $page.AllTranslations -}}
|
||||||
|
<li><a class="dropdown-item {{ if eq .Language.Lang $currentLang }}active{{ end }}" href="{{ .Permalink }}">{{ .Language.LanguageName }}</a></li>
|
||||||
|
{{- end -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- range site.Languages -}}
|
||||||
|
<li><a class="dropdown-item" href="/{{ .Lang }}">{{ default .Lang .LanguageName }}</a></li>
|
||||||
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</ul>
|
</ul>
|
||||||
{{- end -}}
|
</li>
|
||||||
</li>
|
{{- end -}}
|
||||||
{{- end -}}
|
|
||||||
|
<!-- Insert version switcher -->
|
||||||
<!-- Insert divider if applicable -->
|
{{- if $enableVersions -}}
|
||||||
{{- if or $enableLanguage $enableDarkMode -}}
|
{{- partial "partials/navbar-versions.html" (dict "page" $page "size" $size "collapsed" true ) -}}
|
||||||
<li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $size }}-block">
|
{{- partial "partials/navbar-versions.html" (dict "page" $page "size" $size "collapsed" false) -}}
|
||||||
<div class="vr d-none d-md-flex h-100 mx-md-2"></div>
|
{{- end -}}
|
||||||
</li>
|
|
||||||
<li><hr class="dropdown-divider-bg"></li>
|
<!-- Insert color mode switcher -->
|
||||||
{{- end -}}
|
{{- if $enableDarkMode -}}
|
||||||
|
<!-- Insert divider -->
|
||||||
<!-- Insert language switcher if applicable -->
|
<li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $size }}-block">
|
||||||
{{- if $enableLanguage -}}
|
<div class="vr d-none d-md-flex h-100 mx-md-2"></div>
|
||||||
{{- $currentLang := $page.Language.Lang -}}
|
</li>
|
||||||
<li class="nav-item dropdown">
|
<li><hr class="dropdown-divider-bg"></li>
|
||||||
<a class="nav-link dropdown-toggle d-{{ $size }}-none" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
||||||
{{- partial "assets/icon.html" (dict "icon" "fas globe") }} {{ T "languageSwitcherLabel" }}
|
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" true) -}}
|
||||||
</a>
|
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" false) -}}
|
||||||
<a class="nav-link dropdown-toggle d-none d-{{ $size }}-block" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
{{- end -}}
|
||||||
{{- partial "assets/icon.html" (dict "icon" "fas globe") }}
|
</ul>
|
||||||
</a>
|
</div>
|
||||||
<ul class="dropdown-menu dropdown-menu-end ">
|
|
||||||
{{- if $page.IsTranslated -}}
|
|
||||||
{{- range $page.AllTranslations -}}
|
|
||||||
<li><a class="dropdown-item {{ if eq .Language.Lang $currentLang }}active{{ end }}" href="{{ .Permalink }}">{{ .Language.LanguageName }}</a></li>
|
|
||||||
{{- end -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- range site.Languages -}}
|
|
||||||
<li><a class="dropdown-item" href="/{{ .Lang }}">{{ default .Lang .LanguageName }}</a></li>
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
<!-- Insert color mode switcher -->
|
|
||||||
{{- if $enableDarkMode -}}
|
|
||||||
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" true) -}}
|
|
||||||
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" false) -}}
|
|
||||||
{{- end -}}
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</nav>
|
||||||
</nav>
|
</div>
|
||||||
|
15
layouts/partials/assets/page-alert.html
Normal file
15
layouts/partials/assets/page-alert.html
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{{- $page := .page -}}
|
||||||
|
{{- if not $page -}}
|
||||||
|
{{- errorf "partial [assets/page-alert.html] - Missing value for param 'page'" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $pageAlertMsg := $page.Scratch.Get "pageAlertMsg" -}}
|
||||||
|
{{- $pageAlertURL := $page.Scratch.Get "pageAlertURL" -}}
|
||||||
|
{{- $version := $page.Scratch.Get "version" -}}
|
||||||
|
|
||||||
|
{{- 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 }}">
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
{{- end -}}
|
@@ -20,9 +20,9 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- if not hugo.IsProduction -}}
|
{{- if not hugo.IsProduction -}}
|
||||||
<script src="{{ $js.RelPermalink }}"></script>
|
<script src="{{ $js.Permalink }}"></script>
|
||||||
{{ else -}}
|
{{ else -}}
|
||||||
{{ $js = $js | minify | fingerprint -}}
|
{{ $js = $js | minify | fingerprint -}}
|
||||||
<script src="{{ $js.RelPermalink }}" integrity="{{ $js.Data.Integrity }}" crossorigin="anonymous"></script>
|
<script src="{{ $js.Permalink }}" integrity="{{ $js.Data.Integrity }}" crossorigin="anonymous"></script>
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
@@ -7,7 +7,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col text-sm-start text-center col-sm-6 col-md-4">
|
<div class="col text-sm-start text-center col-sm-6 col-md-4">
|
||||||
{{ range .Site.Menus.social -}}
|
{{ range .Site.Menus.social -}}
|
||||||
<a href="{{ .URL | relLangURL }}" target="_blank" rel="noopener noreferrer" aria-label="{{ .Name | safeHTML }}" class="text-decoration-none link-secondary d-inline p-2">
|
<a href="{{ .URL }}" target="_blank" rel="noopener noreferrer" aria-label="{{ .Name | safeHTML }}" class="text-decoration-none link-secondary d-inline p-2">
|
||||||
{{ .Pre | safeHTML }}
|
{{ .Pre | safeHTML }}
|
||||||
</a>
|
</a>
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
@@ -1,6 +1,12 @@
|
|||||||
|
{{- $page := .page -}}
|
||||||
|
{{- $version := .version -}}
|
||||||
|
|
||||||
{{- $menu := "" -}}
|
{{- $menu := "" -}}
|
||||||
{{- if .IsPage -}}
|
{{- if $page.IsPage -}}
|
||||||
{{- $menu = index .Site.Data .Section -}}
|
{{- $menu = index site.Data (printf "%s-%s" $page.Section $version) -}}
|
||||||
|
{{ if not $menu }}
|
||||||
|
{{ $menu = index site.Data $page.Section }}
|
||||||
|
{{ end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- return $menu -}}
|
{{- return $menu -}}
|
38
layouts/partials/utilities/GetVersion.html
Normal file
38
layouts/partials/utilities/GetVersion.html
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<!--
|
||||||
|
Retrieve the docs version label of the current page. The path of the page's file is matched with the url of the
|
||||||
|
defined docs releases in the site's parameters. When no match is found it returns the latest label instead.
|
||||||
|
-->
|
||||||
|
|
||||||
|
{{- $page := .page -}}
|
||||||
|
{{- $base := .base -}}
|
||||||
|
{{- $version := "" -}}
|
||||||
|
|
||||||
|
{{- if and site.Params.docs.releases site.Params.docs.contentPath -}}
|
||||||
|
{{- $docsPath := strings.TrimPrefix "/" site.Params.docs.contentPath -}}
|
||||||
|
{{- if and $page.File (strings.HasPrefix $page.File.Dir $docsPath) -}}
|
||||||
|
{{- $currentPath := strings.TrimPrefix $docsPath $page.File.Dir -}}
|
||||||
|
{{- $currentVersion := index (split $currentPath "/") 0 -}}
|
||||||
|
{{- $versionPath := path.Join site.Params.docs.contentPath $currentVersion -}}
|
||||||
|
|
||||||
|
{{- $list := site.Params.docs.releases -}}
|
||||||
|
{{- range $index, $item := $list -}}
|
||||||
|
{{- $url := strings.TrimSuffix "/" $item.url -}}
|
||||||
|
{{- if eq $url $versionPath -}}
|
||||||
|
{{- if $base }}{{ $version = path.Base $item.url }}{{ else }}{{ $version = $item.label }}{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if not $version -}}
|
||||||
|
{{- $list := site.Params.docs.releases -}}
|
||||||
|
{{- range $item := $list -}}
|
||||||
|
{{- if $item.latest -}}
|
||||||
|
{{- if $base }}{{ $version = path.Base $item.url }}{{ else }}{{ $version = $item.label }}{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- $version = site.Params.docs.version -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- return $version -}}
|
32
layouts/partials/utilities/IsOlder.html
Normal file
32
layouts/partials/utilities/IsOlder.html
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<!--
|
||||||
|
Returns true if the current version is older than the latest version defined in the docs section of the site
|
||||||
|
parameters. The verification supports semver patterns MAJOR.MINOR.PATCH with an optional suffix.
|
||||||
|
|
||||||
|
Original code by solus on https://discourse.gohugo.io/t/sorting-semantic-version-numbers/40838/6.
|
||||||
|
-->
|
||||||
|
|
||||||
|
{{ $current := .current }}
|
||||||
|
{{ $latest := site.Params.docs.latest }}
|
||||||
|
|
||||||
|
{{- define "partials/padZeroPrefix.html" -}}
|
||||||
|
{{- $padSize := 6 }}
|
||||||
|
{{- $paddedString := replaceRE "(\\d+)" (print (strings.Repeat (sub $padSize 1) "0") "$1") . }}
|
||||||
|
{{- $trimmedString := replaceRE (print "0+(\\d{" $padSize "})") "$1" $paddedString }}
|
||||||
|
{{- return $trimmedString }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "partials/trimZeroPrefix.html" -}}
|
||||||
|
{{- return replaceRE "0+(\\d+)" "$1" . }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $isOlder := false -}}
|
||||||
|
|
||||||
|
{{- if and $current $latest }}
|
||||||
|
{{- $versions := slice $current $latest }}
|
||||||
|
{{- $paddedVersions := apply $versions "partial" "padZeroPrefix" "." }}
|
||||||
|
{{- $sortedVersions := (sort $paddedVersions "value" "desc") }}
|
||||||
|
{{- $sortedVersions = apply $sortedVersions "partial" "trimZeroPrefix" "." }}
|
||||||
|
{{ $isOlder = ne (index $sortedVersions 0) $current }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- return $isOlder -}}
|
101
layouts/shortcodes/timeline.html
Normal file
101
layouts/shortcodes/timeline.html
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
<!-- Inspired by the timeline snippet from Siddharth Panchal at https://bootsnipp.com/snippets/Q0ppE -->
|
||||||
|
{{ $error := false }}
|
||||||
|
|
||||||
|
{{- $data := .Get "data" -}}
|
||||||
|
{{ if not $data -}}
|
||||||
|
{{ errorf "Missing param 'data': %s" .Position -}}
|
||||||
|
{{ $error = true }}
|
||||||
|
{{ end -}}
|
||||||
|
|
||||||
|
{{ $entries := index site.Data $data }}
|
||||||
|
{{ if not $entries -}}
|
||||||
|
{{ errorf "Invalid timeline data '%s': %s" $data .Position -}}
|
||||||
|
{{ $error = true }}
|
||||||
|
{{ end -}}
|
||||||
|
|
||||||
|
{{ $background := "" -}}
|
||||||
|
{{ with .Get "background" }}{{ $background = . }}{{ end -}}
|
||||||
|
{{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" -}}
|
||||||
|
{{ if and $background (not (in $supportedColors $background)) -}}
|
||||||
|
{{ errorf "Invalid value for param 'background': %s" .Position -}}
|
||||||
|
{{ $error = true -}}
|
||||||
|
{{ end -}}
|
||||||
|
|
||||||
|
<!-- Inline partial to render icon -->
|
||||||
|
{{- define "partials/timeline-icon.html" -}}
|
||||||
|
{{- $col := default 6 .col -}}
|
||||||
|
{{- $icon := .icon -}}
|
||||||
|
{{- $direction := .direction -}}
|
||||||
|
<div class="col-{{ $col }} d-flex justify-content-{{ $direction }} align-items-center">
|
||||||
|
<div class="d-flex">
|
||||||
|
<div class="d-flex timeline-semi-circle-{{ $direction }} fa-wrapper align-items-center justify-content-center">
|
||||||
|
{{ partial "assets/icon.html" (dict "icon" (printf "%s fa-fluid" $icon)) }}
|
||||||
|
</div>
|
||||||
|
<div class="timeline-connector-{{ $direction }} {{ if eq $direction "start" }} order-first{{ end }}"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<!-- Inline partial to render icon -->
|
||||||
|
{{- define "partials/timeline-panel.html" -}}
|
||||||
|
{{- $col := default 6 .col -}}
|
||||||
|
{{- $content := .content -}}
|
||||||
|
{{- $color := .color -}}
|
||||||
|
{{- $title := .title -}}
|
||||||
|
{{- $badge := .badge -}}
|
||||||
|
{{- $url := .url -}}
|
||||||
|
{{- $date := .date -}}
|
||||||
|
{{ if and $url (not (hasPrefix $url "http")) }}
|
||||||
|
{{ $url = path.Join site.Params.docs.release $url }}
|
||||||
|
{{ end }}
|
||||||
|
{{- $direction := .direction -}}
|
||||||
|
|
||||||
|
<div class="col-{{ $col }} d-flex align-items-center">
|
||||||
|
<div class="d-flex h-100 w-100">
|
||||||
|
<div class="timeline-panel-{{ $direction }}"></div>
|
||||||
|
<div class="timeline-description-text-{{ $direction }} p-3 w-100">
|
||||||
|
<div>
|
||||||
|
{{ with $url }}
|
||||||
|
<a class="fs-5 fw-bold text-uppercase link-{{ $color }} text-break align-middle" href="{{ . }}">{{ $title }}</a>
|
||||||
|
<span class="badge rounded-pill text-bg-{{ $color }} ms-1">{{ if $badge }}<a class="link-bg-{{ $color }}" href="{{ . }}">{{ $badge }}</a>{{ end }}</span>
|
||||||
|
{{ else}}
|
||||||
|
<span class="fs-5 fw-bold text-uppercase link-{{ $color }} text-break align-middle">{{ $title }}</span>
|
||||||
|
<span class="badge rounded-pill text-bg-{{ $color }} ms-1">{{ if $badge }}{{ $badge }}{{ end }}</span>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
{{ if $date }}
|
||||||
|
{{ $datestr := (partial "utilities/date.html" (dict "date" $date "format" "long")) -}}
|
||||||
|
<p class="mb-0"><small class="text-body-secondary text-uppercase">{{ $datestr -}}</small></p>
|
||||||
|
{{ end }}
|
||||||
|
<p class="mt-3 mb-0">{{ $content | markdownify }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<!-- Render default timeline -->
|
||||||
|
<div class="container p-0 d-none d-md-block mb-5 {{ with $background }} timeline-bg-{{ . }}{{ end }}">
|
||||||
|
{{ range $index, $item := $entries }}
|
||||||
|
<div class="row timeline timeline-{{ $item.color }} timeline-dot g-0 ">
|
||||||
|
{{ if eq (mod $index 2) 1 }}
|
||||||
|
{{ partial "partials/timeline-panel.html" (dict "content" $item.content "color" $item.color "title" $item.title "badge" $item.badge "date" $item.date "url" $item.url "direction" "start") }}
|
||||||
|
{{ partial "partials/timeline-icon.html" (dict "icon" $item.icon "direction" "start") }}
|
||||||
|
{{ else }}
|
||||||
|
{{ partial "partials/timeline-icon.html" (dict "icon" $item.icon "direction" "end") }}
|
||||||
|
{{ partial "partials/timeline-panel.html" (dict "content" $item.content "color" $item.color "title" $item.title "badge" $item.badge "date" $item.date "url" $item.url "direction" "end") }}
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
<div class="row timeline g-0 p-3"> </div>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Render timeline for smaller devices -->
|
||||||
|
<div class="container p-0 d-block d-md-none {{ with $background }} timeline-bg-{{ . }}{{ end }}">
|
||||||
|
{{ range $index, $item := $entries }}
|
||||||
|
<div class="row timeline-sm timeline-{{ $item.color }} timeline-dot g-0">
|
||||||
|
{{ partial "partials/timeline-icon.html" (dict "icon" $item.icon "direction" "end" "col" 3) }}
|
||||||
|
{{ partial "partials/timeline-panel.html" (dict "content" $item.content "color" $item.color "title" $item.title "badge" $item.badge "date" $item.date "url" $item.url "direction" "end" "col" 9) }}
|
||||||
|
</div>
|
||||||
|
<div class="row timeline-sm g-0 p-3"> </div>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
12
netlify.toml
12
netlify.toml
@@ -4,8 +4,8 @@
|
|||||||
functions = "functions"
|
functions = "functions"
|
||||||
|
|
||||||
[build.environment]
|
[build.environment]
|
||||||
NODE_VERSION = "18.13.0"
|
NODE_VERSION = "18.16.1"
|
||||||
NPM_VERSION = "8.19.3"
|
NPM_VERSION = "9.5.1"
|
||||||
|
|
||||||
[context.production]
|
[context.production]
|
||||||
command = "npm run build"
|
command = "npm run build"
|
||||||
@@ -26,18 +26,18 @@
|
|||||||
default-src 'self'; \
|
default-src 'self'; \
|
||||||
child-src 'self' app.netlify.com; \
|
child-src 'self' app.netlify.com; \
|
||||||
script-src 'self' \
|
script-src 'self' \
|
||||||
app.netlify.com netlify-cdp-loader.netlify.app \
|
https://*.netlify.app app.netlify.com netlify-cdp-loader.netlify.app \
|
||||||
https://utteranc.es/client.js https://*.google-analytics.com https://*.googletagmanager.com; \
|
https://utteranc.es/client.js https://*.google-analytics.com https://*.googletagmanager.com; \
|
||||||
style-src 'self' \
|
style-src 'self' \
|
||||||
netlify.app https://utteranc.es https://fonts.googleapis.com https://www.youtube.com; \
|
https://*.netlify.app https://utteranc.es https://fonts.googleapis.com https://www.youtube.com; \
|
||||||
object-src 'none'; \
|
object-src 'none'; \
|
||||||
base-uri 'self'; \
|
base-uri 'self'; \
|
||||||
connect-src 'self'
|
connect-src 'self'
|
||||||
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
|
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
|
||||||
font-src 'self' https://fonts.gstatic.com; \
|
font-src 'self' https://*.netlify.app https://fonts.gstatic.com; \
|
||||||
frame-src 'self' https://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com \
|
frame-src 'self' https://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com \
|
||||||
app.netlify.com; \
|
app.netlify.com; \
|
||||||
img-src 'self' https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com; \
|
img-src 'self' https://*.netlify.app https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com; \
|
||||||
manifest-src 'self'; \
|
manifest-src 'self'; \
|
||||||
media-src 'self' \
|
media-src 'self' \
|
||||||
"""
|
"""
|
||||||
|
724
package-lock.json
generated
724
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
13
package.json
13
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@gethinode/hinode",
|
"name": "@gethinode/hinode",
|
||||||
"version": "0.14.7",
|
"version": "0.15.4",
|
||||||
"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",
|
||||||
@@ -8,7 +8,8 @@
|
|||||||
"bootstrap",
|
"bootstrap",
|
||||||
"responsive",
|
"responsive",
|
||||||
"front-end",
|
"front-end",
|
||||||
"blog"
|
"blog",
|
||||||
|
"documentation"
|
||||||
],
|
],
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"publishConfig": {
|
"publishConfig": {
|
||||||
@@ -53,7 +54,7 @@
|
|||||||
"@fortawesome/fontawesome-free": "^6.4.0",
|
"@fortawesome/fontawesome-free": "^6.4.0",
|
||||||
"@fullhuman/postcss-purgecss": "^5.0.0",
|
"@fullhuman/postcss-purgecss": "^5.0.0",
|
||||||
"autoprefixer": "^10.4.14",
|
"autoprefixer": "^10.4.14",
|
||||||
"bootstrap": "^5.3.0-alpha3",
|
"bootstrap": "^5.3.0",
|
||||||
"cssnano": "^6.0.0",
|
"cssnano": "^6.0.0",
|
||||||
"cssnano-preset-advanced": "^6.0.0",
|
"cssnano-preset-advanced": "^6.0.0",
|
||||||
"eslint": "^8.39.0",
|
"eslint": "^8.39.0",
|
||||||
@@ -62,14 +63,14 @@
|
|||||||
"eslint-plugin-n": "^16.0.0",
|
"eslint-plugin-n": "^16.0.0",
|
||||||
"eslint-plugin-promise": "^6.1.1",
|
"eslint-plugin-promise": "^6.1.1",
|
||||||
"flexsearch": "^0.7.31",
|
"flexsearch": "^0.7.31",
|
||||||
"hugo-bin": "^0.108.0",
|
"hugo-bin": "^0.111.0",
|
||||||
"markdownlint-cli2": "^0.7.0",
|
"markdownlint-cli2": "^0.8.1",
|
||||||
"postcss-cli": "^10.1.0",
|
"postcss-cli": "^10.1.0",
|
||||||
"purgecss-whitelister": "^2.4.0",
|
"purgecss-whitelister": "^2.4.0",
|
||||||
"rimraf": "^5.0.0",
|
"rimraf": "^5.0.0",
|
||||||
"shx": "^0.3.4",
|
"shx": "^0.3.4",
|
||||||
"stylelint": "^15.6.0",
|
"stylelint": "^15.6.0",
|
||||||
"stylelint-config-standard-scss": "^9.0.0"
|
"stylelint-config-standard-scss": "^10.0.0"
|
||||||
},
|
},
|
||||||
"hugo-bin": {
|
"hugo-bin": {
|
||||||
"buildTags": "extended"
|
"buildTags": "extended"
|
||||||
|
@@ -5,8 +5,8 @@ description = "A clean documentation and blog theme for your Hugo site based on
|
|||||||
homepage = "https://gethinode.com"
|
homepage = "https://gethinode.com"
|
||||||
demosite = "https://demo.gethinode.com"
|
demosite = "https://demo.gethinode.com"
|
||||||
tags = ["blog", "documentation", "minimal", "modern", "customizable", "search", "bootstrap"]
|
tags = ["blog", "documentation", "minimal", "modern", "customizable", "search", "bootstrap"]
|
||||||
features = ["security aware", "fast by default", "seo-ready", "development tools", "bootstrap framework", "netlify-ready", "full text search", "page layouts"]
|
features = ["security aware", "fast by default", "seo-ready", "development tools", "bootstrap framework", "netlify-ready", "full text search", "page layouts", "versioned documentation"]
|
||||||
min_version = "0.109.0"
|
min_version = "0.110.0"
|
||||||
|
|
||||||
[author]
|
[author]
|
||||||
name = "Mark Dumay"
|
name = "Mark Dumay"
|
||||||
|
Reference in New Issue
Block a user