Compare commits

...

50 Commits

Author SHA1 Message Date
github-actions[bot]
a0795b35db Merge pull request #1167 from gethinode/dependabot/npm_and_yarn/markdownlint-cli2-0.14.0
Bump markdownlint-cli2 from 0.13.0 to 0.14.0
2024-09-07 14:02:31 +00:00
Mark Dumay
0db4e4c32a Merge branch 'main' into dependabot/npm_and_yarn/markdownlint-cli2-0.14.0 2024-09-07 15:58:37 +02:00
Mark Dumay
71a084943c Merge pull request #1170 from gethinode/develop
Fix linting issue
2024-09-07 15:58:27 +02:00
Mark Dumay
6bad597805 Merge branch 'main' into develop 2024-09-07 15:52:08 +02:00
Mark Dumay
b11aefd592 Fix linting issue 2024-09-07 15:51:32 +02:00
Mark Dumay
f280f6402b Merge branch 'main' into dependabot/npm_and_yarn/markdownlint-cli2-0.14.0 2024-09-07 15:47:40 +02:00
Mark Dumay
157b3da43e Merge pull request #1169 from gethinode/develop
Fix linting issue
2024-09-07 15:47:25 +02:00
Mark Dumay
5de693297f Merge branch 'main' into develop 2024-09-07 15:40:25 +02:00
Mark Dumay
65633ca62c Fix linting issue 2024-09-07 15:39:54 +02:00
dependabot[bot]
81589efb00 Bump markdownlint-cli2 from 0.13.0 to 0.14.0
Bumps [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2) from 0.13.0 to 0.14.0.
- [Changelog](https://github.com/DavidAnson/markdownlint-cli2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/DavidAnson/markdownlint-cli2/compare/v0.13.0...v0.14.0)

---
updated-dependencies:
- dependency-name: markdownlint-cli2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-07 13:38:18 +00:00
Mark Dumay
1d50bb5ed2 Merge pull request #1168 from gethinode/develop
Make video partial compatible with Hugo < v0.112.0
2024-09-07 15:37:08 +02:00
Mark Dumay
b5a19fa7d6 Refine video path 2024-09-07 15:29:50 +02:00
Mark Dumay
fc76bac8b0 Merge branch 'main' into develop 2024-09-07 13:43:49 +02:00
Mark Dumay
f671c31130 Make video partial compatible with Hugo < v0.112.0 2024-09-07 13:43:01 +02:00
github-actions[bot]
cdb84e8f21 Merge pull request #1166 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.131.1
Bump hugo-bin from 0.131.0 to 0.131.1
2024-09-06 13:48:38 +00:00
dependabot[bot]
121625515a Bump hugo-bin from 0.131.0 to 0.131.1
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.131.0 to 0.131.1.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.131.0...v0.131.1)

