Compare commits

...

40 Commits

Author SHA1 Message Date
Mark Dumay
37c4fbdec0 Merge pull request #549 from gethinode/refactor
Refactor base layout
2023-10-10 10:10:10 +02:00
Mark Dumay
9af109d23d Merge branch 'main' into refactor 2023-10-10 08:43:58 +02:00
Mark Dumay
3322e3337a Merge pull request #548 from gethinode/taxonomy
Consolidate list page and home page
2023-10-10 08:43:07 +02:00
mark
6ede71d164 Fix linting issue 2023-10-10 08:42:12 +02:00
Mark Dumay
da2e41d59d Merge branch 'main' into taxonomy 2023-10-10 07:48:02 +02:00
mark
c08af69752 Add feature configuration 2023-10-10 07:46:41 +02:00
mark
1a3b438bfb Update build stats 2023-10-10 07:46:04 +02:00
mark
f15ee8cc5b Adapt refined featured format 2023-10-10 07:45:47 +02:00
mark
d65897ad09 Support taxonomies as list input 2023-10-10 07:45:07 +02:00
mark
607f9690cc Support custom card ratio 2023-10-10 07:44:30 +02:00
mark
3cbdc511c8 Support article downloads 2023-10-10 07:42:31 +02:00
mark
e21ab89f89 Fix navbar offset 2023-10-10 07:31:36 +02:00
mark
c50e0153f6 Adapt refined featured format 2023-10-10 07:30:33 +02:00
mark
bd3c2f9d78 Refactor base layout 2023-10-10 07:29:59 +02:00
mark
57bcc6d1ac Refactor featured section 2023-10-10 07:28:20 +02:00
mark
8331cb9f38 Add support for page menu 2023-10-10 07:25:36 +02:00
mark
1ef0f32ad9 Add support for section menu 2023-10-10 07:25:14 +02:00
mark
c9cab7f43d Refactor featured section 2023-10-10 07:24:15 +02:00
mark
73d8efcea7 Update build stats 2023-10-10 07:23:41 +02:00
mark
e9c45a45d7 Add support for downloads 2023-10-10 07:13:39 +02:00
mark
5b94307559 Consolidate list page and home page 2023-10-10 06:43:54 +02:00
Mark Dumay
ee03b65f2d Merge pull request #547 from gethinode/taxonomy
Support custom card ratio
2023-10-10 06:37:31 +02:00
Mark Dumay
7920512f2b Merge branch 'main' into taxonomy 2023-10-10 06:29:01 +02:00
mark
928e355618 Support configurable thumbnail ratio 2023-10-10 06:24:32 +02:00
mark
efac0a7026 Move color of card icon to stylesheet 2023-10-10 06:19:52 +02:00
github-actions[bot]
42d10ed012 Merge pull request #546 from gethinode/dependabot/npm_and_yarn/eslint-8.51.0
Bump eslint from 8.50.0 to 8.51.0
2023-10-09 14:00:56 +00:00
dependabot[bot]
b0655adff4 Bump eslint from 8.50.0 to 8.51.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.50.0 to 8.51.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.50.0...v8.51.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 13:53:44 +00:00
Mark Dumay
c1b025d04b Merge pull request #545 from gethinode/develop
Fix spacing of inline elements
2023-10-09 08:20:58 +02:00
Mark Dumay
3cf5884e10 Merge branch 'main' into develop 2023-10-09 07:47:22 +02:00
mark
ce0acb9547 Fix #501 2023-10-09 07:46:34 +02:00
Mark Dumay
777c54f6a1 Merge pull request #544 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2023-10-09 07:46:01 +02:00
markdumay
8e17d093c7 fix: update Hugo module dependencies 2023-10-09 03:16:22 +00:00
mark
33ba9d6e59 Fix typo 2023-10-08 14:43:03 +02:00
mark
f6a1751efe Bump package version 2023-10-08 06:29:08 +02:00
mark
00372947fa Remove redundant semicolon 2023-10-08 05:38:10 +02:00
mark
c86167851f Bump Dart Sass dependency 2023-10-08 05:37:32 +02:00
github-actions[bot]
6a90952319 Merge pull request #543 from gethinode/dependabot/npm_and_yarn/postcss-8.4.31
Bump postcss from 8.4.28 to 8.4.31
2023-10-08 01:54:53 +00:00
dependabot[bot]
02f135eec3 Bump postcss from 8.4.28 to 8.4.31
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.28 to 8.4.31.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.28...8.4.31)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-08 01:46:51 +00:00
Mark Dumay
daa9bcc471 Merge pull request #542 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2023-09-30 07:09:48 +02:00
markdumay
5072fd6a07 fix: update Hugo module dependencies 2023-09-30 03:15:07 +00:00
38 changed files with 546 additions and 269 deletions

View File

@@ -15,6 +15,28 @@ a:active {
min-height: 100vh;
}
.fullscreen {
--navbar-offset: #{$navbar-offset};
min-height: calc(100vh - var(--navbar-offset));
}
.main-content {
margin-top: $navbar-offset;
}
$utilities: map-merge(
$utilities,
(
"cursor": (
property: margin-left margin-right,
class: mx,
responsive: true,
values: auto 0,
)
)
);
.tickmark li::marker {
content: "";
}

View File

@@ -6,7 +6,7 @@ $enable-important-utilities: true !default;
$navbar-toggler-focus-width: 0 !default;
$font-family-sans-serif: h.$theme-font, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
$font-size-base: h.$font-size-base !default;;
$font-size-base: h.$font-size-base !default;
$headings-font-weight: 600 !default;
$font-weight-lighter: lighter !default;
$font-weight-light: 200 !default;

View File

