Compare commits

...

106 Commits

Author SHA1 Message Date
Mark Dumay
fb63e36c56 Merge pull request #1484 from gethinode/develop
Fix kbd rendering
2025-07-01 11:42:27 +02:00
Mark Dumay
ae1cda1f5a Merge branch 'main' into develop 2025-07-01 11:36:04 +02:00
Mark Dumay
4846d1b016 Bump package release 2025-07-01 11:35:04 +02:00
Mark Dumay
01522dad71 Update build stats 2025-07-01 11:34:38 +02:00
Mark Dumay
0bbef1dad2 FIx kbd rendering 2025-07-01 11:34:29 +02:00
Mark Dumay
5e048d32df Merge pull request #1482 from gethinode/develop
Fix rendering of nav items
2025-06-30 08:42:44 +02:00
Mark Dumay
d1128fa7c3 Merge branch 'main' into develop 2025-06-30 08:00:43 +02:00
Mark Dumay
cf9a39b51f Fix rendering of nav items 2025-06-30 08:00:04 +02:00
Mark Dumay
ae9ec71966 Update dependencies 2025-06-29 13:35:27 +02:00
Mark Dumay
f6c4bbfffb Merge pull request #1481 from gethinode/develop
Enable explicit auto ratio for images
2025-06-29 13:24:07 +02:00
Mark Dumay
7a655315f1 Merge branch 'main' into develop 2025-06-29 13:19:12 +02:00
Mark Dumay
5c27178881 Enable explicit auto ratio for images 2025-06-29 13:18:43 +02:00
Mark Dumay
c829049842 Merge pull request #1480 from gethinode/develop
Fix starter template
2025-06-29 13:14:02 +02:00
Mark Dumay
613da916aa Merge branch 'main' into develop 2025-06-29 13:07:13 +02:00
Mark Dumay
d3d75c9dc6 Fix starter template 2025-06-29 13:05:52 +02:00
Mark Dumay
2f5b49397e Merge pull request #1479 from gethinode/develop
Fix justification of section title
2025-06-29 13:04:54 +02:00
Mark Dumay
632f3d861b Merge branch 'main' into develop 2025-06-29 12:56:11 +02:00
Mark Dumay
004063f02a Refine content blocks page 2025-06-29 12:34:48 +02:00
Mark Dumay
1bd498f816 Fix justification of section title 2025-06-29 12:34:36 +02:00
github-actions[bot]
291220256a Merge pull request #1476 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.144.9
Bump hugo-bin from 0.144.8 to 0.144.9
2025-06-25 15:13:07 +00:00
Mark Dumay
7bcb87a73e Merge branch 'main' into dependabot/npm_and_yarn/hugo-bin-0.144.9 2025-06-25 17:08:13 +02:00
Mark Dumay
55cebc752e Merge pull request #1478 from gethinode/develop
Fix sharing label
2025-06-25 17:06:43 +02:00
Mark Dumay
14bf59a551 Merge branch 'main' into develop 2025-06-25 17:02:01 +02:00
Mark Dumay
bce0fedd15 Fix sharing label 2025-06-25 17:01:34 +02:00
Mark Dumay
694e7fc7b1 Merge branch 'main' into dependabot/npm_and_yarn/hugo-bin-0.144.9 2025-06-25 16:41:39 +02:00
Mark Dumay
93749cb368 Merge pull request #1477 from gethinode/develop
Fix missing image set widths
2025-06-25 16:41:27 +02:00
Mark Dumay
cf01e22a4d Merge branch 'main' into develop 2025-06-25 16:33:20 +02:00
Mark Dumay
f416f6bb7e Fix missing image set widths 2025-06-25 16:32:55 +02:00
dependabot[bot]
a7b776c0dc Bump hugo-bin from 0.144.8 to 0.144.9
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.144.8 to 0.144.9.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.144.8...v0.144.9)

---
updated-dependencies:
- dependency-name: hugo-bin
  dependency-version: 0.144.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 14:48:51 +00:00
Mark Dumay
e70f3acb57 Merge pull request #1475 from gethinode/develop
Refine arguments
2025-06-23 13:04:14 +02:00
Mark Dumay
6e7b40ad0f Remove redundant file example 2025-06-23 12:57:35 +02:00
Mark Dumay
7446b2958e Merge branch 'main' into develop 2025-06-23 12:49:20 +02:00
Mark Dumay
6c18ada352 Update build stats 2025-06-23 12:48:42 +02:00
Mark Dumay
323b42996b Fix titleCase setting 2025-06-23 12:44:20 +02:00
Mark Dumay
ab8074b293 Update dependencies 2025-06-23 12:42:33 +02:00
Mark Dumay
9419e18ba9 Update file arguments 2025-06-23 12:42:27 +02:00
Mark Dumay
0f007ba5c2 Update articles arguments 2025-06-23 12:42:02 +02:00
Mark Dumay
7d0943fb0c Fix deprecated video arguments 2025-06-23 12:41:36 +02:00
Mark Dumay
3d2cfdaf0a Support title case for structured type headers 2025-06-23 12:41:17 +02:00
Mark Dumay
281c16b561 Refine card group arguments 2025-06-23 12:40:51 +02:00
Mark Dumay
fe68bd6be3 Simplify rendering of page modification date 2025-06-23 12:39:35 +02:00
Mark Dumay
3bf0c241a3 Update dependencies 2025-06-23 11:51:12 +02:00
Mark Dumay
a6a670cd2b Bump package release 2025-06-23 11:51:03 +02:00
Mark Dumay
a44b5449f8 Merge pull request #1472 from gethinode/develop
Fix handling of card parent arguments
2025-06-20 11:58:37 +02:00
Mark Dumay
461f53c67e Merge branch 'main' into develop 2025-06-20 11:52:23 +02:00
Mark Dumay
9a5059d8bd Fix handling of card parent arguments 2025-06-20 11:48:08 +02:00
Mark Dumay
c1586ee00e Bump package release 2025-06-20 11:01:50 +02:00
Mark Dumay
88d2a50954 Simplify page layout structure 2025-06-20 11:01:18 +02:00
Mark Dumay
77aa394c8e Merge pull request #1471 from gethinode/develop
Support xs buttons
2025-06-20 10:28:25 +02:00
Mark Dumay
5d4147fea9 Merge branch 'main' into develop 2025-06-20 10:23:49 +02:00
Mark Dumay
9c1d84487d Clean up button example 2025-06-20 10:21:58 +02:00
Mark Dumay
944a9705d7 Bump package release 2025-06-20 10:18:42 +02:00
Mark Dumay
5e274d952a Add args shortcode to example blog 2025-06-20 10:18:04 +02:00
Mark Dumay
a7f2d6d003 Use GetPadding from mod-utils 2025-06-20 10:17:21 +02:00
Mark Dumay
057ae25f7b Use xs button for inline release links 2025-06-20 10:16:46 +02:00
Mark Dumay
a6454e3b4e Support xs buttons 2025-06-20 10:16:21 +02:00
Mark Dumay
4b8f59782a Improve error handling of getdimension utility function 2025-06-20 10:14:43 +02:00
github-actions[bot]
777c4f671f Merge pull request #1470 from gethinode/dependabot/npm_and_yarn/stylelint-16.21.0
Bump stylelint from 16.20.0 to 16.21.0
2025-06-19 14:09:18 +00:00
dependabot[bot]
990a016434 Bump stylelint from 16.20.0 to 16.21.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.20.0 to 16.21.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/16.20.0...16.21.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-19 13:59:32 +00:00
Mark Dumay
1e64f4f009 Merge pull request #1469 from gethinode/develop
Enable purge settings
2025-06-19 07:42:12 +02:00
Mark Dumay
8bd3f0a254 Fix purge settings of mod-simple-datatables 2025-06-19 07:09:37 +02:00
Mark Dumay
d6b3aaeb99 Merge branch 'main' into develop 2025-06-18 19:35:46 +02:00
Mark Dumay
e2e351f964 Enable purge settings 2025-06-18 19:35:09 +02:00
Mark Dumay
b711d0591d Merge pull request #1468 from gethinode/develop
Clean up core files
2025-06-18 19:32:13 +02:00
Mark Dumay
7a76408876 Merge branch 'main' into develop 2025-06-18 19:21:57 +02:00
Mark Dumay
1a53fdc636 Update build stats 2025-06-18 19:20:12 +02:00
Mark Dumay
81f60a28e1 Use updated animation arguments 2025-06-18 19:20:03 +02:00
Mark Dumay
193edecd03 Clean up obsolete file 2025-06-18 19:19:42 +02:00
Mark Dumay
9ed4d00d19 Use arguments from mod-utils instead 2025-06-18 19:19:32 +02:00
Mark Dumay
e821670be9 Update dependencies 2025-06-18 19:19:08 +02:00
Mark Dumay
7f7c8d12d9 Clean up base style 2025-06-18 19:18:58 +02:00
Mark Dumay
450e065117 Update dependencies 2025-06-18 19:18:05 +02:00
Mark Dumay
1360a750a5 Merge pull request #1466 from gethinode/develop
Fix margins of hero
2025-06-18 07:17:32 +02:00
Mark Dumay
e7bb3ba1ca Merge branch 'main' into develop 2025-06-18 07:07:53 +02:00
Mark Dumay
5121c1cf1c Merge pull request #1464 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2025-06-18 07:07:23 +02:00
Mark Dumay
50bf5fa168 Merge branch 'main' into hugo-mod-dependencies 2025-06-18 06:55:35 +02:00
Mark Dumay
363fcc3788 Fix margins of hero 2025-06-18 06:54:49 +02:00
Mark Dumay
d2e2b424b8 Merge pull request #1465 from gethinode/develop
Refactor navbar logo
2025-06-18 06:25:08 +02:00
Mark Dumay
859140e92f Merge branch 'main' into develop 2025-06-18 06:17:30 +02:00
Mark Dumay
38ef1bbbfe Bump package version 2025-06-18 06:16:35 +02:00
Mark Dumay
508da2ba2b Refactor navbar logo 2025-06-18 06:16:00 +02:00
Mark Dumay
529301ec8b Bump dependencies 2025-06-18 06:14:31 +02:00
markdumay
91acdeca75 fix: update Hugo module dependencies 2025-06-18 03:28:09 +00:00
Mark Dumay
805350c7b7 Merge pull request #1463 from gethinode/develop
Fix highlight of example bookshop input
2025-06-17 19:11:18 +02:00
Mark Dumay
9900dce30d Merge branch 'main' into develop 2025-06-17 19:00:58 +02:00
Mark Dumay
d40927f97a Fix highlight of example bookshop input 2025-06-17 19:00:28 +02:00
Mark Dumay
8c5e032514 Merge pull request #1462 from gethinode/develop
Make padding globally configurable
2025-06-17 18:40:21 +02:00
Mark Dumay
47a410f333 Merge branch 'main' into develop 2025-06-17 17:30:29 +02:00
Mark Dumay
fe0d3553fb Make padding globally configurable 2025-06-17 17:29:56 +02:00
Mark Dumay
05af8f72a3 Merge pull request #1461 from gethinode/develop
Refactor bookshop components
2025-06-17 06:28:15 +02:00
Mark Dumay
977c82b10d Fix separator padding and width 2025-06-17 06:17:31 +02:00
Mark Dumay
be92798dec Merge branch 'main' into develop 2025-06-17 05:54:59 +02:00
Mark Dumay
db9b96797a Bump package release 2025-06-17 05:54:11 +02:00
Mark Dumay
d41d58cf5d Refactor bookshop components 2025-06-17 05:53:33 +02:00
github-actions[bot]
d3fe893287 Merge pull request #1460 from gethinode/dependabot/npm_and_yarn/eslint-9.29.0
Bump eslint from 9.28.0 to 9.29.0
2025-06-16 14:13:36 +00:00
dependabot[bot]
e64a08c339 Bump eslint from 9.28.0 to 9.29.0
Bumps [eslint](https://github.com/eslint/eslint) from 9.28.0 to 9.29.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/v9.28.0...v9.29.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 14:05:37 +00:00
Mark Dumay
900fce4169 Merge pull request #1459 from gethinode/develop
Refine content blocks
2025-06-11 16:59:46 +02:00
Mark Dumay
c82f9a41d4 Merge branch 'main' into develop 2025-06-11 16:51:36 +02:00
Mark Dumay
ea83db2eeb Fix image mode rendering 2025-06-11 16:48:35 +02:00
Mark Dumay
d37c2f6517 Add cards content block 2025-06-11 16:40:16 +02:00
Mark Dumay
68a4859638 Add articles example 2025-06-11 16:39:41 +02:00
Mark Dumay
81494cb1ed Bump package release 2025-06-11 05:49:02 +02:00
Mark Dumay
8307e2ab57 FIx timeline bug using workaround 2025-06-11 05:48:08 +02:00
Mark Dumay
4e6aad33d6 Merge pull request #1458 from gethinode/develop
FIx rendering of inner nav-item content
2025-06-10 17:24:04 +02:00
Mark Dumay
8c3989e4f1 Merge branch 'main' into develop 2025-06-10 17:12:37 +02:00
Mark Dumay
42a81bab5f FIx rendering of inner nav-item content 2025-06-10 17:10:36 +02:00
91 changed files with 1032 additions and 2575 deletions

View File

@@ -18,23 +18,13 @@ a:active {
// Ensure main page is rendered to full viewport height
//
.main {
min-height: 100vh;
}
.fullcover {
--navbar-height: #{$navbar-height};
min-height: calc(100vh - var(--navbar-height));
}
.fullscreen {
--overlay-offset: #{$overlay-offset};
--section-height: 88vh;
--max-section-height: 1024px;
min-height: calc(100vh - var(--overlay-offset));
}
.main-content {
margin-top: var(--navbar-offset);
min-height: 100vh;
margin-top: var(--overlay-offset);
}
$utilities: map-merge(
@@ -100,66 +90,24 @@ $utilities: map-merge(
)
);
@media screen and (orientation: portrait) {
.min-vh-custom {
min-height: 25vh !important
}
}
@media screen and (orientation: landscape) {
.min-vh-custom {
min-height: 50vh !important
}
}
:root {
--nav-height: 90px;
}
@include media-breakpoint-up(sm) {
.ratio-section {
min-height: calc(min(100vh, 576px) - var(--nav-height));
}
}
@include media-breakpoint-up(md) {
.ratio-section {
min-height: calc(min(100vh, 768px) - var(--nav-height));
}
}
@include media-breakpoint-up(lg) {
.ratio-section {
min-height: calc(min(100vh, 992px) - var(--nav-height));
}
}
@include media-breakpoint-up(xl) {
.ratio-section {
min-height: calc(min(100vh, 1200px) - var(--nav-height));
}
}
@include media-breakpoint-up(xxl) {
.ratio-section {
min-height: calc(min(100vh, 1400px) - var(--nav-height));
}
}
.section-cover {
min-height: 100vh;
min-height: calc(var(--section-height) - var(--overlay-offset));
}
@include media-breakpoint-up(xxl) {
.section-cover {
min-height: calc(min(100vh, 1000px));
min-height: calc(min(calc(var(--section-height) - var(--overlay-offset)), var(--max-section-height)));
}
}
/* stylelint-disable media-feature-range-notation */
@media (min-height: 1400px) {
.section-cover {
min-height: calc(min(100vh, 1000px));
min-height: calc(min(calc(var(--section-height) - var(--overlay-offset)), var(--max-section-height)));
}
}
/* stylelint-enable media-feature-range-notation */

View File

@@ -69,3 +69,8 @@ $theme-colors: (
"body": $body-bg,
"body-tertiary": $gray-100,
);
$btn-padding-y-xs: .08rem !default;
$btn-padding-x-xs: 0.3rem !default;
$btn-font-size-xs: $font-size-base * .6 !default;
$btn-border-radius-xs: .2rem !default;

View File

@@ -64,3 +64,8 @@ $theme-colors: (
"body": $body-bg,
"body-tertiary": $gray-100,
);
$btn-padding-y-xs: .08rem !default;
$btn-padding-x-xs: 0.3rem !default;
$btn-font-size-xs: $font-size-base * .6 !default;
$btn-border-radius-xs: .2rem !default;

View File

@@ -48,3 +48,7 @@ a.btn {
margin: 0 !important;
}
.btn-xs {
@include button-size($btn-padding-y-xs, $btn-padding-x-xs, $btn-font-size-xs, $btn-border-radius-xs);
}

View File

@@ -1,14 +1,8 @@
.nav-tabs .nav-tabs {
border: none;
.nav-tabs {
border: none !important;
}
.nav-tabs .nav-link.active {
border-bottom-color: var(--bs-body-bg) !important;
border-bottom-style: solid !important;
z-index: 1;
}
.nav-callout {
.nav-callout, .tab-content {
--#{$prefix}nav-callout-bg: var(--#{$prefix}light);
--#{$prefix}nav-callout-active-bg: var(--bs-primary-bg-subtle);
--#{$prefix}nav-callout-gap: #{$nav-underline-gap};
@@ -92,7 +86,7 @@
@if $enable-dark-mode {
@include color-mode(dark) {
.nav-callout {
.nav-callout, .tab-content {
--#{$prefix}nav-callout-bg: var(--#{$prefix}tertiary-bg);
}

View File

@@ -1,6 +1,7 @@
@import "modules/bookshop/shared/styles/global";
@import "modules/bookshop/components/about/about";
@import "modules/bookshop/components/articles/articles";
@import "modules/bookshop/components/cards/cards";
@import "modules/bookshop/components/faq/faq";
@import "modules/bookshop/components/hero/hero";
@import "modules/bookshop/components/releases/releases";

View File

@@ -30,6 +30,7 @@ blueprint:
mode:
order:
width:
justify:
link-type:
links:
-

View File

@@ -21,12 +21,12 @@
{{ partial "assets/hero.html" (dict
"heading" $args.heading
"background" $args.background
"illustration" (merge (dict "ratio" "1x1") $args.illustration)
"illustration" (merge (dict "ratio" "auto") $args.illustration)
"order" $args.order
"link-type" $args.linkType
"links" $args.links
"orientation" "horizontal"
"width" (or .width 8)
"width" (or $args.width 8)
)
}}
{{- end -}}

View File

@@ -29,7 +29,7 @@ blueprint:
link:
cols:
padding:
max:
limit:
pagination:
paginate:
background:
@@ -42,4 +42,6 @@ blueprint:
header-style:
footer-style:
orientation:
class:
class:
width:
justify:

View File

@@ -11,7 +11,7 @@
{{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "component-library/components/articles/articles.hugo.html"
"warnid" "warn-invalid-arguments"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg)
"file" page.File
@@ -62,48 +62,46 @@
<!-- Main code -->
{{ if not $error }}
<div class="container-xxl p-4 px-xxl-0">
{{- partial "assets/section-title.html" (dict "heading" $args.heading "class" "py-5") -}}
{{- partial "assets/section-title.html" (dict "heading" $args.heading "justify" $args.justify) -}}
{{ $partial := "assets/card-group.html" }}
{{ $params := dict }}
{{- $params = merge $params (dict
"page" page
"list" $pages
"max" $args.max
"cols" $args.cols
"icon-rounded" $args.iconRounded
"href" (cond $moreButton $moreLink "")
"href-title" (cond $moreButton $moreTitle "")
"href-force" (gt $result.total (len $result.pages))
)}}
{{ $partial := "assets/card-group.html" }}
{{ $params := dict }}
{{- $params = merge $params (dict
"page" page
"list" $pages
"limit" $args.limit
"cols" $args.cols
"icon-rounded" $args.iconRounded
"href" (cond $moreButton $moreLink "")
"href-title" (cond $moreButton $moreTitle "")
"href-force" (gt $result.total (len $result.pages))
)}}
{{ if $args.scroll }}
{{ $partial := "assets/stack.html" }}
{{ $params = merge $params (dict
"header-style" "none"
"body-style" "title"
"footer-style" "none"
"gutter" 1
"padding" 3
"ratio" "1x1"
"orientation" "horizontal-sm"
"styles" (cond $args.bento $styles "")
) -}}
{{ else }}
{{ $params = merge $params (dict
"header-style" $args.headerStyle
"footer-style" $args.footerStyle
"padding" $args.padding
"class" (or $args.class "border-0")
"icon-style" "fa-2x"
"align" "start"
"orientation" $args.orientation
"hook" "assets/live-card.html"
"pagination" $args.pagination
"paginate" $paginate
) -}}
{{ end }}
{{ partial $partial $params }}
</div>
{{ if $args.scroll }}
{{ $partial := "assets/stack.html" }}
{{ $params = merge $params (dict
"header-style" "none"
"body-style" "title"
"footer-style" "none"
"gutter" 1
"padding" 3
"ratio" "1x1"
"orientation" "horizontal-sm"
"styles" (cond $args.bento $styles "")
) -}}
{{ else }}
{{ $params = merge $params (dict
"header-style" $args.headerStyle
"footer-style" $args.footerStyle
"padding" $args.padding
"class" (or $args.class "border-0")
"icon-style" "fa-2x"
"align" "start"
"orientation" $args.orientation
"hook" "assets/live-card.html"
"pagination" $args.pagination
"paginate" $paginate
) -}}
{{ end }}
{{ partial $partial $params }}
{{ end }}

View File

@@ -0,0 +1,34 @@
# Metadata about this component, to be used in the CMS
spec:
structures:
- content_blocks
label: Benefits
description: Introduction section
icon: check
tags: []
# Defines the structure of this component, as well as the default values
blueprint:
heading:
preheading:
heading:
content:
align:
width:
cols:
icon-rounded:
padding:
background:
backdrop:
color:
subtle:
elements:
- title:
icon:
image:
mode:
content:
orientation:
class:
width:
justify:

View File

@@ -0,0 +1,72 @@
{{/*
Copyright © 2025 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
*/}}
{{ $error := false }}
{{/* Initialize arguments */}}
{{ $args := partial "utilities/InitArgs.html" (dict "bookshop" "cards" "args" .)}}
{{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "component-library/components/cards/cards.hugo.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg)
"file" page.File
)}}
{{ $error = $args.err }}
{{ end }}
{{/* Initialize global arguments */}}
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
{{/* Initialize local variables */}}
{{ $list := slice }}
{{ range $args.elements }}
<!-- TODO: check mode -->
{{ $list = $list | append (dict
"title" .title
"description" (.content | page.RenderString)
"icon" .icon
"thumbnail" .image
) }}
{{ end}}
{{ if not $error }}
{{- partial "assets/section-title.html" (dict "heading" $args.heading "justify" $args.justify) -}}
{{- partial "assets/card-group.html" (dict
"page" page
"list" $list
"class" (printf "border-0 card-icon-primary d-%s-none %s" $breakpoint.prev $args.class)
"cols" $args.cols
"gutter" "4"
"padding" $args.padding
"header-style" "none"
"footer-style" "none"
"icon-rounded" $args.iconRounded
"icon-style" "fa-2x"
"align" "start"
"orientation" ($args.orientation | default "horizontal-sm")
"hook" "assets/live-card.html"
) -}}
{{- partial "assets/card-group.html" (dict
"page" page
"list" $list
"class" (printf "border-0 card-icon-primary d-none d-%s-block %s" $breakpoint.prev $args.class)
"cols" $args.cols
"gutter" "4"
"padding" $args.padding
"header-style" "none"
"footer-style" "none"
"icon-rounded" $args.iconRounded
"icon-style" "fa-2x"
"align" "start"
"orientation" ($args.orientation | default "stacked")
"hook" "assets/live-card.html"
) -}}
{{ end }}

View File

@@ -17,6 +17,8 @@ blueprint:
width:
size:
contrast:
width:
justify:
background:
backdrop:
color:

View File

@@ -17,43 +17,37 @@
{{ end }}
{{ if not $args.err }}
<div class="container-xxl p-4 px-xxl-0">
{{ $color := "" }}
{{ if $args.contrast }}{{ $color = "white" }}{{ end }}
{{- partial "assets/section-title.html" (dict
"heading" $args.heading
"color" $color
"class" "py-5"
) -}}
{{ $color := "" }}
{{ if $args.contrast }}{{ $color = "white" }}{{ end }}
{{- partial "assets/section-title.html" (dict "heading" $args.heading "color" $color "justify" $args.justify) -}}
{{ $class := "" }}
{{ $id := printf "faq-%s" (md5 (delimit (slice . now) "-")) }}
{{ $class := "" }}
{{ $id := printf "faq-%s" (md5 (delimit (slice . now) "-")) }}
<div id="{{ $id }}" class="accordion accordion-faq {{ if $args.contrast }}accordion-faq-contrast text-white {{ end }}accordion-flush mb-3{{ with $class }} {{ . }}{{ end }} col-12 col-md-6 mx-auto">
{{ range $index, $item := $args.items }}
<div class="accordion-item">
{{- with $item.title -}}
<div class="accordion-header m-0" id="{{ $id }}-heading-{{ $id }}">
<button class="accordion-button collapsed"
type="button"
data-bs-toggle="collapse"
data-bs-target="#{{ $id }}-item-{{ $index }}"
aria-expanded="false"
aria-controls="{{ $id }}-item-{{ $index }}"
>
{{ if $args.color }}<div class="text-{{ $args.color }}">{{ . }}</div>{{ else }}{{ . }}{{ end }}
</button>
</div>
{{- end -}}
<div id="{{ $id }}-item-{{ $index }}"
class="accordion-collapse collapse"
aria-labelledby="{{ $id }}-heading-{{ $index }}"
data-bs-parent="#{{ $id }}"
>
<div class="accordion-body">{{ $item.description | page.RenderString | safeHTML }}</div>
<div id="{{ $id }}" class="accordion accordion-faq {{ if $args.contrast }}accordion-faq-contrast text-white {{ end }}accordion-flush mb-3{{ with $class }} {{ . }}{{ end }} col-12 col-md-6 mx-auto">
{{ range $index, $item := $args.items }}
<div class="accordion-item">
{{- with $item.title -}}
<div class="accordion-header m-0" id="{{ $id }}-heading-{{ $id }}">
<button class="accordion-button collapsed"
type="button"
data-bs-toggle="collapse"
data-bs-target="#{{ $id }}-item-{{ $index }}"
aria-expanded="false"
aria-controls="{{ $id }}-item-{{ $index }}"
>
{{ if $args.color }}<div class="text-{{ $args.color }}">{{ . }}</div>{{ else }}{{ . }}{{ end }}
</button>
</div>
{{- end -}}
<div id="{{ $id }}-item-{{ $index }}"
class="accordion-collapse collapse"
aria-labelledby="{{ $id }}-heading-{{ $index }}"
data-bs-parent="#{{ $id }}"
>
<div class="accordion-body">{{ $item.description | page.RenderString | safeHTML }}</div>
</div>
{{ end }}
</div>
</div>
{{ end }}
</div>
{{ end }}

View File

@@ -38,3 +38,4 @@ blueprint:
cover:
orientation:
width:
justify:

View File

@@ -30,6 +30,7 @@
"links" $args.links
"orientation" $args.orientation
"width" $args.width
"justify" $args.justify
)
}}
{{ end }}

View File

@@ -21,4 +21,6 @@ blueprint:
backdrop:
color:
subtle:
width:
justify:
data:

View File

@@ -16,5 +16,5 @@
{{ end }}
{{ if not $args.err }}
<div class="container-xxl p-0"{{ with $args.theme }} data-bs-theme="{{ . }}"{{ end }}><hr></div>
<hr class="w-100">
{{ end }}

View File

@@ -39,6 +39,7 @@ blueprint:
label:
border:
width:
justify:
_structures:
messages:

View File

@@ -17,6 +17,7 @@
{{ end }}
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{- define "_partials/inline/video.html" -}}
{{ $provider := .provider }}
@@ -25,10 +26,14 @@
{{ $autoplay := .autoplay }}
{{ $queryArgs := .queryArgs }}
{{ $border := .border }}
{{ $padding := .padding }}
{{ if site.Params.env_bookshop_live }}
{{/* Define dummy content as we cannot retrieve video data in live mode */}}
{{- partial "assets/live-image.html" (dict "src" "/img/placeholder-video.svg" "ratio" "21x9" "wrapper" "text-center mb-4") -}}
{{- partial "assets/live-image.html" (dict
"src" "/img/placeholder-video.svg"
"ratio" "21x9"
"wrapper" (printf "text-center mb-%d" $padding.y)) -}}
{{ else }}
<div class="video-container{{ if $border }} video-container-border{{ end}}">
{{ partial "assets/video.html" (dict
@@ -73,7 +78,7 @@
) -}}
{{ end }}
<div class="container-xxl p-4 px-xxl-0">
{{ if not $args.err }}
{{ $list := slice }}
{{ range $args.messages }}
@@ -91,13 +96,10 @@
) }}
{{ end}}
{{- partial "assets/section-title.html" (dict
"heading" $args.heading
"class" "py-5"
) -}}
{{- partial "assets/section-title.html" (dict "heading" $args.heading "justify" $args.justify) -}}
{{ if eq $args.orientation "stacked" }}
<div class="col-{{ $breakpoint.current }}-{{ $args.width }} mx-auto">
<div class="col-{{ $breakpoint.current }}-{{ $args.width }} mx-auto pb-{{ $padding.y }}">
{{ with $args.video }}
{{- partial "inline/video.html" (dict
"provider" .provider
@@ -106,14 +108,15 @@
"autoplay" .autoplay
"query-args" .queryArgs
"border" $.border
"padding" $padding
) -}}
{{ end }}
</div>
<div class="mt-4">
<div class="mt-{{ $padding.y }} pb-{{ $padding.y }}">
{{- partial "inline/messages.html" (dict "list" $list "cols" $args.cols "type" $args.type "iconRounded" $args.iconRounded) -}}
</div>
{{ else }}
<div class="container grid gap-4">
<div class="container grid gap-4 pb-{{ $padding.y }}">
<div class="row row-cols-1 row-cols-{{ $breakpoint.current }}-2">
<div class="col col-{{ $breakpoint.current }}-{{ $args.width }} p-0">
{{ with $args.video }}
@@ -124,13 +127,14 @@
"autoplay" .autoplay
"query-args" .queryArgs
"border" $.border
"padding" $padding
) -}}
{{ end }}
</div>
<div class="col col-{{ $breakpoint.current }}-{{ sub 12 $args.width }} mt-4 mt-{{ $breakpoint.current }}-0">
<div class="col col-{{ $breakpoint.current }}-{{ sub 12 $args.width }} mt-{{ $padding.y }} mt-{{ $breakpoint.current }}-0">
{{- partial "inline/messages.html" (dict "list" $list "cols" 1 "type" $args.type "iconRounded" $args.iconRounded) -}}
</div>
</div>
</div>
{{ end }}
</div>
{{ end }}

