Compare commits

..

82 Commits

Author SHA1 Message Date
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
Mark Dumay
559f7be37f Merge pull request #1456 from gethinode/develop
Refine argument validation
2025-06-10 08:08:20 +02:00
Mark Dumay
a51e0c81c0 Fix gutter init 2025-06-10 08:01:02 +02:00
Mark Dumay
463a6b229c Merge branch 'main' into develop 2025-06-09 19:45:27 +02:00
Mark Dumay
60302a7d36 Bump package release 2025-06-09 19:44:47 +02:00
Mark Dumay
31395afee3 Drop redundant file 2025-06-09 19:43:57 +02:00
Mark Dumay
40d16ebab9 Drop abbr key 2025-06-09 19:43:30 +02:00
Mark Dumay
5aa08d45f2 Make type validation warnings suppressable 2025-06-09 19:43:16 +02:00
Mark Dumay
2a05087eab Drop header of home page blogs 2025-06-09 19:29:45 +02:00
Mark Dumay
24ae3d3ca1 Update dependencies 2025-06-09 19:29:09 +02:00
Mark Dumay
6b250b8d4c Merge pull request #1455 from gethinode/develop
Refine assets
2025-06-08 08:34:23 +02:00
Mark Dumay
90f8f91e61 Merge branch 'main' into develop 2025-06-08 08:26:31 +02:00
Mark Dumay
cc0d83189d Enhance rendering of args shortcode 2025-06-08 08:24:52 +02:00
Mark Dumay
4d4db9e870 Add default hook for card images 2025-06-08 07:19:10 +02:00
Mark Dumay
58cfcc9131 Improve backwards compatibility of kbd shortcode 2025-06-08 07:18:06 +02:00
Mark Dumay
362aae875e Fix video asset bugs 2025-06-08 07:16:50 +02:00
Mark Dumay
3f3a7c21e3 Fix handling of color modes for images 2025-06-08 07:15:54 +02:00
Mark Dumay
dddb881628 Update dependencies 2025-06-08 07:14:00 +02:00
Mark Dumay
1a0b2f5632 Merge pull request #1454 from gethinode/develop
Clean up modules
2025-06-08 05:58:08 +02:00
Mark Dumay
b25de1eb02 Merge branch 'main' into develop 2025-06-08 05:50:04 +02:00
Mark Dumay
0a0315e531 Bump package version 2025-06-08 05:48:52 +02:00
Mark Dumay
9a1a1405fe Update build stats 2025-06-08 05:48:31 +02:00
Mark Dumay
f7bda6236e Update footer arguments 2025-06-08 05:48:27 +02:00
Mark Dumay
c8c5384bd3 Clean up modules 2025-06-08 05:48:03 +02:00
Mark Dumay
4d4d5ad9bd Update dependencies 2025-06-08 05:47:53 +02:00
142 changed files with 1263 additions and 2727 deletions

View File

@@ -18,23 +18,13 @@ a:active {
// Ensure main page is rendered to full viewport height // Ensure main page is rendered to full viewport height
// //
.main { .main {
min-height: 100vh;
}
.fullcover {
--navbar-height: #{$navbar-height}; --navbar-height: #{$navbar-height};
min-height: calc(100vh - var(--navbar-height));
}
.fullscreen {
--overlay-offset: #{$overlay-offset}; --overlay-offset: #{$overlay-offset};
--section-height: 88vh;
--max-section-height: 1024px;
min-height: calc(100vh - var(--overlay-offset)); min-height: 100vh;
} margin-top: var(--overlay-offset);
.main-content {
margin-top: var(--navbar-offset);
} }
$utilities: map-merge( $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 { :root {
--nav-height: 90px; --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 { .section-cover {
min-height: 100vh; min-height: calc(var(--section-height) - var(--overlay-offset));
} }
@include media-breakpoint-up(xxl) { @include media-breakpoint-up(xxl) {
.section-cover { .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 */ /* stylelint-disable media-feature-range-notation */
@media (min-height: 1400px) { @media (min-height: 1400px) {
.section-cover { .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 */ /* stylelint-enable media-feature-range-notation */

View File

@@ -69,3 +69,8 @@ $theme-colors: (
"body": $body-bg, "body": $body-bg,
"body-tertiary": $gray-100, "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": $body-bg,
"body-tertiary": $gray-100, "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; 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,6 +1,7 @@
@import "modules/bookshop/shared/styles/global"; @import "modules/bookshop/shared/styles/global";
@import "modules/bookshop/components/about/about"; @import "modules/bookshop/components/about/about";
@import "modules/bookshop/components/articles/articles"; @import "modules/bookshop/components/articles/articles";
@import "modules/bookshop/components/cards/cards";
@import "modules/bookshop/components/faq/faq"; @import "modules/bookshop/components/faq/faq";
@import "modules/bookshop/components/hero/hero"; @import "modules/bookshop/components/hero/hero";
@import "modules/bookshop/components/releases/releases"; @import "modules/bookshop/components/releases/releases";

View File

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

View File

@@ -9,7 +9,8 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "component-library/components/about/about.hugo.html" "partial" "component-library/components/about/about.hugo.html"
"msg" " Invalid arguments" "warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
)}} )}}
@@ -25,7 +26,7 @@
"link-type" $args.linkType "link-type" $args.linkType
"links" $args.links "links" $args.links
"orientation" "horizontal" "orientation" "horizontal"
"width" (or .width 8) "width" (or $args.width 8)
) )
}} }}
{{- end -}} {{- end -}}

View File

@@ -43,3 +43,5 @@ blueprint:
footer-style: footer-style:
orientation: orientation:
class: class:
width:
justify:

View File

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

View File

@@ -9,50 +9,45 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "component-library/components/faq/faq.hugo.html" "partial" "component-library/components/faq/faq.hugo.html"
"msg" "Invalid arguments" "warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
)}} )}}
{{ end }} {{ end }}
{{ if not $args.err }} {{ if not $args.err }}
<div class="container-xxl p-4 px-xxl-0"> {{ $color := "" }}
{{ $color := "" }} {{ if $args.contrast }}{{ $color = "white" }}{{ end }}
{{ if $args.contrast }}{{ $color = "white" }}{{ end }} {{- partial "assets/section-title.html" (dict "heading" $args.heading "color" $color) -}}
{{- partial "assets/section-title.html" (dict
"heading" $args.heading
"color" $color
"class" "py-5"
) -}}
{{ $class := "" }} {{ $class := "" }}
{{ $id := printf "faq-%s" (md5 (delimit (slice . now) "-")) }} {{ $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"> <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 }} {{ range $index, $item := $args.items }}
<div class="accordion-item"> <div class="accordion-item">
{{- with $item.title -}} {{- with $item.title -}}
<div class="accordion-header m-0" id="{{ $id }}-heading-{{ $id }}"> <div class="accordion-header m-0" id="{{ $id }}-heading-{{ $id }}">
<button class="accordion-button collapsed" <button class="accordion-button collapsed"
type="button" type="button"
data-bs-toggle="collapse" data-bs-toggle="collapse"
data-bs-target="#{{ $id }}-item-{{ $index }}" data-bs-target="#{{ $id }}-item-{{ $index }}"
aria-expanded="false" aria-expanded="false"
aria-controls="{{ $id }}-item-{{ $index }}" aria-controls="{{ $id }}-item-{{ $index }}"
> >
{{ if $args.color }}<div class="text-{{ $args.color }}">{{ . }}</div>{{ else }}{{ . }}{{ end }} {{ if $args.color }}<div class="text-{{ $args.color }}">{{ . }}</div>{{ else }}{{ . }}{{ end }}
</button> </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> </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> </div>
{{ end }} </div>
</div> {{ end }}
</div> </div>
{{ end }} {{ end }}

View File

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

View File

@@ -9,7 +9,8 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "component-library/components/hero/hero.hugo.html" "partial" "component-library/components/hero/hero.hugo.html"
"msg" " Invalid arguments" "warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
)}} )}}
@@ -29,6 +30,7 @@
"links" $args.links "links" $args.links
"orientation" $args.orientation "orientation" $args.orientation
"width" $args.width "width" $args.width
"justify" $args.justify
) )
}} }}
{{ end }} {{ end }}

View File

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

View File

@@ -9,7 +9,8 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "component-library/components/releases/releases.hugo.html" "partial" "component-library/components/releases/releases.hugo.html"
"msg" " Invalid arguments" "warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
)}} )}}

View File

@@ -8,12 +8,13 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "component-library/components/separator/separator.hugo.html" "partial" "component-library/components/separator/separator.hugo.html"
"msg" " Invalid arguments" "warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
)}} )}}
{{ end }} {{ end }}
{{ if not $args.err }} {{ if not $args.err }}
<div class="container-xxl p-0"{{ with $args.theme }} data-bs-theme="{{ . }}"{{ end }}><hr></div> <hr class="w-100">
{{ end }} {{ end }}

View File

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

View File