@@ -15,6 +15,10 @@
width: 100%;
}
.card-icon {
color: $secondary;
}
.card-zoom::after .card-img-wrap img {
content: "";
position: absolute;

View File

@@ -45,6 +45,10 @@
fullCover = false
centerHeadline = false
style = ""
[home.feature]
orientation = "horizontal"
color = "primary"
colWidth = 6
# toml-docs-end home
# toml-docs-start navigation
@@ -52,8 +56,7 @@
anchor = true
logo = "/img/logo_icon.svg"
color = "body"
fixed = true
offset = "3.8em"
offset = "5.5rem"
search = true
breadcrumb = true
toc = true

View File

@@ -1,13 +1,15 @@
---
title: Welcome to Hinode!
description: A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
thumbnail:
url: /img/sunrise.jpg
author: Harris Vo
authorURL: https://unsplash.com/@hoanvokim
origin: https://unsplash.com/photos/ZX6BPboJrYk
originName: Unsplash
actions:
get-started:
url: "https://gethinode.com/docs"
title: "Get started"
icon: "fas book-open"
---
A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
{{< button href="https://gethinode.com/docs" icon="fas book-open" order="first" >}}Get Started{{< /button>}}

View File

@@ -42,7 +42,7 @@
logo = "/img/logo_icon.svg"
color = "body"
fixed = true
offset = "3.8em"
offset = "5.5rem"
search = true
breadcrumb = true
toc = true

View File

@@ -1,14 +1,15 @@
---
author: Mark Dumay
title: Welcome to Hinode!
description: A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
thumbnail:
url: /img/sunrise.jpg
author: Harris Vo
authorURL: https://unsplash.com/@hoanvokim
origin: https://unsplash.com/photos/ZX6BPboJrYk
originName: Unsplash
actions:
about:
url: "about"
title: "About"
---
A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
{{< button href="about" >}}About{{< /button>}}

View File

@@ -1,14 +1,15 @@
---
author: Mark Dumay
title: Bienvenue sur Hinode!
description: Un thème de blog et de documentation pour Hugo basé sur Bootstrap 5.
thumbnail:
url: /img/sunrise.jpg
author: Harris Vo
authorURL: https://unsplash.com/@hoanvokim
origin: https://unsplash.com/photos/ZX6BPboJrYk
originName: Unsplash
actions:
about:
url: "a-propos"
title: "À propos"
---
Un thème de blog et de documentation pour Hugo basé sur Bootstrap 5.
{{< button href="a-propos" >}}À propos{{< /button>}}

View File

@@ -1,14 +1,15 @@
---
author: Mark Dumay
title: Welkom bij Hinode!
description: Een documentatie en blog thema voor Hugo gebaseerd op Bootstrap 5.
thumbnail:
url: /img/sunrise.jpg
author: Harris Vo
authorURL: https://unsplash.com/@hoanvokim
origin: https://unsplash.com/photos/ZX6BPboJrYk
originName: Unsplash
actions:
about:
url: "over-mij"
title: "Over mij"
---
Een documentatie en blog thema voor Hugo gebaseerd op Bootstrap 5.
{{< button href="over-mij" >}}Over mij{{< /button>}}

View File

@@ -8,4 +8,4 @@
long: "Scalable Vector Graphics"
- id: ci/cd
long: "Continous Integration/Continuous Deployment"
long: "Continuous Integration/Continuous Deployment"

View File

@@ -24,9 +24,13 @@ github.com/gethinode/mod-fontawesome v1.3.2 h1:qLJSbAFR2T33BuBtC2Iulm9wZql3cy7Ah
github.com/gethinode/mod-fontawesome v1.3.2/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.4.0 h1:JfmVYwQl19jmZxgxY64yvGqJAAEiFkKf2dbZ5Iv08Qw=
github.com/gethinode/mod-fontawesome v1.4.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.5.0 h1:3mW5dnWauuF9wSWXNIY+PPgTNPlc/xQOQoG7XGic1Yk=
github.com/gethinode/mod-fontawesome v1.5.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-katex v1.0.1/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.2 h1:pIG4n3qLl/IVe7BEiwn+GL8r5lOCtF6FDxlcrPKdAXk=
github.com/gethinode/mod-katex v1.0.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.3 h1:fvlUWqcUQqv2zRNM2kfmJ6GhXA816Tl1nfVrUkmBStI=
github.com/gethinode/mod-katex v1.0.3/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-leaflet v0.3.4 h1:oY+YQ0JiJuhFQNrk9XgFdg0NMsTUQPXNfnILp4ia4r4=
github.com/gethinode/mod-leaflet v0.3.4/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
github.com/gethinode/mod-leaflet v0.3.5 h1:69Bv/6zRXhbcTzo7TMr58h3ry47srHRpM1k81LrLbYU=
@@ -39,3 +43,5 @@ github.com/gethinode/mod-lottie v1.0.2 h1:QM/PJqEl1UhNNoPx6y7pVtwev/mDxUyWNHLqDB
github.com/gethinode/mod-lottie v1.0.2/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
github.com/gethinode/mod-lottie v1.1.0 h1:KnfOQ45xdv1tpsKCkF5OiE3QuT29ycppBfY6o+rWl/4=
github.com/gethinode/mod-lottie v1.1.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
github.com/gethinode/mod-lottie v1.2.0 h1:9S0Y4PlEO66dIvFxayatmDEf8WWxqbLNLi4z563i2gM=
github.com/gethinode/mod-lottie v1.2.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=

View File

@@ -65,7 +65,6 @@
"bg-body",
"bg-body-tertiary",
"bg-danger",
"bg-info",
"bg-opacity-10",
"bg-primary",
"bg-primary-subtle",
@@ -98,6 +97,7 @@
"card-body-link",
"card-body-margin",
"card-emphasize",
"card-icon",
"card-img-top",
"card-img-wrap",
"card-text",
@@ -120,12 +120,11 @@
"col-6",
"col-8",
"col-9",
"col-lg-2",
"col-lg-4",
"col-lg-8",
"col-md-10",
"col-md-2",
"col-md-4",
"col-md-6",
"col-md-8",
"col-md-auto",
"col-sm-12",
@@ -142,7 +141,6 @@
"d-grid",
"d-inline",
"d-inline-flex",
"d-lg-block",
"d-md-block",
"d-md-flex",
"d-md-none",
@@ -219,6 +217,7 @@
"g-0",
"g-3",
"g-4",
"gap-1",
"gap-2",
"gap-3",
"gradient",
@@ -239,6 +238,7 @@
"justify-content-between",
"justify-content-center",
"justify-content-end",
"justify-content-md-start",
"justify-content-start",
"lead",
"leaflet-map",
@@ -251,10 +251,10 @@
"link-warning",
"lottie-animation",
"m-0",
"main-content",
"main-nav-toggler",
"mb-0",
"mb-3",
"mb-4",
"mb-5",
"mb-lg-5",
"me-3",
@@ -272,10 +272,12 @@
"multi-docs-collapse-15",
"multi-file-collapse-1",
"mx-auto",
"mx-md-0",
"mx-md-2",
"my-2",
"my-auto",
"my-md-0",
"my-md-auto",
"nav",
"nav-item",
"nav-link",
@@ -291,13 +293,11 @@
"navbar-toggler",
"next",
"no-js",
"order-0",
"order-1",
"order-2",
"order-3",
"order-4",
"order-first",
"order-sm-2",
"order-sm-3",
"order-md-0",
"order-md-1",
"p-0",
"p-1",
"p-2",
@@ -305,7 +305,9 @@
"p-4",
"pb-2",
"pb-3",
"pb-4",
"pb-5",
"pb-md-0",
"pe-3",
"position-absolute",
"position-fixed",
@@ -315,13 +317,14 @@
"ps-1",
"ps-3",
"ps-xl-3",
"pt-5",
"pt-md-3",
"px-3",
"px-4",
"px-xxl-0",
"py-1",
"py-2",
"py-3",
"py-5",
"py-md-1",
"ratio",
"ratio-16x9",
@@ -333,10 +336,10 @@
"row",
"row-cols-1",
"row-cols-2",
"row-cols-md-2",
"row-cols-md-3",
"row-cols-sm-2",
"row-cols-sm-3",
"row-cols-sm-4",
"search",
"search-input",
"search-suggestions",
@@ -368,6 +371,8 @@
"text-decoration-none",
"text-end",
"text-info",
"text-md-start",
"text-muted",
"text-nowrap",
"text-right",
"text-secondary",
@@ -428,6 +433,7 @@
"animation",
"badge",
"barre-de-navigation",
"blog",
"body-docs-collapse-15",
"body-file-collapse-1",
"bouton",
@@ -482,6 +488,9 @@
"navbar-sample-collapse",
"navigation",
"notification",
"projecten",
"projects",
"projets",
"publication",
"release",
"réduire",

6
go.mod
View File

@@ -5,8 +5,8 @@ go 1.19
require (
github.com/gethinode/mod-bootstrap v1.2.1 // indirect
github.com/gethinode/mod-flexsearch v1.4.1 // indirect
github.com/gethinode/mod-fontawesome v1.4.0 // indirect
github.com/gethinode/mod-katex v1.0.2 // indirect
github.com/gethinode/mod-fontawesome v1.5.0 // indirect
github.com/gethinode/mod-katex v1.0.3 // indirect
github.com/gethinode/mod-leaflet v0.3.5 // indirect
github.com/gethinode/mod-lottie v1.1.0 // indirect
github.com/gethinode/mod-lottie v1.2.0 // indirect
)

6
go.sum
View File

@@ -52,12 +52,16 @@ github.com/gethinode/mod-fontawesome v1.3.2 h1:qLJSbAFR2T33BuBtC2Iulm9wZql3cy7Ah
github.com/gethinode/mod-fontawesome v1.3.2/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.4.0 h1:JfmVYwQl19jmZxgxY64yvGqJAAEiFkKf2dbZ5Iv08Qw=
github.com/gethinode/mod-fontawesome v1.4.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.5.0 h1:3mW5dnWauuF9wSWXNIY+PPgTNPlc/xQOQoG7XGic1Yk=
github.com/gethinode/mod-fontawesome v1.5.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
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=
github.com/gethinode/mod-katex v1.0.1/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.2 h1:pIG4n3qLl/IVe7BEiwn+GL8r5lOCtF6FDxlcrPKdAXk=
github.com/gethinode/mod-katex v1.0.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.3 h1:fvlUWqcUQqv2zRNM2kfmJ6GhXA816Tl1nfVrUkmBStI=
github.com/gethinode/mod-katex v1.0.3/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-leaflet v0.2.3 h1:QQI4h+IH0jZ7fx4q0um2YIEiYBoW3OAfW8qHzbRCDPk=
github.com/gethinode/mod-leaflet v0.2.3/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
github.com/gethinode/mod-leaflet v0.3.1 h1:H5MaOa+BB1KuVw7abTqfIn/SNzzRsAyx/WQoSe+2Ykc=
@@ -76,3 +80,5 @@ github.com/gethinode/mod-lottie v1.0.2 h1:QM/PJqEl1UhNNoPx6y7pVtwev/mDxUyWNHLqDB
github.com/gethinode/mod-lottie v1.0.2/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
github.com/gethinode/mod-lottie v1.1.0 h1:KnfOQ45xdv1tpsKCkF5OiE3QuT29ycppBfY6o+rWl/4=
github.com/gethinode/mod-lottie v1.1.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
github.com/gethinode/mod-lottie v1.2.0 h1:9S0Y4PlEO66dIvFxayatmDEf8WWxqbLNLi4z563i2gM=
github.com/gethinode/mod-lottie v1.2.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=

View File

@@ -30,9 +30,9 @@
"active",
"align-content-center",
"align-items-center",
"align-items-end",
"align-self-center",
"bg-body",
"bg-info",
"bg-opacity-10",
"bg-primary",
"bottom-0",
@@ -42,27 +42,23 @@
"btn-primary",
"col",
"col-12",
"col-lg-2",
"col-lg-4",
"col-6",
"col-8",
"col-md-2",
"col-md-4",
"col-md-6",
"col-md-8",
"col-md-auto",
"col-sm-12",
"col-sm-6",
"collapse",
"collapsed",
"container-fluid",
"container-xxl",
"d-block",
"d-flex",
"d-inline",
"d-lg-block",
"d-md-block",
"d-md-flex",
"d-md-none",
"d-none",
"d-sm-none",
"display-1",
"display-4",
"dropdown",
@@ -89,7 +85,6 @@
"fab",
"fas",
"feature",
"fixed-top",
"flex-column",
"flex-fill",
"flex-grow-1",
@@ -97,18 +92,24 @@
"footer",
"form-control",
"fs-3",
"fs-5",
"fw-30",
"fw-bold",
"gap-3",
"h-100",
"hstack",
"img-fluid",
"img-wrap",
"invisible",
"is-search",
"justify-content-center",
"justify-content-end",
"justify-content-md-start",
"justify-content-start",
"link-bg-footer",
"link-secondary",
"main-content",
"main-nav-toggler",
"mb-4",
"me-auto",
"middle-bar",
"min-vh-100",
@@ -117,8 +118,10 @@
"mt-3",
"mt-5",
"mx-auto",
"mx-md-0",
"mx-md-2",
"my-auto",
"my-md-auto",
"nav-item",
"nav-link",
"navbar",
@@ -128,32 +131,35 @@
"navbar-nav",
"navbar-toggler",
"no-js",
"order-0",
"order-1",
"order-2",
"order-3",
"order-4",
"order-first",
"order-sm-2",
"order-sm-3",
"order-md-0",
"order-md-1",
"p-0",
"p-2",
"p-3",
"p-4",
"pb-4",
"pb-5",
"pe-1",
"pb-md-0",
"position-fixed",
"position-relative",
"ps-1",
"pt-5",
"pt-md-3",
"px-3",
"px-4",
"px-xxl-0",
"py-2",
"py-5",
"py-3",
"py-md-1",
"rounded",
"row",
"row-cols-1",
"row-cols-2",
"row-cols-md-2",
"row-cols-sm-2",
"row-cols-sm-3",
"row-cols-sm-4",
"search",
"search-input",
"search-suggestions",
@@ -162,6 +168,8 @@
"switch-mode-collapsed",
"text-center",
"text-decoration-none",
"text-md-start",
"text-muted",
"text-secondary",
"text-sm-start",
"theme-icon",

View File

@@ -25,6 +25,8 @@
translation: "Articles"
- id: more
translation: "More {{ . }}"
- id: emptyList
translation: "No articles found"
# Sharing
- id: shareLink
@@ -39,6 +41,8 @@
translation: "Link"
- id: code
translation: "Code"
- id: download
translation: "Download article"
# Pagination
- id: paginationNav

View File

@@ -23,6 +23,8 @@
translation: "Artikelen"
- id: more
translation: "Meer {{ . }}"
- id: emptyList
translation: "Geen artikelen gevonden"
# Sharing
- id: shareLink
@@ -37,6 +39,8 @@
translation: "Link"
- id: code
translation: "Code"
- id: download
translation: "Download artikel"
# Pagination
- id: paginationNav

View File

@@ -1,8 +1,25 @@
{{- $section := .Section }}
{{- define "partials/optional-scripts.html" -}}
{{- $modules := site.Params.modules.optional | intersect .Params.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 -}}
{{- partial "footer/scripts.html" (dict "filename" $filename "match" $match "header" false "skipTemplate" $skipTemplate "page" .) }}
{{- end -}}
{{- end -}}
{{- /* Set version-aware sidebar menu */ -}}
{{- $version := partial "utilities/GetVersion.html" (dict "page" . "base" true) -}}
{{- $.Scratch.Set "version" $version -}}
{{ with partial "utilities/GetMenu" (dict "page" . "version" $version) }}{{ $.Scratch.Set "sidebar" . }}{{ end }}
{{- /* Validate if current version is latest */ -}}
{{- if and site.Params.docs.checkVersion $version -}}
{{- if ne $version "latest" -}}
{{- if partial "utilities/IsOlder" (dict "current" $version) -}}
@@ -12,10 +29,13 @@
{{- end -}}
{{- end -}}
{{- /* Validate module configuration */ -}}
{{- if and .IsPage (not (in .Site.Params.modules.core "bootstrap")) -}}
{{- errorf "Bootstrap is a required module, please add it to 'modules.core' in your site parameters" -}}
{{- end -}}
{{- $section := .Section }}
<!doctype html>
<html lang="{{ .Site.Language.Lang }}" class="no-js">
<head>
@@ -24,77 +44,25 @@
<body>
{{- partial "footer/scripts.html" (dict "filename" "js/critical.bundle.js" "match" "js/critical/**.js" "header" true "page" .) -}}
<div class="d-flex flex-column min-vh-100{{ if and .IsHome .Site.Params.home.style }} {{ .Site.Params.home.style }}{{ end }}">
<div class="{{ if .Site.Params.navigation.fixed }}mb-4{{ end }}">
{{- partial "assets/navbar.html" (dict
"page" .
"fixed" (string .Site.Params.navigation.fixed)
"color" (.Site.Params.navigation.color)
"style" (default "light" .Site.Params.navigation.style)
"size" (default "md" .Site.Params.navigation.size))
-}}
</div>
{{ if .IsHome -}}
{{ if .Site.Params.home.fullCover -}}
<div class="d-flex flex-fill {{ if .Site.Params.navigation.fixed }}mt-5{{ end }}">
{{ block "featured" . }}{{ end -}}
</div>
{{ else -}}
<div class="{{ if .Site.Params.navigation.fixed }}mt-5{{ end }}">
{{ block "featured" . }}{{ end -}}
</div>
<div class="d-flex flex-column flex-fill">
{{ block "main" . }}{{ end -}}
</div>
{{ if not .Site.Params.main.footerBelowFold }}
<div class="">
{{- partial "footer/social.html" . -}}
{{- partial "footer/footer.html" . -}}
</div>
{{ end }}
{{ end -}}
{{ else -}}
<div class="d-flex flex-column flex-fill {{ if .Site.Params.navigation.fixed }}mt-5{{ end }}">
{{ block "main" . }}{{ end -}}
</div>
{{ if not .Site.Params.main.footerBelowFold }}
<div class="">
{{- partial "footer/social.html" . -}}
{{- partial "footer/footer.html" . -}}
</div>
{{ end }}
{{ end -}}
</div>
<div class="d-flex flex-column min-vh-100{{ if .IsHome }}{{ with .Site.Params.home.style }} {{ . }}{{ end }}{{ end }}">
{{- partial "assets/navbar.html" (dict
"page" .
"fixed" (string site.Params.navigation.fixed)
"color" site.Params.navigation.color
"style" (default "light" site.Params.navigation.style)
"size" (default "md" site.Params.navigation.size))
-}}
{{ if and .IsHome .Site.Params.home.fullCover -}}
<div class="">
<div class="flex-fill main-content{{ if .Site.Params.main.footerBelowFold }} fullscreen{{ end }} pb-4">
{{ block "main" . }}{{ end -}}
</div>
<div class="">
{{- partial "footer/social.html" . -}}
{{- partial "footer/footer.html" . -}}
</div>
{{ else if .Site.Params.main.footerBelowFold }}
<div class="">
{{- partial "footer/social.html" . -}}
{{- partial "footer/footer.html" . -}}
</div>
{{ end }}
{{- partial "footer/social.html" . -}}
{{- partial "footer/footer.html" . -}}
</div>
{{- partial "footer/toast-container.html" . -}}
{{- partialCached "footer/scripts.html" (dict "header" false "page" . "core" true) }}
{{- $modules := site.Params.modules.optional | intersect .Params.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 -}}
{{- partial "footer/scripts.html" (dict "filename" $filename "match" $match "header" false "skipTemplate" $skipTemplate "page" .) }}
{{- end -}}
{{- partial "partials/optional-scripts.html" . -}}
</body>
</html>

View File

@@ -1,13 +1,119 @@
{{- define "main" -}}
{{- $content := partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) -}}
{{- partial "assets/section-list.html" (dict
"page" .
"section" .Type
"home" false
"nested" .Params.Nested
"title" (or .Title .Type)
"description" .Description
"content" $content
"paginate" true)
-}}
{{- end -}}
{{- $page := . -}}
{{- $orientation := "horizontal" -}}
{{- $sections := slice -}}
{{- $actions := $page.Params.actions -}}
{{- $headings := slice -}}
{{- $layout := $page.Params.layout -}}
{{ if $page.IsHome }}
{{- $orientation = site.Params.home.feature.orientation | default "horizontal" -}}
{{- $actions = (or $actions site.Params.featured.actions) -}}
{{- $sections = site.Params.home.sections -}}
{{- if not $sections -}}
{{ range $section := site.Sections }}
{{ $sections = $sections | append $section.Type }}
{{ end }}
{{- end -}}
{{ else }}
{{ $headings = $headings | append $page.Title }}
{{- range .Fragments.Headings }}
{{- range .Headings }}
{{- $headings = $headings | append .Title -}}
{{- end -}}
{{- end -}}
{{ $sections = $sections | append $page.Type }}
{{ with $page.Params.sections }}
{{ $sections = $sections | append . }}
{{ end }}
{{ end }}
{{/* Generate section content first to determine headings */}}
{{ $body := "" }}
{{- range $index, $section := $sections -}}
{{- $sectionPage := site.GetPage "section" $section -}}
{{- $sectionURL := $sectionPage.RelPermalink -}}
{{- $title := or $sectionPage.Title $sectionPage.Type -}}
{{- with (index site.Params.sections $section) -}}
{{- with index . "title" }}{{ $title = or . $title }}{{ end -}}
{{- end -}}
{{- $thumbnail := (or (and (reflect.IsMap $sectionPage.Params.Thumbnail) $sectionPage.Params.Thumbnail.url) $sectionPage.Params.Thumbnail) -}}
{{- $icon := $sectionPage.Params.Icon -}}
{{- $content := $sectionPage.Content -}}
{{- $sectionTitle := strings.FirstUpper $sectionPage.Type -}}
{{- $moreTitle := "" -}}
{{- with (index site.Params.sections $section) -}}
{{- with index . "reference" }}{{ $moreTitle = . }}{{ end -}}
{{- end -}}
{{- $moreTitle = or $moreTitle (printf (T "more" (pluralize $sectionTitle))) -}}
{{- $sectionContent := trim (partial "assets/section-list.html" (dict
"page" $page
"section" $section
"home" $page.IsHome
"simple" (eq $section $page.Section)
"nested" $page.IsHome
"thumbnail" $thumbnail
"icon" $icon
"content" $content
"moreTitle" $moreTitle
"sectionURL" $sectionURL)) " \r\n"
-}}
{{ if $sectionContent }}
{{- if not $page.IsHome }}{{ $headings = $headings | append $title }}{{ end -}}
{{- $body = printf "%s%s" $body $sectionContent }}
{{ end }}
{{- end -}}
{{/* Display featured section */}}
{{- if or (eq $layout "featured") $page.IsHome -}}
{{- partial "list/featured.html" (dict "page" . "headings" $headings "actions" $actions "orientation" $orientation) -}}
{{- end -}}
{{/* Display main content */}}
<div class="container-xxl px-4 px-xxl-0">
{{- if ne $layout "featured" -}}
{{ if and (not $page.IsHome) site.Params.navigation.breadcrumb }}
<div>{{ partial "assets/breadcrumb.html" $page }}</div>
{{ end -}}
{{- end -}}
<div class="row row-cols-1 row-cols-sm-2">
<div class="col col-sm-12 col-md-8">
{{ if and (ne $layout "featured") (not $page.IsHome) }}
{{ with $page.Title }}<p id="{{ anchorize . }}" class="display-4 mt-3{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
{{ end }}
{{ if ($page.Params.menu) }}
{{- partial "assets/section-menu.html" $page -}}
{{- end -}}
{{- $content := partial "utilities/ProcessContent" (dict "page" $page "raw" $page.RawContent) -}}
{{ $content | safeHTML }}
{{ if and (and (and $sections (eq (len $sections) 1)) (not $body)) (not $content) }}
<p class="pt-4">{{- T "emptyList" }}.</p>
{{ end }}
</div>
{{ with $page.Params.contact }}
{{- $contact := site.GetPage . }}
{{- if not $contact }}
{{- errorf "Error processing content file '%s' - Cannot find contact: %s" $page.File . -}}
{{- else -}}
{{ $color := site.Params.contact.color | default "primary" }}
{{ $style := site.Params.contact.style | default "shadow" }}
<div class="col col-md-4 d-none d-md-block pt-5">
{{- partial "assets/card.html" (dict "path" $page.Params.contact "color" $color "header" "none" "footer" "none" "ratio" "1x1" "class" (printf "w-75 mx-auto mt-4 %s" $style)) -}}
</div>
<div class="col col-sm-12 d-md-none pt-5">
{{- partial "assets/card.html" (dict "path" $page.Params.contact "color" $color "header" "none" "footer" "none" "orientation" "horizontal" "class" $style) -}}
</div>
{{- end }}
{{ end }}
</div>
</div>
{{/* Display generated sections */}}
{{ $body | safeHTML }}
{{- end -}}

