mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 10:04:22 +00:00
Compare commits
54 Commits
v1.0.0-bet
...
v1.2.0
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9f9029baf0 | ||
![]() |
3079f1f7dd | ||
![]() |
e546d34422 | ||
![]() |
00e80f6400 | ||
![]() |
b46dd52101 | ||
![]() |
b1a8c956fc | ||
![]() |
1b8aa10d11 | ||
![]() |
32fd60bb58 | ||
![]() |
8fa19c9ed1 | ||
![]() |
d36fcd894b | ||
![]() |
7378a61542 | ||
![]() |
fb63e36c56 | ||
![]() |
ae1cda1f5a | ||
![]() |
4846d1b016 | ||
![]() |
01522dad71 | ||
![]() |
0bbef1dad2 | ||
![]() |
5e048d32df | ||
![]() |
d1128fa7c3 | ||
![]() |
cf9a39b51f | ||
![]() |
ae9ec71966 | ||
![]() |
f6c4bbfffb | ||
![]() |
7a655315f1 | ||
![]() |
5c27178881 | ||
![]() |
c829049842 | ||
![]() |
613da916aa | ||
![]() |
d3d75c9dc6 | ||
![]() |
2f5b49397e | ||
![]() |
632f3d861b | ||
![]() |
004063f02a | ||
![]() |
1bd498f816 | ||
![]() |
291220256a | ||
![]() |
7bcb87a73e | ||
![]() |
55cebc752e | ||
![]() |
14bf59a551 | ||
![]() |
bce0fedd15 | ||
![]() |
694e7fc7b1 | ||
![]() |
93749cb368 | ||
![]() |
cf01e22a4d | ||
![]() |
f416f6bb7e | ||
![]() |
a7b776c0dc | ||
![]() |
e70f3acb57 | ||
![]() |
6e7b40ad0f | ||
![]() |
7446b2958e | ||
![]() |
6c18ada352 | ||
![]() |
323b42996b | ||
![]() |
ab8074b293 | ||
![]() |
9419e18ba9 | ||
![]() |
0f007ba5c2 | ||
![]() |
7d0943fb0c | ||
![]() |
3d2cfdaf0a | ||
![]() |
281c16b561 | ||
![]() |
fe68bd6be3 | ||
![]() |
3bf0c241a3 | ||
![]() |
a6a670cd2b |
41
.github/workflows/npm-publish.yml
vendored
41
.github/workflows/npm-publish.yml
vendored
@@ -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
44
.github/workflows/release.yml
vendored
Normal 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
1
.gitignore
vendored
@@ -1,5 +1,6 @@
|
||||
_vendor/
|
||||
prebuild/
|
||||
prebuild-headers/
|
||||
public/
|
||||
resources/
|
||||
node_modules/
|
||||
|
1
.husky/commit-msg
Normal file
1
.husky/commit-msg
Normal file
@@ -0,0 +1 @@
|
||||
npx --no -- commitlint --edit $1
|
6
.husky/install.mjs
Normal file
6
.husky/install.mjs
Normal 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
1
.husky/pre-commit
Normal file
@@ -0,0 +1 @@
|
||||
npm test
|
@@ -1,14 +1,8 @@
|
||||
.nav-tabs .nav-tabs {
|
||||
border: none;
|
||||
.nav-tabs {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link.active {
|
||||
border-bottom-color: var(--bs-body-bg) !important;
|
||||
border-bottom-style: solid !important;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.nav-callout {
|
||||
.nav-callout, .tab-content {
|
||||
--#{$prefix}nav-callout-bg: var(--#{$prefix}light);
|
||||
--#{$prefix}nav-callout-active-bg: var(--bs-primary-bg-subtle);
|
||||
--#{$prefix}nav-callout-gap: #{$nav-underline-gap};
|
||||
@@ -92,7 +86,7 @@
|
||||
|
||||
@if $enable-dark-mode {
|
||||
@include color-mode(dark) {
|
||||
.nav-callout {
|
||||
.nav-callout, .tab-content {
|
||||
--#{$prefix}nav-callout-bg: var(--#{$prefix}tertiary-bg);
|
||||
}
|
||||
|
||||
|
1
commitlint.config.js
Normal file
1
commitlint.config.js
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = {extends: ['@commitlint/config-conventional']}
|
@@ -2,6 +2,7 @@
|
||||
@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/releases/releases";
|
||||
|
@@ -19,9 +19,10 @@
|
||||
{{/* Main code */}}
|
||||
{{ if not $args.error }}
|
||||
{{ partial "assets/hero.html" (dict
|
||||
"page" page
|
||||
"heading" $args.heading
|
||||
"background" $args.background
|
||||
"illustration" (merge (dict "ratio" "1x1") $args.illustration)
|
||||
"illustration" (merge (dict "ratio" "auto") $args.illustration)
|
||||
"order" $args.order
|
||||
"link-type" $args.linkType
|
||||
"links" $args.links
|
||||
|
@@ -29,7 +29,7 @@ blueprint:
|
||||
link:
|
||||
cols:
|
||||
padding:
|
||||
max:
|
||||
limit:
|
||||
pagination:
|
||||
paginate:
|
||||
background:
|
||||
|
@@ -62,14 +62,14 @@
|
||||
|
||||
<!-- Main code -->
|
||||
{{ 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" }}
|
||||
{{ $params := dict }}
|
||||
{{- $params = merge $params (dict
|
||||
"page" page
|
||||
"list" $pages
|
||||
"max" $args.max
|
||||
"limit" $args.limit
|
||||
"cols" $args.cols
|
||||
"icon-rounded" $args.iconRounded
|
||||
"href" (cond $moreButton $moreLink "")
|
||||
|
@@ -35,7 +35,7 @@
|
||||
{{ end}}
|
||||
|
||||
{{ 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
|
||||
"page" page
|
||||
|
43
component-library/components/cta/cta.bookshop.yml
Normal file
43
component-library/components/cta/cta.bookshop.yml
Normal 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:
|
43
component-library/components/cta/cta.hugo.html
Normal file
43
component-library/components/cta/cta.hugo.html
Normal 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 }}
|
8
component-library/components/cta/cta.scss
Normal file
8
component-library/components/cta/cta.scss
Normal 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);
|
||||
}
|
@@ -19,7 +19,7 @@
|
||||
{{ if not $args.err }}
|
||||
{{ $color := "" }}
|
||||
{{ 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 := "" }}
|
||||
{{ $id := printf "faq-%s" (md5 (delimit (slice . now) "-")) }}
|
||||
|
@@ -18,6 +18,7 @@
|
||||
|
||||
{{ if not $args.err }}
|
||||
{{ partial "assets/hero.html" (dict
|
||||
"page" page
|
||||
"breadcrumb" $args.breadcrumb
|
||||
"heading" $args.heading
|
||||
"background" $args.background
|
||||
|
@@ -96,7 +96,7 @@
|
||||
) }}
|
||||
{{ 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" }}
|
||||
<div class="col-{{ $breakpoint.current }}-{{ $args.width }} mx-auto pb-{{ $padding.y }}">
|
||||
|
@@ -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,11 @@
|
||||
{{- $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) "" -}}
|
||||
{{- $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) }}
|
||||
@@ -49,7 +51,7 @@
|
||||
{{ 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 -}}
|
||||
<section {{ with $id }}id="{{ . }}" {{ end }}class="{{ $component_name }} container-{{ cond $fluid "fluid" "xxl" }} {{ $class }} {{ with $wrapper }}{{ . }}{{ end -}}
|
||||
{{- if and $backdrop $overlayMode }} background-container{{ end -}}
|
||||
{{- if $cover }} section-cover d-flex align-items-center{{ end }}"
|
||||
{{ with $overlayMode -}}
|
||||
|
@@ -10,10 +10,10 @@
|
||||
footerBelowFold = false
|
||||
loading = "lazy"
|
||||
breakpoint = "md"
|
||||
titleCase = false
|
||||
[main.padding]
|
||||
x = 4
|
||||
y = 4
|
||||
titleCase = false
|
||||
[main.internalLinks]
|
||||
validate = true
|
||||
pretty = false
|
||||
|
@@ -7,7 +7,7 @@ content_blocks:
|
||||
title: Welcome to Hinode!
|
||||
content: |-
|
||||
A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
||||
align: start
|
||||
width: 6
|
||||
background:
|
||||
color: primary
|
||||
subtle: true
|
||||
@@ -15,10 +15,10 @@ content_blocks:
|
||||
image: /img/sunrise.jpg
|
||||
ratio: 16x9
|
||||
width: 8
|
||||
width: 6
|
||||
links:
|
||||
- title: Get started
|
||||
- title: Getting started
|
||||
url: https://gethinode.com/docs
|
||||
icon: fas book-open
|
||||
icon: fas chevron-right
|
||||
orientation: horizontal
|
||||
justify: center
|
||||
---
|
||||
|
@@ -4,12 +4,12 @@
|
||||
command = "npm run build:example"
|
||||
|
||||
[build.environment]
|
||||
DART_SASS_VERSION = "1.83.1"
|
||||
HUGO_VERSION = "0.140.2"
|
||||
DART_SASS_VERSION = "1.89.2"
|
||||
HUGO_VERSION = "0.147.9"
|
||||
HUGO_ENV = "production"
|
||||
HUGO_ENABLEGITINFO = "true"
|
||||
NODE_VERSION = "22.12.0"
|
||||
NPM_VERSION = "10.9.0"
|
||||
NODE_VERSION = "22.13.0"
|
||||
NPM_VERSION = "10.9.2"
|
||||
# toml-docs-end netlify
|
||||
|
||||
[context.deploy-preview]
|
||||
|
@@ -22,7 +22,8 @@ arguments:
|
||||
release: 1.0.0
|
||||
list:
|
||||
cards:
|
||||
max:
|
||||
limit:
|
||||
release: v1.0.0
|
||||
cols:
|
||||
release: v0.19.0
|
||||
paginate:
|
||||
@@ -158,3 +159,12 @@ arguments:
|
||||
group: partial
|
||||
deprecated: v1.0.0
|
||||
alternative: href-title
|
||||
max:
|
||||
type: int
|
||||
optional: true
|
||||
comment: Maximum number of elements to display.
|
||||
group: partial
|
||||
options:
|
||||
min: 1
|
||||
deprecated: v1.0.0
|
||||
alternative: limit
|
||||
|
36
data/structures/contact.yml
Normal file
36
data/structures/contact.yml
Normal 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
|
@@ -11,8 +11,8 @@ arguments:
|
||||
full:
|
||||
id:
|
||||
class:
|
||||
options:
|
||||
release: v0.27.6
|
||||
highlight-options:
|
||||
release: v1.0.0
|
||||
# deprecated arguments
|
||||
path:
|
||||
type: string
|
||||
@@ -22,3 +22,11 @@ arguments:
|
||||
the path of the repository is used as base path instead.
|
||||
deprecated: v1.0.0
|
||||
alternative: file
|
||||
options:
|
||||
type: string
|
||||
optional: true
|
||||
comment: >-
|
||||
Hugo highlighting options, see https://gohugo.io/shortcodes/highlight/#options-1.
|
||||
release: v0.27.6
|
||||
deprecated: v1.0.0
|
||||
alternative: highlight-options
|
||||
|
@@ -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
|
||||
|
@@ -7,8 +7,12 @@ arguments:
|
||||
group: partial
|
||||
list:
|
||||
group: partial
|
||||
nav-disabled:
|
||||
release: v1.0.0
|
||||
nav-items:
|
||||
release: v1.0.0
|
||||
nav-show:
|
||||
release: v1.0.0
|
||||
nav-titles:
|
||||
release: v1.0.0
|
||||
tab-type:
|
||||
|
@@ -9,3 +9,4 @@ arguments:
|
||||
optional: false
|
||||
background:
|
||||
class:
|
||||
justify:
|
@@ -31,6 +31,11 @@ arguments:
|
||||
deprecated: v1.0.0
|
||||
alternative: media-id
|
||||
options:
|
||||
type: string
|
||||
optional: true
|
||||
comment: >-
|
||||
Optional query parameters to append to video asset's url. The query string
|
||||
is prepended with a `?` symbol. Only applicable to Cloudinary.
|
||||
release: v0.28.2
|
||||
deprecated: v1.0.0
|
||||
alternative: query-args
|
||||
|
BIN
exampleSite/assets/img/foto-sushi-6anudmpILw4-unsplash-1x1.png
Normal file
BIN
exampleSite/assets/img/foto-sushi-6anudmpILw4-unsplash-1x1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 665 KiB |
BIN
exampleSite/assets/img/jake-nackos-IF9TK5Uy-KI-unsplash.png
Normal file
BIN
exampleSite/assets/img/jake-nackos-IF9TK5Uy-KI-unsplash.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.2 MiB |
BIN
exampleSite/assets/img/joseph-gonzalez-iFgRcqHznqg-unsplash.png
Normal file
BIN
exampleSite/assets/img/joseph-gonzalez-iFgRcqHznqg-unsplash.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.6 MiB |
@@ -8,10 +8,10 @@
|
||||
footerBelowFold = false
|
||||
loading = "lazy"
|
||||
breakpoint = "md"
|
||||
titleCase = true
|
||||
[main.padding]
|
||||
x = 4
|
||||
y = 4
|
||||
titleCase = true
|
||||
[main.internalLinks]
|
||||
validate = true
|
||||
pretty = true
|
||||
|
@@ -37,7 +37,7 @@ content_blocks:
|
||||
more:
|
||||
title: More Posts
|
||||
padding: 0
|
||||
max: 3
|
||||
limit: 3
|
||||
class: border-0 card-zoom card-body-margin
|
||||
|
||||
- _bookshop_name: articles
|
||||
@@ -55,7 +55,7 @@ content_blocks:
|
||||
title: More articles
|
||||
cols: 1
|
||||
padding: 4
|
||||
max: 2
|
||||
limit: 2
|
||||
header-style: none
|
||||
footer-style: tags
|
||||
orientation: horizontal-sm
|
||||
|
@@ -6,18 +6,17 @@ content_blocks:
|
||||
- _bookshop_name: hero
|
||||
heading:
|
||||
title: Content blocks
|
||||
align: start
|
||||
breadcrumb: true
|
||||
|
||||
- _bookshop_name: articles
|
||||
heading:
|
||||
content: >-
|
||||
Hinode uses [Bookshop](https://github.com/CloudCannon/bookshop) to
|
||||
support so-called content blocks. Content blocks are reusable page
|
||||
elements, such as a hero, about panel, or an FAQ. Hinode includes
|
||||
several ready-to-use blocks. Click on a card for more details about
|
||||
a content block, including its frontmatter configuration.
|
||||
align: start
|
||||
width: 8
|
||||
breadcrumb: true
|
||||
|
||||
- _bookshop_name: articles
|
||||
hide-empty: false
|
||||
input:
|
||||
section: blocks
|
||||
@@ -27,7 +26,7 @@ content_blocks:
|
||||
title: More Posts
|
||||
cols: 3
|
||||
padding: 0
|
||||
max: 9
|
||||
limit: 9
|
||||
paginate: true
|
||||
cover: false
|
||||
header-style: none
|
||||
|
@@ -25,6 +25,7 @@ The `about` content block renders a short message next to an illustration. You c
|
||||
subtle: true
|
||||
illustration:
|
||||
image: /assets/img/nat-9l98kFByiao-unsplash.jpg
|
||||
ratio: 1x1
|
||||
link-type: link
|
||||
links:
|
||||
- title: First link
|
||||
|
@@ -26,12 +26,12 @@ The `articles` content block renders a group of article cards.
|
||||
more:
|
||||
title: More Blogs
|
||||
padding: 0
|
||||
max: 3
|
||||
limit: 3
|
||||
background:
|
||||
color: primary
|
||||
subtle: true
|
||||
class: border-0 card-zoom card-body-margin
|
||||
justify: center
|
||||
justify: start
|
||||
```
|
||||
|
||||
{{< /example-bookshop >}}
|
||||
|
36
exampleSite/content/en/blocks/cta.md
Normal file
36
exampleSite/content/en/blocks/cta.md
Normal 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 >}}
|
@@ -252,8 +252,6 @@ Use the `file` shortcode to print and highlight the full content of a given inpu
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
{{< file full="false" file="./config/_default/languages.toml" id="file-collapse-5" >}}
|
||||
|
||||
## Icon
|
||||
|
||||
As an example, the following shortcodes show a square check, a brand logo, a circle check, and a custom icon.
|
||||
@@ -364,14 +362,14 @@ As an example, the following shortcode displays a tab group with vertically alig
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* nav tab-type="pills" vertical="true" */>}}
|
||||
{{</* nav-item title="Nav Item #1" show="true" */>}}
|
||||
{{</* nav-item title="Nav Item #1" */>}}
|
||||
This is the first item's nav body. It supports Markdown content.
|
||||
The item is shown by adding the value `show` to the `class` argument.
|
||||
{{</* /nav-item */>}}
|
||||
{{</* nav-item title="Nav Item #2" */>}}
|
||||
{{</* nav-item title="Nav Item #2" show="true" */>}}
|
||||
This is the second item's nav body.
|
||||
{{</* /nav-item */>}}
|
||||
{{</* nav-item title="Nav Item #3" */>}}
|
||||
{{</* nav-item title="Nav Item #3" disabled="true" */>}}
|
||||
This is the third item's nav body.
|
||||
{{</* /nav-item */>}}
|
||||
{{</* /nav */>}}
|
||||
|
45
exampleSite/data/contacts.en.yml
Normal file
45
exampleSite/data/contacts.en.yml
Normal 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.
|
@@ -14,6 +14,7 @@
|
||||
"figure",
|
||||
"footer",
|
||||
"form",
|
||||
"h1",
|
||||
"h2",
|
||||
"h3",
|
||||
"head",
|
||||
@@ -97,20 +98,12 @@
|
||||
"ball",
|
||||
"bg-bg-body-tertiary",
|
||||
"bg-bg-primary-subtle",
|
||||
"bg-black",
|
||||
"bg-body",
|
||||
"bg-body-tertiary",
|
||||
"bg-danger",
|
||||
"bg-dark",
|
||||
"bg-info",
|
||||
"bg-light",
|
||||
"bg-opacity-10",
|
||||
"bg-primary",
|
||||
"bg-primary-subtle",
|
||||
"bg-secondary",
|
||||
"bg-success",
|
||||
"bg-warning",
|
||||
"bg-white",
|
||||
"bi",
|
||||
"bi-activity",
|
||||
"border",
|
||||
@@ -196,9 +189,11 @@
|
||||
"col-sm-6",
|
||||
"collapse",
|
||||
"collapsed",
|
||||
"contact-img",
|
||||
"container",
|
||||
"container-fluid",
|
||||
"container-xxl",
|
||||
"cta",
|
||||
"custom",
|
||||
"d-block",
|
||||
"d-flex",
|
||||
@@ -215,8 +210,10 @@
|
||||
"d-sm-block",
|
||||
"d-sm-none",
|
||||
"data-table",
|
||||
"disabled",
|
||||
"display-1",
|
||||
"display-4",
|
||||
"display-6",
|
||||
"dropdown",
|
||||
"dropdown-divider-bg",
|
||||
"dropdown-item",
|
||||
@@ -340,19 +337,8 @@
|
||||
"label",
|
||||
"lead",
|
||||
"leaflet-map",
|
||||
"link-bg-black",
|
||||
"link-bg-body",
|
||||
"link-bg-body-tertiary",
|
||||
"link-bg-danger",
|
||||
"link-bg-dark",
|
||||
"link-bg-footer",
|
||||
"link-bg-info",
|
||||
"link-bg-light",
|
||||
"link-bg-primary",
|
||||
"link-bg-secondary",
|
||||
"link-bg-success",
|
||||
"link-bg-warning",
|
||||
"link-bg-white",
|
||||
"link-primary",
|
||||
"link-secondary",
|
||||
"link-success",
|
||||
@@ -385,9 +371,8 @@
|
||||
"mt-auto",
|
||||
"mt-md-0",
|
||||
"multi-docs-collapse-15",
|
||||
"multi-docs-collapse-17",
|
||||
"multi-docs-collapse-16",
|
||||
"multi-file-collapse-1",
|
||||
"multi-file-collapse-5",
|
||||
"mx-auto",
|
||||
"mx-md-0",
|
||||
"mx-md-2",
|
||||
@@ -419,7 +404,6 @@
|
||||
"order-first",
|
||||
"order-md-0",
|
||||
"order-md-1",
|
||||
"p-",
|
||||
"p-0",
|
||||
"p-1",
|
||||
"p-2",
|
||||
@@ -450,9 +434,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",
|
||||
@@ -473,7 +459,6 @@
|
||||
"row-cols-lg-3",
|
||||
"row-cols-md-2",
|
||||
"row-cols-md-3",
|
||||
"row-cols-md-4",
|
||||
"row-cols-sm-2",
|
||||
"row-cols-sm-3",
|
||||
"scrollbar-horizontal",
|
||||
@@ -503,18 +488,12 @@
|
||||
"table-wrap",
|
||||
"tag-link",
|
||||
"text-",
|
||||
"text-bg-black",
|
||||
"text-bg-body",
|
||||
"text-bg-body-tertiary",
|
||||
"text-bg-danger",
|
||||
"text-bg-dark",
|
||||
"text-bg-info",
|
||||
"text-bg-light",
|
||||
"text-bg-primary",
|
||||
"text-bg-secondary",
|
||||
"text-bg-success",
|
||||
"text-bg-warning",
|
||||
"text-bg-white",
|
||||
"text-body",
|
||||
"text-body-secondary",
|
||||
"text-break",
|
||||
@@ -599,9 +578,8 @@
|
||||
"block-diagram",
|
||||
"blog",
|
||||
"body-docs-collapse-15",
|
||||
"body-docs-collapse-17",
|
||||
"body-docs-collapse-16",
|
||||
"body-file-collapse-1",
|
||||
"body-file-collapse-5",
|
||||
"bouton",
|
||||
"breadcrumb",
|
||||
"button",
|
||||
@@ -618,7 +596,6 @@
|
||||
"cloudinary",
|
||||
"collapse",
|
||||
"collapse-1",
|
||||
"colored-cards",
|
||||
"command-prompt",
|
||||
"comment-nous-partageons-vos-informations",
|
||||
"comment-utilisons-nous-les-cookies-",
|
||||
@@ -644,59 +621,15 @@
|
||||
"fab-medium",
|
||||
"fab-whatsapp",
|
||||
"fab-x-twitter",
|
||||
"faq-053659d52c3204ebc73c1b387efbbb07",
|
||||
"faq-053659d52c3204ebc73c1b387efbbb07-heading-faq-053659d52c3204ebc73c1b387efbbb07",
|
||||
"faq-053659d52c3204ebc73c1b387efbbb07-item-0",
|
||||
"faq-053659d52c3204ebc73c1b387efbbb07-item-1",
|
||||
"faq-053659d52c3204ebc73c1b387efbbb07-item-2",
|
||||
"faq-3b4f420cc7621af32c96109c12bca758",
|
||||
"faq-3b4f420cc7621af32c96109c12bca758-heading-faq-3b4f420cc7621af32c96109c12bca758",
|
||||
"faq-3b4f420cc7621af32c96109c12bca758-item-0",
|
||||
"faq-3b4f420cc7621af32c96109c12bca758-item-1",
|
||||
"faq-3b4f420cc7621af32c96109c12bca758-item-2",
|
||||
"faq-4f19b6f4505f05eaa5bbf531aed406b8",
|
||||
"faq-4f19b6f4505f05eaa5bbf531aed406b8-heading-faq-4f19b6f4505f05eaa5bbf531aed406b8",
|
||||
"faq-4f19b6f4505f05eaa5bbf531aed406b8-item-0",
|
||||
"faq-4f19b6f4505f05eaa5bbf531aed406b8-item-1",
|
||||
"faq-4f19b6f4505f05eaa5bbf531aed406b8-item-2",
|
||||
"faq-637b21f5a6c607752e51e0633243d2bf",
|
||||
"faq-637b21f5a6c607752e51e0633243d2bf-heading-faq-637b21f5a6c607752e51e0633243d2bf",
|
||||
"faq-637b21f5a6c607752e51e0633243d2bf-item-0",
|
||||
"faq-637b21f5a6c607752e51e0633243d2bf-item-1",
|
||||
"faq-637b21f5a6c607752e51e0633243d2bf-item-2",
|
||||
"faq-9b51ee909251b9ba0de086282b0afc7a",
|
||||
"faq-9b51ee909251b9ba0de086282b0afc7a-heading-faq-9b51ee909251b9ba0de086282b0afc7a",
|
||||
"faq-9b51ee909251b9ba0de086282b0afc7a-item-0",
|
||||
"faq-9b51ee909251b9ba0de086282b0afc7a-item-1",
|
||||
"faq-9b51ee909251b9ba0de086282b0afc7a-item-2",
|
||||
"faq-aa0a1905cab279bfffa949e96810a3a8",
|
||||
"faq-aa0a1905cab279bfffa949e96810a3a8-heading-faq-aa0a1905cab279bfffa949e96810a3a8",
|
||||
"faq-aa0a1905cab279bfffa949e96810a3a8-item-0",
|
||||
"faq-aa0a1905cab279bfffa949e96810a3a8-item-1",
|
||||
"faq-aa0a1905cab279bfffa949e96810a3a8-item-2",
|
||||
"faq-d2df4da095dc8a0c45487af207ebf623",
|
||||
"faq-d2df4da095dc8a0c45487af207ebf623-heading-faq-d2df4da095dc8a0c45487af207ebf623",
|
||||
"faq-d2df4da095dc8a0c45487af207ebf623-item-0",
|
||||
"faq-d2df4da095dc8a0c45487af207ebf623-item-1",
|
||||
"faq-d2df4da095dc8a0c45487af207ebf623-item-2",
|
||||
"faq-f7b27a38c3ee12525d7d0dc8acc1c600",
|
||||
"faq-f7b27a38c3ee12525d7d0dc8acc1c600-heading-faq-f7b27a38c3ee12525d7d0dc8acc1c600",
|
||||
"faq-f7b27a38c3ee12525d7d0dc8acc1c600-item-0",
|
||||
"faq-f7b27a38c3ee12525d7d0dc8acc1c600-item-1",
|
||||
"faq-f7b27a38c3ee12525d7d0dc8acc1c600-item-2",
|
||||
"faq-fe0f1a534c1ceb0781d73fb79ec3eea1",
|
||||
"faq-fe0f1a534c1ceb0781d73fb79ec3eea1-heading-faq-fe0f1a534c1ceb0781d73fb79ec3eea1",
|
||||
"faq-fe0f1a534c1ceb0781d73fb79ec3eea1-item-0",
|
||||
"faq-fe0f1a534c1ceb0781d73fb79ec3eea1-item-1",
|
||||
"faq-fe0f1a534c1ceb0781d73fb79ec3eea1-item-2",
|
||||
"faq-fe3528d7eb9c1abb5256a70492433843",
|
||||
"faq-fe3528d7eb9c1abb5256a70492433843-heading-faq-fe3528d7eb9c1abb5256a70492433843",
|
||||
"faq-fe3528d7eb9c1abb5256a70492433843-item-0",
|
||||
"faq-fe3528d7eb9c1abb5256a70492433843-item-1",
|
||||
"faq-fe3528d7eb9c1abb5256a70492433843-item-2",
|
||||
"faq-9ef13ff2bd73b0e328491bd048c7a1ef",
|
||||
"faq-9ef13ff2bd73b0e328491bd048c7a1ef-heading-faq-9ef13ff2bd73b0e328491bd048c7a1ef",
|
||||
"faq-9ef13ff2bd73b0e328491bd048c7a1ef-item-0",
|
||||
"faq-9ef13ff2bd73b0e328491bd048c7a1ef-item-1",
|
||||
"faq-9ef13ff2bd73b0e328491bd048c7a1ef-item-2",
|
||||
"fas-1",
|
||||
"fas-2",
|
||||
"fas-3",
|
||||
"fas-address-card",
|
||||
"fas-angle-left",
|
||||
"fas-arrow-left",
|
||||
"fas-arrow-right",
|
||||
@@ -728,9 +661,8 @@
|
||||
"file",
|
||||
"flowchart",
|
||||
"footer-docs-collapse-15",
|
||||
"footer-docs-collapse-17",
|
||||
"footer-docs-collapse-16",
|
||||
"footer-file-collapse-1",
|
||||
"footer-file-collapse-5",
|
||||
"formula-katex",
|
||||
"formule-katex",
|
||||
"gantt-diagram",
|
||||
@@ -752,6 +684,7 @@
|
||||
"infobulle",
|
||||
"input-type",
|
||||
"ins",
|
||||
"interested-in-this-topic",
|
||||
"invite-de-commandes",
|
||||
"items-type",
|
||||
"kaart",
|
||||
@@ -774,10 +707,10 @@
|
||||
"nav-0-0",
|
||||
"nav-0-1",
|
||||
"nav-0-2",
|
||||
"nav-0-btn-0",
|
||||
"nav-0-btn-1",
|
||||
"nav-0-btn-2",
|
||||
"nav-nav-0",
|
||||
"nav-nav-0-btn-0",
|
||||
"nav-nav-0-btn-1",
|
||||
"nav-nav-0-btn-2",
|
||||
"navbar",
|
||||
"navbar-0-collapse",
|
||||
"navbar-mode",
|
||||
|
2
go.mod
2
go.mod
@@ -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.6.0 // indirect
|
||||
github.com/gethinode/mod-utils/v4 v4.9.1 // indirect
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20250606060143-c28f52c09b7a // indirect
|
||||
github.com/twbs/bootstrap v5.3.7+incompatible // indirect
|
||||
)
|
||||
|
16
go.sum
16
go.sum
@@ -440,6 +440,22 @@ github.com/gethinode/mod-utils/v4 v4.5.1 h1:VKmqi6+oC93noHUJ6HvFlelglHT/9+kXQjpJ
|
||||
github.com/gethinode/mod-utils/v4 v4.5.1/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/gethinode/mod-utils/v4 v4.6.0 h1:XQ7hiCrn15SzgkcD0j53XVZPQYeQKUxg/UUkr80pJ2w=
|
||||
github.com/gethinode/mod-utils/v4 v4.6.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/gethinode/mod-utils/v4 v4.7.0 h1:JaL/+APOwdEzAi6y174ZdwoguCdALyGiGX8qBVXXBdU=
|
||||
github.com/gethinode/mod-utils/v4 v4.7.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/gethinode/mod-utils/v4 v4.8.0 h1:/+M3EHqA8IzgBWXX1GLmT/xKbk2FVhUwmUfMnk/goF4=
|
||||
github.com/gethinode/mod-utils/v4 v4.8.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/gethinode/mod-utils/v4 v4.8.1 h1:XJULrx5VWO4wR69EsvfPp9bQoRvx8Y7GwnknpDbrDpg=
|
||||
github.com/gethinode/mod-utils/v4 v4.8.1/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/gethinode/mod-utils/v4 v4.8.2 h1:mhPmqdeCar2sOdVwKIyJl5la0RVBPtw4d29ncRKN3ek=
|
||||
github.com/gethinode/mod-utils/v4 v4.8.2/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/gethinode/mod-utils/v4 v4.8.3 h1:CSaFR/c1cGrSPpH5ZfrNOoMhAbNb8sw0SCRh9ZxCJTU=
|
||||
github.com/gethinode/mod-utils/v4 v4.8.3/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/gethinode/mod-utils/v4 v4.8.4 h1:ExD2zZCGonAmbIxC9wBU2dp+V4ZfvG46NWaz+LaV3iQ=
|
||||
github.com/gethinode/mod-utils/v4 v4.8.4/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/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/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=
|
||||
|
@@ -31,9 +31,9 @@
|
||||
"use"
|
||||
],
|
||||
"classes": [
|
||||
"%!s(<nil>)",
|
||||
"active",
|
||||
"align-items-center",
|
||||
"align-items-start",
|
||||
"align-self-center",
|
||||
"align-self-end",
|
||||
"ball",
|
||||
@@ -53,8 +53,6 @@
|
||||
"col-12",
|
||||
"col-6",
|
||||
"col-8",
|
||||
"col-md-1",
|
||||
"col-md-11",
|
||||
"col-md-2",
|
||||
"col-md-6",
|
||||
"col-md-8",
|
||||
@@ -78,7 +76,7 @@
|
||||
"fa-10x",
|
||||
"fa-2x",
|
||||
"fa-angle-left",
|
||||
"fa-book-open",
|
||||
"fa-chevron-right",
|
||||
"fa-ellipsis",
|
||||
"fa-face-frown",
|
||||
"fa-fw",
|
||||
@@ -174,10 +172,10 @@
|
||||
"section-cover",
|
||||
"shadow",
|
||||
"svg-inline--fa",
|
||||
"text-",
|
||||
"text-body",
|
||||
"text-center",
|
||||
"text-decoration-none",
|
||||
"text-md-start",
|
||||
"text-muted",
|
||||
"text-secondary",
|
||||
"text-sm-start",
|
||||
@@ -196,7 +194,7 @@
|
||||
"fab-linkedin",
|
||||
"fab-medium",
|
||||
"fas-angle-left",
|
||||
"fas-book-open",
|
||||
"fas-chevron-right",
|
||||
"fas-ellipsis",
|
||||
"fas-moon",
|
||||
"fas-sun",
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -125,7 +125,9 @@
|
||||
{{ if in (slice "types" "both") $args.renderType }}
|
||||
{{ $prefix := strings.Repeat $args.headerLevel "#" }}
|
||||
{{ range $k, $v := $types.udt }}
|
||||
{{ printf "%s %s %s" $prefix $k (T "type") | $args.page.RenderString }}
|
||||
{{ $title := $k }}
|
||||
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||
{{ printf "%s %s %s" $prefix $title (T "type") | $args.page.RenderString }}
|
||||
{{ partial "inline/args-table.html" (merge $params (dict "args" $v)) }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
@@ -113,7 +113,7 @@
|
||||
{{/* Limit list to max elements */}}
|
||||
{{- $count := len $elements -}}
|
||||
{{- $max := $count -}}
|
||||
{{- $max = math.Min ($args.max | default $count) $count -}}
|
||||
{{- $max = math.Min ((or $args.limit $args.max) | default $count) $count -}}
|
||||
{{- if not $args.paginate -}}
|
||||
{{- $elements = first $max $elements -}}
|
||||
{{- end -}}
|
||||
|
@@ -179,7 +179,7 @@
|
||||
{{ if eq (lower (path.Ext $thumbnail)) ".svg" }}{{ $fullHeight = "" }}{{ $rounding = "" }}{{ end }}
|
||||
{{- partial $args.hook (dict
|
||||
"src" $thumbnail
|
||||
"ratio" (or $ratio "1x1")
|
||||
"ratio" (or $ratio "auto")
|
||||
"portrait" $args.portrait
|
||||
"sizes" $args.sizes
|
||||
"anchor" $anchor
|
||||
|
66
layouts/_partials/assets/contact.html
Normal file
66
layouts/_partials/assets/contact.html
Normal 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 }}
|
@@ -83,7 +83,7 @@
|
||||
{{ else }}
|
||||
{{ warnf "Unsupported media type '%s': %q" (string $res.MediaType) $src -}}
|
||||
{{ end }}
|
||||
{{ else if $args.ratio }}
|
||||
{{ else if and $args.ratio (ne $args.ratio "auto") }}
|
||||
{{ $transform = "fill" }}
|
||||
{{ $dims = partial "assets/helpers/GetDimension.html" (dict "ratio" $args.ratio) }}
|
||||
{{ if not $dims }}{{ errorf "partial [assets/image.html] - Cannot find dimension data: %s" $args.ratio }}{{ end }}
|
||||
@@ -154,6 +154,7 @@
|
||||
"anchor" $args.anchor
|
||||
"transform" $transform
|
||||
"hook" $hook
|
||||
"include-width" true
|
||||
) -}}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
@@ -78,7 +78,24 @@
|
||||
|
||||
{{ if $args.icon }}{{ $imageWrapper = $iconWrapper }}{{ end }}
|
||||
|
||||
{{ $illustration := partial $args.hook (dict
|
||||
{{ $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
|
||||
@@ -88,10 +105,11 @@
|
||||
"sizes" $sizes
|
||||
"title" (T "heroImage")
|
||||
"wrapper" $imageWrapper
|
||||
"class" "hero-image"
|
||||
"class" (printf "hero-image %s" $args.illustration.class)
|
||||
"image-overlay" $args.imageOverlay
|
||||
"justify" $imageJustify
|
||||
) }}
|
||||
{{ end }}
|
||||
|
||||
{{ $title := partial "assets/section-title.html" (dict
|
||||
"heading" $heading
|
||||
@@ -101,12 +119,14 @@
|
||||
"link-type" (or $args.linkType $args.type)
|
||||
"class" "hero-title"
|
||||
"arrangement" $arrangement
|
||||
"justify" $args.justify
|
||||
) }}
|
||||
|
||||
{{ if eq $args.orientation "stacked" }}
|
||||
{{/* Render stacked component */}}
|
||||
|
||||
{{ $illustration | safeHTML }}
|
||||
{{ $caption | safeHTML }}
|
||||
{{ $title | safeHTML }}
|
||||
{{ else }}
|
||||
{{/* Render horizontal component */}}
|
||||
@@ -121,12 +141,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 }}
|
@@ -6,16 +6,16 @@
|
||||
*/}}
|
||||
|
||||
{{/* Initialize arguments */}}
|
||||
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "nav-item" "args" . "group" "partial") }}
|
||||
{{ if or $args.err $args.warnmsg }}
|
||||
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
|
||||
{{- $args := partial "utilities/InitArgs.html" (dict "structure" "nav-item" "args" . "group" "partial") -}}
|
||||
{{- if or $args.err $args.warnmsg -}}
|
||||
{{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
|
||||
"partial" "assets/nav-item.html"
|
||||
"warnid" "warn-invalid-arguments"
|
||||
"msg" "Invalid arguments"
|
||||
"details" ($args.errmsg | append $args.warnmsg)
|
||||
"file" page.File
|
||||
)}}
|
||||
{{ end }}
|
||||
) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Initialize local arguments */}}
|
||||
{{- $parentID := or $args.parentId $args.parentID -}}
|
||||
@@ -36,16 +36,16 @@
|
||||
"class" "hero-image"
|
||||
"image-overlay" $args.imageOverlay
|
||||
) }}
|
||||
{{ else }}
|
||||
{{ $illustration = partial $args.hook (dict "page" $args.page "image" $args.illustration) }}
|
||||
{{ end }}
|
||||
{{- else -}}
|
||||
{{- $illustration = partial $args.hook (dict "page" $args.page "image" $args.illustration) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Main code */}}
|
||||
{{ if not $args.err }}
|
||||
{{ if eq $type "accordion" }}
|
||||
{{- if not $args.err -}}
|
||||
{{- if eq $type "accordion" -}}
|
||||
<div class="accordion-item{{ if $args.show }} show{{ end }}{{ with $args.class }} {{ . }}{{ end }}">
|
||||
{{- with $title -}}
|
||||
<h2 id="accordion-{{ $parentID }}-heading-{{ $args.id }}" class="accordion-header m-0" >
|
||||
<h2 id="accordion-{{ $parentID }}-heading-{{ $args.id }}" class="accordion-header m-0">
|
||||
<button
|
||||
class="accordion-button collapsed {{ if $args.disabled }} text-secondary{{ end }}"
|
||||
type="button"
|
||||
@@ -55,14 +55,14 @@
|
||||
aria-controls="accordion-{{ $parentID }}-item-{{ $args.id }}"
|
||||
{{ if $args.disabled }} disabled{{ end }}
|
||||
>
|
||||
{{ if $illustration }}
|
||||
{{- if $illustration -}}
|
||||
<div class="row">
|
||||
<div class="col-3 col-sm-2 my-auto">{{ $illustration | safeHTML }}</div>
|
||||
<div class="col-9 col-sm-10 fs-6 fs-sm-5 my-auto">{{ . }}</div>
|
||||
</div>
|
||||
{{ else }}
|
||||
{{- else }}
|
||||
{{ . }}
|
||||
{{ end }}
|
||||
{{ end -}}
|
||||
</button>
|
||||
</h2>
|
||||
{{- end -}}
|
||||
@@ -75,19 +75,16 @@
|
||||
<div class="accordion-body">{{ $args.body | $args.page.RenderString | safeHTML }}</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ else }}
|
||||
{{- else -}}
|
||||
<div
|
||||
id="{{ $parentID }}-{{ $args.id }}"
|
||||
class="tab-pane{{ if $args.show }} active {{ if $args.fade }}show{{ end }}{{ end }} {{ if $args.fade }}fade{{ end }}{{ with $args.class }} {{ . }}{{ end }}"
|
||||
class="tab-pane{{ if $args.show }} active{{ if $args.fade }} show{{ end }}{{ end }}{{ if $args.fade }} fade{{ end }}{{ with $args.class }} {{ . }}{{ end }}"
|
||||
role="tabpanel"
|
||||
aria-labelledby="{{ $parentID }}-btn-{{ $args.id }}"
|
||||
tabindex="0"
|
||||
data-header="{{ $title }}"
|
||||
{{ if $args.show }}data-show-id="{{ $args.id }}"{{ end }}
|
||||
data-has-content="{{ gt (len $args.body) 0 }}"
|
||||
{{ if $args.disabled }} data-disabled-id="{{ $args.id }}"{{ end }}
|
||||
>
|
||||
{{ $args.body | $args.page.RenderString | safeHTML }}
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
@@ -42,7 +42,7 @@
|
||||
"class" $args.class
|
||||
"body" (or $item.Description $item.Content)
|
||||
"show" false
|
||||
"disabled" false
|
||||
"disabled" $item.disabled
|
||||
"item_type" "accordion"
|
||||
"illustration" (partial "utilities/GetIllustration.html" (dict "item" $item "size" "col-12"))
|
||||
)
|
||||
@@ -64,11 +64,14 @@
|
||||
{{- range $args.list }}{{ $titles = $titles | append .Title }} {{ end -}}
|
||||
{{- if reflect.IsSlice $args.navTitles }}{{ $titles = $titles | append $args.navTitles }}{{ end -}}
|
||||
{{- range $index, $item := $titles -}}
|
||||
{{ $show := eq $index 0}}
|
||||
{{ $itemID := printf "%s-btn-%d" $args.id $index -}}
|
||||
{{- $show := eq $index 0 -}}
|
||||
{{- if $args.navShow }}{{ $show = eq $args.navShow $itemID }}{{ end -}}
|
||||
{{- $disabled := in $args.navDisabled $itemID -}}
|
||||
<li class="nav-item" role="presentation">
|
||||
<button
|
||||
class="nav-link {{ if not $wrap }} text-nowrap{{ end }}{{ if $show }} active{{ end }}"
|
||||
id="nav-{{ $id }}-btn-{{ $index }}"
|
||||
class="nav-link{{ if not $wrap }} text-nowrap{{ end }}{{ if $show }} active{{ end }}{{ if $disabled }} disabled{{ end }}"
|
||||
id="{{ $itemID }}"
|
||||
data-bs-toggle="pill"
|
||||
data-bs-target="#{{ $id }}-{{ $index }}"
|
||||
type="button"
|
||||
@@ -82,7 +85,7 @@
|
||||
{{ end -}}
|
||||
</ul>
|
||||
|
||||
<div class="tab-content {{ if eq $type "tabs" }}border border-bottom-0 p-3{{ else if $args.vertical }}ms-3{{ else }}mt-3{{ end }}">
|
||||
<div class="tab-content {{ if eq $type "tabs" }}border p-3{{ else if $args.vertical }}ms-3{{ else }}mt-3{{ end }}">
|
||||
{{- range $index, $item := $args.list -}}
|
||||
{{- $header := $item.Title -}}
|
||||
{-{ $body := $item.Content -}}
|
||||
|
@@ -26,8 +26,9 @@
|
||||
{{- $preheading := $args.heading.preheading }}
|
||||
{{- $title := $args.heading.title }}
|
||||
{{- $width := $args.heading.width | default 12 -}}
|
||||
|
||||
{{ if and (not $preheading) $args.useSection }}{{ $preheading = page.CurrentSection.Name }}{{ end }}
|
||||
{{- $width = cond (lt $width 12) (printf "col-12 col-%s-%d" $breakpoint.current $width) "" }}
|
||||
{{- if and (not $preheading) $args.useSection }}{{ $preheading = page.CurrentSection.Name }}{{ end -}}
|
||||
{{- $justify := cond (eq $args.justify "start") "" (cond (eq $args.justify "end") "me-0" "mx-auto") -}}
|
||||
|
||||
{{ if site.Params.main.titleCase }}
|
||||
{{ $preheading = title $preheading }}
|
||||
@@ -85,7 +86,7 @@
|
||||
}}
|
||||
|
||||
<!-- 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") }}
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
|
@@ -45,7 +45,7 @@
|
||||
{{- end -}}
|
||||
|
||||
<div class="py-3 text-body-secondary hstack gap-1">
|
||||
{{ T "shareLink" "" }}
|
||||
{{ T "shareLink" " " }}
|
||||
{{- range $index, $item := $list -}}
|
||||
{{- $url := $item.url -}}
|
||||
{{- $url = replace $url "{url}" $page.Permalink -}}
|
||||
|
@@ -104,6 +104,7 @@
|
||||
"links" $args.links
|
||||
"link-type" (or $args.linkType $args.type)
|
||||
"arrangement" $arrangement
|
||||
"justify" $args.justify
|
||||
) }}
|
||||
{{ end }}
|
||||
|
||||
|
@@ -39,6 +39,7 @@
|
||||
"breadcrumb" $breadcrumb
|
||||
"background" (dict "backdrop" $page.Site.Params.modules.bookshop.hero.backdrop)
|
||||
"overlay-mode" $page.Site.Params.modules.bookshop.hero.overlayMode
|
||||
"justify" "start"
|
||||
)}}
|
||||
|
||||
{{ if eq $page.Kind "section" }}
|
||||
@@ -50,6 +51,7 @@
|
||||
"padding" "0"
|
||||
"paginate" true
|
||||
"scroll" false
|
||||
"justify" "start"
|
||||
)}}
|
||||
{{ end }}
|
||||
|
||||
|
@@ -73,7 +73,7 @@
|
||||
</ul>
|
||||
<div class="border-start border-end border-bottom mb-3">
|
||||
<div class="collapse multi-{{ $id }}{{ if $args.show }} show{{ end }} syntax-highlight" id="body-{{ $id }}">
|
||||
{{- highlight (trim $content "\r\n") $lang $args.options -}}
|
||||
{{- highlight (trim $content "\r\n") $lang (or $args.highlightOptions $args.options) -}}
|
||||
</div>
|
||||
<div class="collapse multi-{{ $id }}{{ if not $args.show }} show{{ end }} p-3" id="footer-{{ $id }}">
|
||||
<a class="nav-link active"
|
||||
|
@@ -21,7 +21,7 @@
|
||||
{{- end -}}
|
||||
|
||||
{{/* Initialize local arguments */}}
|
||||
{{- $text := or $args.text $args.title }}
|
||||
{{- $text := trim (or $args.text $args.title) " \n\r" }}
|
||||
{{- if not $text -}}
|
||||
{{- partial "utilities/LogErr.html" (dict
|
||||
"partial" "shortcodes/kbd.html"
|
||||
@@ -36,6 +36,6 @@
|
||||
{{/* Main code */}}
|
||||
{{- if not $error }}
|
||||
<kbd {{ if or $args.color $args.class }}class="{{ with $args.color }}text-bg-{{ . }} {{ end }}{{ $args.class }}"{{ end }}>
|
||||
{{ $text | plainify }}
|
||||
{{- $text -}}
|
||||
</kbd>
|
||||
{{ end -}}
|
||||
|
@@ -30,6 +30,8 @@
|
||||
{{- if isset .Parent.Params "fade" }}{{ $parentFade = partial "utilities/CastBool.html" (.Parent.Get "fade") }}{{ end -}}
|
||||
{{- $fade = or $fade $parentFade -}}
|
||||
{{- $title := or $args.title $args.header -}}
|
||||
{{- $itemID := printf "%s-btn-%d" $parent $id }}
|
||||
{{- $disabledID := cond $args.disabled $itemID "" }}
|
||||
{{- $body := trim .Inner " \r\n" -}}
|
||||
{{- $current := "" -}}
|
||||
|
||||
@@ -49,15 +51,19 @@
|
||||
|
||||
{{- $current := .Parent.Scratch.Get "inner" -}}
|
||||
{{- $titles := .Parent.Scratch.Get "inner-title" -}}
|
||||
{{- $disabled := .Parent.Scratch.Get "inner-disabled" -}}
|
||||
{{- if $args.show }}{{ .Parent.Scratch.Set "inner-show" $itemID }}{{ end -}}
|
||||
{{- if $current -}}
|
||||
{{- .Parent.Scratch.Set "inner" (print $current $output) -}}
|
||||
{{- .Parent.Scratch.Set "inner-title" ($titles | append $title) -}}
|
||||
{{- .Parent.Scratch.Set "inner-disabled" ($disabled | append $disabledID) -}}
|
||||
{{- else -}}
|
||||
{{- .Parent.Scratch.Set "inner" $output -}}
|
||||
{{- .Parent.Scratch.Set "inner-title" (slice $title) -}}
|
||||
{{- .Parent.Scratch.Set "inner-disabled" (slice $disabledID) -}}
|
||||
{{- end }}
|
||||
|
||||
{{- $alternative := partial "assets/nav-item" (dict
|
||||
{{- $alternative := partial "assets/nav-item.html" (dict
|
||||
"page" .Page
|
||||
"id" $id
|
||||
"parent-id" $parent
|
||||
|
@@ -19,6 +19,8 @@
|
||||
|
||||
{{- $inner := .Scratch.Get "inner" -}}
|
||||
{{- $innerTitles := .Scratch.Get "inner-title" -}}
|
||||
{{- $innerDisabled := .Scratch.Get "inner-disabled" -}}
|
||||
{{- $innerShow := .Scratch.Get "inner-show" -}}
|
||||
{{- $input := trim .Inner " \r\n" -}}
|
||||
{{- if $input -}}
|
||||
{{- $input = replace $input "\n" "\n " -}}
|
||||
@@ -33,6 +35,8 @@
|
||||
"list" $args.list
|
||||
"nav-items" $inner
|
||||
"nav-titles" $innerTitles
|
||||
"nav-disabled" $innerDisabled
|
||||
"nav-show" $innerShow
|
||||
"tab-type" (or $args.tabType $args.type)
|
||||
"vertical" $args.vertical
|
||||
"word-wrap" $args.wordWrap
|
||||
|
@@ -27,9 +27,10 @@
|
||||
{{ if .Date }}
|
||||
{{ $lastmodstr := (partial "utilities/date.html" (dict "date" .Lastmod "format" "long")) -}}
|
||||
{{ $datestr := (partial "utilities/date.html" (dict "date" .Date "format" "long")) -}}
|
||||
{{ if gt .Lastmod .Date }}
|
||||
{{ $lastmodstr | i18n "lastModified" }}
|
||||
{{ else }}
|
||||
{{ $datestr | i18n "postedOnDate" -}}
|
||||
{{ if eq $metadata "full" }}
|
||||
{{ if ne $datestr $lastmodstr -}} ({{ $lastmodstr | i18n "lastModified" }}){{ end }}
|
||||
{{ end }}
|
||||
•
|
||||
{{ end }}
|
||||
|
40
netlify.toml
40
netlify.toml
@@ -4,12 +4,12 @@
|
||||
publish = 'exampleSite/public'
|
||||
|
||||
[build.environment]
|
||||
DART_SASS_VERSION = '1.78.0'
|
||||
DART_SASS_VERSION = '1.89.2'
|
||||
HUGO_ENABLEGITINFO = 'true'
|
||||
HUGO_ENV = 'production'
|
||||
HUGO_VERSION = '0.134.1'
|
||||
NODE_VERSION = '20.17.0'
|
||||
NPM_VERSION = '10.8.2'
|
||||
HUGO_VERSION = '0.147.9'
|
||||
NODE_VERSION = '22.13.0'
|
||||
NPM_VERSION = '10.9.2'
|
||||
|
||||
[context]
|
||||
[context.branch-deploy]
|
||||
@@ -39,17 +39,17 @@
|
||||
Access-Control-Allow-Origin = '*'
|
||||
Content-Security-Policy = """
|
||||
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'; \
|
||||
font-src 'self' fonts.gstatic.com; \
|
||||
font-src 'self' fonts.gstatic.com data:; \
|
||||
form-action 'self'; \
|
||||
frame-src 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; \
|
||||
frame-src *.googletagmanager.com player.cloudinary.com www.youtube-nocookie.com www.youtube.com player.vimeo.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'; \
|
||||
media-src 'self'; \
|
||||
object-src 'none'; \
|
||||
script-src 'self' cdn-cookieyes.com *.google-analytics.com *.googletagmanager.com player.vimeo.com; \
|
||||
style-src 'self' 'unsafe-inline' www.youtube.com; \
|
||||
script-src 'self' *.google-analytics.com *.googletagmanager.com *.analytics.google.com googletagmanager.com tagmanager.google.com player.vimeo.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=() '
|
||||
Referrer-Policy = 'strict-origin'
|
||||
@@ -59,23 +59,3 @@
|
||||
X-XSS-Protection = '1; mode=block'
|
||||
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'
|
||||
|
||||
|
7570
package-lock.json
generated
7570
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
48
package.json
48
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "1.0.0-beta3",
|
||||
"version": "0.0.0-semantically-released",
|
||||
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
|
||||
"keywords": [
|
||||
"hugo",
|
||||
@@ -12,6 +12,7 @@
|
||||
"documentation"
|
||||
],
|
||||
"main": "index.js",
|
||||
"private": true,
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"registry": "https://registry.npmjs.org/"
|
||||
@@ -28,7 +29,7 @@
|
||||
"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: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:preview": "npm run build -D -F",
|
||||
"clean:public": "rimraf public exampleSite/public",
|
||||
@@ -44,6 +45,7 @@
|
||||
"test": "npm run -s lint",
|
||||
"env": "hugo env",
|
||||
"precheck": "npm version",
|
||||
"prepare": "node .husky/install.mjs",
|
||||
"check": "hugo version",
|
||||
"create:syntax": "npm-run-all update:syntax:**",
|
||||
"update:syntax:light1": "hugo gen chromastyles --style=github > ./assets/scss/components/_syntax-light.scss",
|
||||
@@ -73,13 +75,20 @@
|
||||
"autoprefixer": "^10.4.21",
|
||||
"cssnano": "^7.0.7",
|
||||
"cssnano-preset-advanced": "^7.0.7",
|
||||
"hugo-bin": "0.144.8",
|
||||
"hugo-bin": "0.144.9",
|
||||
"purgecss-whitelister": "^2.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "^19.8.1",
|
||||
"@commitlint/config-conventional": "^19.8.1",
|
||||
"@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",
|
||||
"eslint": "^9.29.0",
|
||||
"cz-conventional-changelog": "^3.3.0",
|
||||
"eslint": "^9.30.0",
|
||||
"husky": "^9.1.7",
|
||||
"markdownlint-cli2": "^0.18.1",
|
||||
"neostandard": "^0.12.1",
|
||||
"netlify-plugin-hugo-cache-resources": "^0.2.1",
|
||||
@@ -87,6 +96,7 @@
|
||||
"postcss-cli": "^11.0.1",
|
||||
"replace-in-files-cli": "^3.0.0",
|
||||
"rimraf": "^6.0.1",
|
||||
"semantic-release": "^24.2.6",
|
||||
"shx": "^0.4.0",
|
||||
"stylelint": "^16.21.0",
|
||||
"stylelint-config-standard-scss": "^15.0.1"
|
||||
@@ -98,5 +108,35 @@
|
||||
},
|
||||
"hugo-bin": {
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user