@@ -9,13 +9,15 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "component-library/components/video-message/video-message.hugo.html" "partial" "component-library/components/video-message/video-message.hugo.html"
"msg" " Invalid arguments" "warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
)}} )}}
{{ end }} {{ end }}
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}} {{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{- define "_partials/inline/video.html" -}} {{- define "_partials/inline/video.html" -}}
{{ $provider := .provider }} {{ $provider := .provider }}
@@ -24,10 +26,14 @@
{{ $autoplay := .autoplay }} {{ $autoplay := .autoplay }}
{{ $queryArgs := .queryArgs }} {{ $queryArgs := .queryArgs }}
{{ $border := .border }} {{ $border := .border }}
{{ $padding := .padding }}
{{ if site.Params.env_bookshop_live }} {{ if site.Params.env_bookshop_live }}
{{/* Define dummy content as we cannot retrieve video data in live mode */}} {{/* 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 }} {{ else }}
<div class="video-container{{ if $border }} video-container-border{{ end}}"> <div class="video-container{{ if $border }} video-container-border{{ end}}">
{{ partial "assets/video.html" (dict {{ partial "assets/video.html" (dict
@@ -72,7 +78,7 @@
) -}} ) -}}
{{ end }} {{ end }}
<div class="container-xxl p-4 px-xxl-0"> {{ if not $args.err }}
{{ $list := slice }} {{ $list := slice }}
{{ range $args.messages }} {{ range $args.messages }}
@@ -90,13 +96,10 @@
) }} ) }}
{{ end}} {{ end}}
{{- partial "assets/section-title.html" (dict {{- partial "assets/section-title.html" (dict "heading" $args.heading) -}}
"heading" $args.heading
"class" "py-5"
) -}}
{{ if eq $args.orientation "stacked" }} {{ 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 }} {{ with $args.video }}
{{- partial "inline/video.html" (dict {{- partial "inline/video.html" (dict
"provider" .provider "provider" .provider
@@ -105,14 +108,15 @@
"autoplay" .autoplay "autoplay" .autoplay
"query-args" .queryArgs "query-args" .queryArgs
"border" $.border "border" $.border
"padding" $padding
) -}} ) -}}
{{ end }} {{ end }}
</div> </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) -}} {{- partial "inline/messages.html" (dict "list" $list "cols" $args.cols "type" $args.type "iconRounded" $args.iconRounded) -}}
</div> </div>
{{ else }} {{ 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="row row-cols-1 row-cols-{{ $breakpoint.current }}-2">
<div class="col col-{{ $breakpoint.current }}-{{ $args.width }} p-0"> <div class="col col-{{ $breakpoint.current }}-{{ $args.width }} p-0">
{{ with $args.video }} {{ with $args.video }}
@@ -123,13 +127,14 @@
"autoplay" .autoplay "autoplay" .autoplay
"query-args" .queryArgs "query-args" .queryArgs
"border" $.border "border" $.border
"padding" $padding
) -}} ) -}}
{{ end }} {{ end }}
</div> </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) -}} {{- partial "inline/messages.html" (dict "list" $list "cols" 1 "type" $args.type "iconRounded" $args.iconRounded) -}}
</div> </div>
</div> </div>
</div> </div>
{{ end }} {{ end }}
</div> {{ end }}

View File

@@ -15,7 +15,7 @@
{{- $component_props := index . 1 -}} {{- $component_props := index . 1 -}}
{{- $class := index . 2 | default "p-0" -}} {{- $class := index . 2 | default "p-0" -}}
{{- $bgclass := index . 3 | default "" -}} {{- $bgclass := index . 3 | default "" -}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{- $component_path := partial "_bookshop/helpers/component_key" $component_name -}} {{- $component_path := partial "_bookshop/helpers/component_key" $component_name -}}
{{- $flat_component_path := partial "_bookshop/helpers/flat_component_key" $component_name -}} {{- $flat_component_path := partial "_bookshop/helpers/flat_component_key" $component_name -}}
@@ -32,6 +32,9 @@
{{- $background := index $component_props "background" -}} {{- $background := index $component_props "background" -}}
{{- $backdrop := "" -}} {{- $backdrop := "" -}}
{{- $style := index $component_props "wrapper" -}} {{- $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 }} {{- $wrapper := $style }}
{{ with $background }} {{ with $background }}
{{ $wrapper = partial "utilities/GetBackgroundStyle.html" (dict "background" . "class" $style) }} {{ $wrapper = partial "utilities/GetBackgroundStyle.html" (dict "background" . "class" $style) }}
@@ -59,7 +62,16 @@
{{- if $backdrop -}} {{- if $backdrop -}}
{{ partial "assets/live-image.html" (dict "src" $backdrop "class" (printf "background-img-fluid %s" $bgclass) "title" (T "backgroundImage")) }} {{ partial "assets/live-image.html" (dict "src" $backdrop "class" (printf "background-img-fluid %s" $bgclass) "title" (T "backgroundImage")) }}
{{- end -}} {{- 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> </section>
{{ "<!--bookshop-live end-->" | safeHTML }} {{ "<!--bookshop-live end-->" | safeHTML }}
{{- else -}} {{- else -}}

View File

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

View File

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

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-flexsearch/v2/assets/scss/modules/flexsearch/flexsearch.scss',
'./_vendor/github.com/gethinode/mod-katex/dist/katex.scss', './_vendor/github.com/gethinode/mod-katex/dist/katex.scss',
'./_vendor/github.com/gethinode/mod-leaflet/dist/leaflet.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/_carousel.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss', './_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_modal.scss', './_vendor/github.com/twbs/bootstrap/scss/_modal.scss',

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

@@ -2,6 +2,9 @@ comment: >-
Generates a markdown table of structured arguments. The argument definitions are Generates a markdown table of structured arguments. The argument definitions are
expected to be defined in a data file identified by a provided structure name. expected to be defined in a data file identified by a provided structure name.
arguments: arguments:
page:
optional: false
group: partial
structure: structure:
type: string type: string
position: 0 position: 0
@@ -26,3 +29,28 @@ arguments:
comment: >- comment: >-
Flag to filter only arguments that have a parent attribute (either Flag to filter only arguments that have a parent attribute (either
`cascade` or `merge`). `cascade` or `merge`).
render-type:
type: select
position: 3
default: both
optional: true
comment: >-
Option whether to render arguments, user-defined types, or both. Please
note that the arguments will render a link to a user-defined type in any
case.
options:
values:
- arguments
- types
- both
release: v1.0.0
header-level:
type: int
default: 3
optional: true
options:
min: 1
max: 6
comment: >-
The header level to use for the user-defined type headers.
release: v1.0.0

View File

@@ -65,6 +65,7 @@ arguments:
release: v1.0.0 release: v1.0.0
link-type: link-type:
hook: hook:
default: assets/image.html
group: partial group: partial
sizes: sizes:
group: partial group: partial

View File

@@ -2,3 +2,17 @@ comment: >-
Initializes images dimensions (widht x height for supported image ratios. Initializes images dimensions (widht x height for supported image ratios.
arguments: arguments:
ratio: 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: wrapper:
class: class:
image-overlay: image-overlay:
justify:

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,7 @@
comment: Adds a keyboard input element. comment: Adds a keyboard input element.
arguments: arguments:
text: text:
optional: true
position: 0 position: 0
release: v1.0.0 release: v1.0.0
class: class:

View File

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

View File

@@ -3,124 +3,13 @@ arguments:
heading: heading:
links: links:
color: color:
type: select
comment: Text color of the section.
default: body default: body
optional: true
options:
values:
- body
- primary
- secondary
- black
- white
class: class:
type: string
optional: true
comment: Class attribute of the section title.
size: size:
type: int
optional: true
comment: Display size of the title.
options:
min: 1
max: 6
use-title: use-title:
type: bool
optional: true
default: false
comment: Sets the title to an HTML header instead of a div.
justify: justify:
type: select link-type:
comment: Justification of the link titles and icons. use-section:
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.
arrangement: arrangement:
headingStyle: heading-style:
type: select content-style:
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.

View File

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

View File

@@ -8,6 +8,9 @@
footerBelowFold = false footerBelowFold = false
loading = "lazy" loading = "lazy"
breakpoint = "md" breakpoint = "md"
[main.padding]
x = 4
y = 4
titleCase = true titleCase = true
[main.internalLinks] [main.internalLinks]
validate = true validate = true
@@ -122,8 +125,7 @@
# themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" # external path # themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" # external path
themeFontPath = "/fonts" # local path themeFontPath = "/fonts" # local path
themeFontPreload = "/fonts/inter-v12-latin-regular.woff2" themeFontPreload = "/fonts/inter-v12-latin-regular.woff2"
# TODO: adjust purge settings purge = true
purge = false
# toml-docs-end theme-colors # toml-docs-end theme-colors
[schema] [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-flexsearch/v2/assets/scss/modules/flexsearch/flexsearch.scss',
'./_vendor/github.com/gethinode/mod-katex/dist/katex.scss', './_vendor/github.com/gethinode/mod-katex/dist/katex.scss',
'./_vendor/github.com/gethinode/mod-leaflet/dist/leaflet.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/_carousel.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss', './_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_modal.scss', './_vendor/github.com/twbs/bootstrap/scss/_modal.scss',

View File

@@ -8,20 +8,20 @@ content_blocks:
title: Welcome to Hinode! title: Welcome to Hinode!
content: |- content: |-
A clean documentation and blog theme for your Hugo site based on Bootstrap 5. A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
align: start width: 6
background: background:
color: primary color: primary
subtle: true subtle: true
illustration: illustration:
image: /img/sunrise.jpg image: /img/sunrise.jpg
ratio: 16x9 ratio: 16x9
width: 8 width: 8
width: 6
links: links:
- title: About - title: About
url: about url: about
icon: fas chevron-right icon: fas chevron-right
orientation: horizontal orientation: horizontal
justify: center
- _bookshop_name: articles - _bookshop_name: articles
heading: heading:
@@ -33,6 +33,7 @@ content_blocks:
sort: date sort: date
keywords: featured keywords: featured
hide-empty: false hide-empty: false
header-style: none
more: more:
title: More Posts title: More Posts
padding: 0 padding: 0

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
max: 3
background:
color: primary
subtle: true
class: border-0 card-zoom card-body-margin
justify: center
```
{{< /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

@@ -21,7 +21,7 @@ As an example, the following shortcode displays the full text of an abbreviation
<!-- markdownlint-disable MD037 --> <!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}} {{< example lang="hugo" >}}
{{</* abbr key="CI/CD" */>}} {{</* abbr "CI/CD" */>}}
{{< /example >}} {{< /example >}}
<!-- markdownlint-enable MD037 --> <!-- markdownlint-enable MD037 -->
@@ -33,8 +33,9 @@ As an example, the following shortcode displays an accordion with three elements
{{< example lang="hugo" >}} {{< example lang="hugo" >}}
{{</* accordion */>}} {{</* accordion */>}}
{{</* accordion-item title="Accordion Item #1" show="true" */>}} {{</* 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 This is the first item's accordion body.
renderer. The item is shown by adding the value `show` to the `class` argument. It supports Markdown content. The item
is shown by adding the value `show` to the `class` argument.
{{</* /accordion-item */>}} {{</* /accordion-item */>}}
{{</* accordion-item title="Accordion Item #2" */>}} {{</* accordion-item title="Accordion Item #2" */>}}
This is the second item's accordion body. This is the second item's accordion body.
@@ -58,6 +59,16 @@ As an example, the following shortcode displays a simple alert.
{{< /example >}} {{< /example >}}
<!-- markdownlint-enable MD037 --> <!-- 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 ## Badge
Use the badge shortcode to display a badge for a heading. Use the badge shortcode to display a badge for a heading.
@@ -237,10 +248,12 @@ Use the `file` shortcode to print and highlight the full content of a given inpu
<!-- markdownlint-disable MD037 --> <!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}} {{< 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 >}} {{< /example >}}
<!-- markdownlint-enable MD037 --> <!-- markdownlint-enable MD037 -->
{{< file full="false" file="./config/_default/languages.toml" id="file-collapse-5" >}}
## Icon ## Icon
As an example, the following shortcodes show a square check, a brand logo, a circle check, and a custom icon. As an example, the following shortcodes show a square check, a brand logo, a circle check, and a custom icon.
@@ -352,8 +365,8 @@ As an example, the following shortcode displays a tab group with vertically alig
{{< example lang="hugo" >}} {{< example lang="hugo" >}}
{{</* nav tab-type="pills" vertical="true" */>}} {{</* nav tab-type="pills" vertical="true" */>}}
{{</* nav-item title="Nav Item #1" show="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 This is the first item's nav body. It supports Markdown content.
renderer. The item is shown by adding the value `show` to the `class` argument. The item is shown by adding the value `show` to the `class` argument.
{{</* /nav-item */>}} {{</* /nav-item */>}}
{{</* nav-item title="Nav Item #2" */>}} {{</* nav-item title="Nav Item #2" */>}}
This is the second item's nav body. This is the second item's nav body.

View File

@@ -22,7 +22,7 @@ As an example, the following shortcode shows an animation that plays on hover.
<!-- markdownlint-disable MD037 --> <!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}} {{< 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 >}} {{< /example >}}
<!-- markdownlint-enable MD037 --> <!-- markdownlint-enable MD037 -->

View File

@@ -22,7 +22,7 @@ Hinode propose plusieurs shortcodes en plus des [éléments Bootstrap]({{% relre
<!-- markdownlint-disable MD037 --> <!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}} {{< 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 >}} {{< /example >}}
<!-- markdownlint-enable MD037 --> <!-- 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 --> <!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}} {{< 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 >}} {{< /example >}}
<!-- markdownlint-enable MD037 --> <!-- 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.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 h1:hzGCbRbpNAVkLr+jFWpAQaXHG0lgK+KgIpaZYsI1J+U=
github.com/gethinode/mod-cookieyes/v2 v2.1.2/go.mod h1:tULb7D7CoTycGUyL7ryqHJKaX11XuL2SN+XwP7/DI0Y= 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/v4 v4.4.0 h1:IhhJDLqXCdYvrjM6kUR10wlg0kyZrY94f7EuGMj8NN0=
github.com/gethinode/mod-utils/v3 v3.0.2/go.mod h1:9iHYWiDpDlcyrGAOHniubK/kziJYhTsw7UpGM+u4MOM= github.com/gethinode/mod-utils/v4 v4.4.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=

