Compare commits

...

45 Commits

Author SHA1 Message Date
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
Mark Dumay
32fd60bb58 Merge pull request #1485 from gethinode/develop
Semantic release
2025-07-01 12:54:41 +02:00
Mark Dumay
8fa19c9ed1 Merge branch 'main' into develop 2025-07-01 12:44:56 +02:00
Mark Dumay
d36fcd894b feat: introduce semantic releases 2025-07-01 12:40:19 +02:00
Mark Dumay
7378a61542 ci: update Netlify build environment 2025-07-01 12:33:06 +02:00
Mark Dumay
fb63e36c56 Merge pull request #1484 from gethinode/develop
Fix kbd rendering
2025-07-01 11:42:27 +02:00
Mark Dumay
ae1cda1f5a Merge branch 'main' into develop 2025-07-01 11:36:04 +02:00
Mark Dumay
4846d1b016 Bump package release 2025-07-01 11:35:04 +02:00
Mark Dumay
01522dad71 Update build stats 2025-07-01 11:34:38 +02:00
Mark Dumay
0bbef1dad2 FIx kbd rendering 2025-07-01 11:34:29 +02:00
Mark Dumay
5e048d32df Merge pull request #1482 from gethinode/develop
Fix rendering of nav items
2025-06-30 08:42:44 +02:00
Mark Dumay
d1128fa7c3 Merge branch 'main' into develop 2025-06-30 08:00:43 +02:00
Mark Dumay
cf9a39b51f Fix rendering of nav items 2025-06-30 08:00:04 +02:00
Mark Dumay
ae9ec71966 Update dependencies 2025-06-29 13:35:27 +02:00
Mark Dumay
f6c4bbfffb Merge pull request #1481 from gethinode/develop
Enable explicit auto ratio for images
2025-06-29 13:24:07 +02:00
Mark Dumay
7a655315f1 Merge branch 'main' into develop 2025-06-29 13:19:12 +02:00
Mark Dumay
5c27178881 Enable explicit auto ratio for images 2025-06-29 13:18:43 +02:00
Mark Dumay
c829049842 Merge pull request #1480 from gethinode/develop
Fix starter template
2025-06-29 13:14:02 +02:00
Mark Dumay
613da916aa Merge branch 'main' into develop 2025-06-29 13:07:13 +02:00
Mark Dumay
d3d75c9dc6 Fix starter template 2025-06-29 13:05:52 +02:00
Mark Dumay
2f5b49397e Merge pull request #1479 from gethinode/develop
Fix justification of section title
2025-06-29 13:04:54 +02:00
Mark Dumay
632f3d861b Merge branch 'main' into develop 2025-06-29 12:56:11 +02:00
Mark Dumay
004063f02a Refine content blocks page 2025-06-29 12:34:48 +02:00
Mark Dumay
1bd498f816 Fix justification of section title 2025-06-29 12:34:36 +02:00
56 changed files with 8019 additions and 360 deletions

View File

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

View File

@@ -1,41 +0,0 @@
# This workflow will run tests using node and then publish a package to npmjs.org when a release is created
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
name: Publish package to npmjs
on:
workflow_dispatch:
release:
types: [published]
env:
REGISTRY_URL: 'https://registry.npmjs.org/'
jobs:
build:
strategy:
matrix:
os: [ubuntu-latest]
node-version: [20.x]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup .npmrc file to publish to npm
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
registry-url: ${{ env.REGISTRY_URL }}
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
# [27/AUG/23] Adjusted from npm ci to prevent EBADPLATFORM error due to fsevents
- name: Install npm
run: npm i
- name: Publish package to npm
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

44
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,44 @@
name: Release
on:
workflow_dispatch:
push:
branches:
- main
env:
HUSKY: 0
permissions:
contents: read # for checkout
jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: write # to be able to publish a GitHub release
issues: write # to be able to comment on released issues
pull-requests: write # to be able to comment on released pull requests
id-token: write # to enable use of OIDC for npm provenance
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "lts/*"
- name: Install dependencies
run: npm clean-install
- name: Verify the integrity of provenance attestations and registry signatures for installed dependencies
run: npm audit signatures
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx semantic-release

