Compare commits

...

14 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
20 changed files with 70 additions and 105 deletions

View File

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

View File

@@ -69,7 +69,7 @@
{{- $params = merge $params (dict {{- $params = merge $params (dict
"page" page "page" page
"list" $pages "list" $pages
"max" $args.max "limit" $args.limit
"cols" $args.cols "cols" $args.cols
"icon-rounded" $args.iconRounded "icon-rounded" $args.iconRounded
"href" (cond $moreButton $moreLink "") "href" (cond $moreButton $moreLink "")

View File

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

View File

@@ -22,7 +22,8 @@ arguments:
release: 1.0.0 release: 1.0.0
list: list:
cards: cards:
max: limit:
release: v1.0.0
cols: cols:
release: v0.19.0 release: v0.19.0
paginate: paginate:
@@ -158,3 +159,12 @@ arguments:
group: partial group: partial
deprecated: v1.0.0 deprecated: v1.0.0
alternative: href-title 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: full:
id: id:
class: class:
options: highlight-options:
release: v0.27.6 release: v1.0.0
# deprecated arguments # deprecated arguments
path: path:
type: string type: string
@@ -22,3 +22,11 @@ arguments:
the path of the repository is used as base path instead. the path of the repository is used as base path instead.
deprecated: v1.0.0 deprecated: v1.0.0
alternative: file 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

@@ -31,6 +31,11 @@ arguments:
deprecated: v1.0.0 deprecated: v1.0.0
alternative: media-id alternative: media-id
options: 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 release: v0.28.2
deprecated: v1.0.0 deprecated: v1.0.0
alternative: query-args alternative: query-args

View File

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

View File

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

View File

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

View File

@@ -26,12 +26,12 @@ The `articles` content block renders a group of article cards.
more: more:
title: More Blogs title: More Blogs
padding: 0 padding: 0
max: 3 limit: 3
background: background:
color: primary color: primary
subtle: true subtle: true
class: border-0 card-zoom card-body-margin class: border-0 card-zoom card-body-margin
justify: center justify: start
``` ```
{{< /example-bookshop >}} {{< /example-bookshop >}}

View File

@@ -252,8 +252,6 @@ Use the `file` shortcode to print and highlight the full content of a given inpu
{{< /example >}} {{< /example >}}
<!-- markdownlint-enable MD037 --> <!-- markdownlint-enable MD037 -->
{{< file full="false" file="./config/_default/languages.toml" id="file-collapse-5" >}}
## Icon ## Icon
As an example, the following shortcodes show a square check, a brand logo, a circle check, and a custom icon. As an example, the following shortcodes show a square check, a brand logo, a circle check, and a custom icon.

View File

@@ -97,20 +97,12 @@
"ball", "ball",
"bg-bg-body-tertiary", "bg-bg-body-tertiary",
"bg-bg-primary-subtle", "bg-bg-primary-subtle",
"bg-black",
"bg-body", "bg-body",
"bg-body-tertiary", "bg-body-tertiary",
"bg-danger", "bg-danger",
"bg-dark",
"bg-info",
"bg-light",
"bg-opacity-10", "bg-opacity-10",
"bg-primary", "bg-primary",
"bg-primary-subtle", "bg-primary-subtle",
"bg-secondary",
"bg-success",
"bg-warning",
"bg-white",
"bi", "bi",
"bi-activity", "bi-activity",
"border", "border",
@@ -340,19 +332,8 @@
"label", "label",
"lead", "lead",
"leaflet-map", "leaflet-map",
"link-bg-black",
"link-bg-body",
"link-bg-body-tertiary", "link-bg-body-tertiary",
"link-bg-danger",
"link-bg-dark",
"link-bg-footer", "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-primary",
"link-secondary", "link-secondary",
"link-success", "link-success",
@@ -385,7 +366,7 @@
"mt-auto", "mt-auto",
"mt-md-0", "mt-md-0",
"multi-docs-collapse-15", "multi-docs-collapse-15",
"multi-docs-collapse-17", "multi-docs-collapse-16",
"multi-file-collapse-1", "multi-file-collapse-1",
"multi-file-collapse-5", "multi-file-collapse-5",
"mx-auto", "mx-auto",
@@ -419,7 +400,6 @@
"order-first", "order-first",
"order-md-0", "order-md-0",
"order-md-1", "order-md-1",
"p-",
"p-0", "p-0",
"p-1", "p-1",
"p-2", "p-2",
@@ -473,7 +453,6 @@
"row-cols-lg-3", "row-cols-lg-3",
"row-cols-md-2", "row-cols-md-2",
"row-cols-md-3", "row-cols-md-3",
"row-cols-md-4",
"row-cols-sm-2", "row-cols-sm-2",
"row-cols-sm-3", "row-cols-sm-3",
"scrollbar-horizontal", "scrollbar-horizontal",
@@ -503,18 +482,12 @@
"table-wrap", "table-wrap",
"tag-link", "tag-link",
"text-", "text-",
"text-bg-black",
"text-bg-body",
"text-bg-body-tertiary", "text-bg-body-tertiary",
"text-bg-danger",
"text-bg-dark",
"text-bg-info", "text-bg-info",
"text-bg-light",
"text-bg-primary", "text-bg-primary",
"text-bg-secondary", "text-bg-secondary",
"text-bg-success", "text-bg-success",
"text-bg-warning", "text-bg-warning",
"text-bg-white",
"text-body", "text-body",
"text-body-secondary", "text-body-secondary",
"text-break", "text-break",
@@ -599,7 +572,7 @@
"block-diagram", "block-diagram",
"blog", "blog",
"body-docs-collapse-15", "body-docs-collapse-15",
"body-docs-collapse-17", "body-docs-collapse-16",
"body-file-collapse-1", "body-file-collapse-1",
"body-file-collapse-5", "body-file-collapse-5",
"bouton", "bouton",
@@ -618,7 +591,6 @@
"cloudinary", "cloudinary",
"collapse", "collapse",
"collapse-1", "collapse-1",
"colored-cards",
"command-prompt", "command-prompt",
"comment-nous-partageons-vos-informations", "comment-nous-partageons-vos-informations",
"comment-utilisons-nous-les-cookies-", "comment-utilisons-nous-les-cookies-",
@@ -644,56 +616,21 @@
"fab-medium", "fab-medium",
"fab-whatsapp", "fab-whatsapp",
"fab-x-twitter", "fab-x-twitter",
"faq-053659d52c3204ebc73c1b387efbbb07", "faq-2ab61bd9d625ad933606ccabfaffa9a8",
"faq-053659d52c3204ebc73c1b387efbbb07-heading-faq-053659d52c3204ebc73c1b387efbbb07", "faq-2ab61bd9d625ad933606ccabfaffa9a8-heading-faq-2ab61bd9d625ad933606ccabfaffa9a8",
"faq-053659d52c3204ebc73c1b387efbbb07-item-0", "faq-2ab61bd9d625ad933606ccabfaffa9a8-item-0",
"faq-053659d52c3204ebc73c1b387efbbb07-item-1", "faq-2ab61bd9d625ad933606ccabfaffa9a8-item-1",
"faq-053659d52c3204ebc73c1b387efbbb07-item-2", "faq-2ab61bd9d625ad933606ccabfaffa9a8-item-2",
"faq-3b4f420cc7621af32c96109c12bca758", "faq-471c32251ced209d707f5815bdaa693a",
"faq-3b4f420cc7621af32c96109c12bca758-heading-faq-3b4f420cc7621af32c96109c12bca758", "faq-471c32251ced209d707f5815bdaa693a-heading-faq-471c32251ced209d707f5815bdaa693a",
"faq-3b4f420cc7621af32c96109c12bca758-item-0", "faq-471c32251ced209d707f5815bdaa693a-item-0",
"faq-3b4f420cc7621af32c96109c12bca758-item-1", "faq-471c32251ced209d707f5815bdaa693a-item-1",
"faq-3b4f420cc7621af32c96109c12bca758-item-2", "faq-471c32251ced209d707f5815bdaa693a-item-2",
"faq-4f19b6f4505f05eaa5bbf531aed406b8", "faq-67dbd72b681a398b4c77f0f3652e0905",
"faq-4f19b6f4505f05eaa5bbf531aed406b8-heading-faq-4f19b6f4505f05eaa5bbf531aed406b8", "faq-67dbd72b681a398b4c77f0f3652e0905-heading-faq-67dbd72b681a398b4c77f0f3652e0905",
"faq-4f19b6f4505f05eaa5bbf531aed406b8-item-0", "faq-67dbd72b681a398b4c77f0f3652e0905-item-0",
"faq-4f19b6f4505f05eaa5bbf531aed406b8-item-1", "faq-67dbd72b681a398b4c77f0f3652e0905-item-1",
"faq-4f19b6f4505f05eaa5bbf531aed406b8-item-2", "faq-67dbd72b681a398b4c77f0f3652e0905-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",
"fas-1", "fas-1",
"fas-2", "fas-2",
"fas-3", "fas-3",
@@ -728,7 +665,7 @@
"file", "file",
"flowchart", "flowchart",
"footer-docs-collapse-15", "footer-docs-collapse-15",
"footer-docs-collapse-17", "footer-docs-collapse-16",
"footer-file-collapse-1", "footer-file-collapse-1",
"footer-file-collapse-5", "footer-file-collapse-5",
"formula-katex", "formula-katex",

2
go.mod
View File

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

4
go.sum
View File

@@ -440,6 +440,10 @@ 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.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 h1:XQ7hiCrn15SzgkcD0j53XVZPQYeQKUxg/UUkr80pJ2w=
github.com/gethinode/mod-utils/v4 v4.6.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4= 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 h1:H/qVR5O4BXjRjD+5PZB+r4ug2BSJ2Of4RtwOntd+OKo=
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU= github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
github.com/nextapps-de/flexsearch v0.0.0-20240108021025-afd75f742f22 h1:re7L8FxbXQpnX8BgzkdUnDpsUmloGNyLmiy2ZCln8pg= github.com/nextapps-de/flexsearch v0.0.0-20240108021025-afd75f742f22 h1:re7L8FxbXQpnX8BgzkdUnDpsUmloGNyLmiy2ZCln8pg=

View File

@@ -125,7 +125,9 @@
{{ if in (slice "types" "both") $args.renderType }} {{ if in (slice "types" "both") $args.renderType }}
{{ $prefix := strings.Repeat $args.headerLevel "#" }} {{ $prefix := strings.Repeat $args.headerLevel "#" }}
{{ range $k, $v := $types.udt }} {{ 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)) }} {{ partial "inline/args-table.html" (merge $params (dict "args" $v)) }}
{{ end }} {{ end }}
{{ end }} {{ end }}

View File

@@ -113,7 +113,7 @@
{{/* Limit list to max elements */}} {{/* Limit list to max elements */}}
{{- $count := len $elements -}} {{- $count := len $elements -}}
{{- $max := $count -}} {{- $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 -}} {{- if not $args.paginate -}}
{{- $elements = first $max $elements -}} {{- $elements = first $max $elements -}}
{{- end -}} {{- end -}}

View File

@@ -73,7 +73,7 @@
</ul> </ul>
<div class="border-start border-end border-bottom mb-3"> <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 }}"> <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>
<div class="collapse multi-{{ $id }}{{ if not $args.show }} show{{ end }} p-3" id="footer-{{ $id }}"> <div class="collapse multi-{{ $id }}{{ if not $args.show }} show{{ end }} p-3" id="footer-{{ $id }}">
<a class="nav-link active" <a class="nav-link active"

View File

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

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "1.0.0-beta3", "version": "1.0.0-beta4",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "1.0.0-beta3", "version": "1.0.0-beta4",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@fullhuman/postcss-purgecss": "^7.0.2", "@fullhuman/postcss-purgecss": "^7.0.2",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "1.0.0-beta3", "version": "1.0.0-beta4",
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator", "description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
"keywords": [ "keywords": [
"hugo", "hugo",