View File

@@ -69,6 +69,7 @@
], ],
"classes": [ "classes": [
"%!s(<nil>)", "%!s(<nil>)",
"%!s(MISSING)",
"about", "about",
"accordion", "accordion",
"accordion-body", "accordion-body",
@@ -118,15 +119,28 @@
"breadcrumb-item", "breadcrumb-item",
"btn", "btn",
"btn-close", "btn-close",
"btn-danger",
"btn-dark",
"btn-group", "btn-group",
"btn-info",
"btn-lg",
"btn-light", "btn-light",
"btn-link", "btn-link",
"btn-md", "btn-outline-danger",
"btn-outline-dark",
"btn-outline-info",
"btn-outline-light",
"btn-outline-primary", "btn-outline-primary",
"btn-outline-secondary", "btn-outline-secondary",
"btn-outline-success",
"btn-outline-warning",
"btn-primary", "btn-primary",
"btn-secondary", "btn-secondary",
"btn-sm",
"btn-social", "btn-social",
"btn-success",
"btn-warning",
"btn-xs",
"card", "card",
"card-block-2", "card-block-2",
"card-body", "card-body",
@@ -137,6 +151,7 @@
"card-container-wrapper", "card-container-wrapper",
"card-emphasize", "card-emphasize",
"card-icon", "card-icon",
"card-icon-primary",
"card-icon-secondary", "card-icon-secondary",
"card-img-bg", "card-img-bg",
"card-img-top", "card-img-top",
@@ -144,6 +159,7 @@
"card-text", "card-text",
"card-title", "card-title",
"card-zoom", "card-zoom",
"cards",
"carousel", "carousel",
"carousel-caption", "carousel-caption",
"carousel-control-next", "carousel-control-next",
@@ -169,7 +185,7 @@
"col-lg-2", "col-lg-2",
"col-lg-4", "col-lg-4",
"col-lg-8", "col-lg-8",
"col-md-", "col-md-10",
"col-md-12", "col-md-12",
"col-md-2", "col-md-2",
"col-md-3", "col-md-3",
@@ -181,9 +197,7 @@
"col-sm-12", "col-sm-12",
"col-sm-3", "col-sm-3",
"col-sm-6", "col-sm-6",
"col-sm-9", "col-sm-8",
"col-xl-10",
"col-xl-2",
"collapse", "collapse",
"collapsed", "collapsed",
"container", "container",
@@ -205,6 +219,7 @@
"d-sm-block", "d-sm-block",
"d-sm-none", "d-sm-none",
"data-table", "data-table",
"disabled",
"display-1", "display-1",
"display-4", "display-4",
"dropdown", "dropdown",
@@ -224,40 +239,56 @@
"fa-3", "fa-3",
"fa-4x", "fa-4x",
"fa-activity", "fa-activity",
"fa-address-card",
"fa-angle-left", "fa-angle-left",
"fa-arrow-left", "fa-arrow-left",
"fa-arrow-right", "fa-arrow-right",
"fa-book-open",
"fa-bootstrap", "fa-bootstrap",
"fa-check",
"fa-chevron-right", "fa-chevron-right",
"fa-circle",
"fa-circle-check", "fa-circle-check",
"fa-circle-play", "fa-circle-play",
"fa-circle-question", "fa-circle-question",
"fa-code", "fa-code",
"fa-display",
"fa-divide", "fa-divide",
"fa-docker", "fa-docker",
"fa-ellipsis", "fa-ellipsis",
"fa-face-frown", "fa-face-frown",
"fa-facebook", "fa-facebook",
"fa-fluid", "fa-fluid",
"fa-font-awesome",
"fa-fw", "fa-fw",
"fa-github", "fa-github",
"fa-globe", "fa-globe",
"fa-grip",
"fa-h", "fa-h",
"fa-hand-pointer",
"fa-heart", "fa-heart",
"fa-house", "fa-house",
"fa-info", "fa-info",
"fa-inverse",
"fa-link", "fa-link",
"fa-linkedin", "fa-linkedin",
"fa-magnifying-glass", "fa-magnifying-glass",
"fa-markdown",
"fa-medium", "fa-medium",
"fa-moon", "fa-moon",
"fa-robot",
"fa-rocket", "fa-rocket",
"fa-rotate-90", "fa-rotate-90",
"fa-share-nodes", "fa-share-nodes",
"fa-sitemap",
"fa-sort", "fa-sort",
"fa-square-check", "fa-square-check",
"fa-stack",
"fa-stack-1x",
"fa-stack-2x",
"fa-sun", "fa-sun",
"fa-timeline", "fa-timeline",
"fa-trash-can",
"fa-up-right-from-square", "fa-up-right-from-square",
"fa-whatsapp", "fa-whatsapp",
"fa-wrapper", "fa-wrapper",
@@ -271,7 +302,6 @@
"flex-column", "flex-column",
"flex-fill", "flex-fill",
"flex-grow-1", "flex-grow-1",
"flex-md-grow-0",
"flex-nowrap", "flex-nowrap",
"flex-row", "flex-row",
"font-monospace", "font-monospace",
@@ -283,7 +313,6 @@
"fs-6", "fs-6",
"fs-lg-5", "fs-lg-5",
"fs-md-5", "fs-md-5",
"fullscreen",
"fw-30", "fw-30",
"fw-bold", "fw-bold",
"fw-semibold", "fw-semibold",
@@ -316,9 +345,13 @@
"img-wrap", "img-wrap",
"invisible", "invisible",
"is-search", "is-search",
"justify-content-around",
"justify-content-between", "justify-content-between",
"justify-content-center", "justify-content-center",
"justify-content-end", "justify-content-end",
"justify-content-evenly",
"justify-content-md-end",
"justify-content-md-start",
"justify-content-start", "justify-content-start",
"katex", "katex",
"label", "label",
@@ -332,9 +365,10 @@
"link-warning", "link-warning",
"lottie-animation", "lottie-animation",
"m-0", "m-0",
"m-auto",
"m-md-n4", "m-md-n4",
"m-n1", "m-n1",
"main-content", "main",
"main-nav-toggler", "main-nav-toggler",
"mb-0", "mb-0",
"mb-3", "mb-3",
@@ -357,7 +391,10 @@
"mt-auto", "mt-auto",
"mt-md-0", "mt-md-0",
"multi-docs-collapse-15", "multi-docs-collapse-15",
"multi-docs-collapse-19",
"multi-docs-collapse-20",
"multi-file-collapse-1", "multi-file-collapse-1",
"multi-file-collapse-5",
"mx-auto", "mx-auto",
"mx-md-0", "mx-md-0",
"mx-md-2", "mx-md-2",
@@ -381,10 +418,11 @@
"navbar-mode-selector", "navbar-mode-selector",
"navbar-nav", "navbar-nav",
"navbar-nav-scroll", "navbar-nav-scroll",
"navbar-title",
"navbar-toggler", "navbar-toggler",
"next", "next",
"no-js", "no-js",
"offset-md-4",
"offset-sm-2",
"order-0", "order-0",
"order-1", "order-1",
"order-first", "order-first",
@@ -399,6 +437,7 @@
"pb-3", "pb-3",
"pb-4", "pb-4",
"pb-5", "pb-5",
"pe-0",
"pe-1", "pe-1",
"pe-3", "pe-3",
"pe-5", "pe-5",
@@ -415,7 +454,6 @@
"pt-4", "pt-4",
"pt-5", "pt-5",
"pt-md-0", "pt-md-0",
"pt-md-3",
"ptw-3", "ptw-3",
"ptw-5", "ptw-5",
"ptw-lg-5", "ptw-lg-5",
@@ -427,9 +465,7 @@
"py-2", "py-2",
"py-3", "py-3",
"py-4", "py-4",
"py-5",
"py-md-1", "py-md-1",
"py-md-5",
"ratio", "ratio",
"ratio-16x9", "ratio-16x9",
"releases", "releases",
@@ -487,6 +523,7 @@
"text-decoration-none", "text-decoration-none",
"text-end", "text-end",
"text-info", "text-info",
"text-md-end",
"text-muted", "text-muted",
"text-nowrap", "text-nowrap",
"text-primary", "text-primary",
@@ -556,17 +593,27 @@
"alerte", "alerte",
"animatie", "animatie",
"animation", "animation",
"args",
"arguments", "arguments",
"background-type",
"badge", "badge",
"barre-de-navigation", "barre-de-navigation",
"block-diagram", "block-diagram",
"blog", "blog",
"body-docs-collapse-15", "body-docs-collapse-15",
"body-docs-collapse-19",
"body-docs-collapse-20",
"body-file-collapse-1", "body-file-collapse-1",
"body-file-collapse-5",
"bouton", "bouton",
"breadcrumb", "breadcrumb",
"build-a-static-website-fast-and-flexible",
"button", "button",
"button-group", "button-group",
"buttons-with-a-badge",
"buttons-with-a-collapsible-panel",
"buttons-with-a-tooltip",
"buttons-with-an-icon",
"c4-diagram", "c4-diagram",
"card", "card",
"card-group", "card-group",
@@ -579,6 +626,7 @@
"cloudinary", "cloudinary",
"collapse", "collapse",
"collapse-1", "collapse-1",
"colored-buttons",
"command-prompt", "command-prompt",
"comment-nous-partageons-vos-informations", "comment-nous-partageons-vos-informations",
"comment-utilisons-nous-les-cookies-", "comment-utilisons-nous-les-cookies-",
@@ -587,50 +635,82 @@
"cookies-etc", "cookies-etc",
"custom-activity", "custom-activity",
"data-tables", "data-tables",
"developer-friendly-and-secure",
"docs", "docs",
"documentation", "documentation",
"elements-type",
"entity-relationship-diagram", "entity-relationship-diagram",
"example", "example",
"examples",
"exemple", "exemple",
"fa-address-card",
"fa-face-frown", "fa-face-frown",
"fa-font-awesome",
"fa-hand-pointer",
"fa-square-check", "fa-square-check",
"fab-bootstrap", "fab-bootstrap",
"fab-docker", "fab-docker",
"fab-facebook", "fab-facebook",
"fab-github", "fab-github",
"fab-linkedin", "fab-linkedin",
"fab-markdown",
"fab-medium", "fab-medium",
"fab-whatsapp", "fab-whatsapp",
"fab-x-twitter", "fab-x-twitter",
"faq-184f299e274a5ce56b6a879ad10e2b73", "faq-03262a038417e1bab3887f63db7d440f",
"faq-184f299e274a5ce56b6a879ad10e2b73-heading-faq-184f299e274a5ce56b6a879ad10e2b73", "faq-03262a038417e1bab3887f63db7d440f-heading-faq-03262a038417e1bab3887f63db7d440f",
"faq-184f299e274a5ce56b6a879ad10e2b73-item-0", "faq-03262a038417e1bab3887f63db7d440f-item-0",
"faq-184f299e274a5ce56b6a879ad10e2b73-item-1", "faq-03262a038417e1bab3887f63db7d440f-item-1",
"faq-184f299e274a5ce56b6a879ad10e2b73-item-2", "faq-03262a038417e1bab3887f63db7d440f-item-2",
"faq-43ab418abcc6ab8991ad130c40cca21e", "faq-516ddc5b7dd16bc24b857082a9aab4ed",
"faq-43ab418abcc6ab8991ad130c40cca21e-heading-faq-43ab418abcc6ab8991ad130c40cca21e", "faq-516ddc5b7dd16bc24b857082a9aab4ed-heading-faq-516ddc5b7dd16bc24b857082a9aab4ed",
"faq-43ab418abcc6ab8991ad130c40cca21e-item-0", "faq-516ddc5b7dd16bc24b857082a9aab4ed-item-0",
"faq-43ab418abcc6ab8991ad130c40cca21e-item-1", "faq-516ddc5b7dd16bc24b857082a9aab4ed-item-1",
"faq-43ab418abcc6ab8991ad130c40cca21e-item-2", "faq-516ddc5b7dd16bc24b857082a9aab4ed-item-2",
"faq-5f13c156f93854db8bafbe22d85efd03", "faq-56ff67870957c4eb63627fad0245b8b7",
"faq-5f13c156f93854db8bafbe22d85efd03-heading-faq-5f13c156f93854db8bafbe22d85efd03", "faq-56ff67870957c4eb63627fad0245b8b7-heading-faq-56ff67870957c4eb63627fad0245b8b7",
"faq-5f13c156f93854db8bafbe22d85efd03-item-0", "faq-56ff67870957c4eb63627fad0245b8b7-item-0",
"faq-5f13c156f93854db8bafbe22d85efd03-item-1", "faq-56ff67870957c4eb63627fad0245b8b7-item-1",
"faq-5f13c156f93854db8bafbe22d85efd03-item-2", "faq-56ff67870957c4eb63627fad0245b8b7-item-2",
"faq-a65942a4e80d8b9331232f2839b0b404",
"faq-a65942a4e80d8b9331232f2839b0b404-heading-faq-a65942a4e80d8b9331232f2839b0b404",
"faq-a65942a4e80d8b9331232f2839b0b404-item-0",
"faq-a65942a4e80d8b9331232f2839b0b404-item-1",
"faq-a65942a4e80d8b9331232f2839b0b404-item-2",
"faq-b7d43cad454395dd12765b2970e95cbc",
"faq-b7d43cad454395dd12765b2970e95cbc-heading-faq-b7d43cad454395dd12765b2970e95cbc",
"faq-b7d43cad454395dd12765b2970e95cbc-item-0",
"faq-b7d43cad454395dd12765b2970e95cbc-item-1",
"faq-b7d43cad454395dd12765b2970e95cbc-item-2",
"faq-c411b9f9b15c4b7a1a0d1de458f85fc9",
"faq-c411b9f9b15c4b7a1a0d1de458f85fc9-heading-faq-c411b9f9b15c4b7a1a0d1de458f85fc9",
"faq-c411b9f9b15c4b7a1a0d1de458f85fc9-item-0",
"faq-c411b9f9b15c4b7a1a0d1de458f85fc9-item-1",
"faq-c411b9f9b15c4b7a1a0d1de458f85fc9-item-2",
"faq-e6bc2b3599e2d94773085876d5822076",
"faq-e6bc2b3599e2d94773085876d5822076-heading-faq-e6bc2b3599e2d94773085876d5822076",
"faq-e6bc2b3599e2d94773085876d5822076-item-0",
"faq-e6bc2b3599e2d94773085876d5822076-item-1",
"faq-e6bc2b3599e2d94773085876d5822076-item-2",
"fas-1", "fas-1",
"fas-2", "fas-2",
"fas-3", "fas-3",
"fas-angle-left", "fas-angle-left",
"fas-arrow-left", "fas-arrow-left",
"fas-arrow-right", "fas-arrow-right",
"fas-book-open",
"fas-check",
"fas-chevron-right", "fas-chevron-right",
"fas-circle",
"fas-circle-check", "fas-circle-check",
"fas-circle-play", "fas-circle-play",
"fas-circle-question", "fas-circle-question",
"fas-code", "fas-code",
"fas-display",
"fas-divide", "fas-divide",
"fas-ellipsis", "fas-ellipsis",
"fas-globe", "fas-globe",
"fas-grip",
"fas-h", "fas-h",
"fas-heart", "fas-heart",
"fas-house", "fas-house",
@@ -638,18 +718,25 @@
"fas-link", "fas-link",
"fas-magnifying-glass", "fas-magnifying-glass",
"fas-moon", "fas-moon",
"fas-robot",
"fas-rocket", "fas-rocket",
"fas-share-nodes", "fas-share-nodes",
"fas-sitemap",
"fas-sort", "fas-sort",
"fas-sun", "fas-sun",
"fas-timeline", "fas-timeline",
"fas-trash-can",
"fas-up-right-from-square", "fas-up-right-from-square",
"fichier", "fichier",
"fil-dariane", "fil-dariane",
"file", "file",
"flexible--ready-to-use",
"flowchart", "flowchart",
"footer-docs-collapse-15", "footer-docs-collapse-15",
"footer-docs-collapse-19",
"footer-docs-collapse-20",
"footer-file-collapse-1", "footer-file-collapse-1",
"footer-file-collapse-5",
"formula-katex", "formula-katex",
"formule-katex", "formule-katex",
"gantt-diagram", "gantt-diagram",
@@ -669,6 +756,7 @@
"imgix", "imgix",
"indicateur-de-chargement", "indicateur-de-chargement",
"infobulle", "infobulle",
"input-type",
"ins", "ins",
"invite-de-commandes", "invite-de-commandes",
"items-type", "items-type",
@@ -687,6 +775,7 @@
"mermaid-diagrams", "mermaid-diagrams",
"messages-type", "messages-type",
"mindmap", "mindmap",
"more-type",
"nav", "nav",
"nav-0-0", "nav-0-0",
"nav-0-1", "nav-0-1",
@@ -699,14 +788,14 @@
"navbar-0-collapse", "navbar-0-collapse",
"navbar-mode", "navbar-mode",
"navbar-mode-checkbox", "navbar-mode-checkbox",
"navbar-sample",
"navbar-sample-checkbox",
"navbar-sample-collapse", "navbar-sample-collapse",
"navigation", "navigation",
"notification", "notification",
"outlined-buttons",
"overview", "overview",
"persona", "persona",
"pie-chart", "pie-chart",
"powered-by-open-source",
"projecten", "projecten",
"projects", "projects",
"projets", "projets",
@@ -718,8 +807,10 @@
"réduire", "réduire",
"security", "security",
"sequence-diagram", "sequence-diagram",
"sized-buttons",
"spinner", "spinner",
"state-diagram", "state-diagram",
"stateful-buttons",
"sub", "sub",
"sup", "sup",
"sécurité", "sécurité",

17
go.mod
View File

@@ -8,16 +8,17 @@ require (
github.com/gethinode/mod-bootstrap v1.3.3 // indirect github.com/gethinode/mod-bootstrap v1.3.3 // indirect
github.com/gethinode/mod-csp v1.0.7 // indirect github.com/gethinode/mod-csp v1.0.7 // indirect
github.com/gethinode/mod-flexsearch/v2 v2.1.1 // indirect github.com/gethinode/mod-flexsearch/v2 v2.1.1 // indirect
github.com/gethinode/mod-fontawesome v1.10.1 // indirect github.com/gethinode/mod-fontawesome/v2 v2.1.1 // indirect
github.com/gethinode/mod-fontawesome/v2 v2.0.0 // indirect github.com/gethinode/mod-google-analytics v1.3.2 // indirect
github.com/gethinode/mod-google-analytics v1.3.1 // indirect
github.com/gethinode/mod-katex v1.1.3 // indirect github.com/gethinode/mod-katex v1.1.3 // indirect
github.com/gethinode/mod-leaflet v1.2.1 // indirect github.com/gethinode/mod-leaflet v1.3.0 // indirect
github.com/gethinode/mod-lottie v1.5.14 // indirect github.com/gethinode/mod-lottie v1.6.0 // indirect
github.com/gethinode/mod-mermaid v1.1.23 // 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 v1.1.7 // indirect
github.com/gethinode/mod-utils/v2 v2.10.0 // indirect github.com/gethinode/mod-simple-datatables/v2 v2.0.1 // indirect
github.com/gethinode/mod-utils/v3 v3.1.2 // indirect github.com/gethinode/mod-utils/v3 v3.3.1 // indirect
github.com/gethinode/mod-utils/v4 v4.6.0 // indirect
github.com/nextapps-de/flexsearch v0.0.0-20250606060143-c28f52c09b7a // 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
) )

30
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 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 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.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 h1:fly42RQ69bdyJe8WFefsBIo7WMIXkd3wZn32kyAr4h4=
github.com/gethinode/mod-google-analytics v1.0.0/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII= github.com/gethinode/mod-google-analytics v1.0.0/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
github.com/gethinode/mod-google-analytics v1.0.1 h1:zbmOdnAhhFCA7qWw7fnR46biWhqW2r06sIaTWyhB5R0= 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.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 h1:WPXrsO6Kpp0k8PYY9a1JyiZgYGMlkBfHY8eEg6CfcL0=
github.com/gethinode/mod-google-analytics v1.3.1/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII= 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 h1:me/3dIIZBkfk1mRIFt8QiAGYwYDoSG5bc2hHRtIutFc=
github.com/gethinode/mod-katex v1.0.0/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg= github.com/gethinode/mod-katex v1.0.0/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.1 h1:809QUztxmKgMNchU+v03iMO7Ma+ISc3ZzhXYauc21rs= github.com/gethinode/mod-katex v1.0.1 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.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 h1:p0bKi+F5vbXwYknBvFEN9KymK8PRqKaYhVz5O1QPs/c=
github.com/gethinode/mod-leaflet v1.2.1/go.mod h1:Ei0x9WiL7Dbi4JeG6yI1CE63bT1QJ8sKi67Jea1wFSE= 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 h1:1CUZMcgN5FAyjjyuP3qkaOQ6M5sv6HUAbosW4sIT5VE=
github.com/gethinode/mod-lottie v1.0.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs= github.com/gethinode/mod-lottie v1.0.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
github.com/gethinode/mod-lottie v1.0.1 h1:+IE7xtnSVQpJS56oBJq9RWKZeFEfxrOZAqE3BSrS/u0= 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.13/go.mod h1:tMFSUW9z3kC8IvDfs1ph9MGjuZFRBrpCnpodrwY+L4w=
github.com/gethinode/mod-lottie v1.5.14 h1:17wmpi4XQzmwSB2HKNVa7c6ZzULrRnpKdowOFQQf0m8= 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.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 h1:DA5iIdopb7f3wC+bfZ7J5HhcRUuVI/2j1+W/j5L/wwQ=
github.com/gethinode/mod-mermaid v1.1.23/go.mod h1:rw6vrY9DpdJblwFwLuXCdy2kBHxMf6gGKWeetwfTSfc= 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 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.0/go.mod h1:K8T7fIdb8pMOB+OSW4A5lz5IW99+HyzcTgx764fvOGw=
github.com/gethinode/mod-simple-datatables v1.0.2 h1:zhqxHet3iLQWYCBbGROALpOY9zQlptMycFkz1Tto5bA= 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.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 h1:wCY2bWFUxRHWbWzb/zefCACooCSbDPYKrZthfn+qAgM=
github.com/gethinode/mod-simple-datatables v1.1.7/go.mod h1:FjkIEuxqeLLEqqDcz/nHAGHsRfV7EJP5Uhk4kYD8okY= 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 h1:cqHm2xS5uDiJzRm1KfHaNbq6uMVDKLhQa8/BuTZ1nhY=
github.com/gethinode/mod-utils v1.0.0/go.mod h1:ONJm3pHCq7nvaPNjusLZNCeCbhOhSBH4HVKHwK1FdYE= github.com/gethinode/mod-utils v1.0.0/go.mod h1:ONJm3pHCq7nvaPNjusLZNCeCbhOhSBH4HVKHwK1FdYE=
github.com/gethinode/mod-utils v1.0.1 h1:jhZGlGFHHL1f5HXbBMXfiZ2gCz4TVafAzjnRPTIBSEE= github.com/gethinode/mod-utils v1.0.1 h1:jhZGlGFHHL1f5HXbBMXfiZ2gCz4TVafAzjnRPTIBSEE=
@@ -412,6 +426,20 @@ github.com/gethinode/mod-utils/v3 v3.1.1 h1:hjC/vnq7NF2Kf18qkpeTHiS14bVrNa55avy0
github.com/gethinode/mod-utils/v3 v3.1.1/go.mod h1:9iHYWiDpDlcyrGAOHniubK/kziJYhTsw7UpGM+u4MOM= github.com/gethinode/mod-utils/v3 v3.1.1/go.mod h1:9iHYWiDpDlcyrGAOHniubK/kziJYhTsw7UpGM+u4MOM=
github.com/gethinode/mod-utils/v3 v3.1.2 h1:nE1tUkeSTOPxaLRoSiQlODbJhekOJsHrKXte5A2jujg= github.com/gethinode/mod-utils/v3 v3.1.2 h1:nE1tUkeSTOPxaLRoSiQlODbJhekOJsHrKXte5A2jujg=
github.com/gethinode/mod-utils/v3 v3.1.2/go.mod h1:9iHYWiDpDlcyrGAOHniubK/kziJYhTsw7UpGM+u4MOM= github.com/gethinode/mod-utils/v3 v3.1.2/go.mod h1:9iHYWiDpDlcyrGAOHniubK/kziJYhTsw7UpGM+u4MOM=
github.com/gethinode/mod-utils/v3 v3.1.3 h1:oIpbIUCpVrWb7Axo1TZODWJ2iA6uYZp4rpx8fC7GIXk=
github.com/gethinode/mod-utils/v3 v3.1.3/go.mod h1:9iHYWiDpDlcyrGAOHniubK/kziJYhTsw7UpGM+u4MOM=
github.com/gethinode/mod-utils/v3 v3.2.0 h1:FmRCMAqNvKeQSY+rTy+9lZ65JKkuDA9MTw/HW/HWzSM=
github.com/gethinode/mod-utils/v3 v3.2.0/go.mod h1:9iHYWiDpDlcyrGAOHniubK/kziJYhTsw7UpGM+u4MOM=
github.com/gethinode/mod-utils/v3 v3.3.0 h1:qxuIavgL9LIyMhfCv8El+KL41rcNmQ8GaExn142QmLw=
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/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3 h1:H/qVR5O4BXjRjD+5PZB+r4ug2BSJ2Of4RtwOntd+OKo= 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-20230711092928-1243fd883ec3/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
github.com/nextapps-de/flexsearch v0.0.0-20240108021025-afd75f742f22 h1:re7L8FxbXQpnX8BgzkdUnDpsUmloGNyLmiy2ZCln8pg= github.com/nextapps-de/flexsearch v0.0.0-20240108021025-afd75f742f22 h1:re7L8FxbXQpnX8BgzkdUnDpsUmloGNyLmiy2ZCln8pg=
@@ -442,3 +470,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.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 h1:efmXVyq839m5QQ0+JBUdQQ1TrmoBqvQ5kRhUueKsH+4=
github.com/twbs/bootstrap v5.3.6+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= 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,9 +31,9 @@
"use" "use"
], ],
"classes": [ "classes": [
"%!s(<nil>)",
"active", "active",
"align-items-center", "align-items-center",
"align-items-start",
"align-self-center", "align-self-center",
"align-self-end", "align-self-end",
"ball", "ball",
@@ -50,11 +50,11 @@
"btn-primary", "btn-primary",
"checkbox", "checkbox",
"col", "col",
"col-10",
"col-12", "col-12",
"col-6", "col-6",
"col-8", "col-8",
"col-md-", "col-md-1",
"col-md-11",
"col-md-2", "col-md-2",
"col-md-6", "col-md-6",
"col-md-8", "col-md-8",
@@ -92,10 +92,10 @@
"fixed-top", "fixed-top",
"flex-column", "flex-column",
"flex-fill", "flex-fill",
"flex-grow-1",
"footer", "footer",
"form-control", "form-control",
"fs-3", "fs-3",
"fullscreen",
"fw-30", "fw-30",
"fw-bold", "fw-bold",
"h-100", "h-100",
@@ -111,12 +111,14 @@
"is-search", "is-search",
"justify-content-center", "justify-content-center",
"justify-content-end", "justify-content-end",
"justify-content-md-start",
"justify-content-start", "justify-content-start",
"label", "label",
"lead", "lead",
"link-bg-footer", "link-bg-footer",
"link-secondary", "link-secondary",
"main-content", "m-auto",
"main",
"main-nav-toggler", "main-nav-toggler",
"me-auto", "me-auto",
"middle-bar", "middle-bar",
@@ -156,19 +158,15 @@
"ps-1", "ps-1",
"pt-1", "pt-1",
"pt-4", "pt-4",
"pt-5",
"pt-md-0", "pt-md-0",
"pt-md-3",
"px-4", "px-4",
"px-xxl-0", "px-xxl-0",
"py-3", "py-3",
"py-4", "py-4",
"py-md-5",
"rounded", "rounded",
"row", "row",
"row-cols-1", "row-cols-1",
"row-cols-2", "row-cols-2",
"row-cols-md-2",
"row-cols-sm-3", "row-cols-sm-3",
"search", "search",
"search-input", "search-input",
@@ -179,6 +177,7 @@
"text-body", "text-body",
"text-center", "text-center",
"text-decoration-none", "text-decoration-none",
"text-md-start",
"text-muted", "text-muted",
"text-secondary", "text-secondary",
"text-sm-start", "text-sm-start",

View File

@@ -24,6 +24,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/adapter/cloudinary.html" "partial" "assets/adapter/cloudinary.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -11,6 +11,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/adapter/hugo.html" "partial" "assets/adapter/hugo.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -11,6 +11,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/adapter/imagekit-rewrite.html" "partial" "assets/adapter/imagekit-rewrite.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -24,6 +24,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/adapter/imagekit.html" "partial" "assets/adapter/imagekit.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -22,6 +22,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/adapter/imgix.html" "partial" "assets/adapter/imgix.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -0,0 +1,132 @@
{{/*
Copyright © 2022 - 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 }}
{{ define "_partials/inline/args-table.html"}}
{{ $args := .args }}
{{ $types := .types }}
{{ $page := .page }}
{{ $group := .group | default "" }}
{{ $parent := .parent }}
{{ $reflect := "" }}
{{ $table := printf "| %s | %s | %s | %s | %s |\n| --- | --- | --- | --- | --- |"
(T "name") (T "type") (T "required") (T "default") (T "comment")
}}
{{ range $key, $val := $args }}
{{ if eq $key "_reflect" }}
{{ $reflect = $val }}
{{ continue }}
{{ end }}
{{ $skip := false }}
{{ $groups := slice }}
{{ if $val }} {{ $groups = $groups | append $val.group }}{{ end }}
{{ if and $group $val.group }}
{{ $skip = not (in $groups $group )}}
{{ end }}
{{ if $parent }}{{ $skip = not (in (slice "cascade" "merge") $val.parent) }}{{ end }}
{{ if not $skip }}
{{ $type := $val.type }}
{{ $udt := false }}
{{ $slice := false }}
{{ if reflect.IsSlice $val.type }}{{ $type = delimit $val.type ", " }}{{ end }}
{{ with index $types $val.type }}
{{ $udt = true }}
{{ $slice = eq ._reflect "[]interface {}" }}
{{ end }}
{{ $required := "" }}
{{ if not $val.optional }}{{ $required = "yes" }}{{ end }}
{{ $comment := $val.comment }}
{{ if $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 }}
{{ $comment = printf "%s %s" $btn $comment }}
{{ end }}
{{ end }}
{{ if $val.release }}
{{ $comment = printf `{{< release version="%s" short="true" button-size="xs" inline="true" >}} %s` $val.release $comment }}
{{ end }}
{{ $min := "" }}
{{ $max := "" }}
{{ if and $val.options.values (eq $type "select") }}
{{ $comment = printf "%s %s: [`%s`]." $comment (T "supportedValues") (delimit $val.options.values "`, `") }}
{{ else if in (slice "int" "float" "float64") $type }}
{{ if eq (printf "%T" $val.options.min) "int" }}{{ $min = int $val.options.min }}{{ end }}
{{ if eq (printf "%T" $val.options.max) "int" }}{{ $max = int $val.options.max }}{{ end }}
{{ end }}
{{ if and (eq (printf "%T" $min) "int") (eq (printf "%T" $max) "int") }}
{{ $comment = printf "%s %s: [`%d - %d`]." $comment (T "supportedValues") $min $max }}
{{ else if (eq (printf "%T" $min) "int") }}
{{ $comment = printf "%s %s: `>=%d`." $comment (T "supportedValues") $min }}
{{ else if (eq (printf "%T" $max) "int") }}
{{ $comment = printf "%s %s: `<=%d`." $comment (T "supportedValues") $max }}
{{ end }}
{{ $default := "" }}
{{ with $val.default }}{{ $default = printf "`%v`" . }}{{ end }}
{{ if $udt }}{{ $type = printf "[%s](#%s)" $type (anchorize (printf "%s %s" $type (T "type"))) }}{{ end }}
{{ if $slice }}{{ $type = printf "[]%s" $type }}{{ end }}
{{ $table = printf "%s\n| %s | %s | %s | %s | %s |" $table $key $type $required $default $comment }}
{{ end }}
{{ end }}
{{ return partial "assets/table.html" (dict "page" $page "input" $table "wrap" true) }}
{{ end }}
{{/* Initialize arguments */}}
{{- $args := partial "utilities/InitArgs.html" (dict "structure" "args" "args" . "group" "partial") -}}
{{- if or $args.err $args.warnmsg -}}
{{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/args.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg)
"file" page.File
) -}}
{{- $error = $args.err -}}
{{- end -}}
{{/* Initialize type structure */}}
{{ $structure := $args.structure }}
{{ $bookshop := "" }}
{{ if hasPrefix $structure "bookshop-" }}{{ $bookshop = strings.TrimPrefix "bookshop-" $structure }}{{ $structure = "" }}{{ end }}
{{ $types := dict }}
{{ if not $error }}
{{ $types = partial "utilities/InitTypes.html" (dict "structure" $structure "bookshop" $bookshop) }}
{{ if or $types.err $types.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/args.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($types.errmsg | append $types.warnmsg)
"file" page.File
)}}
{{ $error = $args.err }}
{{ end }}
{{ end }}
{{/* Main code */}}
{{ if not $error }}
{{ $params := dict "types" $types.udt "page" $args.page "group" $args.group "parent" $args.parent }}
{{ if in (slice "arguments" "both") $args.renderType }}
{{ partial "inline/args-table.html" (merge $params (dict "args" $types.types)) }}
{{ end }}
{{ 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 }}
{{ partial "inline/args-table.html" (merge $params (dict "args" $v)) }}
{{ end }}
{{ end }}
{{ end }}

