Compare commits

...

36 Commits

Author SHA1 Message Date
Mark Dumay
c41cd0650e Merge pull request #1498 from gethinode/develop
Develop
2025-07-06 12:08:43 +02:00
Mark Dumay
a83bab6689 Merge branch 'main' into develop 2025-07-06 12:03:41 +02:00
Mark Dumay
03a099ae66 fix: correct hide-empty argument in articles content block 2025-07-06 12:03:07 +02:00
Mark Dumay
cd837cf116 feat: add panels content block 2025-07-06 11:51:37 +02:00
Mark Dumay
8cffd358aa feat: improve responsive behavior of nav control 2025-07-06 11:51:10 +02:00
Mark Dumay
0d33a15e98 fix: improve layout 2025-07-06 11:47:24 +02:00
Mark Dumay
9be691eb6b fix: adjust heading size of CTA 2025-07-06 11:46:58 +02:00
Mark Dumay
fd727228d7 fix: adjust size argument of section title 2025-07-06 11:46:42 +02:00
Mark Dumay
a9f1cd098d feat: include ordinal position of content blocks 2025-07-06 11:44:41 +02:00
github-actions[bot]
0d24dc445d Merge pull request #1495 from gethinode/dependabot/npm_and_yarn/neostandard-0.12.2
Bump neostandard from 0.12.1 to 0.12.2
2025-07-04 13:41:07 +00:00
dependabot[bot]
f6f034252b Bump neostandard from 0.12.1 to 0.12.2
Bumps [neostandard](https://github.com/neostandard/neostandard) from 0.12.1 to 0.12.2.
- [Release notes](https://github.com/neostandard/neostandard/releases)
- [Changelog](https://github.com/neostandard/neostandard/blob/main/CHANGELOG.md)
- [Commits](https://github.com/neostandard/neostandard/compare/v0.12.1...v0.12.2)

---
updated-dependencies:
- dependency-name: neostandard
  dependency-version: 0.12.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-04 13:35:15 +00:00
Mark Dumay
863b81efbb Merge pull request #1494 from gethinode/develop
feat: extend navbar styling options
2025-07-04 12:56:42 +02:00
Mark Dumay
9b0683d176 Merge branch 'main' into develop 2025-07-04 12:51:29 +02:00
Mark Dumay
dd1b2eb97f feat: extend navbar styling options 2025-07-04 12:50:41 +02:00
Mark Dumay
3f6dc3b2d7 Merge pull request #1493 from gethinode/develop
Develop
2025-07-04 07:43:32 +02:00
Mark Dumay
873277b691 Merge branch 'main' into develop 2025-07-04 07:38:09 +02:00
Mark Dumay
7a456a12d2 fix: improve handling of static svg files
Removes the subfolder from the static file path, if any. Only applicable to sites deployed to a subfolder (when setting `baseURL`).
2025-07-04 07:36:22 +02:00
Mark Dumay
b437b414b0 fix: suppress empty class and origin of svg files 2025-07-04 07:14:38 +02:00
Mark Dumay
80ac704d81 Merge pull request #1491 from gethinode/develop
fix: improve non-fluid section rendering
2025-07-03 19:18:02 +02:00
Mark Dumay
996e9ec294 Merge branch 'main' into develop 2025-07-03 19:09:14 +02:00
Mark Dumay
0ab274d6f5 fix: improve non-fluid section rendering 2025-07-03 19:08:26 +02:00
github-actions[bot]
3742e8ef04 Merge pull request #1490 from gethinode/dependabot/npm_and_yarn/stylelint-16.21.1
Bump stylelint from 16.21.0 to 16.21.1
2025-07-03 13:29:37 +00:00
dependabot[bot]
3eadaa02b8 Bump stylelint from 16.21.0 to 16.21.1
Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.21.0 to 16.21.1.
- [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.21.0...16.21.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 16.21.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-03 13:24:13 +00:00
Mark Dumay
90bc571b76 Merge pull request #1489 from gethinode/develop
ci: set read-only permissions for lint & build
2025-07-02 17:51:11 +02:00
Mark Dumay
aad5b59a48 fix: update dependencies 2025-07-02 16:56:37 +02:00
Mark Dumay
4d7fdffd4a Merge branch 'main' into develop 2025-07-02 16:35:22 +02:00
Mark Dumay
c384836224 ci: set read-only permissions for lint & build 2025-07-02 16:34:30 +02:00
github-actions[bot]
cb547351d9 Merge pull request #1487 from gethinode/dependabot/npm_and_yarn/eslint-9.30.1
Bump eslint from 9.30.0 to 9.30.1
2025-07-02 13:37:17 +00:00
dependabot[bot]
3b47a5b66f Bump eslint from 9.30.0 to 9.30.1
Bumps [eslint](https://github.com/eslint/eslint) from 9.30.0 to 9.30.1.
- [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.30.0...v9.30.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-02 13:30:03 +00:00
Mark Dumay
9f9029baf0 Merge pull request #1486 from gethinode/develop
Develop
2025-07-02 12:53:05 +02:00
Mark Dumay
3079f1f7dd fix: correct page handling 2025-07-02 12:46:29 +02:00
Mark Dumay
e546d34422 Merge branch 'main' into develop 2025-07-02 12:24:10 +02:00
Mark Dumay
00e80f6400 docs: add cta example 2025-07-02 12:23:45 +02:00
Mark Dumay
b46dd52101 feat: add cta content block 2025-07-02 12:23:16 +02:00
Mark Dumay
b1a8c956fc feat: make fluid layout of sections configurable 2025-07-02 12:21:46 +02:00
Mark Dumay
1b8aa10d11 fix: update broken link in main index file 2025-07-02 12:16:00 +02:00
44 changed files with 2606 additions and 764 deletions

View File

@@ -14,6 +14,10 @@ env:
CACHE_PATH_WIN: '~\AppData\Local\hugo_cache'
CACHE_PATH_MAC: '/Users/runner/Library/Caches/hugo_cache'
permissions:
pull-requests: read
contents: read
jobs:
lint:
runs-on: ubuntu-latest

45
assets/js/nav.js Normal file
View File

@@ -0,0 +1,45 @@
function updateDropdown (element, id, label) {
const dropdown = document.getElementById(element)
if (dropdown != null) {
dropdown.querySelector('.dropdown-toggle').textContent = label
dropdown.querySelectorAll('.panel-dropdown .dropdown-item').forEach(item => {
item.classList.remove('active')
let target = item.getAttribute('data-link')
if (target != null) {
target = target.replace(/^#+/, '')
if (target === id) {
item.classList.add('active')
}
}
})
}
}
document.querySelectorAll('.panel-dropdown').forEach(trigger => {
trigger.addEventListener('hide.bs.dropdown', event => {
if (event.clickEvent != null) {
let target = event.clickEvent.srcElement.getAttribute('data-link')
if (target != null) {
trigger.querySelectorAll('.panel-dropdown .dropdown-item').forEach(item => {
item.classList.remove('active')
})
target = target.replace(/^#+/, '')
const btn = document.getElementById(target)
if (btn != null) {
event.clickEvent.srcElement.classList.add('active')
trigger.querySelector('.dropdown-toggle').textContent = event.clickEvent.srcElement.textContent
btn.click()
}
}
}
})
})
document.querySelectorAll('.nav-panel .nav-link').forEach(trigger => {
trigger.addEventListener('click', event => {
const companion = event.srcElement.parentElement.parentElement.getAttribute('data-companion')
if (companion != null) {
updateDropdown(companion, trigger.getAttribute('id'), trigger.textContent.trim())
}
})
})

View File

@@ -2,8 +2,10 @@
@import "modules/bookshop/components/about/about";
@import "modules/bookshop/components/articles/articles";
@import "modules/bookshop/components/cards/cards";
@import "modules/bookshop/components/cta/cta";
@import "modules/bookshop/components/faq/faq";
@import "modules/bookshop/components/hero/hero";
@import "modules/bookshop/components/panels/panels";
@import "modules/bookshop/components/releases/releases";
@import "modules/bookshop/components/separator/separator";
@import "modules/bookshop/components/video-message/video-message";

View File

@@ -19,6 +19,7 @@
{{/* Main code */}}
{{ if not $args.error }}
{{ partial "assets/hero.html" (dict
"page" page
"heading" $args.heading
"background" $args.background
"illustration" (merge (dict "ratio" "auto") $args.illustration)

View File

@@ -62,46 +62,53 @@
<!-- Main code -->
{{ if not $error }}
{{- partial "assets/section-title.html" (dict "heading" $args.heading "justify" $args.justify) -}}
{{ if or (gt (len $pages) 0) (not $args.hideEmpty) }}
{{- partial "assets/section-title.html" (dict "heading" $args.heading "justify" $args.justify) -}}
{{ $partial := "assets/card-group.html" }}
{{ $params := dict }}
{{- $params = merge $params (dict
"page" page
"list" $pages
"limit" $args.limit
"cols" $args.cols
"icon-rounded" $args.iconRounded
"href" (cond $moreButton $moreLink "")
"href-title" (cond $moreButton $moreTitle "")
"href-force" (gt $result.total (len $result.pages))
)}}
{{ $partial := "assets/card-group.html" }}
{{ $params := dict }}
{{- $params = merge $params (dict
"page" page
"list" $pages
"limit" $args.limit
"cols" $args.cols
"icon-rounded" $args.iconRounded
"href" (cond $moreButton $moreLink "")
"href-title" (cond $moreButton $moreTitle "")
"href-force" (gt $result.total (len $result.pages))
)}}
{{ if $args.scroll }}
{{ $partial := "assets/stack.html" }}
{{ $params = merge $params (dict
"header-style" "none"
"body-style" "title"
"footer-style" "none"
"gutter" 1
"padding" 3
"ratio" "1x1"
"orientation" "horizontal-sm"
"styles" (cond $args.bento $styles "")
) -}}
{{ else }}
{{ $params = merge $params (dict
"header-style" $args.headerStyle
"footer-style" $args.footerStyle
"padding" $args.padding
"class" (or $args.class "border-0")
"icon-style" "fa-2x"
"align" "start"
"orientation" $args.orientation
"hook" "assets/live-card.html"
"pagination" $args.pagination
"paginate" $paginate
) -}}
{{ if $args.scroll }}
{{ $partial := "assets/stack.html" }}
{{ $params = merge $params (dict
"header-style" "none"
"body-style" "title"
"footer-style" "none"
"gutter" 1
"padding" 3
"ratio" "1x1"
"orientation" "horizontal-sm"
"styles" (cond $args.bento $styles "")
) -}}
{{ else }}
{{ $params = merge $params (dict
"header-style" $args.headerStyle
"footer-style" $args.footerStyle
"padding" $args.padding
"class" (or $args.class "border-0")
"icon-style" "fa-2x"
"align" "start"
"orientation" $args.orientation
"hook" "assets/live-card.html"
"pagination" $args.pagination
"paginate" $paginate
) -}}
{{ end }}
{{ if gt (len $pages) 0 }}
{{ partial $partial $params }}
{{ else }}
{{- $padding := partial "utilities/GetPadding.html" -}}
<p class="pt-{{ $padding.y }}">{{- T "emptyList" }}.</p>
{{ end }}
{{ end }}
{{ partial $partial $params }}
{{ end }}

View File

@@ -0,0 +1,43 @@
# Metadata about this component, to be used in the CMS
spec:
structures:
- content_blocks
label: CTA
description: Call to action
icon: contact_page
tags: []
# Defines the structure of this component, as well as the default values
blueprint:
heading:
preheading:
title:
content:
align:
arrangement:
width:
size:
contact:
caption-url:
illustration:
image:
icon:
ratio:
class:
anchor:
mode:
background:
backdrop:
color:
subtle:
links:
-
title:
url:
icon:
force:
align:
fluid:
padding:
order:
width:

View File

@@ -0,0 +1,43 @@
{{/*
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.
*/}}
{{/* Initialize arguments */}}
{{ $args := partial "utilities/InitArgs.html" (dict "bookshop" "cta" "args" .) }}
{{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "component-library/components/cta/cta.hugo.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg)
"file" page.File
)}}
{{- end -}}
{{/* Main code */}}
{{ if not $args.error }}
{{ $links := slice }}
{{ if and (reflect.IsSlice .links) (gt (len .links) 0) }}
{{ $links = .links }}
{{ else }}
{{ with site.Params.modules.bookshop.cta.defaultURL }}
{{ $links = $links | append (dict "title" (T "contactAction") "url" . "icon" "fas chevron-right") }}
{{ end }}
{{ end }}
{{ partial "assets/contact.html" (dict
"page" page
"orientation" "horizontal"
"heading" $args.heading
"contact" $args.contact
"caption-url" $args.captionUrl
"illustration" $args.illustration
"class" "contact-img"
"links" $links
"align" $args.align
"order" $args.order
"data" site.Params.modules.bookshop.cta.section
) }}
{{ end }}

View File

@@ -0,0 +1,8 @@
.cta {
background-color: var(--#{$prefix}primary-bg-subtle);
}
.cta .contact-img {
background-color: var(--#{$prefix}body-bg);
border-radius: var(--bs-border-radius);
}

View File

@@ -18,6 +18,7 @@
{{ if not $args.err }}
{{ partial "assets/hero.html" (dict
"page" page
"breadcrumb" $args.breadcrumb
"heading" $args.heading
"background" $args.background

View File

@@ -0,0 +1,35 @@
# Metadata about this component, to be used in the CMS
spec:
structures:
- content_blocks
label: Panels
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:
tab-type:
ratio:
class:
width:
justify:

View File

@@ -0,0 +1,81 @@
{{/*
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" "panels" "args" .)}}
{{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "component-library/components/panels/panels.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 }}
{{ $titles := slice }}
{{ $toc := slice }}
{{ $parentID := printf "panel-%v" (cond (isset . "_ordinal") (index . "_ordinal") (md5 (delimit (slice . now) "-"))) }}
{{ $inner := "" }}
{{ range $i, $element := $args.elements }}
{{ $toc = $toc | append (dict "href" "panel-0-1" "level" 2 "title" $element.title) }}
{{ $hero := partial "assets/hero.html" (dict
"page" page
"heading" (dict "title" $element.title "content" $element.content "width" 8 "size" 6)
"background" $args.background
"illustration" (dict "ratio" $args.ratio "icon" $element.icon "image" $element.image "mode" $element.mode)
"order" $args.order
"link-type" $args.linkType
"links" $args.links
"orientation" "horizontal"
"align" "start"
"width" 12
)
}}
{{- $output := partial "assets/nav-item.html" (dict
"page" page
"id" $i
"parent-id" $parentID
"fade" false
"title" $element.title
"show" (eq $i 0)
"raw" $hero
)
-}}
{{ $inner = printf "%s\n%s" $inner $output }}
{{ $titles = $titles | append $element.title }}
{{ end}}
{{ if not $error }}
{{- partial "assets/section-title.html" (dict "heading" $args.heading "justify" $args.justify) -}}
{{- partial "assets/nav.html" (dict
"id" (or $args.id $parentID)
"page" page
"nav-items" $inner
"nav-titles" $titles
"tab-type" $args.tabType
"vertical" $args.vertical
"word-wrap" $args.wordWrap
"class" $args.class
"pane" $args.pane
"width" $args.width
"responsive" $args.responsive
)
-}}
{{ end }}

View File

@@ -0,0 +1,3 @@
.panels .dropdown-toggle {
text-decoration: none !important;
}

View File

@@ -16,6 +16,7 @@
{{- $class := index . 2 | default "p-0" -}}
{{- $bgclass := index . 3 | default "" -}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{- with index $component_props "padding" }}{{ $padding = dict "x" . "y" . }}{{ end -}}
{{- $component_path := partial "_bookshop/helpers/component_key" $component_name -}}
{{- $flat_component_path := partial "_bookshop/helpers/flat_component_key" $component_name -}}
@@ -31,10 +32,12 @@
{{- $cover := index $component_props "cover" -}}
{{- $background := index $component_props "background" -}}
{{- $backdrop := "" -}}
{{- $fluid := index $component_props "fluid" | default true -}}
{{- $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) "" -}}
{{- $paddingOuter := cond (ne $component_name "separator") (printf "px-xxl-0 px-%d py-0" $padding.x) "" -}}
{{- $padding := cond (ne $component_name "separator") (printf "px-%d %spy-%d" $padding.x (cond $fluid "px-xxl-0 " "") $padding.y) "" -}}
{{- $wrapper := $style }}
{{ with $background }}
{{ $wrapper = partial "utilities/GetBackgroundStyle.html" (dict "background" . "class" $style) }}
@@ -42,14 +45,16 @@
{{ with $background.backdrop }}{{ $wrapper = "" }}{{ $backdrop = . }}{{ end }}
{{ end }}
{{ end }}
{{/* warnf "wrapper: '%s'" $wrapper */}}
{{- $theme := index $component_props "theme" -}}
{{- $overlayMode := (or (index $component_props "overlay-mode") page.Params.overlayMode) | default "dark" -}}
{{ if not $backdrop }}{{ $overlayMode = page.Params.overlayMode }}{{ end }}
{{ if eq $overlayMode "none" }}{{ $overlayMode = "" }}{{ end }}
{{ (printf "<!--bookshop-live name(%s)-->" $component_name) | safeHTML }}
<section {{ with $id }}id="{{ . }}" {{ end }}class="{{ $component_name }} container-fluid {{ $class }} {{ with $wrapper }}{{ . }}{{ end -}}
{{ if not $fluid }}<div class="container-xxl {{ $paddingOuter }}">{{ end }}
<section {{ with $id }}id="{{ . }}" {{ end }}class="{{ $component_name }}
container-fluid {{ $class }}
{{ with $wrapper }}{{ . }}{{ end -}}
{{- if and $backdrop $overlayMode }} background-container{{ end -}}
{{- if $cover }} section-cover d-flex align-items-center{{ end }}"
{{ with $overlayMode -}}
@@ -60,12 +65,16 @@
{{- end -}}
>
{{- 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 -}}
{{ $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 }}">
<div class="container-{{ cond $fluid "xxl" "fluid" }} {{ $padding }} d-flex flex-column align-items-{{ $justify }}">
{{ with $col }}
<div class="{{ . }}">{{ partial $resolved_component $component_props }}</div>
{{ else }}
@@ -73,6 +82,7 @@
{{ end}}
</div>
</section>
{{ if not $fluid }}</div>{{ end }}
{{ "<!--bookshop-live end-->" | safeHTML }}
{{- else -}}
{{- $file_loc := slicestr $component_path 9 -}}

View File

@@ -84,6 +84,7 @@
[navigation]
anchor = true
logo = "/img/logo_icon.svg"
logo-height = 30
color = "body"
fixed = true
overlay = false
@@ -96,6 +97,9 @@
toc = true
sidebar = true
size = "md"
[navigation.padding]
x = 4
y = 4
# toml-docs-end navigation
# toml-docs-start messages

View File

@@ -16,8 +16,8 @@ content_blocks:
ratio: 16x9
width: 8
links:
- title: About
url: about
- title: Getting started
url: https://gethinode.com/docs
icon: fas chevron-right
orientation: horizontal
justify: center

View File

@@ -0,0 +1,36 @@
comment: >-
Displays a contact banner, typically placed at the bottom or right-hand side of the page.
arguments:
page:
data:
heading:
contact:
type: string
optional: false
comment: >-
The full name of the contact to retrieve.
caption-url:
type:
- string
- template.URL
optional: true
comment: >-
Address of the contact's page, either a local reference or an external
address. Include the `scheme` when referencing an external address, such
as `https://google.com`. Local references may include an optional anchor
link such as `blog/bootstrap-elements/#docs`.
illustration:
background:
link-type:
links:
align:
order:
default: first
orientation:
width:
justify:
class:
width:
default: 12
hook:
default: assets/hero-image.html

View File

@@ -3,6 +3,7 @@ comment: >-
supports a heading, featured illustration, and navigation links. You can
can also add a background image with an overlay to improve contrast.
arguments:
page:
breadcrumb:
heading:
background:
@@ -18,6 +19,7 @@ arguments:
justify:
use-section:
use-title:
size:
class:
padding:
default: px-4 px-xxl-0 py-4

View File

@@ -15,6 +15,9 @@ arguments:
class:
body:
group: partial
raw:
group: partial
release: v1.3.0
navitem-type:
release: v1.0.0
illustration:

View File

@@ -22,6 +22,8 @@ arguments:
release: v1.0.0
class:
pane:
responsive:
release: v1.4.0
width:
default: 12
group: partial

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 MiB

View File

@@ -37,6 +37,7 @@
[navigation]
anchor = true
logo = "/img/logo_icon.svg"
logo-height = 30
color = "body"
fixed = true
overlay = false
@@ -50,6 +51,9 @@
toc = true
sidebar = true
size = "md"
[navigation.padding]
x = 4
y = 4
[messages]
placement = "bottom-right"
@@ -125,7 +129,7 @@
# themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" # external path
themeFontPath = "/fonts" # local path
themeFontPreload = "/fonts/inter-v12-latin-regular.woff2"
purge = true
purge = false
# toml-docs-end theme-colors
[schema]

View File

@@ -0,0 +1,36 @@
---
_schema: default
title: CTA
description: Use the CTA content block to display an action link with an optional contact.
icon: fas address-card
---
## Overview
The `cta` content block renders a call to action link or button. You can include an optional contact or provide your own illustration. By default, the `cta` uses a generic title and message. Set the `heading` attribute to override these values.
<!-- markdownlint-disable MD037 -->
{{< example-bookshop lang="bookshop" >}}
```yml
- _bookshop_name: cta
contact: Betty White
caption-url: /en/blocks/cta/
background:
color: primary
subtle: true
order: first
links:
- title: Get in touch
url: '#!'
icon: fas chevron-right
```
{{< /example-bookshop >}}
<!-- markdownlint-enable MD037 -->
## Arguments
The content block supports the following arguments:
{{< args bookshop-cta >}}

View File

@@ -0,0 +1,189 @@
---
_schema: default
title: Panels
description: Use the panels content block to display multiple toggable panels.
icon: fa folder
---
## Overview
The `panels` content block displays multiple panels that are toggled by a tab control.
<!-- markdownlint-disable MD037 -->
{{< example-bookshop lang="bookshop" >}}
```yml
- _bookshop_name: panels
heading:
preheading: Preheading
title: Heading
content: Panels content. It supports multiple lines.
align: start
background:
color: primary
subtle: true
width: 12
tab-type: underline
ratio: 1x1
elements:
- title: First Panel
image: /img/sunrise.jpg
content: content 1
- title: Second Panel
image: /img/nat-9l98kFByiao-unsplash.jpg
content: content 2
- title: Third Panel
image: /img/pj-accetturo-XpD6Dkui-yg-unsplash.jpg
content: content 3
```
{{< /example-bookshop >}}
<!-- markdownlint-enable MD037 -->
## Arguments
The content block supports the following arguments:
{{< args bookshop-panels >}}
## Examples
### Tabs
Set `tab-type` to `tabs` to adjust the panel controls.
<!-- markdownlint-disable MD037 -->
{{< example-bookshop lang="bookshop" >}}
```yml
- _bookshop_name: panels
heading:
preheading: Preheading
title: Heading
content: Panels content. It supports multiple lines.
align: start
background:
color: primary
subtle: true
width: 12
tab-type: tabs
ratio: 1x1
elements:
- title: First Panel
image: /img/sunrise.jpg
content: content 1
- title: Second Panel
image: /img/nat-9l98kFByiao-unsplash.jpg
content: content 2
- title: Third Panel
image: /img/pj-accetturo-XpD6Dkui-yg-unsplash.jpg
content: content 3
```
{{< /example-bookshop >}}
<!-- markdownlint-enable MD037 -->
### Pills
Set `tab-type` to `pills` to adjust the panel controls.
<!-- markdownlint-disable MD037 -->
{{< example-bookshop lang="bookshop" >}}
```yml
- _bookshop_name: panels
heading:
preheading: Preheading
title: Heading
content: Panels content. It supports multiple lines.
align: start
background:
color: primary
subtle: true
width: 12
tab-type: pills
ratio: 1x1
elements:
- title: First Panel
image: /img/sunrise.jpg
content: content 1
- title: Second Panel
image: /img/nat-9l98kFByiao-unsplash.jpg
content: content 2
- title: Third Panel
image: /img/pj-accetturo-XpD6Dkui-yg-unsplash.jpg
content: content 3
```
{{< /example-bookshop >}}
<!-- markdownlint-enable MD037 -->
### Underline
Set `tab-type` to `underline` to adjust the panel controls.
<!-- markdownlint-disable MD037 -->
{{< example-bookshop lang="bookshop" >}}
```yml
- _bookshop_name: panels
heading:
preheading: Preheading
title: Heading
content: Panels content. It supports multiple lines.
align: start
background:
color: primary
subtle: true
width: 12
tab-type: underline
ratio: 1x1
elements:
- title: First Panel
image: /img/sunrise.jpg
content: content 1
- title: Second Panel
image: /img/nat-9l98kFByiao-unsplash.jpg
content: content 2
- title: Third Panel
image: /img/pj-accetturo-XpD6Dkui-yg-unsplash.jpg
content: content 3
```
{{< /example-bookshop >}}
<!-- markdownlint-enable MD037 -->
### Callout
Set `tab-type` to `callout` to adjust the panel controls.
<!-- markdownlint-disable MD037 -->
{{< example-bookshop lang="bookshop" >}}
```yml
- _bookshop_name: panels
heading:
preheading: Preheading
title: Heading
content: Panels content. It supports multiple lines.
align: start
background:
color: primary
subtle: true
width: 12
tab-type: callout
ratio: 1x1
elements:
- title: First Panel
image: /img/sunrise.jpg
content: content 1
- title: Second Panel
image: /img/nat-9l98kFByiao-unsplash.jpg
content: content 2
- title: Third Panel
image: /img/pj-accetturo-XpD6Dkui-yg-unsplash.jpg
content: content 3
```
{{< /example-bookshop >}}
<!-- markdownlint-enable MD037 -->

View File

@@ -0,0 +1,45 @@
- name: Alex Smith
preferred: Alex
image: /assets/img/joseph-gonzalez-iFgRcqHznqg-unsplash.png
function: Digital Strategy Lead
linkedin: https://www.linkedin.com
keywords:
- transformation
biography: >-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut accumsan
venenatis dapibus. Proin placerat mauris ac interdum gravida. Proin
consequat feugiat sagittis. Sed vel augue nec est auctor semper. Curabitur
mauris ante, euismod eu sem in, sagittis porttitor urna. Mauris sodales at
quam condimentum malesuada. Vivamus erat augue, euismod nec ligula quis,
molestie lobortis ante. Proin venenatis non diam ac interdum.
- name: Betty White
preferred: Betty
image: /assets/img/jake-nackos-IF9TK5Uy-KI-unsplash.png
function: UX Expert
linkedin: https://www.linkedin.com
keywords:
- experience
biography: >-
Duis rutrum, justo eleifend sagittis facilisis, leo orci hendrerit elit, ac
tristique nisl justo non neque. Mauris semper egestas massa, nec dapibus ex
tincidunt nec. Quisque lectus quam, finibus sed hendrerit id, accumsan eget
sapien. Nam facilisis diam eu felis tempus euismod. Nullam id neque
fringilla purus vestibulum mattis elementum vitae lectus. Fusce vel libero
consectetur urna egestas molestie eget sit amet elit.
- name: Charles Green
preferred: Charles
image: /assets/img/foto-sushi-6anudmpILw4-unsplash-1x1.png
function: UX Expert
linkedin: https://www.linkedin.com
keywords:
- technology
- transformation
- experience
biography: >-
Suspendisse potenti. Aenean elit nisl, viverra eu volutpat at, sodales a sem.
Aliquam blandit nunc non mi posuere, quis laoreet ex congue. Donec fringilla
porttitor lacus accumsan porttitor. Integer vel sagittis diam. Nullam vehicula
fermentum risus nec facilisis. Fusce eleifend gravida orci, in efficitur enim
fermentum nec. Sed quis malesuada lorem. Ut vitae sodales sapien.

View File

@@ -14,6 +14,7 @@
"figure",
"footer",
"form",
"h1",
"h2",
"h3",
"head",
@@ -188,9 +189,11 @@
"col-sm-6",
"collapse",
"collapsed",
"contact-img",
"container",
"container-fluid",
"container-xxl",
"cta",
"custom",
"d-block",
"d-flex",
@@ -210,6 +213,7 @@
"disabled",
"display-1",
"display-4",
"display-6",
"dropdown",
"dropdown-divider-bg",
"dropdown-item",
@@ -229,6 +233,9 @@
"fa-activity",
"fa-address-card",
"fa-angle-left",
"fa-angle-right",
"fa-angles-left",
"fa-angles-right",
"fa-arrow-left",
"fa-arrow-right",
"fa-bootstrap",
@@ -244,6 +251,7 @@
"fa-face-frown",
"fa-facebook",
"fa-fluid",
"fa-folder",
"fa-fw",
"fa-github",
"fa-globe",
@@ -378,10 +386,13 @@
"my-md-0",
"my-md-auto",
"nav",
"nav-callout",
"nav-item",
"nav-link",
"nav-panel",
"nav-pills",
"nav-tabs",
"nav-underline",
"navbar",
"navbar-brand",
"navbar-collapse",
@@ -406,6 +417,12 @@
"p-3",
"p-4",
"p-md-4",
"page-item",
"page-link",
"pagination",
"pagination-terse",
"panel-dropdown",
"panels",
"pb-3",
"pb-4",
"pb-5",
@@ -430,9 +447,11 @@
"ptw-5",
"ptw-lg-5",
"ptw-sm-4",
"px-%!d(string=0)",
"px-2",
"px-4",
"px-xxl-0",
"py-%!d(string=0)",
"py-1",
"py-2",
"py-3",
@@ -480,6 +499,7 @@
"table-border-bottom-wrap",
"table-responsive-md",
"table-wrap",
"tabs-dropdown",
"tag-link",
"text-",
"text-bg-body-tertiary",
@@ -579,6 +599,7 @@
"button",
"button-group",
"c4-diagram",
"callout",
"card",
"card-group",
"carousel",
@@ -600,12 +621,40 @@
"data-tables",
"docs",
"documentation",
"dropdown-nav-0",
"dropdown-panel-0e0741083af0c65ef332f91371a57c01",
"dropdown-panel-1ca24b9525732cedb2e7fb6b41545377",
"dropdown-panel-1fd473ce0dd8d518109ef702f3d78713",
"dropdown-panel-31b9d95702838f6cbbda858ad9f6ba2e",
"dropdown-panel-35018593ec3963b5e148e48c515719fb",
"dropdown-panel-45da15f058066cdbff2ee0d6276f36af",
"dropdown-panel-46260aa3bbe18226eec7bd180ff7a8fd",
"dropdown-panel-4c313e6c3a590e9ffc7c7907b87a6f4a",
"dropdown-panel-4dacdda3398d0f5a5fca6da2ee6aa310",
"dropdown-panel-56b4f5ddb81578bf60b888133d30251b",
"dropdown-panel-6a77cde1b88e6f65cb262176eef16c5a",
"dropdown-panel-6d0a418325c1d5cd91857155a01d370c",
"dropdown-panel-6d165e878416680616e8a5fd86546d2f",
"dropdown-panel-71248ab7e1e690fe9f5846e508d13993",
"dropdown-panel-71cb85ac8b2d6e1dea6e1035488bea9b",
"dropdown-panel-779a3ff6dff27d4b45c6a0f043355f42",
"dropdown-panel-78211bf104b3498ae4df8f991635482c",
"dropdown-panel-7a569211080751aa0157016cf1b308ae",
"dropdown-panel-8f6e8f6fd7ea4950fa8b0dbffe4e67cd",
"dropdown-panel-94953eb3c453547d39d3e7b2c56e5e4c",
"dropdown-panel-9e56096b4451a03394df6e63f2747fec",
"dropdown-panel-ab41f8f957872be455ceeb5a8feec0d8",
"dropdown-panel-af3f96310ac7de48b702970d488c897f",
"dropdown-panel-d6cc20413100ecf644f977d027eda180",
"dropdown-panel-ee0ebf6f3e4c470794b302e984a19b7a",
"elements-type",
"entity-relationship-diagram",
"example",
"examples",
"exemple",
"fa-address-card",
"fa-face-frown",
"fa-folder",
"fa-square-check",
"fab-bootstrap",
"fab-docker",
@@ -615,15 +664,39 @@
"fab-medium",
"fab-whatsapp",
"fab-x-twitter",
"faq-46cc9ad0fb899a0f4539dbaa956f4df4",
"faq-46cc9ad0fb899a0f4539dbaa956f4df4-heading-faq-46cc9ad0fb899a0f4539dbaa956f4df4",
"faq-46cc9ad0fb899a0f4539dbaa956f4df4-item-0",
"faq-46cc9ad0fb899a0f4539dbaa956f4df4-item-1",
"faq-46cc9ad0fb899a0f4539dbaa956f4df4-item-2",
"faq-0072bc769a56f23fe630bd68d7549cf2",
"faq-0072bc769a56f23fe630bd68d7549cf2-heading-faq-0072bc769a56f23fe630bd68d7549cf2",
"faq-0072bc769a56f23fe630bd68d7549cf2-item-0",
"faq-0072bc769a56f23fe630bd68d7549cf2-item-1",
"faq-0072bc769a56f23fe630bd68d7549cf2-item-2",
"faq-439455d6452b0071684c8457c50b834f",
"faq-439455d6452b0071684c8457c50b834f-heading-faq-439455d6452b0071684c8457c50b834f",
"faq-439455d6452b0071684c8457c50b834f-item-0",
"faq-439455d6452b0071684c8457c50b834f-item-1",
"faq-439455d6452b0071684c8457c50b834f-item-2",
"faq-4999be575a6eafb016b6498f1bbb5e77",
"faq-4999be575a6eafb016b6498f1bbb5e77-heading-faq-4999be575a6eafb016b6498f1bbb5e77",
"faq-4999be575a6eafb016b6498f1bbb5e77-item-0",
"faq-4999be575a6eafb016b6498f1bbb5e77-item-1",
"faq-4999be575a6eafb016b6498f1bbb5e77-item-2",
"faq-6fba0ce4e8a86121e9e590f38dfb88d8",
"faq-6fba0ce4e8a86121e9e590f38dfb88d8-heading-faq-6fba0ce4e8a86121e9e590f38dfb88d8",
"faq-6fba0ce4e8a86121e9e590f38dfb88d8-item-0",
"faq-6fba0ce4e8a86121e9e590f38dfb88d8-item-1",
"faq-6fba0ce4e8a86121e9e590f38dfb88d8-item-2",
"faq-c9843454e2fe61630b6c2a1d452eb749",
"faq-c9843454e2fe61630b6c2a1d452eb749-heading-faq-c9843454e2fe61630b6c2a1d452eb749",
"faq-c9843454e2fe61630b6c2a1d452eb749-item-0",
"faq-c9843454e2fe61630b6c2a1d452eb749-item-1",
"faq-c9843454e2fe61630b6c2a1d452eb749-item-2",
"fas-1",
"fas-2",
"fas-3",
"fas-address-card",
"fas-angle-left",
"fas-angle-right",
"fas-angles-left",
"fas-angles-right",
"fas-arrow-left",
"fas-arrow-right",
"fas-chevron-right",
@@ -652,6 +725,7 @@
"fichier",
"fil-dariane",
"file",
"first-panel",
"flowchart",
"footer-docs-collapse-15",
"footer-docs-collapse-16",
@@ -677,6 +751,7 @@
"infobulle",
"input-type",
"ins",
"interested-in-this-topic",
"invite-de-commandes",
"items-type",
"kaart",
@@ -703,6 +778,31 @@
"nav-0-btn-1",
"nav-0-btn-2",
"nav-nav-0",
"nav-panel-0e0741083af0c65ef332f91371a57c01",
"nav-panel-1ca24b9525732cedb2e7fb6b41545377",
"nav-panel-1fd473ce0dd8d518109ef702f3d78713",
"nav-panel-31b9d95702838f6cbbda858ad9f6ba2e",
"nav-panel-35018593ec3963b5e148e48c515719fb",
"nav-panel-45da15f058066cdbff2ee0d6276f36af",
"nav-panel-46260aa3bbe18226eec7bd180ff7a8fd",
"nav-panel-4c313e6c3a590e9ffc7c7907b87a6f4a",
"nav-panel-4dacdda3398d0f5a5fca6da2ee6aa310",
"nav-panel-56b4f5ddb81578bf60b888133d30251b",
"nav-panel-6a77cde1b88e6f65cb262176eef16c5a",
"nav-panel-6d0a418325c1d5cd91857155a01d370c",
"nav-panel-6d165e878416680616e8a5fd86546d2f",
"nav-panel-71248ab7e1e690fe9f5846e508d13993",
"nav-panel-71cb85ac8b2d6e1dea6e1035488bea9b",
"nav-panel-779a3ff6dff27d4b45c6a0f043355f42",
"nav-panel-78211bf104b3498ae4df8f991635482c",
"nav-panel-7a569211080751aa0157016cf1b308ae",
"nav-panel-8f6e8f6fd7ea4950fa8b0dbffe4e67cd",
"nav-panel-94953eb3c453547d39d3e7b2c56e5e4c",
"nav-panel-9e56096b4451a03394df6e63f2747fec",
"nav-panel-ab41f8f957872be455ceeb5a8feec0d8",
"nav-panel-af3f96310ac7de48b702970d488c897f",
"nav-panel-d6cc20413100ecf644f977d027eda180",
"nav-panel-ee0ebf6f3e4c470794b302e984a19b7a",
"navbar",
"navbar-0-collapse",
"navbar-mode",
@@ -711,8 +811,159 @@
"navigation",
"notification",
"overview",
"panel-0e0741083af0c65ef332f91371a57c01-0",
"panel-0e0741083af0c65ef332f91371a57c01-1",
"panel-0e0741083af0c65ef332f91371a57c01-2",
"panel-0e0741083af0c65ef332f91371a57c01-btn-0",
"panel-0e0741083af0c65ef332f91371a57c01-btn-1",
"panel-0e0741083af0c65ef332f91371a57c01-btn-2",
"panel-1ca24b9525732cedb2e7fb6b41545377-0",
"panel-1ca24b9525732cedb2e7fb6b41545377-1",
"panel-1ca24b9525732cedb2e7fb6b41545377-2",
"panel-1ca24b9525732cedb2e7fb6b41545377-btn-0",
"panel-1ca24b9525732cedb2e7fb6b41545377-btn-1",
"panel-1ca24b9525732cedb2e7fb6b41545377-btn-2",
"panel-1fd473ce0dd8d518109ef702f3d78713-0",
"panel-1fd473ce0dd8d518109ef702f3d78713-1",
"panel-1fd473ce0dd8d518109ef702f3d78713-2",
"panel-1fd473ce0dd8d518109ef702f3d78713-btn-0",
"panel-1fd473ce0dd8d518109ef702f3d78713-btn-1",
"panel-1fd473ce0dd8d518109ef702f3d78713-btn-2",
"panel-31b9d95702838f6cbbda858ad9f6ba2e-0",
"panel-31b9d95702838f6cbbda858ad9f6ba2e-1",
"panel-31b9d95702838f6cbbda858ad9f6ba2e-2",
"panel-31b9d95702838f6cbbda858ad9f6ba2e-btn-0",
"panel-31b9d95702838f6cbbda858ad9f6ba2e-btn-1",
"panel-31b9d95702838f6cbbda858ad9f6ba2e-btn-2",
"panel-35018593ec3963b5e148e48c515719fb-0",
"panel-35018593ec3963b5e148e48c515719fb-1",
"panel-35018593ec3963b5e148e48c515719fb-2",
"panel-35018593ec3963b5e148e48c515719fb-btn-0",
"panel-35018593ec3963b5e148e48c515719fb-btn-1",
"panel-35018593ec3963b5e148e48c515719fb-btn-2",
"panel-45da15f058066cdbff2ee0d6276f36af-0",
"panel-45da15f058066cdbff2ee0d6276f36af-1",
"panel-45da15f058066cdbff2ee0d6276f36af-2",
"panel-45da15f058066cdbff2ee0d6276f36af-btn-0",
"panel-45da15f058066cdbff2ee0d6276f36af-btn-1",
"panel-45da15f058066cdbff2ee0d6276f36af-btn-2",
"panel-46260aa3bbe18226eec7bd180ff7a8fd-0",
"panel-46260aa3bbe18226eec7bd180ff7a8fd-1",
"panel-46260aa3bbe18226eec7bd180ff7a8fd-2",
"panel-46260aa3bbe18226eec7bd180ff7a8fd-btn-0",
"panel-46260aa3bbe18226eec7bd180ff7a8fd-btn-1",
"panel-46260aa3bbe18226eec7bd180ff7a8fd-btn-2",
"panel-4c313e6c3a590e9ffc7c7907b87a6f4a-0",
"panel-4c313e6c3a590e9ffc7c7907b87a6f4a-1",
"panel-4c313e6c3a590e9ffc7c7907b87a6f4a-2",
"panel-4c313e6c3a590e9ffc7c7907b87a6f4a-btn-0",
"panel-4c313e6c3a590e9ffc7c7907b87a6f4a-btn-1",
"panel-4c313e6c3a590e9ffc7c7907b87a6f4a-btn-2",
"panel-4dacdda3398d0f5a5fca6da2ee6aa310-0",
"panel-4dacdda3398d0f5a5fca6da2ee6aa310-1",
"panel-4dacdda3398d0f5a5fca6da2ee6aa310-2",
"panel-4dacdda3398d0f5a5fca6da2ee6aa310-btn-0",
"panel-4dacdda3398d0f5a5fca6da2ee6aa310-btn-1",
"panel-4dacdda3398d0f5a5fca6da2ee6aa310-btn-2",
"panel-56b4f5ddb81578bf60b888133d30251b-0",
"panel-56b4f5ddb81578bf60b888133d30251b-1",
"panel-56b4f5ddb81578bf60b888133d30251b-2",
"panel-56b4f5ddb81578bf60b888133d30251b-btn-0",
"panel-56b4f5ddb81578bf60b888133d30251b-btn-1",
"panel-56b4f5ddb81578bf60b888133d30251b-btn-2",
"panel-6a77cde1b88e6f65cb262176eef16c5a-0",
"panel-6a77cde1b88e6f65cb262176eef16c5a-1",
"panel-6a77cde1b88e6f65cb262176eef16c5a-2",
"panel-6a77cde1b88e6f65cb262176eef16c5a-btn-0",
"panel-6a77cde1b88e6f65cb262176eef16c5a-btn-1",
"panel-6a77cde1b88e6f65cb262176eef16c5a-btn-2",
"panel-6d0a418325c1d5cd91857155a01d370c-0",
"panel-6d0a418325c1d5cd91857155a01d370c-1",
"panel-6d0a418325c1d5cd91857155a01d370c-2",
"panel-6d0a418325c1d5cd91857155a01d370c-btn-0",
"panel-6d0a418325c1d5cd91857155a01d370c-btn-1",
"panel-6d0a418325c1d5cd91857155a01d370c-btn-2",
"panel-6d165e878416680616e8a5fd86546d2f-0",
"panel-6d165e878416680616e8a5fd86546d2f-1",
"panel-6d165e878416680616e8a5fd86546d2f-2",
"panel-6d165e878416680616e8a5fd86546d2f-btn-0",
"panel-6d165e878416680616e8a5fd86546d2f-btn-1",
"panel-6d165e878416680616e8a5fd86546d2f-btn-2",
"panel-71248ab7e1e690fe9f5846e508d13993-0",
"panel-71248ab7e1e690fe9f5846e508d13993-1",
"panel-71248ab7e1e690fe9f5846e508d13993-2",
"panel-71248ab7e1e690fe9f5846e508d13993-btn-0",
"panel-71248ab7e1e690fe9f5846e508d13993-btn-1",
"panel-71248ab7e1e690fe9f5846e508d13993-btn-2",
"panel-71cb85ac8b2d6e1dea6e1035488bea9b-0",
"panel-71cb85ac8b2d6e1dea6e1035488bea9b-1",
"panel-71cb85ac8b2d6e1dea6e1035488bea9b-2",
"panel-71cb85ac8b2d6e1dea6e1035488bea9b-btn-0",
"panel-71cb85ac8b2d6e1dea6e1035488bea9b-btn-1",
"panel-71cb85ac8b2d6e1dea6e1035488bea9b-btn-2",
"panel-779a3ff6dff27d4b45c6a0f043355f42-0",
"panel-779a3ff6dff27d4b45c6a0f043355f42-1",
"panel-779a3ff6dff27d4b45c6a0f043355f42-2",
"panel-779a3ff6dff27d4b45c6a0f043355f42-btn-0",
"panel-779a3ff6dff27d4b45c6a0f043355f42-btn-1",
"panel-779a3ff6dff27d4b45c6a0f043355f42-btn-2",
"panel-78211bf104b3498ae4df8f991635482c-0",
"panel-78211bf104b3498ae4df8f991635482c-1",
"panel-78211bf104b3498ae4df8f991635482c-2",
"panel-78211bf104b3498ae4df8f991635482c-btn-0",
"panel-78211bf104b3498ae4df8f991635482c-btn-1",
"panel-78211bf104b3498ae4df8f991635482c-btn-2",
"panel-7a569211080751aa0157016cf1b308ae-0",
"panel-7a569211080751aa0157016cf1b308ae-1",
"panel-7a569211080751aa0157016cf1b308ae-2",
"panel-7a569211080751aa0157016cf1b308ae-btn-0",
"panel-7a569211080751aa0157016cf1b308ae-btn-1",
"panel-7a569211080751aa0157016cf1b308ae-btn-2",
"panel-8f6e8f6fd7ea4950fa8b0dbffe4e67cd-0",
"panel-8f6e8f6fd7ea4950fa8b0dbffe4e67cd-1",
"panel-8f6e8f6fd7ea4950fa8b0dbffe4e67cd-2",
"panel-8f6e8f6fd7ea4950fa8b0dbffe4e67cd-btn-0",
"panel-8f6e8f6fd7ea4950fa8b0dbffe4e67cd-btn-1",
"panel-8f6e8f6fd7ea4950fa8b0dbffe4e67cd-btn-2",
"panel-94953eb3c453547d39d3e7b2c56e5e4c-0",
"panel-94953eb3c453547d39d3e7b2c56e5e4c-1",
"panel-94953eb3c453547d39d3e7b2c56e5e4c-2",
"panel-94953eb3c453547d39d3e7b2c56e5e4c-btn-0",
"panel-94953eb3c453547d39d3e7b2c56e5e4c-btn-1",
"panel-94953eb3c453547d39d3e7b2c56e5e4c-btn-2",
"panel-9e56096b4451a03394df6e63f2747fec-0",
"panel-9e56096b4451a03394df6e63f2747fec-1",
"panel-9e56096b4451a03394df6e63f2747fec-2",
"panel-9e56096b4451a03394df6e63f2747fec-btn-0",
"panel-9e56096b4451a03394df6e63f2747fec-btn-1",
"panel-9e56096b4451a03394df6e63f2747fec-btn-2",
"panel-ab41f8f957872be455ceeb5a8feec0d8-0",
"panel-ab41f8f957872be455ceeb5a8feec0d8-1",
"panel-ab41f8f957872be455ceeb5a8feec0d8-2",
"panel-ab41f8f957872be455ceeb5a8feec0d8-btn-0",
"panel-ab41f8f957872be455ceeb5a8feec0d8-btn-1",
"panel-ab41f8f957872be455ceeb5a8feec0d8-btn-2",
"panel-af3f96310ac7de48b702970d488c897f-0",
"panel-af3f96310ac7de48b702970d488c897f-1",
"panel-af3f96310ac7de48b702970d488c897f-2",
"panel-af3f96310ac7de48b702970d488c897f-btn-0",
"panel-af3f96310ac7de48b702970d488c897f-btn-1",
"panel-af3f96310ac7de48b702970d488c897f-btn-2",
"panel-d6cc20413100ecf644f977d027eda180-0",
"panel-d6cc20413100ecf644f977d027eda180-1",
"panel-d6cc20413100ecf644f977d027eda180-2",
"panel-d6cc20413100ecf644f977d027eda180-btn-0",
"panel-d6cc20413100ecf644f977d027eda180-btn-1",
"panel-d6cc20413100ecf644f977d027eda180-btn-2",
"panel-ee0ebf6f3e4c470794b302e984a19b7a-0",
"panel-ee0ebf6f3e4c470794b302e984a19b7a-1",
"panel-ee0ebf6f3e4c470794b302e984a19b7a-2",
"panel-ee0ebf6f3e4c470794b302e984a19b7a-btn-0",
"panel-ee0ebf6f3e4c470794b302e984a19b7a-btn-1",
"panel-ee0ebf6f3e4c470794b302e984a19b7a-btn-2",
"persona",
"pie-chart",
"pills",
"projecten",
"projects",
"projets",
@@ -722,6 +973,7 @@
"release",
"requirement-chart",
"réduire",
"second-panel",
"security",
"sequence-diagram",
"spinner",
@@ -730,6 +982,8 @@
"sup",
"sécurité",
"table",
"tabs",
"third-panel",
"third-party-links--use-of-your-information",
"timeline",
"title",
@@ -743,6 +997,7 @@
"tooltip",
"types-de-cookies-que-nous-utilisons",
"types-of-cookies-we-use",
"underline",
"user-journey",
"video",
"video-type",

2
go.mod
View File

@@ -18,7 +18,7 @@ require (
github.com/gethinode/mod-simple-datatables v1.1.7 // indirect
github.com/gethinode/mod-simple-datatables/v2 v2.0.1 // indirect
github.com/gethinode/mod-utils/v3 v3.3.1 // indirect
github.com/gethinode/mod-utils/v4 v4.8.4 // indirect
github.com/gethinode/mod-utils/v4 v4.11.0 // indirect
github.com/nextapps-de/flexsearch v0.0.0-20250606060143-c28f52c09b7a // indirect
github.com/twbs/bootstrap v5.3.7+incompatible // indirect
)

10
go.sum
View File

@@ -452,6 +452,16 @@ github.com/gethinode/mod-utils/v4 v4.8.3 h1:CSaFR/c1cGrSPpH5ZfrNOoMhAbNb8sw0SCRh
github.com/gethinode/mod-utils/v4 v4.8.3/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.8.4 h1:ExD2zZCGonAmbIxC9wBU2dp+V4ZfvG46NWaz+LaV3iQ=
github.com/gethinode/mod-utils/v4 v4.8.4/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.9.0 h1:v7+prGZPETqgI6t/LN0UhrtRKU4mqpJUQu6jEUU5MYg=
github.com/gethinode/mod-utils/v4 v4.9.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.9.1 h1:9D2AJcrlS5r2moHEoo70GrNBmq1pJHd9oT4G14DsZRs=
github.com/gethinode/mod-utils/v4 v4.9.1/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.9.2 h1:lzcihwAsm8R2k2v+tWu5nfWvXMA8uRKi0nGIzZCygZ8=
github.com/gethinode/mod-utils/v4 v4.9.2/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.10.0 h1:CfVa57r52wXd0bUqSJlpux2cloHQNBBe13aeqLJ8FXE=
github.com/gethinode/mod-utils/v4 v4.10.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.11.0 h1:24RObT99j/jiQnCyHvXahJHIA8e8uQuBb1pUIRJOxpA=
github.com/gethinode/mod-utils/v4 v4.11.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/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
github.com/nextapps-de/flexsearch v0.0.0-20240108021025-afd75f742f22 h1:re7L8FxbXQpnX8BgzkdUnDpsUmloGNyLmiy2ZCln8pg=

View File

@@ -1,7 +1,209 @@
{
"htmlElements": {
"tags": null,
"classes": null,
"ids": null
"tags": [
"a",
"body",
"button",
"div",
"footer",
"form",
"head",
"html",
"img",
"input",
"label",
"li",
"link",
"meta",
"nav",
"ol",
"p",
"path",
"script",
"section",
"small",
"span",
"strong",
"svg",
"symbol",
"title",
"ul",
"use"
],
"classes": [
"%!s(<nil>)",
"active",
"align-items-center",
"align-self-center",
"align-self-end",
"ball",
"bg-body",
"bg-opacity-10",
"bg-primary",
"bg-primary-subtle",
"bottom-0",
"bottom-bar",
"breadcrumb",
"breadcrumb-item",
"btn",
"btn-close",
"btn-primary",
"checkbox",
"col",
"col-12",
"col-6",
"col-8",
"col-md-2",
"col-md-6",
"col-md-8",
"col-sm-12",
"collapse",
"collapsed",
"container-fluid",
"container-xxl",
"d-flex",
"d-inline",
"d-md-block",
"d-md-none",
"d-none",
"d-sm-block",
"d-sm-none",
"display-1",
"display-4",
"emphasis",
"end-0",
"fa",
"fa-10x",
"fa-2x",
"fa-angle-left",
"fa-chevron-right",
"fa-ellipsis",
"fa-face-frown",
"fa-fw",
"fa-github",
"fa-linkedin",
"fa-medium",
"fa-moon",
"fa-sun",
"fab",
"fas",
"fixed-top",
"flex-column",
"flex-fill",
"flex-grow-1",
"footer",
"form-control",
"fs-3",
"fw-30",
"fw-bold",
"h-100",
"hero",
"hero-content",
"hero-image",
"hero-image-container",
"hero-title",
"hstack",
"img-fluid",
"img-wrap",
"invisible",
"is-search",
"justify-content-center",
"justify-content-end",
"justify-content-md-start",
"justify-content-start",
"label",
"lead",
"link-bg-footer",
"link-secondary",
"m-auto",
"main",
"main-nav-toggler",
"me-auto",
"middle-bar",
"mode-switch",
"ms-auto",
"ms-md-3",
"mt-3",
"mt-4",
"mt-5",
"mt-md-0",
"mx-auto",
"mx-md-0",
"my-auto",
"my-md-auto",
"nav-item",
"nav-link",
"navbar",
"navbar-brand",
"navbar-collapse",
"navbar-container",
"navbar-expand-md",
"navbar-fixed-top",
"navbar-mode-selector",
"navbar-nav",
"navbar-toggler",
"no-js",
"order-0",
"order-1",
"order-md-0",
"order-md-1",
"p-0",
"p-2",
"p-3",
"p-4",
"position-fixed",
"position-relative",
"ps-1",
"pt-1",
"pt-4",
"pt-md-0",
"px-4",
"px-xxl-0",
"py-3",
"py-4",
"rounded",
"row",
"row-cols-1",
"row-cols-2",
"row-cols-sm-3",
"search",
"search-input",
"search-suggestions",
"section-cover",
"shadow",
"svg-inline--fa",
"text-",
"text-body",
"text-center",
"text-decoration-none",
"text-muted",
"text-secondary",
"text-sm-start",
"text-start",
"toast",
"toast-body",
"toast-container",
"toast-header",
"toggler-icon",
"top-bar"
],
"ids": [
"container",
"fa-face-frown",
"fab-github",
"fab-linkedin",
"fab-medium",
"fas-angle-left",
"fas-chevron-right",
"fas-ellipsis",
"fas-moon",
"fas-sun",
"navbar-0-collapse",
"navbar-mode",
"navbar-mode-checkbox",
"toast-container",
"toast-copied-code-message",
"welcome-to-hinode"
]
}
}

View File

@@ -177,3 +177,11 @@
# Nav & Tab
- id: clickToExpand
translation: "Click to expand"
# Contact information
- id: contactHeaderTopic
translation: "Interested in this topic?"
- id: contactBody
translation: "Please leave your contact details so we can get in touch."
- id: contactAction
translation: "Get in touch"

View File

@@ -174,3 +174,11 @@
# Nav & Tab
- id: clickToExpand
translation: "Klik om open te klappen"
# Contact information
- id: contactHeaderTopic
translation: "Wil je meer weten over dit onderwerp?"
- id: contactBody
translation: "Laat je gegevens achter en dan neem ik contact met je op."
- id: contactAction
translation: "Neem contact op"

View File

@@ -0,0 +1,66 @@
{{/*
Copyright © 2024 - 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.
*/}}
{{/* Initialize arguments */}}
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "contact" "args" . "group" "partial") }}
{{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/contact.html"
"warnid" "warn-invalid-arguments"
"msg" "Invalid arguments"
"details" ($args.errmsg | append $args.warnmsg)
"file" page.File
)}}
{{ end }}
{{/* Main code */}}
{{ if not $args.err }}
{{ $contact := partial "utilities/GetContact" (dict
"contact" $args.contact
"data" $args.data
"language-tag" site.Language.Lang
) }}
{{ $illustration := dict }}
{{ if and $contact $contact.image }}
{{ $illustration = dict
"image" $contact.image
"ratio" "1x1"
"class" $args.class
"caption" $contact.name
"caption-url" $args.captionUrl
}}
{{ else if $args.illustration }}
{{ $illustration = $args.illustration }}
{{ end }}
{{ $heading := "" }}
{{ if and (not $args.heading.title) (not $args.heading.content) }}
{{ $heading = dict
"title" (T "contactHeaderTopic")
"content" (T "contactBody")
"align" "start"
"width" (cond $illustration.image 10 12)
}}
{{ else }}
{{ $heading = $args.heading }}
{{ end }}
{{ partial "assets/hero.html" (dict
"page" $args.page
"heading" (merge $heading (dict "size" 6))
"background" $args.background
"illustration" $illustration
"order" $args.order
"link-type" $args.linkType
"links" $args.links
"orientation" $args.orientation
"width" (or $args.width 12)
"use-title" true
"size" 6
)
}}
{{ end }}

View File

@@ -77,10 +77,10 @@
{{- with $wrapper }}<div class="{{ . }}">{{ end }}
{{- end -}}
{{- if $data -}}
{{- if site.Params.debugging.includeSVGOrigin -}}
{{- if and site.Params.debugging.includeSVGOrigin $.url -}}
{{- printf "{{/* <svg src=\"%s\"> */}}" $.url | safeHTML -}}
{{- end -}}
{{- $data = replace $data "<svg" (printf "<svg class=\"%s\"" $args.class) -}}
{{- with $args.class }}{{ $data = replace $data "<svg" (printf "<svg class=\"%s\"" .) }}{{ end -}}
{{- $data | safeHTML -}}
{{- else if not $fileAnchor -}}
<img class="img-fluid {{ $args.class }}"

View File

@@ -67,7 +67,9 @@
{{- if hasSuffix $src "svg" -}}
{{- $res = partial "utilities/GetResource.html" (dict "url" $src "page" $args.page) -}}
{{ if not $res }}
{{- $targetURL := partial "utilities/GetStaticURL" (dict "url" (strings.TrimPrefix "/static" $src)) -}}
{{- $targetURL := strings.TrimPrefix "/static" $src -}}
{{- $u := urls.Parse site.BaseURL }}
{{- $targetURL = strings.TrimPrefix $u.Path $src -}}
{{- if not (fileExists (path.Join "/static" $targetURL)) -}}
{{ warnf "Cannot find vector image resource: %q" $src -}}
{{ else }}

View File

@@ -78,25 +78,42 @@
{{ if $args.icon }}{{ $imageWrapper = $iconWrapper }}{{ end }}
{{ $illustration := partial $args.hook (dict
"page" $args.page
"image" $args.illustration.image
"icon" $args.illustration.icon
"anchor" $args.illustration.anchor
"mode" $args.illustration.mode
"ratio" $args.illustration.ratio
"sizes" $sizes
"title" (T "heroImage")
"wrapper" $imageWrapper
"class" "hero-image"
"image-overlay" $args.imageOverlay
"justify" $imageJustify
) }}
{{ $caption := "" }}
{{ if $args.illustration.caption }}
{{ if index $args.illustration "caption-url" }}
{{ $caption = partial "assets/link.html" (dict
"href" (index $args.illustration "caption-url")
"text" $args.illustration.caption
"page" $args.page
"class" "text-center"
) }}
{{ else }}
{{ $caption = $args.illustration.caption }}
{{ end }}
{{ $caption = printf `<div class="text-center">%s</div>` $caption }}
{{ end }}
{{ $illustration := "" }}
{{ if or $args.illustration.image $args.illustration.icon }}
{{ $illustration = partial $args.hook (dict
"page" $args.page
"image" $args.illustration.image
"icon" $args.illustration.icon
"anchor" $args.illustration.anchor
"mode" $args.illustration.mode
"ratio" $args.illustration.ratio
"sizes" $sizes
"title" (T "heroImage")
"wrapper" $imageWrapper
"class" (printf "hero-image %s" $args.illustration.class)
"image-overlay" $args.imageOverlay
"justify" $imageJustify
) }}
{{ end }}
{{ $title := partial "assets/section-title.html" (dict
"heading" $heading
"use-title" $args.useTitle
"size" $args.size
"links" $args.links
"link-type" (or $args.linkType $args.type)
"class" "hero-title"
@@ -108,6 +125,7 @@
{{/* Render stacked component */}}
{{ $illustration | safeHTML }}
{{ $caption | safeHTML }}
{{ $title | safeHTML }}
{{ else }}
{{/* Render horizontal component */}}
@@ -122,12 +140,15 @@
{{ $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">
<div class="col col-12 {{ if $illustration }} col-md-{{sub 12 $imgWidth }}{{ end }} {{ $order1 }} my-md-auto pt-{{ $padding.y }} pt-md-0 hero-content">
{{ $title | safeHTML }}
</div>
{{ if $illustration }}
<div class="col col-8 col-md-{{ $imgWidth }} {{ $order2 }} m-auto my-md-auto align-self-end">
{{ $illustration | safeHTML }}
{{ $caption | safeHTML }}
</div>
{{ end }}
</div>
{{ end }}
{{ end }}

View File

@@ -72,7 +72,7 @@
aria-labelledby="{{ $parentID }}-heading-{{ $args.id }}"
data-bs-parent="#accordion-{{ $parentID }}"
>
<div class="accordion-body">{{ $args.body | $args.page.RenderString | safeHTML }}</div>
<div class="accordion-body">{{ or $args.raw ($args.body | $args.page.RenderString) | safeHTML }}</div>
</div>
</div>
{{- else -}}
@@ -82,9 +82,9 @@
role="tabpanel"
aria-labelledby="{{ $parentID }}-btn-{{ $args.id }}"
tabindex="0"
data-has-content="{{ gt (len $args.body) 0 }}"
data-has-content="{{ or (gt (len (or $args.raw "")) 0) (gt (len $args.body) 0 ) }}"
>
{{ $args.body | $args.page.RenderString | safeHTML }}
{{ or $args.raw ($args.body | $args.page.RenderString) | safeHTML }}
</div>
{{- end -}}
{{- end -}}

View File

@@ -6,6 +6,29 @@
{{- $error := false -}}
{{- define "_partials/inline/nav-dropdown.html" -}}
{{ $id := .id }}
{{ $class := .class }}
{{ $titles := .titles }}
{{ $wrap := .wrap }}
<div id="dropdown-{{ $id }}" class="dropdown panel-dropdown {{ $class }}">
<a class="link-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
{{ cond (gt (len $titles) 0) (index $titles 0) (T "sectionMenu") }}
</a>
<ul class="dropdown-menu">
{{- range $index, $item := $titles -}}
{{ $itemID := printf "%s-btn-%d" $id $index -}}
{{- $show := eq $index 0 -}}
<li>
<a class="dropdown-item {{ if not $wrap }} text-nowrap{{ end }}{{ if $show }} active{{ end }}"
data-link="#{{ $id }}-btn-{{ $index }}" type="button">{{ $item }}</a>
</li>
{{ end }}
</ul>
</div>
{{- end -}}
{{/* Initialize arguments */}}
{{- $args := partial "utilities/InitArgs.html" (dict "structure" "nav" "args" . "group" "partial") -}}
{{- if or $args.err $args.warnmsg -}}
@@ -19,46 +42,38 @@
{{- $error = $args.err -}}
{{- end -}}
{{/* Initialize global arguments */}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
{{/* Initialize local arguments */}}
{{- $page := $args.page -}}
{{- $id := $args.id | default "0" -}}
{{- $type := or $args.tabType $args.type -}}
{{- $wrap := or $args.wordWrap $args.wrap -}}
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
{{- $titles := slice -}}
{{- range $args.list }}{{ $titles = $titles | append .Title }} {{ end -}}
{{- if reflect.IsSlice $args.navTitles }}{{ $titles = $titles | append $args.navTitles }}{{ end -}}
{{/* Main code */}}
<div class="col col-{{ $breakpoint.current }}-{{ $args.width }} mx-auto">
{{ if $args.vertical }}<div class="d-flex align-items-start">{{ end }}
{{ if eq $type "callout" }}
<div class="d-lg-none">
<div id="accordion-{{ $id }}" class="accordion mb-3{{ with $args.class }} {{ . }}{{ end }} nav-callout">
{{- range $index, $item := $args.list -}}
{{ partial "assets/nav-item.html" (dict
"page" $args.page
"id" $index
"parentID" $id
"fade" false
"header" $item.Title
"class" $args.class
"body" (or $item.Description $item.Content)
"show" false
"disabled" $item.disabled
"item_type" "accordion"
"illustration" (partial "utilities/GetIllustration.html" (dict "item" $item "size" "col-12"))
)
}}
{{ end -}}
{{- $args.navItems | safeHTML -}}
</div>
</div>
<div class="d-none d-lg-block">
{{ if $args.responsive }}
{{ partial "inline/nav-dropdown.html" (dict
"id" $id
"class" (printf "d-%s-none py-%d" $breakpoint.current $padding.y)
"titles" $titles
"wrap" $wrap
) }}
{{ end }}
<div class="{{ if $args.responsive }}d-none d-{{ $breakpoint.current }}-block{{ end }}">
<ul
class="nav{{ with $type }} nav-{{ . }}{{ end }}{{ with $args.class }} {{ . }}{{ end }}{{ if $args.vertical }} flex-column{{ end }}"
class="nav nav-panel{{ with $type }} nav-{{ . }}{{ end -}}{{ with $args.class }} {{ . }}{{ end }}{{ if $args.vertical }} flex-column{{ end }} tabs-dropdown"
id="nav-{{ $id }}"
role="tablist"{{ if $args.vertical }}
aria-orientation="vertical"{{ end }}
role="tablist"
{{ if $args.vertical }}aria-orientation="vertical"{{ end }}
data-companion="dropdown-{{ $id }}"
>
{{- $titles := slice -}}
{{- range $args.list }}{{ $titles = $titles | append .Title }} {{ end -}}
@@ -73,7 +88,7 @@
class="nav-link{{ if not $wrap }} text-nowrap{{ end }}{{ if $show }} active{{ end }}{{ if $disabled }} disabled{{ end }}"
id="{{ $itemID }}"
data-bs-toggle="pill"
data-bs-target="#{{ $id }}-{{ $index }}"
data-bs-target="#{{ $id }}-{{ $index }}"
type="button"
role="tab"
aria-controls="{{ $id }}-{{ $index }}"
@@ -84,49 +99,9 @@
</li>
{{ end -}}
</ul>
<div class="tab-content {{ if eq $type "tabs" }}border p-3{{ else if $args.vertical }}ms-3{{ else }}mt-3{{ end }}">
{{- range $index, $item := $args.list -}}
{{- $header := $item.Title -}}
{-{ $body := $item.Content -}}
{{- $show := eq $index 0 -}}
{{- $thumbnail := "" -}}
{{- if reflect.IsMap $item.Params.Thumbnail -}}
{{- $thumbnail = $item.Params.Thumbnail.url -}}
{{- else -}}
{{- $thumbnail = $item.Params.Thumbnail -}}
{{- end -}}
<div
class="tab-pane{{ if $show }} active{{ end }}"
id="nav-{{ $id }}-{{ $index }}"
role="tabpanel"
aria-labelledby="{{ $id }}-btn-{{ $index }}"
tabindex="0"
>
{{- if eq $args.pane "persona" -}}
{{- partial "assets/persona.html" (dict
"title" $item.Title
"class" $args.class
"color" $args.color
"href" $item.Params.href
"content" (partial "utilities/GetDescription.html" (dict "page" $item))
"thumbnail" $thumbnail
) -}}
{{- else -}}
{{- $illustration := (partial "utilities/GetIllustration.html" (dict "item" $item)) -}}
{{- if $illustration -}}
<div class="row">
<div class="col-12 col-lg-10 order-1 order-lg-0">{{- (or $item.Description $item.Content) -}}</div>
<div class="col-12 col-lg-2 order-0 order-lg-1">{{ $illustration | safeHTML }}</div>
</div>
{{- else -}}
{{- (or $item.Description $item.Content) -}}
{{ end }}
{{- end -}}
</div>
{{ end }}
</div>
<div class="tab-content {{ if in (slice "tabs" "callout") $type }}border p-3 bg-body {{ else if $args.vertical }}ms-3{{ else }}mt-3{{ end }}">
{{- $args.navItems | safeHTML -}}
</div>
{{- if eq $type "callout" }}</div>{{ end -}}
{{- if $args.vertical }}</div>{{ end -}}
</div>

View File

@@ -80,7 +80,7 @@
{{ end }}
{{/* Initialize global variables */}}
{{- $padding := partial "utilities/GetPadding.html" -}}
{{- $padding := partial "utilities/GetPadding.html" (dict "section" "navigation") -}}
{{/* Initialize local arguments */}}
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
@@ -124,7 +124,8 @@
{{ $logo := "" }}
{{ with $args.logo | default site.Params.navigation.logo }}
{{ $logo = partial "assets/image.html" (dict "src" . "loading" "eager" "title" $title "image-height" 30) }}
{{ $height := index site.Params.navigation "logo-height" | default 30 }}
{{ $logo = partial "assets/image.html" (dict "src" . "loading" "eager" "title" $title "image-height" $height) }}
{{ end }}
{{- $pre := $args.pre -}}

View File

@@ -19,7 +19,7 @@
{{- $padding := partial "utilities/GetPadding.html" -}}
{{/* Initialize local arguments */}}
{{- $size := (or $args.size site.Params.modules.bookshop.title.size) | default 4 -}}
{{- $size := (or $args.heading.size site.Params.modules.bookshop.title.size) | default 4 -}}
{{- $arrangement := (or $args.arrangement site.Params.modules.bookshop.title.arrangement) | default "above" -}}
{{- $headingStyle := (or $args.headingStyle site.Params.modules.bookshop.title.headingStyle) | default "display" -}}
{{- $contentStyle := (or $args.contentStyle site.Params.modules.bookshop.title.contentStyle) | default "lead text-muted" -}}
@@ -27,8 +27,8 @@
{{- $title := $args.heading.title }}
{{- $width := $args.heading.width | default 12 -}}
{{- $width = cond (lt $width 12) (printf "col-12 col-%s-%d" $breakpoint.current $width) "" }}
{{ if and (not $preheading) $args.useSection }}{{ $preheading = page.CurrentSection.Name }}{{ end }}
{{ $justify := cond (eq $args.justify "start") "" (cond (eq $args.justify "end") "me-0" "mx-auto") }}
{{- if and (not $preheading) $args.useSection }}{{ $preheading = page.CurrentSection.Name }}{{ end -}}
{{- $justify := cond (eq $args.justify "start") "" (cond (eq $args.justify "end") "me-0" "mx-auto") -}}
{{ if site.Params.main.titleCase }}
{{ $preheading = title $preheading }}

View File

@@ -7,7 +7,7 @@
{{ $error := false }}
{{/* Initialize arguments */}}
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "toc" "args" . "group" "partial")}}
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "toc" "args" . "group" "partial") }}
{{ if or $args.err $args.warnmsg }}
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
"partial" "assets/toc.html"
@@ -31,8 +31,8 @@
{{- if and (not $error) (ge (len .) $minNumHeadings) }}
<div class="d-grid gap-2 mx-auto">
{{ partial "assets/button.html" (dict
"title" (T "toc")
"color" "secondary"
"title" (T "toc")
"color" "secondary"
"outline" "true"
"class" "toc-button"
"icon" "fas sort"

View File

@@ -17,7 +17,9 @@
{{/* Insert a default hero and article block (for list pages) when no content blocks are available */}}
{{ if and .blocks (gt (len .blocks) 0 )}}
{{ $blocks = .blocks }}
{{ range $i, $b := .blocks }}
{{ $blocks = $blocks | append (merge (dict "_ordinal" $i) $b) }}
{{ end }}
{{ else if $default }}
{{ $err := (hasPrefix $page.LinkTitle "404") }}
{{ $pageTitle := $page.LinkTitle }}

1894
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -87,10 +87,10 @@
"commitizen": "^4.3.1",
"cpy-cli": "^5.0.0",
"cz-conventional-changelog": "^3.3.0",
"eslint": "^9.30.0",
"eslint": "^9.30.1",
"husky": "^9.1.7",
"markdownlint-cli2": "^0.18.1",
"neostandard": "^0.12.1",
"neostandard": "^0.12.2",
"netlify-plugin-hugo-cache-resources": "^0.2.1",
"npm-run-all": "^4.1.5",
"postcss-cli": "^11.0.1",
@@ -98,7 +98,7 @@
"rimraf": "^6.0.1",
"semantic-release": "^24.2.6",
"shx": "^0.4.0",
"stylelint": "^16.21.0",
"stylelint": "^16.21.1",
"stylelint-config-standard-scss": "^15.0.1"
},
"optionalDependencies": {