View File

@@ -18,7 +18,7 @@
{{- if gt (len (.GetTerms "tags")) 0 -}}
<div class="mt-3">
<div class="d-none-dark">
<div class="hstack gap-3">
<div class="hstack gap-1">
{{ range (.GetTerms "tags") -}}
{{- $url := (path.Join .Page.RelPermalink) | relLangURL -}}
{{ partial "assets/button.html" (dict "href" $url "title" .LinkTitle "color" "light" "size" "sm") }}
@@ -120,6 +120,11 @@
{{ end -}}
{{ define "main" -}}
{{- $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 -}}
{{- $menu := .Scratch.Get "sidebar" -}}
{{- $version := .Scratch.Get "version" -}}
{{- $sidebar := .Site.Params.navigation.sidebar | default true -}}
@@ -134,7 +139,7 @@
</div>
</div>
<div class="container-xxl px-3 px-xxl-0">
<div class="container-xxl p-4 px-xxl-0">
<div class="row row-cols-md-2 row-cols-lg-3">
<div class="col col-md-3 col-lg-2 d-none pt-5 d-md-block sidebar-overflow sticky-top">
{{ partial "assets/sidebar" (dict "page" . "menu" $menu "version" $version) }}
@@ -146,12 +151,12 @@
</div>
<div class="col col-lg-2 d-none d-lg-block pt-5">
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}}
{{ partial "assets/toc.html" . -}}
{{ partial "assets/toc.html" (dict "page" . "download" $download) -}}
{{ end -}}
</div>
</div>
</div>
{{ else }}
{{ else if $sidebar }}
<div class="container-xxl px-3 px-xxl-0">
<div class="row row-cols-1 row-cols-sm-3">
<div class="col col-md-2 d-none d-md-block"></div>
@@ -162,7 +167,22 @@
</div>
<div class="col col-md-2 d-none d-md-block">
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}}
{{ partial "assets/toc.html" . -}}
{{ partial "assets/toc.html" (dict "page" . "download" $download) -}}
{{ end -}}
</div>
</div>
</div>
{{ else }}
<div class="container-xxl px-3 px-xxl-0">
<div class="row row-cols-1 row-cols-sm-2">
<div class="col col-sm-12 col-md-9">
{{ partial "partials/header.html" . }}
{{ partial "partials/body.html" . }}
{{ partial "partials/footer.html" . }}
</div>
<div class="col col-md-3 d-none d-md-block">
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}}
{{ partial "assets/toc.html" (dict "page" . "download" $download) -}}
{{ end -}}
</div>
</div>