---
updated-dependencies:
- dependency-name: hugo-bin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-06 13:43:21 +00:00
Mark Dumay
60b6e1c960 Merge pull request #1160 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2024-09-05 19:45:31 +02:00
Mark Dumay
6628e9f879 Merge branch 'main' into hugo-mod-dependencies 2024-09-05 19:36:37 +02:00
Mark Dumay
a3178e06af Merge pull request #1163 from gethinode/develop
Migrate to neostandard eslint
2024-09-05 19:35:38 +02:00
Mark Dumay
fc86946cff Merge branch 'main' into develop 2024-09-05 19:24:59 +02:00
Mark Dumay
e440386999 Migrate to neostandard eslint
See #1143
2024-09-05 19:20:34 +02:00
Mark Dumay
01c864bd64 Merge branch 'main' into hugo-mod-dependencies 2024-09-05 18:13:04 +02:00
github-actions[bot]
16cc468cf1 Merge pull request #1162 from gethinode/dependabot/npm_and_yarn/cssnano-7.0.6
Bump cssnano from 7.0.5 to 7.0.6
2024-09-05 13:52:10 +00:00
dependabot[bot]
1147c8fff6 Bump cssnano from 7.0.5 to 7.0.6
Bumps [cssnano](https://github.com/cssnano/cssnano) from 7.0.5 to 7.0.6.
- [Release notes](https://github.com/cssnano/cssnano/releases)
- [Commits](https://github.com/cssnano/cssnano/compare/cssnano@7.0.5...cssnano@7.0.6)

---
updated-dependencies:
- dependency-name: cssnano
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-05 13:46:27 +00:00
github-actions[bot]
6b0fd9e244 Merge pull request #1161 from gethinode/dependabot/npm_and_yarn/cssnano-preset-advanced-7.0.6
Bump cssnano-preset-advanced from 7.0.5 to 7.0.6
2024-09-05 13:45:18 +00:00
dependabot[bot]
05bb9417b0 Bump cssnano-preset-advanced from 7.0.5 to 7.0.6
Bumps [cssnano-preset-advanced](https://github.com/cssnano/cssnano) from 7.0.5 to 7.0.6.
- [Release notes](https://github.com/cssnano/cssnano/releases)
- [Commits](https://github.com/cssnano/cssnano/compare/cssnano-preset-advanced@7.0.5...cssnano-preset-advanced@7.0.6)

---
updated-dependencies:
- dependency-name: cssnano-preset-advanced
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-05 13:40:18 +00:00
markdumay
03fc50852a fix: update Hugo module dependencies 2024-09-05 03:06:20 +00:00
Mark Dumay
4de91bb7f2 Merge pull request #1159 from gethinode/develop
Enhance styling options of cards and card groups
2024-09-04 16:11:13 +02:00
Mark Dumay
96b9a3b38d Merge branch 'main' into develop 2024-09-04 16:03:24 +02:00
Mark Dumay
da52d6e596 Bump package release 2024-09-04 16:01:57 +02:00
Mark Dumay
b369e34f32 Extend styling options of card groups 2024-09-04 16:01:46 +02:00
Mark Dumay
e456061d19 Extend configuration of card body 2024-09-04 15:59:38 +02:00
Mark Dumay
a87de9c37c Add overlay support to card 2024-09-04 15:58:48 +02:00
Mark Dumay
6283970443 Merge pull request #1158 from gethinode/develop
Fix deprecation warnings
2024-09-04 14:43:06 +02:00
Mark Dumay
200ca109b1 Merge branch 'main' into develop 2024-09-04 14:36:00 +02:00
Mark Dumay
acded37e83 Use css.PostCSS instead of deprecated resources.PostCSS 2024-09-04 14:35:21 +02:00
Mark Dumay
782a40e1e8 Use pagerSize instead of deprecated pagination key 2024-09-04 14:35:16 +02:00
Mark Dumay
7b2bb803b3 Merge pull request #1157 from gethinode/develop
Support table render hook
2024-09-04 14:25:44 +02:00
Mark Dumay
0e0561b081 Merge branch 'main' into develop 2024-09-04 14:18:14 +02:00
Mark Dumay
e3cf2e1337 Support table render hook
Fixes #1156
2024-09-04 14:17:45 +02:00
github-actions[bot]
c18316250b Merge pull request #1153 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.131.0
Bump hugo-bin from 0.130.1 to 0.131.0
2024-09-04 07:09:54 +00:00
Mark Dumay
29a8666d7d Merge branch 'main' into dependabot/npm_and_yarn/hugo-bin-0.131.0 2024-09-04 08:06:53 +02:00
Mark Dumay
431125e46c Merge pull request #1155 from gethinode/develop
Support type hstring.HTML introduced in Hugo v0.134.0
2024-09-04 08:06:41 +02:00
Mark Dumay
dae6541185 Merge branch 'main' into develop 2024-09-04 07:56:38 +02:00
Mark Dumay
41d0edb6c1 Support type hstring.HTML introduced in Hugo v0.134.0 2024-09-04 07:55:45 +02:00
Mark Dumay
5d9d11c388 Merge pull request #1154 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2024-09-04 07:52:26 +02:00
markdumay
3b26c04bdd fix: update Hugo module dependencies 2024-09-04 03:05:46 +00:00
dependabot[bot]
01d41ae38e Bump hugo-bin from 0.130.1 to 0.131.0
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.130.1 to 0.131.0.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.130.1...v0.131.0)

---
updated-dependencies:
- dependency-name: hugo-bin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-03 13:53:26 +00:00
github-actions[bot]
22d5859432 Merge pull request #1152 from gethinode/dependabot/npm_and_yarn/eslint-plugin-import-2.30.0
Bump eslint-plugin-import from 2.29.1 to 2.30.0
2024-09-03 13:52:15 +00:00
dependabot[bot]
551b185dd9 Bump eslint-plugin-import from 2.29.1 to 2.30.0
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.29.1 to 2.30.0.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.29.1...v2.30.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-03 13:47:25 +00:00
24 changed files with 1806 additions and 972 deletions

View File

@@ -1,8 +0,0 @@
assets/js/critical/languageSelector.js
assets/js/critical/color.js
assets/js/analytics.js
assets/js/flexsearch.js
assets/js/navbar.js
assets/js/sharing.js
assets/js/vendor
node_modules

View File

@@ -1,3 +1,4 @@
/* eslint-disable no-undef */
const alert = document.getElementById('page-alert')
const closeBtn = document.getElementById('page-alert-btn-close')
if (alert !== null && closeBtn !== null) {

View File

@@ -1,7 +1,6 @@
# toml-docs-start main
title = "Hinode"
copyright = "Copyright © 2024 Mark Dumay."
paginate = 9
enableGitInfo = true
# toml-docs-end main
@@ -49,6 +48,9 @@ home = ["HTML", "RSS", "REDIR"]
[taxonomies]
tag = 'tags'
[pagination]
pagerSize = 9
[privacy]
[privacy.vimeo]
disabled = false
@@ -95,7 +97,7 @@ home = ["HTML", "RSS", "REDIR"]
[module]
[module.hugoVersion]
extended = true
min = "0.132.0"
min = "0.134.0"
max = ""
[[module.mounts]]
source = "archetypes"

View File

@@ -96,12 +96,14 @@ arguments:
screens.
wrapper:
type: string
default: p-0
optional: true
comment: >-
Class attributes of the wrapper element, e.g. `p-4 px-xxl-0`.
responsive:
type: bool
optional: true
default: true
comment: >-
Flag indicating if the number of columns should be responsive, defaults to
`true`.
@@ -132,5 +134,33 @@ arguments:
hook:
type: string
optional: true
default: assets/card.html
comment: Render hook for the card partial.
group: partial
bento:
type: bool
optional: true
default: false
comment: >-
Trigger to use a bento-style layout instead of default grid layout.
release: v0.27.0
valign:
type: select
optional: true
comment: >-
Defines the vertical card alignment, only applicable in bento layout.
release: v0.27.0
options:
values:
- start
- center
- end
styles:
type:
- '[]map[string]interface {}'
optional: true
comment: >-
Styles to apply to the individual cards. Supported elements are `ratio`,
`orientation`, `portrait`, and `width`. The styles are rotated when the
amount of cards exceeds the available amount of styles.
release: v0.27.0

View File

@@ -101,6 +101,7 @@ arguments:
options:
values:
- full
- title
- none
footer:
type: select
@@ -227,6 +228,7 @@ arguments:
- stacked
- horizontal
- horizontal-sm
- overlay
- none
subtle:
type: bool

View File

@@ -112,7 +112,8 @@ arguments:
title:
type:
- string
- 'hstring.RenderedString'
- hstring.RenderedString
- hstring.HTML
optional: true
comment: Alternate text of the image.
caption:

View File

@@ -72,6 +72,7 @@ arguments:
- string
- template.HTML
- hstring.RenderedString
- hstring.HTML
optional: true
group: partial
comment: Link description.

14
eslint.config.js Normal file
View File

@@ -0,0 +1,14 @@
'use strict'
module.exports = require('neostandard')({
ignores: [
"assets/js/critical/languageSelector.js",
"assets/js/critical/color.js",
"assets/js/analytics.js",
"assets/js/flexsearch.js",
"assets/js/navbar.js",
"assets/js/sharing.js",
"assets/js/vendor",
"node_modules",
]
})

View File

@@ -1,7 +1,6 @@
resourcedir = '../resources/'
title = "Hinode"
copyright = "Copyright © 2024 Mark Dumay."
paginate = 9
enableGitInfo = true
# additional settings
@@ -39,6 +38,9 @@ home = ["HTML", "RSS", "REDIR"]
[taxonomies]
tag = 'tags'
[pagination]
pagerSize = 9
[privacy]
[privacy.vimeo]
disabled = false

View File

@@ -418,7 +418,7 @@ As an example, the following shortcode displays superscript text.
As an example, the following shortcode displays a responsive table.
<!-- markdownlint-disable MD037 -->
<!-- markdownlint-disable MD037 MD058 -->
{{< example lang="markdown" >}}
{{</* table */>}}
| # | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading |
@@ -428,7 +428,7 @@ As an example, the following shortcode displays a responsive table.
| 3. | cell | cel | cel | cel | cel | cel | cel | cel | cel |
{{</* /table */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
<!-- markdownlint-enable MD037 MD058 -->
## Timeline

View File

@@ -29,7 +29,7 @@ As an example, the following shortcode shows an animation that plays on hover.
As an example, the following shortcode displays a responsive table that uses advanced controls.
<!-- markdownlint-disable MD037 -->
<!-- markdownlint-disable MD037 MD058 -->
{{< example lang="markdown" >}}
{{</* table sortable="true" paging="true" searchable="true" */>}}
| # | Heading |

4
go.mod
View File

@@ -10,8 +10,8 @@ require (
github.com/gethinode/mod-katex v1.1.2 // indirect
github.com/gethinode/mod-leaflet v1.1.1 // indirect
github.com/gethinode/mod-lottie v1.5.7 // indirect
github.com/gethinode/mod-simple-datatables v1.0.8 // indirect
github.com/gethinode/mod-utils/v2 v2.5.0 // indirect
github.com/gethinode/mod-simple-datatables v1.0.9 // indirect
github.com/gethinode/mod-utils/v2 v2.6.0 // indirect
github.com/nextapps-de/flexsearch v0.0.0-20240501124520-961c3ae84a87 // indirect
github.com/twbs/bootstrap v5.3.3+incompatible // indirect
)

6
go.sum
View File

@@ -218,6 +218,8 @@ github.com/gethinode/mod-simple-datatables v1.0.7 h1:pfxWhgmn/njJcynNIDnUyeOBW0t
github.com/gethinode/mod-simple-datatables v1.0.7/go.mod h1:Y7AzIYAWpzDKLvH96eqBA/Gs3jompWCgxadLuoKZ/rc=
github.com/gethinode/mod-simple-datatables v1.0.8 h1:J8hA+SXdTLaRNZwN70ZEyADn+VgNoAaxVDMXsMPTZBg=
github.com/gethinode/mod-simple-datatables v1.0.8/go.mod h1:RsTHWAt1J9/m7kzhYNSJB7CDyk+8DrG+46/aFrP6KJw=
github.com/gethinode/mod-simple-datatables v1.0.9 h1:8OnpY/axFkgxJ598DHW4nDtxsCYmgTakAG4ZC2wRS3A=
github.com/gethinode/mod-simple-datatables v1.0.9/go.mod h1:rgQWdDZ6lTR9+08dGY1zBDLZI/UneKPufakAK20+lmI=
github.com/gethinode/mod-utils v1.0.0 h1:cqHm2xS5uDiJzRm1KfHaNbq6uMVDKLhQa8/BuTZ1nhY=
github.com/gethinode/mod-utils v1.0.0/go.mod h1:ONJm3pHCq7nvaPNjusLZNCeCbhOhSBH4HVKHwK1FdYE=
github.com/gethinode/mod-utils v1.0.1 h1:jhZGlGFHHL1f5HXbBMXfiZ2gCz4TVafAzjnRPTIBSEE=
@@ -268,6 +270,10 @@ github.com/gethinode/mod-utils/v2 v2.4.0 h1:mmG4hWaeA4krAg933pibH+TrjFmPHkAi/DUb
github.com/gethinode/mod-utils/v2 v2.4.0/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
github.com/gethinode/mod-utils/v2 v2.5.0 h1:9QboNU9KTpmJDS9JBjxavbknLVBJilocqo5KhC2FdME=
github.com/gethinode/mod-utils/v2 v2.5.0/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
github.com/gethinode/mod-utils/v2 v2.5.2 h1:URGTpJo0dN4/oF2yL6o2d2pkcSlG1F0hgIF9UqpIs/E=
github.com/gethinode/mod-utils/v2 v2.5.2/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
github.com/gethinode/mod-utils/v2 v2.6.0 h1:r7l/E6fbPZHnjFyJY4T/xzekd7Xp3czNVCMgKoKR8wc=
github.com/gethinode/mod-utils/v2 v2.6.0/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
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

@@ -2,11 +2,16 @@
"htmlElements": {
"tags": [
"a",
"blockquote",
"body",
"button",
"code",
"div",
"em",
"footer",
"form",
"h2",
"h3",
"head",
"html",
"img",
@@ -20,13 +25,20 @@
"ol",
"p",
"path",
"pre",
"script",
"small",
"span",
"strong",
"svg",
"symbol",
"table",
"tbody",
"td",
"th",
"thead",
"title",
"tr",
"ul",
"use"
],
@@ -35,17 +47,29 @@
"align-items-center",
"align-self-center",
"align-self-end",
"anchor",
"ball",
"bg-body",
"bg-body-tertiary",
"bg-opacity-10",
"bg-primary",
"blockquote-alert",
"blockquote-alert-heading",
"blockquote-alert-important",
"border",
"border-0",
"border-bottom",
"border-none",
"border-primary",
"border-top",
"bottom-0",
"bottom-bar",
"breadcrumb",
"breadcrumb-item",
"btn",
"btn-close",
"btn-outline-primary",
"btn-outline-secondary",
"btn-primary",
"btn-social",
"card",
@@ -55,6 +79,7 @@
"card-title",
"card-zoom",
"checkbox",
"chroma",
"col",
"col-12",
"col-6",
@@ -70,12 +95,15 @@
"collapsed",
"container-fluid",
"container-xxl",
"d-block",
"d-flex",
"d-grid",
"d-inline",
"d-lg-block",
"d-md-block",
"d-md-none",
"d-none",
"data-table",
"display-1",
"display-4",
"emphasis",
@@ -85,6 +113,7 @@
"fa-2x",
"fa-book-open",
"fa-ellipsis",
"fa-exclamation",
"fa-face-frown",
"fa-facebook",
"fa-fw",
@@ -94,6 +123,7 @@
"fa-medium",
"fa-moon",
"fa-share-nodes",
"fa-sort",
"fa-sun",
"fa-whatsapp",
"fa-x-twitter",
@@ -102,6 +132,7 @@
"fixed-top",
"flex-column",
"flex-fill",
"font-monospace",
"footer",
"form-control",
"fs-3",
@@ -110,14 +141,20 @@
"fs-lg-5",
"fw-30",
"fw-bold",
"fw-semibold",
"g-4",
"gap-1",
"gap-2",
"h-100",
"h6",
"heading",
"highlight",
"hstack",
"img-fluid",
"img-wrap",
"invisible",
"is-search",
"justify-content-between",
"justify-content-center",
"justify-content-end",
"justify-content-start",
@@ -137,9 +174,12 @@
"ms-auto",
"ms-md-3",
"mt-3",
"mt-4",
"mt-5",
"mt-md-0",
"mx-auto",
"mx-md-0",
"my-2",
"my-auto",
"my-md-0",
"my-md-auto",
@@ -153,6 +193,7 @@
"navbar-fixed-top",
"navbar-mode-selector",
"navbar-nav",
"navbar-nav-scroll",
"navbar-toggler",
"no-js",
"order-0",
@@ -160,22 +201,30 @@
"order-md-0",
"order-md-1",
"p-0",
"p-1",
"p-2",
"p-3",
"p-4",
"pb-2",
"pb-3",
"pb-4",
"pb-5",
"pb-md-0",
"pe-3",
"position-fixed",
"position-relative",
"ps-1",
"pt-4",
"ps-3",
"pt-5",
"pt-md-3",
"px-4",
"px-xxl-0",
"py-1",
"py-3",
"rounded",
"rounded-2",
"rounded-bottom",
"rounded-top",
"row",
"row-cols-1",
"row-cols-2",
@@ -192,6 +241,22 @@
"sticky-top",
"stretched-link",
"svg-inline--fa",
"syntax-highlight",
"table",
"table-bordered",
"table-borderless",
"table-hover",
"table-responsive",
"table-responsive-lg",
"table-responsive-md",
"table-responsive-sm",
"table-responsive-xl",
"table-responsive-xxl",
"table-sm",
"table-striped",
"table-striped-columns",
"table-success",
"text-body",
"text-body-secondary",
"text-center",
"text-decoration-none",
@@ -206,13 +271,25 @@
"toast-container",
"toast-header",
"toc",
"toc-button",
"toc-panel",
"toc-sidebar",
"toggler-icon",
"top-bar"
],
"ids": [
"TableOfContents",
"accented-tables",
"aligned-cells-and-headers",
"always-responsive",
"basic-tables",
"blogs",
"bordered-tables",
"breakpoint-specific",
"btn-webshare",
"colored-tables",
"data-tables",
"default-alignment",
"fa-face-frown",
"fab-facebook",
"fab-github",
@@ -222,16 +299,26 @@
"fab-x-twitter",
"fas-book-open",
"fas-ellipsis",
"fas-exclamation",
"fas-link",
"fas-moon",
"fas-share-nodes",
"fas-sort",
"fas-sun",
"hoverable-rows",
"navbar-0-collapse",
"navbar-mode",
"navbar-mode-checkbox",
"responsive-tables",
"small-tables",
"striped-columns",
"striped-rows",
"table-borders",
"tables-without-borders",
"toast-container",
"toast-copied-code-message",
"toast-message-email-4"
"toast-message-email-4",
"toc-collapse"
]
}
}

View File

@@ -0,0 +1,40 @@
{{/* Adapted from https://gohugo.io/render-hooks/tables/ */}}
<!-- Ensure presence of `.table` class attribute to trigger Bootstrap styling -->
{{ $attr := .Attributes }}
{{ $class := split $attr.class " " }}
{{ if not (in $class "table") }}
{{ $attr = merge $attr (dict "class" (trim (delimit ($class | append "table") " ") " ")) }}
{{ end }}
{{ $align := dict "left" "start" "center" "center" "right" "end" }}
<table
{{- range $k, $v := $attr }}
{{- if $v }}
{{- printf " %s=%q" $k $v | safeHTMLAttr }}
{{- end }}
{{- end }}>
<thead>
{{- range .THead }}
<tr>
{{- range . }}
<th {{ with .Alignment }}class="text-{{ index $align . }}"{{ end }}>
{{- .Text -}}
</th>
{{- end }}
</tr>
{{- end }}
</thead>
<tbody>
{{- range .TBody }}
<tr>
{{- range . }}
<td {{ with .Alignment }}class="text-{{ index $align . }}"{{ end }}>
{{- .Text -}}
</td>
{{- end }}
</tr>
{{- end }}
</tbody>
</table>

View File

@@ -4,66 +4,67 @@
Visit gethinode.com/license for more details.
-->
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "card-group" "child" "card" "args" .) }}
{{- errorf "partial [assets/card-group.html] - Invalid arguments" -}}
{{ end }}
<!-- Initialize arguments and default values -->
{{- $page := .page -}}
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
{{ $pages := .list }}
{{ $cards := .cards }}
{{- $paginate := .paginate | default false -}}
{{- $moreURL := .href -}}
{{- $moreTitle := .hrefTitle -}}
{{- $gutter := .gutter | default 4 -}}
{{- $separator := .separator | default false -}}
{{- $class := .class -}}
{{- $color := .color -}}
{{- $padding := .padding -}}
{{- $header := .header -}}
{{- $body := .body -}}
{{- $footer := .footer -}}
{{- $orientation := .orientation -}}
{{- $ratio := .ratio -}}
{{- $portrait := .portrait | default false -}}
{{- $wrapper := .wrapper | default "p-0" -}}
{{- $style := .style -}}
{{- $align := .align -}}
{{- $subtle := .subtle }}
{{- $loading := .loading -}}
{{- $button := .button -}}
{{- $buttonLabel := .buttonLabel -}}
{{- $buttonType := .buttonType -}}
{{- $iconRounded := .iconRounded }}
{{- $scroll := .scroll | default false }}
{{- $spacer := .spacer | default false }}
{{- $hook := .hook | default "assets/card.html" }}
{{- $cols := string .cols | default "3" -}}
<!-- Override arguments -->
{{ $isPages := in (slice "page.Pages" "resource.Resources") (printf "%T" $pages) }}
{{ $paginator := "" }}
{{ if and $isPages $paginate }}
{{ with .pagination }}
{{ $paginator = $page.Paginate $pages . }}
{{ else }}
{{ $paginator = $page.Paginate $pages }}
<!-- Define inline partials -->
{{ define "partials/assets/style.html" }}
{{ $style := "" }}
{{ if gt (len .styles) 0 }}
{{ $def := index .styles (mod .index (len .styles)) }}
{{ $style = index $def .key }}
{{ end }}
{{ $pages = first $paginator.PageSize (after (mul (sub $paginator.PageNumber 1) $paginator.PageSize) $pages) }}
{{ return ($style | default .default ) }}
{{ end }}
<!-- Initialize arguments -->
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "card-group" "child" "card" "args" .) }}
{{ if $args.err }}
{{ partial "utilities/LogErr.html" (dict
"partial" "assets/card-group.html"
"msg" "Invalid arguments"
"details" $args.errmsg
"file" page.File
)}}
{{ end }}
<!-- Initialize local variables -->
{{ $list := $args.list }}
{{- $class := $args.class -}}
{{- $orientation := $args.orientation -}}
{{ $cardWrapper := "" }}
{{ if $scroll }}
{{ $cardWrapper = printf "card-block card-block-%d" (int $cols) }}
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
{{ $colsMap := dict
"auto" ""
"1" "row-cols-1"
"2" (printf "row-cols-1 row-cols-%s-1 row-cols-%s-2" $breakpoint.prev $breakpoint.current)
"3" (printf "row-cols-1 row-cols-%s-2 row-cols-%s-3" $breakpoint.prev $breakpoint.current)
"4" (printf "row-cols-1 row-cols-%s-2 row-cols-%s-4" $breakpoint.prev $breakpoint.current)
"5" (printf "row-cols-1 row-cols-%s-3 row-cols-%s-5" $breakpoint.prev $breakpoint.current)
}}
{{ $sizesMap := dict
"auto" "100vw"
"1" "100vw"
"2" (printf "(min-width: %s) 50vw, 100vw" $breakpoint.currentSize)
"3" (printf "(min-width: %s) 33.3vw, (min-width: %s) 50vw, 100vw" $breakpoint.currentSize $breakpoint.prevSize)
"4" (printf "(min-width: %s) 25vw, (min-width: %s) 50vw, 100vw" $breakpoint.currentSize $breakpoint.prevSize)
"5" (printf "(min-width: %s) 20vw, (min-width: %s) 33.3vw, 100vw" $breakpoint.currentSize $breakpoint.prevSize)
}}
<!-- Apply optional pagination -->
{{ $isPages := in (slice "page.Pages" "resource.Resources") (printf "%T" $list) }}
{{ $paginator := "" }}
{{ if and $isPages $args.paginate }}
{{ with $args.pagination }}
{{ $paginator = $args.page.Paginate $list . }}
{{ else }}
{{ $paginator = $args.page.Paginate $list }}
{{ end }}
{{ $list = first $paginator.PageSize (after (mul (sub $paginator.PageNumber 1) $paginator.PageSize) $list) }}
{{ end }}
{{ if not $spacer }}{{ $class = printf "%s h-100" $class }}{{ end }}
{{ $list := slice }}
<!-- Initialize list elements -->
{{ $elements := slice }}
{{ if $isPages }}
{{ range $index, $element := $pages }}
{{ range $index, $element := $list }}
{{ $params := dict }}
<!-- regular page -->
{{- if and $element.RelPermalink $element.File -}}
@@ -82,102 +83,95 @@
) -}}
{{- end -}}
{{- $list = $list | append $params }}
{{- $elements = $elements | append $params }}
{{ end }}
{{ else if $pages }}
{{ $list = $list | append $pages }}
{{ else if $list }}
{{ $elements = $elements | append $list }}
{{ end }}
{{- $count := len $list -}}
<!-- Limit list to max elements -->
{{- $count := len $elements -}}
{{- $max := $count -}}
{{- $max = math.Min (.max | default $count) $count -}}
{{- $responsive := .responsive | default true -}}
{{- $sizes := "100vw" }}
{{- $colGrid := "" -}}
{{ if not $scroll }}
{{ $colGrid = printf "row-cols-%s" $cols }}
{{- if eq $cols "1" }}
{{ $colGrid = "row-cols-1" -}}
{{- else if eq $cols "2" }}
{{ if $responsive }}
{{ $colGrid = printf "row-cols-1 row-cols-%s-1 row-cols-%s-2" $breakpoint.prev $breakpoint.current }}
{{ end -}}
{{ $sizes = printf "(min-width: %s) 50vw, 100vw" $breakpoint.currentSize }}
{{- else if eq $cols "3" }}
{{ if $responsive }}
{{ $colGrid = printf "row-cols-1 row-cols-%s-2 row-cols-%s-3" $breakpoint.prev $breakpoint.current }}
{{ end -}}
{{ $sizes = printf "(min-width: %s) 33.3vw, (min-width: %s) 50vw, 100vw" $breakpoint.currentSize $breakpoint.prevSize }}
{{- else if eq $cols "4" }}
{{ if $responsive }}
{{ $colGrid = printf "row-cols-1 row-cols-%s-2 row-cols-%s-4" $breakpoint.prev $breakpoint.current }}
{{ end -}}
{{ $sizes = printf "(min-width: %s) 25vw, (min-width: %s) 50vw, 100vw" $breakpoint.currentSize $breakpoint.prevSize }}
{{- else if eq $cols "5" }}
{{ if $responsive }}
{{ $colGrid = printf "row-cols-1 row-cols-%s-3 row-cols-%s-5" $breakpoint.prev $breakpoint.current }}
{{ end -}}
{{ $sizes = printf "(min-width: %s) 20vw, (min-width: %s) 33.3vw, 100vw" $breakpoint.currentSize $breakpoint.prevSize }}
{{ end -}}
{{ else }}
{{ if in (slice "2" "3" "4" "5") $cols }}
{{ $sizes = replace (printf "%.1fvw" (div 100.0 (int $cols))) ".0" "" }}
{{ end }}
{{ end }}
{{- if not $paginate -}}
{{- $list = first $max $list -}}
{{- $max = math.Min ($args.max | default $count) $count -}}
{{- if not $args.paginate -}}
{{- $elements = first $max $elements -}}
{{- end -}}
{{- if and (eq $cols "1") (eq $orientation "horizontal") }}{{ $orientation = "horizontal-sm" }}{{ end -}}
{{/* Initialize grid and layout */}}
{{- $sizes := "100vw" }}
{{- $colGrid := "" -}}
{{ if not $args.scroll }}
{{ $colGrid = index $colsMap $args.cols }}
{{ if $args.responsive }}{{ $sizes = index $sizesMap $args.cols }}{{ end }}
{{ else }}
{{ if in (slice "2" "3" "4" "5") $args.cols }}
{{ $sizes = replace (printf "%.1fvw" (div 100.0 (int $args.cols))) ".0" "" }}
{{ end }}
{{ end }}
{{- if and (eq $args.cols "1") (eq $orientation "horizontal") }}{{ $orientation = "horizontal-sm" }}{{ end -}}
{{ if not $args.spacer }}
{{ $class = printf "%s h-100" $class }}
{{ end }}
<!-- Main code -->
<div class="container-fluid {{ $wrapper }} {{ if $scroll }}card-container-wrapper{{ end }}">
<div class="row g-{{ $gutter }} {{ if $scroll }}d-flex flex-row flex-nowrap card-container scrollbar-horizontal pb-4 w-100 {{ end }} {{ $colGrid }}">
{{ range $index, $element := $list }}
{{- $params := (dict
"class" (printf " %s" $class)
"color" $color
"footer" $footer
"body" $body
"header" $header
"loading" $loading
"sizes" $sizes
"orientation" $orientation
"padding" $padding
"ratio" $ratio
"portrait" $portrait
"subtle" $subtle
"style" $style
"align" $align
"button" $button
"buttonLabel" $buttonLabel
"buttonType" $buttonType
"iconRounded" $iconRounded
) -}}
{{- $params = merge $element $params }}
<div class="{{ $args.wrapper }}">
<div class="container-fluid {{ if $args.scroll }}card-container-wrapper{{ end }} p-0">
<div class="row g-{{ $args.gutter }} {{ if $args.scroll }}d-flex flex-row flex-nowrap card-container scrollbar-horizontal pb-4 w-100 {{ end }}
{{ if $args.bento }}{{ with $args.valign }}align-items-{{ . }}{{ end }}{{ else }}{{ $colGrid }}{{ end }}">
{{ range $index, $element := $elements }}
{{- $params := (dict
"class" (printf " %s" $class)
"color" $args.color
"footer" $args.footer
"body" $args.body
"header" $args.header
"loading" $args.loading
"sizes" $sizes
"orientation" (partial "assets/style.html" (dict "styles" $args.styles "index" $index "key" "orientation" "default" $orientation))
"padding" $args.padding
"ratio" (partial "assets/style.html" (dict "styles" $args.styles "index" $index "key" "ratio" "default" $args.ratio))
"portrait" (partial "assets/style.html" (dict "styles" $args.styles "index" $index "key" "portrait" "default" $args.portrait))
"subtle" $args.subtle
"style" $args.style
"align" $args.align
"button" $args.button
"buttonLabel" $args.buttonLabel
"buttonType" $args.buttonType
"iconRounded" $args.iconRounded
) -}}
{{- $params = merge $element $params }}
<div class="{{ with $cardWrapper }}{{ . }}{{ else }}col{{ end }}">
{{ if $spacer }}<div class="spacer"></div>{{ end }}
{{- partial $hook $params -}}
</div>
{{- if and (lt $index (sub $max 1)) $separator -}}
<div class="col d-block d-sm-none">
<hr>
{{ if $args.scroll }}
{{ $width := (partial "assets/style.html" (dict "styles" $args.styles "index" $index "key" "width" "default" "3")) }}
{{ $size := $args.cols }}
{{ if and (gt $args.cols 1) (eq $width "6") }}{{ $size = sub (int $args.cols) 1 }}{{ end }}
{{ $cardWrapper = printf "card-block card-block-%d" (int $size) }}
{{ end }}
<!--add col-$width -->
<div class="{{ with $cardWrapper }}{{ . }}{{ else }}col{{ end }}">
{{ if $args.spacer }}<div class="spacer"></div>{{ end }}
{{- partial $args.hook $params -}}
</div>
{{- if and (lt $index (sub $max 1)) $args.separator -}}
<div class="col d-block d-sm-none">
<hr>
</div>
{{- end -}}
{{- end -}}
{{- end -}}
{{ if $cards }}{{- print $cards | safeHTML }}{{ end }}
{{ if $args.cards }}{{- print $args.cards | safeHTML }}{{ end }}
</div>
</div>
{{ if $paginator }}
{{- if gt $paginator.TotalPages 1 -}}
<div class="pt-3">{{ partial "assets/pagination.html" (dict "page" $page "format" "terse") }}</div>
<div class="pt-3">{{ partial "assets/pagination.html" (dict "page" $args.page "format" "terse") }}</div>
{{- end -}}
{{ else }}
{{ if and (gt $count $max) $moreTitle }}
<a class="btn btn-outline-primary mt-4" href="{{ $moreURL| safeURL }}" role="button">{{ $moreTitle }}</a>
{{ if and (gt $count $max) $args.hrefTitle }}
<a class="btn btn-outline-primary mt-4" href="{{ $args.href| safeURL }}" role="button">{{ $args.hrefTitle }}</a>
{{ end }}
{{ end }}
</div>