View File

@@ -21,6 +21,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/breadcrumb.html" "partial" "assets/breadcrumb.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -11,9 +11,10 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/button.html" "partial" "assets/button.html"
"msg" "Invalid arguments" "warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
)}} )}}
{{ $error = $args.err }} {{ $error = $args.err }}
{{ end }} {{ end }}
@@ -32,8 +33,7 @@
{{- with $args.tooltip }}{{ $tooltip = . }}{{ end -}} {{- with $args.tooltip }}{{ $tooltip = . }}{{ end -}}
{{- end -}} {{- end -}}
{{- $href := .href -}} {{- $href := $args.href -}}
{{ $linkType := or $args.linkType $args.type }} {{ $linkType := or $args.linkType $args.type }}
{{ $buttonSize := or $args.buttonSize $args.size }} {{ $buttonSize := or $args.buttonSize $args.size }}
{{ $toastID := or $args.toastId $args.toast }} {{ $toastID := or $args.toastId $args.toast }}
@@ -73,13 +73,21 @@
{{/* Main code */}} {{/* Main code */}}
{{ if not $error }} {{ 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 }}" <a aria-label="{{ (or $label $title) | safeHTML }}"
{{ if ne $state "disabled" }}{{ with $href }}href="{{ . }}"{{ end }}{{ end -}} {{ if ne $state "disabled" }}{{ with $href }}href="{{ . }}"{{ end }}{{ end -}}
{{- with $args.id }} id="{{ . }}"{{ end -}} {{- with $args.id }} id="{{ . }}"{{ end -}}
{{- with $target }} target="{{ . }}"{{ end }}{{ with $rel }} rel="{{ . }}"{{ end -}} {{- with $target }} target="{{ . }}"{{ end }}{{ with $rel }} rel="{{ . }}"{{ end -}}
{{- with $toastID }} data-toast-target="{{ . }}"{{ end -}} {{- with $toastID }} data-toast-target="{{ . }}"{{ end -}}
{{- with $args.clipboard }} data-clipboard="{{ . }}"{{ 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 -}} {{ if eq $state "disabled" }}aria-disabled="true"{{ end -}}
{{- else }} class="btn btn-link link-{{ $args.color }} position-relative {{ $class }}"{{ 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 -}} {{- with $tooltip }} data-bs-toggle="tooltip" data-bs-title="{{ . }}" data-bs-placement="{{ $args.placement }}"{{ end -}}