View File

@@ -15,7 +15,7 @@
{{- $component_props := index . 1 -}}
{{- $class := index . 2 | default "p-0" -}}
{{- $bgclass := index . 3 | default "" -}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{- $component_path := partial "_bookshop/helpers/component_key" $component_name -}}
{{- $flat_component_path := partial "_bookshop/helpers/flat_component_key" $component_name -}}
@@ -32,6 +32,9 @@
{{- $background := index $component_props "background" -}}
{{- $backdrop := "" -}}
{{- $style := index $component_props "wrapper" -}}
{{- $width := index $component_props "width" -}}
{{- $justify := index $component_props "justify" | default "start" -}}
{{- $padding := cond (ne $component_name "separator") (printf "px-%d px-xxl-0 py-%d" $padding.x $padding.y) "" -}}
{{- $wrapper := $style }}
{{ with $background }}
{{ $wrapper = partial "utilities/GetBackgroundStyle.html" (dict "background" . "class" $style) }}
@@ -59,7 +62,16 @@
{{- if $backdrop -}}
{{ partial "assets/live-image.html" (dict "src" $backdrop "class" (printf "background-img-fluid %s" $bgclass) "title" (T "backgroundImage")) }}
{{- end -}}
{{ partial $resolved_component $component_props }}
{{ $col := cond (and $width (lt $width 12)) (printf "col-12 col-md-%d" $width) "" }}
<div class="container-xxl {{ $padding }} d-flex flex-column align-items-{{ $justify }}">
{{ with $col }}
<div class="{{ . }}">{{ partial $resolved_component $component_props }}</div>
{{ else }}
{{ partial $resolved_component $component_props }}
{{ end}}
</div>
</section>
{{ "<!--bookshop-live end-->" | safeHTML }}
{{- else -}}

View File

@@ -116,7 +116,7 @@ home = ["HTML", "RSS", "REDIR", "netlify", "server"]
[module]
[module.hugoVersion]
extended = true
min = "0.141.0"
min = "0.146.0"
[[module.mounts]]
source = "archetypes"
target = "archetypes"
@@ -188,11 +188,11 @@ home = ["HTML", "RSS", "REDIR", "netlify", "server"]
[[module.imports]]
path = "github.com/gethinode/mod-lottie"
[[module.imports]]
path = "github.com/gethinode/mod-mermaid"
path = "github.com/gethinode/mod-mermaid/v2"
[[module.imports]]
path = "github.com/gethinode/mod-simple-datatables"
path = "github.com/gethinode/mod-simple-datatables/v2"
[[module.imports]]
path = "github.com/gethinode/mod-utils/v3"
path = "github.com/gethinode/mod-utils/v4"
# toml-docs-end modules
# toml-docs-start segments

View File

@@ -11,6 +11,9 @@
loading = "lazy"
breakpoint = "md"
titleCase = false
[main.padding]
x = 4
y = 4
[main.internalLinks]
validate = true
pretty = false

View File