1
.gitignore vendored
View File

@@ -1,5 +1,6 @@
_vendor/ _vendor/
prebuild/ prebuild/
prebuild-headers/
public/ public/
resources/ resources/
node_modules/ node_modules/

1
.husky/commit-msg Normal file
View File

@@ -0,0 +1 @@
npx --no -- commitlint --edit $1

6
.husky/install.mjs Normal file
View File

@@ -0,0 +1,6 @@
// Skip Husky install in production and CI
if (process.env.NODE_ENV === 'production' || process.env.CI === 'true') {
process.exit(0)
}
const husky = (await import('husky')).default
console.log(husky())

1
.husky/pre-commit Normal file
View File

@@ -0,0 +1 @@
npm test

View File

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

1
commitlint.config.js Normal file
View File

@@ -0,0 +1 @@
module.exports = {extends: ['@commitlint/config-conventional']}

View File

@@ -2,6 +2,7 @@
@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/cards/cards";
@import "modules/bookshop/components/cta/cta";
@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

@@ -19,9 +19,10 @@
{{/* Main code */}} {{/* Main code */}}
{{ if not $args.error }} {{ if not $args.error }}
{{ partial "assets/hero.html" (dict {{ partial "assets/hero.html" (dict
"page" page
"heading" $args.heading "heading" $args.heading
"background" $args.background "background" $args.background
"illustration" (merge (dict "ratio" "1x1") $args.illustration) "illustration" (merge (dict "ratio" "auto") $args.illustration)
"order" $args.order "order" $args.order
"link-type" $args.linkType "link-type" $args.linkType
"links" $args.links "links" $args.links

View File

@@ -62,7 +62,7 @@
<!-- Main code --> <!-- Main code -->
{{ if not $error }} {{ if not $error }}
{{- partial "assets/section-title.html" (dict "heading" $args.heading) -}} {{- partial "assets/section-title.html" (dict "heading" $args.heading "justify" $args.justify) -}}
{{ $partial := "assets/card-group.html" }} {{ $partial := "assets/card-group.html" }}
{{ $params := dict }} {{ $params := dict }}

View File

@@ -35,7 +35,7 @@
{{ end}} {{ end}}
{{ if not $error }} {{ if not $error }}
{{- partial "assets/section-title.html" (dict "heading" $args.heading) -}} {{- partial "assets/section-title.html" (dict "heading" $args.heading "justify" $args.justify) -}}
{{- partial "assets/card-group.html" (dict {{- partial "assets/card-group.html" (dict
"page" page "page" page

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

@@ -19,7 +19,7 @@
{{ if not $args.err }} {{ if not $args.err }}
{{ $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 "justify" $args.justify) -}}
{{ $class := "" }} {{ $class := "" }}
{{ $id := printf "faq-%s" (md5 (delimit (slice . now) "-")) }} {{ $id := printf "faq-%s" (md5 (delimit (slice . now) "-")) }}

View File

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

View File

@@ -96,7 +96,7 @@
) }} ) }}
{{ end}} {{ end}}
{{- partial "assets/section-title.html" (dict "heading" $args.heading) -}} {{- partial "assets/section-title.html" (dict "heading" $args.heading "justify" $args.justify) -}}
{{ if eq $args.orientation "stacked" }} {{ if eq $args.orientation "stacked" }}
<div class="col-{{ $breakpoint.current }}-{{ $args.width }} mx-auto pb-{{ $padding.y }}"> <div class="col-{{ $breakpoint.current }}-{{ $args.width }} mx-auto pb-{{ $padding.y }}">

View File

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

View File

@@ -7,18 +7,18 @@ 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: Get started - title: Getting started
url: https://gethinode.com/docs url: https://gethinode.com/docs
icon: fas book-open icon: fas chevron-right
orientation: horizontal orientation: horizontal
justify: center
--- ---

View File

@@ -4,12 +4,12 @@
command = "npm run build:example" command = "npm run build:example"
[build.environment] [build.environment]
DART_SASS_VERSION = "1.83.1" DART_SASS_VERSION = "1.89.2"
HUGO_VERSION = "0.140.2" HUGO_VERSION = "0.147.9"
HUGO_ENV = "production" HUGO_ENV = "production"
HUGO_ENABLEGITINFO = "true" HUGO_ENABLEGITINFO = "true"
NODE_VERSION = "22.12.0" NODE_VERSION = "22.13.0"
NPM_VERSION = "10.9.0" NPM_VERSION = "10.9.2"
# toml-docs-end netlify # toml-docs-end netlify
[context.deploy-preview] [context.deploy-preview]

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

View File

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

View File

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

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

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

View File

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

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

@@ -362,14 +362,14 @@ As an example, the following shortcode displays a tab group with vertically alig
<!-- markdownlint-disable MD037 --> <!-- markdownlint-disable MD037 -->
{{< 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" */>}}
This is the first item's nav body. It supports Markdown content. This is the first item's nav body. It supports Markdown content.
The item is shown by adding the value `show` to the `class` argument. 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" show="true" */>}}
This is the second item's nav body. This is the second item's nav body.
{{</* /nav-item */>}} {{</* /nav-item */>}}
{{</* nav-item title="Nav Item #3" */>}} {{</* nav-item title="Nav Item #3" disabled="true" */>}}
This is the third item's nav body. This is the third item's nav body.
{{</* /nav-item */>}} {{</* /nav-item */>}}
{{</* /nav */>}} {{</* /nav */>}}

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", "figure",
"footer", "footer",
"form", "form",
"h1",
"h2", "h2",
"h3", "h3",
"head", "head",
@@ -188,9 +189,11 @@
"col-sm-6", "col-sm-6",
"collapse", "collapse",
"collapsed", "collapsed",
"contact-img",
"container", "container",
"container-fluid", "container-fluid",
"container-xxl", "container-xxl",
"cta",
"custom", "custom",
"d-block", "d-block",
"d-flex", "d-flex",
@@ -207,8 +210,10 @@
"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",
"display-6",
"dropdown", "dropdown",
"dropdown-divider-bg", "dropdown-divider-bg",
"dropdown-item", "dropdown-item",
@@ -429,9 +434,11 @@
"ptw-5", "ptw-5",
"ptw-lg-5", "ptw-lg-5",
"ptw-sm-4", "ptw-sm-4",
"px-%!d(string=0)",
"px-2", "px-2",
"px-4", "px-4",
"px-xxl-0", "px-xxl-0",
"py-%!d(string=0)",
"py-1", "py-1",
"py-2", "py-2",
"py-3", "py-3",
@@ -614,14 +621,15 @@
"fab-medium", "fab-medium",
"fab-whatsapp", "fab-whatsapp",
"fab-x-twitter", "fab-x-twitter",
"faq-f38add4e4b48c1c030c4b64eb31efe8f", "faq-9ef13ff2bd73b0e328491bd048c7a1ef",
"faq-f38add4e4b48c1c030c4b64eb31efe8f-heading-faq-f38add4e4b48c1c030c4b64eb31efe8f", "faq-9ef13ff2bd73b0e328491bd048c7a1ef-heading-faq-9ef13ff2bd73b0e328491bd048c7a1ef",
"faq-f38add4e4b48c1c030c4b64eb31efe8f-item-0", "faq-9ef13ff2bd73b0e328491bd048c7a1ef-item-0",
"faq-f38add4e4b48c1c030c4b64eb31efe8f-item-1", "faq-9ef13ff2bd73b0e328491bd048c7a1ef-item-1",
"faq-f38add4e4b48c1c030c4b64eb31efe8f-item-2", "faq-9ef13ff2bd73b0e328491bd048c7a1ef-item-2",
"fas-1", "fas-1",
"fas-2", "fas-2",
"fas-3", "fas-3",
"fas-address-card",
"fas-angle-left", "fas-angle-left",
"fas-arrow-left", "fas-arrow-left",
"fas-arrow-right", "fas-arrow-right",
@@ -676,6 +684,7 @@
"infobulle", "infobulle",
"input-type", "input-type",
"ins", "ins",
"interested-in-this-topic",
"invite-de-commandes", "invite-de-commandes",
"items-type", "items-type",
"kaart", "kaart",
@@ -698,10 +707,10 @@
"nav-0-0", "nav-0-0",
"nav-0-1", "nav-0-1",
"nav-0-2", "nav-0-2",
"nav-0-btn-0",
"nav-0-btn-1",
"nav-0-btn-2",
"nav-nav-0", "nav-nav-0",
"nav-nav-0-btn-0",
"nav-nav-0-btn-1",
"nav-nav-0-btn-2",
"navbar", "navbar",
"navbar-0-collapse", "navbar-0-collapse",
"navbar-mode", "navbar-mode",

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 v1.1.7 // indirect
github.com/gethinode/mod-simple-datatables/v2 v2.0.1 // 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/v3 v3.3.1 // indirect
github.com/gethinode/mod-utils/v4 v4.8.0 // indirect github.com/gethinode/mod-utils/v4 v4.9.2 // 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.7+incompatible // indirect github.com/twbs/bootstrap v5.3.7+incompatible // indirect
) )

14
go.sum
View File

@@ -444,6 +444,20 @@ github.com/gethinode/mod-utils/v4 v4.7.0 h1:JaL/+APOwdEzAi6y174ZdwoguCdALyGiGX8q
github.com/gethinode/mod-utils/v4 v4.7.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4= github.com/gethinode/mod-utils/v4 v4.7.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.8.0 h1:/+M3EHqA8IzgBWXX1GLmT/xKbk2FVhUwmUfMnk/goF4= github.com/gethinode/mod-utils/v4 v4.8.0 h1:/+M3EHqA8IzgBWXX1GLmT/xKbk2FVhUwmUfMnk/goF4=
github.com/gethinode/mod-utils/v4 v4.8.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4= github.com/gethinode/mod-utils/v4 v4.8.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.8.1 h1:XJULrx5VWO4wR69EsvfPp9bQoRvx8Y7GwnknpDbrDpg=
github.com/gethinode/mod-utils/v4 v4.8.1/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.8.2 h1:mhPmqdeCar2sOdVwKIyJl5la0RVBPtw4d29ncRKN3ek=
github.com/gethinode/mod-utils/v4 v4.8.2/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.8.3 h1:CSaFR/c1cGrSPpH5ZfrNOoMhAbNb8sw0SCRh9ZxCJTU=
github.com/gethinode/mod-utils/v4 v4.8.3/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.8.4 h1:ExD2zZCGonAmbIxC9wBU2dp+V4ZfvG46NWaz+LaV3iQ=
github.com/gethinode/mod-utils/v4 v4.8.4/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/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/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=

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",
@@ -53,8 +53,6 @@
"col-12", "col-12",
"col-6", "col-6",
"col-8", "col-8",
"col-md-1",
"col-md-11",
"col-md-2", "col-md-2",
"col-md-6", "col-md-6",
"col-md-8", "col-md-8",
@@ -78,7 +76,7 @@
"fa-10x", "fa-10x",
"fa-2x", "fa-2x",
"fa-angle-left", "fa-angle-left",
"fa-book-open", "fa-chevron-right",
"fa-ellipsis", "fa-ellipsis",
"fa-face-frown", "fa-face-frown",
"fa-fw", "fa-fw",
@@ -174,10 +172,10 @@
"section-cover", "section-cover",
"shadow", "shadow",
"svg-inline--fa", "svg-inline--fa",
"text-",
"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",
@@ -196,7 +194,7 @@
"fab-linkedin", "fab-linkedin",
"fab-medium", "fab-medium",
"fas-angle-left", "fas-angle-left",
"fas-book-open", "fas-chevron-right",
"fas-ellipsis", "fas-ellipsis",
"fas-moon", "fas-moon",
"fas-sun", "fas-sun",

View File

@@ -177,3 +177,11 @@
# Nav & Tab # Nav & Tab
- id: clickToExpand - id: clickToExpand
translation: "Click to expand" 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 # Nav & Tab
- id: clickToExpand - id: clickToExpand
translation: "Klik om open te klappen" 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

@@ -179,7 +179,7 @@
{{ if eq (lower (path.Ext $thumbnail)) ".svg" }}{{ $fullHeight = "" }}{{ $rounding = "" }}{{ end }} {{ if eq (lower (path.Ext $thumbnail)) ".svg" }}{{ $fullHeight = "" }}{{ $rounding = "" }}{{ end }}
{{- partial $args.hook (dict {{- partial $args.hook (dict
"src" $thumbnail "src" $thumbnail
"ratio" (or $ratio "1x1") "ratio" (or $ratio "auto")
"portrait" $args.portrait "portrait" $args.portrait
"sizes" $args.sizes "sizes" $args.sizes
"anchor" $anchor "anchor" $anchor

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" $heading
"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 }} {{- with $wrapper }}<div class="{{ . }}">{{ end }}
{{- end -}} {{- end -}}
{{- if $data -}} {{- if $data -}}
{{- if site.Params.debugging.includeSVGOrigin -}} {{- if and site.Params.debugging.includeSVGOrigin $.url -}}
{{- printf "{{/* <svg src=\"%s\"> */}}" $.url | safeHTML -}} {{- printf "{{/* <svg src=\"%s\"> */}}" $.url | safeHTML -}}
{{- end -}} {{- 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 -}} {{- $data | safeHTML -}}
{{- else if not $fileAnchor -}} {{- else if not $fileAnchor -}}
<img class="img-fluid {{ $args.class }}" <img class="img-fluid {{ $args.class }}"

View File

@@ -67,7 +67,9 @@
{{- if hasSuffix $src "svg" -}} {{- if hasSuffix $src "svg" -}}
{{- $res = partial "utilities/GetResource.html" (dict "url" $src "page" $args.page) -}} {{- $res = partial "utilities/GetResource.html" (dict "url" $src "page" $args.page) -}}
{{ if not $res }} {{ 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)) -}} {{- if not (fileExists (path.Join "/static" $targetURL)) -}}
{{ warnf "Cannot find vector image resource: %q" $src -}} {{ warnf "Cannot find vector image resource: %q" $src -}}
{{ else }} {{ else }}
@@ -83,7 +85,7 @@
{{ else }} {{ else }}
{{ warnf "Unsupported media type '%s': %q" (string $res.MediaType) $src -}} {{ warnf "Unsupported media type '%s': %q" (string $res.MediaType) $src -}}
{{ end }} {{ end }}
{{ else if $args.ratio }} {{ else if and $args.ratio (ne $args.ratio "auto") }}
{{ $transform = "fill" }} {{ $transform = "fill" }}
{{ $dims = partial "assets/helpers/GetDimension.html" (dict "ratio" $args.ratio) }} {{ $dims = partial "assets/helpers/GetDimension.html" (dict "ratio" $args.ratio) }}
{{ if not $dims }}{{ errorf "partial [assets/image.html] - Cannot find dimension data: %s" $args.ratio }}{{ end }} {{ if not $dims }}{{ errorf "partial [assets/image.html] - Cannot find dimension data: %s" $args.ratio }}{{ end }}

View File

@@ -78,20 +78,38 @@
{{ if $args.icon }}{{ $imageWrapper = $iconWrapper }}{{ end }} {{ if $args.icon }}{{ $imageWrapper = $iconWrapper }}{{ end }}
{{ $illustration := partial $args.hook (dict {{ $caption := "" }}
"page" $args.page {{ if $args.illustration.caption }}
"image" $args.illustration.image {{ if index $args.illustration "caption-url" }}
"icon" $args.illustration.icon {{ $caption = partial "assets/link.html" (dict
"anchor" $args.illustration.anchor "href" (index $args.illustration "caption-url")
"mode" $args.illustration.mode "text" $args.illustration.caption
"ratio" $args.illustration.ratio "page" $args.page
"sizes" $sizes "class" "text-center"
"title" (T "heroImage") ) }}
"wrapper" $imageWrapper {{ else }}
"class" "hero-image" {{ $caption = $args.illustration.caption }}
"image-overlay" $args.imageOverlay {{ end }}
"justify" $imageJustify {{ $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 {{ $title := partial "assets/section-title.html" (dict
"heading" $heading "heading" $heading
@@ -101,12 +119,14 @@
"link-type" (or $args.linkType $args.type) "link-type" (or $args.linkType $args.type)
"class" "hero-title" "class" "hero-title"
"arrangement" $arrangement "arrangement" $arrangement
"justify" $args.justify
) }} ) }}
{{ if eq $args.orientation "stacked" }} {{ if eq $args.orientation "stacked" }}
{{/* Render stacked component */}} {{/* Render stacked component */}}
{{ $illustration | safeHTML }} {{ $illustration | safeHTML }}
{{ $caption | safeHTML }}
{{ $title | safeHTML }} {{ $title | safeHTML }}
{{ else }} {{ else }}
{{/* Render horizontal component */}} {{/* Render horizontal component */}}
@@ -121,12 +141,15 @@
{{ $imgWidth := sub 12 (or $args.heading.width 12) }} {{ $imgWidth := sub 12 (or $args.heading.width 12) }}
{{ if lt $imgWidth 1 }}{{ $imgWidth = 1 }}{{ end }} {{ 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 }} {{ $title | safeHTML }}
</div> </div>
{{ if $illustration }}
<div class="col col-8 col-md-{{ $imgWidth }} {{ $order2 }} m-auto my-md-auto align-self-end"> <div class="col col-8 col-md-{{ $imgWidth }} {{ $order2 }} m-auto my-md-auto align-self-end">
{{ $illustration | safeHTML }} {{ $illustration | safeHTML }}
{{ $caption | safeHTML }}
</div> </div>
{{ end }}
</div> </div>
{{ end }} {{ end }}
{{ end }} {{ end }}

View File

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

View File

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

View File

@@ -26,8 +26,9 @@
{{- $preheading := $args.heading.preheading }} {{- $preheading := $args.heading.preheading }}
{{- $title := $args.heading.title }} {{- $title := $args.heading.title }}
{{- $width := $args.heading.width | default 12 -}} {{- $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 }} {{- 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 }} {{ if site.Params.main.titleCase }}
{{ $preheading = title $preheading }} {{ $preheading = title $preheading }}
@@ -85,7 +86,7 @@
}} }}
<!-- Main code --> <!-- Main code -->
<div class="text-{{ $args.heading.align }}{{ with $args.class }} {{ . }}{{ end }}{{ if lt $width 12 }} col-12 col-{{ $breakpoint.current }}-{{ $width }}{{ end }} py-{{ $padding.y }}"> <div class="text-{{ $args.heading.align }}{{ with $justify }} {{ . }}{{ end }}{{ with $args.class }} {{ . }}{{ end }}{{ with $width }} {{ . }}{{ end }} py-{{ $padding.y }}">
{{ if and $preheading (eq $arrangement "first") }} {{ if and $preheading (eq $arrangement "first") }}
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">

View File

@@ -104,6 +104,7 @@
"links" $args.links "links" $args.links
"link-type" (or $args.linkType $args.type) "link-type" (or $args.linkType $args.type)
"arrangement" $arrangement "arrangement" $arrangement
"justify" $args.justify
) }} ) }}
{{ end }} {{ end }}

View File

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

View File

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

View File

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

View File

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

View File

@@ -4,12 +4,12 @@
publish = 'exampleSite/public' publish = 'exampleSite/public'
[build.environment] [build.environment]
DART_SASS_VERSION = '1.78.0' DART_SASS_VERSION = '1.89.2'
HUGO_ENABLEGITINFO = 'true' HUGO_ENABLEGITINFO = 'true'
HUGO_ENV = 'production' HUGO_ENV = 'production'
HUGO_VERSION = '0.134.1' HUGO_VERSION = '0.147.9'
NODE_VERSION = '20.17.0' NODE_VERSION = '22.13.0'
NPM_VERSION = '10.8.2' NPM_VERSION = '10.9.2'
[context] [context]
[context.branch-deploy] [context.branch-deploy]
@@ -39,17 +39,17 @@
Access-Control-Allow-Origin = '*' Access-Control-Allow-Origin = '*'
Content-Security-Policy = """ Content-Security-Policy = """
base-uri 'self'; \ base-uri 'self'; \
connect-src 'self' *.cookieyes.com cdn-cookieyes.com *.google-analytics.com *.analytics.google.com *.googletagmanager.com; \ connect-src 'self' *.analytics.google.com *.google.com *.google-analytics.com *.googletagmanager.com; \
default-src 'none'; \ default-src 'none'; \
font-src 'self' fonts.gstatic.com; \ font-src 'self' fonts.gstatic.com data:; \
form-action 'self'; \ form-action 'self'; \
frame-src player.cloudinary.com www.youtube-nocookie.com www.youtube.com player.vimeo.com; \ frame-src *.googletagmanager.com player.cloudinary.com www.youtube-nocookie.com www.youtube.com player.vimeo.com; \
img-src 'self' cdn-cookieyes.com *.google-analytics.com *.googletagmanager.com data: *.imgix.net *.imagekit.io *.cloudinary.com i.ytimg.com tile.openstreetmap.org i.vimeocdn.com; \ img-src 'self' *.google-analytics.com *.googletagmanager.com googletagmanager.com ssl.gstatic.com www.gstatic.com data: *.imgix.net *.imagekit.io *.cloudinary.com i.ytimg.com tile.openstreetmap.org i.vimeocdn.com; \
manifest-src 'self'; \ manifest-src 'self'; \
media-src 'self'; \ media-src 'self'; \
object-src 'none'; \ object-src 'none'; \
script-src 'self' cdn-cookieyes.com *.google-analytics.com *.googletagmanager.com player.vimeo.com; \ script-src 'self' *.google-analytics.com *.googletagmanager.com *.analytics.google.com googletagmanager.com tagmanager.google.com player.vimeo.com; \
style-src 'self' 'unsafe-inline' www.youtube.com; \ style-src 'self' googletagmanager.com tagmanager.google.com fonts.googleapis.com www.youtube.com; \
""" """
Permissions-Policy = 'geolocation=(), midi=(), sync-xhr=(), microphone=(), camera=(), magnetometer=(), gyroscope=(), fullscreen=(), payment=() ' Permissions-Policy = 'geolocation=(), midi=(), sync-xhr=(), microphone=(), camera=(), magnetometer=(), gyroscope=(), fullscreen=(), payment=() '
Referrer-Policy = 'strict-origin' Referrer-Policy = 'strict-origin'
@@ -59,23 +59,3 @@
X-XSS-Protection = '1; mode=block' X-XSS-Protection = '1; mode=block'
cache-control = 'max-age=0, no-cache, no-store, must-revalidate ' cache-control = 'max-age=0, no-cache, no-store, must-revalidate '
[[redirects]]
from = '/fr/*'
status = 404
to = '/fr/404.html'
[[redirects]]
from = '/nl/*'
status = 404
to = '/nl/404.html'
[[redirects]]
from = '/en/*'
status = 404
to = '/en/404.html'
[[redirects]]
from = '/*'
status = 404
to = '/en/404.html'

7575
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{ {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "1.0.0-beta5", "version": "0.0.0-semantically-released",
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator", "description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
"keywords": [ "keywords": [
"hugo", "hugo",
@@ -12,6 +12,7 @@
"documentation" "documentation"
], ],
"main": "index.js", "main": "index.js",
"private": true,
"publishConfig": { "publishConfig": {
"access": "public", "access": "public",
"registry": "https://registry.npmjs.org/" "registry": "https://registry.npmjs.org/"
@@ -28,7 +29,7 @@
"build:example": "npm run -s prebuild && hugo --gc --minify -s exampleSite", "build:example": "npm run -s prebuild && hugo --gc --minify -s exampleSite",
"build:example:ci": "npm run -s prebuild && hugo --gc --minify -s exampleSite -e ci", "build:example:ci": "npm run -s prebuild && hugo --gc --minify -s exampleSite -e ci",
"build:debug": "hugo -e debug --debug", "build:debug": "hugo -e debug --debug",
"build:headers": "hugo --renderSegments headers -d prebuild && cpy prebuild/server.toml config/_default/ --flat", "build:headers": "hugo --renderSegments headers -d prebuild-headers -e headers && cpy prebuild-headers/netlify.toml ./ --flat && cpy prebuild-headers/server.toml config/_default/ --flat",
"build:example:headers": "hugo -s exampleSite --renderSegments headers -d prebuild && cpy exampleSite/prebuild/netlify.toml ./ --flat && cpy exampleSite/prebuild/server.toml exampleSite/config/_default/ --flat", "build:example:headers": "hugo -s exampleSite --renderSegments headers -d prebuild && cpy exampleSite/prebuild/netlify.toml ./ --flat && cpy exampleSite/prebuild/server.toml exampleSite/config/_default/ --flat",
"build:preview": "npm run build -D -F", "build:preview": "npm run build -D -F",
"clean:public": "rimraf public exampleSite/public", "clean:public": "rimraf public exampleSite/public",
@@ -44,6 +45,7 @@
"test": "npm run -s lint", "test": "npm run -s lint",
"env": "hugo env", "env": "hugo env",
"precheck": "npm version", "precheck": "npm version",
"prepare": "node .husky/install.mjs",
"check": "hugo version", "check": "hugo version",
"create:syntax": "npm-run-all update:syntax:**", "create:syntax": "npm-run-all update:syntax:**",
"update:syntax:light1": "hugo gen chromastyles --style=github > ./assets/scss/components/_syntax-light.scss", "update:syntax:light1": "hugo gen chromastyles --style=github > ./assets/scss/components/_syntax-light.scss",
@@ -77,9 +79,16 @@
"purgecss-whitelister": "^2.4.0" "purgecss-whitelister": "^2.4.0"
}, },
"devDependencies": { "devDependencies": {
"@commitlint/cli": "^19.8.1",
"@commitlint/config-conventional": "^19.8.1",
"@gethinode/netlify-plugin-dartsass": "^0.3.0", "@gethinode/netlify-plugin-dartsass": "^0.3.0",
"@semantic-release/exec": "^7.1.0",
"@semantic-release/git": "^10.0.1",
"commitizen": "^4.3.1",
"cpy-cli": "^5.0.0", "cpy-cli": "^5.0.0",
"eslint": "^9.29.0", "cz-conventional-changelog": "^3.3.0",
"eslint": "^9.30.1",
"husky": "^9.1.7",
"markdownlint-cli2": "^0.18.1", "markdownlint-cli2": "^0.18.1",
"neostandard": "^0.12.1", "neostandard": "^0.12.1",
"netlify-plugin-hugo-cache-resources": "^0.2.1", "netlify-plugin-hugo-cache-resources": "^0.2.1",
@@ -87,8 +96,9 @@
"postcss-cli": "^11.0.1", "postcss-cli": "^11.0.1",
"replace-in-files-cli": "^3.0.0", "replace-in-files-cli": "^3.0.0",
"rimraf": "^6.0.1", "rimraf": "^6.0.1",
"semantic-release": "^24.2.6",
"shx": "^0.4.0", "shx": "^0.4.0",
"stylelint": "^16.21.0", "stylelint": "^16.21.1",
"stylelint-config-standard-scss": "^15.0.1" "stylelint-config-standard-scss": "^15.0.1"
}, },
"optionalDependencies": { "optionalDependencies": {
@@ -98,5 +108,35 @@
}, },
"hugo-bin": { "hugo-bin": {
"buildTags": "extended" "buildTags": "extended"
},
"release": {
"branches": "main",
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/github",
[
"@semantic-release/exec",
{
"prepare": "npm install"
}
],
[
"@semantic-release/git",
{
"assets": [
"dist",
"package.json",
"package-lock.json"
],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}
]
]
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
} }
} }