Compare commits

...

30 Commits

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

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-19 13:59:32 +00:00
34 changed files with 235 additions and 163 deletions

View File

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

View File

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

View File

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

View File

@@ -29,7 +29,7 @@ blueprint:
link:
cols:
padding:
max:
limit:
pagination:
paginate:
background:

View File

@@ -69,7 +69,7 @@
{{- $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 "")

View File

@@ -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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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

View File

@@ -37,7 +37,7 @@ content_blocks:
more:
title: More Posts
padding: 0
max: 3
limit: 3
class: border-0 card-zoom card-body-margin
- _bookshop_name: articles
@@ -55,7 +55,7 @@ content_blocks:
title: More articles
cols: 1
padding: 4
max: 2
limit: 2
header-style: none
footer-style: tags
orientation: horizontal-sm

View File

@@ -27,7 +27,7 @@ content_blocks:
title: More Posts
cols: 3
padding: 0
max: 9
limit: 9
paginate: true
cover: false
header-style: none

View File

@@ -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 >}}

View File

@@ -59,6 +59,16 @@ As an example, the following shortcode displays a simple alert.
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Args
Use the args shortcode to generates a table of structured arguments. The argument definitions are expected to be defined in a data file identified by a provided structure name.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* args "args" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Badge
Use the badge shortcode to display a badge for a heading.
@@ -238,7 +248,7 @@ Use the `file` shortcode to print and highlight the full content of a given inpu
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* file file="./config/_default/languages.toml" id="file-collapse-1" */>}}
{{</* file file="./config/_default/languages.toml" id="file-collapse-1" full=false */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->

View File

@@ -122,18 +122,20 @@
"btn-group",
"btn-light",
"btn-link",
"btn-md",
"btn-outline-primary",
"btn-outline-secondary",
"btn-primary",
"btn-secondary",
"btn-sm",
"btn-social",
"btn-xs",
"card",
"card-block-2",
"card-body",
"card-body-link",
"card-body-margin",
"card-button",
"card-button-link",
"card-container",
"card-container-wrapper",
"card-emphasize",
@@ -228,23 +230,19 @@
"fa-angle-left",
"fa-arrow-left",
"fa-arrow-right",
"fa-book-open",
"fa-bootstrap",
"fa-check",
"fa-chevron-right",
"fa-circle",
"fa-circle-check",
"fa-circle-play",
"fa-circle-question",
"fa-code",
"fa-display",
"fa-divide",
"fa-docker",
"fa-ellipsis",
"fa-face-frown",
"fa-facebook",
"fa-fluid",
"fa-font-awesome",
"fa-fw",
"fa-github",
"fa-globe",
@@ -257,14 +255,11 @@
"fa-link",
"fa-linkedin",
"fa-magnifying-glass",
"fa-markdown",
"fa-medium",
"fa-moon",
"fa-robot",
"fa-rocket",
"fa-rotate-90",
"fa-share-nodes",
"fa-sitemap",
"fa-sort",
"fa-square-check",
"fa-stack",
@@ -331,7 +326,6 @@
"justify-content-between",
"justify-content-center",
"justify-content-end",
"justify-content-md-end",
"justify-content-md-start",
"justify-content-start",
"katex",
@@ -372,7 +366,9 @@
"mt-auto",
"mt-md-0",
"multi-docs-collapse-15",
"multi-docs-collapse-16",
"multi-file-collapse-1",
"multi-file-collapse-5",
"mx-auto",
"mx-md-0",
"mx-md-2",
@@ -499,7 +495,6 @@
"text-decoration-none",
"text-end",
"text-info",
"text-md-end",
"text-muted",
"text-nowrap",
"text-primary",
@@ -569,6 +564,7 @@
"alerte",
"animatie",
"animation",
"args",
"arguments",
"background-type",
"badge",
@@ -576,10 +572,11 @@
"block-diagram",
"blog",
"body-docs-collapse-15",
"body-docs-collapse-16",
"body-file-collapse-1",
"body-file-collapse-5",
"bouton",
"breadcrumb",
"build-a-static-website-fast-and-flexible",
"button",
"button-group",
"c4-diagram",
@@ -602,7 +599,6 @@
"cookies-etc",
"custom-activity",
"data-tables",
"developer-friendly-and-secure",
"docs",
"documentation",
"elements-type",
@@ -611,37 +607,42 @@
"exemple",
"fa-address-card",
"fa-face-frown",
"fa-font-awesome",
"fa-square-check",
"fab-bootstrap",
"fab-docker",
"fab-facebook",
"fab-github",
"fab-linkedin",
"fab-markdown",
"fab-medium",
"fab-whatsapp",
"fab-x-twitter",
"faq-664efd96843c20a5a8800d1318cb7744",
"faq-664efd96843c20a5a8800d1318cb7744-heading-faq-664efd96843c20a5a8800d1318cb7744",
"faq-664efd96843c20a5a8800d1318cb7744-item-0",
"faq-664efd96843c20a5a8800d1318cb7744-item-1",
"faq-664efd96843c20a5a8800d1318cb7744-item-2",
"faq-2ab61bd9d625ad933606ccabfaffa9a8",
"faq-2ab61bd9d625ad933606ccabfaffa9a8-heading-faq-2ab61bd9d625ad933606ccabfaffa9a8",
"faq-2ab61bd9d625ad933606ccabfaffa9a8-item-0",
"faq-2ab61bd9d625ad933606ccabfaffa9a8-item-1",
"faq-2ab61bd9d625ad933606ccabfaffa9a8-item-2",
"faq-471c32251ced209d707f5815bdaa693a",
"faq-471c32251ced209d707f5815bdaa693a-heading-faq-471c32251ced209d707f5815bdaa693a",
"faq-471c32251ced209d707f5815bdaa693a-item-0",
"faq-471c32251ced209d707f5815bdaa693a-item-1",
"faq-471c32251ced209d707f5815bdaa693a-item-2",
"faq-67dbd72b681a398b4c77f0f3652e0905",
"faq-67dbd72b681a398b4c77f0f3652e0905-heading-faq-67dbd72b681a398b4c77f0f3652e0905",
"faq-67dbd72b681a398b4c77f0f3652e0905-item-0",
"faq-67dbd72b681a398b4c77f0f3652e0905-item-1",
"faq-67dbd72b681a398b4c77f0f3652e0905-item-2",
"fas-1",
"fas-2",
"fas-3",
"fas-angle-left",
"fas-arrow-left",
"fas-arrow-right",
"fas-book-open",
"fas-check",
"fas-chevron-right",
"fas-circle",
"fas-circle-check",
"fas-circle-play",
"fas-circle-question",
"fas-code",
"fas-display",
"fas-divide",
"fas-ellipsis",
"fas-globe",
@@ -653,10 +654,8 @@
"fas-link",
"fas-magnifying-glass",
"fas-moon",
"fas-robot",
"fas-rocket",
"fas-share-nodes",
"fas-sitemap",
"fas-sort",
"fas-sun",
"fas-timeline",
@@ -664,10 +663,11 @@
"fichier",
"fil-dariane",
"file",
"flexible--ready-to-use",
"flowchart",
"footer-docs-collapse-15",
"footer-docs-collapse-16",
"footer-file-collapse-1",
"footer-file-collapse-5",
"formula-katex",
"formule-katex",
"gantt-diagram",
@@ -719,15 +719,12 @@
"navbar-0-collapse",
"navbar-mode",
"navbar-mode-checkbox",
"navbar-sample",
"navbar-sample-checkbox",
"navbar-sample-collapse",
"navigation",
"notification",
"overview",
"persona",
"pie-chart",
"powered-by-open-source",
"projecten",
"projects",
"projets",

2
go.mod
View File

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

6
go.sum
View File

@@ -438,6 +438,12 @@ github.com/gethinode/mod-utils/v4 v4.5.0 h1:p6sDsMNA/KE2IK3SPdWjFX3cPAwPP5gDxzJu
github.com/gethinode/mod-utils/v4 v4.5.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.5.1 h1:VKmqi6+oC93noHUJ6HvFlelglHT/9+kXQjpJs7VtWko=
github.com/gethinode/mod-utils/v4 v4.5.1/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.6.0 h1:XQ7hiCrn15SzgkcD0j53XVZPQYeQKUxg/UUkr80pJ2w=
github.com/gethinode/mod-utils/v4 v4.6.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.7.0 h1:JaL/+APOwdEzAi6y174ZdwoguCdALyGiGX8qBVXXBdU=
github.com/gethinode/mod-utils/v4 v4.7.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/gethinode/mod-utils/v4 v4.8.0 h1:/+M3EHqA8IzgBWXX1GLmT/xKbk2FVhUwmUfMnk/goF4=
github.com/gethinode/mod-utils/v4 v4.8.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3 h1:H/qVR5O4BXjRjD+5PZB+r4ug2BSJ2Of4RtwOntd+OKo=
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
github.com/nextapps-de/flexsearch v0.0.0-20240108021025-afd75f742f22 h1:re7L8FxbXQpnX8BgzkdUnDpsUmloGNyLmiy2ZCln8pg=

View File

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

View File

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

View File

@@ -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 -}}