@@ -30,7 +30,7 @@ const purgecss = purgeCSSPlugin({
'./_vendor/github.com/gethinode/mod-flexsearch/v2/assets/scss/modules/flexsearch/flexsearch.scss',
'./_vendor/github.com/gethinode/mod-katex/dist/katex.scss',
'./_vendor/github.com/gethinode/mod-leaflet/dist/leaflet.scss',
'./_vendor/github.com/gethinode/mod-simple-datatables/dist/simple-datatables.scss',
'./_vendor/github.com/gethinode/mod-simple-datatables/v2/dist/simple-datatables.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_carousel.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_modal.scss',

View File

@@ -7,18 +7,18 @@ content_blocks:
title: Welcome to Hinode!
content: |-
A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
align: start
width: 6
background:
color: primary
subtle: true
illustration:
image: /img/sunrise.jpg
ratio: 16x9
width: 8
width: 6
width: 8
links:
- title: Get started
url: https://gethinode.com/docs
icon: fas book-open
- title: About
url: about
icon: fas chevron-right
orientation: horizontal
justify: center
---

File diff suppressed because it is too large Load Diff

View File

@@ -1,59 +0,0 @@
types:
background:
backdrop:
color:
subtle:
heading:
preheading:
title:
content:
align:
arrangement:
width:
size:
illustration:
image:
icon:
ratio:
class:
anchor:
mode:
width:
image-overlay:
hook:
input:
section:
nested:
keywords:
categories:
tags:
reverse:
sort:
items:
- title:
description:
links:
- title:
url:
icon:
force:
messages:
- title:
icon:
content:
link:
label:
more:
title:
link:
styles:
- ratio:
orientation:
portrait:
width:
video:
provider:
account:
id:
autoplay:
query-args:

View File

@@ -22,7 +22,8 @@ arguments:
release: 1.0.0
list:
cards:
max:
limit:
release: v1.0.0
cols:
release: v0.19.0
paginate:
@@ -158,3 +159,12 @@ arguments:
group: partial
deprecated: v1.0.0
alternative: href-title
max:
type: int
optional: true
comment: Maximum number of elements to display.
group: partial
options:
min: 1
deprecated: v1.0.0
alternative: limit

View File

@@ -11,8 +11,8 @@ arguments:
full:
id:
class:
options:
release: v0.27.6
highlight-options:
release: v1.0.0
# deprecated arguments
path:
type: string
@@ -22,3 +22,11 @@ arguments:
the path of the repository is used as base path instead.
deprecated: v1.0.0
alternative: file
options:
type: string
optional: true
comment: >-
Hugo highlighting options, see https://gohugo.io/shortcodes/highlight/#options-1.
release: v0.27.6
deprecated: v1.0.0
alternative: highlight-options

View File

@@ -2,3 +2,17 @@ comment: >-
Initializes images dimensions (widht x height for supported image ratios.
arguments:
ratio:
type: select
optional: true
comment: >-
Ratio of the media asset. When the asset is an image, it is resized and
cropped (not applicable to vector graphics). For video assets, the padding
of the embedded frame is adjusted.
options:
values:
- 1x1
- 3x2
- 4x3
- 16x9
- 21x9
- auto

View File

@@ -11,3 +11,4 @@ arguments:
wrapper:
class:
image-overlay:
justify:

View File

@@ -15,6 +15,7 @@ arguments:
cover:
orientation:
width:
justify:
use-section:
use-title:
class:

View File

@@ -4,6 +4,8 @@ arguments:
mode:
ratio:
portrait:
image-height:
image-width:
loading:
priority:
sizes:

View File

@@ -44,6 +44,10 @@ arguments:
release: v0.24.0
anchor:
release: v0.24.22
image-height:
release: v1.0.0
image-width:
release: v1.0.0
# deprecated arguments
url:
type:

View File

@@ -1,6 +1,8 @@
comment: >-
Defines an individual item.
arguments:
page:
group: partial
id:
group: partial
parent-id:

View File

@@ -7,8 +7,12 @@ arguments:
group: partial
list:
group: partial
nav-disabled:
release: v1.0.0
nav-items:
release: v1.0.0
nav-show:
release: v1.0.0
nav-titles:
release: v1.0.0
tab-type:

View File

@@ -3,124 +3,13 @@ arguments:
heading:
links:
color:
type: select
comment: Text color of the section.
default: body
optional: true
options:
values:
- body
- primary
- secondary
- black
- white
class:
type: string
optional: true
comment: Class attribute of the section title.
size:
type: int
optional: true
comment: Display size of the title.
options:
min: 1
max: 6
use-title:
type: bool
optional: true
default: false
comment: Sets the title to an HTML header instead of a div.
justify:
type: select
comment: Justification of the link titles and icons.
optional: true
default: center
options:
values:
- start
- end
- center
- between
- around
- evenly
type:
type: select
optional: true
default: button
comment: Link type
options:
values:
- button
- link
section:
type: bool
optional: true
default: false
comment: >-
Trigger to use the current section as preheading, applies to single pages
only. Any preheading values takes precedence.
link-type:
use-section:
arrangement:
headingStyle:
type: select
optional: true
default: display
options:
values:
- display
- fs
comment: >-
Style of the heading, either display or fs (regular).
bodyStyle:
type: string
optional: true
default: lead text-muted
comment: >-
Style of the body text, if any..
# class:
# type: string
# optional: true
# comment: Class attribute of the illustration, e.g. "col-6".
# image:
# type: string
# optional: true
# comment: Image displayed on top of or adjacent to the headline.
# imageOverlay:
# type: bool
# optional: true
# default: false
# comment: Trigger to include an image overlay placeholder.
# ratio:
# type: select
# optional: true
# default: 16x9
# comment: >-
# Ratio of the illustration, uses original aspect ratio by default.
# options:
# values:
# - 1x1
# - 3x2
# - 4x3
# - 16x9
# - 21x9
# anchor:
# type: select
# optional: true
# comment:
# Anchor of the thumbnail's crop box, defaults to anchor value set in
# `imaging` section of the site configuration (usually `Smart`).
# options:
# values:
# - TopLeft
# - Top
# - TopRight
# - Left
# - Center
# - Right
# - BottomLeft
# - Bottom
# - BottomRight
# - Smart
# icon:
# type: string
# optional: true
# comment: Icon or animation displayed on top of or adjacent to the headline.
heading-style:
content-style:

View File

@@ -9,3 +9,4 @@ arguments:
optional: false
background:
class:
justify:

View File

@@ -31,6 +31,11 @@ arguments:
deprecated: v1.0.0
alternative: media-id
options:
type: string
optional: true
comment: >-
Optional query parameters to append to video asset's url. The query string
is prepended with a `?` symbol. Only applicable to Cloudinary.
release: v0.28.2
deprecated: v1.0.0
alternative: query-args

View File

@@ -129,4 +129,4 @@ home = ["HTML", "RSS", "REDIR", "netlify", "server"]
[[module.imports]]
path = "github.com/gethinode/mod-simple-datatables"
[[module.imports]]
path = "github.com/gethinode/mod-utils/v3"
path = "github.com/gethinode/mod-utils/v4"

View File

@@ -9,6 +9,9 @@
loading = "lazy"
breakpoint = "md"
titleCase = true
[main.padding]
x = 4
y = 4
[main.internalLinks]
validate = true
pretty = true
@@ -122,8 +125,7 @@
# 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"
# TODO: adjust purge settings
purge = false
purge = true
# toml-docs-end theme-colors
[schema]

View File

@@ -30,7 +30,7 @@ const purgecss = purgeCSSPlugin({
'./_vendor/github.com/gethinode/mod-flexsearch/v2/assets/scss/modules/flexsearch/flexsearch.scss',
'./_vendor/github.com/gethinode/mod-katex/dist/katex.scss',
'./_vendor/github.com/gethinode/mod-leaflet/dist/leaflet.scss',
'./_vendor/github.com/gethinode/mod-simple-datatables/dist/simple-datatables.scss',
'./_vendor/github.com/gethinode/mod-simple-datatables/v2/dist/simple-datatables.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_carousel.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_modal.scss',

View File

@@ -8,20 +8,20 @@ content_blocks:
title: Welcome to Hinode!
content: |-
A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
align: start
width: 6
background:
color: primary
subtle: true
illustration:
image: /img/sunrise.jpg
ratio: 16x9
width: 8
width: 6
width: 8
links:
- title: About
url: about
icon: fas chevron-right
orientation: horizontal
justify: center
- _bookshop_name: articles
heading:
@@ -37,7 +37,7 @@ content_blocks:
more:
title: More Posts
padding: 0
max: 3
limit: 3
class: border-0 card-zoom card-body-margin
- _bookshop_name: articles
@@ -55,7 +55,7 @@ content_blocks:
title: More articles
cols: 1
padding: 4
max: 2
limit: 2
header-style: none
footer-style: tags
orientation: horizontal-sm

View File

@@ -6,18 +6,17 @@ content_blocks:
- _bookshop_name: hero
heading:
title: Content blocks
align: start
breadcrumb: true
- _bookshop_name: articles
heading:
content: >-
Hinode uses [Bookshop](https://github.com/CloudCannon/bookshop) to
support so-called content blocks. Content blocks are reusable page
elements, such as a hero, about panel, or an FAQ. Hinode includes
several ready-to-use blocks. Click on a card for more details about
a content block, including its frontmatter configuration.
align: start
width: 8
breadcrumb: true
- _bookshop_name: articles
hide-empty: false
input:
section: blocks
@@ -27,7 +26,7 @@ content_blocks:
title: More Posts
cols: 3
padding: 0
max: 9
limit: 9
paginate: true
cover: false
header-style: none

View File

@@ -25,6 +25,7 @@ The `about` content block renders a short message next to an illustration. You c
subtle: true
illustration:
image: /assets/img/nat-9l98kFByiao-unsplash.jpg
ratio: 1x1
link-type: link
links:
- title: First link

View File

@@ -0,0 +1,44 @@
---
_schema: default
title: Articles
description: Use the articles content block to show a group of article cards.
icon: fas grip
---
## Overview
The `articles` content block renders a group of article cards.
<!-- markdownlint-disable MD037 -->
{{< example-bookshop lang="bookshop" >}}
```yml
- _bookshop_name: articles
heading:
title: Blog
align: start
input:
section: blog
reverse: false
sort: title
hide-empty: false
header-style: none
more:
title: More Blogs
padding: 0
limit: 3
background:
color: primary
subtle: true
class: border-0 card-zoom card-body-margin
justify: start
```
{{< /example-bookshop >}}
<!-- markdownlint-enable MD037 -->
## Arguments
The content block supports the following arguments:
{{< args bookshop-articles >}}

View File

@@ -0,0 +1,44 @@
---
_schema: default
title: Cards
description: Use the cards content block to show a card group of messages.
icon: fa address-card
---
## Overview
The `cards` content block renders a group of content cards.
<!-- markdownlint-disable MD037 -->
{{< example-bookshop lang="bookshop" >}}
```yml
- _bookshop_name: cards
heading:
preheading: Preheading
title: Heading
content: Cards content. It supports multiple lines.
align: start
background:
color: primary
subtle: true
orientation: stacked
icon-rounded: true
class: text-center
elements:
- title: First Card
icon: fas 1
- title: Second Card
icon: fas 2
- title: Third Card
icon: fas 3
```
{{< /example-bookshop >}}
<!-- markdownlint-enable MD037 -->
## Arguments
The content block supports the following arguments:
{{< args bookshop-cards >}}

View File

@@ -33,8 +33,9 @@ As an example, the following shortcode displays an accordion with three elements
{{< example lang="hugo" >}}
{{</* accordion */>}}
{{</* accordion-item title="Accordion Item #1" show="true" */>}}
This is the first item's accordion body. It supports HTML content, if enabled in the goldmark
renderer. The item is shown by adding the value `show` to the `class` argument.
This is the first item's accordion body.
It supports Markdown content. The item
is shown by adding the value `show` to the `class` argument.
{{</* /accordion-item */>}}
{{</* accordion-item title="Accordion Item #2" */>}}
This is the second item's accordion body.
@@ -58,6 +59,16 @@ As an example, the following shortcode displays a simple alert.
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Args
Use the args shortcode to generates a table of structured arguments. The argument definitions are expected to be defined in a data file identified by a provided structure name.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* args "args" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Badge
Use the badge shortcode to display a badge for a heading.
@@ -237,7 +248,7 @@ Use the `file` shortcode to print and highlight the full content of a given inpu
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* file file="./config/_default/languages.toml" id="file-collapse-1" */>}}
{{</* file file="./config/_default/languages.toml" id="file-collapse-1" full=false */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
@@ -351,14 +362,14 @@ As an example, the following shortcode displays a tab group with vertically alig
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* nav tab-type="pills" vertical="true" */>}}
{{</* nav-item title="Nav Item #1" show="true" */>}}
This is the first item's nav body. It supports HTML content, if enabled in the goldmark
renderer. The item is shown by adding the value `show` to the `class` argument.
{{</* nav-item title="Nav Item #1" */>}}
This is the first item's nav body. It supports Markdown content.
The item is shown by adding the value `show` to the `class` argument.
{{</* /nav-item */>}}
{{</* nav-item title="Nav Item #2" */>}}
{{</* nav-item title="Nav Item #2" show="true" */>}}
This is the second item's nav body.
{{</* /nav-item */>}}
{{</* nav-item title="Nav Item #3" */>}}
{{</* nav-item title="Nav Item #3" disabled="true" */>}}
This is the third item's nav body.
{{</* /nav-item */>}}
{{</* /nav */>}}

View File

@@ -22,7 +22,7 @@ As an example, the following shortcode shows an animation that plays on hover.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* animation data="gatin.json" auto=false hover=true class="col-6 mx-auto" */>}}
{{</* animation animation-data="gatin.json" autoplay=false hover=true class="col-6 mx-auto" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->

View File

@@ -22,7 +22,7 @@ Hinode propose plusieurs shortcodes en plus des [éléments Bootstrap]({{% relre
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* animation data="gatin.json" auto=false hover=true class="col-6 mx-auto" */>}}
{{</* animation animation-data="gatin.json" autoplay=false hover=true class="col-6 mx-auto" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->

View File

@@ -21,7 +21,7 @@ Het volgende voorbeeld gebruikt een shortcode om een animatie te tonen, die afsp
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* animation data="gatin.json" auto=false hover=true class="col-6 mx-auto" */>}}
{{</* animation animation-data="gatin.json" autoplay=false hover=true class="col-6 mx-auto" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->

View File

@@ -7,5 +7,5 @@ github.com/gethinode/mod-cookieyes/v2 v2.0.4 h1:QgYSD3S23351e7xEeQb+Mon+e+I6Rbnn
github.com/gethinode/mod-cookieyes/v2 v2.0.4/go.mod h1:tULb7D7CoTycGUyL7ryqHJKaX11XuL2SN+XwP7/DI0Y=
github.com/gethinode/mod-cookieyes/v2 v2.1.2 h1:hzGCbRbpNAVkLr+jFWpAQaXHG0lgK+KgIpaZYsI1J+U=
github.com/gethinode/mod-cookieyes/v2 v2.1.2/go.mod h1:tULb7D7CoTycGUyL7ryqHJKaX11XuL2SN+XwP7/DI0Y=
github.com/gethinode/mod-utils/v3 v3.0.2 h1:AewNQYVXy/qoNdqJGG6nKCZXjtXavcZcgdeC1Q6EEnQ=
github.com/gethinode/mod-utils/v3 v3.0.2/go.mod h1:9iHYWiDpDlcyrGAOHniubK/kziJYhTsw7UpGM+u4MOM=
github.com/gethinode/mod-utils/v4 v4.4.0 h1:IhhJDLqXCdYvrjM6kUR10wlg0kyZrY94f7EuGMj8NN0=
github.com/gethinode/mod-utils/v4 v4.4.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=

View File

@@ -69,6 +69,7 @@
],
"classes": [
"%!s(<nil>)",
"%!s(MISSING)",
"about",
"accordion",
"accordion-body",
@@ -121,22 +122,25 @@
"btn-group",
"btn-light",
"btn-link",
"btn-md",
"btn-outline-primary",
"btn-outline-secondary",
"btn-primary",
"btn-secondary",
"btn-sm",
"btn-social",
"btn-xs",
"card",
"card-block-2",
"card-body",
"card-body-link",
"card-body-margin",
"card-button",
"card-button-link",
"card-container",
"card-container-wrapper",
"card-emphasize",
"card-icon",
"card-icon-primary",
"card-icon-secondary",
"card-img-bg",
"card-img-top",
@@ -144,6 +148,7 @@
"card-text",
"card-title",
"card-zoom",
"cards",
"carousel",
"carousel-caption",
"carousel-control-next",
@@ -169,7 +174,7 @@
"col-lg-2",
"col-lg-4",
"col-lg-8",
"col-md-",
"col-md-10",
"col-md-12",
"col-md-2",
"col-md-3",
@@ -181,9 +186,6 @@
"col-sm-12",
"col-sm-3",
"col-sm-6",
"col-sm-9",
"col-xl-10",
"col-xl-2",
"collapse",
"collapsed",
"container",
@@ -205,6 +207,7 @@
"d-sm-block",
"d-sm-none",
"data-table",
"disabled",
"display-1",
"display-4",
"dropdown",
@@ -224,11 +227,13 @@
"fa-3",
"fa-4x",
"fa-activity",
"fa-address-card",
"fa-angle-left",
"fa-arrow-left",
"fa-arrow-right",
"fa-bootstrap",
"fa-chevron-right",
"fa-circle",
"fa-circle-check",
"fa-circle-play",
"fa-circle-question",
@@ -242,10 +247,12 @@
"fa-fw",
"fa-github",
"fa-globe",
"fa-grip",
"fa-h",
"fa-heart",
"fa-house",
"fa-info",
"fa-inverse",
"fa-link",
"fa-linkedin",
"fa-magnifying-glass",
@@ -256,6 +263,9 @@
"fa-share-nodes",
"fa-sort",
"fa-square-check",
"fa-stack",
"fa-stack-1x",
"fa-stack-2x",
"fa-sun",
"fa-timeline",
"fa-up-right-from-square",
@@ -271,7 +281,6 @@
"flex-column",
"flex-fill",
"flex-grow-1",
"flex-md-grow-0",
"flex-nowrap",
"flex-row",
"font-monospace",
@@ -283,7 +292,6 @@
"fs-6",
"fs-lg-5",
"fs-md-5",
"fullscreen",
"fw-30",
"fw-bold",
"fw-semibold",
@@ -319,6 +327,7 @@
"justify-content-between",
"justify-content-center",
"justify-content-end",
"justify-content-md-start",
"justify-content-start",
"katex",
"label",
@@ -332,9 +341,10 @@
"link-warning",
"lottie-animation",
"m-0",
"m-auto",
"m-md-n4",
"m-n1",
"main-content",
"main",
"main-nav-toggler",
"mb-0",
"mb-3",
@@ -357,6 +367,7 @@
"mt-auto",
"mt-md-0",
"multi-docs-collapse-15",
"multi-docs-collapse-16",
"multi-file-collapse-1",
"mx-auto",
"mx-md-0",
@@ -381,7 +392,6 @@
"navbar-mode-selector",
"navbar-nav",
"navbar-nav-scroll",
"navbar-title",
"navbar-toggler",
"next",
"no-js",
@@ -399,6 +409,7 @@
"pb-3",
"pb-4",
"pb-5",
"pe-0",
"pe-1",
"pe-3",
"pe-5",
@@ -415,7 +426,6 @@
"pt-4",
"pt-5",
"pt-md-0",
"pt-md-3",
"ptw-3",
"ptw-5",
"ptw-lg-5",
@@ -427,9 +437,7 @@
"py-2",
"py-3",
"py-4",
"py-5",
"py-md-1",
"py-md-5",
"ratio",
"ratio-16x9",
"releases",
@@ -556,6 +564,7 @@
"alerte",
"animatie",
"animation",
"args",
"arguments",
"background-type",
"badge",
@@ -563,6 +572,7 @@
"block-diagram",
"blog",
"body-docs-collapse-15",
"body-docs-collapse-16",
"body-file-collapse-1",
"bouton",
"breadcrumb",
@@ -590,9 +600,11 @@
"data-tables",
"docs",
"documentation",
"elements-type",
"entity-relationship-diagram",
"example",
"exemple",
"fa-address-card",
"fa-face-frown",
"fa-square-check",
"fab-bootstrap",
@@ -603,11 +615,26 @@
"fab-medium",
"fab-whatsapp",
"fab-x-twitter",
"faq-422100b13f9388f5e5d9733a89582b72",
"faq-422100b13f9388f5e5d9733a89582b72-heading-faq-422100b13f9388f5e5d9733a89582b72",
"faq-422100b13f9388f5e5d9733a89582b72-item-0",
"faq-422100b13f9388f5e5d9733a89582b72-item-1",
"faq-422100b13f9388f5e5d9733a89582b72-item-2",
"faq-50c692e264c634586e8c4ecaa233a9fe",
"faq-50c692e264c634586e8c4ecaa233a9fe-heading-faq-50c692e264c634586e8c4ecaa233a9fe",
"faq-50c692e264c634586e8c4ecaa233a9fe-item-0",
"faq-50c692e264c634586e8c4ecaa233a9fe-item-1",
"faq-50c692e264c634586e8c4ecaa233a9fe-item-2",
"faq-6970cc0aa1c2d2d4c1359a93d3193646",
"faq-6970cc0aa1c2d2d4c1359a93d3193646-heading-faq-6970cc0aa1c2d2d4c1359a93d3193646",
"faq-6970cc0aa1c2d2d4c1359a93d3193646-item-0",
"faq-6970cc0aa1c2d2d4c1359a93d3193646-item-1",
"faq-6970cc0aa1c2d2d4c1359a93d3193646-item-2",
"faq-85f9e7e957de15130b6401c39140dad6",
"faq-85f9e7e957de15130b6401c39140dad6-heading-faq-85f9e7e957de15130b6401c39140dad6",
"faq-85f9e7e957de15130b6401c39140dad6-item-0",
"faq-85f9e7e957de15130b6401c39140dad6-item-1",
"faq-85f9e7e957de15130b6401c39140dad6-item-2",
"faq-d5c6be23853321daeaf421994a4c5937",
"faq-d5c6be23853321daeaf421994a4c5937-heading-faq-d5c6be23853321daeaf421994a4c5937",
"faq-d5c6be23853321daeaf421994a4c5937-item-0",
"faq-d5c6be23853321daeaf421994a4c5937-item-1",
"faq-d5c6be23853321daeaf421994a4c5937-item-2",
"fas-1",
"fas-2",
"fas-3",
@@ -615,6 +642,7 @@
"fas-arrow-left",
"fas-arrow-right",
"fas-chevron-right",
"fas-circle",
"fas-circle-check",
"fas-circle-play",
"fas-circle-question",
@@ -622,6 +650,7 @@
"fas-divide",
"fas-ellipsis",
"fas-globe",
"fas-grip",
"fas-h",
"fas-heart",
"fas-house",
@@ -640,6 +669,7 @@
"file",
"flowchart",
"footer-docs-collapse-15",
"footer-docs-collapse-16",
"footer-file-collapse-1",
"formula-katex",
"formule-katex",
@@ -660,6 +690,7 @@
"imgix",
"indicateur-de-chargement",
"infobulle",
"input-type",
"ins",
"invite-de-commandes",
"items-type",
@@ -678,20 +709,19 @@
"mermaid-diagrams",
"messages-type",
"mindmap",
"more-type",
"nav",
"nav-0-0",
"nav-0-1",
"nav-0-2",
"nav-0-btn-0",
"nav-0-btn-1",
"nav-0-btn-2",
"nav-nav-0",
"nav-nav-0-btn-0",
"nav-nav-0-btn-1",
"nav-nav-0-btn-2",
"navbar",
"navbar-0-collapse",
"navbar-mode",
"navbar-mode-checkbox",
"navbar-sample",
"navbar-sample-checkbox",
"navbar-sample-collapse",
"navigation",
"notification",

13
go.mod
View File

@@ -8,14 +8,17 @@ require (
github.com/gethinode/mod-bootstrap v1.3.3 // indirect
github.com/gethinode/mod-csp v1.0.7 // indirect
github.com/gethinode/mod-flexsearch/v2 v2.1.1 // indirect
github.com/gethinode/mod-fontawesome/v2 v2.0.0 // indirect
github.com/gethinode/mod-google-analytics v1.3.1 // indirect
github.com/gethinode/mod-fontawesome/v2 v2.1.1 // indirect
github.com/gethinode/mod-google-analytics v1.3.2 // indirect
github.com/gethinode/mod-katex v1.1.3 // indirect
github.com/gethinode/mod-leaflet v1.2.1 // indirect
github.com/gethinode/mod-lottie v1.5.14 // indirect
github.com/gethinode/mod-leaflet v1.3.0 // indirect
github.com/gethinode/mod-lottie v1.6.0 // indirect
github.com/gethinode/mod-mermaid v1.1.23 // indirect
github.com/gethinode/mod-mermaid/v2 v2.0.1 // indirect
github.com/gethinode/mod-simple-datatables v1.1.7 // indirect
github.com/gethinode/mod-simple-datatables/v2 v2.0.1 // indirect
github.com/gethinode/mod-utils/v3 v3.3.1 // indirect
github.com/gethinode/mod-utils/v4 v4.8.4 // indirect
github.com/nextapps-de/flexsearch v0.0.0-20250606060143-c28f52c09b7a // indirect
github.com/twbs/bootstrap v5.3.6+incompatible // indirect
github.com/twbs/bootstrap v5.3.7+incompatible // indirect
)

34
go.sum
View File

@@ -156,6 +156,10 @@ github.com/gethinode/mod-fontawesome v1.10.1 h1:gXQ75VXI+a0W2ALkAFHd/QFQ/VoZR6eu
github.com/gethinode/mod-fontawesome v1.10.1/go.mod h1:xBKsZH3WJtMOItZVlp9SbO51uaBy6IbvUZSKpNu3b6Y=
github.com/gethinode/mod-fontawesome/v2 v2.0.0 h1:vIcVq4sa68iqYBEei+XBZgWKvT79NXuh+jMS6yVpCV8=
github.com/gethinode/mod-fontawesome/v2 v2.0.0/go.mod h1:MJghtpjpnbGVzRN+1rH5Fs9Y+eQAawAotGnlemEPb60=
github.com/gethinode/mod-fontawesome/v2 v2.1.0 h1:kRQ/4ady4Ih/m3bJ/1+/rkFhunuzjNEc4NqIlpNks/o=
github.com/gethinode/mod-fontawesome/v2 v2.1.0/go.mod h1:Jhwzi3KQI3fYn1hPNPJFCk+kcz80s8ONT4FmwLTXH2c=
github.com/gethinode/mod-fontawesome/v2 v2.1.1 h1:EieVCvEiT0ulXpEHY4kCLJvZCIvGkupIVyoCRTidrvo=
github.com/gethinode/mod-fontawesome/v2 v2.1.1/go.mod h1:zukv88wXqquEvTJJ9mWWk8Ia+9INnA41wYqusf2RcHA=
github.com/gethinode/mod-google-analytics v1.0.0 h1:fly42RQ69bdyJe8WFefsBIo7WMIXkd3wZn32kyAr4h4=
github.com/gethinode/mod-google-analytics v1.0.0/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
github.com/gethinode/mod-google-analytics v1.0.1 h1:zbmOdnAhhFCA7qWw7fnR46biWhqW2r06sIaTWyhB5R0=
@@ -182,6 +186,8 @@ github.com/gethinode/mod-google-analytics v1.3.0 h1:R9oRB6nbFDwLsNmIhxlcmUVH4JE1
github.com/gethinode/mod-google-analytics v1.3.0/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
github.com/gethinode/mod-google-analytics v1.3.1 h1:WPXrsO6Kpp0k8PYY9a1JyiZgYGMlkBfHY8eEg6CfcL0=
github.com/gethinode/mod-google-analytics v1.3.1/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
github.com/gethinode/mod-google-analytics v1.3.2 h1:W4caxWkSor/BFfOEGDDMp+7RajO/Jh1bE7LXxPqLE3A=
github.com/gethinode/mod-google-analytics v1.3.2/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
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=
@@ -232,6 +238,8 @@ github.com/gethinode/mod-leaflet v1.2.0 h1:5q5LHmGNi9N4cdRDCsl/6oI8vY3oQ2ogNUjP3
github.com/gethinode/mod-leaflet v1.2.0/go.mod h1:Ei0x9WiL7Dbi4JeG6yI1CE63bT1QJ8sKi67Jea1wFSE=
github.com/gethinode/mod-leaflet v1.2.1 h1:p0bKi+F5vbXwYknBvFEN9KymK8PRqKaYhVz5O1QPs/c=
github.com/gethinode/mod-leaflet v1.2.1/go.mod h1:Ei0x9WiL7Dbi4JeG6yI1CE63bT1QJ8sKi67Jea1wFSE=
github.com/gethinode/mod-leaflet v1.3.0 h1:rRjuuW2KVJjnrBrFIOxxHxkB6RPdmlTivBlvceBG3Fk=
github.com/gethinode/mod-leaflet v1.3.0/go.mod h1:F/XR1lYKENw91u+IC4NXQT6dbCyJlSJUPClMVpBK8Tw=
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=
@@ -288,8 +296,12 @@ github.com/gethinode/mod-lottie v1.5.13 h1:Vth/OZDjfBZ9Kz5ew3tXGj9tU6w4StIta6qgf
github.com/gethinode/mod-lottie v1.5.13/go.mod h1:tMFSUW9z3kC8IvDfs1ph9MGjuZFRBrpCnpodrwY+L4w=
github.com/gethinode/mod-lottie v1.5.14 h1:17wmpi4XQzmwSB2HKNVa7c6ZzULrRnpKdowOFQQf0m8=
github.com/gethinode/mod-lottie v1.5.14/go.mod h1:VrjjmrwP/NIrLW7oDQyEAHdbeIRQfbr5BKjgKvI9Al4=
github.com/gethinode/mod-lottie v1.6.0 h1:O0ld9Q1rBWKb9HzuCuGPBfCegUcIqczMGNW2O/VjVYk=
github.com/gethinode/mod-lottie v1.6.0/go.mod h1:jZy8EJ6ldLnOXhpzayJ2STZ4hzykqkguFHWpN4aHxMo=
github.com/gethinode/mod-mermaid v1.1.23 h1:DA5iIdopb7f3wC+bfZ7J5HhcRUuVI/2j1+W/j5L/wwQ=
github.com/gethinode/mod-mermaid v1.1.23/go.mod h1:rw6vrY9DpdJblwFwLuXCdy2kBHxMf6gGKWeetwfTSfc=
github.com/gethinode/mod-mermaid/v2 v2.0.1 h1:QcahIFCgmYAGsukQ0d+/L4IJtDwgXgv0WzilZ9poI9o=
github.com/gethinode/mod-mermaid/v2 v2.0.1/go.mod h1:kp3oUFAjKxuwzFbwxGWPEx5VQOu2ZHzcrwcNhDv08BI=
github.com/gethinode/mod-simple-datatables v1.0.0 h1:Dj4WGw12OkaimwkCpLn5Jhmd49dvNJW9O2P/W9F+HlQ=
github.com/gethinode/mod-simple-datatables v1.0.0/go.mod h1:K8T7fIdb8pMOB+OSW4A5lz5IW99+HyzcTgx764fvOGw=
github.com/gethinode/mod-simple-datatables v1.0.2 h1:zhqxHet3iLQWYCBbGROALpOY9zQlptMycFkz1Tto5bA=
@@ -328,6 +340,8 @@ github.com/gethinode/mod-simple-datatables v1.1.6 h1:7nPeRwHlYbmlNEg7fBV6FyXqpxW
github.com/gethinode/mod-simple-datatables v1.1.6/go.mod h1:bvMdmQFk4Hvyltf/QhMqUaApvPbIGTnbI3JLjOEh8go=
github.com/gethinode/mod-simple-datatables v1.1.7 h1:wCY2bWFUxRHWbWzb/zefCACooCSbDPYKrZthfn+qAgM=
github.com/gethinode/mod-simple-datatables v1.1.7/go.mod h1:FjkIEuxqeLLEqqDcz/nHAGHsRfV7EJP5Uhk4kYD8okY=
github.com/gethinode/mod-simple-datatables/v2 v2.0.1 h1:ZwdI96n8dM2VLwdM/x+Vj7sa4tfiAUnkDj39jn+vkXc=
github.com/gethinode/mod-simple-datatables/v2 v2.0.1/go.mod h1:mmf1AOxpHdSRQnW2k7ExVWKTyzbG2hpsDRssmyASNb8=
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=
@@ -420,6 +434,24 @@ github.com/gethinode/mod-utils/v3 v3.3.0 h1:qxuIavgL9LIyMhfCv8El+KL41rcNmQ8GaExn
github.com/gethinode/mod-utils/v3 v3.3.0/go.mod h1:9iHYWiDpDlcyrGAOHniubK/kziJYhTsw7UpGM+u4MOM=
github.com/gethinode/mod-utils/v3 v3.3.1 h1:0mHrUyIwSkbiQIUuXpnptYDIizkI7Ak39RTgoRMbJfY=
github.com/gethinode/mod-utils/v3 v3.3.1/go.mod h1:9iHYWiDpDlcyrGAOHniubK/kziJYhTsw7UpGM+u4MOM=
github.com/gethinode/mod-utils/v4 v4.5.0 h1:p6sDsMNA/KE2IK3SPdWjFX3cPAwPP5gDxzJu2tIWYl4=
github.com/gethinode/mod-utils/v4 v4.5.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.5.1 h1:VKmqi6+oC93noHUJ6HvFlelglHT/9+kXQjpJs7VtWko=
github.com/gethinode/mod-utils/v4 v4.5.1/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.6.0 h1:XQ7hiCrn15SzgkcD0j53XVZPQYeQKUxg/UUkr80pJ2w=
github.com/gethinode/mod-utils/v4 v4.6.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.7.0 h1:JaL/+APOwdEzAi6y174ZdwoguCdALyGiGX8qBVXXBdU=
github.com/gethinode/mod-utils/v4 v4.7.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.8.0 h1:/+M3EHqA8IzgBWXX1GLmT/xKbk2FVhUwmUfMnk/goF4=
github.com/gethinode/mod-utils/v4 v4.8.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.8.1 h1:XJULrx5VWO4wR69EsvfPp9bQoRvx8Y7GwnknpDbrDpg=
github.com/gethinode/mod-utils/v4 v4.8.1/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.8.2 h1:mhPmqdeCar2sOdVwKIyJl5la0RVBPtw4d29ncRKN3ek=
github.com/gethinode/mod-utils/v4 v4.8.2/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.8.3 h1:CSaFR/c1cGrSPpH5ZfrNOoMhAbNb8sw0SCRh9ZxCJTU=
github.com/gethinode/mod-utils/v4 v4.8.3/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.8.4 h1:ExD2zZCGonAmbIxC9wBU2dp+V4ZfvG46NWaz+LaV3iQ=
github.com/gethinode/mod-utils/v4 v4.8.4/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
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=
@@ -450,3 +482,5 @@ github.com/twbs/bootstrap v5.3.5+incompatible h1:6XrrFNMsiTTFcVTBf2886FO2XUNtwSE
github.com/twbs/bootstrap v5.3.5+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=
github.com/twbs/bootstrap v5.3.6+incompatible h1:efmXVyq839m5QQ0+JBUdQQ1TrmoBqvQ5kRhUueKsH+4=
github.com/twbs/bootstrap v5.3.6+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=
github.com/twbs/bootstrap v5.3.7+incompatible h1:ea1W8TOWZFkqSK2M0McpgzLiUQVru3bz8aHb0j/XtuM=
github.com/twbs/bootstrap v5.3.7+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=

View File

@@ -31,7 +31,6 @@
"use"
],
"classes": [
"%!s(<nil>)",
"active",
"align-items-center",
"align-self-center",
@@ -50,11 +49,9 @@
"btn-primary",
"checkbox",
"col",
"col-10",
"col-12",
"col-6",
"col-8",
"col-md-",
"col-md-2",
"col-md-6",
"col-md-8",
@@ -78,7 +75,7 @@
"fa-10x",
"fa-2x",
"fa-angle-left",
"fa-book-open",
"fa-chevron-right",
"fa-ellipsis",
"fa-face-frown",
"fa-fw",
@@ -92,10 +89,10 @@
"fixed-top",
"flex-column",
"flex-fill",
"flex-grow-1",
"footer",
"form-control",
"fs-3",
"fullscreen",
"fw-30",
"fw-bold",
"h-100",
@@ -111,12 +108,14 @@
"is-search",
"justify-content-center",
"justify-content-end",
"justify-content-md-start",
"justify-content-start",
"label",
"lead",
"link-bg-footer",
"link-secondary",
"main-content",
"m-auto",
"main",
"main-nav-toggler",
"me-auto",
"middle-bar",
@@ -156,19 +155,15 @@
"ps-1",
"pt-1",
"pt-4",
"pt-5",
"pt-md-0",
"pt-md-3",
"px-4",
"px-xxl-0",
"py-3",
"py-4",
"py-md-5",
"rounded",
"row",
"row-cols-1",
"row-cols-2",
"row-cols-md-2",
"row-cols-sm-3",
"search",
"search-input",
@@ -176,6 +171,7 @@
"section-cover",
"shadow",
"svg-inline--fa",
"text-",
"text-body",
"text-center",
"text-decoration-none",
@@ -197,7 +193,7 @@
"fab-linkedin",
"fab-medium",
"fas-angle-left",
"fas-book-open",
"fas-chevron-right",
"fas-ellipsis",
"fas-moon",
"fas-sun",

View File

@@ -45,7 +45,7 @@
{{ $comment := $val.comment }}
{{ if $val.deprecated }}
{{ $btn := printf `{{< release version="%s" short="true" button-size="sm" inline="true" release-state="deprecated" >}}` $val.deprecated }}
{{ $btn := printf `{{< release version="%s" short="true" button-size="xs" inline="true" release-state="deprecated" >}}` $val.deprecated }}
{{ with $val.alternative }}
{{ $comment = printf "%s **%s**. %s" $btn (T "alternativeFeature" .) $comment }}
{{ else }}
@@ -53,7 +53,7 @@
{{ end }}
{{ end }}
{{ if $val.release }}
{{ $comment = printf `{{< release version="%s" short="true" button-size="sm" inline="true" >}} %s` $val.release $comment }}
{{ $comment = printf `{{< release version="%s" short="true" button-size="xs" inline="true" >}} %s` $val.release $comment }}
{{ end }}
{{ $min := "" }}
@@ -125,7 +125,9 @@
{{ if in (slice "types" "both") $args.renderType }}
{{ $prefix := strings.Repeat $args.headerLevel "#" }}
{{ range $k, $v := $types.udt }}
{{ printf "%s %s %s" $prefix $k (T "type") | $args.page.RenderString }}
{{ $title := $k }}
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
{{ printf "%s %s %s" $prefix $title (T "type") | $args.page.RenderString }}
{{ partial "inline/args-table.html" (merge $params (dict "args" $v)) }}
{{ end }}
{{ end }}

View File

@@ -33,8 +33,7 @@
{{- with $args.tooltip }}{{ $tooltip = . }}{{ end -}}
{{- end -}}
{{- $href := .href -}}
{{- $href := $args.href -}}
{{ $linkType := or $args.linkType $args.type }}
{{ $buttonSize := or $args.buttonSize $args.size }}
{{ $toastID := or $args.toastId $args.toast }}
@@ -74,13 +73,21 @@
{{/* Main code */}}
{{ if not $error }}
{{- $btnClass := "" -}}
{{- if eq $linkType "button" }}
{{- $btnClass = printf "btn btn-%s%s" (cond $args.outline "outline-" "") $args.color -}}
{{- if ne $buttonSize "md" }}{{ $btnClass = printf "%s btn-%s" $btnClass $buttonSize }}{{ end -}}
{{- if in (slice "disabled" "active") $state }}{{ $btnClass = printf "%s %s" $btnClass $state }}{{ end -}}
{{- $btnClass = printf "%s position-relative %s" $btnClass $class }}
{{- end -}}
<a aria-label="{{ (or $label $title) | safeHTML }}"
{{ if ne $state "disabled" }}{{ with $href }}href="{{ . }}"{{ end }}{{ end -}}
{{- with $args.id }} id="{{ . }}"{{ end -}}
{{- with $target }} target="{{ . }}"{{ end }}{{ with $rel }} rel="{{ . }}"{{ end -}}
{{- with $toastID }} data-toast-target="{{ . }}"{{ end -}}
{{- with $args.clipboard }} data-clipboard="{{ . }}"{{ end -}}
{{- if eq $linkType "button" }} class="btn btn-{{ if $args.outline }}outline-{{ end }}{{ $args.color }} {{ if ne $buttonSize "md" }}btn-{{ $args.size }}{{ end }} position-relative {{ if in (slice "disabled" "active") $args.state }}{{ $args.state }}{{ end }} {{ $class -}}"
{{- with $btnClass }} class="{{ . }}"
{{ if eq $state "disabled" }}aria-disabled="true"{{ end -}}
{{- else }} class="btn btn-link link-{{ $args.color }} position-relative {{ $class }}"{{ end -}}
{{- with $tooltip }} data-bs-toggle="tooltip" data-bs-title="{{ . }}" data-bs-placement="{{ $args.placement }}"{{ end -}}

View File

@@ -30,6 +30,8 @@
{{- end -}}
{{/* Initialize global variables */}}
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{- $pretty := site.Params.main.internalLinks.pretty | default false -}}
{{/* Initialize local variables */}}
@@ -111,7 +113,7 @@
{{/* Limit list to max elements */}}
{{- $count := len $elements -}}
{{- $max := $count -}}
{{- $max = math.Min ($args.max | default $count) $count -}}
{{- $max = math.Min ((or $args.limit $args.max) | default $count) $count -}}
{{- if not $args.paginate -}}
{{- $elements = first $max $elements -}}
{{- end -}}
@@ -136,8 +138,7 @@
{{/* Main code */}}
{{- if and (not $error) (or (gt (len $elements) 0) $args.cards) -}}
<div class="{{- $args.wrapper -}}">
<div class="container-fluid {{ if $args.scroll }}card-container-wrapper{{ end }} p-0">
<div class="container-fluid {{ if $args.scroll }}card-container-wrapper{{ end }} p-0 {{ $args.wrapper }}">
<div class="row g-{{ $args.gutter -}}
{{- if $args.scroll }} d-flex flex-row flex-nowrap card-container scrollbar-horizontal pb-4 w-100 {{ end -}}
{{- if $args.bento }}{{ with $args.valign }} align-items-{{ . }}{{ end }}{{ else }} {{ $colGrid }}{{ end }}">
@@ -187,7 +188,7 @@
{{- if $paginator -}}
{{- if gt $paginator.TotalPages 1 -}}
<div class="pt-3">{{- partial "assets/pagination.html" (dict "page" $args.page "format" "terse") -}}</div>
<div class="pt-{{ $padding.y }}">{{- partial "assets/pagination.html" (dict "page" $args.page "format" "terse") -}}</div>
{{- end -}}
{{- else -}}
{{- if or (and (gt $count $max) $args.hrefTitle) (and $args.hrefForce $args.hrefTitle) -}}
@@ -195,8 +196,11 @@
{{- if and $pretty (not (hasSuffix $href "/" )) (not (strings.Contains $href "#")) -}}
{{- $href = printf "%s/" $href -}}
{{- end -}}
<a class="btn btn-outline-primary mt-4" href="{{ $href | safeURL }}" role="button">{{ $args.hrefTitle }}</a>
<div class="mt-{{ $padding.y }} w-100">
<a class="btn btn-outline-primary" href="{{ $href | safeURL }}" role="button">
{{ $args.hrefTitle }}
</a>
</div>
{{- end -}}
{{- end -}}
</div>
{{- end -}}

View File

@@ -62,7 +62,10 @@
</small></p>
{{- end -}}
{{/* Initialize arguments */}}
{{/* Initialize global variables */}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{/* Initialize local arguments */}}
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "card" "args" . "group" "partial") }}
{{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
@@ -148,19 +151,19 @@
{{ if $thumbnail }}
{{ if eq $args.orientation "horizontal-sm" }}
{{ $stack = "fa-1x" }}
{{ $col1 = "col-4 col-md-2" }}
{{ $col1 = "col-4 col-md-2 pe-0" }}
{{ $col2 = "col-8 col-md-10" }}
{{ else }}
{{ $col1 = "col-4" }}
{{ $col1 = "col-4 pe-0" }}
{{ $col2 = "col-8" }}
{{ end }}
{{ else if $icon }}
{{ if eq $args.orientation "horizontal-sm" }}
{{ $stack = "fa-1x" }}
{{ $col1 = "col-2 col-sm-3 col-md-4 col-xl-2" }}
{{ $col2 = "col-10 col-sm-9 col-md-8 col-xl-10" }}
{{ $col1 = "col-4 col-md-2 pe-0" }}
{{ $col2 = "col-8 col-md-10" }}
{{ else }}
{{ $col1 = "col-4" }}
{{ $col1 = "col-4 pe-0" }}
{{ $col2 = "col-8" }}
{{ end }}
@@ -168,7 +171,7 @@
{{/* Render horizontal card */}}
<div class="card {{ $colorStyle }}{{ $args.class }}">
<div class="row g-0 row-cols-2 h-100{{ if $args.button }} pb-5{{ end }}">
<div class="row g-0 row-cols-2 h-100{{ if $args.button }} pb-{{ $padding.y }}{{ end }}">
{{- if $thumbnail -}}
<div class="{{ $col1 }}">
{{ $fullHeight := "card-img-h100" }}
@@ -176,7 +179,7 @@
{{ if eq (lower (path.Ext $thumbnail)) ".svg" }}{{ $fullHeight = "" }}{{ $rounding = "" }}{{ end }}
{{- partial $args.hook (dict
"src" $thumbnail
"ratio" (or $ratio "1x1")
"ratio" (or $ratio "auto")
"portrait" $args.portrait
"sizes" $args.sizes
"anchor" $anchor
@@ -200,9 +203,22 @@
{{- end -}}
<div class="{{ $col2 }}">
<div class="card-body d-flex p-{{ $args.padding }} flex-column h-100 flex-fill">
{{ if $page }}<div>{{ partial "inline/card-caption.html" (dict "page" $page "keywords" $args.headerStyle "color" $args.color) }}</div>{{ end }}
{{ if $page }}
<div>{{ partial "inline/card-caption.html" (dict
"page" $page
"keywords" $args.headerStyle
"color" $args.color
) }}
</div>
{{ end }}
<div class="flex-fill">
{{- partial "inline/card-body.html" (dict "title" $title "href" $href "color" $args.color "description" $description "button" $args.button) -}}
{{- partial "inline/card-body.html" (dict
"title" $title
"href" $href
"color" $args.color
"description" $description
"button" $args.button
) -}}
</div>
{{ if $page }}<div>{{ partial "inline/card-caption.html" (dict "page" $page "keywords" $args.footerStyle "color" $args.color) }}</div>{{ end }}
{{ if and $href $args.button }}

View File

@@ -20,21 +20,23 @@
{{ end }}
{{/* Initialize local arguments */}}
{{ $dim := "" }}
{{ $dim := slice }}
{{ $default := dict "4x3" "1400x1050" "3x2" "1400x933" "1x1" "1400x1400" "16x9" "1400x788" "21x9" "1400x600" "auto" "1400" }}
{{/* Initialize dimensions data - stripping unsupported file extension */}}
{{ $config := "dimensions" }}
{{ with index site.Params "dam" }}{{ with index . "dimensions" }}{{ $config = . }}{{ end }}{{ end }}
{{ $config = path.Join (path.Dir $config) (path.BaseName $config) }}
{{ if not $args.err }}
{{/* Initialize dimensions data - stripping unsupported file extension */}}
{{ $config := "dimensions" }}
{{ with index site.Params "dam" }}{{ with index . "dimensions" }}{{ $config = . }}{{ end }}{{ end }}
{{ $config = path.Join (path.Dir $config) (path.BaseName $config) }}
{{ with index site.Data $config }}
{{ $matches := first 1 (where . "ratio" $args.ratio) }}
{{ if eq ($matches | len) 1 }}
{{ $dim = (index $matches 0).dimensions }}
{{ with index site.Data $config }}
{{ $matches := first 1 (where . "ratio" $args.ratio) }}
{{ if eq ($matches | len) 1 }}
{{ $dim = (index $matches 0).dimensions }}
{{ end }}
{{ end }}
{{ if not $dim }}{{ $dim = slice (index $default $args.ratio) }}{{ end }}
{{ end }}
{{ if not $dim }}{{ $dim = slice (index $default $args.ratio) }}{{ end }}
{{ return $dim }}

View File

@@ -51,6 +51,17 @@
{{- $width := index $target "width" -}}
{{- $data := index $target "data" -}}
{{ if and $args.imageWidth $args.imageHeight }}
{{ $height = $args.imageHeight }}
{{ $width = $args.imageWidth }}
{{ else if and $args.imageWidth $height $width }}
{{ $height = int (math.Round (mul (div (float $args.imageWidth) $width) $height)) }}
{{ $width = $args.imageWidth }}
{{ else if and $args.imageHeight $height $width }}
{{ $width = int (math.Round (mul (div (float $args.imageHeight) $height) $width)) }}
{{ $height = $args.imageHeight }}
{{ end }}
{{/* Add color modes */}}
{{- range $none := $modes -}}
{{- if ne $none $args.colorMode -}}
@@ -81,7 +92,12 @@
{{ with $width }} width="{{ . }}"{{ end -}}
{{ with $alt }} alt="{{ . }}"{{ end }}>
{{- else -}}
<svg class="{{ $args.class }}">
<svg class="{{ $args.class }}"
{{ if or $args.imageHeight $args.imageWidth }}
{{ with $width }} width="{{ . }}"{{ end }}
{{ with $height }} height="{{ . }}"{{ end }}
{{ end }}
>
<use href="{{ $fallbackURL }}#{{ $fileAnchor }}"></use>
</svg>
{{- end -}}

View File

@@ -83,7 +83,7 @@
{{ else }}
{{ warnf "Unsupported media type '%s': %q" (string $res.MediaType) $src -}}
{{ end }}
{{ else if $args.ratio }}
{{ else if and $args.ratio (ne $args.ratio "auto") }}
{{ $transform = "fill" }}
{{ $dims = partial "assets/helpers/GetDimension.html" (dict "ratio" $args.ratio) }}
{{ if not $dims }}{{ errorf "partial [assets/image.html] - Cannot find dimension data: %s" $args.ratio }}{{ end }}
@@ -148,12 +148,13 @@
)}}
{{ if $args.imageset }}
{{- $set = partial "assets/helpers/image-set.html" (dict
"src" $src
"img" $img
"dims" $dims
"anchor" $args.anchor
"transform" $transform
"hook" $hook
"src" $src
"img" $img
"dims" $dims
"anchor" $args.anchor
"transform" $transform
"hook" $hook
"include-width" true
) -}}
{{ end }}
{{ end }}

View File

@@ -16,8 +16,8 @@
)}}
{{ end }}
{{ if not $args.err }}
<div class="hero-image-container">
{{ if and (not $args.err) (or $args.image $args.icon) }}
<div class="hero-image-container {{ with $args.justify }}d-flex justify-content-center justify-content-md-{{ . }}{{ end }}">
{{ partial "assets/featured-illustration.html" (dict
"page" $args.page
"icon" $args.icon

View File

@@ -22,22 +22,21 @@
{{/* Initialize global variables */}}
{{ $arrangement := site.Params.modules.bookshop.title.arrangement }}
{{ if eq $args.order "first" }}{{ $arrangement = "above" }}{{ end }}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{/* Initialize local variables */}}
{{ $align := $args.align }}
{{ if and (not $align) (eq $args.orientation "stacked") }}{{ $align = "center" }}{{ end }}
{{ $class := $args.class }}
{{ $class := $args.class | default "" }}
{{ $scale := $args.illustration.width }}
{{ if $scale }}
{{ $class = trim (printf "%s col-%d " $class $scale) " " }}
{{ $class = trim (printf "%s col-%d text-center text-md-%s" $class $scale $align) " " }}
{{ else }}
{{ $class = trim (printf "%s col-8 col-md-12" $class) " " }}
{{ $scale = 12 }}
{{ end }}
{{ $iconWrapper := "col-6" }}
{{ if $args.center }}{{ $iconWrapper = "col-6 mx-auto text-center" }}{{ end }}
{{ $heading := cond (eq $args.orientation "horizontal") (merge $args.heading (dict "width" 12)) $args.heading }}
{{ $sizes := "100vw" }}
{{ if or (lt $args.width 12) (lt $scale 12) }}
@@ -58,79 +57,77 @@
{{ end }}
{{ if not $error }}
<div class="container-xxl {{ $args.padding }} d-flex flex-column">
{{ if and $args.breadcrumb (not page.IsHome) }}
<div class="d-flex flex-column align-items-{{ $align}} mb-4 pe-3">
{{ if site.Params.env_bookshop_live }}
<i class="text-white">Breadcrumb preview not supported</i>
{{ else }}
{{ partial "assets/breadcrumb.html" (dict "page" page) }}
{{ end }}
</div>
{{ end }}
{{ if and $args.breadcrumb (not page.IsHome) }}
<div class="d-flex flex-column align-items-{{ $align}} mb-{{ $padding.y }} pe-3">
{{ if site.Params.env_bookshop_live }}
<i class="text-white">Breadcrumb preview not supported</i>
{{ else }}
{{ partial "assets/breadcrumb.html" (dict "page" page) }}
{{ end }}
</div>
{{ end }}
{{ $imageWrapper := printf "mx-auto mx-md-0 %s" $class }}
{{ if eq $args.orientation "stacked" }}
{{ $imageWrapper = printf "pt-5 %s" $class }}
{{ if $args.center }}{{ $imageWrapper = printf "%s mx-auto" $imageWrapper }}{{ end }}
{{ if $args.icon }}{{ $imageWrapper = $iconWrapper }}{{ end }}
{{ end }}
{{ $sectionClass := cond (eq $args.orientation "stacked") "pt-5" "py-md-5" }}
{{ $imageWrapper := printf "mx-md-0 text-%s %s" $align $class }}
{{ $imageJustify := "" }}
{{ if eq $args.orientation "stacked" }}
{{ $imageWrapper = printf "pt-%d text-center %s" $padding.y $class }}
{{ if $args.icon }}{{ $imageWrapper = $iconWrapper }}{{ end }}
{{ else }}
{{ $imageJustify = $align }}
{{ end }}
{{ $illustration := partial $args.hook (dict
"page" $args.page
"image" $args.illustration.image
"icon" $args.illustration.icon
"anchor" $args.illustration.anchor
"mode" $args.illustration.mode
"ratio" $args.illustration.ratio
"sizes" $sizes
"title" (T "heroImage")
"wrapper" $imageWrapper
"class" "hero-image"
"image-overlay" $args.imageOverlay
) }}
{{ if $args.icon }}{{ $imageWrapper = $iconWrapper }}{{ end }}
{{ $title := partial "assets/section-title.html" (dict
"heading" $args.heading
"use-title" $args.useTitle
"size" $args.size
"links" $args.links
"type" (or $args.linkType $args.type)
"class" (printf "hero-title %s" $sectionClass)
"arrangement" $arrangement
) }}
{{ $illustration := partial $args.hook (dict
"page" $args.page
"image" $args.illustration.image
"icon" $args.illustration.icon
"anchor" $args.illustration.anchor
"mode" $args.illustration.mode
"ratio" $args.illustration.ratio
"sizes" $sizes
"title" (T "heroImage")
"wrapper" $imageWrapper
"class" "hero-image"
"image-overlay" $args.imageOverlay
"justify" $imageJustify
) }}
{{ if eq $args.orientation "stacked" }}
{{/* Render stacked component */}}
<div class="row flex-fill">
<div class="col col-12 col-md-{{ $args.width }}{{ if $args.center }} m-auto{{ end }}">
{{ $illustration | safeHTML }}
{{ $title | safeHTML }}
</div>
{{ $title := partial "assets/section-title.html" (dict
"heading" $heading
"use-title" $args.useTitle
"size" $args.size
"links" $args.links
"link-type" (or $args.linkType $args.type)
"class" "hero-title"
"arrangement" $arrangement
"justify" $args.justify
) }}
{{ if eq $args.orientation "stacked" }}
{{/* Render stacked component */}}
{{ $illustration | safeHTML }}
{{ $title | safeHTML }}
{{ else }}
{{/* Render horizontal component */}}
<div class="row row-cols-1 {{ if eq $args.orientation "stacked" }}row-cols-md-2 {{ end }} flex-grow-1">
{{ $order1 := "order-1 order-md-0" }}
{{ $order2 := "order-0 order-md-1" }}
{{ if eq $args.order "first" }}
{{ $order1 = "order-1" }}
{{ $order2 = "order-0" }}
{{ end }}
{{ $imgWidth := sub 12 (or $args.heading.width 12) }}
{{ if lt $imgWidth 1 }}{{ $imgWidth = 1 }}{{ end }}
<div class="col col-12 col-md-{{sub 12 $imgWidth }} {{ $order1 }} my-md-auto pt-{{ $padding.y }} pt-md-0 hero-content">
{{ $title | safeHTML }}
</div>
{{ else }}
{{/* Render horizontal component */}}
<div class="row row-cols-1 row-cols-md-2 flex-fill">
{{ $order1 := "order-1 order-md-0 " }}
{{ $order2 := "order-0 order-md-1" }}
{{ if eq $args.order "first" }}
{{ $order1 = "order-1" }}
{{ $order2 = "order-0" }}
{{ end }}
<div class="col col-12 col-md-{{ $args.width }} {{ $order1 }} my-md-auto pt-5 pt-md-0 hero-content">
{{ $title | safeHTML }}
</div>
<div class="col col-10 col-md-{{ sub 12 $args.width }}
{{ $order2 }}{{ if $args.center }} text-center{{ end }} my-md-auto align-self-end">
<div>
{{ $illustration | safeHTML }}
</div>
</div>
<div class="col col-8 col-md-{{ $imgWidth }} {{ $order2 }} m-auto my-md-auto align-self-end">
{{ $illustration | safeHTML }}
</div>
{{ end }}
</div>
</div>
{{ end }}
{{ end }}

View File

@@ -38,6 +38,8 @@
"page" $args.page
"ratio" $args.ratio
"portrait" $args.portrait
"image-width" $args.imageWidth
"image-height" $args.imageHeight
"wrapper" $args.wrapper
"class" $args.class
"title" $args.title
@@ -62,7 +64,10 @@
{{- range $suffix := $modes -}}
{{- $image := printf "%s-%s%s" $base $suffix $ext -}}
{{- $params = merge $params (dict "src" $image) -}}
{{- $params = merge $params (dict
"src" $image
"class" (printf "%s d-none-%s" $args.class (cond (eq $suffix "dark") "light" "dark"))
) -}}
{{- partial "assets/helpers/image-definition.html" $params -}}
{{- end -}}
{{ else }}

View File

@@ -21,6 +21,7 @@
{{/* Initialize global arguments */}}
{{- $breakpoint := page.Scratch.Get "breakpoint" -}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{- define "_partials/links-content.html" -}}
{{ $links := .links }}
@@ -93,10 +94,10 @@
{{ end }}
{{ end }}
<div class="hstack d-none d-{{ $breakpoint.current }}-block {{ if gt (len $args.links) 1 }} gap-5{{ end }} justify-content-{{ $args.align }} pt-5 pt-md-3">
<div class="hstack d-none d-{{ $breakpoint.current }}-block {{ if gt (len $args.links) 1 }} gap-5{{ end }} justify-content-{{ $args.align }} pt-{{ $padding.y }}">
{{ partial "links-content.html" (dict "links" $args.links "justify" $args.justify "type" $args.linkType "li" false) }}
</div>
<div class="d-{{ $breakpoint.current }}-none">
<div class="d-{{ $breakpoint.current }}-none pt-{{ $padding.y }}">
{{ partial "links-content.html" (dict "links" $args.links "justify" $args.justify "type" $args.linkType "li" true) }}
</div>

View File

@@ -6,16 +6,16 @@
*/}}
{{/* Initialize arguments */}}
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "nav-item" "args" . "group" "partial") }}
{{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
{{- $args := partial "utilities/InitArgs.html" (dict "structure" "nav-item" "args" . "group" "partial") -}}
{{- if or $args.err $args.warnmsg -}}
{{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/nav-item.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg)
"file" page.File
)}}
{{ end }}
) -}}
{{- end -}}
{{/* Initialize local arguments */}}
{{- $parentID := or $args.parentId $args.parentID -}}
@@ -36,16 +36,16 @@
"class" "hero-image"
"image-overlay" $args.imageOverlay
) }}
{{ else }}
{{ $illustration = partial $args.hook (dict "page" $args.page "image" $args.illustration) }}
{{ end }}
{{- else -}}
{{- $illustration = partial $args.hook (dict "page" $args.page "image" $args.illustration) -}}
{{- end -}}
{{/* Main code */}}
{{ if not $args.err }}
{{ if eq $type "accordion" }}
{{- if not $args.err -}}
{{- if eq $type "accordion" -}}
<div class="accordion-item{{ if $args.show }} show{{ end }}{{ with $args.class }} {{ . }}{{ end }}">
{{- with $title -}}
<h2 id="accordion-{{ $parentID }}-heading-{{ $args.id }}" class="accordion-header m-0" >
<h2 id="accordion-{{ $parentID }}-heading-{{ $args.id }}" class="accordion-header m-0">
<button
class="accordion-button collapsed {{ if $args.disabled }} text-secondary{{ end }}"
type="button"
@@ -55,14 +55,14 @@
aria-controls="accordion-{{ $parentID }}-item-{{ $args.id }}"
{{ if $args.disabled }} disabled{{ end }}
>
{{ if $illustration }}
{{- if $illustration -}}
<div class="row">
<div class="col-3 col-sm-2 my-auto">{{ $illustration | safeHTML }}</div>
<div class="col-9 col-sm-10 fs-6 fs-sm-5 my-auto">{{ . }}</div>
</div>
{{ else }}
{{- else }}
{{ . }}
{{ end }}
{{ end -}}
</button>
</h2>
{{- end -}}
@@ -72,22 +72,19 @@
aria-labelledby="{{ $parentID }}-heading-{{ $args.id }}"
data-bs-parent="#accordion-{{ $parentID }}"
>
<div class="accordion-body">{{- $args.body | safeHTML -}}</div>
<div class="accordion-body">{{ $args.body | $args.page.RenderString | safeHTML }}</div>
</div>
</div>
{{ else }}
{{- else -}}
<div
id="{{ $parentID }}-{{ $args.id }}"
class="tab-pane{{ if $args.show }} active {{ if $args.fade }}show{{ end }}{{ end }} {{ if $args.fade }}fade{{ end }}{{ with $args.class }} {{ . }}{{ end }}"
class="tab-pane{{ if $args.show }} active{{ if $args.fade }} show{{ end }}{{ end }}{{ if $args.fade }} fade{{ end }}{{ with $args.class }} {{ . }}{{ end }}"
role="tabpanel"
aria-labelledby="{{ $parentID }}-btn-{{ $args.id }}"
tabindex="0"
data-header="{{ $title }}"
{{ if $args.show }}data-show-id="{{ $args.id }}"{{ end }}
data-has-content="{{ gt (len $args.body) 0 }}"
{{ if $args.disabled }} data-disabled-id="{{ $args.id }}"{{ end }}
>
{{ $args.body }}
{{ $args.body | $args.page.RenderString | safeHTML }}
</div>
{{ end }}
{{ end }}
{{- end -}}
{{- end -}}