View File

@@ -1,40 +0,0 @@
{{- define "featured" -}}
{{- partial "home/featured.html" . -}}
{{- end -}}
{{- define "main" -}}
{{- $page := . -}}
{{- $sections := site.Params.home.sections -}}
{{- if not $sections -}}
{{ range $section := site.Sections }}
{{ $sections = $sections | append $section.Type }}
{{ end }}
{{- end -}}
{{- range $index, $section := $sections -}}
{{- $sectionPage := site.GetPage "section" $section -}}
{{- $sectionURL := $sectionPage.RelPermalink -}}
{{- $title := or $sectionPage.Title $sectionPage.Type -}}
{{- $thumbnail := (or (and (reflect.IsMap $sectionPage.Params.Thumbnail) $sectionPage.Params.Thumbnail.url) $sectionPage.Params.Thumbnail) -}}
{{- $icon := $sectionPage.Params.Icon -}}
{{- $content := $sectionPage.Content -}}
{{- $sectionTitle := strings.FirstUpper $sectionPage.Type -}}
{{- $moreTitle := "" -}}
{{- with (index site.Params.sections $section) -}}
{{- with index . "reference" }}{{ $moreTitle = . }}{{ end -}}
{{- end -}}
{{- $moreTitle = or $moreTitle (printf (T "more" (pluralize $sectionTitle))) -}}
{{- partial "assets/section-list.html" (dict
"page" $page
"section" $section
"home" true
"nested" true
"thumbnail" $thumbnail
"icon" $icon
"content" $content
"moreTitle" $moreTitle
"sectionURL" $sectionURL)
-}}
{{- end -}}
{{- end -}}