View File

@@ -203,9 +203,22 @@
{{- end -}}
<div class="{{ $col2 }}">
<div class="card-body d-flex p-{{ $args.padding }} flex-column h-100 flex-fill">
{{ if $page }}<div>{{ partial "inline/card-caption.html" (dict "page" $page "keywords" $args.headerStyle "color" $args.color) }}</div>{{ end }}
{{ if $page }}
<div>{{ partial "inline/card-caption.html" (dict
"page" $page
"keywords" $args.headerStyle
"color" $args.color
) }}
</div>
{{ end }}
<div class="flex-fill">
{{- partial "inline/card-body.html" (dict "title" $title "href" $href "color" $args.color "description" $description "button" $args.button) -}}
{{- partial "inline/card-body.html" (dict
"title" $title
"href" $href
"color" $args.color
"description" $description
"button" $args.button
) -}}
</div>
{{ if $page }}<div>{{ partial "inline/card-caption.html" (dict "page" $page "keywords" $args.footerStyle "color" $args.color) }}</div>{{ end }}
{{ if and $href $args.button }}

View File

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

View File

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

View File

@@ -1,20 +0,0 @@
{{- /* Define main padding size */ -}}
{{- $defaultY := 5 -}}
{{- $defaultX := 5 -}}
{{- $permitted := slice 0 1 2 3 4 5 }}
{{- $paddingX := $defaultX -}}
{{- if isset site.Params.main.padding "x" }}{{ $paddingX = site.Params.main.padding.x }}{{ end -}}
{{- $paddingY := $defaultY -}}
{{- if isset site.Params.main.padding "y" }}{{ $paddingY = site.Params.main.padding.y }}{{ end -}}
{{- if not (in $permitted $paddingX) -}}
{{- warnf "layout [_default/baseof.html] - Invalid value for param 'padding.x': %d" $paddingX -}}
{{- $paddingX = $defaultX -}}
{{- end -}}
{{- if not (in $permitted $paddingY) -}}
{{- warnf "layout [_default/baseof.html] - Invalid value for param 'padding.y': %d" $paddingY -}}
{{- $paddingY = $defaultY -}}
{{- end -}}
{{- return (dict "x" $paddingX "y" $paddingY) -}}