View File

@@ -33,7 +33,8 @@
<div class="d-lg-none">
<div id="accordion-{{ $id }}" class="accordion mb-3{{ with $args.class }} {{ . }}{{ end }} nav-callout">
{{- range $index, $item := $args.list -}}
{{ partial "assets/nav-item.html" (dict
{{ partial "assets/nav-item.html" (dict
"page" $args.page
"id" $index
"parentID" $id
"fade" false
@@ -41,7 +42,7 @@
"class" $args.class
"body" (or $item.Description $item.Content)
"show" false
"disabled" false
"disabled" $item.disabled
"item_type" "accordion"
"illustration" (partial "utilities/GetIllustration.html" (dict "item" $item "size" "col-12"))
)
@@ -63,11 +64,14 @@
{{- range $args.list }}{{ $titles = $titles | append .Title }} {{ end -}}
{{- if reflect.IsSlice $args.navTitles }}{{ $titles = $titles | append $args.navTitles }}{{ end -}}
{{- range $index, $item := $titles -}}
{{ $show := eq $index 0}}
{{ $itemID := printf "%s-btn-%d" $args.id $index -}}
{{- $show := eq $index 0 -}}
{{- if $args.navShow }}{{ $show = eq $args.navShow $itemID }}{{ end -}}
{{- $disabled := in $args.navDisabled $itemID -}}
<li class="nav-item" role="presentation">
<button
class="nav-link {{ if not $wrap }} text-nowrap{{ end }}{{ if $show }} active{{ end }}"
id="nav-{{ $id }}-btn-{{ $index }}"
class="nav-link{{ if not $wrap }} text-nowrap{{ end }}{{ if $show }} active{{ end }}{{ if $disabled }} disabled{{ end }}"
id="{{ $itemID }}"
data-bs-toggle="pill"
data-bs-target="#{{ $id }}-{{ $index }}"
type="button"
@@ -81,7 +85,7 @@
{{ end -}}
</ul>
<div class="tab-content {{ if eq $type "tabs" }}border border-bottom-0 p-3{{ else if $args.vertical }}ms-3{{ else }}mt-3{{ end }}">
<div class="tab-content {{ if eq $type "tabs" }}border p-3{{ else if $args.vertical }}ms-3{{ else }}mt-3{{ end }}">
{{- range $index, $item := $args.list -}}
{{- $header := $item.Title -}}
{-{ $body := $item.Content -}}

View File

@@ -79,6 +79,9 @@
)}}
{{ end }}
{{/* Initialize global variables */}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{/* Initialize local arguments */}}
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
{{- $pretty := site.Params.main.internalLinks.pretty | default false }}
@@ -114,48 +117,16 @@
{{- $enableLanguage := or $page.IsTranslated hugo.IsMultilingual -}}
{{- $horizontal := default false site.Params.navigation.horizontal -}}
{{- $logo := $args.logo | default site.Params.navigation.logo -}}
{{- $logoLight := "" -}}
{{- $logoDark := "" -}}
{{- if $enableDarkMode -}}
{{ $ext := path.Ext $logo -}}
{{- $ext := path.Ext $logo -}}
{{- $base := strings.TrimSuffix $ext $logo -}}
{{- range $suffix := $modes -}}
{{- $base = strings.TrimSuffix (printf "-%s" $suffix) $base -}}
{{- end -}}
{{- $logoLight = printf "%s-light%s" $base $ext -}}
{{- $logoDark = printf "%s-dark%s" $base $ext -}}
{{- $light := fileExists (path.Join "/static" $logoLight) -}}
{{- $dark := fileExists (path.Join "/static" $logoDark) -}}
{{- if and $light (not $dark) -}}
{{- warnf "partial [assets/navbar.html] - Missing file: %s" $logoDark -}}
{{- $logoLight = "" -}}
{{- $logoDark = "" -}}
{{- end -}}
{{- if and (not $light) $dark -}}
{{- warnf "partial [assets/navbar.html] - Missing file: %s" $logoLight -}}
{{- $logoLight = "" -}}
{{- $logoDark = "" -}}
{{- end -}}
{{- if not (or $light $dark) -}}
{{- $logoLight = "" -}}
{{- $logoDark = "" -}}
{{- end -}}
{{- end -}}
{{ if $logo }}{{ $logo = partial "utilities/URLJoin.html" (dict "base" $baseURL "path" $logo) }}{{ end }}
{{ if $logoLight }}{{ $logoLight = partial "utilities/URLJoin.html" (dict "base" $baseURL "path" $logoLight) }}{{ end }}
{{ if $logoDark }}{{ $logoDark = partial "utilities/URLJoin.html" (dict "base" $baseURL "path" $logoDark) }}{{ end }}
{{- $title := site.Title -}}
{{- if $args.title -}}
{{- $title = $args.title -}}
{{- if not $args.logo }}{{ $logo = "" }}{{ end -}}
{{- end -}}
{{ $logo := "" }}
{{ with $args.logo | default site.Params.navigation.logo }}
{{ $logo = partial "assets/image.html" (dict "src" . "loading" "eager" "title" $title "image-height" 30) }}
{{ end }}
{{- $pre := $args.pre -}}
{{- $post := $args.post -}}
{{- $class := $args.class -}}
@@ -171,7 +142,7 @@
{{/* Main code */}}
<div class="container-fluid {{ if $args.fixed }}fixed-top{{ else if $overlay }}navbar-overlay{{ end }} p-0{{ with $class }} {{ . }}{{ end }}">
{{- partial "assets/page-alert.html" (dict "page" $page) -}}
<nav class="navbar p-4
<nav class="navbar px-{{ $padding.x }} py-{{ $padding.y }}
{{- if not $overlay }}{{ with $color }} bg-{{ . }}{{ end }}{{ end -}}
{{ if $args.fixed }} navbar-fixed-top{{ end }} navbar-expand-{{ $args.breakpoint -}}
{{ if $contrast }} navbar-contrast{{ end }}"
@@ -198,18 +169,9 @@
</div>
{{/* Insert the brand logo or name */}}
<div class="{{ if (or $logoLight $logo) }}mx-auto{{ else }}flex-grow-1 flex-{{ $args.breakpoint }}-grow-0{{ end }}">
<div class="{{ if $logo }}mx-auto{{ else }}flex-grow-1 flex-{{ $args.breakpoint }}-grow-0{{ end }}">
<a class="navbar-brand" href="{{ site.Home.RelPermalink }}" aria-label="{{ T "home" }}">
{{- if (and $logoLight $logoDark) -}}
{{ $width := partial "utilities/GetWidth.html" (dict "path" $logoLight "height" 30) }}
<img src="{{if $absoluteURL }}{{ absURL $logoLight }}{{ else }}{{ $logoLight }}{{ end }}" class="d-none-inline-dark" alt="{{ $title }} logo" height="30"{{ with $width }} width="{{ . }}"{{ end }}>
<img src="{{if $absoluteURL }}{{ absURL $logoDark }}{{ else }}{{ $logoDark }}{{ end }}" class="d-none-inline-light" alt="{{ $title }} logo" height="30"{{ with $width }} width="{{ . }}"{{ end }}>
{{- else if $logo -}}
{{ $width := partial "utilities/GetWidth.html" (dict "path" $logo "height" 30) }}
<img src="{{if $absoluteURL }}{{ absURL $logo }}{{ else }}{{ $logo }}{{ end }}" alt="{{ $title }} logo" height="30"{{ with $width }} width="{{ . }}"{{ end }}>
{{- else -}}
<div class="navbar-title fw-bold h-100">{{ $title }}</div>
{{- end -}}
{{- with $logo -}}{{ . }}{{- else -}}<div class="navbar-title fw-bold h-100">{{ $title }}</div>{{- end -}}
</a>
</div>

View File

@@ -14,62 +14,99 @@
)}}
{{ end }}
{{/* Initialize global arguments */}}
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{/* Initialize local arguments */}}
{{- $size := (or .size site.Params.modules.bookshop.title.size) | default 4 -}}
{{- $arrangement := (or .arrangement site.Params.modules.bookshop.title.arrangement) | default "above" -}}
{{- $headingStyle := (or .headingStyle site.Params.modules.bookshop.title.headingStyle) | default "display" -}}
{{- $bodyStyle := (or .bodyStyle site.Params.modules.bookshop.title.bodyStyle) | default "lead text-muted" -}}
{{- $size := (or $args.size site.Params.modules.bookshop.title.size) | default 4 -}}
{{- $arrangement := (or $args.arrangement site.Params.modules.bookshop.title.arrangement) | default "above" -}}
{{- $headingStyle := (or $args.headingStyle site.Params.modules.bookshop.title.headingStyle) | default "display" -}}
{{- $contentStyle := (or $args.contentStyle site.Params.modules.bookshop.title.contentStyle) | default "lead text-muted" -}}
{{- $preheading := $args.heading.preheading }}
{{- $title := $args.heading.title }}
{{ if and (not $preheading) $args.section }}
{{ $preheading = page.CurrentSection.Name }}
{{ end }}
{{- $width := $args.heading.width | default 12 -}}
{{- $width = cond (lt $width 12) (printf "col-12 col-%s-%d" $breakpoint.current $width) "" }}
{{ if and (not $preheading) $args.useSection }}{{ $preheading = page.CurrentSection.Name }}{{ end }}
{{ $justify := cond (eq $args.justify "start") "" (cond (eq $args.justify "end") "me-0" "mx-auto") }}
{{ if site.Params.main.titleCase }}
{{ $preheading = title $preheading }}
{{ $title = title $title }}
{{ end }}
{{- $breakpoint := page.Scratch.Get "breakpoint" -}}
{{ define "_partials/assets/section-title-header.html" }}
{{ $headingStyle := .headingStyle }}
{{ if (index . "use-title") }}
{{ $title := .title | page.RenderString }}
{{ $label := trim (replaceRE "\r\n?|\n" " " ($title | plainify)) " " }}
<h1 id="{{ anchorize .title }}" {{ if ne $title $label }}aria-label="{{ $label }}"{{ end -}}
class="{{ $headingStyle }}-{{ .size }}{{ with .color }} text-{{ . }}{{ end }} pt-1">{{ .title | page.RenderString | safeHTML }}</h1>
class="{{ $headingStyle }}-{{ .size }}{{ with .color }} text-{{ . }}{{ end }} pt-1">
{{ .title | page.RenderString | safeHTML }}
</h1>
{{ else }}
<div id="{{ anchorize .title }}" class="{{ $headingStyle }}-{{ .size }}{{ with .color }} text-{{ . }}{{ end }} pt-1">{{ .title | page.RenderString | safeHTML }}</div>
<div id="{{ anchorize .title }}" class="{{ $headingStyle }}-{{ .size }}{{ with .color }} text-{{ . }}{{ end }} pt-1">
{{ .title | page.RenderString | safeHTML }}
</div>
{{ end }}
{{ end }}
{{ $header := "" }}
{{ if $title }}
{{ $header = partial "assets/section-title-header.html" (dict
"use-title" $args.useTitle
"title" $title
"headingStyle" $headingStyle
"color" $args.color
"size" $size
) }}
{{ end }}
{{ $links := "" }}
{{ if $args.links }}
{{ $links = partial "assets/links.html" (dict
"page" $args.page
"links" $args.links
"align" $args.heading.align
"justify" $args.justify
"link-type" $args.linkType
) }}
{{ end }}
{{ $imgArgs := dict
"page" page
"icon" $args.icon
"image" $args.image
"anchor" $args.anchor
"mode" true
"sizes" "20vw"
"title" (T "heroImage")
"mode" $args.mode
}}
<!-- Main code -->
<div class="text-{{ $args.heading.align }}{{ with $args.class }} {{ . }}{{ end }} col col-12 col-md-{{ $args.heading.width }}">
<div class="text-{{ $args.heading.align }}{{ with $justify }} {{ . }}{{ end }}{{ with $args.class }} {{ . }}{{ end }}{{ with $width }} {{ . }}{{ end }} py-{{ $padding.y }}">
{{ if and $preheading (eq $arrangement "first") }}
<div class="container-fluid">
<div class="row">
<div class="col-12 col-{{ $breakpoint.prev }}-12 col-{{ $breakpoint.next }}-2 p-0">
{{ with $preheading }}<p class="preheading {{ if ne $args.color "body" }}text-{{ $args.color }}{{ else }}text-primary{{ end }}">{{ . | page.RenderString | safeHTML }}</p>{{ end }}
{{ with $preheading }}
<p class="preheading {{ if ne $args.color "body" }}text-{{ $args.color }}{{ else }}text-primary{{ end }}">
{{ . | page.RenderString | safeHTML }}
</p>
{{ end }}
</div>
<div class="col-12 col-{{ $breakpoint.prev }}-8 col-{{ $breakpoint.current }}-9 col-{{ $breakpoint.next }}-8 p-0">
{{ with $title }}{{ partial "assets/section-title-header.html" (dict "use-title" $args.useTitle "title" . "headingStyle" $headingStyle "color" $args.color "size" $size) }}{{ end }}
{{ with $args.heading.content }}<div class="{{ $bodyStyle }} pt-4">{{ . | page.RenderString | safeHTML }}</div>{{ end }}
{{ if .links }}{{ partial "assets/links.html" (dict "page" $args.page "links" $args.links "align" $args.heading.align "justify" $args.justify "link-type" $args.type) }}{{ end }}
{{ $header }}
{{ with $args.heading.content }}
<div class="{{ $contentStyle }} pt-{{ $padding.y }}">{{ . | page.RenderString | safeHTML }}</div>
{{ end }}
{{ $links }}
</div>
<div class="col-12 col-{{ $breakpoint.prev }}-4 col-{{ $breakpoint.current }}-3 col-{{ $breakpoint.next }}-2 p-0 ps-{{ $breakpoint.prev }}-4">
{{ partial "assets/featured-illustration.html" (dict
"page" page
"icon" $args.icon
"image" $args.image
"anchor" $args.anchor
"mode" true
"sizes" "20vw"
"wrapper" (printf "col-4 col-%s-12 mx-auto pt-4 pt-%s-0" $breakpoint.prev $breakpoint.prev)
"title" (T "heroImage")
"mode" $args.mode
) }}
{{ $wrapper := (printf "col-4 col-%s-12 mx-auto pt-%d pt-%s-0" $breakpoint.prev $padding.y $breakpoint.prev) }}
{{ partial "assets/featured-illustration.html" (merge $imgArgs (dict "wrapper" $wrapper)) }}
</div>
</div>
</div>
@@ -79,31 +116,29 @@
<div class="container-fluid">
<div class="row p-0">
<div class="col-12 col-{{ $breakpoint.current }}-10 p-0">
{{ with $preheading }}<p class="preheading {{ if ne $args.color "body" }}text-{{ $args.color }}{{ else }}text-primary{{ end }}">{{ . | page.RenderString | safeHTML }}</p>{{ end }}
{{ with $title }}{{ partial "assets/section-title-header.html" (dict "use-title" $args.useTitle "title" . "headingStyle" $headingStyle "color" $args.color "size" $size) }}{{ end }}
{{ with $args.heading.content }}<div class="{{ $bodyStyle }} pt-4">{{ . | page.RenderString | safeHTML }}</div>{{ end }}
{{ if .links }}{{ partial "assets/links.html" (dict "page" $args.page "links" $args.links "align" $args.heading.align "justify" $args.justify "link-type" $args.type) }}{{ end }}
{{ with $preheading }}
<p class="preheading {{ if ne $args.color "body" }}text-{{ $args.color }}{{ else }}text-primary{{ end }}">
{{ . | page.RenderString | safeHTML }}
</p>
{{ end }}
{{ $header }}
{{ with $args.heading.content }}<div class="{{ $contentStyle }} pt-{{ $padding.y }}">{{ . | page.RenderString | safeHTML }}</div>{{ end }}
{{ $links }}
</div>
<div class="col-12 col-{{ $breakpoint.current }}-2 p-0 pt-2 text-center">
{{ partial "assets/featured-illustration.html" (dict
"page" page
"icon" $args.icon
"image" $args.image
"anchor" $args.anchor
"mode" true
"ratio" $args.ratio
"sizes" "20vw"
"wrapper" "mx-auto"
"title" (T "heroImage")
"mode" $args.mode
) }}
{{ $wrapper := (printf "col-4 col-%s-12 mx-auto pt-%d pt-%s-0" $breakpoint.prev $padding.y $breakpoint.prev) }}
{{ partial "assets/featured-illustration.html" (merge $imgArgs (dict "ratio" $args.ratio "wrapper" "mx-auto")) }}
</div>
</div>
</div>
{{ else }}
{{ with $preheading }}<p class="preheading {{ if ne $args.color "body" }}text-{{ $args.color }}{{ else }}text-primary{{ end }}">{{ . | page.RenderString | safeHTML }}</p>{{ end }}
{{ with $title }}{{ partial "assets/section-title-header.html" (dict "use-title" $args.useTitle "title" . "headingStyle" $headingStyle "color" $args.color "size" $size) }}{{ end }}
{{ with $args.heading.content }}<div class="{{ $bodyStyle }} pt-4">{{ . | page.RenderString | safeHTML }}</div>{{ end }}
{{ if $args.links }}{{ partial "assets/links.html" (dict "page" $args.page "links" $args.links "align" $args.heading.align "justify" $args.justify "link-type" $args.type) }}{{ end }}
{{ with $preheading }}
<p class="preheading {{ if ne $args.color "body" }}text-{{ $args.color }}{{ else }}text-primary{{ end }}">
{{ . | page.RenderString | safeHTML }}
</p>
{{ end }}
{{ $header }}
{{ with $args.heading.content }}<div class="{{ $contentStyle }} pt-{{ $padding.y }}">{{ . | page.RenderString | safeHTML }}</div>{{ end }}
{{ $links }}
{{ end }}
</div>

