Compare commits

...

37 Commits

Author SHA1 Message Date
Mark Dumay
a3d289843f Merge pull request #262 from gethinode/develop
Fixes
2023-05-21 14:29:35 +02:00
mark
8700e18ad9 Add docs urls 2023-05-21 14:25:23 +02:00
Mark Dumay
8936dafac6 Merge branch 'main' into develop 2023-05-21 14:16:42 +02:00
mark
4d1c7d46eb Bump package release 2023-05-21 14:16:15 +02:00
mark
bffe6425da Add always-open option 2023-05-21 14:15:44 +02:00
mark
3e1c3a2c9c Hault rendering on issue 2023-05-21 14:15:07 +02:00
mark
df83103718 Use icon shorthand notation 2023-05-21 14:14:45 +02:00
mark
e54417bc02 Refine supported colors 2023-05-21 14:14:14 +02:00
mark
61f2b82221 Fix color behavior 2023-05-21 14:13:56 +02:00
mark
2689107e5a Refine supported colors 2023-05-21 14:13:24 +02:00
mark
d20d053232 Support optional id argument 2023-05-21 14:13:03 +02:00
mark
35fb72d408 Support optional id argument 2023-05-21 14:12:49 +02:00
mark
18cee3cac6 Refine supported colors 2023-05-21 14:12:11 +02:00
mark
192021fbb3 Fix layout of horizontal card 2023-05-21 14:11:41 +02:00
mark
a3c5d36584 Support optional redirect for hidden pages 2023-05-20 09:07:21 +02:00
mark
42d169bbc0 Add release shortcode 2023-05-20 09:06:43 +02:00
github-actions[bot]
3b4b3a65b6 Merge pull request #261 from gethinode/dependabot/npm_and_yarn/rimraf-5.0.1
Bump rimraf from 5.0.0 to 5.0.1
2023-05-18 14:09:29 +00:00
dependabot[bot]
32ee66bf90 Bump rimraf from 5.0.0 to 5.0.1
Bumps [rimraf](https://github.com/isaacs/rimraf) from 5.0.0 to 5.0.1.
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v5.0.0...v5.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-18 14:05:30 +00:00
github-actions[bot]
6b8ff44fb0 Merge pull request #260 from gethinode/dependabot/npm_and_yarn/stylelint-15.6.2
Bump stylelint from 15.6.1 to 15.6.2
2023-05-17 14:15:11 +00:00
dependabot[bot]
70cc8946b0 Bump stylelint from 15.6.1 to 15.6.2
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.6.1 to 15.6.2.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.6.1...15.6.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-17 14:09:41 +00:00
github-actions[bot]
eab0cfa6ab Merge pull request #259 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.102.2
Bump hugo-bin from 0.102.1 to 0.102.2
2023-05-17 14:08:50 +00:00
dependabot[bot]
1580898f1a Bump hugo-bin from 0.102.1 to 0.102.2
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.102.1 to 0.102.2.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.102.1...v0.102.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-17 14:05:09 +00:00
Mark Dumay
530fb03d29 Merge pull request #258 from gethinode/develop
Menu aliases
2023-05-17 12:05:58 +02:00
Mark Dumay
3e5261bd36 Merge branch 'main' into develop 2023-05-17 11:52:39 +02:00
mark
e2d409baed Bump package release 2023-05-17 11:51:32 +02:00
mark
d009874ece Support menu aliases 2023-05-17 11:50:55 +02:00
mark
f8adffc131 Use pageRef instead of url 2023-05-17 09:27:47 +02:00
github-actions[bot]
68a3a3be30 Merge pull request #257 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.102.1
Bump hugo-bin from 0.102.0 to 0.102.1
2023-05-16 14:10:55 +00:00
dependabot[bot]
c077c8b53b Bump hugo-bin from 0.102.0 to 0.102.1
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.102.0 to 0.102.1.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.102.0...v0.102.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-16 14:04:37 +00:00
Mark Dumay
6a0c6af296 Merge pull request #256 from gethinode/develop
CSS fix
2023-05-16 06:31:49 +02:00
Mark Dumay
2bf16b0e59 Merge branch 'main' into develop 2023-05-16 06:17:43 +02:00
mark
e56cc645e2 Update package release 2023-05-16 06:16:12 +02:00
mark
8c361a8417 Fix incorrect CSS link in development mode 2023-05-16 06:15:23 +02:00
Mark Dumay
65e9e57c9e Merge pull request #255 from gethinode/develop
Menu fix
2023-05-15 16:43:17 +02:00
Mark Dumay
ffa4473d25 Merge branch 'main' into develop 2023-05-15 16:10:43 +02:00
mark
6c5fe6f208 Bump release 2023-05-15 16:10:10 +02:00
mark
60efecf946 Retrieve menu data for single pages only 2023-05-15 16:09:39 +02:00
25 changed files with 696 additions and 139 deletions

20
assets/js/menu.js Normal file
View File

@@ -0,0 +1,20 @@
const url = new URL(window.location.href)
const menu = url.searchParams.get('menu')
const child = url.searchParams.get('child')
const menuItems = document.querySelectorAll('[data-nav="main"]')
if (menu !== null) {
menuItems.forEach(element => {
element.classList.remove('active')
})
const targetMainItems = document.querySelectorAll(`[data-nav-main="${menu}"]:not([data-nav-child])`)
targetMainItems.forEach(element => {
element.classList.add('active')
})
const targetChildItems = document.querySelectorAll(`[data-nav-main="${menu}"][data-nav-child="${child}"]`)
targetChildItems.forEach(element => {
element.classList.add('active')
})
}

View File

@@ -1,33 +1,33 @@
[[main]] [[main]]
name = "About" name = "About"
url = "/about/" pageRef = "/about/"
weight = 10 weight = 10
[[main]] [[main]]
name = "Blog" name = "Blog"
url = "/blog/" pageRef = "/blog/"
weight = 20 weight = 20
[[main]] [[main]]
name = "Projects" name = "Projects"
url = "/projects/" pageRef = "/projects/"
weight = 30 weight = 30
[[main]] [[main]]
name = "Sample project" name = "Sample project"
url = "/projects/sample-project/" pageRef = "/projects/sample-project/"
parent = "Projects" parent = "Projects"
weight = 1 weight = 1
[[main]] [[main]]
name = "Another project" name = "Another project"
url = "/projects/another-project/" pageRef = "/projects/another-project/"
parent = "Projects" parent = "Projects"
weight = 2 weight = 2
[[main]] [[main]]
name = "Tags" name = "Tags"
url = "/tags/" pageRef = "/tags/"
weight = 40 weight = 40
[[social]] [[social]]
@@ -51,23 +51,23 @@
# toml-docs-start sample-navigation # toml-docs-start sample-navigation
[[sample]] [[sample]]
name = "Blog" name = "Blog"
url = "/blog/" pageRef = "/blog/"
weight = 10 weight = 10
[[sample]] [[sample]]
name = "Projects" name = "Projects"
url = "/projects/" pageRef = "/projects/"
weight = 20 weight = 20
[[sample]] [[sample]]
name = "Sample project" name = "Sample project"
url = "/projects/sample-project/" pageRef = "/projects/sample-project/"
parent = "Projects" parent = "Projects"
weight = 1 weight = 1
[[sample]] [[sample]]
name = "Another project" name = "Another project"
url = "/projects/another-project/" pageRef = "/projects/another-project/"
parent = "Projects" parent = "Projects"
weight = 2 weight = 2
# toml-docs-end sample-navigation # toml-docs-end sample-navigation

View File

@@ -1,33 +1,33 @@
[[main]] [[main]]
name = "Over mij" name = "Over mij"
url = "/over-mij/" pageRef = "/over-mij/"
weight = 10 weight = 10
[[main]] [[main]]
name = "Blog" name = "Blog"
url = "/blog/" pageRef = "/blog/"
weight = 20 weight = 20
[[main]] [[main]]
name = "Projecten" name = "Projecten"
url = "/projecten/" pageRef = "/projecten/"
weight = 30 weight = 30
[[main]] [[main]]
name = "Voorbeeldproject" name = "Voorbeeldproject"
url = "/projecten/voorbeeldproject/" pageRef = "/projecten/voorbeeldproject/"
parent = "Projecten" parent = "Projecten"
weight = 1 weight = 1
[[main]] [[main]]
name = "Ander project" name = "Ander project"
url = "/projecten/ander-project/" pageRef = "/projecten/ander-project/"
parent = "Projecten" parent = "Projecten"
weight = 2 weight = 2
[[main]] [[main]]
name = "Tags" name = "Tags"
url = "/tags/" pageRef = "/tags/"
weight = 40 weight = 40
[[social]] [[social]]
@@ -51,23 +51,23 @@
# toml-docs-start sample-navigation # toml-docs-start sample-navigation
[[sample]] [[sample]]
name = "Blog" name = "Blog"
url = "/blog/" pageRef = "/blog/"
weight = 10 weight = 10
[[sample]] [[sample]]
name = "Projecten" name = "Projecten"
url = "/projecten/" pageRef = "/projecten/"
weight = 20 weight = 20
[[sample]] [[sample]]
name = "Voorbeeldproject" name = "Voorbeeldproject"
url = "/projecten/voorbeeldproject/" pageRef = "/projecten/voorbeeldproject/"
parent = "Projecten" parent = "Projecten"
weight = 1 weight = 1
[[sample]] [[sample]]
name = "Ander project" name = "Ander project"
url = "/projecten/ander-project/" pageRef = "/projecten/ander-project/"
parent = "Projecten" parent = "Projecten"
weight = 2 weight = 2
# toml-docs-end sample-navigation # toml-docs-end sample-navigation

View File

@@ -10,6 +10,8 @@
[docs] [docs]
version = "0.8" version = "0.8"
basePath = "" basePath = ""
github = "https://github.com/gethinode/hinode"
release = "https://github.com/gethinode/hinode/releases/tag/"
# toml-docs-end docs # toml-docs-end docs
# toml-docs-start home # toml-docs-start home

View File

@@ -1,7 +1,7 @@
--- ---
author: Mark Dumay author: Mark Dumay
title: Bootstrap elements title: Bootstrap elements
date: 2023-02-17 date: 2023-05-20
description: Use shortcodes to add common Bootstrap elements with ease. description: Use shortcodes to add common Bootstrap elements with ease.
tags: ["bootstrap", "shortcode"] tags: ["bootstrap", "shortcode"]
thumbnail: img/boots.jpg thumbnail: img/boots.jpg
@@ -223,6 +223,16 @@ As an example, the following shortcode displays a light navigation header.
{{< /example >}} {{< /example >}}
<!-- markdownlint-enable MD037 --> <!-- markdownlint-enable MD037 -->
## Release
As an example, the following shortcode displays a default release button.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* release version="v0.14.1" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Spinner ## Spinner
As an example, the following shortcode displays a centered spinner. As an example, the following shortcode displays a centered spinner.

View File

@@ -224,6 +224,16 @@ De volgende shortcode toont een navigatiemenu.
{{< /example >}} {{< /example >}}
<!-- markdownlint-enable MD037 --> <!-- markdownlint-enable MD037 -->
## Release
De volgende shortcode toont een knop voor een nieuwe release.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* release version="v0.14.1" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Spinner ## Spinner
De volgende shortcode toont een ronddraaiende cirkel. De volgende shortcode toont een ronddraaiende cirkel.

View File

@@ -75,6 +75,10 @@
translation: "Toggle main navigation" translation: "Toggle main navigation"
- id: demo - id: demo
translation: "Demo" translation: "Demo"
- id: addedFeature
translation: "Added in"
- id: deprecatedFeature
translation: "Deprecated in"
# 404 page # 404 page
- id: pageNotFound - id: pageNotFound

View File

@@ -65,6 +65,10 @@
translation: "Automatisch" translation: "Automatisch"
- id: toggleMainNav - id: toggleMainNav
translation: "Toon of verberg hoofdnavigatie" translation: "Toon of verberg hoofdnavigatie"
- id: addedFeature
translation: "Toegevoegd in"
- id: deprecatedFeature
translation: "Verouderd in"
# 404 page # 404 page
- id: pageNotFound - id: pageNotFound

11
layouts/alias.html Normal file
View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html{{ with site.LanguageCode | default site.Language.Lang }} lang="{{ . }}"{{ end }}>
<head>
<title>{{ .Permalink }}</title>
<link rel="canonical" href="{{ .Permalink }}">
<meta name="robots" content="noindex">
<meta charset="utf-8">
<noscript><meta http-equiv="refresh" content="0; url={{ .Permalink }}"></noscript>
<script src="/js/alias.js"></script>
</head>
</html>

View File

@@ -1,7 +1,14 @@
<nav aria-label="breadcrumb"> <nav aria-label="breadcrumb">
<ol class="breadcrumb"> <ol class="breadcrumb">
{{- range .Page.Ancestors.Reverse -}} {{- range $index, $item := .Page.Ancestors.Reverse -}}
<li class="breadcrumb-item"><a href="{{ .Permalink }}">{{ if not .IsHome }}{{ .Title }}{{ else }}{{ T "home" }}{{ end }}</a></li> {{- $title := .Title -}}
{{- if .IsHome }}{{ $title = T "home" }}{{ end -}}
{{- $address := or .Permalink (.Params.Redirect | absLangURL) -}}
{{ if $address }}
<li class="breadcrumb-item"><a href="{{ $address }}">{{ $title }}</a></li>
{{ else }}
<li class="breadcrumb-item">{{ $title }}</li>
{{ end }}
{{- end -}} {{- end -}}
<li class="breadcrumb-item active" aria-current="page">{{ .Page.Title }}</li> <li class="breadcrumb-item active" aria-current="page">{{ .Page.Title }}</li>
</ol> </ol>

View File

@@ -135,7 +135,7 @@
{{- if eq $orientation "horizontal" -}} {{- if eq $orientation "horizontal" -}}
<div class="card mb-3 {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}"> <div class="card mb-3 {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}">
<div class="row g-0"> <div class="row g-0 row-cols-1">
<div class="col-4"> <div class="col-4">
{{- if $thumbnail -}} {{- if $thumbnail -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "1x1" "outerClass" "h-100 card-img-wrap" "innerClass" "rounded-start card-img-h100" "title" $title) -}} {{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "1x1" "outerClass" "h-100 card-img-wrap" "innerClass" "rounded-start card-img-h100" "title" $title) -}}