View File

@@ -80,7 +80,8 @@
{{ end }}
{{- if eq $orientation "none" }}{{ $thumbnail = "" }}{{ $icon = "" }}{{ end -}}
{{- if eq $body "none" }}{{ $description = "" }}{{ end -}}
{{- if eq $body "title" }}{{ $description = "" }}{{ end -}}
{{- if eq $body "none" }}{{ $title = "" }}{{ $description = "" }}{{ end -}}
<!-- Inline partial to render the card's body -->
{{- define "partials/card-body.html" -}}
@@ -216,6 +217,7 @@
</div>
{{- else -}}
<!-- Render stacked / default card -->
{{ $overlay := eq $orientation "overlay" }}
<div class="card {{ $colorStyle }} {{ $class }} text-{{ $align }}">
{{- if $thumbnail -}}
{{- partial $hook (dict "url" $thumbnail "ratio" (or $ratio "16x9") "portrait" $portrait "anchor" $anchor "sizes" $sizes "wrapper" "card-img-wrap" "class" "card-img-top card-img-bg" "title" (or $alt $title) "loading" $loading) -}}
@@ -229,7 +231,8 @@
{{ end }}
</div>
{{- end -}}
<div class="card-body d-flex flex-column p-{{ $padding }}">
<div class="card-body d-flex flex-column p-{{ $padding }} {{ if $overlay }}card-img-overlay card-overlay-gradient p-4{{ end }}" {{ if $overlay }}data-bs-theme="dark"{{ end }}>
{{ if $overlay }}<div class="flex-grow-1"></div>{{ end }}
{{ if $page }}{{- partial "card-caption.html" (dict "page" $page "keywords" $header "color" $color) -}}{{ end }}
{{- partial "card-body.html" (dict "title" $title "href" $href "color" $color "description" $description) -}}
{{ if $page }}{{- partial "card-caption.html" (dict "page" $page "keywords" $footer "color" $color) -}}{{ end }}

