Compare commits

...

41 Commits

Author SHA1 Message Date
Mark Dumay
713d1920a3 Merge pull request #703 from gethinode/validation
Bump package release
2024-01-04 15:14:21 +01:00
Mark Dumay
adc1212cd7 Merge branch 'main' into validation 2024-01-04 14:56:10 +01:00
mark
b8803d75fe Bump package release 2024-01-04 14:55:34 +01:00
github-actions[bot]
8006acb8c9 Merge pull request #702 from gethinode/dependabot/npm_and_yarn/cssnano-preset-advanced-6.0.3
Bump cssnano-preset-advanced from 6.0.2 to 6.0.3
2024-01-04 13:38:16 +00:00
dependabot[bot]
7be7e3b7f0 Bump cssnano-preset-advanced from 6.0.2 to 6.0.3
Bumps [cssnano-preset-advanced](https://github.com/cssnano/cssnano) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/cssnano/cssnano/releases)
- [Commits](https://github.com/cssnano/cssnano/compare/cssnano-preset-advanced@6.0.2...cssnano-preset-advanced@6.0.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-04 13:32:05 +00:00
github-actions[bot]
a6c18c91e5 Merge pull request #701 from gethinode/dependabot/npm_and_yarn/cssnano-6.0.3
Bump cssnano from 6.0.2 to 6.0.3
2024-01-04 13:31:17 +00:00
dependabot[bot]
81c531e2b5 Bump cssnano from 6.0.2 to 6.0.3
Bumps [cssnano](https://github.com/cssnano/cssnano) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/cssnano/cssnano/releases)
- [Commits](https://github.com/cssnano/cssnano/compare/cssnano@6.0.2...cssnano@6.0.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-04 13:24:59 +00:00
Mark Dumay
d66910740f Merge pull request #700 from gethinode/validation
Bump package release
2024-01-04 08:09:05 +01:00
Mark Dumay
3323bf500d Merge branch 'main' into validation 2024-01-03 19:00:21 +01:00
mark
3cc34d18e0 Bump package release 2024-01-03 18:59:49 +01:00
Mark Dumay
aeb050440f Merge pull request #699 from gethinode/validation
Fix alignment of cards in group
2024-01-03 17:34:29 +01:00
Mark Dumay
a9a6bd0d31 Merge branch 'main' into validation 2024-01-03 17:04:57 +01:00
Mark Dumay
2b921def52 Merge pull request #698 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2024-01-03 17:04:21 +01:00
mark
f5a1a97383 Fix alignment of cards in group 2024-01-03 16:59:05 +01:00
markdumay
c87b96f8f0 fix: update Hugo module dependencies 2024-01-03 15:57:10 +00:00
Mark Dumay
1def105bda Merge pull request #697 from gethinode/validation
Keep HTML whitespace to improve external cue visualization
2024-01-03 16:07:45 +01:00
Mark Dumay
1d67a30ece Merge branch 'main' into validation 2024-01-03 16:01:48 +01:00
mark
1a3d50ca17 Keep HTML whitespace to improve external cue visualiation 2024-01-03 15:40:30 +01:00
Mark Dumay
ce26722c96 Merge pull request #696 from gethinode/validation
Refactor argument validation of internal partials
2024-01-03 14:25:22 +01:00
Mark Dumay
f2aab26b6e Merge branch 'main' into validation 2024-01-03 14:15:39 +01:00
mark
10e086594b Structure validation of section-menu args 2024-01-03 14:11:37 +01:00
mark
30ea77182d Structure validation of sharing args 2024-01-03 14:06:53 +01:00
mark
e899d7d39a Structure validation of sidebar args 2024-01-03 13:39:48 +01:00
mark
3b2e780a20 Fix typo 2024-01-03 13:25:04 +01:00
mark
d443d89616 Structure validation of toc-dropdown args 2024-01-03 13:17:18 +01:00
mark
c981ac45d3 Structure validation of toc args 2024-01-03 13:11:15 +01:00
mark
ceabca3a43 Structure validation of section-header args 2024-01-03 13:03:04 +01:00
mark
99b6fcbc42 Adjust indentation 2024-01-03 12:59:06 +01:00
mark
dde79bf5d0 Structure validation of pagination args 2024-01-03 09:14:36 +01:00
mark
ff3e957558 Structure validation of page-alert args 2024-01-03 08:59:34 +01:00
mark
1466c7a927 Fix error message 2024-01-03 08:59:21 +01:00
mark
1a7c18d209 Structure validation of navbar-item args 2024-01-03 08:53:48 +01:00
mark
2c8ed7c494 Structure validation of list args 2024-01-03 08:02:42 +01:00
mark
0526b4c5e0 Adjust indentation 2024-01-03 08:02:04 +01:00
mark
c2f4e6bc48 Refine layout 2024-01-03 07:24:50 +01:00
mark
0cc5fcb33a Refine comments 2024-01-03 07:24:25 +01:00
mark
e461a9564f Adjust line breaks 2024-01-03 07:24:12 +01:00
Mark Dumay
183879d51c Merge pull request #695 from gethinode/validation
Drop built-in comments support
2024-01-02 15:53:53 +01:00
Mark Dumay
cddae05b53 Merge branch 'main' into validation 2024-01-02 15:44:49 +01:00
mark
67d831d898 Bump package release 2024-01-02 15:37:40 +01:00
mark
d726323220 Close #694 2024-01-02 15:36:45 +01:00
51 changed files with 592 additions and 390 deletions

View File

@@ -136,7 +136,6 @@ The `hinode`, `docs`, and `template` codebase is released under the [MIT license
[npm]: https://www.npmjs.com [npm]: https://www.npmjs.com
[observatory]: https://observatory.mozilla.org/analyze/demo.gethinode.com [observatory]: https://observatory.mozilla.org/analyze/demo.gethinode.com
[pagespeed]: https://pagespeed.web.dev/report?url=https%3A%2F%2Fdemo.gethinode.com%2F [pagespeed]: https://pagespeed.web.dev/report?url=https%3A%2F%2Fdemo.gethinode.com%2F
[utterances]: https://utteranc.es
<!-- MARKDOWN MAINTAINED LINKS --> <!-- MARKDOWN MAINTAINED LINKS -->
[contribute]: https://gethinode.com/contribute [contribute]: https://gethinode.com/contribute

View File

@@ -24,7 +24,6 @@
@import "components/carousel.scss"; @import "components/carousel.scss";
@import "components/clipboard.scss"; @import "components/clipboard.scss";
@import "components/command.scss"; @import "components/command.scss";
@import "components/comments.scss";
@import "components/feature.scss"; @import "components/feature.scss";
@import "components/footer.scss"; @import "components/footer.scss";
@import "components/nav.scss"; @import "components/nav.scss";

View File

@@ -22,7 +22,6 @@
@import "components/carousel.scss"; @import "components/carousel.scss";
@import "components/clipboard.scss"; @import "components/clipboard.scss";
@import "components/command.scss"; @import "components/command.scss";
@import "components/comments.scss";
@import "components/feature.scss"; @import "components/feature.scss";
@import "components/footer.scss"; @import "components/footer.scss";
@import "components/nav.scss"; @import "components/nav.scss";

View File

@@ -1,20 +0,0 @@
.utterances {
position: relative;
box-sizing: border-box;
width: 100%;
max-width: 760px;
margin-left: auto;
margin-right: auto;
}
.utterances-frame {
color-scheme: light;
position: absolute;
left: 0;
right: 0;
width: 1px;
min-width: 100%;
max-width: 100%;
height: 100%;
border: 0;
}

View File

@@ -89,6 +89,8 @@ home = ["HTML", "RSS", "REDIR"]
keepVarNames = true keepVarNames = true
precision = 0 precision = 0
version = 2022 version = 2022
[minify.tdewolff.html]
keepWhitespace = true
[module] [module]
[module.hugoVersion] [module.hugoVersion]

View File

@@ -189,14 +189,5 @@
images = ["logo.png"] images = ["logo.png"]
locale = "en_US" locale = "en_US"
[comments]
enabled = false
repo = "" # Replace with your repository.
#issueTerm = "pathname" # pathname, url, title, og:title
#label = "comment"
# By default, light and dark mode correspond to github-light and github-dark, respectively.
# Optional values: github-light, github-dark, preferred-color-scheme, github-dark-orange, icy-dark, dark-blue, photon-dark.
#theme = ""
[links] [links]
hinode = "https://gethinode.com" hinode = "https://gethinode.com"

View File

@@ -7,15 +7,14 @@ for = '/**'
X-XSS-Protection = "1; mode=block" X-XSS-Protection = "1; mode=block"
Content-Security-Policy = """\ Content-Security-Policy = """\
default-src 'self'; \ default-src 'self'; \
script-src 'self' \ script-src 'self' https://*.google-analytics.com https://*.googletagmanager.com; \
https://utteranc.es/client.js https://*.google-analytics.com https://*.googletagmanager.com; \ style-src 'self' https://fonts.googleapis.com https://www.youtube.com; \
style-src 'self' https://utteranc.es https://fonts.googleapis.com https://www.youtube.com; \
object-src 'none'; \ object-src 'none'; \
base-uri 'self'; \ base-uri 'self'; \
connect-src 'self' connect-src 'self'
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \ https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
font-src 'self' https://fonts.gstatic.com; \ font-src 'self' https://fonts.gstatic.com; \
frame-src 'self' https://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com; \ frame-src 'self' https://www.youtube-nocookie.com https://www.youtube.com; \
img-src 'self' data: https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \ img-src 'self' data: https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \
manifest-src 'self'; \ manifest-src 'self'; \
media-src 'self' \ media-src 'self' \

View File

@@ -1,9 +1,11 @@
comment: >- comment: >-
Creates an HTML element that shows the long form of an abbrevitation. The abbreviation data is centrally stored in a Creates an HTML element that shows the long form of an abbrevitation. The
data file. By default, the shortcode uses `abbr.yaml` with translation support. abbreviation data is centrally stored in a data file. By default, the
shortcode uses `abbr.yaml` with translation support.
The data file is expected to store key-value pairs, where `id` is the lower-case abbrevation and `long` its long The data file is expected to store key-value pairs, where `id` is the
form. The following example illustrates this using YML: lower-case abbrevation and `long` its long form. The following example
illustrates this using YML:
- id: css - id: css
long: `Cascading Style Sheets` long: `Cascading Style Sheets`

View File

@@ -1,22 +1,18 @@
comment: >- comment: Use the badge shortcode to enrich headings.
Use the badge shortcode to enrich headings.
arguments: arguments:
title: title:
type: string type: string
optional: false optional: false
comment: >- comment: Title of the badge.
Title of the badge.
class: class:
type: string type: string
optional: true optional: true
comment: >- comment: Class attribute of the badge element.
Class attribute of the badge element.
color: color:
type: select type: select
optional: true optional: true
default: secondary default: secondary
comment: >- comment: Theme color of the element.
Theme color of the element.
options: options:
values: values:
- primary - primary

View File

@@ -6,19 +6,16 @@ arguments:
- string - string
- template.HTML - template.HTML
optional: true optional: true
comment: >- comment: Title of the button, required unless icon is set.
Title of the button, required unless icon is set.
class: class:
type: string type: string
optional: true optional: true
comment: >- comment: Class attribute of the button element, e.g. `p-5`.
Class attribute of the button element, e.g. `p-5`.
color: color:
type: select type: select
optional: true optional: true
default: primary default: primary
comment: >- comment: Theme color of the element.
Theme color of the element.
options: options:
values: values:
- primary - primary

55
data/structures/list.yml Normal file
View File

@@ -0,0 +1,55 @@
comment: >-
Displays a list of items with a thumbnail alternating between left and right
alignment.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Required context of the current page.
group: partial
list:
type:
- 'page.Pages'
- 'resource.Resources'
optional: false
comment: Required array of pages.
group: partial
title:
type: string
optional: true
comment: Optional title of the card group.
loading:
type: select
default: eager
optional: true
comment: >-
Loading behavior of the image. The loading of lazily loaded images is
deferred until the image is within scrolling range of the viewport. This
should reduce the initial loading time of the website. It is recommended
to lazily load only those images that are below the pagefold.
options:
values:
- eager
- lazy
class:
type: string
optional: true
comment: Class attribute of the tab element, e.g. “w-50”.
color:
type: select
optional: true
comment: >-
Theme color of the element.
options:
values:
- primary
- secondary
- success
- danger
- warning
- info
- light
- dark
- body

View File

@@ -0,0 +1,34 @@
comment: >-
Defines an individual item of the navigation bar.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial
menu:
type: '*navigation.MenuEntry'
optional: false
comment: Menu data to use for the navbar item.
parent:
type: '*navigation.MenuEntry'
optional: true
comment: Parent of the current navbar item.
class:
type: string
optional: true
comment: Class attribute of the item.
cue:
type: bool
optional: true
comment: >-
Flag to indicate if an external link should show a visual cue, defaults
to the setting `main.externalLinks.cue` in the site's parameters.
tab:
type: bool
optional: true
comment: >-
Flag to indicate if an external link should open in a new tab, defaults
to setting `main.externalLinks.tab` in the site's parameters.

View File

@@ -0,0 +1,14 @@
comment: >-
Adds a dismissible alert message to the top of the page, above the main menu.
The alert uses the following scratch variables:
- pageAlertMsg
- pageAlertURL
- version
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial

View File

@@ -0,0 +1,21 @@
comment: >-
Adds a pagination element to a page. This allows to split long lists across
multiple pages to ease navigation. Set 'paginate' in the site configuration to
define the maximum amount of items to display on a list page.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial
format:
type: select
optional: true
default: default
comment:
options:
values:
- default
- terse

View File

@@ -0,0 +1,16 @@
comment: Renders the header of a page section.
arguments:
title:
type: string
optional: true
comment: Title of the section.
description:
type: string
optional: true
comment: Section description.
content:
type:
- string
- template.HTML
optional: true
comment: Section content.

View File

@@ -0,0 +1,9 @@
comment: Renders the section menu of a single page.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial

View File

@@ -0,0 +1,9 @@
comment: Renders the social sharing buttons for a single page.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial

View File

@@ -0,0 +1,24 @@
comment: >-
Renders the sidebar navigation of a single page. It is intended to be used as
companion to the main navigation and is typically used in content-heavy
sections, such as documentation pages. On smaller screens, the sidebar is
replaced with an offcanvas element. In this case, the main navigation receives
an additional toggler on the left of the screen.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial
menu:
type: '[]interface {}'
optional: true
comment: Path of the sidebar navigation menu.
version:
type: string
optional: true
comment: >-
Version of the sidebar navigation, used to define the base URL of
generated links, together with the page's section.

View File

@@ -5,7 +5,8 @@ arguments:
type: string type: string
optional: true optional: true
comment: >- comment: >-
ID of the toast message, defaults to `toast-message-n` with sequence n. Unique identifier of the toast message, defaults to `toast-message-n`
with sequence n.
header: header:
type: string type: string
optional: true optional: true

9
data/structures/toc.yml Normal file
View File

@@ -0,0 +1,9 @@
comment: Renders the table of contents of a single page.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial

View File

@@ -79,6 +79,8 @@ home = ["HTML", "RSS", "REDIR"]
keepVarNames = true keepVarNames = true
precision = 0 precision = 0
version = 2022 version = 2022
[minify.tdewolff.html]
keepWhitespace = true
[module] [module]
replacements = 'github.com/gethinode/hinode -> ../..' replacements = 'github.com/gethinode/hinode -> ../..'

View File

@@ -181,15 +181,6 @@
images = ["logo.png"] images = ["logo.png"]
locale = "en_US" locale = "en_US"
[comments]
enabled = false
repo = "" # Replace with your repository.
#issueTerm = "pathname" # pathname, url, title, og:title
#label = "comment"
# By default, light and dark mode correspond to github-light and github-dark, respectively.
# Optional values: github-light, github-dark, preferred-color-scheme, github-dark-orange, icy-dark, dark-blue, photon-dark.
#theme = ""
[links] [links]
bs_badge_heading = "https://getbootstrap.com/docs/5.3/components/badge/#headings" bs_badge_heading = "https://getbootstrap.com/docs/5.3/components/badge/#headings"
hinode_docs = "https://gethinode.com" hinode_docs = "https://gethinode.com"
@@ -197,5 +188,4 @@
mozilla_image = "https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images" mozilla_image = "https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images"
observatory = "https://observatory.mozilla.org/analyze/demo.gethinode.com" observatory = "https://observatory.mozilla.org/analyze/demo.gethinode.com"
pagespeed = "https://pagespeed.web.dev/report?url=https%3A%2F%2Fdemo.gethinode.com%2F" pagespeed = "https://pagespeed.web.dev/report?url=https%3A%2F%2Fdemo.gethinode.com%2F"
utterances = "https://utteranc.es"
hinode = "https://gethinode.com" hinode = "https://gethinode.com"

View File

@@ -7,15 +7,14 @@ for = '/**'
X-XSS-Protection = "1; mode=block" X-XSS-Protection = "1; mode=block"
Content-Security-Policy = """\ Content-Security-Policy = """\
default-src 'self'; \ default-src 'self'; \
script-src 'self' \ script-src 'self' https://*.google-analytics.com https://*.googletagmanager.com; \
https://utteranc.es/client.js https://*.google-analytics.com https://*.googletagmanager.com; \ style-src 'self' https://fonts.googleapis.com https://www.youtube.com; \
style-src 'self' https://utteranc.es https://fonts.googleapis.com https://www.youtube.com; \
object-src 'none'; \ object-src 'none'; \
base-uri 'self'; \ base-uri 'self'; \
connect-src 'self' connect-src 'self'
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \ https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
font-src 'self' https://fonts.gstatic.com; \ font-src 'self' https://fonts.gstatic.com; \
frame-src 'self' https://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com; \ frame-src 'self' https://www.youtube-nocookie.com https://www.youtube.com; \
img-src 'self' data: https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \ img-src 'self' data: https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \
manifest-src 'self'; \ manifest-src 'self'; \
media-src 'self' \ media-src 'self' \

View File

@@ -26,7 +26,6 @@ Additional features include:
* Support for multiple languages * Support for multiple languages
* Reusable Bootstrap components through configurable shortcodes and partials * Reusable Bootstrap components through configurable shortcodes and partials
* Versioned documentation, including sidebar navigation and version switcher * Versioned documentation, including sidebar navigation and version switcher
* Embedded comments through light-weight integration with GitHub via [utteranc.es]({{< param "links.utterances" >}})
* Reponsive image handling for multiple screen sizes and resolutions * Reponsive image handling for multiple screen sizes and resolutions
* Optimized search results, scoring 100 points for SEO on [PageSpeed Insights]({{< param "links.pagespeed" >}}) * Optimized search results, scoring 100 points for SEO on [PageSpeed Insights]({{< param "links.pagespeed" >}})
* Secure by default, scoring A+ on [Mozilla Observatory test]({{< param "links.observatory" >}}) * Secure by default, scoring A+ on [Mozilla Observatory test]({{< param "links.observatory" >}})

View File

@@ -27,7 +27,6 @@ Les fonctionnalités supplémentaires incluent:
- Prise en charge de plusieurs langues - Prise en charge de plusieurs langues
- Composants bootstrap réutilisables à travers des codes et partiels configurables - Composants bootstrap réutilisables à travers des codes et partiels configurables
- Documentation versionnée, incluant une navigation latérale et un sélecteur de version. - Documentation versionnée, incluant une navigation latérale et un sélecteur de version.
- Commentaires intégrés via une intégration légère avec GitHub via [utteranc.es]({{< param "links.utterances" >}})
- Gestion d'images adaptatives pour plusieurs tailles d'écran et résolutions. - Gestion d'images adaptatives pour plusieurs tailles d'écran et résolutions.
- Résultats de recherche optimisés, obtenant un score de 100 points pour le référencement (SEO) sur [PageSpeed Insights]({{< param "links.pagespeed" >}}). - Résultats de recherche optimisés, obtenant un score de 100 points pour le référencement (SEO) sur [PageSpeed Insights]({{< param "links.pagespeed" >}}).
- Sécurisé par défaut, obtenant un score A+ au test [Mozilla Observatory]({{< param "links.observatory" >}}) - Sécurisé par défaut, obtenant un score A+ au test [Mozilla Observatory]({{< param "links.observatory" >}})

View File

@@ -28,7 +28,6 @@ Overige functies:
* Ondersteuning voor meerdere talen * Ondersteuning voor meerdere talen
* Herbruikbare Bootstrap componenten via shortcodes en partials * Herbruikbare Bootstrap componenten via shortcodes en partials
* Versiebeheer van documentatiepagina's, inclusief secundaire navigatie en selectie van versies * Versiebeheer van documentatiepagina's, inclusief secundaire navigatie en selectie van versies
* Integreren van commentaar via [utteranc.es]({{< param "links.utterances" >}})
* Optimalisering van foto's voor meerdere schermafmetingen en resoluties * Optimalisering van foto's voor meerdere schermafmetingen en resoluties
* Optimale zoekresultaten, met 100 punten voor SEO volgens [PageSpeed Insights]({{< param "links.pagespeed" >}}) * Optimale zoekresultaten, met 100 punten voor SEO volgens [PageSpeed Insights]({{< param "links.pagespeed" >}})
* Veilige communicatie, met een score van A+ volgens [Mozilla Observatory]({{< param "links.observatory" >}}) * Veilige communicatie, met een score van A+ volgens [Mozilla Observatory]({{< param "links.observatory" >}})

2
go.mod
View File

@@ -5,7 +5,7 @@ go 1.19
require ( require (
github.com/airbnb/lottie-web v5.12.2+incompatible // indirect github.com/airbnb/lottie-web v5.12.2+incompatible // indirect
github.com/gethinode/mod-bootstrap v1.2.2 // indirect github.com/gethinode/mod-bootstrap v1.2.2 // indirect
github.com/gethinode/mod-flexsearch v1.7.1 // indirect github.com/gethinode/mod-flexsearch v1.8.0 // indirect
github.com/gethinode/mod-fontawesome v1.8.0 // indirect github.com/gethinode/mod-fontawesome v1.8.0 // indirect
github.com/gethinode/mod-katex v1.0.5 // indirect github.com/gethinode/mod-katex v1.0.5 // indirect
github.com/gethinode/mod-leaflet v0.4.0 // indirect github.com/gethinode/mod-leaflet v0.4.0 // indirect

2
go.sum
View File

@@ -40,6 +40,8 @@ github.com/gethinode/mod-flexsearch v1.7.0 h1:VFTf6iUyT9b47jTDAxh8nVHU1eUBrdxlyk
github.com/gethinode/mod-flexsearch v1.7.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4= github.com/gethinode/mod-flexsearch v1.7.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.7.1 h1:f4rjKkhleDVzqwUmwP1xZdhjru5VQ9g0MRDz0G6oLyY= github.com/gethinode/mod-flexsearch v1.7.1 h1:f4rjKkhleDVzqwUmwP1xZdhjru5VQ9g0MRDz0G6oLyY=
github.com/gethinode/mod-flexsearch v1.7.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4= github.com/gethinode/mod-flexsearch v1.7.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.8.0 h1:rKu9ackmbGAD/CRJYUDUhy/3nDCEj0IgYDiL1bkwzDc=
github.com/gethinode/mod-flexsearch v1.8.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-fontawesome v1.0.2 h1:ZSK6D20/w4y5GnfYfTBB58uHD0ChIfkpKfRGwioS9rg= github.com/gethinode/mod-fontawesome v1.0.2 h1:ZSK6D20/w4y5GnfYfTBB58uHD0ChIfkpKfRGwioS9rg=
github.com/gethinode/mod-fontawesome v1.0.2/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI= github.com/gethinode/mod-fontawesome v1.0.2/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.1.0 h1:rsDzUI+3ZlS/do2ff3ne8/z3KwHeysmuA+WsXlumXXk= github.com/gethinode/mod-fontawesome v1.1.0 h1:rsDzUI+3ZlS/do2ff3ne8/z3KwHeysmuA+WsXlumXXk=

View File

@@ -9,7 +9,7 @@
{{ with .Title }}<p id="{{ anchorize . }}" class="display-4 mt-5{{ if and $.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }} {{ with .Title }}<p id="{{ anchorize . }}" class="display-4 mt-5{{ if and $.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
{{ end }} {{ end }}
{{ if (.Params.menu) }} {{ if (.Params.menu) }}
{{- partial "assets/section-menu.html" . -}} {{- partial "assets/section-menu.html" (dict "page" .) -}}
{{- end -}} {{- end -}}
{{- $loading := "" -}} {{- $loading := "" -}}
{{- if or (eq $layout "featured") .IsHome -}} {{- if or (eq $layout "featured") .IsHome -}}

View File

@@ -5,15 +5,11 @@
{{ .Render "single/header" }} {{ .Render "single/header" }}
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}} {{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}}
<div class="d-{{ $breakpoint.current }}-none pb-5">{{ partial "assets/toc-dropdown.html" . }}</div> <div class="d-{{ $breakpoint.current }}-none pb-5">{{ partial "assets/toc-dropdown.html" (dict "page" .) }}</div>
{{- end -}} {{- end -}}
{{ .Render "single/body" }} {{ .Render "single/body" }}
{{ .Render "single/footer" }} {{ .Render "single/footer" }}
{{- if and .Site.Params.comments.enabled .Params.showComments | default true -}}
<hr>
{{ partial "assets/comments.html" . }}
{{ end -}}
{{ end -}} {{ end -}}
{{ define "main" -}} {{ define "main" -}}

View File

@@ -48,5 +48,5 @@
</div> </div>
</div> </div>
{{- end -}} {{- end -}}
{{ partial "assets/sharing.html" . }} {{ partial "assets/sharing.html" (dict "page" .) }}
<p class="lead mb-5 mt-3">{{ .Description }}</p> <p class="lead mb-5 mt-3">{{ .Description }}</p>

View File

@@ -37,6 +37,6 @@
{{ end }} {{ end }}
{{ if $toc }} {{ if $toc }}
{{ partial "assets/toc.html" (dict "page" . "download" $download) }} {{ partial "assets/toc.html" (dict "page" .) }}
{{ end -}} {{ end -}}
</div> </div>

View File

@@ -1,3 +1,3 @@
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }} {{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
{{ partial "assets/sharing.html" . }} {{ partial "assets/sharing.html" (dict "page" .) }}
<p class="lead mb-5">{{ .Description }}</p> <p class="lead mb-5">{{ .Description }}</p>

View File

@@ -1,3 +1,3 @@
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }} {{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
{{ partial "assets/sharing.html" . }} {{ partial "assets/sharing.html" (dict "page" .) }}
<p class="lead mb-5">{{ .Description }}</p> <p class="lead mb-5">{{ .Description }}</p>

View File

@@ -85,7 +85,6 @@
"class" (printf "h-100 %s" $class) "class" (printf "h-100 %s" $class)
"color" $color "color" $color
"footer" $footer "footer" $footer
"gutter" $gutter
"header" $header "header" $header
"loading" $loading "loading" $loading
"orientation" $orientation "orientation" $orientation

View File

@@ -1,12 +0,0 @@
{{- $params := .Site.Params.comments -}}
{{- with $params -}}
<h2>{{ T "comments" }}</h2>
<script src="https://utteranc.es/client.js"
repo="{{ $params.repo }}"
issue-term="{{ default "pathname" $params.issueTerm }}"
label="{{ default "comment" $params.label }}"
theme="{{ default "github-light" $params.theme }}"
crossorigin="anonymous"
async>
</script>
{{- end -}}

View File

@@ -1,17 +1,7 @@
<!-- <!--
Displays a list items with a thumbnail alternating between left and right alignment. The partial supports the Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
following arguments: Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
"page" Required context of the current page. Visit gethinode.com/license for more details.
"list" Required array of pages.
"title" Optional title of the card group.
"type" Optional type of the tab group, either "tabs", "pills", or "underline".
"vertical" Optional flag to show vertical tabs instead of horizontal tabs (default).
"class": Optional class attribute of the tab group, e.g. “nav-fill”.
In addition, the following arguments are passed to the individual tabs.
"class" Optional class attribute of the tab element, e.g. “w-50”.
"color": Optional theme color of the tab, either "primary", "secondary", "success", "danger",
"warning", "info", "light", "dark", or "body". By default, no color is specified.
--> -->
<!-- Inline partial to render the list item's content --> <!-- Inline partial to render the list item's content -->
@@ -33,67 +23,63 @@
{{- partial "assets/image.html" (dict "url" $thumbnail "title" $title "wrapper" $style "mode" $mode "loading" $loading) -}} {{- partial "assets/image.html" (dict "url" $thumbnail "title" $title "wrapper" $style "mode" $mode "loading" $loading) -}}
{{- end -}} {{- end -}}
{{ $error := false }}
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "list" "args" . "group" "partial") }}
{{- errorf "partial [assets/list.html] - Invalid arguments" -}}
{{ $error = true }}
{{ end }}
<!-- Initialize arguments -->
{{- $page := .page -}} {{- $page := .page -}}
{{- if ne (printf "%T" $page) "*hugolib.pageState" -}} {{- $list := .list -}}
{{- errorf "partial [assets/list.html] - Invalid value for param 'page'" -}}
{{- end -}}
{{- $supportedTypes := slice "page.Pages" "resource.Resources" -}}
{{ $list := .list }}
{{- if not (in $supportedTypes (printf "%T" $list)) -}}
{{- errorf "partial [assets/list.html] - Invalid value for param 'list'" -}}
{{- end -}}
{{- $title := .title -}} {{- $title := .title -}}
{{- $class := .class -}} {{- $class := .class -}}
{{- $color := .color -}} {{- $color := .color -}}
{{- $loading := .loading -}}
{{ $vertical := false }} {{ $vertical := false }}
{{ $type := "pills" }} {{ $type := "pills" }}
{{- $loading := .loading -}} <!-- Main code -->
{{- $validSettings := slice "lazy" "eager" -}} {{ if not $error }}
{{- if $loading -}} <div class="d-none d-md-block p-0">
{{ if not (in $validSettings $loading) -}} {{- range $index, $item := $list -}}
{{- errorf "partial [assets/list.html] - Invalid value for param 'loading': %s" $loading -}} {{- $odd := eq (mod $index 2) 1 -}}
{{ end -}} {{- $thumbnail := (or (and (reflect.IsMap $item.Params.Thumbnail) $item.Params.Thumbnail.url) $item.Params.Thumbnail) -}}
{{- end -}} <div class="container ratio-section d-flex flex-column">
<div class="row pt-5 pb-5 align-items-center flex-fill row-cols-2">
<div class="d-none d-md-block p-0"> <div class="col-6{{ if $odd }} order-last{{ end }}">
{{- range $index, $item := $list -}} {{- $style := "reveal fade-bottom" -}}
{{- $odd := eq (mod $index 2) 1 -}} {{ if $item.Params.tilted }}
{{- $thumbnail := (or (and (reflect.IsMap $item.Params.Thumbnail) $item.Params.Thumbnail.url) $item.Params.Thumbnail) -}} {{- $style = "reveal fade-bottom-n5 rotate-n5 ps-3" -}}
<div class="container ratio-section d-flex flex-column"> {{- if $odd }}{{ $style = "reveal fade-bottom-5 rotate-5 pe-3" }}{{ end }}
<div class="row pt-5 pb-5 align-items-center flex-fill row-cols-2"> {{ end }}
<div class="col-6{{ if $odd }} order-last{{ end }}"> {{ partial "partials/list-img.html" (dict "thumbnail" $thumbnail "title" $item.Title "style" $style "mode" $item.Params.colormode "loading" $loading) }}
{{- $style := "reveal fade-bottom" -}} </div>
{{ if $item.Params.tilted }} <div class="col-6{{ if $odd }} order-first{{ end }} psw-lg-5 p-5">
{{- $style = "reveal fade-bottom-n5 rotate-n5 ps-3" -}} {{ partial "partials/list-content.html" (dict "title" $item.Title "content" (or $item.Description $item.Content)) }}
{{- if $odd }}{{ $style = "reveal fade-bottom-5 rotate-5 pe-3" }}{{ end }} </div>
{{ end }}
{{ partial "partials/list-img.html" (dict "thumbnail" $thumbnail "title" $item.Title "style" $style "mode" $item.Params.colormode "loading" $loading) }}
</div>
<div class="col-6{{ if $odd }} order-first{{ end }} psw-lg-5 p-5">
{{ partial "partials/list-content.html" (dict "title" $item.Title "content" (or $item.Description $item.Content)) }}
</div> </div>
</div> </div>
</div> {{ end -}}
{{ end -}} </div>
</div>
<div class="d-md-none"> <div class="d-md-none">
{{- range $index, $item := $list -}} {{- range $index, $item := $list -}}
{{- $odd := eq (mod $index 2) 1 -}} {{- $odd := eq (mod $index 2) 1 -}}
{{- $thumbnail := (or (and (reflect.IsMap $item.Params.Thumbnail) $item.Params.Thumbnail.url) $item.Params.Thumbnail) -}} {{- $thumbnail := (or (and (reflect.IsMap $item.Params.Thumbnail) $item.Params.Thumbnail.url) $item.Params.Thumbnail) -}}
<div class="container d-flex flex-column"> <div class="container d-flex flex-column">
<div class="row pt-5 pb-5 align-items-center flex-fill row-cols-2"> <div class="row pt-5 pb-5 align-items-center flex-fill row-cols-2">
<div class="col-12 text-center"> <div class="col-12 text-center">
{{ partial "partials/list-img.html" (dict "thumbnail" $thumbnail "title" $item.Title "mode" $item.Params.colormode "loading" $loading) }} {{ partial "partials/list-img.html" (dict "thumbnail" $thumbnail "title" $item.Title "mode" $item.Params.colormode "loading" $loading) }}
</div> </div>
<div class="col-12 p-3"> <div class="col-12 p-3">
{{ partial "partials/list-content.html" (dict "title" $item.Title "content" (partial "utilities/GetDescription.html" $item)) }} {{ partial "partials/list-content.html" (dict "title" $item.Title "content" (partial "utilities/GetDescription.html" $item)) }}
</div>
</div> </div>
</div> </div>
</div> {{ end -}}
{{ end -}} </div>
</div> {{ end }}

View File

@@ -1,22 +1,37 @@
<!--
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
-->
{{ $error := false }}
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "navbar-item" "args" . "group" "partial") }}
{{- errorf "partial [assets/navbar-item.html] - Invalid arguments" -}}
{{ $error = true }}
{{ end }}
<!-- Initialize arguments -->
{{- $page := .page -}}
{{- $menu := .menu -}} {{- $menu := .menu -}}
{{- $parent := .parent -}} {{- $parent := .parent -}}
{{- $page := .page -}}
{{- $class := .class -}} {{- $class := .class -}}
{{- $anchorClass := "" -}} {{- $cue := .cue | default site.Params.main.externalLinks.cue -}}
{{- $tab := .tab | default site.Params.main.externalLinks.tab -}}
{{- $menuURL := (or $menu.PageRef $menu.URL) | relLangURL -}} {{- $menuURL := (or $menu.PageRef $menu.URL) | relLangURL -}}
{{- $pageURL := $page.RelPermalink | relLangURL -}} {{- $pageURL := $page.RelPermalink | relLangURL -}}
{{- $isActive := or (and (hasPrefix $pageURL $menuURL) (ne $menuURL ("/" | relLangURL))) (eq $pageURL $menuURL) -}} {{- $isActive := or (and (hasPrefix $pageURL $menuURL) (ne $menuURL ("/" | relLangURL))) (eq $pageURL $menuURL) -}}
{{- $isAlias := $menu.Params.alias -}} {{- $isAlias := $menu.Params.alias -}}
{{- $isIcon := $menu.Params.icon -}} {{- $isIcon := $menu.Params.icon -}}
{{- $cue := .cue | default site.Params.main.externalLinks.cue -}}
{{- $tab := .tab | default site.Params.main.externalLinks.tab -}}
{{- $url := urls.Parse $menuURL -}} {{- $url := urls.Parse $menuURL -}}
{{- $baseURL := urls.Parse $.Site.Params.Baseurl -}} {{- $baseURL := urls.Parse $.Site.Params.Baseurl -}}
{{- $isExternal := ne $url.Host $baseURL.Host -}} {{- $isExternal := ne $url.Host $baseURL.Host -}}
{{- $externalHref := "" }} {{- $externalHref := "" }}
{{- $suffix := "" }} {{- $suffix := "" }}
{{- $anchorClass := "" -}}
{{- if $isExternal }} {{- if $isExternal }}
{{- if $tab -}} {{- if $tab -}}
@@ -48,19 +63,22 @@
{{- with $childNav }}{{ $params = printf "%s&child=%s" $params . }}{{ end -}} {{- with $childNav }}{{ $params = printf "%s&child=%s" $params . }}{{ end -}}
{{- end -}} {{- end -}}
<a class="{{ $anchorClass }}{{ if $isActive }} active{{ end }}{{ with $class }} {{. }}{{ end }}" <!-- Main code -->
{{ if $isIcon }}aria-label="{{ $menu.Name }}"{{ end }} {{ if not $error }}
data-nav="main" data-nav-main="{{ $mainNav }}"{{ with $childNav }} data-nav-child="{{ . }}"{{ end }} <a class="{{ $anchorClass }}{{ if $isActive }} active{{ end }}{{ with $class }} {{. }}{{ end }}"
href="{{ $menuURL }}{{ $params | safeHTMLAttr }}"{{ with $externalHref }} {{ . | safeHTMLAttr }}{{ end }} {{ $button | safeHTMLAttr }}> {{ if $isIcon }}aria-label="{{ $menu.Name }}"{{ end }}
data-nav="main" data-nav-main="{{ $mainNav }}"{{ with $childNav }} data-nav-child="{{ . }}"{{ end }}
{{- with $menu.Pre }} href="{{ $menuURL }}{{ $params | safeHTMLAttr }}"{{ with $externalHref }} {{ . | safeHTMLAttr }}{{ end }} {{ $button | safeHTMLAttr }}>
{{ if hasPrefix . "<i" }}
{{ . | safeHTML }} {{- with $menu.Pre }}
{{ else }} {{ if hasPrefix . "<i" }}
{{ partial "assets/icon.html" (dict "icon" (string .) )}} {{ . | safeHTML }}
{{ end }} {{ else }}
{{ end -}} {{ partial "assets/icon.html" (dict "icon" (string .) )}}
<span {{ if $isActive }} class="active"{{ end }}>{{ if not $isIcon }}{{ $menu.Name }}{{ end }}</span> {{ end }}
{{- with $menu.Post }}{{ . }}{{ end -}} {{ end -}}
{{- if not $isIcon }}&nbsp;{{ $suffix }}{{ end -}} <span {{ if $isActive }} class="active"{{ end }}>{{ if not $isIcon }}{{ $menu.Name }}{{ end }}</span>
</a> {{- with $menu.Post }}{{ . }}{{ end -}}
{{- if not $isIcon }}&nbsp;{{ $suffix }}{{ end -}}
</a>
{{ end }}

View File

@@ -1,13 +1,25 @@
{{- $page := .page -}} <!--
{{- if not $page -}} Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
{{- errorf "partial [assets/page-alert.html] - Missing value for param 'page'" -}} Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
{{- end -}} Visit gethinode.com/license for more details.
-->
{{ $error := false }}
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "page-alert" "args" . "group" "partial") }}
{{- errorf "partial [assets/page-alert.html] - Invalid arguments" -}}
{{ $error = true }}
{{ end }}
<!-- Initialize arguments -->
{{- $page := .page -}}
{{- $pageAlertMsg := $page.Scratch.Get "pageAlertMsg" -}} {{- $pageAlertMsg := $page.Scratch.Get "pageAlertMsg" -}}
{{- $pageAlertURL := $page.Scratch.Get "pageAlertURL" -}} {{- $pageAlertURL := $page.Scratch.Get "pageAlertURL" -}}
{{- $version := $page.Scratch.Get "version" -}} {{- $version := $page.Scratch.Get "version" -}}
{{- if $pageAlertMsg -}} <!-- Main code -->
{{- if and (not $error) $pageAlertMsg -}}
<div id="page-alert" class="alert alert-primary alert-no-decoration fade show d-flex align-items-center small m-0 py-1" data-page-alert-version="{{ $version }}"> <div id="page-alert" class="alert alert-primary alert-no-decoration fade show d-flex align-items-center small m-0 py-1" data-page-alert-version="{{ $version }}">
<a href="{{ with $pageAlertURL }}{{ . }}{{ else }}#!{{ end }}" class="text-decoration-none flex-grow-1 text-center">{{ $pageAlertMsg }}</a> <a href="{{ with $pageAlertURL }}{{ . }}{{ else }}#!{{ end }}" class="text-decoration-none flex-grow-1 text-center">{{ $pageAlertMsg }}</a>
<button id="page-alert-btn-close" type="button" class="btn-close" data-bs-dismiss="alert" aria-label="{{ T "close" }}"></button> <button id="page-alert-btn-close" type="button" class="btn-close" data-bs-dismiss="alert" aria-label="{{ T "close" }}"></button>