View File

@@ -45,7 +45,7 @@
{{- end -}}
<div class="py-3 text-body-secondary hstack gap-1">
{{ T "shareLink" "" }}
{{ T "shareLink" " " }}
{{- range $index, $item := $list -}}
{{- $url := $item.url -}}
{{- $url = replace $url "{url}" $page.Permalink -}}

View File

@@ -13,7 +13,6 @@
{{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/timeline.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg)
"file" page.File
@@ -28,7 +27,12 @@
{{- $page := $args.page -}}
{{- $data := partial "utilities/GetI18nData.html" (dict "page" $page "data" $args.data) }}
{{ if not $data -}}
{{ errorf "Invalid timeline data '%s': %s" $page.File -}}
{{ partial "utilities/LogErr.html" (dict
"partial" "assets/timeline.html"
"msg" "Invalid arguments"
"details" (slice (printf "Invalid timeline data '%s'" $args.data))
"file" page.File
)}}
{{ $error = true }}
{{ end -}}
{{ $background := partial "utilities/GetBackgroundStyle.html" (dict "background" $args.background) }}
@@ -80,7 +84,10 @@
{{ $datestr := (partial "utilities/date.html" (dict "date" $date "format" "long")) -}}
<p class="mb-0"><small class="text-body-secondary text-uppercase">{{ $datestr -}}</small></p>
{{ end }}
<p class="mt-3 mb-0">{{ $content | $page.RenderString }}</p>
<p class="mt-3 mb-0">
<!-- TODO: $page.RenderString causes an out of bounds error -->
{{ $content | markdownify }}
</p>
</div>
</div>
</div>
@@ -95,9 +102,9 @@
"use-title" $args.useTitle
"size" $args.size
"links" $args.links
"type" (or $args.linkType $args.type)
"class" "pb-4"
"link-type" (or $args.linkType $args.type)
"arrangement" $arrangement
"justify" $args.justify
) }}
{{ end }}