View File

@@ -0,0 +1,45 @@
{{- $menu := .menu -}}
{{- $parent := .parent -}}
{{- $page := .page -}}
{{- $class := .class -}}
{{- $menuURL := (or $menu.PageRef $menu.URL) | relLangURL -}}
{{- $pageURL := $page.RelPermalink | relLangURL -}}
{{- $isActive := hasPrefix $pageURL $menuURL -}}
{{- $isAlias := $menu.Params.alias -}}
{{- $url := urls.Parse $menuURL -}}
{{- $baseURL := urls.Parse $.Site.Params.Baseurl -}}
{{- $isExternal := ne $url.Host $baseURL.Host -}}
{{- $externalHref := "" }}
{{- if $isExternal }}{{ $externalHref = "target=\"_blank\" rel=\"noopener noreferrer\"" }}{{ end -}}
{{- $mainNav := urlize (lower $menu.Name) -}}
{{- $childNav := "" -}}
{{- $button := "" -}}
{{- if $parent -}}
{{- $mainNav = urlize (lower $parent.Name) -}}
{{- $childNav = urlize (lower $menu.Name) -}}
{{- $class = printf "dropdown-item %s" $class -}}
{{- else if $menu.HasChildren -}}
{{- $class = printf "nav-link dropdown-toggle %s" $class -}}
{{- $button = " role=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"" -}}
{{- else -}}
{{- $class = printf "nav-link %s" $class -}}
{{- end -}}
{{- $params := "" -}}
{{- if and $isAlias (not $isExternal) -}}
{{- $params = printf "?menu=%s" $mainNav -}}
{{- with $childNav }}{{ $params = printf "%s&child=%s" $params . }}{{ end -}}
{{- end -}}
<a class="{{ $class }}{{ if $isActive }} active{{ end }}"
data-nav="main" data-nav-main="{{ $mainNav }}"{{ with $childNav }} data-nav-child="{{ . }}"{{ end }}
href="{{ $menuURL }}{{ $params | safeHTMLAttr }}"{{ with $externalHref }} {{ . | safeHTMLAttr }}{{ end }} {{ $button | safeHTMLAttr }}>
{{- with $menu.Pre }}{{ . }}{{ end -}}
<span {{ if $isActive }} class="active"{{ end }}>{{ $menu.Name }}</span>
{{- with $menu.Post }}{{ . }}{{ end -}}
{{- if $isExternal }} {{ partial "assets/icon.html" (dict "icon" "fas up-right-from-square fa-2xs") }}{{ end -}}
</a>

View File

@@ -5,8 +5,8 @@
"size" Optional size of the button, either "sm", "md" (default), or "lg". "size" Optional size of the button, either "sm", "md" (default), or "lg".
"fixed" Optional flag to indicate the navbar should stick to the top, defaults to false. "fixed" Optional flag to indicate the navbar should stick to the top, defaults to false.
"color" Optional background color of the navbar, either "primary", "secondary", "success", "color" Optional background color of the navbar, either "primary", "secondary", "success",
"danger", "warning", "info", "light", "dark", "white", "black", "body", or "body-tertiary". The "danger", "warning", "info", "white", "black", "body", or "body-tertiary". The default color is
default color is none. none.
"mode" Optional flag to include a color mode switcher, default is "true" (if dark mode is enabled). "mode" Optional flag to include a color mode switcher, default is "true" (if dark mode is enabled).
"search" Optional flag to include a search input, default is "true". "search" Optional flag to include a search input, default is "true".
"logo" Optional address of the logo image, defaults to the parameter "logo" set in the "main" section of "logo" Optional address of the logo image, defaults to the parameter "logo" set in the "main" section of
@@ -84,7 +84,7 @@
{{- $color := "" -}} {{- $color := "" -}}
{{- with .color -}} {{- with .color -}}
{{- $color = . -}} {{- $color = . -}}
{{- $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" "body" "body-tertiary" -}} {{- $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "white" "black" "body" "body-tertiary" -}}
{{- if not (in $supportedColors $color) -}} {{- if not (in $supportedColors $color) -}}
{{- errorf "partial [assets/navbar.html] - Invalid value for param 'color': %s" $color -}} {{- errorf "partial [assets/navbar.html] - Invalid value for param 'color': %s" $color -}}
{{- end -}} {{- end -}}
@@ -124,7 +124,11 @@
{{- $pre := .Pre -}} {{- $pre := .Pre -}}
{{- $post := .Post -}} {{- $post := .Post -}}
<nav class="navbar navbar-expand-{{ $size }} {{ with $color }}bg-{{ . }}{{ end }} {{ if $fixed }}fixed-top{{ end }} p-4"> {{- $theme := "" -}}
{{- if eq $color "black" }}{{ $theme = "dark" }}{{ end -}}
{{- if eq $color "white" }}{{ $theme = "light" }}{{ end -}}
<nav class="navbar navbar-expand-{{ $size }} {{ with $color }}bg-{{ . }}{{ end }} {{ if $fixed }}fixed-top{{ end }} p-4"{{ with $theme }} data-bs-theme="{{ . }}"{{ end }}>
<div class="container-xxl p-0"> <div class="container-xxl p-0">
<!-- Insert sidebar toggler when applicable --> <!-- Insert sidebar toggler when applicable -->
<div class="d-flex"> <div class="d-flex">
@@ -166,39 +170,19 @@
<!-- Render top-menu items (maximum depth of 2) --> <!-- Render top-menu items (maximum depth of 2) -->
<ul class="navbar-nav ms-auto"> <ul class="navbar-nav ms-auto">
{{- range $menu := $menus -}} {{- range $menu := $menus -}}
{{- $menu_item_url := $menu.URL | relLangURL -}} <li class="nav-item{{ if .HasChildren }} dropdown{{ end }}">
{{- $page_url:= $page.RelPermalink | relLangURL -}} {{- partial "assets/navbar-item.html" (dict "menu" $menu "page" $page) -}}
{{- $active := hasPrefix $page_url $menu_item_url -}}
{{- $url := urls.Parse .URL -}}
{{- $baseurl := urls.Parse $.Site.Params.Baseurl -}}
{{- if .HasChildren -}} {{- if .HasChildren -}}
<li class="nav-item dropdown">
<a class="nav-link {{ if $active }}active{{ end }} dropdown-toggle" href="{{ .URL | relLangURL }}" role="button" data-bs-toggle="dropdown" aria-expanded="false">
{{ if $active }}<span class="active">{{ .Name }}</span>{{ else }}{{ .Name }}{{ end }}
</a>
<ul class="dropdown-menu dropdown-menu-end"> <ul class="dropdown-menu dropdown-menu-end">
{{- range .Children -}} {{- range .Children -}}
{{- $child_active := eq $page_url (.URL | relLangURL) -}} {{- partial "assets/navbar-item.html" (dict "menu" . "parent" $menu "page" $page) -}}
<li><a class="dropdown-item {{ if $child_active }}active{{ end }}" href="{{ .URL | relLangURL }}">{{ .Name }}</a></li>
{{- end -}} {{- end -}}
</ul> </ul>
</li> {{- end -}}
{{- else -}}
<li class="nav-item">
{{- $external := ne $url.Host $baseurl.Host -}}
<a class="nav-link {{ if $active }}active{{ end }}"
href="{{ with .Page }}{{ .RelPermalink }}{{ else }}{{ .URL | relLangURL }}{{ end }}" {{ if $external }}target="_blank" rel="noopener noreferrer" {{ end }}>
{{- with $pre}}{{ . }}{{ end -}}
<span {{if $active }} class="active"{{end}}>{{ .Name }}</span>
{{- with $post}}{{ . }}{{ end -}}
{{- if $external }} {{ partial "assets/icon.html" (dict "icon" "fas up-right-from-square fa-2xs") }}{{ end -}}
</a>
</li> </li>
{{- end -}} {{- end -}}
{{- end -}}
<!-- Insert divider if applicable -->
{{- if or $enableLanguage $enableDarkMode -}} {{- if or $enableLanguage $enableDarkMode -}}
<li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $size }}-block"> <li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $size }}-block">
<div class="vr d-none d-md-flex h-100 mx-md-2"></div> <div class="vr d-none d-md-flex h-100 mx-md-2"></div>

View File

@@ -30,7 +30,7 @@
{{- end -}} {{- end -}}
{{- if not hugo.IsProduction -}} {{- if not hugo.IsProduction -}}
<link rel="stylesheet" href="{{ $css.Permalink | relLangURL }}"> <link rel="stylesheet" href="{{ $css.Permalink }}">
{{- else -}} {{- else -}}
{{- $css = $css | fingerprint | resources.PostProcess -}} {{- $css = $css | fingerprint | resources.PostProcess -}}
<link rel="stylesheet" href="{{ $css.Permalink }}" integrity="{{ $css.Data.Integrity }}" crossorigin="anonymous"> <link rel="stylesheet" href="{{ $css.Permalink }}" integrity="{{ $css.Data.Integrity }}" crossorigin="anonymous">

View File

@@ -1 +1,6 @@
{{ return index .Site.Data .Section }} {{- $menu := "" -}}
{{- if .IsPage -}}
{{- $menu = index .Site.Data .Section -}}
{{- end -}}
{{- return $menu -}}

View File

@@ -5,6 +5,12 @@
"show" Optional flag to indicate an item should be shown as collapsed. "show" Optional flag to indicate an item should be shown as collapsed.
--> -->
{{- $id := .Ordinal -}}
{{- $parent := printf "accordion-%d" .Parent.Ordinal -}}
{{- with (.Parent.Get "id") -}}
{{- $parent = . -}}
{{- end -}}
{{- $id := .Ordinal -}} {{- $id := .Ordinal -}}
{{ $header := .Get "header" -}} {{ $header := .Get "header" -}}
{{ if not $header -}} {{ if not $header -}}
@@ -35,8 +41,6 @@
{{ errorf "Invalid value for param 'show': %s" $showParam -}} {{ errorf "Invalid value for param 'show': %s" $showParam -}}
{{ end -}} {{ end -}}
{{- $parent := printf "accordion-%d" .Parent.Ordinal -}}
<div class="accordion-item"> <div class="accordion-item">
{{- with $header -}} {{- with $header -}}
<h2 class="accordion-header m-0" id="{{ $parent }}-heading-{{ $id }}"> <h2 class="accordion-header m-0" id="{{ $parent }}-heading-{{ $id }}">

View File

@@ -1,12 +1,34 @@
<!-- <!--
Displays a group of vertically collapsing and expanding items. Add accordion-item inner elements for each accordion Displays a group of vertically collapsing and expanding items. Add accordion-item inner elements for each accordion
item. The shortcode supports the following arguments: item. The shortcode supports the following arguments:
"id": Optional id of the accordion, defaults to "accordion-" with a sequential number.
"always-open": Optional flag to make accordion items stay open when another item is opened.
"class": Optional class attribute of the accordion element, e.g. “w-50”. "class": Optional class attribute of the accordion element, e.g. “w-50”.
--> -->
{{- $id := .Ordinal -}} {{- $id := printf "accordion-%d" .Ordinal -}}
{{ with .Get "id" }}
{{ $id = . }}
{{ end }}
{{- $class := .Get "class" -}} {{- $class := .Get "class" -}}
<div id="accordion-{{ $id }}" class="accordion mb-3{{ with $class }} {{ . }}{{ end }}"> {{- $openParam := "false" -}}
{{- .Inner -}} {{- $open := false -}}
{{- with .Get "always-open" }}{{ $openParam = . }}{{ end -}}
{{- $supportedFlags := slice "true" "false" -}}
{{- if in $supportedFlags $openParam -}}
{{- if eq $openParam "true" }}{{ $open = true }}{{ end -}}
{{- else -}}
{{- errorf "Invalid value for param 'always-open': %s" .Position -}}
{{- $error = true -}}
{{- end -}}
{{- $body := .Inner -}}
{{- if $open -}}
{{- $pattern := printf "data-bs-parent=\"#%s\"" $id -}}
{{- $body = (replace .Inner $pattern "") | markdownify | safeHTML }}
{{- end -}}
<div id="{{ $id }}" class="accordion mb-3{{ with $class }} {{ . }}{{ end }}">
{{- $body -}}
</div> </div>

View File

@@ -6,15 +6,19 @@
"icon" Optional class and name of a Font Awesome icon to include. "icon" Optional class and name of a Font Awesome icon to include.
--> -->
{{- $error := false -}}
{{ $color := "primary" -}} {{ $color := "primary" -}}
{{ with .Get "color" }}{{ $color = . }}{{ end -}} {{ with .Get "color" }}{{ $color = . }}{{ end -}}
{{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" -}} {{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" -}}
{{ if not (in $supportedColors $color) -}} {{ if not (in $supportedColors $color) -}}
{{ errorf "Invalid value for param 'color': %s" .Position -}} {{ errorf "Invalid value for param 'color': %s" .Position -}}
{{ $color = "primary" -}} {{ $error = true -}}
{{ end -}} {{ end -}}
{{ $icon := .Get "icon" }} {{ $icon := "" }}
{{ with .Get "icon" }}
{{ $icon = partial "assets/icon.html" (dict "icon" (printf "%s fa-2x fa-pull-left" .)) }}
{{ end }}
{{ $dismissibleParam := "false" -}} {{ $dismissibleParam := "false" -}}
{{ $dismissible := false -}} {{ $dismissible := false -}}
@@ -24,10 +28,13 @@
{{ if eq $dismissibleParam "true" }}{{ $dismissible = true }}{{ end -}} {{ if eq $dismissibleParam "true" }}{{ $dismissible = true }}{{ end -}}
{{ else -}} {{ else -}}
{{ errorf "Invalid value for param 'dismissible': %s" .Position -}} {{ errorf "Invalid value for param 'dismissible': %s" .Position -}}
{{ $error = true -}}
{{ end -}} {{ end -}}
{{- if not $error -}}
<div class="alert alert-{{ $color }} {{ if $dismissible }}alert-dismissible fade show{{ end }}" role="alert"> <div class="alert alert-{{ $color }} {{ if $dismissible }}alert-dismissible fade show{{ end }}" role="alert">
{{ with $icon }}<i class="{{ . }} fa-2x fa-pull-left"></i>{{ end }} {{ with $icon }}{{ . }}{{ end }}
{{ trim .Inner " \r\n" | markdownify | safeHTML -}} {{ trim .Inner " \r\n" | markdownify | safeHTML -}}
{{ if $dismissible }}<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>{{ end }} {{ if $dismissible }}<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>{{ end }}
</div> </div>
{{- end -}}

View File

@@ -1,18 +1,23 @@
<!-- <!--
Displays a carousel of several responsive images (see the image shortcode for more details). Add inner <img> Displays a carousel of several responsive images (see the image shortcode for more details). Add inner <img>
elements to define individual image slides. The shortcode supports the following arguments: elements to define individual image slides. The shortcode supports the following arguments:
"id": Optional id of the carousel, defaults to "carousel-" with a sequential number.
"ratio": Optional ratio of the image, either "1x1", "4x3", "16x9", or "21x9". Other values are ignored. "ratio": Optional ratio of the image, either "1x1", "4x3", "16x9", or "21x9". Other values are ignored.
Instead, the original aspect ratio of the image is preserved. Instead, the original aspect ratio of the image is preserved.
"class": Optional class attribute of the carousel element, e.g. “w-75”. "class": Optional class attribute of the carousel element, e.g. “w-75”.
--> -->
{{- $id := printf "carousel-%d" .Ordinal -}}
{{ with .Get "id" }}
{{ $id = . }}
{{ end }}
{{ $ratio := .Get "ratio" -}} {{ $ratio := .Get "ratio" -}}
{{ $class := .Get "class" -}} {{ $class := .Get "class" -}}
{{ $id := .Ordinal -}}
{{ $images := .Inner -}} {{ $images := .Inner -}}
{{ $items := len (findRE "carousel-item" $images) -}} {{ $items := len (findRE "carousel-item" $images) -}}
<div id="carousel-{{ $id }}" class="carousel slide mb-3{{ with $class }} {{ . }}{{ end }}" data-bs-ride="true"> <div id="{{ $id }}" class="carousel slide mb-3{{ with $class }} {{ . }}{{ end }}" data-bs-ride="true">
<div class="carousel-indicators"> <div class="carousel-indicators">
{{ range $index := (seq $items) -}} {{ range $index := (seq $items) -}}
<button type="button" data-bs-target="#carousel-{{ $id }}" data-bs-slide-to="{{ sub $index 1 }}" {{ if eq $index 1 }}class="active"{{ end }} aria-current="true" aria-label="Slide {{ $index }}"></button> <button type="button" data-bs-target="#carousel-{{ $id }}" data-bs-slide-to="{{ sub $index 1 }}" {{ if eq $index 1 }}class="active"{{ end }} aria-current="true" aria-label="Slide {{ $index }}"></button>
@@ -21,11 +26,11 @@
<div class="carousel-inner"> <div class="carousel-inner">
{{ $images }} {{ $images }}
</div> </div>
<button class="carousel-control-prev" type="button" data-bs-target="#carousel-{{ $id }}" data-bs-slide="prev"> <button class="carousel-control-prev" type="button" data-bs-target="#{{ $id }}" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span> <span class="visually-hidden">Previous</span>
</button> </button>
<button class="carousel-control-next" type="button" data-bs-target="#carousel-{{ $id }}" data-bs-slide="next"> <button class="carousel-control-next" type="button" data-bs-target="#{{ $id }}" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span> <span class="visually-hidden">Next</span>
</button> </button>

View File

@@ -7,8 +7,8 @@
"size" Optional breakpoint of the navbar toggler, either "xs", "sm", "md" (default), "lg", or "xl". "size" Optional breakpoint of the navbar toggler, either "xs", "sm", "md" (default), "lg", or "xl".
"style" Optional style of the navbar, either "light" (default) or "dark". "style" Optional style of the navbar, either "light" (default) or "dark".
"color" Optional background color of the navbar, either "primary", "secondary", "success", "color" Optional background color of the navbar, either "primary", "secondary", "success",
"danger", "warning", "info", "light", "dark", "white", "black", "body", or "body-tertiary". The "danger", "warning", "info", "white", "black", "body", or "body-tertiary". The default color is
default color is none. none.
"mode" Optional flag to include a color mode switcher, default is "true" (if dark mode is enabled). "mode" Optional flag to include a color mode switcher, default is "true" (if dark mode is enabled).
"search" Optional flag to include a search input, default is "true". "search" Optional flag to include a search input, default is "true".
"logo" Optional address of the logo image. "logo" Optional address of the logo image.
@@ -16,7 +16,7 @@
--> -->
{{ $error := false }} {{ $error := false }}
{{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" "body" "body" "body-tertiary" -}} {{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "white" "black" "body" "body" "body-tertiary" -}}
{{ $supportedFlags := slice "true" "false" -}} {{ $supportedFlags := slice "true" "false" -}}
{{ $id := add .Ordinal 1 }} {{ $id := add .Ordinal 1 }}

View File

@@ -0,0 +1,68 @@
<!--
Displays a release button that links to a specific release. Use the optional state to indicate if it is a new or
deprecated feature.
"version": Required version string, expects semver notation with a "v" prefix.
"state": Optional state, either "new" or "deprecated".
"short": Optional flag to indicate the release button should use short notation.
-->
{{- $error := false -}}
{{- $version := .Get "version" -}}
{{- $inline := false -}}
{{- $state := "new" -}}
{{- with .Get "state" }}{{ $state = . }}{{ end -}}
{{- $supportedStates := slice "new" "deprecated" -}}
{{- if not (in $supportedStates $state) -}}
{{- errorf "Invalid value for param 'state': %s" .Position -}}
{{- $error = true -}}
{{- end -}}
{{- $shortParam := "false" -}}
{{- $short := false -}}
{{- with .Get "short" }}{{ $shortParam = . }}{{ end -}}
{{- $supportedFlags := slice "true" "false" -}}
{{- if in $supportedFlags $shortParam -}}
{{- if eq $shortParam "true" }}{{ $short = true }}{{ end -}}
{{- else -}}
{{- errorf "Invalid value for param 'short': %s" .Position -}}
{{- $error = true -}}
{{- end -}}
{{- $inlineParam := "false" -}}
{{- $inline := false -}}
{{- with .Get "inline" }}{{ $inlineParam = . }}{{ end -}}
{{- $supportedFlags := slice "true" "false" -}}
{{- if in $supportedFlags $inlineParam -}}
{{- if eq $inlineParam "true" }}{{ $inline = true }}{{ end -}}
{{- else -}}
{{- errorf "Invalid value for param 'inline': %s" .Position -}}
{{- $error = true -}}
{{- end -}}
{{- $title := $version -}}
{{- $color := "success" -}}
{{- if eq $state "deprecated" -}}
{{- $color = "secondary" -}}
{{- end -}}
{{- if not $short -}}
{{- if eq $state "deprecated" -}}
{{- $title = (printf "Deprecated in %s" $version) -}}
{{- else -}}
{{- $title = (printf "Added in %s" $version) -}}
{{- end -}}
{{- end -}}
{{- if not $error -}}
<div class="pb-3">
{{- partial "assets/button.html" (dict
"title" $title
"href" (path.Join site.Params.docs.release $version)
"size" "sm"
"color" $color
"outline" "true"
"class" "rounded-2 fw-semibold")
-}}
</div>
{{- end -}}

View File

@@ -1,7 +1,7 @@
<!-- <!--
Displays a tooltip for a link. The shortcode supports the following arguments: Displays a tooltip for a link. The shortcode supports the following arguments:
"color": Optional theme color of the element, either "primary" (default), "secondary", "success", "color": Optional theme color of the element, either "primary" (default), "secondary", "success",
"danger", "warning", "info", "light", "dark", "white", or "black". "danger", "warning", "info", "light", or "dark".
"title" Required text to display in the tooltip. "title" Required text to display in the tooltip.
"href" Required address for the button or hyperlink. "href" Required address for the button or hyperlink.
"placement" Optional position of the tooltip: "top" (default), "bottom", "left", or "right". "placement" Optional position of the tooltip: "top" (default), "bottom", "left", or "right".
@@ -18,7 +18,7 @@
{{ $color := "primary" -}} {{ $color := "primary" -}}
{{ with .Get "color" }}{{ $color = . }}{{ end -}} {{ with .Get "color" }}{{ $color = . }}{{ end -}}
{{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" -}} {{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" -}}
{{ if not (in $supportedColors $color) -}} {{ if not (in $supportedColors $color) -}}
{{ errorf "Invalid value for param 'color': %s" .Position -}} {{ errorf "Invalid value for param 'color': %s" .Position -}}
{{ $error = true }} {{ $error = true }}

464
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "0.13.0", "version": "0.14.1",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "0.13.0", "version": "0.14.1",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"@fortawesome/fontawesome-free": "^6.4.0", "@fortawesome/fontawesome-free": "^6.4.0",
@@ -310,6 +310,102 @@
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
"dev": true "dev": true
}, },
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
"integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
"dev": true,
"dependencies": {
"string-width": "^5.1.2",
"string-width-cjs": "npm:string-width@^4.2.0",
"strip-ansi": "^7.0.1",
"strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
"wrap-ansi": "^8.1.0",
"wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/@isaacs/cliui/node_modules/ansi-regex": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
"integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
"node_modules/@isaacs/cliui/node_modules/ansi-styles": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
"integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/@isaacs/cliui/node_modules/emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
"dev": true
},
"node_modules/@isaacs/cliui/node_modules/string-width": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
"dependencies": {
"eastasianwidth": "^0.2.0",
"emoji-regex": "^9.2.2",
"strip-ansi": "^7.0.1"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@isaacs/cliui/node_modules/strip-ansi": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
"integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
"dev": true,
"dependencies": {
"ansi-regex": "^6.0.1"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
"node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
"integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
"dev": true,
"dependencies": {
"ansi-styles": "^6.1.0",
"string-width": "^5.0.1",
"strip-ansi": "^7.0.1"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
"node_modules/@nodelib/fs.scandir": { "node_modules/@nodelib/fs.scandir": {
"version": "2.1.5", "version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -345,6 +441,16 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
"integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
"dev": true,
"optional": true,
"engines": {
"node": ">=14"
}
},
"node_modules/@popperjs/core": { "node_modules/@popperjs/core": {
"version": "2.11.7", "version": "2.11.7",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz",
@@ -1972,6 +2078,12 @@
"url": "https://github.com/fb55/domutils?sponsor=1" "url": "https://github.com/fb55/domutils?sponsor=1"
} }
}, },
"node_modules/eastasianwidth": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
"dev": true
},
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.4.284", "version": "1.4.284",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
@@ -2831,6 +2943,34 @@
"integrity": "sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==", "integrity": "sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==",
"dev": true "dev": true
}, },
"node_modules/foreground-child": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
"integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
"dev": true,
"dependencies": {
"cross-spawn": "^7.0.0",
"signal-exit": "^4.0.1"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/foreground-child/node_modules/signal-exit": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
"integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==",
"dev": true,
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/fraction.js": { "node_modules/fraction.js": {
"version": "4.2.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
@@ -3398,9 +3538,9 @@
"dev": true "dev": true
}, },
"node_modules/hugo-bin": { "node_modules/hugo-bin": {
"version": "0.102.0", "version": "0.102.2",
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.102.0.tgz", "resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.102.2.tgz",
"integrity": "sha512-gJeDdC4W0x/+a8rf7pz8L/NheEeHIKrtLIHFwMumX04UAFYUA065A4uQmDjRspsMdQ9muwB9eQfOwTSjqaYyrQ==", "integrity": "sha512-Agx3selH3s+4tEyRyRVGsD7OpWuBzQnGCpkLVUVCgqCiPU4pZwyL5a6uJ7CA1A+ORIVPyUUgwMUgqTf0sqS5Ew==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@@ -3414,7 +3554,7 @@
"pkg-conf": "^4.0.0" "pkg-conf": "^4.0.0"
}, },
"bin": { "bin": {
"hugo": "cli.js" "hugo": "bin/cli.js"
}, },
"engines": { "engines": {
"node": "^14.14.0 || >=16.0.0" "node": "^14.14.0 || >=16.0.0"
@@ -3824,6 +3964,24 @@
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true "dev": true
}, },
"node_modules/jackspeak": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz",
"integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==",
"dev": true,
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
},
"optionalDependencies": {
"@pkgjs/parseargs": "^0.11.0"
}
},
"node_modules/js-sdsl": { "node_modules/js-sdsl": {
"version": "4.2.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
@@ -4295,12 +4453,12 @@
} }
}, },
"node_modules/minipass": { "node_modules/minipass": {
"version": "5.0.0", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz",
"integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=8" "node": ">=16 || 14 >=14.17"
} }
}, },
"node_modules/ms": { "node_modules/ms": {
@@ -4671,13 +4829,13 @@
"dev": true "dev": true
}, },
"node_modules/path-scurry": { "node_modules/path-scurry": {
"version": "1.6.4", "version": "1.9.2",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz",
"integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"lru-cache": "^9.0.0", "lru-cache": "^9.1.1",
"minipass": "^5.0.0" "minipass": "^5.0.0 || ^6.0.2"
}, },
"engines": { "engines": {
"node": ">=16 || 14 >=14.17" "node": ">=16 || 14 >=14.17"
@@ -4687,12 +4845,12 @@
} }
}, },
"node_modules/path-scurry/node_modules/lru-cache": { "node_modules/path-scurry/node_modules/lru-cache": {
"version": "9.0.0", "version": "9.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.0.tgz", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz",
"integrity": "sha512-9AEKXzvOZc4BMacFnYiTOlDH/197LNnQIK9wZ6iMB5NXPzuv4bWR/Msv7iUMplkiMQ1qQL+KSv/JF1mZAB5Lrg==", "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=16.14" "node": "14 || >=16.14"
} }
}, },
"node_modules/path-type": { "node_modules/path-type": {
@@ -5916,12 +6074,12 @@
} }
}, },
"node_modules/rimraf": { "node_modules/rimraf": {
"version": "5.0.0", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz",
"integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==", "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"glob": "^10.0.0" "glob": "^10.2.5"
}, },
"bin": { "bin": {
"rimraf": "dist/cjs/src/bin.js" "rimraf": "dist/cjs/src/bin.js"
@@ -5943,15 +6101,19 @@
} }
}, },
"node_modules/rimraf/node_modules/glob": { "node_modules/rimraf/node_modules/glob": {
"version": "10.0.0", "version": "10.2.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.5.tgz",
"integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", "integrity": "sha512-Gj+dFYPZ5hc5dazjXzB0iHg2jKWJZYMjITXYPBRQ/xc2Buw7H0BINknRTwURJ6IC6MEFpYbLvtgVb3qD+DwyuA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"fs.realpath": "^1.0.0", "foreground-child": "^3.1.0",
"jackspeak": "^2.0.3",
"minimatch": "^9.0.0", "minimatch": "^9.0.0",
"minipass": "^5.0.0", "minipass": "^5.0.0 || ^6.0.2",
"path-scurry": "^1.6.4" "path-scurry": "^1.7.0"
},
"bin": {
"glob": "dist/cjs/src/bin.js"
}, },
"engines": { "engines": {
"node": ">=16 || 14 >=14.17" "node": ">=16 || 14 >=14.17"
@@ -6335,6 +6497,21 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/string-width-cjs": {
"name": "string-width",
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/string.prototype.trimend": { "node_modules/string.prototype.trimend": {
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
@@ -6375,6 +6552,19 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/strip-ansi-cjs": {
"name": "strip-ansi",
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"dependencies": {
"ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/strip-bom": { "node_modules/strip-bom": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -6461,9 +6651,9 @@
} }
}, },
"node_modules/stylelint": { "node_modules/stylelint": {
"version": "15.6.1", "version": "15.6.2",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.6.1.tgz", "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.6.2.tgz",
"integrity": "sha512-d8icFBlVl93Elf3Z5ABQNOCe4nx69is3D/NZhDLAie1eyYnpxfeKe7pCfqzT5W4F8vxHCLSDfV8nKNJzogvV2Q==", "integrity": "sha512-fjQWwcdUye4DU+0oIxNGwawIPC5DvG5kdObY5Sg4rc87untze3gC/5g/ikePqVjrAsBUZjwMN+pZsAYbDO6ArQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@csstools/css-parser-algorithms": "^2.1.1", "@csstools/css-parser-algorithms": "^2.1.1",
@@ -7037,6 +7227,24 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1" "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
} }
}, },
"node_modules/wrap-ansi-cjs": {
"name": "wrap-ansi",
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
"node_modules/wrappy": { "node_modules/wrappy": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -7348,6 +7556,71 @@
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
"dev": true "dev": true
}, },
"@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
"integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
"dev": true,
"requires": {
"string-width": "^5.1.2",
"string-width-cjs": "npm:string-width@^4.2.0",
"strip-ansi": "^7.0.1",
"strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
"wrap-ansi": "^8.1.0",
"wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
"integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
"dev": true
},
"ansi-styles": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
"integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true
},
"emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
"dev": true
},
"string-width": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
"requires": {
"eastasianwidth": "^0.2.0",
"emoji-regex": "^9.2.2",
"strip-ansi": "^7.0.1"
}
},
"strip-ansi": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
"integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
"dev": true,
"requires": {
"ansi-regex": "^6.0.1"
}
},
"wrap-ansi": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
"integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
"dev": true,
"requires": {
"ansi-styles": "^6.1.0",
"string-width": "^5.0.1",
"strip-ansi": "^7.0.1"
}
}
}
},
"@nodelib/fs.scandir": { "@nodelib/fs.scandir": {
"version": "2.1.5", "version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -7374,6 +7647,13 @@
"fastq": "^1.6.0" "fastq": "^1.6.0"
} }
}, },
"@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
"integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
"dev": true,
"optional": true
},
"@popperjs/core": { "@popperjs/core": {
"version": "2.11.7", "version": "2.11.7",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz",
@@ -8529,6 +8809,12 @@
"domhandler": "^5.0.1" "domhandler": "^5.0.1"
} }
}, },
"eastasianwidth": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
"dev": true
},
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.4.284", "version": "1.4.284",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
@@ -9174,6 +9460,24 @@
"integrity": "sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==", "integrity": "sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==",
"dev": true "dev": true
}, },
"foreground-child": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
"integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
"dev": true,
"requires": {
"cross-spawn": "^7.0.0",
"signal-exit": "^4.0.1"
},
"dependencies": {
"signal-exit": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
"integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==",
"dev": true
}
}
},
"fraction.js": { "fraction.js": {
"version": "4.2.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
@@ -9592,9 +9896,9 @@
"dev": true "dev": true
}, },
"hugo-bin": { "hugo-bin": {
"version": "0.102.0", "version": "0.102.2",
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.102.0.tgz", "resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.102.2.tgz",
"integrity": "sha512-gJeDdC4W0x/+a8rf7pz8L/NheEeHIKrtLIHFwMumX04UAFYUA065A4uQmDjRspsMdQ9muwB9eQfOwTSjqaYyrQ==", "integrity": "sha512-Agx3selH3s+4tEyRyRVGsD7OpWuBzQnGCpkLVUVCgqCiPU4pZwyL5a6uJ7CA1A+ORIVPyUUgwMUgqTf0sqS5Ew==",
"dev": true, "dev": true,
"requires": { "requires": {
"@xhmikosr/bin-wrapper": "^5.0.1", "@xhmikosr/bin-wrapper": "^5.0.1",
@@ -9880,6 +10184,16 @@
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true "dev": true
}, },
"jackspeak": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz",
"integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==",
"dev": true,
"requires": {
"@isaacs/cliui": "^8.0.2",
"@pkgjs/parseargs": "^0.11.0"
}
},
"js-sdsl": { "js-sdsl": {
"version": "4.2.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
@@ -10242,9 +10556,9 @@
} }
}, },
"minipass": { "minipass": {
"version": "5.0.0", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz",
"integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==",
"dev": true "dev": true
}, },
"ms": { "ms": {
@@ -10500,19 +10814,19 @@
"dev": true "dev": true
}, },
"path-scurry": { "path-scurry": {
"version": "1.6.4", "version": "1.9.2",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz",
"integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==",
"dev": true, "dev": true,
"requires": { "requires": {
"lru-cache": "^9.0.0", "lru-cache": "^9.1.1",
"minipass": "^5.0.0" "minipass": "^5.0.0 || ^6.0.2"
}, },
"dependencies": { "dependencies": {
"lru-cache": { "lru-cache": {
"version": "9.0.0", "version": "9.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.0.tgz", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz",
"integrity": "sha512-9AEKXzvOZc4BMacFnYiTOlDH/197LNnQIK9wZ6iMB5NXPzuv4bWR/Msv7iUMplkiMQ1qQL+KSv/JF1mZAB5Lrg==", "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==",
"dev": true "dev": true
} }
} }
@@ -11317,12 +11631,12 @@
"dev": true "dev": true
}, },
"rimraf": { "rimraf": {
"version": "5.0.0", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz",
"integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==", "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==",
"dev": true, "dev": true,
"requires": { "requires": {
"glob": "^10.0.0" "glob": "^10.2.5"
}, },
"dependencies": { "dependencies": {
"brace-expansion": { "brace-expansion": {
@@ -11335,15 +11649,16 @@
} }
}, },
"glob": { "glob": {
"version": "10.0.0", "version": "10.2.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.5.tgz",
"integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", "integrity": "sha512-Gj+dFYPZ5hc5dazjXzB0iHg2jKWJZYMjITXYPBRQ/xc2Buw7H0BINknRTwURJ6IC6MEFpYbLvtgVb3qD+DwyuA==",
"dev": true, "dev": true,
"requires": { "requires": {
"fs.realpath": "^1.0.0", "foreground-child": "^3.1.0",
"jackspeak": "^2.0.3",
"minimatch": "^9.0.0", "minimatch": "^9.0.0",
"minipass": "^5.0.0", "minipass": "^5.0.0 || ^6.0.2",
"path-scurry": "^1.6.4" "path-scurry": "^1.7.0"
} }
}, },
"minimatch": { "minimatch": {
@@ -11618,6 +11933,17 @@
"strip-ansi": "^6.0.1" "strip-ansi": "^6.0.1"
} }
}, },
"string-width-cjs": {
"version": "npm:string-width@4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
}
},
"string.prototype.trimend": { "string.prototype.trimend": {
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
@@ -11649,6 +11975,15 @@
"ansi-regex": "^5.0.1" "ansi-regex": "^5.0.1"
} }
}, },
"strip-ansi-cjs": {
"version": "npm:strip-ansi@6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"requires": {
"ansi-regex": "^5.0.1"
}
},
"strip-bom": { "strip-bom": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -11705,9 +12040,9 @@
} }
}, },
"stylelint": { "stylelint": {
"version": "15.6.1", "version": "15.6.2",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.6.1.tgz", "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.6.2.tgz",
"integrity": "sha512-d8icFBlVl93Elf3Z5ABQNOCe4nx69is3D/NZhDLAie1eyYnpxfeKe7pCfqzT5W4F8vxHCLSDfV8nKNJzogvV2Q==", "integrity": "sha512-fjQWwcdUye4DU+0oIxNGwawIPC5DvG5kdObY5Sg4rc87untze3gC/5g/ikePqVjrAsBUZjwMN+pZsAYbDO6ArQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@csstools/css-parser-algorithms": "^2.1.1", "@csstools/css-parser-algorithms": "^2.1.1",
@@ -12142,6 +12477,17 @@
"strip-ansi": "^6.0.0" "strip-ansi": "^6.0.0"
} }
}, },
"wrap-ansi-cjs": {
"version": "npm:wrap-ansi@7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
}
},
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "0.13.0", "version": "0.14.1",
"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",

3
static/js/alias.js Normal file
View File

@@ -0,0 +1,3 @@
const alias = document.querySelector("link[rel='canonical']").getAttribute('href')
const params = window.location.search + window.location.hash
window.location = alias + params