View File

@@ -24,19 +24,17 @@
{{- $class := delimit $main " " -}}
{{ if or $sortable $paging $searchable }}{{ $class = trim (printf "%s data-table" $class) " " }}{{ end }}
{{- $input := $input | $page.RenderString }}
{{- $input = replace $input "style=\"text-align:left\"" "class=\"text-start\"" -}}
{{- $input = replace $input "style=\"text-align:center\"" "class=\"text-center\"" -}}
{{- $input = replace $input "style=\"text-align:right\"" "class=\"text-end\"" -}}
{{ $regex := `<table\s*class="(.+?)"` }}
{{ $current := (index (index (findRESubmatch $regex $input) 0) 1) }}
{{ $target := delimit (((split $current " ") | append "table" | append $class) | uniq) " " }}
{{ $attributes := "" }}
{{ if $sortable }}{{ $attributes = printf "%s data-table-sortable=true" $attributes }}{{ end }}
{{ if $paging }}{{ $attributes = printf "%s data-table-paging=true" $attributes }}{{ end }}
{{ if $searchable }}{{ $attributes = printf "%s data-table-searchable=true" $attributes }}{{ end }}
{{- $old := "<table>" -}}
{{- $new := printf "<table class=\"table %s\" %s>" $class (trim $attributes " ") -}}
{{ $input := replace $input $old $new -}}
{{- $new := printf `<table class="%s" %s` $target (trim $attributes " ") -}}
{{ $input := replaceRE $regex $new $input 1 -}}
{{- with $responsive }}<div class="{{ delimit . " " }}">{{ end -}}
{{ $input | safeHTML }}
{{- with $responsive }}</div>{{ end -}}