View File

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

@@ -33,10 +33,6 @@
{{ end }}
{{ else }}
{{- $thumbnail = $page.Params.Thumbnail -}}
{{ if or $page.Params.photoCredits $page.Params.photoSource }}
{{ warnf "DEPRECATED: frontmatter variables `photoCredits` and `photoSource` have been deprecated in release v0.18: %s" $page.RelPermalink }}
{{ end }}
{{- if and $page.Params.photoCredits $page.Params.PhotoSource }}{{ $credits = printf (T "photoFull") $page.Params.photoCredits $page.Params.PhotoSource }}{{ end -}}
{{- end -}}
{{ if $thumbnail -}}

View File

@@ -35,21 +35,23 @@
{{ $blocks = $blocks | append (dict
"_bookshop_name" "hero"
"heading" (dict "title" $pageTitle "align" $page.Site.Params.modules.bookshop.hero.align)
"breadcrumb" $breadcrumb
"background" (dict "backdrop" $page.Site.Params.modules.bookshop.hero.backdrop)
"overlay-mode" $page.Site.Params.modules.bookshop.hero.overlayMode
"heading" (dict "title" $pageTitle "align" $page.Site.Params.modules.bookshop.hero.align)
"breadcrumb" $breadcrumb
"background" (dict "backdrop" $page.Site.Params.modules.bookshop.hero.backdrop)
"overlay-mode" $page.Site.Params.modules.bookshop.hero.overlayMode
"justify" "start"
)}}
{{ if eq $page.Kind "section" }}
{{ $blocks = $blocks | append (dict
"_bookshop_name" "articles"
"hide-empty" false
"input" (dict "section" $page.Section "reverse" true "sort" "date" "nested" true)
"cols" 3
"padding" "0"
"paginate" true
"scroll" false
"hide-empty" false
"input" (dict "section" $page.Section "reverse" true "sort" "date" "nested" true)
"cols" 3
"padding" "0"
"paginate" true
"scroll" false
"justify" "start"
)}}
{{ end }}