View File

@@ -21,14 +21,17 @@
{{- if or $args.err $args.warnmsg -}} {{- if or $args.err $args.warnmsg -}}
{{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/card-group.html" "partial" "assets/card-group.html"
"msg" "Invalid arguments" "warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
)}} )}}
{{- $error = $args.err -}} {{- $error = $args.err -}}
{{- end -}} {{- end -}}
{{/* Initialize global variables */}} {{/* Initialize global variables */}}
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{- $pretty := site.Params.main.internalLinks.pretty | default false -}} {{- $pretty := site.Params.main.internalLinks.pretty | default false -}}
{{/* Initialize local variables */}} {{/* Initialize local variables */}}
@@ -135,8 +138,7 @@
{{/* Main code */}} {{/* Main code */}}
{{- if and (not $error) (or (gt (len $elements) 0) $args.cards) -}} {{- 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 {{ $args.wrapper }}">
<div class="container-fluid {{ if $args.scroll }}card-container-wrapper{{ end }} p-0">
<div class="row g-{{ $args.gutter -}} <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.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 }}"> {{- if $args.bento }}{{ with $args.valign }} align-items-{{ . }}{{ end }}{{ else }} {{ $colGrid }}{{ end }}">
@@ -186,7 +188,7 @@
{{- if $paginator -}} {{- if $paginator -}}
{{- if gt $paginator.TotalPages 1 -}} {{- 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 -}} {{- end -}}
{{- else -}} {{- else -}}
{{- if or (and (gt $count $max) $args.hrefTitle) (and $args.hrefForce $args.hrefTitle) -}} {{- if or (and (gt $count $max) $args.hrefTitle) (and $args.hrefForce $args.hrefTitle) -}}
@@ -194,8 +196,11 @@
{{- if and $pretty (not (hasSuffix $href "/" )) (not (strings.Contains $href "#")) -}} {{- if and $pretty (not (hasSuffix $href "/" )) (not (strings.Contains $href "#")) -}}
{{- $href = printf "%s/" $href -}} {{- $href = printf "%s/" $href -}}
{{- end -}} {{- 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 -}}
{{- end -}} {{- end -}}
</div>
{{- end -}} {{- end -}}

View File

@@ -62,14 +62,18 @@
</small></p> </small></p>
{{- end -}} {{- 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") }} {{ $args := partial "utilities/InitArgs.html" (dict "structure" "card" "args" . "group" "partial") }}
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/card.html" "partial" "assets/card.html"
"msg" "Invalid arguments" "warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
)}} )}}
{{ $error = $args.err }} {{ $error = $args.err }}
{{ end }} {{ end }}
@@ -147,19 +151,19 @@
{{ if $thumbnail }} {{ if $thumbnail }}
{{ if eq $args.orientation "horizontal-sm" }} {{ if eq $args.orientation "horizontal-sm" }}
{{ $stack = "fa-1x" }} {{ $stack = "fa-1x" }}
{{ $col1 = "col-4 col-md-2" }} {{ $col1 = "col-4 col-md-2 pe-0" }}
{{ $col2 = "col-8 col-md-10" }} {{ $col2 = "col-8 col-md-10" }}
{{ else }} {{ else }}
{{ $col1 = "col-4" }} {{ $col1 = "col-4 pe-0" }}
{{ $col2 = "col-8" }} {{ $col2 = "col-8" }}
{{ end }} {{ end }}
{{ else if $icon }} {{ else if $icon }}
{{ if eq $args.orientation "horizontal-sm" }} {{ if eq $args.orientation "horizontal-sm" }}
{{ $stack = "fa-1x" }} {{ $stack = "fa-1x" }}
{{ $col1 = "col-2 col-sm-3 col-md-4 col-xl-2" }} {{ $col1 = "col-4 col-md-2 pe-0" }}
{{ $col2 = "col-10 col-sm-9 col-md-8 col-xl-10" }} {{ $col2 = "col-8 col-md-10" }}
{{ else }} {{ else }}
{{ $col1 = "col-4" }} {{ $col1 = "col-4 pe-0" }}
{{ $col2 = "col-8" }} {{ $col2 = "col-8" }}
{{ end }} {{ end }}
@@ -167,7 +171,7 @@
{{/* Render horizontal card */}} {{/* Render horizontal card */}}
<div class="card {{ $colorStyle }}{{ $args.class }}"> <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 -}} {{- if $thumbnail -}}
<div class="{{ $col1 }}"> <div class="{{ $col1 }}">
{{ $fullHeight := "card-img-h100" }} {{ $fullHeight := "card-img-h100" }}