View File

@@ -95,7 +95,6 @@
{{ $padding := "56.25%" }}
{{- $dnt := cond $pc.EnableDNT 1 0 -}}
{{- $source := urls.JoinPath "https://vimeo.com" $id -}}
{{- $query := querify "url" $url "dnt" $dnt -}}
{{- $api := printf "https://vimeo.com/api/oembed.json?%s" $query -}}
{{- with resources.GetRemote $api -}}
@@ -123,10 +122,10 @@
{{ with $params }}{{ $url = print $url . }}{{ end }}
{{ $padding := "56.25%" }}
{{ $thumbnail := urls.JoinPath (path.Dir $id) (printf "%s.jpg" (path.BaseName $id)) }}
{{ $thumbnail := partial "utilities/URLJoin.html" (dict "base" (path.Dir $id) "path" (printf "%s.jpg" (path.BaseName $id))) }}
{{ $metadata := partial "assets/helpers/image-dimension.html" (dict
"page" $page
"url" (printf "https://res.cloudinary.com/%s/video/upload/%s" $account $thumbnail)
"url" (printf "https://res.cloudinary.com/%s/video/upload/%s" $account (path.Clean $thumbnail))
"ratio" $ratio
"imageset" false
) }}

View File

@@ -73,7 +73,7 @@
{{ end }}
{{- if site.Params.style.purge -}}
{{- $post_options := dict "config" "config" "noMap" hugo.IsProduction -}}
{{- $css = $css | resources.PostCSS $post_options -}}
{{- $css = $css | css.PostCSS $post_options -}}
{{- end -}}
{{- if not hugo.IsProduction -}}