View File

@@ -26,27 +26,27 @@
{{- $class := partial "utilities/GetArgParent" (dict "page" . "arg" "class" "merge" true) -}}
{{- $color := partial "utilities/GetArgParent" (dict "page" . "arg" "color") -}}
{{- $description := trim .Inner " \r\n" | .Page.RenderString | safeHTML -}}
{{- $footer := partial "utilities/GetArgParent" (dict "page" . "arg" "footer-style") | partial "utilities/GetArgParent" (dict "page" . "arg" "footer") | default "none" -}}
{{- $gutter := partial "utilities/GetArgParent" (dict "page" . "arg" "gutter") | default "0" -}}
{{- $header := partial "utilities/GetArgParent" (dict "page" . "arg" "header-style") | partial "utilities/GetArgParent" (dict "page" . "arg" "header") | default "full" -}}
{{- $footer := or (partial "utilities/GetArgParent" (dict "page" . "arg" "footer-style")) (partial "utilities/GetArgParent" (dict "page" . "arg" "footer")) -}}
{{- $gutter := partial "utilities/GetArgParent" (dict "page" . "arg" "gutter") -}}
{{- $header := or (partial "utilities/GetArgParent" (dict "page" . "arg" "header-style")) (partial "utilities/GetArgParent" (dict "page" . "arg" "header")) -}}
{{- $icon := .Get "icon" -}}
{{- $iconRounded := partial "utilities/GetArgParent" (dict "page" . "arg" "icon-rounded") | partial "utilities/GetArgParent" (dict "page" . "arg" "iconRounded") | default false -}}
{{- $align := partial "utilities/GetArgParent" (dict "page" . "arg" "align") | default "start" -}}
{{- $style := partial "utilities/GetArgParent" (dict "page" . "arg" "icon-style") | partial "utilities/GetArgParent" (dict "page" . "arg" "style") | default "" -}}
{{- $subtle := partial "utilities/GetArgParent" (dict "page" . "arg" "subtle") | default false -}}
{{- $iconRounded := or (partial "utilities/GetArgParent" (dict "page" . "arg" "icon-rounded")) (partial "utilities/GetArgParent" (dict "page" . "arg" "iconRounded")) -}}
{{- $align := partial "utilities/GetArgParent" (dict "page" . "arg" "align") -}}
{{- $style := or (partial "utilities/GetArgParent" (dict "page" . "arg" "icon-style")) (partial "utilities/GetArgParent" (dict "page" . "arg" "style")) -}}
{{- $subtle := partial "utilities/GetArgParent" (dict "page" . "arg" "subtle") -}}
{{- $loading := .Get "loading" -}}
{{- $orientation := partial "utilities/GetArgParent" (dict "page" . "arg" "orientation") | default "stacked" -}}
{{- $padding := partial "utilities/GetArgParent" (dict "page" . "arg" "padding") | default 3 -}}
{{- $ratio := partial "utilities/GetArgParent" (dict "page" . "arg" "ratio") | default "" -}}
{{- $orientation := partial "utilities/GetArgParent" (dict "page" . "arg" "orientation") -}}
{{- $padding := partial "utilities/GetArgParent" (dict "page" . "arg" "padding") -}}
{{- $ratio := partial "utilities/GetArgParent" (dict "page" . "arg" "ratio") -}}
{{- $page := .Page -}}
{{- $path := .Get "path" -}}
{{- $thumbnail := .Get "thumbnail" -}}
{{- $anchor := .Get "anchor" -}}
{{- $title := .Get "title" -}}
{{- $button := partial "utilities/GetArgParent" (dict "page" . "arg" "button") | default false -}}
{{- $linkType := partial "utilities/GetArgParent" (dict "page" . "arg" "link-type") | partial "utilities/GetArgParent" (dict "page" . "arg" "buttonType") | default "" -}}
{{- $cols := partial "utilities/GetArgParent" (dict "page" . "arg" "cols") | default 3 -}}
{{- $scroll := partial "utilities/GetArgParent" (dict "page" . "arg" "scroll") | default false -}}
{{- $button := partial "utilities/GetArgParent" (dict "page" . "arg" "button") -}}
{{- $linkType := or (partial "utilities/GetArgParent" (dict "page" . "arg" "link-type")) (partial "utilities/GetArgParent" (dict "page" . "arg" "buttonType")) -}}
{{- $cols := partial "utilities/GetArgParent" (dict "page" . "arg" "cols") -}}
{{- $scroll := partial "utilities/GetArgParent" (dict "page" . "arg" "scroll") -}}
{{- $wrapper := "" -}}
{{/* Override arguments */}}
@@ -66,7 +66,6 @@
{{ $wrapper = printf "card-block-%d p-0" $cols }}
{{ end }}
{{/* Main code */}}
{{ if not $error -}}
{{/* Render card */}}

View File

@@ -44,9 +44,9 @@
{{- if eq $lang "bookshop" }}
{{ $type = "bookshop" }}
{{ $frontmatter := slice "yml" "yaml" "toml" "json" }}
{{ $inputRE := findRESubmatch `\x60\x60\x60(?:yml|yaml|json|toml)(\r\n|\r|\n)([\s\S]*?)\x60\x60\x60` $content 1}}
{{ $inputRE := findRESubmatch `\x60\x60\x60(?:yml|yaml|json|toml)(\r\n|\r|\n)([\s\S]*?)\x60\x60\x60` $content 1 }}
{{ if and $inputRE (eq (len (index $inputRE 0)) 3) }}
{{ $lang = trim (index (split $content "\n") 1) "\x60" }}
{{ $lang = (trim (index (split $content "\n") 2) "\x60") | default "yml" }}
{{ $content = index (index $inputRE 0) 2 }}
{{ $data = index (unmarshal $content) 0 }}
{{ $component_name := (index $data "_bookshop_name") }}

View File

@@ -73,7 +73,7 @@
</ul>
<div class="border-start border-end border-bottom mb-3">
<div class="collapse multi-{{ $id }}{{ if $args.show }} show{{ end }} syntax-highlight" id="body-{{ $id }}">
{{- highlight (trim $content "\r\n") $lang $args.options -}}
{{- highlight (trim $content "\r\n") $lang (or $args.highlightOptions $args.options) -}}
</div>
<div class="collapse multi-{{ $id }}{{ if not $args.show }} show{{ end }} p-3" id="footer-{{ $id }}">
<a class="nav-link active"

View File