View File

@@ -28,6 +28,7 @@
"tab" Optional flag to indicate if an external link should open in a new tab, defaults to setting
"main.externalLinks.tab" in the site's parameters.
"attributes" Optional dictionary of key-value pairs added as custom attributes to the button element ('<a>').
"spacing" Optional flag to add spacing to the inline button, defaults to "true".
-->
{{- $title := trim .title " \r\n" -}}
@@ -126,6 +127,8 @@
{{- $target := "" -}}
{{- $rel := "" -}}
{{- $spacing := .spacing | default true -}}
{{- if $isExternal -}}
{{- if $tab -}}
{{- $target = "_blank" -}}
@@ -167,4 +170,4 @@
{{ with $label }}<span class="visually-hidden">{{ . }}</span>{{ end }}
</span>
{{- end -}}
</a>
</a>{{ if $spacing }}&nbsp;{{- end }}

View File

@@ -31,6 +31,8 @@
"footer" Optional footer components of the card, displayed in small caps. Supported values are "full",
"publication", "tags", and "none" (default).
"orientation" Optional placecement of the thumbnail, either "stacked" (default), "horizontal", or "none".
"ratio" Optional ratio of the thumbnail image, defaults to "16x9" (stacked orientation) or "1x1" (horizontal
orientation).
-->
{{- $page := .page -}}
@@ -139,7 +141,8 @@
{{- $header := .header -}}
{{- $footer := .footer -}}
{{- $orientation := .orientation -}}
{{- $wrapper := .wrapper | default "p-4 px-xxl-0" -}}
{{- $ratio := .ratio -}}
{{- $wrapper := .wrapper | default "p-0" -}}
{{- if and (eq $cols 1) (eq $orientation "horizontal") }}{{ $orientation = "horizontal-sm" }}{{ end -}}
@@ -153,6 +156,7 @@
"header" $header
"footer" $footer
"orientation" $orientation
"ratio" $ratio
) -}}
{{- $params = merge $params $element }}