View File

@@ -30,20 +30,21 @@
{{ end }}
<!-- Main code -->
{{ if or $sortable $paging $searchable }}{{ $class = trim (printf "%s data-table" $class) " " }}{{ end }}
{{ if or $sortable $paging $searchable }}{{ $class = trim (printf "%s data-table" $class) " " }}{{ end }}
{{- $input := .Inner | .Page.RenderString }}
{{- $input = replace $input "style=\"text-align:left\"" "class=\"text-start\"" -}}
{{- $input = replace $input "style=\"text-align:center\"" "class=\"text-center\"" -}}
{{- $input = replace $input "style=\"text-align:right\"" "class=\"text-end\"" -}}
{{ $regex := `<table\s*class="(.+?)"` }}
{{ $current := (index (index (findRESubmatch $regex $input) 0) 1) }}
{{ $target := delimit (((split $current " ") | append "table" | append $class) | uniq) " " }}
{{ $attributes := "" }}
{{ if $sortable }}{{ $attributes = printf "%s data-table-sortable=true" $attributes }}{{ end }}
{{ if $paging }}{{ $attributes = printf "%s data-table-paging=true" $attributes }}{{ end }}
{{ if $searchable }}{{ $attributes = printf "%s data-table-searchable=true" $attributes }}{{ end }}
{{- $old := "<table>" -}}
{{- $new := printf "<table class=\"table %s\" %s>" $class (trim $attributes " ") -}}
{{ $input := replace $input $old $new -}}
{{- $new := printf `<table class="%s" %s` $target (trim $attributes " ") -}}
{{ $input := replaceRE $regex $new $input 1 -}}
{{ if not $error }}
{{ if eq $breakpoint "none" }}
{{ $input | safeHTML }}