@@ -21,7 +21,7 @@
{{- end -}}
{{/* Initialize local arguments */}}
{{- $text := or $args.text $args.title }}
{{- $text := trim (or $args.text $args.title) " \n\r" }}
{{- if not $text -}}
{{- partial "utilities/LogErr.html" (dict
"partial" "shortcodes/kbd.html"
@@ -36,6 +36,6 @@
{{/* Main code */}}
{{- if not $error }}
<kbd {{ if or $args.color $args.class }}class="{{ with $args.color }}text-bg-{{ . }} {{ end }}{{ $args.class }}"{{ end }}>
{{ $text | plainify }}
{{- $text -}}
</kbd>
{{ end -}}

View File

@@ -30,11 +30,14 @@
{{- if isset .Parent.Params "fade" }}{{ $parentFade = partial "utilities/CastBool.html" (.Parent.Get "fade") }}{{ end -}}
{{- $fade = or $fade $parentFade -}}
{{- $title := or $args.title $args.header -}}
{{- $body := trim .Inner " \r\n" | .Page.RenderString -}}
{{- $itemID := printf "%s-btn-%d" $parent $id }}
{{- $disabledID := cond $args.disabled $itemID "" }}
{{- $body := trim .Inner " \r\n" -}}
{{- $current := "" -}}
{{/* Main code */}}
{{- $output := partial "assets/nav-item.html" (dict
"page" .Page
"id" $id
"parent-id" $parent
"fade" $fade
@@ -48,15 +51,20 @@
{{- $current := .Parent.Scratch.Get "inner" -}}
{{- $titles := .Parent.Scratch.Get "inner-title" -}}
{{- $disabled := .Parent.Scratch.Get "inner-disabled" -}}
{{- if $args.show }}{{ .Parent.Scratch.Set "inner-show" $itemID }}{{ end -}}
{{- if $current -}}
{{- .Parent.Scratch.Set "inner" (print $current $output) -}}
{{- .Parent.Scratch.Set "inner-title" ($titles | append $title) -}}
{{- .Parent.Scratch.Set "inner-disabled" ($disabled | append $disabledID) -}}
{{- else -}}
{{- .Parent.Scratch.Set "inner" $output -}}
{{- .Parent.Scratch.Set "inner-title" (slice $title) -}}
{{- .Parent.Scratch.Set "inner-disabled" (slice $disabledID) -}}
{{- end }}
{{- $alternative := partial "assets/nav-item" (dict
{{- $alternative := partial "assets/nav-item.html" (dict
"page" .Page
"id" $id
"parent-id" $parent
"fade" $fade

View File

@@ -19,26 +19,30 @@
{{- $inner := .Scratch.Get "inner" -}}
{{- $innerTitles := .Scratch.Get "inner-title" -}}
{{- $innerDisabled := .Scratch.Get "inner-disabled" -}}
{{- $innerShow := .Scratch.Get "inner-show" -}}
{{- $input := trim .Inner " \r\n" -}}
{{- if $input -}}
{{ $input = replace $input "\n" "\n " -}}
{{ warnf "Unexpected inner content: %s\r\n %s" .Position $input -}}
{{ end }}
{{- $input = replace $input "\n" "\n " -}}
{{- warnf "Unexpected inner content: %s\r\n %s" .Position $input -}}
{{- end -}}
{{/* Main code */}}
{{- if not $args.err -}}
{{- partial "assets/nav.html" (dict
"id" (or $args.id (printf "nav-%d" .Ordinal))
"page" .Page
"list" $args.list
"nav-items" $inner
"nav-titles" $innerTitles
"tab-type" (or $args.tabType $args.type)
"vertical" $args.vertical
"word-wrap" $args.wordWrap
"class" $args.class
"pane" $args.pane
"width" $args.width
"id" (or $args.id (printf "nav-%d" .Ordinal))
"page" .Page
"list" $args.list
"nav-items" $inner
"nav-titles" $innerTitles
"nav-disabled" $innerDisabled
"nav-show" $innerShow
"tab-type" (or $args.tabType $args.type)
"vertical" $args.vertical
"word-wrap" $args.wordWrap
"class" $args.class
"pane" $args.pane
"width" $args.width
)
-}}
{{ end }}
{{- end -}}

View File

@@ -50,7 +50,7 @@
"breakpoint" (default "md" site.Params.navigation.size))
-}}
<div id="container" class="main-content fullscreen">
<div id="container" class="main">
{{ $blocks }}
{{ block "main" . }}{{ end -}}
</div>

View File

@@ -1,3 +1,3 @@
{{- partial "single/thumbnail.html" (dict "page" . "wrapper" "mb-5") -}}
{{- partial "page/thumbnail.html" (dict "page" . "wrapper" "mb-5") -}}
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}

View File

@@ -27,9 +27,10 @@
{{ if .Date }}
{{ $lastmodstr := (partial "utilities/date.html" (dict "date" .Lastmod "format" "long")) -}}
{{ $datestr := (partial "utilities/date.html" (dict "date" .Date "format" "long")) -}}
{{ $datestr | i18n "postedOnDate" -}}
{{ if eq $metadata "full" }}
{{ if ne $datestr $lastmodstr -}}&nbsp;({{ $lastmodstr | i18n "lastModified" }}){{ end }}
{{ if gt .Lastmod .Date }}
{{ $lastmodstr | i18n "lastModified" }}
{{ else }}
{{ $datestr | i18n "postedOnDate" -}}
{{ end }}
&bull;
{{ end }}

View File

@@ -1,7 +1,7 @@
{{ define "main" -}}
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
{{- $sidebar := partial "body/sidebar" . -}}
{{- $toc := partial "body/panel-toc" . -}}
{{- $sidebar := partial "page/sidebar" . -}}
{{- $toc := partial "page/panel-toc" . -}}
{{ with $sidebar }}
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvass-sidebar" aria-labelledby="offcanvas-label">

198
package-lock.json generated
View File

@@ -1,25 +1,25 @@
{
"name": "@gethinode/hinode",
"version": "1.0.0-alpha5",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@gethinode/hinode",
"version": "1.0.0-alpha5",
"version": "1.0.0",
"license": "MIT",
"dependencies": {
"@fullhuman/postcss-purgecss": "^7.0.2",
"autoprefixer": "^10.4.21",
"cssnano": "^7.0.7",
"cssnano-preset-advanced": "^7.0.7",
"hugo-bin": "0.144.8",
"hugo-bin": "0.144.9",
"purgecss-whitelister": "^2.4.0"
},
"devDependencies": {
"@gethinode/netlify-plugin-dartsass": "^0.3.0",
"cpy-cli": "^5.0.0",
"eslint": "^9.28.0",
"eslint": "^9.30.0",
"markdownlint-cli2": "^0.18.1",
"neostandard": "^0.12.1",
"netlify-plugin-hugo-cache-resources": "^0.2.1",
@@ -28,7 +28,7 @@
"replace-in-files-cli": "^3.0.0",
"rimraf": "^6.0.1",
"shx": "^0.4.0",
"stylelint": "^16.20.0",
"stylelint": "^16.21.0",
"stylelint-config-standard-scss": "^15.0.1"
},
"optionalDependencies": {
@@ -225,9 +225,9 @@
}
},
"node_modules/@csstools/css-parser-algorithms": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz",
"integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==",
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
"integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
"dev": true,
"funding": [
{
@@ -244,13 +244,13 @@
"node": ">=18"
},
"peerDependencies": {
"@csstools/css-tokenizer": "^3.0.3"
"@csstools/css-tokenizer": "^3.0.4"
}
},
"node_modules/@csstools/css-tokenizer": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz",
"integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==",
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
"integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
"dev": true,
"funding": [
{
@@ -268,9 +268,9 @@
}
},
"node_modules/@csstools/media-query-list-parser": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz",
"integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==",
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz",
"integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==",
"dev": true,
"funding": [
{
@@ -287,8 +287,8 @@
"node": ">=18"
},
"peerDependencies": {
"@csstools/css-parser-algorithms": "^3.0.4",
"@csstools/css-tokenizer": "^3.0.3"
"@csstools/css-parser-algorithms": "^3.0.5",
"@csstools/css-tokenizer": "^3.0.4"
}
},
"node_modules/@dual-bundle/import-meta-resolve": {
@@ -329,9 +329,9 @@
}
},
"node_modules/@eslint/config-array": {
"version": "0.20.0",
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz",
"integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==",
"version": "0.21.0",
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz",
"integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -344,9 +344,9 @@
}
},
"node_modules/@eslint/config-helpers": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz",
"integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==",
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz",
"integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -391,9 +391,9 @@
}
},
"node_modules/@eslint/js": {
"version": "9.28.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.28.0.tgz",
"integrity": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==",
"version": "9.30.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.30.0.tgz",
"integrity": "sha512-Wzw3wQwPvc9sHM+NjakWTcPx11mbZyiYHuwWa/QfZ7cIRX7WK54PSk7bdyXDaoaopUcMatv1zaQvOAAO8hCdww==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1187,10 +1187,11 @@
}
},
"node_modules/acorn": {
"version": "8.14.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
"integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
"version": "8.15.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
@@ -1671,9 +1672,9 @@
}
},
"node_modules/cacheable": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.9.0.tgz",
"integrity": "sha512-8D5htMCxPDUULux9gFzv30f04Xo3wCnik0oOxKoRTPIBoqA7HtOcJ87uBhQTs3jCfZZTrUBGsYIZOgE0ZRgMAg==",
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.10.0.tgz",
"integrity": "sha512-SSgQTAnhd7WlJXnGlIi4jJJOiHzgnM5wRMEPaXAU4kECTAMpBoYKoZ9i5zHmclIEZbxcu3j7yY/CF8DTmwIsHg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1707,9 +1708,9 @@
}
},
"node_modules/cacheable/node_modules/keyv": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-5.3.3.tgz",
"integrity": "sha512-Rwu4+nXI9fqcxiEHtbkvoes2X+QfkTRo1TMkPfwzipGsJlJO/z69vqB4FNl9xJ3xCpAcbkvmEabZfPzrwN3+gQ==",
"version": "5.3.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-5.3.4.tgz",
"integrity": "sha512-ypEvQvInNpUe+u+w8BIcPkQvEqXquyyibWE/1NB5T2BTzIpS5cGEV1LZskDzPSTvNAaT4+5FutvzlvnkxOSKlw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2874,19 +2875,19 @@
}
},
"node_modules/eslint": {
"version": "9.28.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.28.0.tgz",
"integrity": "sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==",
"version": "9.30.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.30.0.tgz",
"integrity": "sha512-iN/SiPxmQu6EVkf+m1qpBxzUhE12YqFLOSySuOyVLJLEF9nzTf+h/1AJYc1JWzCnktggeNrjvQGLngDzXirU6g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
"@eslint/config-array": "^0.20.0",
"@eslint/config-helpers": "^0.2.1",
"@eslint/config-array": "^0.21.0",
"@eslint/config-helpers": "^0.3.0",
"@eslint/core": "^0.14.0",
"@eslint/eslintrc": "^3.3.1",
"@eslint/js": "9.28.0",
"@eslint/js": "9.30.0",
"@eslint/plugin-kit": "^0.3.1",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
@@ -2898,9 +2899,9 @@
"cross-spawn": "^7.0.6",
"debug": "^4.3.2",
"escape-string-regexp": "^4.0.0",
"eslint-scope": "^8.3.0",
"eslint-visitor-keys": "^4.2.0",
"espree": "^10.3.0",
"eslint-scope": "^8.4.0",
"eslint-visitor-keys": "^4.2.1",
"espree": "^10.4.0",
"esquery": "^1.5.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -3230,9 +3231,9 @@
}
},
"node_modules/eslint-scope": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz",
"integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==",
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
"integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -3259,10 +3260,11 @@
}
},
"node_modules/eslint/node_modules/eslint-visitor-keys": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
"integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
@@ -3271,14 +3273,15 @@
}
},
"node_modules/espree": {
"version": "10.3.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
"integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
"version": "10.4.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
"integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
"acorn": "^8.14.0",
"acorn": "^8.15.0",
"acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^4.2.0"
"eslint-visitor-keys": "^4.2.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3288,10 +3291,11 @@
}
},
"node_modules/espree/node_modules/eslint-visitor-keys": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
"integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
@@ -4220,9 +4224,9 @@
}
},
"node_modules/hookified": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/hookified/-/hookified-1.9.0.tgz",
"integrity": "sha512-2yEEGqphImtKIe1NXWEhu6yD3hlFR4Mxk4Mtp3XEyScpSt4pQ4ymmXA1zzxZpj99QkFK+nN0nzjeb2+RUi/6CQ==",
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/hookified/-/hookified-1.9.1.tgz",
"integrity": "sha512-u3pxtGhKjcSXnGm1CX6aXS9xew535j3lkOCegbA6jdyh0BaAjTbXI4aslKstCr6zUNtoCxFGFKwjbSHdGrMB8g==",
"dev": true,
"license": "MIT"
},
@@ -4262,9 +4266,9 @@
}
},
"node_modules/hugo-bin": {
"version": "0.144.8",
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.144.8.tgz",
"integrity": "sha512-ZqXy5cvfMJ1FSGrO62rp9koEZ+bXHcw1gPKV5LJDveYKMEFmnBy4TW8KWD0joPyHKD1xKRpVnOL13/AQx8NxlA==",
"version": "0.144.9",
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.144.9.tgz",
"integrity": "sha512-SsAgkkXTl0Mwzgf5HYiE8gmWwfAkCCs7KFcVt0uZjmPI+Xflr3q9maxEDcNmTxSp/NMLSnPhqcGZwlHzh5oXMw==",
"funding": [
{
"type": "github",
@@ -5933,15 +5937,16 @@
"dev": true
},
"node_modules/nanoid": {
"version": "3.3.8",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
"integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
"version": "3.3.11",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -6725,9 +6730,9 @@
}
},
"node_modules/postcss": {
"version": "8.5.3",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
"integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
"version": "8.5.6",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"funding": [
{
"type": "opencollective",
@@ -6744,7 +6749,7 @@
],
"license": "MIT",
"dependencies": {
"nanoid": "^3.3.8",
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
@@ -8774,9 +8779,9 @@
}
},
"node_modules/stylelint": {
"version": "16.20.0",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.20.0.tgz",
"integrity": "sha512-B5Myu9WRxrgKuLs3YyUXLP2H0mrbejwNxPmyADlACWwFsrL8Bmor/nTSh4OMae5sHjOz6gkSeccQH34gM4/nAw==",
"version": "16.21.0",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.21.0.tgz",
"integrity": "sha512-ki3PpJGG7xhm3WtINoWGnlvqAmbqSexoRMbEMJzlwewSIOqPRKPlq452c22xAdEJISVi80r+I7KL9GPUiwFgbg==",
"dev": true,
"funding": [
{
@@ -8790,9 +8795,9 @@
],
"license": "MIT",
"dependencies": {
"@csstools/css-parser-algorithms": "^3.0.4",
"@csstools/css-tokenizer": "^3.0.3",
"@csstools/media-query-list-parser": "^4.0.2",
"@csstools/css-parser-algorithms": "^3.0.5",
"@csstools/css-tokenizer": "^3.0.4",
"@csstools/media-query-list-parser": "^4.0.3",
"@csstools/selector-specificity": "^5.0.0",
"@dual-bundle/import-meta-resolve": "^4.1.0",
"balanced-match": "^2.0.0",
@@ -8803,21 +8808,21 @@
"debug": "^4.4.1",
"fast-glob": "^3.3.3",
"fastest-levenshtein": "^1.0.16",
"file-entry-cache": "^10.1.0",
"file-entry-cache": "^10.1.1",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
"html-tags": "^3.3.1",
"ignore": "^7.0.4",
"ignore": "^7.0.5",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
"known-css-properties": "^0.36.0",
"known-css-properties": "^0.37.0",
"mathml-tag-names": "^2.1.3",
"meow": "^13.2.0",
"micromatch": "^4.0.8",
"normalize-path": "^3.0.0",
"picocolors": "^1.1.1",
"postcss": "^8.5.3",
"postcss": "^8.5.5",
"postcss-resolve-nested-selector": "^0.1.6",
"postcss-safe-parser": "^7.0.1",
"postcss-selector-parser": "^7.1.0",
@@ -9008,25 +9013,25 @@
"dev": true
},
"node_modules/stylelint/node_modules/file-entry-cache": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.1.0.tgz",
"integrity": "sha512-Et/ex6smi3wOOB+n5mek+Grf7P2AxZR5ueqRUvAAn4qkyatXi3cUC1cuQXVkX0VlzBVsN4BkWJFmY/fYiRTdww==",
"version": "10.1.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.1.1.tgz",
"integrity": "sha512-zcmsHjg2B2zjuBgjdnB+9q0+cWcgWfykIcsDkWDB4GTPtl1eXUA+gTI6sO0u01AqK3cliHryTU55/b2Ow1hfZg==",
"dev": true,
"license": "MIT",
"dependencies": {
"flat-cache": "^6.1.9"
"flat-cache": "^6.1.10"
}
},
"node_modules/stylelint/node_modules/flat-cache": {
"version": "6.1.9",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.9.tgz",
"integrity": "sha512-DUqiKkTlAfhtl7g78IuwqYM+YqvT+as0mY+EVk6mfimy19U79pJCzDZQsnqk3Ou/T6hFXWLGbwbADzD/c8Tydg==",
"version": "6.1.10",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.10.tgz",
"integrity": "sha512-B6/v1f0NwjxzmeOhzfXPGWpKBVA207LS7lehaVKQnFrVktcFRfkzjZZ2gwj2i1TkEUMQht7ZMJbABUT5N+V1Nw==",
"dev": true,
"license": "MIT",
"dependencies": {
"cacheable": "^1.9.0",
"cacheable": "^1.10.0",
"flatted": "^3.3.3",
"hookified": "^1.8.2"
"hookified": "^1.9.1"
}
},
"node_modules/stylelint/node_modules/globby": {
@@ -9059,15 +9064,22 @@
}
},
"node_modules/stylelint/node_modules/ignore": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.4.tgz",
"integrity": "sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==",
"version": "7.0.5",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
"integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 4"
}
},
"node_modules/stylelint/node_modules/known-css-properties": {
"version": "0.37.0",
"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz",
"integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==",
"dev": true,
"license": "MIT"
},
"node_modules/stylelint/node_modules/postcss-selector-parser": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",

View File

@@ -1,6 +1,6 @@
{
"name": "@gethinode/hinode",
"version": "1.0.0-alpha5",
"version": "1.0.0",
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
"keywords": [
"hugo",
@@ -73,13 +73,13 @@
"autoprefixer": "^10.4.21",
"cssnano": "^7.0.7",
"cssnano-preset-advanced": "^7.0.7",
"hugo-bin": "0.144.8",
"hugo-bin": "0.144.9",
"purgecss-whitelister": "^2.4.0"
},
"devDependencies": {
"@gethinode/netlify-plugin-dartsass": "^0.3.0",
"cpy-cli": "^5.0.0",
"eslint": "^9.28.0",
"eslint": "^9.30.0",
"markdownlint-cli2": "^0.18.1",
"neostandard": "^0.12.1",
"netlify-plugin-hugo-cache-resources": "^0.2.1",
@@ -88,7 +88,7 @@
"replace-in-files-cli": "^3.0.0",
"rimraf": "^6.0.1",
"shx": "^0.4.0",
"stylelint": "^16.20.0",
"stylelint": "^16.21.0",
"stylelint-config-standard-scss": "^15.0.1"
},
"optionalDependencies": {