View File

@@ -1,39 +1,19 @@
<!-- Source: https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/pagination.html --> <!--
<!-- Modifications: centered pagination, replaced previous/next with text --> Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
{{- $validFormats := slice "default" "terse" }} This source code adapts the original partial as maintained by the Hugo repository. It introduces the
following modifications:
- Centered the pagination element
- Standardized validation of partial arguments
- Replaced previous / next navigation with text
The original source code is available on:
https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/pagination.html
Copyright 2022 The Hugo Authors. Licensed under the Apache License, Version 2.0.
-->
{{- $msg1 := "When passing a map to the internal pagination template, one of the elements must be named 'page', and it must be set to the context of the current page." }}
{{- $msg2 := "The 'format' specified in the map passed to the internal pagination template is invalid. Valid choices are: %s." }}
{{- $page := . }}
{{- $format := "default" }}
{{- if reflect.IsMap . }}
{{- with .page }}
{{- $page = . }}
{{- else }}
{{- errorf $msg1 }}
{{- end }}
{{- with .format }}
{{- $format = lower . }}
{{- end }}
{{- end }}
{{- if in $validFormats $format }}
{{- if gt $page.Paginator.TotalPages 1 }}
<nav aria-label="{{ T "paginationNav" }}">
<ul class="pagination pagination-{{ $format }} justify-content-center">
{{- partial (printf "partials/inline/pagination/%s" $format) $page }}
</ul>
</nav>
{{- end }}
{{- else }}
{{- errorf $msg2 (delimit $validFormats ", ") }}
{{- end -}}
{{/* Format: default
{{/* --------------------------------------------------------------------- */}}
{{- define "partials/inline/pagination/default" }} {{- define "partials/inline/pagination/default" }}
{{- with .Paginator }} {{- with .Paginator }}
{{- $currentPageNumber := .PageNumber }} {{- $currentPageNumber := .PageNumber }}
@@ -103,8 +83,6 @@
{{- end }} {{- end }}
{{- end -}} {{- end -}}
{{/* Format: terse
{{/* --------------------------------------------------------------------- */}}
{{- define "partials/inline/pagination/terse" }} {{- define "partials/inline/pagination/terse" }}
{{- with .Paginator }} {{- with .Paginator }}
{{- $currentPageNumber := .PageNumber }} {{- $currentPageNumber := .PageNumber }}
@@ -157,3 +135,24 @@
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- end -}} {{- end -}}
{{ $error := false }}
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "pagination" "args" . "group" "partial") }}
{{- errorf "partial [assets/pagination.html] - Invalid arguments" -}}
{{ $error = true }}
{{ end }}
<!-- Initialize arguments -->
{{- $page := .page }}
{{- $format := .format | default "default" }}
<!-- Main code -->
{{- if and (not $error) (gt $page.Paginator.TotalPages 1) }}
<nav aria-label="{{ T "paginationNav" }}">
<ul class="pagination pagination-{{ $format }} justify-content-center">
{{- partial (printf "partials/inline/pagination/%s" $format) $page }}
</ul>
</nav>
{{- end }}