View File

@@ -9,9 +9,10 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/carousel-item.html" "partial" "assets/carousel-item.html"
"msg" "Invalid arguments" "warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
)}} )}}
{{ end }} {{ end }}

View File

@@ -11,6 +11,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/download.html" "partial" "assets/download.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -11,6 +11,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/featured-illustration.html" "partial" "assets/featured-illustration.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -11,6 +11,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/helpers/get-dimension.html" "partial" "assets/helpers/get-dimension.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
@@ -19,21 +20,23 @@
{{ end }} {{ end }}
{{/* Initialize local arguments */}} {{/* Initialize local arguments */}}
{{ $dim := "" }} {{ $dim := slice }}
{{ $default := dict "4x3" "1400x1050" "3x2" "1400x933" "1x1" "1400x1400" "16x9" "1400x788" "21x9" "1400x600" "auto" "1400" }} {{ $default := dict "4x3" "1400x1050" "3x2" "1400x933" "1x1" "1400x1400" "16x9" "1400x788" "21x9" "1400x600" "auto" "1400" }}
{{/* Initialize dimensions data - stripping unsupported file extension */}} {{ if not $args.err }}
{{ $config := "dimensions" }} {{/* Initialize dimensions data - stripping unsupported file extension */}}
{{ with index site.Params "dam" }}{{ with index . "dimensions" }}{{ $config = . }}{{ end }}{{ end }} {{ $config := "dimensions" }}
{{ $config = path.Join (path.Dir $config) (path.BaseName $config) }} {{ 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 }} {{ with index site.Data $config }}
{{ $matches := first 1 (where . "ratio" $args.ratio) }} {{ $matches := first 1 (where . "ratio" $args.ratio) }}
{{ if eq ($matches | len) 1 }} {{ if eq ($matches | len) 1 }}
{{ $dim = (index $matches 0).dimensions }} {{ $dim = (index $matches 0).dimensions }}
{{ end }}
{{ end }} {{ end }}
{{ if not $dim }}{{ $dim = slice (index $default $args.ratio) }}{{ end }}
{{ end }} {{ end }}
{{ if not $dim }}{{ $dim = slice (index $default $args.ratio) }}{{ end }}
{{ return $dim }} {{ return $dim }}

View File