View File

@@ -18,6 +18,8 @@
"publication", "tags", and "none" (default).
"description" Optional description of the card.
"thumbnail" Optional thumbnail image url, displayed on top or the left of the card.
"ratio" Optional ratio of the thumbnail image, defaults to "16x9" (stacked orientation) or "1x1" (horizontal
orientation).
"alt" Optional alternate text for the thumbnail, uses "title" by default.
"icon" Optional Font Awesome icon, displayed on top or the left of the card.
"orientation" Optional placecement of the thumbnail or icon, either "stacked" (default), "horizontal",
@@ -88,6 +90,7 @@
{{- $href := .href -}}
{{- $description := .description -}}
{{- $thumbnail := .thumbnail -}}
{{- $ratio := .ratio -}}
{{- $icon := .icon -}}
{{- $color := "" -}}
@@ -149,10 +152,10 @@
<div class="row g-0 row-cols-1 h-100">
<div class="col-4{{ if eq $orientation "horizontal-sm" }} col-md-2{{ end }}">
{{- if $thumbnail -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "1x1" "outerClass" "h-100 card-img-wrap" "innerClass" "rounded-start card-img-h100" "title" $title) -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" (or $ratio "1x1") "outerClass" "h-100 card-img-wrap" "innerClass" "rounded-start card-img-h100" "title" $title) -}}
{{- else if $icon -}}
<div class="p-{{ $padding }} h-100 fa-wrapper d-flex align-items-center justify-content-center">
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-fluid text-secondary fa-fw" $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>
{{- end -}}
</div>
@@ -170,10 +173,10 @@
{{- else -}}
<div class="card {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}">
{{- if $thumbnail -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "16x9" "outerClass" "card-img-wrap" "innerClass" "card-img-top" "title" (or $alt $title)) -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" (or $ratio "16x9") "outerClass" "card-img-wrap" "innerClass" "card-img-top" "title" (or $alt $title)) -}}
{{- else if $icon -}}
<div class="p-{{ $padding }}">
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-4x text-secondary" $icon)) -}}
<div class="card-icon p-{{ $padding }}">
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-4x" $icon)) -}}
</div>
{{- end -}}
<div class="card-body d-flex flex-column p-{{ $padding }}">

View File

@@ -14,7 +14,9 @@
{{- $moreTitle := .moreTitle -}}
{{- $sectionURL := .sectionURL -}}
{{- $nested := .nested | default true -}}
{{- $simple := .simple | default false -}}
{{- $paginate := true -}}
{{- $kind := .kind | default "regular" -}}
{{- $sort := "date" -}}
{{- $order := "desc" -}}
{{- $separator := false -}}
@@ -32,6 +34,7 @@
{{- $type := "pills" -}}
{{- $vertical := "false" -}}
{{- $width := 100 -}}
{{- $ratio := "" -}}
{{- with (index site.Params.sections $section) -}}
{{- with index . "title" }}{{ $title = or $.title . }}{{ end -}}
@@ -54,13 +57,24 @@
{{- with index . "type" }}{{ $type = . }}{{ end -}}
{{- with index . "vertical" }}{{ $vertical = . }}{{ end -}}
{{- with index . "width" }}{{ $width = . }}{{ end -}}
{{- with index . "kind" }}{{ $kind = . }}{{ end -}}
{{- with index . "ratio" }}{{ $ratio = . }}{{ end -}}
{{- end -}}
{{ if ne (printf "%T" $nested) "bool" }}
{{ errorf "partial [assets/section-list.html] - Invalid value for param 'nested'"}}
{{ end }}
{{ $list := "" }}
{{ if $nested }}
{{ $list := slice }}
{{ if eq $kind "taxonomy" }}
{{ $filter := page.Params.filter }}
{{ with $filter }}
{{ with index site.Taxonomies $section $filter }}
{{ $list = .Pages }}
{{ end }}
{{ else }}
{{ $list = where site.Pages (printf ".Params.%s" $section) "!=" nil }}
{{ end }}
{{ else if $nested }}
{{ $list = where site.RegularPages "Type" "in" $section }}
{{ else if $home }}
{{ $sectionPage := site.GetPage "section" $section }}
@@ -88,12 +102,18 @@
{{- $max = int (math.Min $homepage $max) -}}
{{ end -}}
{{ if $simple }}
{{ $title = "" }}
{{ $background = "" }}
{{ end }}
{{- $params := (dict
"page" $page
"list" $list
"title" $title
"icon" $icon
"thumbnail" $thumbnail
"ratio" $ratio
"sectionHeader" $sectionHeader
"description" $description
"content" $content
@@ -103,8 +123,8 @@
-}}
{{- $partial := "" -}}
<div class="container-fluid {{ with $background }} bg-{{ . }}{{ end }}">
<div class="container-xxl flex-fill p-0">
<div class="container-fluid {{ with $background }} bg-{{ . }}{{ end }} p-0">
<div class="container-xxl flex-fill p-4 px-xxl-0 pb-5">
{{- partial "assets/section-header.html" $params -}}
{{ if eq $layout "card" }}

View File

@@ -0,0 +1,20 @@
{{- $page := . -}}
{{ $items := $page.Parent.Sections }}
{{ if not $page.Parent.Section }}
{{ $items = $page.Sections }}
{{ end }}
{{- if gt (len $items) 0 }}
<nav class="navbar navbar-expand navbar-services p-0 fs-5">
<div class="container-fluid p-0 pb-3">
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
{{- range $items }}
{{ $active := eq $page.RelPermalink .RelPermalink }}
<li class="nav-item"><a class="nav-link{{ if $active }} active{{ end }}" href="{{ .RelPermalink }}">{{ .Title }}</a></li>
{{- end }}
</ul>
</div>
</div>
</nav>
{{- end }}

View File

@@ -6,7 +6,7 @@
{{- if .Site.Params.sharing.reverse }}{{ $order = "desc" }}{{ else }}{{ $order = "asc" }}{{ end -}}
{{- $sort := .Site.Params.sharing.sort | default "weight" -}}
{{- $list = sort $list $sort $order -}}
<div class="py-3 text-body-secondary hstack gap-2">
<div class="py-3 text-body-secondary hstack gap-1">
{{ T "shareLink" "" }}
{{- range $index, $item := $list -}}
{{- $url := $item.url -}}
@@ -21,11 +21,11 @@
{{- $url = "#!" -}}
{{- partial "assets/toast.html" (dict "id" $target "message" (printf "%s %s" (T "link") (T "copiedToClipboard"))) -}}
{{- end -}}
{{ partial "assets/button.html" (dict "toast" $target "clipboard" $clipboard "href" $url "icon" (printf "%s fa-fw" $item.icon) "class" "btn-social p-0" "label" (T "shareLink" $item.name)) }}
{{ partial "assets/button.html" (dict "toast" $target "clipboard" $clipboard "href" $url "icon" (printf "%s fa-fw" $item.icon) "class" "btn-social p-0" "label" (T "shareLink" $item.name) "spacing" false) }}
{{- end -}}
{{ if .Site.Params.sharing.webshare }}
{{ $attr := dict "data-sharing-title" .Title "data-sharing-description" .Description "data-sharing-url" .Permalink }}
{{ partial "assets/button.html" (dict "href" "#!" "icon" "fas share-nodes fa-fw" "id" "btn-webshare" "class" "btn-social p-0" "attributes" $attr "label" (T "shareLink" (T "shareSystem"))) }}
{{ partial "assets/button.html" (dict "href" "#!" "icon" "fas share-nodes fa-fw" "id" "btn-webshare" "class" "btn-social p-0" "attributes" $attr "label" (T "shareLink" (T "shareSystem")) "spacing" false) }}
{{- end -}}
</div>
{{- end -}}

View File

@@ -0,0 +1,20 @@
{{ $headings := .headings | default slice }}
{{- range .Fragments.Headings }}
{{- range .Headings }}
{{- $headings = $headings | append .Title -}}
{{- end -}}
{{- end -}}
{{- if gt (len $headings) 1 }}
<nav class="navbar navbar-expand navbar-services p-0 fs-5">
<div class="container-fluid p-0 pb-3 border-bottom">
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
{{- range $headings }}
<li class="nav-item"><a class="nav-link" href="#{{ anchorize . }}">{{ . }}</a></li>
{{- end }}
</ul>
</div>
</div>
</nav>
{{- end }}

View File

@@ -1,7 +1,17 @@
{{ $items := len (findRE "<li.*?>(.|\n)*?</li>" .TableOfContents) -}}
{{ if (gt $items 1) -}}
{{- $page := .page -}}
{{- $download := .download -}}
{{ $items := len (findRE "<li.*?>(.|\n)*?</li>" $page.TableOfContents) -}}
{{ if or $download (gt $items 1) -}}
<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 }}
<div class="mb-5">
{{ $attr := dict "download" (path.Base .) }}
{{ partial "assets/button.html" (dict "href" . "title" (T "download" ) "color" "primary" "outline" "true" "icon" "fas download" "attributes" $attr) }}
</div>
{{ end }}
<strong class="d-block h6 my-2 pb-2 border-bottom">{{ T "toc" }}</strong>
{{ .TableOfContents }}
{{ $page.TableOfContents }}
</div>
{{ end -}}

View File

@@ -7,27 +7,29 @@
{{ if gt .Site.Menus.social 0 }}
{{- $tab := site.Params.main.externalLinks.tab -}}
<div class="container-fluid">
<div class="row row-cols-1 row-cols-sm-4 bg-primary p-3 bg-opacity-{{ .Site.Params.style.themeOpacity | default "25" | safeHTML }} align-items-center">
<div class="col col-md-2 d-none d-md-block"></div>
<div class="col col-sm-6 col-md-4">
{{ if gt .Site.Menus.social 0 }}
<div class="fs-3 fw-bold">{{ or .Site.Params.footer.socialTitle .Site.Params.social.title }}</div>
<p>{{ or .Site.Params.footer.socialCaption .Site.Params.social.caption }}</p>
{{ end }}
<div class="container-fluid bg-primary bg-opacity-{{ .Site.Params.style.themeOpacity | default "25" | safeHTML }}">
<div class="container-xxl px-4 px-xxl-0">
<div class="row row-cols-2 py-3 align-items-center">
<div class="col col-6">
<div class="row justify-content-end p-0">
<div class="col-12 col-md-8 p-0">
<div class="fs-3 fw-bold">{{ or .Site.Params.footer.socialTitle .Site.Params.social.title }}</div>
<p>{{ or .Site.Params.footer.socialCaption .Site.Params.social.caption }}</p>
</div>
</div>
</div>
<div class="col col-6 text-sm-start">
{{ range .Site.Menus.social -}}
<a href="{{ .URL }}" {{ if $tab }} target="_blank" rel="noopener noreferrer"{{ end }} aria-label="{{ .Name | safeHTML }}" class="text-decoration-none link-secondary d-inline p-2">
{{ if hasPrefix .Pre "<i" }}
{{ .Pre | safeHTML }}
{{ else }}
{{ partial "assets/icon.html" (dict "icon" (printf "%s fa-2x" .Pre) )}}
{{ end }}
</a>
{{ end -}}
</div>
</div>
<div class="col text-sm-start text-center col-sm-6 col-md-4">
{{ range .Site.Menus.social -}}
<a href="{{ .URL }}" {{ if $tab }} target="_blank" rel="noopener noreferrer"{{ end }} aria-label="{{ .Name | safeHTML }}" class="text-decoration-none link-secondary d-inline p-2">
{{ if hasPrefix .Pre "<i" }}
{{ .Pre | safeHTML }}
{{ else }}
{{ partial "assets/icon.html" (dict "icon" (printf "%s fa-2x" .Pre) )}}
{{ end }}
</a>
{{ end -}}
</div>
<div class="col col-md-2 d-none d-md-block"></div>
</div>
</div>
{{ end }}

View File

@@ -1,21 +0,0 @@
<div class="container-fluid flex-fill feature">
<div class="row row-cols-1 row-cols-sm-4 h-100 bg-primary px-4 py-5 bg-opacity-{{ .Site.Params.style.themeOpacity | default "25" | safeHTML }} align-items-center">
<div class="col col-lg-2 d-none d-lg-block bg-info order-1"></div>
<div class="col col-sm-6 col-lg-4 text-center text-sm-start order-3 order-sm-2">
<p class="display-4">{{ .Title }}</p>
<p>{{ .Content }}<p>
</div>
<div class="col text-sm-start text-center col-sm-6 col-lg-4 order-2 order-sm-3">
{{- $thumbnail := (or (and (reflect.IsMap .Params.Thumbnail) .Params.Thumbnail.url) .Params.Thumbnail) -}}
{{- $thumbnail = or $thumbnail .Site.Params.home.featurePhoto -}}
{{ if .Site.Params.home.featurePhoto }}
{{ warnf "DEPRECATED: parameter `Params.home.featurePhoto` has been deprecated in release v0.18"}}
{{ end }}
{{- if $thumbnail -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "16x9" "outerClass" "img-wrap" "innerClass" "rounded" "title" .Site.Title) -}}
{{ end }}
<div class="pb-5 d-block d-sm-none"></div>
</div>
<div class="col col-lg-2 d-none d-lg-block bg-info order-4"></div>
</div>
</div>