View File

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

View File

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

View File

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

View File

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

View File

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

114
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "@gethinode/hinode",
"version": "1.0.0-beta",
"version": "1.0.0-beta4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@gethinode/hinode",
"version": "1.0.0-beta",
"version": "1.0.0-beta4",
"license": "MIT",
"dependencies": {
"@fullhuman/postcss-purgecss": "^7.0.2",
@@ -28,7 +28,7 @@
"replace-in-files-cli": "^3.0.0",
"rimraf": "^6.0.1",
"shx": "^0.4.0",
"stylelint": "^16.20.0",
"stylelint": "^16.21.0",
"stylelint-config-standard-scss": "^15.0.1"
},
"optionalDependencies": {
@@ -225,9 +225,9 @@
}
},
"node_modules/@csstools/css-parser-algorithms": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz",
"integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==",
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
"integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
"dev": true,
"funding": [
{
@@ -244,13 +244,13 @@
"node": ">=18"
},
"peerDependencies": {
"@csstools/css-tokenizer": "^3.0.3"
"@csstools/css-tokenizer": "^3.0.4"
}
},
"node_modules/@csstools/css-tokenizer": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz",
"integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==",
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
"integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
"dev": true,
"funding": [
{
@@ -268,9 +268,9 @@
}
},
"node_modules/@csstools/media-query-list-parser": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz",
"integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==",
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz",
"integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==",
"dev": true,
"funding": [
{
@@ -287,8 +287,8 @@
"node": ">=18"
},
"peerDependencies": {
"@csstools/css-parser-algorithms": "^3.0.4",
"@csstools/css-tokenizer": "^3.0.3"
"@csstools/css-parser-algorithms": "^3.0.5",
"@csstools/css-tokenizer": "^3.0.4"
}
},
"node_modules/@dual-bundle/import-meta-resolve": {
@@ -1672,9 +1672,9 @@
}
},
"node_modules/cacheable": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.9.0.tgz",
"integrity": "sha512-8D5htMCxPDUULux9gFzv30f04Xo3wCnik0oOxKoRTPIBoqA7HtOcJ87uBhQTs3jCfZZTrUBGsYIZOgE0ZRgMAg==",
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.10.0.tgz",
"integrity": "sha512-SSgQTAnhd7WlJXnGlIi4jJJOiHzgnM5wRMEPaXAU4kECTAMpBoYKoZ9i5zHmclIEZbxcu3j7yY/CF8DTmwIsHg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1708,9 +1708,9 @@
}
},
"node_modules/cacheable/node_modules/keyv": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-5.3.3.tgz",
"integrity": "sha512-Rwu4+nXI9fqcxiEHtbkvoes2X+QfkTRo1TMkPfwzipGsJlJO/z69vqB4FNl9xJ3xCpAcbkvmEabZfPzrwN3+gQ==",
"version": "5.3.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-5.3.4.tgz",
"integrity": "sha512-ypEvQvInNpUe+u+w8BIcPkQvEqXquyyibWE/1NB5T2BTzIpS5cGEV1LZskDzPSTvNAaT4+5FutvzlvnkxOSKlw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4224,9 +4224,9 @@
}
},
"node_modules/hookified": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/hookified/-/hookified-1.9.0.tgz",
"integrity": "sha512-2yEEGqphImtKIe1NXWEhu6yD3hlFR4Mxk4Mtp3XEyScpSt4pQ4ymmXA1zzxZpj99QkFK+nN0nzjeb2+RUi/6CQ==",
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/hookified/-/hookified-1.9.1.tgz",
"integrity": "sha512-u3pxtGhKjcSXnGm1CX6aXS9xew535j3lkOCegbA6jdyh0BaAjTbXI4aslKstCr6zUNtoCxFGFKwjbSHdGrMB8g==",
"dev": true,
"license": "MIT"
},
@@ -5937,15 +5937,16 @@
"dev": true
},
"node_modules/nanoid": {
"version": "3.3.8",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
"integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
"version": "3.3.11",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -6729,9 +6730,9 @@
}
},
"node_modules/postcss": {
"version": "8.5.3",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
"integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
"version": "8.5.6",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"funding": [
{
"type": "opencollective",
@@ -6748,7 +6749,7 @@
],
"license": "MIT",
"dependencies": {
"nanoid": "^3.3.8",
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
@@ -8778,9 +8779,9 @@
}
},
"node_modules/stylelint": {
"version": "16.20.0",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.20.0.tgz",
"integrity": "sha512-B5Myu9WRxrgKuLs3YyUXLP2H0mrbejwNxPmyADlACWwFsrL8Bmor/nTSh4OMae5sHjOz6gkSeccQH34gM4/nAw==",
"version": "16.21.0",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.21.0.tgz",
"integrity": "sha512-ki3PpJGG7xhm3WtINoWGnlvqAmbqSexoRMbEMJzlwewSIOqPRKPlq452c22xAdEJISVi80r+I7KL9GPUiwFgbg==",
"dev": true,
"funding": [
{
@@ -8794,9 +8795,9 @@
],
"license": "MIT",
"dependencies": {
"@csstools/css-parser-algorithms": "^3.0.4",
"@csstools/css-tokenizer": "^3.0.3",
"@csstools/media-query-list-parser": "^4.0.2",
"@csstools/css-parser-algorithms": "^3.0.5",
"@csstools/css-tokenizer": "^3.0.4",
"@csstools/media-query-list-parser": "^4.0.3",
"@csstools/selector-specificity": "^5.0.0",
"@dual-bundle/import-meta-resolve": "^4.1.0",
"balanced-match": "^2.0.0",
@@ -8807,21 +8808,21 @@
"debug": "^4.4.1",
"fast-glob": "^3.3.3",
"fastest-levenshtein": "^1.0.16",
"file-entry-cache": "^10.1.0",
"file-entry-cache": "^10.1.1",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
"html-tags": "^3.3.1",
"ignore": "^7.0.4",
"ignore": "^7.0.5",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
"known-css-properties": "^0.36.0",
"known-css-properties": "^0.37.0",
"mathml-tag-names": "^2.1.3",
"meow": "^13.2.0",
"micromatch": "^4.0.8",
"normalize-path": "^3.0.0",
"picocolors": "^1.1.1",
"postcss": "^8.5.3",
"postcss": "^8.5.5",
"postcss-resolve-nested-selector": "^0.1.6",
"postcss-safe-parser": "^7.0.1",
"postcss-selector-parser": "^7.1.0",
@@ -9012,25 +9013,25 @@
"dev": true
},
"node_modules/stylelint/node_modules/file-entry-cache": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.1.0.tgz",
"integrity": "sha512-Et/ex6smi3wOOB+n5mek+Grf7P2AxZR5ueqRUvAAn4qkyatXi3cUC1cuQXVkX0VlzBVsN4BkWJFmY/fYiRTdww==",
"version": "10.1.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.1.1.tgz",
"integrity": "sha512-zcmsHjg2B2zjuBgjdnB+9q0+cWcgWfykIcsDkWDB4GTPtl1eXUA+gTI6sO0u01AqK3cliHryTU55/b2Ow1hfZg==",
"dev": true,
"license": "MIT",
"dependencies": {
"flat-cache": "^6.1.9"
"flat-cache": "^6.1.10"
}
},
"node_modules/stylelint/node_modules/flat-cache": {
"version": "6.1.9",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.9.tgz",
"integrity": "sha512-DUqiKkTlAfhtl7g78IuwqYM+YqvT+as0mY+EVk6mfimy19U79pJCzDZQsnqk3Ou/T6hFXWLGbwbADzD/c8Tydg==",
"version": "6.1.10",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.10.tgz",
"integrity": "sha512-B6/v1f0NwjxzmeOhzfXPGWpKBVA207LS7lehaVKQnFrVktcFRfkzjZZ2gwj2i1TkEUMQht7ZMJbABUT5N+V1Nw==",
"dev": true,
"license": "MIT",
"dependencies": {
"cacheable": "^1.9.0",
"cacheable": "^1.10.0",
"flatted": "^3.3.3",
"hookified": "^1.8.2"
"hookified": "^1.9.1"
}
},
"node_modules/stylelint/node_modules/globby": {
@@ -9063,15 +9064,22 @@
}
},
"node_modules/stylelint/node_modules/ignore": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.4.tgz",
"integrity": "sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==",
"version": "7.0.5",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
"integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 4"
}
},
"node_modules/stylelint/node_modules/known-css-properties": {
"version": "0.37.0",
"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz",
"integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==",
"dev": true,
"license": "MIT"
},
"node_modules/stylelint/node_modules/postcss-selector-parser": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",

View File

@@ -1,6 +1,6 @@
{
"name": "@gethinode/hinode",
"version": "1.0.0-beta",
"version": "1.0.0-beta4",
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
"keywords": [
"hugo",
@@ -88,7 +88,7 @@
"replace-in-files-cli": "^3.0.0",
"rimraf": "^6.0.1",
"shx": "^0.4.0",
"stylelint": "^16.20.0",
"stylelint": "^16.21.0",
"stylelint-config-standard-scss": "^15.0.1"
},
"optionalDependencies": {