@@ -11,6 +11,7 @@
{{- if or $args.err $args.warnmsg -}} {{- if or $args.err $args.warnmsg -}}
{{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/helpers/image-definition.html" "partial" "assets/helpers/image-definition.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
@@ -50,6 +51,17 @@
{{- $width := index $target "width" -}} {{- $width := index $target "width" -}}
{{- $data := index $target "data" -}} {{- $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 */}} {{/* Add color modes */}}
{{- range $none := $modes -}} {{- range $none := $modes -}}
{{- if ne $none $args.colorMode -}} {{- if ne $none $args.colorMode -}}
@@ -80,7 +92,12 @@
{{ with $width }} width="{{ . }}"{{ end -}} {{ with $width }} width="{{ . }}"{{ end -}}
{{ with $alt }} alt="{{ . }}"{{ end }}> {{ with $alt }} alt="{{ . }}"{{ end }}>
{{- else -}} {{- 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> <use href="{{ $fallbackURL }}#{{ $fileAnchor }}"></use>
</svg> </svg>
{{- end -}} {{- end -}}

View File

@@ -11,6 +11,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/helpers/image-dimension.html" "partial" "assets/helpers/image-dimension.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -11,6 +11,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/helpers/image-rewrite.html" "partial" "assets/helpers/image-rewrite.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -9,6 +9,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/helpers/image-set.html" "partial" "assets/helpers/image-set.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -9,14 +9,15 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/hero-image.html" "partial" "assets/hero-image.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
)}} )}}
{{ end }} {{ end }}
{{ if not $args.err }} {{ if and (not $args.err) (or $args.image $args.icon) }}
<div class="hero-image-container"> <div class="hero-image-container {{ with $args.justify }}d-flex justify-content-center justify-content-md-{{ . }}{{ end }}">
{{ partial "assets/featured-illustration.html" (dict {{ partial "assets/featured-illustration.html" (dict
"page" $args.page "page" $args.page
"icon" $args.icon "icon" $args.icon

View File

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

View File

@@ -11,6 +11,7 @@
{{- if or $args.err $args.warnmsg -}} {{- if or $args.err $args.warnmsg -}}
{{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/image.html" "partial" "assets/image.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
@@ -37,6 +38,8 @@
"page" $args.page "page" $args.page
"ratio" $args.ratio "ratio" $args.ratio
"portrait" $args.portrait "portrait" $args.portrait
"image-width" $args.imageWidth
"image-height" $args.imageHeight
"wrapper" $args.wrapper "wrapper" $args.wrapper
"class" $args.class "class" $args.class
"title" $args.title "title" $args.title
@@ -61,7 +64,10 @@
{{- range $suffix := $modes -}} {{- range $suffix := $modes -}}
{{- $image := printf "%s-%s%s" $base $suffix $ext -}} {{- $image := printf "%s-%s%s" $base $suffix $ext -}}
{{- $params = merge $params (dict "src" $image "color-mode" $suffix "modes" $modes) -}} {{- $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 -}} {{- partial "assets/helpers/image-definition.html" $params -}}
{{- end -}} {{- end -}}
{{ else }} {{ else }}

View File

@@ -12,6 +12,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/link.html" "partial" "assets/link.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -11,6 +11,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/links.html" "partial" "assets/links.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
@@ -20,6 +21,7 @@
{{/* Initialize global arguments */}} {{/* Initialize global arguments */}}
{{- $breakpoint := page.Scratch.Get "breakpoint" -}} {{- $breakpoint := page.Scratch.Get "breakpoint" -}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{- define "_partials/links-content.html" -}} {{- define "_partials/links-content.html" -}}
{{ $links := .links }} {{ $links := .links }}
@@ -92,10 +94,10 @@
{{ end }} {{ end }}
{{ 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) }} {{ partial "links-content.html" (dict "links" $args.links "justify" $args.justify "type" $args.linkType "li" false) }}
</div> </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) }} {{ partial "links-content.html" (dict "links" $args.links "justify" $args.justify "type" $args.linkType "li" true) }}
</div> </div>

View File

@@ -9,6 +9,7 @@
{{- if or $args.err $args.warnmsg -}} {{- if or $args.err $args.warnmsg -}}
{{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/live-image.html" "partial" "assets/live-image.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -7,6 +7,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/live-pages.html" "partial" "assets/live-pages.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -10,6 +10,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/nav-item.html" "partial" "assets/nav-item.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
@@ -71,7 +72,7 @@
aria-labelledby="{{ $parentID }}-heading-{{ $args.id }}" aria-labelledby="{{ $parentID }}-heading-{{ $args.id }}"
data-bs-parent="#accordion-{{ $parentID }}" 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>
</div> </div>
{{ else }} {{ else }}
@@ -86,7 +87,7 @@
data-has-content="{{ gt (len $args.body) 0 }}" data-has-content="{{ gt (len $args.body) 0 }}"
{{ if $args.disabled }} data-disabled-id="{{ $args.id }}"{{ end }} {{ if $args.disabled }} data-disabled-id="{{ $args.id }}"{{ end }}
> >
{{ $args.body }} {{ $args.body | $args.page.RenderString | safeHTML }}
</div> </div>
{{ end }} {{ end }}
{{ end }} {{ end }}

View File

@@ -11,6 +11,7 @@
{{- if or $args.err $args.warnmsg -}} {{- if or $args.err $args.warnmsg -}}
{{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/nav.html" "partial" "assets/nav.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
@@ -33,6 +34,7 @@
<div id="accordion-{{ $id }}" class="accordion mb-3{{ with $args.class }} {{ . }}{{ end }} nav-callout"> <div id="accordion-{{ $id }}" class="accordion mb-3{{ with $args.class }} {{ . }}{{ end }} nav-callout">
{{- range $index, $item := $args.list -}} {{- range $index, $item := $args.list -}}
{{ partial "assets/nav-item.html" (dict {{ partial "assets/nav-item.html" (dict
"page" $args.page
"id" $index "id" $index
"parentID" $id "parentID" $id
"fade" false "fade" false

View File

@@ -11,6 +11,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/navbar-item.html" "partial" "assets/navbar-item.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -72,12 +72,16 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/navbar.html" "partial" "assets/navbar.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
)}} )}}
{{ end }} {{ end }}
{{/* Initialize global variables */}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{/* Initialize local arguments */}} {{/* Initialize local arguments */}}
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}} {{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
{{- $pretty := site.Params.main.internalLinks.pretty | default false }} {{- $pretty := site.Params.main.internalLinks.pretty | default false }}
@@ -113,48 +117,16 @@
{{- $enableLanguage := or $page.IsTranslated hugo.IsMultilingual -}} {{- $enableLanguage := or $page.IsTranslated hugo.IsMultilingual -}}
{{- $horizontal := default false site.Params.navigation.horizontal -}} {{- $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 -}} {{- $title := site.Title -}}
{{- if $args.title -}} {{- if $args.title -}}
{{- $title = $args.title -}} {{- $title = $args.title -}}
{{- if not $args.logo }}{{ $logo = "" }}{{ end -}}
{{- 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 -}} {{- $pre := $args.pre -}}
{{- $post := $args.post -}} {{- $post := $args.post -}}
{{- $class := $args.class -}} {{- $class := $args.class -}}
@@ -170,7 +142,7 @@
{{/* Main code */}} {{/* Main code */}}
<div class="container-fluid {{ if $args.fixed }}fixed-top{{ else if $overlay }}navbar-overlay{{ end }} p-0{{ with $class }} {{ . }}{{ end }}"> <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) -}} {{- 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 not $overlay }}{{ with $color }} bg-{{ . }}{{ end }}{{ end -}}
{{ if $args.fixed }} navbar-fixed-top{{ end }} navbar-expand-{{ $args.breakpoint -}} {{ if $args.fixed }} navbar-fixed-top{{ end }} navbar-expand-{{ $args.breakpoint -}}
{{ if $contrast }} navbar-contrast{{ end }}" {{ if $contrast }} navbar-contrast{{ end }}"
@@ -197,18 +169,9 @@
</div> </div>
{{/* Insert the brand logo or name */}} {{/* 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" }}"> <a class="navbar-brand" href="{{ site.Home.RelPermalink }}" aria-label="{{ T "home" }}">
{{- if (and $logoLight $logoDark) -}} {{- with $logo -}}{{ . }}{{- else -}}<div class="navbar-title fw-bold h-100">{{ $title }}</div>{{- end -}}
{{ $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 -}}
</a> </a>
</div> </div>

View File

@@ -9,6 +9,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/page-alert.html" "partial" "assets/page-alert.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -165,6 +165,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/pagination.html" "partial" "assets/pagination.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -9,6 +9,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/persona.html" "partial" "assets/persona.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -7,68 +7,105 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/section-title.html" "partial" "assets/section-title.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
)}} )}}
{{ end }} {{ end }}
{{/* Initialize global arguments */}}
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{/* Initialize local arguments */}} {{/* Initialize local arguments */}}
{{- $size := (or .size site.Params.modules.bookshop.title.size) | default 4 -}} {{- $size := (or $args.size site.Params.modules.bookshop.title.size) | default 4 -}}
{{- $arrangement := (or .arrangement site.Params.modules.bookshop.title.arrangement) | default "above" -}} {{- $arrangement := (or $args.arrangement site.Params.modules.bookshop.title.arrangement) | default "above" -}}
{{- $headingStyle := (or .headingStyle site.Params.modules.bookshop.title.headingStyle) | default "display" -}} {{- $headingStyle := (or $args.headingStyle site.Params.modules.bookshop.title.headingStyle) | default "display" -}}
{{- $bodyStyle := (or .bodyStyle site.Params.modules.bookshop.title.bodyStyle) | default "lead text-muted" -}} {{- $contentStyle := (or $args.contentStyle site.Params.modules.bookshop.title.contentStyle) | default "lead text-muted" -}}
{{- $preheading := $args.heading.preheading }} {{- $preheading := $args.heading.preheading }}
{{- $title := $args.heading.title }} {{- $title := $args.heading.title }}
{{- $width := $args.heading.width | default 12 -}}
{{ if and (not $preheading) $args.section }} {{ if and (not $preheading) $args.useSection }}{{ $preheading = page.CurrentSection.Name }}{{ end }}
{{ $preheading = page.CurrentSection.Name }}
{{ end }}
{{ if site.Params.main.titleCase }} {{ if site.Params.main.titleCase }}
{{ $preheading = title $preheading }} {{ $preheading = title $preheading }}
{{ $title = title $title }} {{ $title = title $title }}
{{ end }} {{ end }}
{{- $breakpoint := page.Scratch.Get "breakpoint" -}}
{{ define "_partials/assets/section-title-header.html" }} {{ define "_partials/assets/section-title-header.html" }}
{{ $headingStyle := .headingStyle }} {{ $headingStyle := .headingStyle }}
{{ if (index . "use-title") }} {{ if (index . "use-title") }}
{{ $title := .title | page.RenderString }} {{ $title := .title | page.RenderString }}
{{ $label := trim (replaceRE "\r\n?|\n" " " ($title | plainify)) " " }} {{ $label := trim (replaceRE "\r\n?|\n" " " ($title | plainify)) " " }}
<h1 id="{{ anchorize .title }}" {{ if ne $title $label }}aria-label="{{ $label }}"{{ end -}} <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 }} {{ 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 }}
{{ 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 --> <!-- 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 $args.class }} {{ . }}{{ end }}{{ if lt $width 12 }} col-12 col-{{ $breakpoint.current }}-{{ $width }}{{ end }} py-{{ $padding.y }}">
{{ if and $preheading (eq $arrangement "first") }} {{ if and $preheading (eq $arrangement "first") }}
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<div class="col-12 col-{{ $breakpoint.prev }}-12 col-{{ $breakpoint.next }}-2 p-0"> <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>
<div class="col-12 col-{{ $breakpoint.prev }}-8 col-{{ $breakpoint.current }}-9 col-{{ $breakpoint.next }}-8 p-0"> <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 }} {{ $header }}
{{ with $args.heading.content }}<div class="{{ $bodyStyle }} pt-4">{{ . | page.RenderString | safeHTML }}</div>{{ end }} {{ with $args.heading.content }}
{{ 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 }} <div class="{{ $contentStyle }} pt-{{ $padding.y }}">{{ . | page.RenderString | safeHTML }}</div>
{{ end }}
{{ $links }}
</div> </div>
<div class="col-12 col-{{ $breakpoint.prev }}-4 col-{{ $breakpoint.current }}-3 col-{{ $breakpoint.next }}-2 p-0 ps-{{ $breakpoint.prev }}-4"> <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 {{ $wrapper := (printf "col-4 col-%s-12 mx-auto pt-%d pt-%s-0" $breakpoint.prev $padding.y $breakpoint.prev) }}
"page" page {{ partial "assets/featured-illustration.html" (merge $imgArgs (dict "wrapper" $wrapper)) }}
"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
) }}
</div> </div>
</div> </div>
</div> </div>
@@ -78,31 +115,29 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row p-0"> <div class="row p-0">
<div class="col-12 col-{{ $breakpoint.current }}-10 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 $preheading }}
{{ with $title }}{{ partial "assets/section-title-header.html" (dict "use-title" $args.useTitle "title" . "headingStyle" $headingStyle "color" $args.color "size" $size) }}{{ end }} <p class="preheading {{ if ne $args.color "body" }}text-{{ $args.color }}{{ else }}text-primary{{ end }}">
{{ with $args.heading.content }}<div class="{{ $bodyStyle }} pt-4">{{ . | page.RenderString | safeHTML }}</div>{{ end }} {{ . | page.RenderString | safeHTML }}
{{ 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 }} </p>
{{ end }}
{{ $header }}
{{ with $args.heading.content }}<div class="{{ $contentStyle }} pt-{{ $padding.y }}">{{ . | page.RenderString | safeHTML }}</div>{{ end }}
{{ $links }}
</div> </div>
<div class="col-12 col-{{ $breakpoint.current }}-2 p-0 pt-2 text-center"> <div class="col-12 col-{{ $breakpoint.current }}-2 p-0 pt-2 text-center">
{{ partial "assets/featured-illustration.html" (dict {{ $wrapper := (printf "col-4 col-%s-12 mx-auto pt-%d pt-%s-0" $breakpoint.prev $padding.y $breakpoint.prev) }}
"page" page {{ partial "assets/featured-illustration.html" (merge $imgArgs (dict "ratio" $args.ratio "wrapper" "mx-auto")) }}
"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
) }}
</div> </div>
</div> </div>
</div> </div>
{{ else }} {{ else }}
{{ with $preheading }}<p class="preheading {{ if ne $args.color "body" }}text-{{ $args.color }}{{ else }}text-primary{{ end }}">{{ . | page.RenderString | safeHTML }}</p>{{ end }} {{ with $preheading }}
{{ with $title }}{{ partial "assets/section-title-header.html" (dict "use-title" $args.useTitle "title" . "headingStyle" $headingStyle "color" $args.color "size" $size) }}{{ end }} <p class="preheading {{ if ne $args.color "body" }}text-{{ $args.color }}{{ else }}text-primary{{ end }}">
{{ with $args.heading.content }}<div class="{{ $bodyStyle }} pt-4">{{ . | page.RenderString | safeHTML }}</div>{{ end }} {{ . | page.RenderString | safeHTML }}
{{ 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 }} </p>
{{ end }}
{{ $header }}
{{ with $args.heading.content }}<div class="{{ $contentStyle }} pt-{{ $padding.y }}">{{ . | page.RenderString | safeHTML }}</div>{{ end }}
{{ $links }}
{{ end }} {{ end }}
</div> </div>