View File

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

View File

@@ -26,6 +26,7 @@
"main.externalLinks.cue" in the site's parameters.
"tab" Optional flag to indicate if an external link should open in a new tab, defaults to setting
"main.externalLinks.tab" in the site's parameters.
"spacing" Optional flag to add spacing to the inline button, defaults to "true".
-->
{{ $error := false }}
@@ -112,6 +113,8 @@
{{- $cue := .Get "cue" | default site.Params.main.externalLinks.cue -}}
{{- $tab := .Get "tab" | default site.Params.main.externalLinks.tab -}}
{{- $spacing := .Get "spacing" | default (not .Parent) -}}
{{ if not $error }}
{{- $output := partial "assets/button.html" (dict
"type" $type
@@ -133,7 +136,8 @@
"justify" $justify
"cue" $cue
"tab" $tab
"toast" $toast)
"toast" $toast
"spacing" $spacing)
-}}
{{- if .Parent -}}

View File

@@ -97,7 +97,8 @@
"icon" $icon
"tooltip" $tooltip
"order" "first"
"class" (trim (printf "rounded-2 fw-semibold %s" $class) " "))
"class" (trim (printf "rounded-2 fw-semibold %s" $class) " ")
"spacing" $inline)
-}}
{{- if not $inline }}</div>{{ end -}}
{{- end -}}

