mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 10:04:22 +00:00
Compare commits
118 Commits
v0.22.5
...
v0.23.0-be
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9d59c0ba0d | ||
![]() |
22bfb75c82 | ||
![]() |
2b9a0aa085 | ||
![]() |
d36c70b98e | ||
![]() |
941c0f4954 | ||
![]() |
94867de265 | ||
![]() |
02d4aafd10 | ||
![]() |
fcb64b9e77 | ||
![]() |
ed764e14f5 | ||
![]() |
0b20d24918 | ||
![]() |
00ef30b768 | ||
![]() |
cb6402ac92 | ||
![]() |
89758426a9 | ||
![]() |
d48c6ab314 | ||
![]() |
aa5e6c6189 | ||
![]() |
5bf7712307 | ||
![]() |
ddb847c974 | ||
![]() |
9e52107dbf | ||
![]() |
e1011919a5 | ||
![]() |
7c3aed4822 | ||
![]() |
dbe2c6bb59 | ||
![]() |
9e644185f2 | ||
![]() |
9a12ce32d3 | ||
![]() |
66d6a89431 | ||
![]() |
b7a605ea9c | ||
![]() |
a2b1cca1ab | ||
![]() |
b8cd3dbee6 | ||
![]() |
fe46126e19 | ||
![]() |
a439623119 | ||
![]() |
86713488b4 | ||
![]() |
fbaa5bcfa7 | ||
![]() |
23deaf6df3 | ||
![]() |
4db9c6fde8 | ||
![]() |
67ad2fe076 | ||
![]() |
00e169512c | ||
![]() |
3171f065eb | ||
![]() |
5dcb44b2d0 | ||
![]() |
b54c415f39 | ||
![]() |
7ecc818ca1 | ||
![]() |
85fdf28bdc | ||
![]() |
1c1f4be1f9 | ||
![]() |
e4f949f67b | ||
![]() |
2fe3c69a2d | ||
![]() |
08b3725307 | ||
![]() |
664fb87e4e | ||
![]() |
9bf90dfa98 | ||
![]() |
867f684b6a | ||
![]() |
3bcb2138c1 | ||
![]() |
693c2be098 | ||
![]() |
da63bcb4eb | ||
![]() |
564a62e780 | ||
![]() |
01e4837669 | ||
![]() |
0a2a1a8b1a | ||
![]() |
154ddfe1cc | ||
![]() |
14786383ec | ||
![]() |
e5aae017a6 | ||
![]() |
68ceb8c71e | ||
![]() |
dcd94a7137 | ||
![]() |
1e75a3675e | ||
![]() |
6c301e2512 | ||
![]() |
59c06c7f02 | ||
![]() |
85aad4c431 | ||
![]() |
ade4df79ed | ||
![]() |
ec12b41293 | ||
![]() |
7216c88e0b | ||
![]() |
fac87c69e2 | ||
![]() |
62d4fdeb32 | ||
![]() |
91da0c7d0d | ||
![]() |
b116c2582f | ||
![]() |
276307fb5c | ||
![]() |
54ae613298 | ||
![]() |
a22040f4e3 | ||
![]() |
630cc55361 | ||
![]() |
2aacace6ad | ||
![]() |
91714727c3 | ||
![]() |
8e21f36619 | ||
![]() |
baa88ca957 | ||
![]() |
1874fc9b47 | ||
![]() |
6c9543d05a | ||
![]() |
a614c35f05 | ||
![]() |
0d7bc8e7d8 | ||
![]() |
39b3d500d0 | ||
![]() |
03200f3828 | ||
![]() |
044a5eadcd | ||
![]() |
e924bd96ec | ||
![]() |
e234240e74 | ||
![]() |
33473b0db1 | ||
![]() |
cfad29f9d4 | ||
![]() |
7ffdbea3ec | ||
![]() |
2c2fb4d305 | ||
![]() |
709172c506 | ||
![]() |
8727ee50ee | ||
![]() |
04d4d20ba6 | ||
![]() |
e77ea9358e | ||
![]() |
6263dc0649 | ||
![]() |
52eccfc384 | ||
![]() |
13085416e2 | ||
![]() |
f7efa99fc3 | ||
![]() |
32d6b8844a | ||
![]() |
1c4287a3ed | ||
![]() |
354fa85f38 | ||
![]() |
78fb0760f3 | ||
![]() |
dfdda4d27f | ||
![]() |
6d8f90bdce | ||
![]() |
3e531da29c | ||
![]() |
6065ebb6b4 | ||
![]() |
75373935f1 | ||
![]() |
1d5784a4d1 | ||
![]() |
5df94ffe33 | ||
![]() |
6aeaa8812a | ||
![]() |
b1f8044e02 | ||
![]() |
09fc0991bd | ||
![]() |
a7b70efef0 | ||
![]() |
4c3df8e769 | ||
![]() |
15418f7bdc | ||
![]() |
0a2bc468e5 | ||
![]() |
df8bcff315 | ||
![]() |
56e992ba7a |
5
.github/dependabot.yml
vendored
5
.github/dependabot.yml
vendored
@@ -3,6 +3,11 @@
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
open-pull-requests-limit: 10
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/"
|
||||
schedule:
|
||||
|
2
.github/workflows/lint-build.yml
vendored
2
.github/workflows/lint-build.yml
vendored
@@ -82,7 +82,7 @@ jobs:
|
||||
# Cache Hugo cachedir and resourcedir (configured in config/ci/hugo.toml) for each OS
|
||||
# No additional cache invalidation is needed, Hugo uses checksums itself
|
||||
- name: Use Hugo cache
|
||||
uses: actions/cache@v3
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ${{ runner.os == 'Windows' && env.CACHE_PATH_WIN || runner.os == 'macOS' && env.CACHE_PATH_MAC || env.CACHE_PATH_DEBIAN }}
|
||||
key: ${{ runner.os }}-${{ env.CACHE_KEY }}
|
||||
|
15
README.md
15
README.md
@@ -75,6 +75,14 @@ The installation instructions in this readme install Hinode as a regular Hugo th
|
||||
|
||||
## Installation
|
||||
|
||||
<!-- markdownlint-disable MD033 -->
|
||||
<details>
|
||||
<summary>Installation notes for Windows</summary>
|
||||
|
||||
The installation for Windows requires PowerShell v7. Download it from the Microsoft Store as needed. Check your current version with the command `$PSVersionTable`.
|
||||
</details>
|
||||
<!-- markdownlint-enable MD033 -->
|
||||
|
||||
Start a new Hinode project in three steps:
|
||||
|
||||
1. **Create a new site**
|
||||
@@ -83,14 +91,15 @@ Start a new Hinode project in three steps:
|
||||
hugo new site my-hinode-site && cd my-hinode-site
|
||||
```
|
||||
|
||||
1. **Initialize the module system**
|
||||
2. **Initialize the module system**
|
||||
|
||||
```bash
|
||||
hugo mod init example.com/my-hinode-site
|
||||
echo "[[module.imports]]\npath = 'github.com/gethinode/hinode'" >> hugo.toml
|
||||
echo "[[module.imports]]" >> hugo.toml
|
||||
echo "path = 'github.com/gethinode/hinode'" >> hugo.toml
|
||||
```
|
||||
|
||||
1. **Start a development server**
|
||||
3. **Start a development server**
|
||||
|
||||
```bash
|
||||
hugo server
|
||||
|
@@ -1,15 +1,46 @@
|
||||
const navbar = document.querySelector('.navbar')
|
||||
const togglers = document.querySelectorAll('.main-nav-toggler')
|
||||
const modeSelectors = document.querySelectorAll('.switch-mode-collapsed')
|
||||
const colorsBG = ['body', 'secondary', 'tertiary']
|
||||
|
||||
function updateNavbar () {
|
||||
if (window.scrollY > 75) {
|
||||
navbar.classList.add('nav-active')
|
||||
const storedTheme = localStorage.getItem('theme')
|
||||
navbar.setAttribute('data-bs-theme', storedTheme)
|
||||
} else {
|
||||
navbar.classList.remove('nav-active')
|
||||
const defaultTheme = navbar.getAttribute('data-bs-overlay')
|
||||
navbar.setAttribute('data-bs-theme', defaultTheme)
|
||||
}
|
||||
}
|
||||
|
||||
if ((navbar !== null) && (window.performance.getEntriesByType)) {
|
||||
if (window.performance.getEntriesByType('navigation')[0].type === 'reload') {
|
||||
updateNavbar()
|
||||
}
|
||||
}
|
||||
|
||||
if (navbar !== null && togglers !== null) {
|
||||
// observe state changes to the site's color mode
|
||||
const html = document.querySelector('html')
|
||||
const config = {
|
||||
attributes: true,
|
||||
attributeFilter: ['data-bs-theme']
|
||||
}
|
||||
const Observer = new MutationObserver((mutationrecords) => {
|
||||
updateNavbar()
|
||||
})
|
||||
Observer.observe(html, config)
|
||||
|
||||
// initialize background color
|
||||
const color = (navbar.getAttribute('data-navbar-color') || 'body')
|
||||
const bg = colorsBG.includes(color) ? `var(--bs-${color}-bg)` : `var(--bs-navbar-color-${color})`
|
||||
navbar.style.setProperty('--bs-navbar-expanded-color', bg)
|
||||
|
||||
// set the navbar background color to opaque when scrolling past a breakpoint
|
||||
window.onscroll = () => {
|
||||
if (window.scrollY > 75) {
|
||||
navbar.classList.add('nav-active')
|
||||
} else {
|
||||
navbar.classList.remove('nav-active')
|
||||
}
|
||||
updateNavbar()
|
||||
}
|
||||
|
||||
// set the navbar background color to opaque when expanded
|
||||
|
@@ -22,13 +22,13 @@ a:active {
|
||||
}
|
||||
|
||||
.fullscreen {
|
||||
--navbar-offset: #{$navbar-offset};
|
||||
--overlay-offset: #{$overlay-offset};
|
||||
|
||||
min-height: calc(100vh - var(--navbar-offset));
|
||||
min-height: calc(100vh - var(--overlay-offset));
|
||||
}
|
||||
|
||||
.main-content {
|
||||
margin-top: $navbar-offset;
|
||||
margin-top: $overlay-offset;
|
||||
}
|
||||
|
||||
$utilities: map-merge(
|
||||
|
@@ -20,6 +20,7 @@ strong {
|
||||
|
||||
$navbar-height: h.$navbar-height;
|
||||
$navbar-offset: h.$navbar-offset;
|
||||
$overlay-offset: h.$overlay-offset;
|
||||
$primary: h.$primary;
|
||||
$secondary: h.$secondary;
|
||||
$success: h.$success;
|
||||
|
@@ -86,8 +86,8 @@
|
||||
|
||||
// stylelint-enable annotation-no-unknown
|
||||
|
||||
// make tag-link clickable on top of the stretched-link.
|
||||
.card .tag-link {
|
||||
// make tag-link and card-button clickable on top of the stretched-link.
|
||||
.card .tag-link, .card .card-button {
|
||||
z-index: 2;
|
||||
position: relative;
|
||||
}
|
||||
|
@@ -19,3 +19,11 @@
|
||||
-webkit-transform: scaleX(-1);
|
||||
transform: scaleX(-1);
|
||||
}
|
||||
|
||||
.background-img {
|
||||
--overlay-offset: #{$overlay-offset};
|
||||
|
||||
height: calc(100vh - var(--overlay-offset));
|
||||
width: 100vw;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
@@ -2,13 +2,22 @@
|
||||
|
||||
// Source: https://jsfiddle.net/njhgr40m/
|
||||
|
||||
|
||||
.navbar {
|
||||
--bs-navbar-expanded-color: var(--bs-body-bg);
|
||||
--bs-navbar-toggler-color: var(--bs-navbar-hover-color);
|
||||
|
||||
transition: 0.5s ease-in-out;
|
||||
background-color: transparent;
|
||||
|
||||
@each $state, $val in $theme-colors {
|
||||
--bs-navbar-color-#{$state}: #{$val};
|
||||
}
|
||||
}
|
||||
|
||||
.nav-active, .navbar-expanded {
|
||||
background-color: var(--bs-body-bg);
|
||||
background-color: var(--bs-navbar-expanded-color);
|
||||
border-bottom: 1px solid var(--bs-secondary-bg);
|
||||
}
|
||||
|
||||
.nav-link {
|
||||
@@ -25,12 +34,17 @@
|
||||
--bs-navbar-hover-color: white !important;
|
||||
--bs-navbar-disabled-color: white !important;
|
||||
--bs-navbar-active-color: white !important;
|
||||
--bs-navbar-toggler-color: white;
|
||||
}
|
||||
|
||||
.navbar-expanded {
|
||||
box-shadow: $box-shadow-sm;
|
||||
}
|
||||
|
||||
.nav-item .vr {
|
||||
color: var(--bs-navbar-color);
|
||||
}
|
||||
|
||||
/* Remove border from toggler */
|
||||
.navbar-toggler {
|
||||
border: 0 if($enable-important-utilities, !important, null);
|
||||
@@ -97,19 +111,11 @@
|
||||
|
||||
/* Color of Toggler when collapsed */
|
||||
.navbar-toggler.collapsed .toggler-icon {
|
||||
background-color: #777;
|
||||
background-color: var(--bs-navbar-toggler-color);
|
||||
}
|
||||
|
||||
.emphasis-light {
|
||||
background-color: $black if($enable-important-utilities, !important, null);
|
||||
}
|
||||
|
||||
.emphasis-dark {
|
||||
background-color: $white if($enable-important-utilities, !important, null);
|
||||
}
|
||||
|
||||
.emphasis {
|
||||
background-color: $black if($enable-important-utilities, !important, null);
|
||||
.emphasis, .emphasis-dark, .emphasis-light {
|
||||
background-color: var(--bs-navbar-toggler-color);
|
||||
}
|
||||
|
||||
@include color-mode(dark) {
|
||||
|
@@ -50,6 +50,9 @@
|
||||
|
||||
#toc-collapse {
|
||||
border-color: var(--bs-secondary-color) !important;
|
||||
border-radius: 0 0 var(--bs-border-radius) var(--bs-border-radius) !important;
|
||||
margin-top: -1.5rem;
|
||||
padding-top: 1.5rem !important;
|
||||
}
|
||||
|
||||
.toc-button {
|
||||
@@ -60,6 +63,8 @@
|
||||
--bs-btn-active-bg: var(--bs-body-bg);
|
||||
--bs-btn-active-border-color: var(--bs-primary);
|
||||
|
||||
background-color: var(--#{$prefix}body-bg) !important;
|
||||
|
||||
&.active,
|
||||
&:hover,
|
||||
&:focus {
|
||||
|
@@ -135,5 +135,5 @@ home = ["HTML", "RSS", "REDIR"]
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-lottie"
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-utils"
|
||||
path = "github.com/gethinode/mod-utils/v2"
|
||||
# toml-docs-end modules
|
||||
|
@@ -24,6 +24,9 @@
|
||||
disableTemplate = ["katex"]
|
||||
[modules.katex]
|
||||
state = "defer"
|
||||
[modules.flexsearch]
|
||||
frontmatter = false
|
||||
filter = ""
|
||||
[modules.fontawesome]
|
||||
inline = true
|
||||
debug = true
|
||||
@@ -63,6 +66,8 @@
|
||||
logo = "/img/logo_icon.svg"
|
||||
color = "body"
|
||||
fixed = true
|
||||
overlay = false
|
||||
overlayMode = "dark"
|
||||
horizontal = false
|
||||
offset = "5.5rem"
|
||||
search = true
|
||||
@@ -157,6 +162,7 @@
|
||||
themeFont = "Inter"
|
||||
# themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" # external path
|
||||
themeFontPath = "/fonts" # local path
|
||||
themeFontPreload = "/fonts/inter-v12-latin-regular.woff2"
|
||||
fontSizeBase = "1rem" # assumes the browser default, typically '16px'
|
||||
# toml-docs-end font
|
||||
# toml-docs-start build
|
||||
|
@@ -27,10 +27,11 @@ arguments:
|
||||
release: v0.19.0
|
||||
list:
|
||||
type:
|
||||
- page.Pages
|
||||
- resource.Resources
|
||||
- 'page.Pages'
|
||||
- 'resource.Resources'
|
||||
- '[]map[string]interface {}'
|
||||
optional: true
|
||||
comment: Array of pages to be rendered as cards.
|
||||
comment: Array of pages or structured content to be rendered as cards.
|
||||
group: partial
|
||||
cards:
|
||||
type: string
|
||||
@@ -42,6 +43,8 @@ arguments:
|
||||
optional: true
|
||||
comment: Maximum number of cards to display.
|
||||
group: partial
|
||||
options:
|
||||
min: 1
|
||||
cols:
|
||||
type: select
|
||||
optional: true
|
||||
|
@@ -157,19 +157,49 @@ arguments:
|
||||
optional: true
|
||||
comment: >-
|
||||
Font Awesome icon, displayed on top or the left of the card.
|
||||
align:
|
||||
type: select
|
||||
parent: cascade
|
||||
optional: true
|
||||
default: start
|
||||
release: v0.23.0-alpha2
|
||||
comment: Icon alignment.
|
||||
options:
|
||||
values:
|
||||
- start
|
||||
- end
|
||||
- center
|
||||
style:
|
||||
type: string
|
||||
parent: cascade
|
||||
optional: true
|
||||
release: v0.23.0-alpha2
|
||||
comment: Icon style.
|
||||
orientation:
|
||||
type: select
|
||||
optional: true
|
||||
default: stacked
|
||||
parent: cascade
|
||||
comment: >-
|
||||
Placement of the thumbnail or icon.
|
||||
comment: Placement of the thumbnail or icon.
|
||||
options:
|
||||
values:
|
||||
- stacked
|
||||
- horizontal
|
||||
- horizontal-sm
|
||||
- none
|
||||
subtle:
|
||||
type: bool
|
||||
parent: cascade
|
||||
optional: true
|
||||
release: v0.23.0-alpha2
|
||||
comment: Apply subtle background colors.
|
||||
button:
|
||||
type: bool
|
||||
parent: cascade
|
||||
optional: true
|
||||
release: v0.23.0-beta
|
||||
comment: >-
|
||||
Flag indicating the cards should include a button that links to the provided address.
|
||||
body:
|
||||
optional: true
|
||||
comment: >-
|
||||
|
@@ -100,6 +100,26 @@ arguments:
|
||||
default: false
|
||||
comment: Flag to indicate the navbar should stick to the top.
|
||||
group: partial
|
||||
overlay:
|
||||
type: bool
|
||||
optional: true
|
||||
default: false
|
||||
comment: >-
|
||||
Flag to indicate if the navbar should render as an overlay on the current
|
||||
page.
|
||||
group: partial
|
||||
release: v0.22.6
|
||||
overlayMode:
|
||||
type: select
|
||||
optional: true
|
||||
default: dark
|
||||
comment: Color mode of the overlay.
|
||||
options:
|
||||
values:
|
||||
- light
|
||||
- dark
|
||||
group: partial
|
||||
release: v0.23.0
|
||||
logo:
|
||||
type: path
|
||||
optional: true
|
||||
|
@@ -20,6 +20,9 @@
|
||||
disableTemplate = ["katex"]
|
||||
[modules.katex]
|
||||
state = "defer"
|
||||
[modules.flexsearch]
|
||||
frontmatter = false
|
||||
filter = ""
|
||||
[modules.fontawesome]
|
||||
inline = true
|
||||
debug = true
|
||||
@@ -52,6 +55,8 @@
|
||||
logo = "/img/logo_icon.svg"
|
||||
color = "body"
|
||||
fixed = true
|
||||
overlay = false
|
||||
overlayMode = "dark"
|
||||
horizontal = false
|
||||
offset = "5.5rem"
|
||||
search = true
|
||||
@@ -127,7 +132,7 @@
|
||||
padding = "3"
|
||||
header = "none"
|
||||
footer = "tags"
|
||||
orientation = "horizontal-sm"
|
||||
orientation = "horizontal"
|
||||
style = "border-1 card-emphasize"
|
||||
homepage = 3
|
||||
separator = false
|
||||
@@ -152,6 +157,7 @@
|
||||
themeFont = "Inter"
|
||||
# themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" # external path
|
||||
themeFontPath = "/fonts" # local path
|
||||
themeFontPreload = "/fonts/inter-v12-latin-regular.woff2"
|
||||
purge = true
|
||||
# toml-docs-end theme-colors
|
||||
|
||||
|
@@ -8,7 +8,7 @@ showComments: false
|
||||
|
||||
{{< image src="/img/logo_var.svg#logo" class="img-fluid w-50" wrapper="text-center" >}}
|
||||
|
||||
{{< card-group class="text-center border-0" padding="3" >}}
|
||||
{{< card-group align="center" class="border-0" padding="3" >}}
|
||||
{{< card title="Bootstrap framework" icon="fab bootstrap" >}}
|
||||
Build fast, responsive sites with Bootstrap 5. Easily customize your site with the source Sass files.
|
||||
{{< /card >}}
|
||||
|
@@ -125,7 +125,8 @@ As an example, the following shortcode displays a stacked card that links to the
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* card path="about" padding="3" class="col-6 mx-auto" color="body-tertiary" header="publication" footer="none" /*/>}}
|
||||
{{</* card path="about" padding="3" class="col-6 mx-auto" color="body-tertiary"
|
||||
header="publication" footer="none" button=true /*/>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
|
@@ -9,7 +9,7 @@ showComments: false
|
||||
|
||||
{{< image src="/img/logo_var.svg#logo" class="img-fluid w-50" wrapper="text-center" >}}
|
||||
|
||||
{{< card-group class="text-center border-0" padding="3" >}}
|
||||
{{< card-group align="center" class="border-0" padding="3" >}}
|
||||
{{< card title="Framework Bootstrap" icon="fab bootstrap" >}}
|
||||
Créez des sites rapides et réactifs avec Bootstrap 5. Personnalisez facilement votre site avec les fichiers source Sass.
|
||||
{{< /card >}}
|
||||
|
@@ -10,7 +10,7 @@ showComments: false
|
||||
|
||||
{{< image src="/img/logo_var.svg#logo" class="img-fluid w-50" wrapper="text-center" >}}
|
||||
|
||||
{{< card-group class="text-center border-0" padding="3" >}}
|
||||
{{< card-group align="center" class="border-0" padding="3" >}}
|
||||
{{< card title="Bootstrap raamwerk" icon="fab bootstrap" >}}
|
||||
Bouw snelle websites geschikt voor mobiele en desktop schermen met Bootstrap 5. Pas de site eenvoudig aan met bronbestanden in Sass.
|
||||
{{< /card >}}
|
||||
|
@@ -15,6 +15,7 @@
|
||||
"form",
|
||||
"h2",
|
||||
"h3",
|
||||
"h5",
|
||||
"head",
|
||||
"hr",
|
||||
"html",
|
||||
@@ -26,7 +27,6 @@
|
||||
"mark",
|
||||
"meta",
|
||||
"nav",
|
||||
"nil",
|
||||
"noscript",
|
||||
"ol",
|
||||
"p",
|
||||
@@ -63,6 +63,7 @@
|
||||
"alert-dismissible",
|
||||
"align-items-center",
|
||||
"align-items-end",
|
||||
"align-items-start",
|
||||
"align-middle",
|
||||
"align-self-center",
|
||||
"align-self-end",
|
||||
@@ -102,6 +103,7 @@
|
||||
"card-body",
|
||||
"card-body-link",
|
||||
"card-body-margin",
|
||||
"card-button",
|
||||
"card-emphasize",
|
||||
"card-icon",
|
||||
"card-img-top",
|
||||
@@ -277,6 +279,7 @@
|
||||
"ms-md-3",
|
||||
"mt-2",
|
||||
"mt-3",
|
||||
"mt-4",
|
||||
"mt-5",
|
||||
"mt-auto",
|
||||
"multi-docs-collapse-15",
|
||||
@@ -305,6 +308,11 @@
|
||||
"navbar-toggler",
|
||||
"next",
|
||||
"no-js",
|
||||
"offcanvas",
|
||||
"offcanvas-body",
|
||||
"offcanvas-header",
|
||||
"offcanvas-start",
|
||||
"offcanvas-title",
|
||||
"order-0",
|
||||
"order-1",
|
||||
"order-first",
|
||||
@@ -331,12 +339,14 @@
|
||||
"ps-1",
|
||||
"ps-3",
|
||||
"ps-xl-3",
|
||||
"pt-1",
|
||||
"pt-5",
|
||||
"pt-md-3",
|
||||
"ptw-3",
|
||||
"ptw-5",
|
||||
"ptw-lg-5",
|
||||
"ptw-sm-4",
|
||||
"px-2",
|
||||
"px-4",
|
||||
"px-xxl-0",
|
||||
"py-1",
|
||||
@@ -516,6 +526,8 @@
|
||||
"navbar-sample-collapse",
|
||||
"navigation",
|
||||
"notification",
|
||||
"offcanvas-label",
|
||||
"offcanvass-sidebar",
|
||||
"persona",
|
||||
"projecten",
|
||||
"projects",
|
||||
|
12
go.mod
12
go.mod
@@ -5,12 +5,12 @@ go 1.19
|
||||
require (
|
||||
github.com/airbnb/lottie-web v5.12.2+incompatible // indirect
|
||||
github.com/gethinode/mod-bootstrap v1.2.2 // indirect
|
||||
github.com/gethinode/mod-flexsearch v1.8.1 // indirect
|
||||
github.com/gethinode/mod-fontawesome v1.8.0 // indirect
|
||||
github.com/gethinode/mod-flexsearch v1.9.0 // indirect
|
||||
github.com/gethinode/mod-fontawesome v1.8.1 // indirect
|
||||
github.com/gethinode/mod-katex v1.0.5 // indirect
|
||||
github.com/gethinode/mod-leaflet v0.4.0 // indirect
|
||||
github.com/gethinode/mod-lottie v1.4.1 // indirect
|
||||
github.com/gethinode/mod-utils v1.0.2 // indirect
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20240108021025-afd75f742f22 // indirect
|
||||
github.com/gethinode/mod-leaflet v1.0.0 // indirect
|
||||
github.com/gethinode/mod-lottie v1.4.2 // indirect
|
||||
github.com/gethinode/mod-utils/v2 v2.1.0 // indirect
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20240110101704-4c3966709f85 // indirect
|
||||
github.com/twbs/bootstrap v5.3.2+incompatible // indirect
|
||||
)
|
||||
|
24
go.sum
24
go.sum
@@ -44,6 +44,8 @@ github.com/gethinode/mod-flexsearch v1.8.0 h1:rKu9ackmbGAD/CRJYUDUhy/3nDCEj0IgYD
|
||||
github.com/gethinode/mod-flexsearch v1.8.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||
github.com/gethinode/mod-flexsearch v1.8.1 h1:xwPvmmxd8Tdyxp8/rnd9KRGqIDtZs/YwAQJ1i9oQMiM=
|
||||
github.com/gethinode/mod-flexsearch v1.8.1/go.mod h1:L8hrnpupx27cez2ObMX8gWnhbW6qss4HGH1Ea4UaBRQ=
|
||||
github.com/gethinode/mod-flexsearch v1.9.0 h1:AE+w7QeZTxh36JNTG+CASDLxaqlCZKn+EUD6ulnPGak=
|
||||
github.com/gethinode/mod-flexsearch v1.9.0/go.mod h1:L8hrnpupx27cez2ObMX8gWnhbW6qss4HGH1Ea4UaBRQ=
|
||||
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.1.0 h1:rsDzUI+3ZlS/do2ff3ne8/z3KwHeysmuA+WsXlumXXk=
|
||||
@@ -78,6 +80,8 @@ github.com/gethinode/mod-fontawesome v1.7.3 h1:YzRCYSasVRIcImVmTJYjqNJ+KmyNWfm/b
|
||||
github.com/gethinode/mod-fontawesome v1.7.3/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-fontawesome v1.8.0 h1:YEuCmvCdzcemF1eFK35Wnp1asKKO3/xbxGArnjq6PRY=
|
||||
github.com/gethinode/mod-fontawesome v1.8.0/go.mod h1:uvuC2YL8mdXNp6NRzFOu4TWsHvtY9AZ8YxJkF23/M/8=
|
||||
github.com/gethinode/mod-fontawesome v1.8.1 h1:iyvULrpaGizQoI5Vl9WjFYcMGWefdyG90NGK2UKax+k=
|
||||
github.com/gethinode/mod-fontawesome v1.8.1/go.mod h1:xBKsZH3WJtMOItZVlp9SbO51uaBy6IbvUZSKpNu3b6Y=
|
||||
github.com/gethinode/mod-katex v1.0.0 h1:me/3dIIZBkfk1mRIFt8QiAGYwYDoSG5bc2hHRtIutFc=
|
||||
github.com/gethinode/mod-katex v1.0.0/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||
github.com/gethinode/mod-katex v1.0.1 h1:809QUztxmKgMNchU+v03iMO7Ma+ISc3ZzhXYauc21rs=
|
||||
@@ -102,6 +106,8 @@ github.com/gethinode/mod-leaflet v0.3.5 h1:69Bv/6zRXhbcTzo7TMr58h3ry47srHRpM1k81
|
||||
github.com/gethinode/mod-leaflet v0.3.5/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
|
||||
github.com/gethinode/mod-leaflet v0.4.0 h1:Xc6c1UTf4m1saQLFfFWT5sEpwj25xVGuS8csGC82UUI=
|
||||
github.com/gethinode/mod-leaflet v0.4.0/go.mod h1:yr+bUKAstifdB16mbYh69OayAmgPOlNUubAmVn5eL2M=
|
||||
github.com/gethinode/mod-leaflet v1.0.0 h1:HdnWafOGkkK1hYGfqLYF3pp9dAFS/caxlzML9sO1rCc=
|
||||
github.com/gethinode/mod-leaflet v1.0.0/go.mod h1:Ei0x9WiL7Dbi4JeG6yI1CE63bT1QJ8sKi67Jea1wFSE=
|
||||
github.com/gethinode/mod-lottie v1.0.0 h1:1CUZMcgN5FAyjjyuP3qkaOQ6M5sv6HUAbosW4sIT5VE=
|
||||
github.com/gethinode/mod-lottie v1.0.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
||||
github.com/gethinode/mod-lottie v1.0.1 h1:+IE7xtnSVQpJS56oBJq9RWKZeFEfxrOZAqE3BSrS/u0=
|
||||
@@ -118,15 +124,33 @@ github.com/gethinode/mod-lottie v1.4.0 h1:0Ls1Q/8p0gQpuX9+dtfNGKcjBNeymjE7gERdnN
|
||||
github.com/gethinode/mod-lottie v1.4.0/go.mod h1:57eu6glS5oxkew2dB1P2zsbhw444aRX0XfuyDe7k/dk=
|
||||
github.com/gethinode/mod-lottie v1.4.1 h1:RzCjYsxFPqyBsYAcdPeUP0rvF+hD9eEl7NrxuaRiKQQ=
|
||||
github.com/gethinode/mod-lottie v1.4.1/go.mod h1:QjKlEmYbekrNGwa9EdFlPcXxwWWcraJUQ6xIL+syA60=
|
||||
github.com/gethinode/mod-lottie v1.4.2 h1:rHBhbMVRlkVMxVY+3g1u2kolDv695uL8Zur4mDeoIO8=
|
||||
github.com/gethinode/mod-lottie v1.4.2/go.mod h1:H6y1e3/2bBR1ujuM5N1iY39kpyN3RtcSRahX90+tlQI=
|
||||
github.com/gethinode/mod-utils v1.0.0 h1:cqHm2xS5uDiJzRm1KfHaNbq6uMVDKLhQa8/BuTZ1nhY=
|
||||
github.com/gethinode/mod-utils v1.0.0/go.mod h1:ONJm3pHCq7nvaPNjusLZNCeCbhOhSBH4HVKHwK1FdYE=
|
||||
github.com/gethinode/mod-utils v1.0.1 h1:jhZGlGFHHL1f5HXbBMXfiZ2gCz4TVafAzjnRPTIBSEE=
|
||||
github.com/gethinode/mod-utils v1.0.1/go.mod h1:ONJm3pHCq7nvaPNjusLZNCeCbhOhSBH4HVKHwK1FdYE=
|
||||
github.com/gethinode/mod-utils v1.0.2 h1:0b3i+/bBHY1Td9N6khDbL1nf3d5HGc4QzI4BbEWHoU4=
|
||||
github.com/gethinode/mod-utils v1.0.2/go.mod h1:ONJm3pHCq7nvaPNjusLZNCeCbhOhSBH4HVKHwK1FdYE=
|
||||
github.com/gethinode/mod-utils v1.0.3 h1:FF6lnam0Bcdj7G1E5P+qi5ByPrl1npL+3uS5YoPx1C0=
|
||||
github.com/gethinode/mod-utils v1.0.3/go.mod h1:ONJm3pHCq7nvaPNjusLZNCeCbhOhSBH4HVKHwK1FdYE=
|
||||
github.com/gethinode/mod-utils v1.0.4 h1:Lr7hAVaWHv0O5TJXhRHGhvlOvWwIATJm9mpLQhCsopM=
|
||||
github.com/gethinode/mod-utils v1.0.4/go.mod h1:ONJm3pHCq7nvaPNjusLZNCeCbhOhSBH4HVKHwK1FdYE=
|
||||
github.com/gethinode/mod-utils v1.1.0 h1:a82h/DQTKc5hxf/ExDoZqJCJmVLT0dtyU8tf78yOPFw=
|
||||
github.com/gethinode/mod-utils v1.1.0/go.mod h1:ONJm3pHCq7nvaPNjusLZNCeCbhOhSBH4HVKHwK1FdYE=
|
||||
github.com/gethinode/mod-utils/v2 v2.0.1 h1:yy8Qaytrk55YNMzyldYKDWJr6mpQs7s7TWBkSYRMBng=
|
||||
github.com/gethinode/mod-utils/v2 v2.0.1/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
||||
github.com/gethinode/mod-utils/v2 v2.0.2 h1:pocFT/mWPcfmABltZwe76D1IB3TZIrD1k1kH9zCDO1M=
|
||||
github.com/gethinode/mod-utils/v2 v2.0.2/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
||||
github.com/gethinode/mod-utils/v2 v2.0.3 h1:4BsRNGi+0a3Mq021Gq/TwDNiyuIfZ8xnpYU0DkNbUYI=
|
||||
github.com/gethinode/mod-utils/v2 v2.0.3/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
||||
github.com/gethinode/mod-utils/v2 v2.1.0 h1:5I0IN/AX5qPFYx7tjWXk59GBevTJzixxZUGj9MJ0b8M=
|
||||
github.com/gethinode/mod-utils/v2 v2.1.0/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3 h1:H/qVR5O4BXjRjD+5PZB+r4ug2BSJ2Of4RtwOntd+OKo=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20240108021025-afd75f742f22 h1:re7L8FxbXQpnX8BgzkdUnDpsUmloGNyLmiy2ZCln8pg=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20240108021025-afd75f742f22/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20240110101704-4c3966709f85 h1:H6xa5YyCHr78M+qqCApM4Kvz/eMA7pfGskYmfkEBRCA=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20240110101704-4c3966709f85/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
|
||||
github.com/twbs/bootstrap v5.3.2+incompatible h1:tuiO5acc6xnZUR77Sbi5aKWXxjYxbmsSbJwYrhAKoQQ=
|
||||
github.com/twbs/bootstrap v5.3.2+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=
|
||||
|
@@ -29,6 +29,8 @@
|
||||
translation: "No articles found"
|
||||
- id: emptyTags
|
||||
translation: "No tags found"
|
||||
- id: readMore
|
||||
translation: "Read more"
|
||||
|
||||
# Languages
|
||||
- id: lang_de
|
||||
|
@@ -27,6 +27,8 @@
|
||||
translation: "Geen artikelen gevonden"
|
||||
- id: emptyTags
|
||||
translation: "Geen tags gevonden"
|
||||
- id: readMore
|
||||
translation: "Lees meer"
|
||||
|
||||
# Languages
|
||||
- id: lang_de
|
||||
|
@@ -1,31 +1,3 @@
|
||||
{{- define "partials/optional-scripts.html" -}}
|
||||
{{ $page_modules := slice }}
|
||||
{{ if reflect.IsMap .Params.modules }}
|
||||
{{ $page_modules = .Params.modules }}
|
||||
{{ else }}
|
||||
{{ $page_modules = $page_modules | append .Params.modules }}
|
||||
{{ end }}
|
||||
|
||||
{{- $modules := site.Params.modules.optional | intersect $page_modules -}}
|
||||
{{- range $index, $mod := $modules -}}
|
||||
{{- $filename := printf "js/%s.bundle.js" $mod -}}
|
||||
{{- $match := printf "js/modules/%s/**.js" $mod -}}
|
||||
{{- $skipTemplate := false -}}
|
||||
{{- if reflect.IsSlice site.Params.modules.disableTemplate -}}
|
||||
{{- if in site.Params.modules.disableTemplate $mod}}
|
||||
{{- $skipTemplate = true -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{ $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 -}}
|
||||
|
||||
{{- /* Set version-aware sidebar menu */ -}}
|
||||
{{- $version := partial "utilities/GetVersion.html" (dict "page" . "base" true) -}}
|
||||
{{- $.Scratch.Set "version" $version -}}
|
||||
@@ -71,6 +43,8 @@
|
||||
{{- partial "assets/navbar.html" (dict
|
||||
"page" .
|
||||
"fixed" site.Params.navigation.fixed
|
||||
"overlay" site.Params.navigation.overlay
|
||||
"overlayMode" site.Params.navigation.overlayMode
|
||||
"color" site.Params.navigation.color
|
||||
"style" (default "light" site.Params.navigation.style)
|
||||
"size" (default "md" site.Params.navigation.size))
|
||||
@@ -97,6 +71,6 @@
|
||||
|
||||
{{- partial "footer/toast-container.html" . -}}
|
||||
{{- partialCached "footer/scripts.html" (dict "header" false "page" . "core" true) }}
|
||||
{{- partial "partials/optional-scripts.html" . -}}
|
||||
{{- partial "footer/optional-scripts.html" . -}}
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -1,29 +1,9 @@
|
||||
{{- define "partials/single-main.html" -}}
|
||||
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
|
||||
{{ if .Site.Params.navigation.breadcrumb }}{{ partial "assets/breadcrumb.html" (dict "page" .) }}{{ end -}}
|
||||
|
||||
{{ .Render "single/header" }}
|
||||
|
||||
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}}
|
||||
<div class="d-{{ $breakpoint.current }}-none pb-5">{{ partial "assets/toc-dropdown.html" (dict "page" .) }}</div>
|
||||
{{- end -}}
|
||||
{{ .Render "single/body" }}
|
||||
|
||||
{{ .Render "single/footer" }}
|
||||
{{ end -}}
|
||||
|
||||
{{ define "main" -}}
|
||||
{{- $menu := .Scratch.Get "sidebar" -}}
|
||||
{{- $version := .Scratch.Get "version" -}}
|
||||
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
|
||||
|
||||
{{ $sidebar := "" }}
|
||||
{{- $hasSidebar := .Site.Params.navigation.sidebar | default true -}}
|
||||
{{ if and $menu $hasSidebar }}{{ $sidebar = partial "assets/sidebar.html" (dict "page" . "menu" $menu "version" $version) }}{{ end }}
|
||||
|
||||
{{ $sidebar := .Render "single/sidebar" }}
|
||||
{{ $toc := .Render "single/panel-toc" }}
|
||||
|
||||
{{ with $sidebar -}}
|
||||
{{ with $sidebar }}
|
||||
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvass-sidebar" aria-inledby="offcanvas-label">
|
||||
<div class="offcanvas-header">
|
||||
<h5 class="offcanvas-title" id="offcanvas-label">{{ strings.FirstUpper $.Section }}</h5>
|
||||
@@ -36,13 +16,13 @@
|
||||
{{ end }}
|
||||
|
||||
<div class="container-xxl flex-fill p-4 px-xxl-0">
|
||||
{{ if $hasSidebar -}}
|
||||
{{ if $sidebar -}}
|
||||
<div class="row row-cols-1 row-cols-{{ $breakpoint.current }}-2 row-cols-{{ $breakpoint.next }}-3">
|
||||
<div class="col col-{{ $breakpoint.next }}-2 d-none d-{{ $breakpoint.next }}-block sidebar-overflow sticky-top pt-5">
|
||||
{{ $sidebar | safeHTML }}
|
||||
</div>
|
||||
<div class="col-12 col-{{ $breakpoint.current }}-9 col-{{ $breakpoint.next }}-8 mb-5 p-4">
|
||||
{{ partial "partials/single-main.html" . }}
|
||||
{{ .Render "single/main" }}
|
||||
</div>
|
||||
<div class="col col-{{ $breakpoint.current }}-3 col-{{ $breakpoint.next }}-2 d-none d-{{ $breakpoint.current }}-block pt-5">
|
||||
{{ $toc | safeHTML }}
|
||||
@@ -51,7 +31,7 @@
|
||||
{{ else }}
|
||||
<div class="row row-cols-1 row-cols-{{ $breakpoint.current }}-2">
|
||||
<div class="col col-{{ $breakpoint.prev }}-12 col-{{ $breakpoint.current }}-9">
|
||||
{{ partial "partials/single-main.html" . }}
|
||||
{{ .Render "single/main" }}
|
||||
</div>
|
||||
<div class="col col-{{ $breakpoint.current }}-3 d-none d-{{ $breakpoint.current }}-block">
|
||||
{{ $toc | safeHTML }}
|
||||
|
11
layouts/_default/single/main.html
Normal file
11
layouts/_default/single/main.html
Normal file
@@ -0,0 +1,11 @@
|
||||
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
|
||||
{{ if .Site.Params.navigation.breadcrumb }}{{ partial "assets/breadcrumb.html" (dict "page" .) }}{{ end -}}
|
||||
|
||||
{{ .Render "single/header" }}
|
||||
|
||||
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}}
|
||||
<div class="d-{{ $breakpoint.current }}-none pb-5">{{ partial "assets/toc-dropdown.html" (dict "page" .) }}</div>
|
||||
{{- end -}}
|
||||
{{ .Render "single/body" }}
|
||||
|
||||
{{ .Render "single/footer" }}
|
@@ -1,17 +1,15 @@
|
||||
{{- $download := .Params.download -}}
|
||||
{{- if and $download (not (fileExists (path.Join "static" $download))) -}}
|
||||
{{- errorf "Cannot find download file for page '%s': %s" .File.Path $download -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $toc := .Site.Params.navigation.toc -}}
|
||||
{{ if $toc }}
|
||||
{{- $includeToc := false -}}
|
||||
{{- if .Site.Params.navigation.toc -}}
|
||||
{{ $includeToc = true }}
|
||||
{{ if isset .Params "includeToc" }}
|
||||
{{ $toc = .Params.includeToc }}
|
||||
{{ $includeToc = .Params.includeToc }}
|
||||
{{ else }}
|
||||
{{- with (index site.Params.pages .Type) -}}
|
||||
{{ if isset . "includetoc" }}
|
||||
{{ $toc = index . "includetoc" }}
|
||||
{{ if ne (printf "%T" $toc) "bool" }}
|
||||
{{ $includeToc = index . "includetoc" }}
|
||||
{{ if ne (printf "%T" $includeToc) "bool" }}
|
||||
{{ errorf "Expected bool value in site parameters: pages.%s.includeToc" $.Type }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
@@ -19,24 +17,20 @@
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
<div class="toc toc-sidebar mb-5 my-md-0 ps-xl-3 mb-lg-5 p-3 text-body-secondary sticky-top">
|
||||
{{ with $download }}
|
||||
{{ $title := (T "download" ) }}
|
||||
{{ $lang := strings.TrimPrefix "." (path.Ext (path.BaseName .)) }}
|
||||
{{ if and $lang (ne (string site.LanguageCode) $lang) }}
|
||||
{{ range site.Languages }}
|
||||
{{ if eq .LanguageCode $lang }}
|
||||
{{ $title = printf "%s (%s)" (T "download") (T (printf "lang_%s" .LanguageCode)) }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<div class="mb-5 text-center">
|
||||
{{ $attr := dict "download" (path.Base .) }}
|
||||
{{ partial "assets/button.html" (dict "href" . "title" $title "color" "primary" "outline" "true" "icon" "fas download" "size" "sm" "attributes" $attr) }}
|
||||
<div class="toc toc-sidebar mb-5 my-md-0 mb-lg-5 p-3 text-body-secondary sticky-top">
|
||||
{{ if $download }}
|
||||
<div class="mb-5 p-0">
|
||||
{{ partial "assets/download.html" (dict
|
||||
"download" $download
|
||||
"outline" true
|
||||
"size" "sm"
|
||||
"order" "last"
|
||||
) }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ if $toc }}
|
||||
{{ partial "assets/toc.html" (dict "page" .) }}
|
||||
{{ if $includeToc }}
|
||||
{{ $index := partial "assets/toc.html" (dict "page" .) }}
|
||||
{{ $index | safeHTML }}
|
||||
{{ end -}}
|
||||
</div>
|
||||
|
7
layouts/_default/single/sidebar.html
Normal file
7
layouts/_default/single/sidebar.html
Normal file
@@ -0,0 +1,7 @@
|
||||
{{- $menu := .Scratch.Get "sidebar" -}}
|
||||
{{- $version := .Scratch.Get "version" -}}
|
||||
{{ $sidebar := "" }}
|
||||
{{- $hasSidebar := .Site.Params.navigation.sidebar | default true -}}
|
||||
{{ if and $menu $hasSidebar }}
|
||||
{{ partial "assets/sidebar.html" (dict "page" . "menu" $menu "version" $version) }}
|
||||
{{ end }}
|
@@ -16,18 +16,20 @@
|
||||
{{ $page := .page }}
|
||||
|
||||
<!-- Main code -->
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb">
|
||||
{{- range $index, $item := $page.Ancestors.Reverse -}}
|
||||
{{- $title := .LinkTitle -}}
|
||||
{{- if .IsHome }}{{ $title = T "home" }}{{ end -}}
|
||||
{{- $address := or .RelPermalink (.Params.Redirect | relLangURL) -}}
|
||||
{{ if $address }}
|
||||
<li class="breadcrumb-item"><a href="{{ $address }}">{{ $title }}</a></li>
|
||||
{{ else }}
|
||||
<li class="breadcrumb-item">{{ $title }}</li>
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
<li class="breadcrumb-item active" aria-current="page">{{ $page.LinkTitle }}</li>
|
||||
</ol>
|
||||
</nav>
|
||||
{{ if not $error }}
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb">
|
||||
{{- range $index, $item := $page.Ancestors.Reverse -}}
|
||||
{{- $title := .LinkTitle -}}
|
||||
{{- if .IsHome }}{{ $title = T "home" }}{{ end -}}
|
||||
{{- $address := or .RelPermalink (.Params.Redirect | relLangURL) -}}
|
||||
{{ if $address }}
|
||||
<li class="breadcrumb-item"><a href="{{ $address }}">{{ $title }}</a></li>
|
||||
{{ else }}
|
||||
<li class="breadcrumb-item">{{ $title }}</li>
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
<li class="breadcrumb-item active" aria-current="page">{{ $page.LinkTitle }}</li>
|
||||
</ol>
|
||||
</nav>
|
||||
{{ end }}
|
@@ -16,8 +16,8 @@
|
||||
{{- $title := trim .title " \r\n" -}}
|
||||
{{- $icon := .icon }}
|
||||
{{- if not (or $title $icon) -}}
|
||||
{{- errorf "partial [assets/button.html] - Missing element title or icon" -}}
|
||||
{{ $error = true }}
|
||||
{{- warnf "partial [assets/button.html] - Missing element title or icon" -}}
|
||||
{{ $title = T "linkPlaceholder" }}
|
||||
{{- end -}}
|
||||
|
||||
{{- $id := .id }}
|
||||
|
@@ -27,34 +27,43 @@
|
||||
{{- $orientation := .orientation -}}
|
||||
{{- $ratio := .ratio -}}
|
||||
{{- $wrapper := .wrapper | default "p-0" -}}
|
||||
{{- $style := .style -}}
|
||||
{{- $align := .align -}}
|
||||
{{- $subtle := .subtle }}
|
||||
{{- $loading := .loading -}}
|
||||
{{- $button := .button -}}
|
||||
|
||||
<!-- Override arguments -->
|
||||
{{ $isPages := in (slice "page.Pages" "resource.Resources") (printf "%T" $pages) }}
|
||||
{{ $paginator := "" }}
|
||||
{{ if $paginate }}
|
||||
{{ if and $isPages $paginate }}
|
||||
{{ $paginator = $page.Paginate $pages }}
|
||||
{{ $pages = first $paginator.PageSize (after (mul (sub $paginator.PageNumber 1) $paginator.PageSize) $pages) }}
|
||||
{{ end }}
|
||||
|
||||
{{ $list := slice }}
|
||||
{{ range $index, $element := $pages }}
|
||||
{{ $params := dict }}
|
||||
<!-- regular page -->
|
||||
{{- if and $element.RelPermalink $element.File -}}
|
||||
{{- $params = merge $params (dict "path" $element.File.Path) -}}
|
||||
<!-- headless page -->
|
||||
{{- else -}}
|
||||
{{- $thumbnail := (or (and (reflect.IsMap $element.Params.Thumbnail) $element.Params.Thumbnail.url) $element.Params.Thumbnail) -}}
|
||||
{{- $params = merge $params (dict
|
||||
"title" $element.Title
|
||||
"href" $element.RelPermalink
|
||||
"description" (partial "utilities/GetDescription.html" $element)
|
||||
"thumbnail" $thumbnail
|
||||
"icon" $element.Params.icon
|
||||
) -}}
|
||||
{{- end -}}
|
||||
{{ if $isPages }}
|
||||
{{ range $index, $element := $pages }}
|
||||
{{ $params := dict }}
|
||||
<!-- regular page -->
|
||||
{{- if and $element.RelPermalink $element.File -}}
|
||||
{{- $params = merge $params (dict "path" $element.File.Path) -}}
|
||||
<!-- headless page -->
|
||||
{{- else -}}
|
||||
{{- $thumbnail := (or (and (reflect.IsMap $element.Params.Thumbnail) $element.Params.Thumbnail.url) $element.Params.Thumbnail) -}}
|
||||
{{- $params = merge $params (dict
|
||||
"title" $element.Title
|
||||
"href" $element.RelPermalink
|
||||
"description" (partial "utilities/GetDescription.html" (dict "page" $element "raw" true))
|
||||
"thumbnail" $thumbnail
|
||||
"icon" $element.Params.icon
|
||||
) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $list = $list | append $params }}
|
||||
{{- $list = $list | append $params }}
|
||||
{{ end }}
|
||||
{{ else if $pages }}
|
||||
{{ $list = $list | append $pages }}
|
||||
{{ end }}
|
||||
|
||||
{{- $count := len $list -}}
|
||||
@@ -90,6 +99,10 @@
|
||||
"orientation" $orientation
|
||||
"padding" $padding
|
||||
"ratio" $ratio
|
||||
"subtle" $subtle
|
||||
"style" $style
|
||||
"align" $align
|
||||
"button" $button
|
||||
) -}}
|
||||
{{- $params = merge $params $element }}
|
||||
|
||||
@@ -102,7 +115,7 @@
|
||||
</div>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- print $cards | safeHTML }}
|
||||
{{if $cards }}{{- print $cards | safeHTML }}{{ end }}
|
||||
</div>
|
||||
|
||||
{{ if $paginate }}
|
||||
@@ -111,7 +124,7 @@
|
||||
{{- end -}}
|
||||
{{ else }}
|
||||
{{ if and (gt $count $max) $moreTitle }}
|
||||
<a class="btn btn-outline-primary" href="{{ $moreURL| safeURL }}" role="button">{{ $moreTitle }}</a>
|
||||
<a class="btn btn-outline-primary mt-4" href="{{ $moreURL| safeURL }}" role="button">{{ $moreTitle }}</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
@@ -19,12 +19,25 @@
|
||||
{{- $header := .header | default "full" -}}
|
||||
{{- $href := .href -}}
|
||||
{{- $icon := .icon -}}
|
||||
{{- $iconStyle := "" -}}
|
||||
{{- $align := .align | default "start" -}}
|
||||
{{- $style := .style | default "" -}}
|
||||
{{- $loading := .loading -}}
|
||||
{{- $orientation := .orientation | default "stacked" -}}
|
||||
{{- $padding := .padding | default "auto" -}}
|
||||
{{- $padding := (string .padding) | default "auto" -}}
|
||||
{{- $ratio := .ratio -}}
|
||||
{{- $thumbnail := .thumbnail -}}
|
||||
{{- $title := .title -}}
|
||||
{{- $subtle := .subtle -}}
|
||||
{{- $button := .button -}}
|
||||
{{- $colorStyle := "" -}}
|
||||
{{ if $color }}
|
||||
{{ if $subtle }}
|
||||
{{- $colorStyle = printf "bg-%s-subtle text-%s-emphasis" $color $color -}}
|
||||
{{ else }}
|
||||
{{- $colorStyle = printf "bg-%s text-bg-%s" $color $color -}}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
<!-- Override arguments -->
|
||||
{{- $page := "" }}
|
||||
@@ -37,11 +50,18 @@
|
||||
{{- with $page -}}
|
||||
{{- if not $title }}{{ $title = .Title }}{{ end -}}
|
||||
{{- if not $href }}{{ $href = .RelPermalink }}{{ end -}}
|
||||
{{- if not $description }}{{ $description = partial "utilities/GetDescription.html" . }}{{ end -}}
|
||||
{{- if not $description }}{{ $description = partial "utilities/GetDescription.html" (dict "page" .) }}{{ end -}}
|
||||
{{- if not $thumbnail }}{{ $thumbnail = (or (and (reflect.IsMap .Params.Thumbnail) .Params.Thumbnail.url) .Params.Thumbnail) }}{{ end -}}
|
||||
{{- if not $icon }}{{ $icon = .Params.icon }}{{ end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{ if (hasPrefix $orientation "horizontal") }}
|
||||
{{ if not $style }}{{ $style = "fa-fluid fa-fw" }}{{ end }}
|
||||
{{ else }}
|
||||
{{ if not $style }}{{ $style = "fa-4x" }}{{ end }}
|
||||
{{- $iconStyle = "pb-3" -}}
|
||||
{{ end }}
|
||||
|
||||
{{- if eq $orientation "none" }}{{ $thumbnail = "" }}{{ $icon = "" }}{{ end -}}
|
||||
|
||||
<!-- Inline partial to render the card's body -->
|
||||
@@ -50,6 +70,7 @@
|
||||
{{- $href := .href -}}
|
||||
{{- $color := .color -}}
|
||||
{{- $description := .description -}}
|
||||
{{- $button := .button -}}
|
||||
|
||||
{{- if $href -}}
|
||||
<a href="{{ $href }}" class="{{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }} stretched-link">
|
||||
@@ -100,36 +121,39 @@
|
||||
|
||||
{{- if hasPrefix $orientation "horizontal" -}}
|
||||
<!-- Render horizontal card -->
|
||||
<div class="card {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}">
|
||||
<div class="row g-0 row-cols-1 h-100">
|
||||
<div class="col-4{{ if eq $orientation "horizontal-sm" }} col-md-2{{ end }}">
|
||||
<div class="card {{ $colorStyle }} {{ $class }}">
|
||||
<div class="row g-0 row-cols-1 h-100{{ if $button }} pb-5{{ end }}">
|
||||
<div class="{{ if eq $orientation "horizontal-sm" }}col-4 col-md-2{{ else }}col-4{{ end }}">
|
||||
{{- if $thumbnail -}}
|
||||
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" (or $ratio "1x1") "wrapper" "h-100 card-img-wrap" "class" "rounded-start card-img-h100" "title" $title "loading" $loading) -}}
|
||||
{{- else if $icon -}}
|
||||
<div class="card-icon p-{{ $padding }} h-100 fa-wrapper d-flex align-items-center justify-content-center">
|
||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-fluid fa-fw" $icon)) -}}
|
||||
<div class="card-icon p-{{ $padding }} h-100 fa-wrapper d-flex align-items-{{ $align}} justify-content-center {{ $iconStyle }}">
|
||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s %s" $icon $style)) -}}
|
||||
</div>
|
||||
{{- end -}}
|
||||
</div>
|
||||
<div class="col-8{{ if eq $orientation "horizontal-sm" }} col-md-10{{ end }}">
|
||||
<div class="card-body d-flex p-{{ $padding }} flex-column h-100">
|
||||
<div class="{{ if eq $orientation "horizontal-sm" }}col-8 col-md-10{{ else }}col-8{{ end }}">
|
||||
<div class="card-body d-flex p-{{ $padding }} flex-column h-100 flex-fill">
|
||||
{{ if $page }}<div>{{ partial "card-caption.html" (dict "page" $page "keywords" $header "color" $color) }}</div>{{ end }}
|
||||
<div class="h-100">
|
||||
{{- partial "card-body.html" (dict "title" $title "href" $href "color" $color "description" $description) -}}
|
||||
<div class="flex-fill">
|
||||
{{- partial "card-body.html" (dict "title" $title "href" $href "color" $color "description" $description "button" $button) -}}
|
||||
</div>
|
||||
{{ if $page }}<div>{{ partial "card-caption.html" (dict "page" $page "keywords" $footer "color" $color) }}</div>{{ end }}
|
||||
{{ if $button }}
|
||||
<div>{{ partial "assets/button.html" (dict "title" (T "readMore") "href" $href "outline" true "size" "sm" "class" "card-button mb-n4") }}</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{- else -}}
|
||||
<!-- Render stacked / default card -->
|
||||
<div class="card {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}">
|
||||
<div class="card {{ $colorStyle }} {{ $class }} text-{{ $align }}">
|
||||
{{- if $thumbnail -}}
|
||||
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" (or $ratio "16x9") "wrapper" "card-img-wrap" "class" "card-img-top" "title" (or $alt $title) "loading" $loading) -}}
|
||||
{{- else if $icon -}}
|
||||
<div class="card-icon p-{{ $padding }}">
|
||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-4x" $icon)) -}}
|
||||
<div class="card-icon p-{{ $padding }} {{ $iconStyle }} text-{{ $align }}">
|
||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s %s" $icon $style)) -}}
|
||||
</div>
|
||||
{{- end -}}
|
||||
<div class="card-body d-flex flex-column p-{{ $padding }}">
|
||||
@@ -137,6 +161,14 @@
|
||||
{{- partial "card-body.html" (dict "title" $title "href" $href "color" $color "description" $description) -}}
|
||||
{{ if $page }}{{- partial "card-caption.html" (dict "page" $page "keywords" $footer "color" $color) -}}{{ end }}
|
||||
</div>
|
||||
{{ if $button }}
|
||||
<div class="row p-{{ $padding }}" >
|
||||
<div class="{{ if eq $orientation "horizontal-sm" }}col-4 col-md-2{{ else if eq $orientation "horizontal" }}col-4{{ end }}"></div>
|
||||
<div class="col {{ if eq $orientation "horizontal-sm" }}px-2{{ else if eq $orientation "horizontal"}}px-1 {{ else }}px-2 pt-1{{ end }}">
|
||||
{{ partial "assets/button.html" (dict "title" (T "readMore") "href" $href "outline" true "size" "sm" "class" "card-button") }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{- end -}}
|
||||
|
||||
|
38
layouts/partials/assets/download.html
Normal file
38
layouts/partials/assets/download.html
Normal file
@@ -0,0 +1,38 @@
|
||||
{{- $download := partial "utilities/GetTargetPath.html" (dict "path" .download "page" page) -}}
|
||||
{{- $color := .color | default "primary" -}}
|
||||
{{- $outline := .outline | default true -}}
|
||||
{{- $icon := .icon | default "fas download" -}}
|
||||
{{- $size := .size | default "sm" -}}
|
||||
{{- $justify := .justify -}}
|
||||
{{- $class := .class -}}
|
||||
{{- $minimal := .minimal | default false -}}
|
||||
|
||||
{{- if and $download (not (fileExists (path.Join "static" $download))) -}}
|
||||
{{- errorf "Cannot find download file for page '%s': %s" page.File.Path $download -}}
|
||||
{{- end -}}
|
||||
|
||||
{{ with $download }}
|
||||
{{ $title := "" }}
|
||||
{{ if not $minimal }}{{ $title = (T "download" ) }}{{ end }}
|
||||
{{ $lang := strings.TrimPrefix "." (path.Ext (path.BaseName .)) }}
|
||||
{{ if and $lang (ne (string site.LanguageCode) $lang) }}
|
||||
{{ range site.Languages }}
|
||||
{{ if eq .LanguageCode $lang }}
|
||||
{{ $title = printf "%s (%s)" (T "download") (T (printf "lang_%s" .LanguageCode)) }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ $attr := dict "download" (path.Base .) }}
|
||||
{{ partial "assets/button.html" (dict
|
||||
"href" .
|
||||
"title" $title
|
||||
"color" $color
|
||||
"outline" $outline
|
||||
"icon" $icon
|
||||
"size" $size
|
||||
"justify" $justify
|
||||
"class" $class
|
||||
"attributes" $attr
|
||||
) }}
|
||||
{{ end }}
|
||||
|
@@ -73,7 +73,7 @@
|
||||
"title" $item.Title
|
||||
"class" $class
|
||||
"color" $color
|
||||
"content" (partial "utilities/GetDescription.html" $item)
|
||||
"content" (partial "utilities/GetDescription.html" (dict "page" $item))
|
||||
"thumbnail" $thumbnail
|
||||
) -}}
|
||||
{{- else -}}
|
||||
|
@@ -110,6 +110,8 @@
|
||||
|
||||
{{- $size := .size | default "md" -}}
|
||||
{{- $fixed := .fixed | default false -}}
|
||||
{{- $overlay := .overlay | default false -}}
|
||||
{{- $overlayMode := .overlayMode | default "dark" -}}
|
||||
{{- $color := .color | default "" -}}
|
||||
{{- $search := .search | default site.Params.navigation.search -}}
|
||||
{{- $searchModal := and $search site.Params.navigation.searchModal -}}
|
||||
@@ -170,7 +172,16 @@
|
||||
<!-- Main code -->
|
||||
<div class="container-fluid {{ if $fixed }}fixed-top{{ end }} p-0{{ with $class }} {{ . }}{{ end }}">
|
||||
{{- partial "assets/page-alert.html" (dict "page" $page) -}}
|
||||
<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 }}>
|
||||
<nav class="navbar p-4
|
||||
{{- if not $overlay }}{{ with $color }} bg-{{ . }}{{ end }}{{ end -}}
|
||||
{{ if $fixed }} navbar-fixed-top{{ end }} navbar-expand-{{ $size -}}
|
||||
{{ if $contrast }} navbar-contrast{{ end }}"
|
||||
{{ if $overlay }}
|
||||
data-bs-theme="{{ $overlayMode }}"
|
||||
data-bs-overlay="{{ $overlayMode }}"
|
||||
{{ else }}{{ with $theme }}data-bs-theme="{{ . }}"{{ end }}{{ end }}
|
||||
{{ if $overlay }}data-navbar-color="{{ $color }}"{{ end }}
|
||||
>
|
||||
<div class="container-xxl p-0">
|
||||
<!-- Insert sidebar toggler when applicable -->
|
||||
<div class="d-flex align-items-center">
|
||||
|
@@ -35,7 +35,7 @@
|
||||
{{- $sort := $page.Site.Params.sharing.sort | default "weight" -}}
|
||||
{{- $list = sort $list $sort $order -}}
|
||||
|
||||
{{- $download := $page.Params.download -}}
|
||||
{{- $download := partial "utilities/GetTargetPath.html" (dict "path" $page.Params.download "page" $page) -}}
|
||||
{{- if and $download (not (fileExists (path.Join "static" $download))) -}}
|
||||
{{- errorf "Cannot find download file for page '%s': %s" $page.File.Path $download -}}
|
||||
{{- end -}}
|
||||
|
@@ -26,15 +26,14 @@
|
||||
"icon" "fas sort"
|
||||
"justify" "between"
|
||||
"collapse" "toc-collapse"
|
||||
"order" "last")
|
||||
-}}
|
||||
"order" "last"
|
||||
"spacing" false
|
||||
) -}}
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<div class="collapse border bg-body-tertiary rounded p-1 navbar-nav-scroll" id="toc-collapse">
|
||||
<div class="toc toc-panel text-body p-2">
|
||||
<small>{{ $page.TableOfContents }}</small>
|
||||
</div>
|
||||
<div class="collapse border bg-body-tertiary rounded p-1 navbar-nav-scroll" id="toc-collapse">
|
||||
<div class="toc toc-panel text-body p-2">
|
||||
<small>{{ $page.TableOfContents }}</small>
|
||||
</div>
|
||||
</p>
|
||||
</div>
|
||||
{{ end -}}
|
@@ -18,6 +18,6 @@
|
||||
|
||||
<!-- Main code -->
|
||||
{{ if and (not $error) (gt $items 1) -}}
|
||||
<strong class="d-block h6 my-2 pb-2 border-bottom">{{ T "toc" }}</strong>
|
||||
<strong class="d-block h6 my-2 pb-2">{{ T "toc" }}:</strong>
|
||||
{{ $page.TableOfContents }}
|
||||
{{ end -}}
|
25
layouts/partials/footer/optional-scripts.html
Normal file
25
layouts/partials/footer/optional-scripts.html
Normal file
@@ -0,0 +1,25 @@
|
||||
{{ $page_modules := slice }}
|
||||
{{ if reflect.IsMap .Params.modules }}
|
||||
{{ $page_modules = .Params.modules }}
|
||||
{{ else }}
|
||||
{{ $page_modules = $page_modules | append .Params.modules }}
|
||||
{{ end }}
|
||||
|
||||
{{- $modules := site.Params.modules.optional | intersect $page_modules -}}
|
||||
{{- range $index, $mod := $modules -}}
|
||||
{{- $filename := printf "js/%s.bundle.js" $mod -}}
|
||||
{{- $match := printf "js/modules/%s/**.js" $mod -}}
|
||||
{{- $skipTemplate := false -}}
|
||||
{{- if reflect.IsSlice site.Params.modules.disableTemplate -}}
|
||||
{{- if in site.Params.modules.disableTemplate $mod}}
|
||||
{{- $skipTemplate = true -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{ $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 -}}
|
@@ -1,8 +1,10 @@
|
||||
{{ define "head" }}
|
||||
{{- $version := strings.TrimPrefix "v" (partialCached "assets/version.html" .) -}}
|
||||
{{ $desc := .Page.Description | default (.Page.Content | safeHTML | truncate 150) -}}
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
{{ hugo.Generator}}
|
||||
{{ hugo.Generator }}
|
||||
<meta name="theme" content="{{ printf "Hinode %s" $version }}">
|
||||
{{ partialCached "head/stylesheet-core.html" . -}}
|
||||
|
||||
{{ $page_modules := slice | append .Page.Params.modules }}
|
||||
@@ -16,6 +18,9 @@
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="stylesheet" href="{{ .Site.Params.style.themeFontPath | default "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" }}">
|
||||
{{ else if .Site.Params.style.themeFontPreload }}
|
||||
{{ $font := .Site.Params.style.themeFontPreload }}
|
||||
<link rel="preload" href="{{ $font }}" as="font" type="font/{{ strings.TrimPrefix "." (path.Ext $font) }}" crossorigin>
|
||||
{{- end -}}
|
||||
{{ partial "head/seo.html" . }}
|
||||
{{ partialCached "head/favicon.html" . -}}
|
||||
|
@@ -7,7 +7,7 @@
|
||||
{{ $.Scratch.Set "title" .Site.Title -}}
|
||||
{{ end -}}
|
||||
|
||||
{{ $description := or (partial "utilities/GetDescription.html" .) .Site.Params.main.description }}
|
||||
{{ $description := or (partial "utilities/GetDescription.html" (dict "page" .)) .Site.Params.main.description }}
|
||||
{{ if gt (strings.RuneCount $description) 150 }}
|
||||
{{ $description = print (substr $description 0 150) "..." }}
|
||||
{{ end }}
|
||||
|
@@ -26,8 +26,10 @@
|
||||
{{- errorf "partial [head/stylesheet.html] - Invalid value for site param 'style.darkModeTint': %s" site.Params.style.darkModeTint -}}
|
||||
{{ end}}
|
||||
|
||||
{{- $navbarOffset := "0em" -}}
|
||||
{{- if site.Params.navigation.fixed }}{{ $navbarOffset = site.Params.navigation.offset | default "4em" }}{{ end }}
|
||||
{{- $navbarOffset := "0rem" -}}
|
||||
{{- if site.Params.navigation.fixed }}{{ $navbarOffset = site.Params.navigation.offset | default "4rem" }}{{ end }}
|
||||
{{- $overlayOffset := $navbarOffset -}}
|
||||
{{- if site.Params.navigation.overlay }}{{ $overlayOffset = "0rem" }}{{ end }}
|
||||
{{- $vars := dict
|
||||
"theme-font" (default "Inter" site.Params.style.themeFont)
|
||||
"font-size-base" (default "1rem" site.Params.style.fontSizeBase)
|
||||
@@ -39,8 +41,9 @@
|
||||
"danger" (default "#dc3545" site.Params.style.danger)
|
||||
"light" (default "#f8f9fa" site.Params.style.light)
|
||||
"dark" (default "#212529" site.Params.style.dark)
|
||||
"navbar-height" (site.Params.navigation.offset | default "4em")
|
||||
"navbar-height" (site.Params.navigation.offset | default "4rem")
|
||||
"navbar-offset" $navbarOffset
|
||||
"overlay-offset" $overlayOffset
|
||||
"enable-dark-mode" (printf "%t" ((default true site.Params.main.enableDarkMode)))
|
||||
"import-fonts" (printf "%t" (not (hasPrefix (lower site.Params.style.themeFontPath) "http")))
|
||||
"dark-mode-shade" (default "0%" site.Params.style.darkModeShade)
|
||||
|
@@ -24,6 +24,10 @@
|
||||
{{- $header := .Get "header" | default "" -}}
|
||||
{{- $footer := .Get "footer" | default "" -}}
|
||||
{{- $orientation := .Get "orientation" | default "" -}}
|
||||
{{- $align := .Get "align" | default "start" -}}
|
||||
{{- $style := .Get "style" | default "" -}}
|
||||
{{- $subtle := .Get "subtle" | default false -}}
|
||||
{{- $button := .Get "button" | default false -}}
|
||||
|
||||
{{ $inner := .Scratch.Get "inner" }}
|
||||
{{ $input := trim .Inner " \r\n" }}
|
||||
@@ -48,5 +52,9 @@
|
||||
"header" $header
|
||||
"footer" $footer
|
||||
"orientation" $orientation
|
||||
"align" $align
|
||||
"style" $style
|
||||
"subtle" $subtle
|
||||
"button" $button
|
||||
)
|
||||
-}}
|
||||
|
@@ -21,6 +21,9 @@
|
||||
{{- $gutter := partial "utilities/GetArgParent" (dict "page" . "arg" "gutter") | default "0" -}}
|
||||
{{- $header := partial "utilities/GetArgParent" (dict "page" . "arg" "header") | default "full" -}}
|
||||
{{- $icon := .Get "icon" -}}
|
||||
{{- $align := partial "utilities/GetArgParent" (dict "page" . "arg" "align") | default "start" -}}
|
||||
{{- $style := partial "utilities/GetArgParent" (dict "page" . "arg" "style") | default "" -}}
|
||||
{{- $subtle := partial "utilities/GetArgParent" (dict "page" . "arg" "subtle") | default false -}}
|
||||
{{- $loading := .Get "loading" -}}
|
||||
{{- $orientation := partial "utilities/GetArgParent" (dict "page" . "arg" "orientation") | default "stacked" -}}
|
||||
{{- $padding := partial "utilities/GetArgParent" (dict "page" . "arg" "padding") | default "auto" -}}
|
||||
@@ -29,6 +32,7 @@
|
||||
{{- $path := .Get "path" -}}
|
||||
{{- $thumbnail := .Get "thumbnail" -}}
|
||||
{{- $title := .Get "title" -}}
|
||||
{{- $button := partial "utilities/GetArgParent" (dict "page" . "arg" "button") | default false -}}
|
||||
|
||||
<!-- Override arguments -->
|
||||
{{ if $path }}
|
||||
@@ -59,9 +63,13 @@
|
||||
"description" $description
|
||||
"ratio" $ratio
|
||||
"icon" $icon
|
||||
"align" $align
|
||||
"style" $style
|
||||
"subtle" $subtle
|
||||
"thumbnail" $thumbnail
|
||||
"loading" $loading
|
||||
"alt" $alt
|
||||
"button" $button
|
||||
) -}}
|
||||
|
||||
<!-- Pass output to parent or current stream -->
|
||||
|
@@ -4,8 +4,8 @@
|
||||
command = "npm run build:example"
|
||||
|
||||
[build.environment]
|
||||
DART_SASS_VERSION = "1.69.7"
|
||||
HUGO_VERSION = "0.121.1"
|
||||
DART_SASS_VERSION = "1.70.0"
|
||||
HUGO_VERSION = "0.122.0"
|
||||
HUGO_ENV = "production"
|
||||
HUGO_ENABLEGITINFO = "true"
|
||||
NODE_VERSION = "18.19.0"
|
||||
|
22
package-lock.json
generated
22
package-lock.json
generated
@@ -1,17 +1,17 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.22.5",
|
||||
"version": "0.23.0-beta5",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.22.5",
|
||||
"version": "0.23.0-beta5",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@fullhuman/postcss-purgecss": "^5.0.0",
|
||||
"@gethinode/netlify-plugin-dartsass": "^0.2.0",
|
||||
"@netlify/plugin-lighthouse": "^5.0.0",
|
||||
"@netlify/plugin-lighthouse": "^6.0.0",
|
||||
"autoprefixer": "^10.4.17",
|
||||
"cssnano": "^6.0.3",
|
||||
"cssnano-preset-advanced": "^6.0.3",
|
||||
@@ -20,7 +20,7 @@
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"eslint-plugin-n": "^16.6.2",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"hugo-bin": "^0.118.1",
|
||||
"hugo-bin": "^0.119.0",
|
||||
"markdownlint-cli2": "^0.12.1",
|
||||
"netlify-plugin-hugo-cache-resources": "^0.2.1",
|
||||
"npm-run-all": "^4.1.5",
|
||||
@@ -562,9 +562,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@netlify/plugin-lighthouse": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@netlify/plugin-lighthouse/-/plugin-lighthouse-5.0.0.tgz",
|
||||
"integrity": "sha512-tCaoVYxCU3OB592vChtFkANzUL4kDUNaIk9VCGp3qBecBnH+yFrILUlcqy2d08Is4ecstjTacyHqV+ixKbNYGQ==",
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@netlify/plugin-lighthouse/-/plugin-lighthouse-6.0.0.tgz",
|
||||
"integrity": "sha512-Uqqy9A7huuDT+1RIBWDoWhp+ntlLE1ibp1jXFpiizWy8QProWkLm8E7PFLu0Bf+aAwgjV2eJPj6ocIbk+jBANQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"chalk": "^4.1.0",
|
||||
@@ -577,7 +577,7 @@
|
||||
"puppeteer": "^18.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.15 <20"
|
||||
"node": ">=18.14.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@nodelib/fs.scandir": {
|
||||
@@ -4365,9 +4365,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/hugo-bin": {
|
||||
"version": "0.118.1",
|
||||
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.118.1.tgz",
|
||||
"integrity": "sha512-WIS4kLNySb5u2+iwk//N7ClLUCksmyjvqdkGQTFc5v7Bqjpn1yLcIIBWwxU3R4SBc2Lr772/auxlzzsRffGbVA==",
|
||||
"version": "0.119.0",
|
||||
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.119.0.tgz",
|
||||
"integrity": "sha512-RnjlxHKdOjo7i7yRX/001t53142tC9NTa5JVrnPCTpX2kNQQCz5XdI/WWX7emf0dNkxipj55Z58EsA2ft9W16g==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.22.5",
|
||||
"version": "0.23.0-beta5",
|
||||
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
|
||||
"keywords": [
|
||||
"hugo",
|
||||
@@ -69,7 +69,7 @@
|
||||
"devDependencies": {
|
||||
"@fullhuman/postcss-purgecss": "^5.0.0",
|
||||
"@gethinode/netlify-plugin-dartsass": "^0.2.0",
|
||||
"@netlify/plugin-lighthouse": "^5.0.0",
|
||||
"@netlify/plugin-lighthouse": "^6.0.0",
|
||||
"autoprefixer": "^10.4.17",
|
||||
"cssnano": "^6.0.3",
|
||||
"cssnano-preset-advanced": "^6.0.3",
|
||||
@@ -78,7 +78,7 @@
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"eslint-plugin-n": "^16.6.2",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"hugo-bin": "^0.118.1",
|
||||
"hugo-bin": "^0.119.0",
|
||||
"markdownlint-cli2": "^0.12.1",
|
||||
"netlify-plugin-hugo-cache-resources": "^0.2.1",
|
||||
"npm-run-all": "^4.1.5",
|
||||
|
Reference in New Issue
Block a user