View File

@@ -9,6 +9,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/sharing.html" "partial" "assets/sharing.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -9,6 +9,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/sidebar.html" "partial" "assets/sidebar.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -9,6 +9,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/stack.html" "partial" "assets/stack.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -28,6 +28,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/table.html" "partial" "assets/table.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -27,7 +27,12 @@
{{- $page := $args.page -}} {{- $page := $args.page -}}
{{- $data := partial "utilities/GetI18nData.html" (dict "page" $page "data" $args.data) }} {{- $data := partial "utilities/GetI18nData.html" (dict "page" $page "data" $args.data) }}
{{ if not $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 }} {{ $error = true }}
{{ end -}} {{ end -}}
{{ $background := partial "utilities/GetBackgroundStyle.html" (dict "background" $args.background) }} {{ $background := partial "utilities/GetBackgroundStyle.html" (dict "background" $args.background) }}
@@ -79,7 +84,10 @@
{{ $datestr := (partial "utilities/date.html" (dict "date" $date "format" "long")) -}} {{ $datestr := (partial "utilities/date.html" (dict "date" $date "format" "long")) -}}
<p class="mb-0"><small class="text-body-secondary text-uppercase">{{ $datestr -}}</small></p> <p class="mb-0"><small class="text-body-secondary text-uppercase">{{ $datestr -}}</small></p>
{{ end }} {{ 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> </div>
</div> </div>
@@ -94,8 +102,7 @@
"use-title" $args.useTitle "use-title" $args.useTitle
"size" $args.size "size" $args.size
"links" $args.links "links" $args.links
"type" (or $args.linkType $args.type) "link-type" (or $args.linkType $args.type)
"class" "pb-4"
"arrangement" $arrangement "arrangement" $arrangement
) }} ) }}
{{ end }} {{ end }}

View File

@@ -11,6 +11,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/toast.html" "partial" "assets/toast.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -11,6 +11,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/toc.html" "partial" "assets/toc.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -9,6 +9,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/toc.html" "partial" "assets/toc.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -24,6 +24,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/video.html" "partial" "assets/video.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
@@ -32,7 +33,8 @@
{{ end }} {{ end }}
{{/* Initialize local arguments */}} {{/* Initialize local arguments */}}
{{- $provider := or $args.provider $args.host }} {{- $title := $args.title -}}
{{- $provider := or $args.host $args.provider }}
{{- $account := $args.account }} {{- $account := $args.account }}
{{ if not $account }} {{ if not $account }}
{{ with index $args.page.Site.Params.videos $provider }} {{ with index $args.page.Site.Params.videos $provider }}
@@ -148,7 +150,6 @@
{{ $width := index $metadata "width" }} {{ $width := index $metadata "width" }}
{{ if and $height $width }} {{ if and $height $width }}
{{ $padding := printf "%.2f%%" (mul (div (float $height) $width) 100) }} {{ $padding := printf "%.2f%%" (mul (div (float $height) $width) 100) }}
{{ $title := $args.title }}
{{ if not $title }}{{ $title = printf "Cloudinary video '%s'" (path.BaseName $id) }}{{ end }} {{ if not $title }}{{ $title = printf "Cloudinary video '%s'" (path.BaseName $id) }}{{ end }}
<div class="video-embedded {{ $args.class }}" data-video-padding="{{ $padding }}"> <div class="video-embedded {{ $args.class }}" data-video-padding="{{ $padding }}">

View File

@@ -5,7 +5,12 @@
{{ cond (gt (len .Site.Copyright) 0) .Site.Copyright $copyright }} {{ cond (gt (len .Site.Copyright) 0) .Site.Copyright $copyright }}
{{ .Site.Params.footer.license | safeHTML }} | {{ .Site.Params.footer.license | safeHTML }} |
{{ if .Site.Params.main.endorse }} {{ if .Site.Params.main.endorse }}
{{ $link := partial "assets/link.html" (dict "destination" (index site.Params.links "hinode") "text" "Hinode" "class" "link-bg-footer" "page" .Page) }} {{ $link := partial "assets/link.html" (dict
"href" (index site.Params.links "hinode")
"text" "Hinode"
"class" "link-bg-footer"
"page" .Page
) }}
{{ T "poweredBy" $link | safeHTML }} {{ T "poweredBy" $link | safeHTML }}
{{ end }} {{ end }}
</small> </small>

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

@@ -5,22 +5,26 @@
*/}} */}}
{{/* Initialize arguments */}} {{/* Initialize arguments */}}
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "script" "args" .) }} {{- $args := partial "utilities/InitArgs.html" (dict "structure" "script" "args" .) -}}
{{ if $args.err }} {{ if or $args.err $args.warnmsg }}
{{ partial "utilities/LogErr.html" (dict {{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "templates/script.html" "partial" "templates/script.html"
"msg" "Invalid arguments" "warnid" "warn-invalid-arguments"
"details" $args.errmsg "msg" "Invalid arguments"
"file" page.File "details" ($args.errmsg | append $args.warnmsg)
)}} "file" page.File
{{ end }} ) -}}
{{- end -}}
{{/* Initialize local arguments */}} {{/* Initialize local arguments */}}
{{ $category := cond (ne $args.category "other") $args.category "" }} {{- $category := cond (ne $args.category "other") $args.category "" -}}
{{/* Main code */}} {{/* Main code */}}
<script src="{{ $args.link }}" {{- if not $args.err -}}
{{- with $category }} data-category="{{ . }}"{{ end -}} <script src="{{ $args.link }}"
{{- with $args.integrity }}integrity="{{ . }}" crossorigin="anonymous"{{ end }} {{- with $category }} data-category="{{ . }}"{{ end -}}
{{- with $args.state }} {{ . | safeHTMLAttr }}{{ end -}}> {{- with $args.integrity }}integrity="{{ . }}" crossorigin="anonymous"{{ end }}
</script> {{- with $args.state }} {{ . | safeHTMLAttr }}{{ end -}}>
</script>
{{- end -}}

View File

@@ -7,6 +7,7 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "utilities/GetBackgroundStyle.html" "partial" "utilities/GetBackgroundStyle.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments" "msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File

View File

@@ -12,9 +12,10 @@
{{ if or $args.err $args.warnmsg }} {{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict {{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "utilities/GetLink.html" "partial" "utilities/GetLink.html"
"msg" "Invalid arguments" "warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg) "details" ($args.errmsg | append $args.warnmsg)
"file" page.File "file" page.File
)}} )}}
{{ $error = $args.err }} {{ $error = $args.err }}
{{ end }} {{ end }}

View File

@@ -1,114 +0,0 @@
<!--
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.
-->
{{/* Inline partial to retrieve the type definition of the provided key (without recursion) */}}
{{ define "_partials/inline/type-definition.html" }}
{{ $key := .key }}
{{ $references := .references }}
{{ $types := .types }}
{{ $def := index $references $key }}
{{ $udt := "" }}
{{ $reflect := "" }}
{{ $reserved := slice "bool" "int" "int64" "float" "float64" "string" "dict" "slice" }}
{{ if and $def (not (reflect.IsSlice $def.type)) (not (in $reserved $def.type)) }}
{{ with index $types $def.type }}
<!-- Reduce child elements to slice of argument names -->
{{ $args := slice }}
{{ $reflect = printf "%T" . }}
{{ if reflect.IsMap . }}
{{ range $k, $_ := . }}
{{ $args = $args | append $k }}
{{ end }}
{{ else if reflect.IsSlice . }}
{{ with index . 0 }}
{{ range $k, $_ := . }}
{{ $args = $args | append $k }}
{{ end }}
{{ end }}
{{ end }}
<!-- Retrieve type definition for each argument -->
{{ $definitions := dict }}
{{ $definitions := merge $definitions (dict "_reflect" $reflect) }}
{{ range $args }}
{{ $type := partial "inline/type-definition.html" (dict "key" . "references" $references "types" $types) }}
{{ if and $type $type.definition }}
{{ $definitions = merge $definitions (dict . $type.definition) }}
{{ else }}
{{- $errorMsg = $errorMsg | append (printf "partial [utilities/InitArgs.html] - Missing type for '%s.%s' in '%s'" $key . ) -}}
{{ $error = true }}
{{ end }}
{{ end }}
{{ $udt = dict $def.type $definitions }}
{{ end }}
{{ end }}
{{ return (dict "definition" $def "udt" $udt) }}
{{ end }}
{{/* Initalize arguments and local variables */}}
{{ $error := false }}
{{ $errorMsg := slice }}
{{ $warnMsg := slice }}
{{ $params := dict }}
{{ $definitions := dict }}
{{ $udt := dict }}
{{ $structure := .structure }}
{{ $bookshop := .bookshop }}
{{ $group := .group }}
{{ $child := .child }}
{{ if and (not $structure) (not $bookshop) }}
{{- $errorMsg = $errorMsg | append (printf "partial [utilities/InitTypes.html] - Missing value for param 'structure' or 'bookshop'") -}}
{{ $error = true }}
{{ end }}
{{ if not $error }}
{{ $args := dict }}
{{ $references := index (index site.Data.structures "_arguments") "arguments" }}
{{ $types := index (index site.Data.structures "_types") "types" }}
{{/* Initalize the regular or bookshop argument structure */}}
{{ if $structure }}
{{ $args = (index site.Data.structures $structure).arguments | default dict }}
{{ else }}
{{ $args = index (index (index site.Data.structures.components $bookshop) (printf "%s.bookshop" $bookshop)) "blueprint" | default dict }}
{{ $args = merge $args (dict "_bookshop_name" nil) }}
{{ end }}
{{/* Merge any child arguments */}}
{{ if $child }}
{{ $extra_def := (index site.Data.structures $child).arguments }}
{{ if not $extra_def }}
{{- $errorMsg = $errorMsg | append (printf "partial [utilities/InitTypes.html] - Missing definitions: %s" $child) -}}
{{ $error = true }}
{{ else }}
{{ range $key, $val := $extra_def }}
{{ if and $val $val.parent }}{{ $args = merge (dict $key $val) $args }}{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{/* Initialize the arguments and their type definitions recursively */}}
{{ range $key, $v := $args }}
{{ $type := partial "inline/type-definition.html" (dict "key" $key "args" $args "references" $references "types" $types) }}
{{ if and $type $type.definition }}
{{ $definitions = merge $definitions (dict $key $type.definition) }}
{{ with $type.udt }}
{{ $udt = merge $udt . }}
{{ end }}
{{ else }}
{{- $errorMsg = $errorMsg | append (printf "partial [utilities/InitArgs.html] - Missing type for '%s' in '%s'" $key (or $structure $bookshop) ) -}}
{{ $error = true }}
{{ end }}
{{ end }}
{{ end }}
{{ $params = merge $params (dict "types" $definitions "udt" $udt "err" $error "errmsg" $errorMsg "warnmsg" $warnMsg) }}
{{ return $params }}

Some files were not shown because too many files have changed in this diff Show More