View File

@@ -6,6 +6,7 @@
"href" Required address for the button or hyperlink.
"placement" Optional position of the tooltip: "top" (default), "bottom", "left", or "right".
"class" Optional class attribute of the tooltip's button element.
"spacing" Optional flag to add spacing to the inline tooltip, defaults to "true".
-->
{{ $error := false }}
@@ -43,8 +44,19 @@
{{- $class := .Get "class" | default "" -}}
{{- $spacing := .Get "spacing" | default true -}}
{{ if not $error }}
<div class="d-inline-flex">
{{- partial "assets/button.html" (dict "type" $type "title" $title "color" $color "tooltip" $tooltip "href" $href "placement" $placement "class" $class) -}}
{{- partial "assets/button.html" (dict
"type" $type
"title" $title
"color" $color
"tooltip" $tooltip
"href" $href
"placement" $placement
"class" $class
"spacing" $spacing)
-}}
</div>
{{ end }}

View File

@@ -4,8 +4,8 @@
command = "npm run build:example"
[build.environment]
DART_SASS_VERSION = "1.68.0"
HUGO_VERSION = "0.118.2"
DART_SASS_VERSION = "1.69.0"
HUGO_VERSION = "0.119.0"
HUGO_ENV = "production"
HUGO_ENABLEGITINFO = "true"
NODE_VERSION = "18.18.0"

46
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "@gethinode/hinode",
"version": "0.20.7",
"version": "0.21.0-alpha",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@gethinode/hinode",
"version": "0.20.7",
"version": "0.21.0-alpha",
"license": "MIT",
"devDependencies": {
"@fullhuman/postcss-purgecss": "^5.0.0",
@@ -15,7 +15,7 @@
"autoprefixer": "^10.4.16",
"cssnano": "^6.0.1",
"cssnano-preset-advanced": "^6.0.1",
"eslint": "^8.50.0",
"eslint": "^8.51.0",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.28.1",
"eslint-plugin-n": "^16.1.0",
@@ -285,9 +285,9 @@
}
},
"node_modules/@eslint/js": {
"version": "8.50.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz",
"integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==",
"version": "8.51.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz",
"integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -2550,15 +2550,15 @@
}
},
"node_modules/eslint": {
"version": "8.50.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz",
"integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==",
"version": "8.51.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz",
"integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.2",
"@eslint/js": "8.50.0",
"@eslint/js": "8.51.0",
"@humanwhocodes/config-array": "^0.11.11",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
@@ -6449,9 +6449,9 @@
}
},
"node_modules/postcss": {
"version": "8.4.28",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz",
"integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==",
"version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
"integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
"dev": true,
"funding": [
{
@@ -9697,9 +9697,9 @@
}
},
"@eslint/js": {
"version": "8.50.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz",
"integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==",
"version": "8.51.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz",
"integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==",
"dev": true
},
"@fullhuman/postcss-purgecss": {
@@ -11349,15 +11349,15 @@
"dev": true
},
"eslint": {
"version": "8.50.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz",
"integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==",
"version": "8.51.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz",
"integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==",
"dev": true,
"requires": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.2",
"@eslint/js": "8.50.0",
"@eslint/js": "8.51.0",
"@humanwhocodes/config-array": "^0.11.11",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
@@ -14205,9 +14205,9 @@
}
},
"postcss": {
"version": "8.4.28",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz",
"integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==",
"version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
"integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
"dev": true,
"requires": {
"nanoid": "^3.3.6",

View File

@@ -1,6 +1,6 @@
{
"name": "@gethinode/hinode",
"version": "0.20.7",
"version": "0.21.0-alpha",
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
"keywords": [
"hugo",
@@ -20,7 +20,8 @@
"prestart": "npm run -s mod:vendor",
"start": "hugo server --bind=0.0.0.0 --disableFastRender --printI18nWarnings",
"start:example": "npm run -s prestart && hugo server --bind=0.0.0.0 --disableFastRender --printI18nWarnings -s exampleSite",
"start:prod": "npm run -s prestart && hugo server --bind=0.0.0.0 --disableFastRender --printI18nWarnings -e production",
"start:prod": "npm run -s prestart && hugo server --bind=0.0.0.0 --disableFastRender --printI18nWarnings --minify -e production",
"start:example:prod": "npm run -s prestart && hugo server --bind=0.0.0.0 --disableFastRender --printI18nWarnings --minify -e production -s exampleSite",
"prebuild": "npm run clean:public && npm run -s mod:vendor",
"build": "hugo --gc --minify",
"build:cache": "npm run -s prebuild && hugo config | grep cachedir && hugo --gc --minify -e ci",
@@ -72,7 +73,7 @@
"autoprefixer": "^10.4.16",
"cssnano": "^6.0.1",
"cssnano-preset-advanced": "^6.0.1",
"eslint": "^8.50.0",
"eslint": "^8.51.0",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.28.1",
"eslint-plugin-n": "^16.1.0",