2244
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "@gethinode/hinode",
"version": "0.26.6",
"version": "0.27.0-alpha2",
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
"keywords": [
"hugo",
@@ -69,19 +69,16 @@
"dependencies": {
"@fullhuman/postcss-purgecss": "^6.0.0",
"autoprefixer": "^10.4.20",
"cssnano": "^7.0.5",
"cssnano-preset-advanced": "^7.0.5",
"hugo-bin": "0.130.1",
"cssnano": "^7.0.6",
"cssnano-preset-advanced": "^7.0.6",
"hugo-bin": "0.131.1",
"purgecss-whitelister": "^2.4.0"
},
"devDependencies": {
"@gethinode/netlify-plugin-dartsass": "^0.3.0",
"eslint": "^8.57.0",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-n": "^16.6.2",
"eslint-plugin-promise": "^6.6.0",
"markdownlint-cli2": "^0.13.0",
"eslint": "^9.9.1",
"markdownlint-cli2": "^0.14.0",
"neostandard": "^0.11.4",
"netlify-plugin-hugo-cache-resources": "^0.2.1",
"npm-run-all": "^4.1.5",
"postcss-cli": "^11.0.0",

View File

@@ -6,7 +6,7 @@ homepage = "https://gethinode.com"
demosite = "https://demo.gethinode.com"
tags = ["blog", "documentation", "minimal", "modern", "customizable", "search", "bootstrap"]
features = ["security aware", "fast by default", "seo-ready", "development tools", "bootstrap framework", "netlify-ready", "full text search", "page layouts", "versioned documentation"]
min_version = "0.132.0"
min_version = "0.134.0"
[author]
name = "Mark Dumay"