Compare commits

..

41 Commits

Author SHA1 Message Date
Mark Dumay
c8e2d3410c Merge pull request #269 from gethinode/develop
Fixes
2023-05-27 10:38:56 +02:00
Mark Dumay
8d53c762d7 Merge branch 'main' into develop 2023-05-27 10:27:16 +02:00
mark
22d2e41601 Bump package release 2023-05-27 10:26:44 +02:00
mark
b462c31916 Remove redundant empty lines on copy 2023-05-27 09:45:28 +02:00
mark
dbb5b4be69 Add a toast message on copy 2023-05-27 09:21:35 +02:00
mark
4f288ec5dd Add subject to copy message 2023-05-27 09:21:11 +02:00
mark
8fb47e27af Remove debug statement 2023-05-27 09:07:37 +02:00
mark
a0d2063738 Set message placement to default value 2023-05-27 09:06:07 +02:00
mark
c17986bb49 Enable toast placement configuration 2023-05-27 09:03:44 +02:00
mark
bafd522530 Embed container in base to aid CSS purge 2023-05-27 09:03:14 +02:00
mark
930e151365 Embed container in base to aid CSS purge 2023-05-27 09:02:47 +02:00
Mark Dumay
6687e09d68 Merge pull request #268 from gethinode/develop
Social media
2023-05-26 14:15:11 +02:00
Mark Dumay
86ec79d08a Merge branch 'main' into develop 2023-05-26 14:06:28 +02:00
mark
afb42a188c Rename order param to reverse 2023-05-26 13:43:00 +02:00
mark
c303e97eb0 Bump package release 2023-05-26 13:29:21 +02:00
mark
1ad2a4c617 Add social sharing buttons 2023-05-26 13:28:17 +02:00
mark
2bf15ca8b2 Add comments 2023-05-26 12:44:11 +02:00
mark
e00ab2a2fd Remove debug statements 2023-05-26 12:44:00 +02:00
mark
98c422a6d4 Add clipboard button support 2023-05-26 12:43:17 +02:00
mark
527060e219 Add clipboard support 2023-05-26 12:42:27 +02:00
github-actions[bot]
b5c81cd121 Merge pull request #267 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.103.3
Bump hugo-bin from 0.103.2 to 0.103.3
2023-05-25 14:10:58 +00:00
dependabot[bot]
9fbe81a668 Bump hugo-bin from 0.103.2 to 0.103.3
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.103.2 to 0.103.3.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.103.2...v0.103.3)

---
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-25 14:06:12 +00:00
mark
cf4ed131aa Adjust toast examples 2023-05-25 13:04:24 +02:00
mark
15a9eb2c5c Change toast behavior 2023-05-25 13:03:58 +02:00
mark
3271fcc97e Rewrite DOM to stack toast messages 2023-05-25 13:03:11 +02:00
mark
0752b4cfbf Refactor toast shorcode 2023-05-25 13:02:10 +02:00
github-actions[bot]
965845137c Merge pull request #266 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.103.2
Bump hugo-bin from 0.103.0 to 0.103.2
2023-05-24 14:09:04 +00:00
dependabot[bot]
8f83138cbc Bump hugo-bin from 0.103.0 to 0.103.2
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.103.0 to 0.103.2.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.103.0...v0.103.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-24 14:04:55 +00:00
github-actions[bot]
86d726d10c Merge pull request #265 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.103.0
Bump hugo-bin from 0.102.2 to 0.103.0
2023-05-23 14:08:18 +00:00
dependabot[bot]
2860edd1bd Bump hugo-bin from 0.102.2 to 0.103.0
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.102.2 to 0.103.0.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.102.2...v0.103.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-23 14:04:52 +00:00
github-actions[bot]
d802df87ef Merge pull request #264 from gethinode/dependabot/npm_and_yarn/eslint-8.41.0
Bump eslint from 8.40.0 to 8.41.0
2023-05-22 14:14:19 +00:00
dependabot[bot]
808b3a5694 Bump eslint from 8.40.0 to 8.41.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.40.0 to 8.41.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.40.0...v8.41.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-22 14:10:21 +00:00
Mark Dumay
cde8495583 Merge pull request #263 from gethinode/develop
Fixes
2023-05-22 06:55:14 +02:00
Mark Dumay
c2aaff81cf Merge branch 'main' into develop 2023-05-22 06:44:21 +02:00
mark
5421839028 Bump package release 2023-05-22 06:43:57 +02:00
mark
a74466e281 Adjust layout 2023-05-22 06:41:24 +02:00
mark
454c659e44 Fix release url 2023-05-22 06:41:16 +02:00
mark
2de384497e Fix release url 2023-05-22 06:37:52 +02:00
mark
ca41d9adb4 Clean up unspecified classes 2023-05-22 06:16:25 +02:00
mark
a633e4eea0 Remove debug statements 2023-05-22 06:03:00 +02:00
mark
a341e916b9 Add optional id argument 2023-05-22 06:00:46 +02:00
22 changed files with 330 additions and 126 deletions

View File