View File

@@ -1,25 +1,23 @@
<!--
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
-->
{{ $error := false }}
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "section-header" "args" . "group" "partial") }}
{{- errorf "partial [assets/section-header.html] - Invalid arguments" -}}
{{ $error = true }}
{{ end }}
<!-- Initialize arguments -->
{{- $title := .title -}} {{- $title := .title -}}
{{- $thumbnail := .thumbnail -}}
{{- $icon := .icon -}}
{{- $sectionHeader := .sectionHeader -}}
{{- $description := .description -}} {{- $description := .description -}}
{{- $content := .content -}} {{- $content := .content -}}
{{- define "partials/section-header-img.html" -}} <!-- Main code -->
{{- $title := .title -}}
{{- $thumbnail := .thumbnail -}}
{{- $icon := .icon -}}
{{ $padding := 5 }}
{{- if $thumbnail -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "1x1" "wrapper" "h-100 card-img-wrap" "class" "rounded-start card-img-h100" "title" $title) -}}
{{- else if $icon -}}
<div class="text-secondary fw-bold">
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-10x" $icon)) -}}
</div>
{{- end -}}
{{- end -}}
{{ with $title }}<p id="{{ anchorize . }}" class="display-4 py-5{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }} {{ with $title }}<p id="{{ anchorize . }}" class="display-4 py-5{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
{{ with $description }} <p class="lead mb-5">{{ . }}</p>{{ end }} {{ with $description }} <p class="lead mb-5">{{ . }}</p>{{ end }}
{{ $content }} {{ $content }}

View File

@@ -130,31 +130,14 @@
{{- $params := (dict {{- $params := (dict
"page" $page "page" $page
"list" $list "list" $list
"title" $title
"icon" $icon
"thumbnail" $thumbnail
"ratio" $ratio
"sectionHeader" $sectionHeader
"description" $description
"content" $content
"class" $style "class" $style
"color" $color
"loading" $loading
) )
-}} -}}
{{- $partial := "" -}} {{- $partial := "" -}}
<div class="container-fluid {{ with $background }} bg-{{ . }}{{ end }} p-0"> <div class="container-fluid {{ with $background }} bg-{{ . }}{{ end }} p-0">
<div class="container-xxl {{ $wrapper }}"> <div class="container-xxl {{ $wrapper }}">
{{- partial "assets/section-header.html" $params -}} {{- partial "assets/section-header.html" (dict "title" $title "description" $description "content" $content) -}}
{{- $params := (dict
"page" $page
"list" $list
"class" $style
)
-}}
{{ if eq $layout "card" }} {{ if eq $layout "card" }}
{{- $partial = "assets/card-group.html" -}} {{- $partial = "assets/card-group.html" -}}
{{- $params = merge $params (dict {{- $params = merge $params (dict
@@ -189,13 +172,8 @@
{{- $partial = "assets/list.html" -}} {{- $partial = "assets/list.html" -}}
{{- $params = merge $params (dict {{- $params = merge $params (dict
"title" $title "title" $title
"icon" $icon
"thumbnail" $thumbnail
"ratio" $ratio
"description" $description
"color" $color "color" $color
"loading" $loading "loading" $loading
"layout" $layout
) )
-}} -}}
{{- end -}} {{- end -}}

View File

@@ -1,10 +1,26 @@
{{- $page := . -}} <!--
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
-->
{{ $error := false }}
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "section-menu" "args" . "group" "partial") }}
{{- errorf "partial [assets/section-menu.html] - Invalid arguments" -}}
{{ $error = true }}
{{ end }}
<!-- Initialize arguments -->
{{- $page := .page -}}
{{ $items := $page.Parent.Sections }} {{ $items := $page.Parent.Sections }}
{{ if not $page.Parent.Section }} {{ if not $page.Parent.Section }}
{{ $items = $page.Sections }} {{ $items = $page.Sections }}
{{ end }} {{ end }}
{{- if gt (len $items) 0 }} <!-- Main code -->
{{- if and (not $error) (gt (len $items) 0) }}
<div class="d-grid gap-2 mx-auto d-md-none"> <div class="d-grid gap-2 mx-auto d-md-none">
{{ partial "assets/button.html" (dict {{ partial "assets/button.html" (dict
"title" (T "sectionMenu") "title" (T "sectionMenu")

View File

@@ -1,9 +1,27 @@
{{- if .Site.Params.sharing.enabled -}} <!--
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
-->
{{ $error := false }}
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "sharing" "args" . "group" "partial") }}
{{- errorf "partial [assets/sharing.html] - Invalid arguments" -}}
{{ $error = true }}
{{ end }}
<!-- Initialize arguments -->
{{ $page := .page }}
<!-- Main code -->
{{- if and (not $error) $page.Site.Params.sharing.enabled -}}
{{- $sharing := true -}} {{- $sharing := true -}}
{{ if isset .Params "sharing" }} {{ if isset $page.Params "sharing" }}
{{ $sharing = .Params.sharing }} {{ $sharing = $page.Params.sharing }}
{{ else }} {{ else }}
{{- with (index site.Params.pages .Type ) -}} {{- with (index $page.Site.Params.pages .Type ) -}}
{{ if isset . "sharing" }} {{ if isset . "sharing" }}
{{ $sharing = (index . "sharing") }} {{ $sharing = (index . "sharing") }}
{{ end }} {{ end }}
@@ -11,16 +29,15 @@
{{ end }} {{ end }}
{{- if $sharing -}} {{- if $sharing -}}
{{- $page := . -}}
{{- $order := "asc" -}} {{- $order := "asc" -}}
{{- $list := .Site.Params.sharing.providers -}} {{- $list := $page.Site.Params.sharing.providers -}}
{{- if .Site.Params.sharing.reverse }}{{ $order = "desc" }}{{ else }}{{ $order = "asc" }}{{ end -}} {{- if $page.Site.Params.sharing.reverse }}{{ $order = "desc" }}{{ else }}{{ $order = "asc" }}{{ end -}}
{{- $sort := .Site.Params.sharing.sort | default "weight" -}} {{- $sort := $page.Site.Params.sharing.sort | default "weight" -}}
{{- $list = sort $list $sort $order -}} {{- $list = sort $list $sort $order -}}
{{- $download := .Params.download -}} {{- $download := $page.Params.download -}}
{{- if and $download (not (fileExists (path.Join "static" $download))) -}} {{- if and $download (not (fileExists (path.Join "static" $download))) -}}
{{- errorf "Cannot find download file for page '%s': %s" .File.Path $download -}} {{- errorf "Cannot find download file for page '%s': %s" $page.File.Path $download -}}
{{- end -}} {{- end -}}
<div class="py-3 text-body-secondary hstack gap-1"> <div class="py-3 text-body-secondary hstack gap-1">
@@ -40,7 +57,7 @@
{{- end -}} {{- end -}}
{{ partial "assets/button.html" (dict "toast" $target "clipboard" $clipboard "href" $url "icon" (printf "%s fa-fw" $item.icon) "class" "btn-social p-0" "label" (T "shareLink" $item.name) "spacing" false) }} {{ partial "assets/button.html" (dict "toast" $target "clipboard" $clipboard "href" $url "icon" (printf "%s fa-fw" $item.icon) "class" "btn-social p-0" "label" (T "shareLink" $item.name) "spacing" false) }}
{{- end -}} {{- end -}}
{{ if .Site.Params.sharing.webshare }} {{ if $page.Site.Params.sharing.webshare }}
{{ $attr := dict "data-sharing-title" .Title "data-sharing-description" .Description "data-sharing-url" .Permalink }} {{ $attr := dict "data-sharing-title" .Title "data-sharing-description" .Description "data-sharing-url" .Permalink }}
{{ partial "assets/button.html" (dict "href" "#!" "icon" "fas share-nodes fa-fw" "id" "btn-webshare" "class" "btn-social p-0" "attributes" $attr "label" (T "shareLink" (T "shareSystem")) "spacing" false) }} {{ partial "assets/button.html" (dict "href" "#!" "icon" "fas share-nodes fa-fw" "id" "btn-webshare" "class" "btn-social p-0" "attributes" $attr "label" (T "shareLink" (T "shareSystem")) "spacing" false) }}
{{- end -}} {{- end -}}

View File

@@ -1,7 +1,22 @@
<!--
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
-->
{{ $error := false }}
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "sidebar" "args" . "group" "partial") }}
{{- errorf "partial [assets/sidebar.html] - Invalid arguments" -}}
{{ $error = true }}
{{ end }}
<!-- Initialize arguments -->
{{- $page := .page }} {{- $page := .page }}
{{- $section := $page.Section }}
{{- $data := .menu -}} {{- $data := .menu -}}
{{- $version := .version -}} {{- $version := .version -}}
{{- $section := $page.Section }}
{{- define "partials/sidebar/group.html" -}} {{- define "partials/sidebar/group.html" -}}
{{- $page := .page -}} {{- $page := .page -}}
@@ -94,7 +109,8 @@
{{ end }} {{ end }}
{{ end -}} {{ end -}}
{{ if $data }} <!-- Main code -->
{{ if and (not $error) $data }}
<nav class="sidebar flex-shrink-0 ps-1 pt-3" aria-label="{{ (strings.FirstUpper $section) }} navigation"> <nav class="sidebar flex-shrink-0 ps-1 pt-3" aria-label="{{ (strings.FirstUpper $section) }} navigation">
{{- $sectionBreak := false -}} {{- $sectionBreak := false -}}
{{- $level := 0 -}} {{- $level := 0 -}}

View File

@@ -1,5 +1,22 @@
{{ $items := len (findRE "<li.*?>(.|\n)*?</li>" .TableOfContents) -}} <!--
{{ if (gt $items 1) -}} Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
-->
{{ $error := false }}
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "toc" "args" . "group" "partial") }}
{{- errorf "partial [assets/toc-dropdown.html] - Invalid arguments" -}}
{{ $error = true }}
{{ end }}
<!-- Initialize arguments -->
{{- $page := .page -}}
{{ $items := len (findRE "<li.*?>(.|\n)*?</li>" $page.TableOfContents) -}}
{{ if and (not $error) (gt $items 1) -}}
<div class="d-grid gap-2 mx-auto"> <div class="d-grid gap-2 mx-auto">
{{ partial "assets/button.html" (dict {{ partial "assets/button.html" (dict
"title" (T "toc") "title" (T "toc")
@@ -16,7 +33,7 @@
<p> <p>
<div class="collapse border bg-body-tertiary rounded p-1 navbar-nav-scroll" id="toc-collapse"> <div class="collapse border bg-body-tertiary rounded p-1 navbar-nav-scroll" id="toc-collapse">
<div class="toc toc-panel text-body p-2"> <div class="toc toc-panel text-body p-2">
<small>{{ .TableOfContents }}</small> <small>{{ $page.TableOfContents }}</small>
</div> </div>
</div> </div>
</p> </p>

View File

@@ -1,7 +1,23 @@
{{- $page := .page -}} <!--
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
-->
{{ $error := false }}
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "toc" "args" . "group" "partial") }}
{{- errorf "partial [assets/toc.html] - Invalid arguments" -}}
{{ $error = true }}
{{ end }}
<!-- Initialize arguments -->
{{- $page := .page -}}
{{ $items := len (findRE "<li.*?>(.|\n)*?</li>" $page.TableOfContents) -}} {{ $items := len (findRE "<li.*?>(.|\n)*?</li>" $page.TableOfContents) -}}
{{ if gt $items 1 -}}
<!-- Main code -->
{{ if and (not $error) (gt $items 1) -}}
<strong class="d-block h6 my-2 pb-2 border-bottom">{{ T "toc" }}</strong> <strong class="d-block h6 my-2 pb-2 border-bottom">{{ T "toc" }}</strong>
{{ $page.TableOfContents }} {{ $page.TableOfContents }}
{{ end -}} {{ end -}}

View File

@@ -25,5 +25,5 @@
<!-- Main code --> <!-- Main code -->
{{- if not $error -}} {{- if not $error -}}
{{- partial "assets/breadcrumb.html" (dict "page" $page) -}} {{- partial "assets/breadcrumb.html" (dict "page" $page) -}}
{{- end -}} {{- end -}}

View File

@@ -23,15 +23,15 @@
child-src 'self' app.netlify.com; \ child-src 'self' app.netlify.com; \
script-src 'self' \ script-src 'self' \
https://*.netlify.app app.netlify.com netlify-cdp-loader.netlify.app \ https://*.netlify.app app.netlify.com netlify-cdp-loader.netlify.app \
https://utteranc.es/client.js https://*.google-analytics.com https://*.googletagmanager.com; \ https://*.google-analytics.com https://*.googletagmanager.com; \
style-src 'self' \ style-src 'self' \
https://*.netlify.app https://utteranc.es https://fonts.googleapis.com https://www.youtube.com; \ https://*.netlify.app https://fonts.googleapis.com https://www.youtube.com; \
object-src 'none'; \ object-src 'none'; \
base-uri 'self'; \ base-uri 'self'; \
connect-src 'self' connect-src 'self'
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \ https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
font-src 'self' https://*.netlify.app https://fonts.gstatic.com; \ font-src 'self' https://*.netlify.app https://fonts.gstatic.com; \
frame-src 'self' https://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com \ frame-src 'self' https://www.youtube-nocookie.com https://www.youtube.com \
app.netlify.com; \ app.netlify.com; \
img-src 'self' data: https://*.netlify.app https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \ img-src 'self' data: https://*.netlify.app https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \
manifest-src 'self'; \ manifest-src 'self'; \

202
package-lock.json generated
View File

@@ -1,20 +1,20 @@
{ {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "0.22.0-beta7", "version": "0.22.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "0.22.0-beta7", "version": "0.22.0",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"@fullhuman/postcss-purgecss": "^5.0.0", "@fullhuman/postcss-purgecss": "^5.0.0",
"@gethinode/netlify-plugin-dartsass": "^0.2.0", "@gethinode/netlify-plugin-dartsass": "^0.2.0",
"@netlify/plugin-lighthouse": "^5.0.0", "@netlify/plugin-lighthouse": "^5.0.0",
"autoprefixer": "^10.4.16", "autoprefixer": "^10.4.16",
"cssnano": "^6.0.2", "cssnano": "^6.0.3",
"cssnano-preset-advanced": "^6.0.2", "cssnano-preset-advanced": "^6.0.3",
"eslint": "^8.56.0", "eslint": "^8.56.0",
"eslint-config-standard": "^17.1.0", "eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.29.1", "eslint-plugin-import": "^2.29.1",
@@ -1476,9 +1476,9 @@
} }
}, },
"node_modules/browserslist": { "node_modules/browserslist": {
"version": "4.22.1", "version": "4.22.2",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz",
"integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@@ -1495,9 +1495,9 @@
} }
], ],
"dependencies": { "dependencies": {
"caniuse-lite": "^1.0.30001541", "caniuse-lite": "^1.0.30001565",
"electron-to-chromium": "^1.4.535", "electron-to-chromium": "^1.4.601",
"node-releases": "^2.0.13", "node-releases": "^2.0.14",
"update-browserslist-db": "^1.0.13" "update-browserslist-db": "^1.0.13"
}, },
"bin": { "bin": {
@@ -1700,9 +1700,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001559", "version": "1.0.30001574",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001559.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001574.tgz",
"integrity": "sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==", "integrity": "sha512-BtYEK4r/iHt/txm81KBudCUcTy7t+s9emrIaHqjYurQ10x71zJ5VQ9x1dYPcz/b+pKSp4y/v1xSI67A+LzpNyg==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@@ -2117,12 +2117,12 @@
} }
}, },
"node_modules/cssnano": { "node_modules/cssnano": {
"version": "6.0.2", "version": "6.0.3",
"resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.2.tgz", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.3.tgz",
"integrity": "sha512-Tu9wv8UdN6CoiQnIVkCNvi+0rw/BwFWOJBlg2bVfEyKaadSuE3Gq/DD8tniVvggTJGwK88UjqZp7zL5sv6t1aA==", "integrity": "sha512-MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"cssnano-preset-default": "^6.0.2", "cssnano-preset-default": "^6.0.3",
"lilconfig": "^3.0.0" "lilconfig": "^3.0.0"
}, },
"engines": { "engines": {
@@ -2137,14 +2137,14 @@
} }
}, },
"node_modules/cssnano-preset-advanced": { "node_modules/cssnano-preset-advanced": {
"version": "6.0.2", "version": "6.0.3",
"resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.0.2.tgz", "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.0.3.tgz",
"integrity": "sha512-1ziCYBklE4iQDuYy6RRumEhJDKv442d7ezzyDb1p3yYSmdz5GMan5y4xJc9YLgbiFJ9gufir9axrDUDjtT07pQ==", "integrity": "sha512-+DIOR5FFId+nb6/JcBkAMiXYDadEx2waDmSDhAA3rL1Q1N1AaZP0N25jiZnqLp3MdWnRg9t9CNaDs/OdB/lpPg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"autoprefixer": "^10.4.12", "autoprefixer": "^10.4.16",
"cssnano-preset-default": "^6.0.2", "cssnano-preset-default": "^6.0.3",
"postcss-discard-unused": "^6.0.1", "postcss-discard-unused": "^6.0.2",
"postcss-merge-idents": "^6.0.1", "postcss-merge-idents": "^6.0.1",
"postcss-reduce-idents": "^6.0.2", "postcss-reduce-idents": "^6.0.2",
"postcss-zindex": "^6.0.1" "postcss-zindex": "^6.0.1"
@@ -2157,40 +2157,40 @@
} }
}, },
"node_modules/cssnano-preset-default": { "node_modules/cssnano-preset-default": {
"version": "6.0.2", "version": "6.0.3",
"resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.2.tgz", "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.3.tgz",
"integrity": "sha512-VnZybFeZ63AiVqIUNlxqMxpj9VU8B5j0oKgP7WyVt/7mkyf97KsYkNzsPTV/RVmy54Pg7cBhOK4WATbdCB44gw==", "integrity": "sha512-4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"css-declaration-sorter": "^7.0.0", "css-declaration-sorter": "^7.1.1",
"cssnano-utils": "^4.0.1", "cssnano-utils": "^4.0.1",
"postcss-calc": "^9.0.1", "postcss-calc": "^9.0.1",
"postcss-colormin": "^6.0.1", "postcss-colormin": "^6.0.2",
"postcss-convert-values": "^6.0.1", "postcss-convert-values": "^6.0.2",
"postcss-discard-comments": "^6.0.1", "postcss-discard-comments": "^6.0.1",
"postcss-discard-duplicates": "^6.0.1", "postcss-discard-duplicates": "^6.0.1",
"postcss-discard-empty": "^6.0.1", "postcss-discard-empty": "^6.0.1",
"postcss-discard-overridden": "^6.0.1", "postcss-discard-overridden": "^6.0.1",
"postcss-merge-longhand": "^6.0.1", "postcss-merge-longhand": "^6.0.2",
"postcss-merge-rules": "^6.0.2", "postcss-merge-rules": "^6.0.3",
"postcss-minify-font-values": "^6.0.1", "postcss-minify-font-values": "^6.0.1",
"postcss-minify-gradients": "^6.0.1", "postcss-minify-gradients": "^6.0.1",
"postcss-minify-params": "^6.0.1", "postcss-minify-params": "^6.0.2",
"postcss-minify-selectors": "^6.0.1", "postcss-minify-selectors": "^6.0.2",
"postcss-normalize-charset": "^6.0.1", "postcss-normalize-charset": "^6.0.1",
"postcss-normalize-display-values": "^6.0.1", "postcss-normalize-display-values": "^6.0.1",
"postcss-normalize-positions": "^6.0.1", "postcss-normalize-positions": "^6.0.1",
"postcss-normalize-repeat-style": "^6.0.1", "postcss-normalize-repeat-style": "^6.0.1",
"postcss-normalize-string": "^6.0.1", "postcss-normalize-string": "^6.0.1",
"postcss-normalize-timing-functions": "^6.0.1", "postcss-normalize-timing-functions": "^6.0.1",
"postcss-normalize-unicode": "^6.0.1", "postcss-normalize-unicode": "^6.0.2",
"postcss-normalize-url": "^6.0.1", "postcss-normalize-url": "^6.0.1",
"postcss-normalize-whitespace": "^6.0.1", "postcss-normalize-whitespace": "^6.0.1",
"postcss-ordered-values": "^6.0.1", "postcss-ordered-values": "^6.0.1",
"postcss-reduce-initial": "^6.0.1", "postcss-reduce-initial": "^6.0.2",
"postcss-reduce-transforms": "^6.0.1", "postcss-reduce-transforms": "^6.0.1",
"postcss-svgo": "^6.0.1", "postcss-svgo": "^6.0.2",
"postcss-unique-selectors": "^6.0.1" "postcss-unique-selectors": "^6.0.2"
}, },
"engines": { "engines": {
"node": "^14 || ^16 || >=18.0" "node": "^14 || ^16 || >=18.0"
@@ -2570,9 +2570,9 @@
"dev": true "dev": true
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.4.571", "version": "1.4.620",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.571.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.620.tgz",
"integrity": "sha512-Sc+VtKwKCDj3f/kLBjdyjMpNzoZsU6WuL/wFb6EH8USmHEcebxRXcRrVpOpayxd52tuey4RUDpUsw5OS5LhJqg==", "integrity": "sha512-a2fcSHOHrqBJsPNXtf6ZCEZpXrFCcbK1FBxfX3txoqWzNgtEDG1f3M59M98iwxhRW4iMKESnSjbJ310/rkrp0g==",
"dev": true "dev": true
}, },
"node_modules/emoji-regex": { "node_modules/emoji-regex": {
@@ -5802,9 +5802,9 @@
} }
}, },
"node_modules/node-releases": { "node_modules/node-releases": {
"version": "2.0.13", "version": "2.0.14",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
"integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
"dev": true "dev": true
}, },
"node_modules/normalize-package-data": { "node_modules/normalize-package-data": {
@@ -6699,12 +6699,12 @@
} }
}, },
"node_modules/postcss-colormin": { "node_modules/postcss-colormin": {
"version": "6.0.1", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.1.tgz", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.2.tgz",
"integrity": "sha512-Tb9aR2wCJCzKuNjIeMzVNd0nXjQy25HDgFmmaRsHnP0eP/k8uQWE4S8voX5S2coO5CeKrp+USFs1Ayv9Tpxx6w==", "integrity": "sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"browserslist": "^4.21.4", "browserslist": "^4.22.2",
"caniuse-api": "^3.0.0", "caniuse-api": "^3.0.0",
"colord": "^2.9.1", "colord": "^2.9.1",
"postcss-value-parser": "^4.2.0" "postcss-value-parser": "^4.2.0"
@@ -6717,12 +6717,12 @@
} }
}, },
"node_modules/postcss-convert-values": { "node_modules/postcss-convert-values": {
"version": "6.0.1", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.1.tgz", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.2.tgz",
"integrity": "sha512-zTd4Vh0HxGkhg5aHtfCogcRHzGkvblfdWlQ53lIh1cJhYcGyIxh2hgtKoVh40AMktRERet+JKdB04nNG19kjmA==", "integrity": "sha512-aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"browserslist": "^4.21.4", "browserslist": "^4.22.2",
"postcss-value-parser": "^4.2.0" "postcss-value-parser": "^4.2.0"
}, },
"engines": { "engines": {
@@ -6781,12 +6781,12 @@
} }
}, },
"node_modules/postcss-discard-unused": { "node_modules/postcss-discard-unused": {
"version": "6.0.1", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.1.tgz", "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.2.tgz",
"integrity": "sha512-Bihf0iR+C4xyCzydaoCwSWaXPGcALq9ddf/tMYk7yAxbm4TxZ0UUPc1KpHdZLf3/vRC18plXqT8yYAJEw2ncFA==", "integrity": "sha512-wr3lRPahxARmjow5BWML+9bD9D1u6FpfxlWg4lZqCIwvQLBZQD/S0Rq6A/juQwVFVXvMeRGa9TX1vpXuQ6FhTQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"postcss-selector-parser": "^6.0.5" "postcss-selector-parser": "^6.0.15"
}, },
"engines": { "engines": {
"node": "^14 || ^16 || >=18.0" "node": "^14 || ^16 || >=18.0"
@@ -6853,13 +6853,13 @@
} }
}, },
"node_modules/postcss-merge-longhand": { "node_modules/postcss-merge-longhand": {
"version": "6.0.1", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.1.tgz", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.2.tgz",
"integrity": "sha512-vmr/HZQzaPXc45FRvSctqFTF05UaDnTn5ABX+UtQPJznDWT/QaFbVc/pJ5C2YPxx2J2XcfmWowlKwtCDwiQ5hA==", "integrity": "sha512-+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"postcss-value-parser": "^4.2.0", "postcss-value-parser": "^4.2.0",
"stylehacks": "^6.0.1" "stylehacks": "^6.0.2"
}, },
"engines": { "engines": {
"node": "^14 || ^16 || >=18.0" "node": "^14 || ^16 || >=18.0"
@@ -6869,15 +6869,15 @@
} }
}, },
"node_modules/postcss-merge-rules": { "node_modules/postcss-merge-rules": {
"version": "6.0.2", "version": "6.0.3",
"resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.2.tgz", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.3.tgz",
"integrity": "sha512-6lm8bl0UfriSfxI+F/cezrebqqP8w702UC6SjZlUlBYwuRVNbmgcJuQU7yePIvD4MNT53r/acQCUAyulrpgmeQ==", "integrity": "sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"browserslist": "^4.21.4", "browserslist": "^4.22.2",
"caniuse-api": "^3.0.0", "caniuse-api": "^3.0.0",
"cssnano-utils": "^4.0.1", "cssnano-utils": "^4.0.1",
"postcss-selector-parser": "^6.0.5" "postcss-selector-parser": "^6.0.15"
}, },
"engines": { "engines": {
"node": "^14 || ^16 || >=18.0" "node": "^14 || ^16 || >=18.0"
@@ -6919,12 +6919,12 @@
} }
}, },
"node_modules/postcss-minify-params": { "node_modules/postcss-minify-params": {
"version": "6.0.1", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.1.tgz", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.2.tgz",
"integrity": "sha512-eFvGWArqh4khPIgPDu6SZNcaLctx97nO7c59OXnRtGntAp5/VS4gjMhhW9qUFsK6mQ27pEZGt2kR+mPizI+Z9g==", "integrity": "sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"browserslist": "^4.21.4", "browserslist": "^4.22.2",
"cssnano-utils": "^4.0.1", "cssnano-utils": "^4.0.1",
"postcss-value-parser": "^4.2.0" "postcss-value-parser": "^4.2.0"
}, },
@@ -6936,12 +6936,12 @@
} }
}, },
"node_modules/postcss-minify-selectors": { "node_modules/postcss-minify-selectors": {
"version": "6.0.1", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.1.tgz", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.2.tgz",
"integrity": "sha512-mfReq5wrS6vkunxvJp6GDuOk+Ak6JV7134gp8L+ANRnV9VwqzTvBtX6lpohooVU750AR0D3pVx2Zn6uCCwOAfQ==", "integrity": "sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"postcss-selector-parser": "^6.0.5" "postcss-selector-parser": "^6.0.15"
}, },
"engines": { "engines": {
"node": "^14 || ^16 || >=18.0" "node": "^14 || ^16 || >=18.0"
@@ -7038,12 +7038,12 @@
} }
}, },
"node_modules/postcss-normalize-unicode": { "node_modules/postcss-normalize-unicode": {
"version": "6.0.1", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.1.tgz", "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.2.tgz",
"integrity": "sha512-ok9DsI94nEF79MkvmLfHfn8ddnKXA7w+8YuUoz5m7b6TOdoaRCpvu/QMHXQs9+DwUbvp+ytzz04J55CPy77PuQ==", "integrity": "sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"browserslist": "^4.21.4", "browserslist": "^4.22.2",
"postcss-value-parser": "^4.2.0" "postcss-value-parser": "^4.2.0"
}, },
"engines": { "engines": {
@@ -7115,12 +7115,12 @@
} }
}, },
"node_modules/postcss-reduce-initial": { "node_modules/postcss-reduce-initial": {
"version": "6.0.1", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.1.tgz", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.2.tgz",
"integrity": "sha512-cgzsI2ThG1PMSdSyM9A+bVxiiVgPIVz9f5c6H+TqEv0CA89iCOO81mwLWRWLgOKFtQkKob9nNpnkxG/1RlgFcA==", "integrity": "sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"browserslist": "^4.21.4", "browserslist": "^4.22.2",
"caniuse-api": "^3.0.0" "caniuse-api": "^3.0.0"
}, },
"engines": { "engines": {
@@ -7214,9 +7214,9 @@
} }
}, },
"node_modules/postcss-selector-parser": { "node_modules/postcss-selector-parser": {
"version": "6.0.13", "version": "6.0.15",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
"integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"cssesc": "^3.0.0", "cssesc": "^3.0.0",
@@ -7227,13 +7227,13 @@
} }
}, },
"node_modules/postcss-svgo": { "node_modules/postcss-svgo": {
"version": "6.0.1", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.1.tgz", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.2.tgz",
"integrity": "sha512-eWV4Rrqa06LzTgqirOv5Ln6WTGyU7Pbeqj9WEyKo9tpnWixNATVJMeaEcOHOW1ZYyjcG8wSJwX/28DvU3oy3HA==", "integrity": "sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"postcss-value-parser": "^4.2.0", "postcss-value-parser": "^4.2.0",
"svgo": "^3.0.5" "svgo": "^3.2.0"
}, },
"engines": { "engines": {
"node": "^14 || ^16 || >= 18" "node": "^14 || ^16 || >= 18"
@@ -7243,12 +7243,12 @@
} }
}, },
"node_modules/postcss-unique-selectors": { "node_modules/postcss-unique-selectors": {
"version": "6.0.1", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.1.tgz", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.2.tgz",
"integrity": "sha512-/KCCEpNNR7oXVJ38/Id7GC9Nt0zxO1T3zVbhVaq6F6LSG+3gU3B7+QuTHfD0v8NPEHlzewAout29S0InmB78EQ==", "integrity": "sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"postcss-selector-parser": "^6.0.5" "postcss-selector-parser": "^6.0.15"
}, },
"engines": { "engines": {
"node": "^14 || ^16 || >=18.0" "node": "^14 || ^16 || >=18.0"
@@ -8845,13 +8845,13 @@
"dev": true "dev": true
}, },
"node_modules/stylehacks": { "node_modules/stylehacks": {
"version": "6.0.1", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.1.tgz", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.2.tgz",
"integrity": "sha512-jTqG2aIoX2fYg0YsGvqE4ooE/e75WmaEjnNiP6Ag7irLtHxML8NJRxRxS0HyDpde8DRGuEXTFVHVfR5Tmbxqzg==", "integrity": "sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"browserslist": "^4.21.4", "browserslist": "^4.22.2",
"postcss-selector-parser": "^6.0.4" "postcss-selector-parser": "^6.0.15"
}, },
"engines": { "engines": {
"node": "^14 || ^16 || >=18.0" "node": "^14 || ^16 || >=18.0"
@@ -9163,17 +9163,17 @@
"dev": true "dev": true
}, },
"node_modules/svgo": { "node_modules/svgo": {
"version": "3.1.0", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/svgo/-/svgo-3.1.0.tgz", "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz",
"integrity": "sha512-R5SnNA89w1dYgNv570591F66v34b3eQShpIBcQtZtM5trJwm1VvxbIoMpRYY3ybTAutcKTLEmTsdnaknOHbiQA==", "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@trysound/sax": "0.2.0", "@trysound/sax": "0.2.0",
"commander": "^7.2.0", "commander": "^7.2.0",
"css-select": "^5.1.0", "css-select": "^5.1.0",
"css-tree": "^2.2.1", "css-tree": "^2.3.1",
"css-what": "^6.1.0", "css-what": "^6.1.0",
"csso": "5.0.5", "csso": "^5.0.5",
"picocolors": "^1.0.0" "picocolors": "^1.0.0"
}, },
"bin": { "bin": {

View File

@@ -1,6 +1,6 @@
{ {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "0.22.0-beta7", "version": "0.22.0",
"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",
@@ -71,8 +71,8 @@
"@gethinode/netlify-plugin-dartsass": "^0.2.0", "@gethinode/netlify-plugin-dartsass": "^0.2.0",
"@netlify/plugin-lighthouse": "^5.0.0", "@netlify/plugin-lighthouse": "^5.0.0",
"autoprefixer": "^10.4.16", "autoprefixer": "^10.4.16",
"cssnano": "^6.0.2", "cssnano": "^6.0.3",
"cssnano-preset-advanced": "^6.0.2", "cssnano-preset-advanced": "^6.0.3",
"eslint": "^8.56.0", "eslint": "^8.56.0",
"eslint-config-standard": "^17.1.0", "eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.29.1", "eslint-plugin-import": "^2.29.1",