@@ -14,10 +14,12 @@ const addCopyButtons = (clipboard) => {
// 2. Create a button that will trigger a copy operation // 2. Create a button that will trigger a copy operation
const button = document.createElement('button') const button = document.createElement('button')
button.className = 'clipboard-button' button.className = 'clipboard-button'
button.setAttribute('data-toast-target', 'toast-copied-code-message')
button.type = 'button' button.type = 'button'
button.innerHTML = svgCopy button.innerHTML = svgCopy
button.addEventListener('click', () => { button.addEventListener('click', () => {
clipboard.writeText(codeBlock.innerText).then( const text = codeBlock.innerText.split('\n').filter(Boolean).join('\n')
clipboard.writeText(text).then(
() => { () => {
button.blur() button.blur()
button.innerHTML = svgCheck button.innerHTML = svgCheck
@@ -36,3 +38,10 @@ const addCopyButtons = (clipboard) => {
if (navigator && navigator.clipboard) { if (navigator && navigator.clipboard) {
addCopyButtons(navigator.clipboard) addCopyButtons(navigator.clipboard)
} }
document.querySelectorAll('[data-clipboard]').forEach(trigger => {
const text = trigger.getAttribute('data-clipboard')
trigger.addEventListener('click', () => {
navigator.clipboard.writeText(text)
})
})

View File

@@ -1,10 +1,24 @@
// Bootstrap toast example: https://getbootstrap.com/docs/5.2/components/toasts/ // Script to move all embedded toast messages into a container with id 'toast-container'. The container ensures multiple
const toastTrigger = document.getElementById('toastButton') // toast messages are stacked properly. The script targets all elements specified by a 'data-toast-target' and ensures
const toastLiveExample = document.getElementById('toastMessage') // the click event of the origin is linked as well.
if (toastTrigger) {
toastTrigger.addEventListener('click', () => { const container = document.getElementById('toast-container')
// eslint-disable-next-line no-undef if (container !== null) {
const toast = new bootstrap.Toast(toastLiveExample) // process all data-toast-target elements
toast.show() document.querySelectorAll('[data-toast-target]').forEach(trigger => {
const target = document.getElementById(trigger.getAttribute('data-toast-target'))
if (target !== null) {
// move the element to the toast containr
container.appendChild(target)
// eslint-disable-next-line no-undef
const toast = bootstrap.Toast.getOrCreateInstance(target)
if (toast !== null) {
// associate the click event of the origin with the toast element
trigger.addEventListener('click', () => {
toast.show()
})
}
}
}) })
} }

View File

@@ -6,3 +6,22 @@
.open > .dropdown-toggle.btn-primary { .open > .dropdown-toggle.btn-primary {
color: #fff if($enable-important-utilities, !important, null); color: #fff if($enable-important-utilities, !important, null);
} }
.btn-social {
--bs-btn-bg: transparent;
--bs-btn-border-width: none;
--bs-btn-color: var(--bs-secondary);
--bs-btn-border-color: none;
--bs-btn-hover-bg: none;
--bs-btn-hover-border-color: none;
--bs-btn-active-bg: none;
--bs-btn-active-border-color: none;
}
.btn-social:hover,
.btn-social:focus,
.btn-social:active,
.btn-social.active,
.open > .dropdown-toggle.btn-primary {
color: var(--bs-primary) if($enable-important-utilities, !important, null);
}

View File

@@ -36,6 +36,49 @@
sidebar = true sidebar = true
# toml-docs-end navigation # toml-docs-end navigation
# toml-docs-start messages
[messages]
placement = "bottom-right"
# toml-docs-end messages
# toml-docs-start sharing
[sharing]
enabled = true
sort = "weight"
reverse = false
[[sharing.providers]]
name = "LinkedIn"
url = "https://www.linkedin.com/sharing/share-offsite/?url={url}"
icon = "fab linkedin"
weight = 10
[[sharing.providers]]
name = "Twitter"
url = "https://twitter.com/home?status={url}"
icon = "fab twitter"
weight = 20
[[sharing.providers]]
name = "Facebook"
url = "https://www.facebook.com/sharer.php?u={url}"
icon = "fab facebook"
weight = 30
[[sharing.providers]]
name = "WhatsApp"
url = "whatsapp://send?text={title}%20{url}"
icon = "fab whatsapp"
weight = 40
[[sharing.providers]]
name = "email"
url = "{url}"
icon = "fas link"
weight = 50
clipboard = true
# toml-docs-end sharing
# toml-docs-start sections # toml-docs-start sections
[sections] [sections]
[sections.blog] [sections.blog]

View File

@@ -251,12 +251,20 @@ As an example, the following shortcode displays a button that, when clicked, tri
<!-- markdownlint-disable MD037 --> <!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}} {{< example lang="hugo" >}}
{{</* button id="toastButton" */>}} {{</* button toast="toast-example-1" */>}}
Show toast Show toast 1
{{</* /button */>}} {{</* /button */>}}
{{</* toast header="Custom title" */>}} {{</* button toast="toast-example-2" */>}}
This is a toast message. Show toast 2
{{</* /button */>}}
{{</* toast id="toast-example-1" header="First title" */>}}
This is the first toast message.
{{</* /toast */>}}
{{</* toast id="toast-example-2" header="Second title" */>}}
This is the second toast message.
{{</* /toast */>}} {{</* /toast */>}}
{{< /example >}} {{< /example >}}
<!-- markdownlint-enable MD037 --> <!-- markdownlint-enable MD037 -->

View File

@@ -252,12 +252,20 @@ De volgende shortcode toont een knop die een bericht laat verschijnen op het sch
<!-- markdownlint-disable MD037 --> <!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}} {{< example lang="hugo" >}}
{{</* button id="toastButton" */>}} {{</* button toast="toast-example-1" */>}}
Toon bericht Toon bericht 1
{{</* /button */>}} {{</* /button */>}}
{{</* toast header="Titel" */>}} {{</* button toast="toast-example-2" */>}}
Dit is een bericht. Toon bericht 2
{{</* /button */>}}
{{</* toast id="toast-example-1" header="Eerste titel" */>}}
Dit is het eerste bericht.
{{</* /toast */>}}
{{</* toast id="toast-example-2" header="Tweede titel" */>}}
Dit is het tweede bericht.
{{</* /toast */>}} {{</* /toast */>}}
{{< /example >}} {{< /example >}}
<!-- markdownlint-enable MD037 --> <!-- markdownlint-enable MD037 -->

View File

@@ -79,6 +79,14 @@
translation: "Added in" translation: "Added in"
- id: deprecatedFeature - id: deprecatedFeature
translation: "Deprecated in" translation: "Deprecated in"
- id: shareLink
translation: "Share via"
- id: copiedToClipboard
translation: "copied to clipboard"
- id: link
translation: "Link"
- id: code
translation: "Code"
# 404 page # 404 page
- id: pageNotFound - id: pageNotFound

View File

@@ -69,6 +69,14 @@
translation: "Toegevoegd in" translation: "Toegevoegd in"
- id: deprecatedFeature - id: deprecatedFeature
translation: "Verouderd in" translation: "Verouderd in"
- id: shareLink
translation: "Delen via"
- id: copiedToClipboard
translation: "gekopieerd naar clipboard"
- id: link
translation: "Link"
- id: code
translation: "Code"
# 404 page # 404 page
- id: pageNotFound - id: pageNotFound

View File

@@ -68,6 +68,7 @@
</div> </div>
{{ end }} {{ end }}
{{- partial "footer/toast-container.html" . -}}
{{- partialCached "footer/scripts.html" (dict "header" false "page" .) }} {{- partialCached "footer/scripts.html" (dict "header" false "page" .) }}
</body> </body>
</html> </html>

View File

@@ -2,6 +2,7 @@
{{ if site.Params.navigation.breadcrumb }}{{ partial "assets/breadcrumb.html" . }}{{ end -}} {{ if site.Params.navigation.breadcrumb }}{{ partial "assets/breadcrumb.html" . }}{{ end -}}
{{ if in (slice "docs" "minimal") .Layout }} {{ if in (slice "docs" "minimal") .Layout }}
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }} {{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
{{ partial "assets/sharing.html" . }}
<p class="lead mb-5">{{ .Description }}</p> <p class="lead mb-5">{{ .Description }}</p>
{{ else }} {{ else }}
{{ $lastmodstr := (partial "utilities/date.html" (dict "date" .Lastmod "format" "long")) -}} {{ $lastmodstr := (partial "utilities/date.html" (dict "date" .Lastmod "format" "long")) -}}
@@ -14,21 +15,24 @@
{{ .WordCount | lang.FormatNumber 0 }}&nbsp;{{ i18n "words" }} {{ .WordCount | lang.FormatNumber 0 }}&nbsp;{{ i18n "words" }}
</small> </small>
<div class="mt-3"> {{- if gt (len (.GetTerms "tags")) 0 -}}
<div class="d-none-dark"> <div class="mt-3">
{{ range (.GetTerms "tags") -}} <div class="d-none-dark">
<a class="btn btn-light btn-sm" href="{{ (path.Join .Page.RelPermalink) | relLangURL }}" role="button">{{ .LinkTitle }}</a> {{ range (.GetTerms "tags") -}}
&nbsp; <a class="btn btn-light btn-sm" href="{{ (path.Join .Page.RelPermalink) | relLangURL }}" role="button">{{ .LinkTitle }}</a>
{{ end -}} &nbsp;
{{ end -}}
</div>
<div class="d-none-light">
{{ range (.GetTerms "tags") -}}
<a class="btn btn-outline-secondary btn-sm" href="{{ (path.Join .Page.RelPermalink) | relLangURL }}" role="button">{{ .LinkTitle }}</a>
&nbsp;
{{ end -}}
</div>
</div> </div>
{{- end -}}
<div class="d-none-light"> {{ partial "assets/sharing.html" . }}
{{ range (.GetTerms "tags") -}}
<a class="btn btn-outline-secondary btn-sm" href="{{ (path.Join .Page.RelPermalink) | relLangURL }}" role="button">{{ .LinkTitle }}</a>
&nbsp;
{{ end -}}
</div>
</div>
<p class="lead mb-5 mt-3">{{ .Description }}</p> <p class="lead mb-5 mt-3">{{ .Description }}</p>
{{ end }} {{ end }}
{{ end -}} {{ end -}}

View File

@@ -1,6 +1,6 @@
<!-- <!--
Displays a button. The shortcode supports the following arguments: Displays a button. The shortcode supports the following arguments:
"title" Required title of the button. "title" Title of the button, required unless icon is set.
"href" Optional address for the button or hyperlink. "href" Optional address for the button or hyperlink.
"id" Optional id of the button, to be used in the DOM. "id" Optional id of the button, to be used in the DOM.
"state" Optional state of the button, either "enabled" (default), "disabled", "active", or "inactive". "state" Optional state of the button, either "enabled" (default), "disabled", "active", or "inactive".
@@ -16,15 +16,18 @@
"type" Optional type of the element, either "link" or "button" (default). "type" Optional type of the element, either "link" or "button" (default).
"placement" Optional position of the tooltip: "top" (default), "bottom", "left", or "right". "placement" Optional position of the tooltip: "top" (default), "bottom", "left", or "right".
"class" Optional class attribute of the button element, e.g. “toc-button”. "class" Optional class attribute of the button element, e.g. “toc-button”.
"icon" Optional Font Awesome icon class attribute, e.g. "fas sort". "icon" Font Awesome icon class attribute, required unless title is set. An example value is "fas sort".
"order" Optional order of the icon, either "first" or "last" (default). "order" Optional order of the icon, either "first" or "last" (default).
"justify" Optional justification of the button title and icon, either "start", "end", "center" (default), "justify" Optional justification of the button title and icon, either "start", "end", "center" (default),
"between", "around", or "evenly". "between", "around", or "evenly".
"toast" Optional id of the toast to display when the button is clicked.
"clipboard" Optional text to be copied to the clipboard when the button is clicked.
--> -->
{{- $title := trim .title " \r\n" -}} {{- $title := trim .title " \r\n" -}}
{{- if not $title -}} {{- $icon := .icon }}
{{- errorf "partial [assets/button.html] - Missing element title" -}} {{- if not (or $title $icon) -}}
{{- errorf "partial [assets/button.html] - Missing element title or icon" -}}
{{- end -}} {{- end -}}
{{- $id := .id }} {{- $id := .id }}
@@ -92,7 +95,6 @@
{{- end -}} {{- end -}}
{{- $class := .class }} {{- $class := .class }}
{{- $icon := .icon }}
{{- $order := "last" -}} {{- $order := "last" -}}
{{- with .order }}{{ $order = . }}{{ end -}} {{- with .order }}{{ $order = . }}{{ end -}}
@@ -108,14 +110,20 @@
{{- errorf "partial [assets/button.html] - Invalid value for param 'justify': %s" $justify -}} {{- errorf "partial [assets/button.html] - Invalid value for param 'justify': %s" $justify -}}
{{- end -}} {{- end -}}
<a aria-label="{{ $title }}" {{ if ne $state "disabled" }}{{ with $href }}href="{{ . }}"{{ end }}{{ end -}} {{- $toast := .toast -}}
{{- with $id }}id="{{ . }}"{{ end -}} {{- $clipboard := .clipboard -}}
{{- if eq $type "button" }}class="btn btn-{{ if $outline }}outline-{{ end }}{{ $color }} {{ if ne $size "md"}}btn-{{ $size }}{{ end }} position-relative {{ if in (slice "disabled" "active") $state }}{{ $state }}{{ end }} {{ $class }}" role="button" {{ if eq $state "disabled" }}aria-disabled="true"{{ end -}}
{{- else }}class="link-{{ $color }} position-relative {{ $class }}"{{ end -}} <a aria-label="{{ $title }}" {{ if ne $state "disabled" }}{{ with $href }}href="{{ . }}"{{ end }}{{ end }}
{{- with $tooltip }}data-bs-toggle="tooltip" data-bs-title="{{ . }}" data-bs-placement="{{ $placement }}"{{ end -}} {{ with $id }}id="{{ . }}"{{ end }}
{{- with $collapse }}data-bs-toggle="collapse" aria-expanded="false" aria-controls="{{ . }}"{{ end -}} {{ with $toast }}data-toast-target="{{ $toast }}"{{ end }}
{{- if eq $state "active" }}data-bs-toggle="button" aria-pressed="true"{{ end -}} {{ with $clipboard }}data-clipboard="{{ $clipboard }}"{{ end }}
{{- if eq $state "inactive" }}data-bs-toggle="button" aria-pressed="false"{{ end -}} {{ if eq $type "button" }}class="btn btn-{{ if $outline }}outline-{{ end }}{{ $color }} {{ if ne $size "md"}}btn-{{ $size }}{{ end }} position-relative {{ if in (slice "disabled" "active") $state }}{{ $state }}{{ end }} {{ $class }}"
role="button" {{ if eq $state "disabled" }}aria-disabled="true"{{ end }}
{{ else }} class="link-{{ $color }} position-relative {{ $class }}"{{ end }}
{{ with $tooltip }}data-bs-toggle="tooltip" data-bs-title="{{ . }}" data-bs-placement="{{ $placement }}"{{ end }}
{{ with $collapse }}data-bs-toggle="collapse" aria-expanded="false" aria-controls="{{ . }}"{{ end }}
{{ if eq $state "active" }}data-bs-toggle="button" aria-pressed="true"{{ end }}
{{ if eq $state "inactive" }}data-bs-toggle="button" aria-pressed="false"{{ end }}
> >
<div class="d-flex justify-content-{{ $justify }}"> <div class="d-flex justify-content-{{ $justify }}">

View File

@@ -2,6 +2,7 @@
{{- $parent := .parent -}} {{- $parent := .parent -}}
{{- $page := .page -}} {{- $page := .page -}}
{{- $class := .class -}} {{- $class := .class -}}
{{- $anchorClass := "" -}}
{{- $menuURL := (or $menu.PageRef $menu.URL) | relLangURL -}} {{- $menuURL := (or $menu.PageRef $menu.URL) | relLangURL -}}
{{- $pageURL := $page.RelPermalink | relLangURL -}} {{- $pageURL := $page.RelPermalink | relLangURL -}}
@@ -21,12 +22,12 @@
{{- if $parent -}} {{- if $parent -}}
{{- $mainNav = urlize (lower $parent.Name) -}} {{- $mainNav = urlize (lower $parent.Name) -}}
{{- $childNav = urlize (lower $menu.Name) -}} {{- $childNav = urlize (lower $menu.Name) -}}
{{- $class = printf "dropdown-item %s" $class -}} {{- $anchorClass = "dropdown-item" -}}
{{- else if $menu.HasChildren -}} {{- else if $menu.HasChildren -}}
{{- $class = printf "nav-link dropdown-toggle %s" $class -}} {{- $anchorClass = "nav-link dropdown-toggle" -}}
{{- $button = " role=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"" -}} {{- $button = " role=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"" -}}
{{- else -}} {{- else -}}
{{- $class = printf "nav-link %s" $class -}} {{- $anchorClass = "nav-link" -}}
{{- end -}} {{- end -}}
{{- $params := "" -}} {{- $params := "" -}}
{{- if and $isAlias (not $isExternal) -}} {{- if and $isAlias (not $isExternal) -}}
@@ -34,7 +35,7 @@
{{- with $childNav }}{{ $params = printf "%s&child=%s" $params . }}{{ end -}} {{- with $childNav }}{{ $params = printf "%s&child=%s" $params . }}{{ end -}}
{{- end -}} {{- end -}}
<a class="{{ $class }}{{ if $isActive }} active{{ end }}" <a class="{{ $anchorClass }}{{ if $isActive }} active{{ end }}{{ with $class }} {{. }}{{ end }}"
data-nav="main" data-nav-main="{{ $mainNav }}"{{ with $childNav }} data-nav-child="{{ . }}"{{ end }} data-nav="main" data-nav-main="{{ $mainNav }}"{{ with $childNav }} data-nav-child="{{ . }}"{{ end }}
href="{{ $menuURL }}{{ $params | safeHTMLAttr }}"{{ with $externalHref }} {{ . | safeHTMLAttr }}{{ end }} {{ $button | safeHTMLAttr }}> href="{{ $menuURL }}{{ $params | safeHTMLAttr }}"{{ with $externalHref }} {{ . | safeHTMLAttr }}{{ end }} {{ $button | safeHTMLAttr }}>

View File

@@ -1,5 +1,6 @@
<!-- <!--
Displays a navigation header with a toggler. The partial supports the following arguments: Displays a navigation header with a toggler. The partial supports the following arguments:
"id" Optional id of the navbar toggler, defaults to "navbar-collapse-0".
"page" Required object reference to the current page. "page" Required object reference to the current page.
"menus" Optional name of the menu configuration, defaults to "main". "menus" Optional name of the menu configuration, defaults to "main".
"size" Optional size of the button, either "sm", "md" (default), or "lg". "size" Optional size of the button, either "sm", "md" (default), or "lg".
@@ -16,7 +17,6 @@
<!-- Inline partial to render the color mode switcher --> <!-- Inline partial to render the color mode switcher -->
{{- define "partials/navbar-mode.html" -}} {{- define "partials/navbar-mode.html" -}}
{{- $id := .id -}}
{{- $size := .size -}} {{- $size := .size -}}
{{- $collapsed := .collapsed -}} {{- $collapsed := .collapsed -}}
@@ -50,8 +50,10 @@
{{- $supportedFlags := slice "true" "false" -}} {{- $supportedFlags := slice "true" "false" -}}
{{- $id := 0 -}} {{- $id := printf "navbar-collapse-%d" 0 -}}
{{- with .id }}{{ $id = . }}{{ end -}} {{ with .id }}
{{ $id = . }}
{{ end }}
{{- $page := .page -}} {{- $page := .page -}}
{{- if not $page -}} {{- if not $page -}}
@@ -155,15 +157,15 @@
<!-- Insert main navigation toggler --> <!-- Insert main navigation toggler -->
<div class="d-flex fw-30"> <div class="d-flex fw-30">
<button id="main-nav-toggler" class="navbar-toggler collapsed p-0" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent-{{ $id }}" <button id="main-nav-toggler" class="navbar-toggler collapsed p-0" type="button" data-bs-toggle="collapse" data-bs-target="#{{ $id }}"
aria-controls="navbarSupportedContent-{{ $id }}" aria-expanded="false" aria-label="{{ T "toggleMainNav" }}"> aria-controls="{{ $id }}" aria-expanded="false" aria-label="{{ T "toggleMainNav" }}">
<span class="toggler-icon top-bar emphasis"></span> <span class="toggler-icon top-bar emphasis"></span>
<span class="toggler-icon middle-bar emphasis"></span> <span class="toggler-icon middle-bar emphasis"></span>
<span class="toggler-icon bottom-bar emphasis"></span> <span class="toggler-icon bottom-bar emphasis"></span>
</button> </button>
</div> </div>
<div class="navbar-collapse collapse" id="navbarSupportedContent-{{ $id }}"> <div class="navbar-collapse collapse" id="{{ $id }}">
<!-- Insert search input --> <!-- Insert search input -->
{{- if $search }}{{ partial "assets/search-input.html" -}}{{ end -}} {{- if $search }}{{ partial "assets/search-input.html" -}}{{ end -}}
@@ -216,8 +218,8 @@
<!-- Insert color mode switcher --> <!-- Insert color mode switcher -->
{{- if $enableDarkMode -}} {{- if $enableDarkMode -}}
{{- partial "partials/navbar-mode.html" (dict "id" $id "size" $size "collapsed" true) -}} {{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" true) -}}
{{- partial "partials/navbar-mode.html" (dict "id" $id "size" $size "collapsed" false) -}} {{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" false) -}}
{{- end -}} {{- end -}}
</ul> </ul>
</div> </div>

View File

@@ -0,0 +1,28 @@
{{- if .Site.Params.sharing.enabled -}}
{{- if or .Params.sharing (not (isset .Params "sharing")) -}}
{{- $page := . -}}
{{- $order := "asc" -}}
{{- $list := .Site.Params.sharing.providers -}}
{{- if .Site.Params.sharing.reverse }}{{ $order = "desc" }}{{ else }}{{ $order = "asc" }}{{ end -}}
{{- $sort := .Site.Params.sharing.sort | default "weight" -}}
{{- $list = sort $list $sort $order -}}
<div class="py-3 text-body-secondary">
{{ T "shareLink" }}
{{- range $index, $item := $list -}}
{{- $url := $item.url -}}
{{- $url = replace $url "{url}" $page.Permalink -}}
{{- $url = replace $url "{title}" (urlquery $page.Title) -}}
{{- $url = $url | safeURL -}}
{{- $target := "" -}}
{{- $clipboard := "" -}}
{{- if .clipboard -}}
{{- $target = (printf "toast-message-%s-%d" (anchorize $item.name) $index ) -}}
{{- $clipboard = $url -}}
{{- $url = "#!" -}}
{{- partial "assets/toast.html" (dict "id" $target "message" (printf "%s %s" (T "link") (T "copiedToClipboard"))) -}}
{{- end -}}
{{ partial "assets/button.html" (dict "toast" $target "clipboard" $clipboard "href" $url "icon" $item.icon "class" "btn-social px-1" )}}
{{- end -}}
</div>
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,28 @@
<!--
Prepares a toast message. Use a trigger to display the message. The shortcode supports the following arguments:
"id" Optional id of the toast message, defaults to "toast-message-0".
"header": Optional header of the toast message.
"message": Required toast message.
-->
{{- $id := printf "toast-message-%d" 0 -}}
{{ with .id }}
{{ $id = . }}
{{ end }}
{{ $header := .header -}}
{{ if not $header -}}
{{ $header = site.Title -}}
{{ end -}}
{{- $message := .message -}}
{{ if not $message -}}
{{- errorf "partial [assets/toast.html] - Missing message text" -}}
{{ end -}}
<div id="{{ $id }}" class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
{{ with $header }}<strong class="me-auto">{{ . }}</strong>{{ end }}
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
</div>
<div class="toast-body">{{ $message }}</div>
</div>

View File

@@ -0,0 +1,31 @@
<!--
Defines a container to stack toast messages. By default, toast messages are displayed in the bottom right of the
viewport. Multiple toast messages are stacked vertically. Adjust the configuration by adjusting 'messages' in the
site parameters. The following arguments are supported:
"placement" Optional position of the toast messages relative to the viewport: "top-left", "top-center",
"top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", or
"bottom-right" (default).
-->
{{- $placement := "bottom-right" -}}
{{- $position := "bottom-0 end-0" -}}
{{- with site.Params.messages.placement }}{{ $placement = . }}{{ end -}}
{{- $supportedPlacements := slice "top-left" "top-center" "top-right" "middle-left" "middle-center" "middle-right" "bottom-left" "bottom-center" "bottom-right" -}}
{{- if not (in $supportedPlacements $placement) -}}
{{- errorf "partial [footer/toast-container.html] - Invalid value for param 'placement': %s" $placement -}}
{{- end -}}
{{- if eq $placement "top-left" }}{{ $position = "top-0 start-0" -}}
{{- else if eq $placement "top-center" }}{{ $position = "top-0 start-50 translate-middle-x" -}}
{{- else if eq $placement "top-right" }}{{ $position = "top-0 end-0" -}}
{{- else if eq $placement "middle-left" }}{{ $position = "top-50 start-0 translate-middle-y" -}}
{{- else if eq $placement "middle-center" }}{{ $position = "top-50 start-50 translate-middle" -}}
{{- else if eq $placement "middle-right" }}{{ $position = "top-50 end-0 translate-middle-y" -}}
{{- else if eq $placement "bottom-left" }}{{ $position = "bottom-0 start-0" -}}
{{- else if eq $placement "bottom-center" }}{{ $position = "bottom-0 start-50 translate-middle-x" -}}
{{- else if eq $placement "bottom-right" }}{{ $position = "bottom-0 end-0" -}}
{{- end -}}
<div id="toast-container" class="toast-container position-fixed {{ $position }} p-3">
{{- partial "assets/toast.html" (dict "id" "toast-copied-code-message" "message" (printf "%s %s" (T "code") (T "copiedToClipboard"))) -}}
</div>

View File

@@ -14,6 +14,7 @@
inactive buttons. inactive buttons.
"collapse" Optional panel to collapse. Cannot be used together with tooltip. Ignored for active/inactive buttons. "collapse" Optional panel to collapse. Cannot be used together with tooltip. Ignored for active/inactive buttons.
"placement" Optional position of the tooltip: "top" (default), "bottom", "left", or "right". "placement" Optional position of the tooltip: "top" (default), "bottom", "left", or "right".
"toast" Optional id of the toast to display when the button is clicked.
--> -->
{{ $error := false }} {{ $error := false }}
@@ -77,6 +78,8 @@
{{ $error = true }} {{ $error = true }}
{{ end -}} {{ end -}}
{{- $toast := .Get "toast" -}}
{{ if not $error }} {{ if not $error }}
{{- partial "assets/button.html" (dict {{- partial "assets/button.html" (dict
"type" $type "type" $type
@@ -91,6 +94,7 @@
"href" $href "href" $href
"id" $id "id" $id
"state" $state "state" $state
"placement" $placement) "placement" $placement
"toast" $toast)
-}} -}}
{{ end }} {{ end }}

View File

@@ -2,6 +2,8 @@
Displays a navigation header with a toggler. The menu items are derived from the site's configuration. Nested items Displays a navigation header with a toggler. The menu items are derived from the site's configuration. Nested items
are supported at one-level depth. The navigation bar includes a search area and a language switcher if applicable. are supported at one-level depth. The navigation bar includes a search area and a language switcher if applicable.
The shortcode supports the following arguments: The shortcode supports the following arguments:
"id" Optional id of the navbar toggler, defaults to "navbar-collapse-n" with a sequential number n
starting at 1.
"path" Required path of the active page. "path" Required path of the active page.
"menus" Optional name of the menu configuration, defaults to "main". "menus" Optional name of the menu configuration, defaults to "main".
"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".
@@ -19,7 +21,10 @@
{{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "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 := printf "navbar-collapse-%d" (add .Ordinal 1) -}}
{{ with .Get "id" }}
{{ $id = . }}
{{ end }}
{{ $path := .Get "path" }} {{ $path := .Get "path" }}
{{ $page := .Site.GetPage $path }} {{ $page := .Site.GetPage $path }}

View File

@@ -58,7 +58,7 @@
<div class="pb-3"> <div class="pb-3">
{{- partial "assets/button.html" (dict {{- partial "assets/button.html" (dict
"title" $title "title" $title
"href" (path.Join site.Params.docs.release $version) "href" (printf "%s/%s" (strings.TrimSuffix "/" site.Params.docs.release) $version)
"size" "sm" "size" "sm"
"color" $color "color" $color
"outline" "true" "outline" "true"

View File

@@ -1,24 +1,17 @@
<!-- <!--
Prepares a toast message. Use a trigger to display the message. The shortcode supports the following arguments: Prepares a toast message. Use a trigger to display the message. The shortcode supports the following arguments:
"id" Optional id of the toast message, defaults to "toast-message-n" with sequence n.
"header": Optional header of the toast message. Uses the site title by default. "header": Optional header of the toast message. Uses the site title by default.
--> -->
{{- $error := false -}}
{{- $id := printf "toast-message-%d" .Ordinal -}}
{{- with .Get "id" }}{{ $id = . }}{{ end -}}
{{ $header := .Get "header" -}} {{ $header := .Get "header" -}}
{{ if not $header -}}
{{ $header = site.Title -}}
{{ end -}}
{{ $message := trim .Inner " \r\n" -}} {{ $message := trim .Inner " \r\n" -}}
{{ if not $message -}} {{ if not $message -}}
{{ errorf "Missing inner element text: %s" .Position -}} {{ errorf "Missing inner element text: %s" .Position -}}
{{ else if not $error -}}
{{ partial "assets/toast.html" (dict "id" $id "header" $header "message" $message) }}
{{ end -}} {{ end -}}
<div class="toast-container position-fixed bottom-0 end-0 p-3">
<div id="toastMessage" class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<strong class="me-auto">{{ $header }}</strong>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
</div>
<div class="toast-body">{{ $message }}</div>
</div>
</div>

84
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "0.14.1", "version": "0.14.4",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "0.14.1", "version": "0.14.4",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"@fortawesome/fontawesome-free": "^6.4.0", "@fortawesome/fontawesome-free": "^6.4.0",
@@ -21,7 +21,7 @@
"eslint-plugin-n": "^15.7.0", "eslint-plugin-n": "^15.7.0",
"eslint-plugin-promise": "^6.1.1", "eslint-plugin-promise": "^6.1.1",
"flexsearch": "^0.7.31", "flexsearch": "^0.7.31",
"hugo-bin": "^0.102.0", "hugo-bin": "^0.103.0",
"markdownlint-cli2": "^0.7.0", "markdownlint-cli2": "^0.7.0",
"postcss-cli": "^10.1.0", "postcss-cli": "^10.1.0",
"purgecss-whitelister": "^2.4.0", "purgecss-whitelister": "^2.4.0",
@@ -247,9 +247,9 @@
} }
}, },
"node_modules/@eslint/js": { "node_modules/@eslint/js": {
"version": "8.40.0", "version": "8.41.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz",
"integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", "integrity": "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0" "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -2212,15 +2212,15 @@
} }
}, },
"node_modules/eslint": { "node_modules/eslint": {
"version": "8.40.0", "version": "8.41.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz",
"integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", "integrity": "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.4.0", "@eslint-community/regexpp": "^4.4.0",
"@eslint/eslintrc": "^2.0.3", "@eslint/eslintrc": "^2.0.3",
"@eslint/js": "8.40.0", "@eslint/js": "8.41.0",
"@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8", "@nodelib/fs.walk": "^1.2.8",
@@ -2240,13 +2240,12 @@
"find-up": "^5.0.0", "find-up": "^5.0.0",
"glob-parent": "^6.0.2", "glob-parent": "^6.0.2",
"globals": "^13.19.0", "globals": "^13.19.0",
"grapheme-splitter": "^1.0.4", "graphemer": "^1.4.0",
"ignore": "^5.2.0", "ignore": "^5.2.0",
"import-fresh": "^3.0.0", "import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4", "imurmurhash": "^0.1.4",
"is-glob": "^4.0.0", "is-glob": "^4.0.0",
"is-path-inside": "^3.0.3", "is-path-inside": "^3.0.3",
"js-sdsl": "^4.1.4",
"js-yaml": "^4.1.0", "js-yaml": "^4.1.0",
"json-stable-stringify-without-jsonify": "^1.0.1", "json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1", "levn": "^0.4.1",
@@ -3423,10 +3422,10 @@
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
"dev": true "dev": true
}, },
"node_modules/grapheme-splitter": { "node_modules/graphemer": {
"version": "1.0.4", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
"integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true "dev": true
}, },
"node_modules/hard-rejection": { "node_modules/hard-rejection": {
@@ -3538,9 +3537,9 @@
"dev": true "dev": true
}, },
"node_modules/hugo-bin": { "node_modules/hugo-bin": {
"version": "0.102.2", "version": "0.103.3",
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.102.2.tgz", "resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.103.3.tgz",
"integrity": "sha512-Agx3selH3s+4tEyRyRVGsD7OpWuBzQnGCpkLVUVCgqCiPU4pZwyL5a6uJ7CA1A+ORIVPyUUgwMUgqTf0sqS5Ew==", "integrity": "sha512-nB5CcOni4zAkWcPVCu2CJGq0WKEmrjONjGgZBVoxPe0DZivIclu2BLurkWFwMTuoiipfmsmqyCk9LZfLVhgwpw==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@@ -3982,16 +3981,6 @@
"@pkgjs/parseargs": "^0.11.0" "@pkgjs/parseargs": "^0.11.0"
} }
}, },
"node_modules/js-sdsl": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
"integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==",
"dev": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/js-sdsl"
}
},
"node_modules/js-tokens": { "node_modules/js-tokens": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -7513,9 +7502,9 @@
} }
}, },
"@eslint/js": { "@eslint/js": {
"version": "8.40.0", "version": "8.41.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz",
"integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", "integrity": "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==",
"dev": true "dev": true
}, },
"@fortawesome/fontawesome-free": { "@fortawesome/fontawesome-free": {
@@ -8916,15 +8905,15 @@
"dev": true "dev": true
}, },
"eslint": { "eslint": {
"version": "8.40.0", "version": "8.41.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz",
"integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", "integrity": "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==",
"dev": true, "dev": true,
"requires": { "requires": {
"@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.4.0", "@eslint-community/regexpp": "^4.4.0",
"@eslint/eslintrc": "^2.0.3", "@eslint/eslintrc": "^2.0.3",
"@eslint/js": "8.40.0", "@eslint/js": "8.41.0",
"@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8", "@nodelib/fs.walk": "^1.2.8",
@@ -8944,13 +8933,12 @@
"find-up": "^5.0.0", "find-up": "^5.0.0",
"glob-parent": "^6.0.2", "glob-parent": "^6.0.2",
"globals": "^13.19.0", "globals": "^13.19.0",
"grapheme-splitter": "^1.0.4", "graphemer": "^1.4.0",
"ignore": "^5.2.0", "ignore": "^5.2.0",
"import-fresh": "^3.0.0", "import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4", "imurmurhash": "^0.1.4",
"is-glob": "^4.0.0", "is-glob": "^4.0.0",
"is-path-inside": "^3.0.3", "is-path-inside": "^3.0.3",
"js-sdsl": "^4.1.4",
"js-yaml": "^4.1.0", "js-yaml": "^4.1.0",
"json-stable-stringify-without-jsonify": "^1.0.1", "json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1", "levn": "^0.4.1",
@@ -9817,10 +9805,10 @@
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
"dev": true "dev": true
}, },
"grapheme-splitter": { "graphemer": {
"version": "1.0.4", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
"integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true "dev": true
}, },
"hard-rejection": { "hard-rejection": {
@@ -9896,9 +9884,9 @@
"dev": true "dev": true
}, },
"hugo-bin": { "hugo-bin": {
"version": "0.102.2", "version": "0.103.3",
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.102.2.tgz", "resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.103.3.tgz",
"integrity": "sha512-Agx3selH3s+4tEyRyRVGsD7OpWuBzQnGCpkLVUVCgqCiPU4pZwyL5a6uJ7CA1A+ORIVPyUUgwMUgqTf0sqS5Ew==", "integrity": "sha512-nB5CcOni4zAkWcPVCu2CJGq0WKEmrjONjGgZBVoxPe0DZivIclu2BLurkWFwMTuoiipfmsmqyCk9LZfLVhgwpw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@xhmikosr/bin-wrapper": "^5.0.1", "@xhmikosr/bin-wrapper": "^5.0.1",
@@ -10194,12 +10182,6 @@
"@pkgjs/parseargs": "^0.11.0" "@pkgjs/parseargs": "^0.11.0"
} }
}, },
"js-sdsl": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
"integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==",
"dev": true
},
"js-tokens": { "js-tokens": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@gethinode/hinode", "name": "@gethinode/hinode",
"version": "0.14.1", "version": "0.14.4",
"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",
@@ -63,7 +63,7 @@
"eslint-plugin-n": "^15.7.0", "eslint-plugin-n": "^15.7.0",
"eslint-plugin-promise": "^6.1.1", "eslint-plugin-promise": "^6.1.1",
"flexsearch": "^0.7.31", "flexsearch": "^0.7.31",
"hugo-bin": "^0.102.0", "hugo-bin": "^0.103.0",
"markdownlint-cli2": "^0.7.0", "markdownlint-cli2": "^0.7.0",
"postcss-cli": "^10.1.0", "postcss-cli": "^10.1.0",
"purgecss-whitelister": "^2.4.0", "purgecss-whitelister": "^2.4.0",