mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 18:14:28 +00:00
Compare commits
39 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b4414c9ecb | ||
![]() |
e6a4d9a643 | ||
![]() |
4c4bce6e1e | ||
![]() |
5c6c934499 | ||
![]() |
f163c870cd | ||
![]() |
b6035d2aa8 | ||
![]() |
2eed95a45d | ||
![]() |
9019ea8d3c | ||
![]() |
bd88950647 | ||
![]() |
7b2d88d9d7 | ||
![]() |
c6cc6e03eb | ||
![]() |
afc023d580 | ||
![]() |
d3a15b5b1e | ||
![]() |
d928f6d4fd | ||
![]() |
f2559c243f | ||
![]() |
0e073465ae | ||
![]() |
f5dafb50a8 | ||
![]() |
671cd1f0f2 | ||
![]() |
e15052db22 | ||
![]() |
6be2bb28f8 | ||
![]() |
31e4161258 | ||
![]() |
44d018fa7c | ||
![]() |
3a49d0ca73 | ||
![]() |
c5ac3bbd3c | ||
![]() |
6fe0df9466 | ||
![]() |
2fc134503c | ||
![]() |
f11e98367b | ||
![]() |
0ad4875ee2 | ||
![]() |
a227a01407 | ||
![]() |
a8c8546c23 | ||
![]() |
0aa2a0427b | ||
![]() |
3047f8e937 | ||
![]() |
d144bd328c | ||
![]() |
8815642bea | ||
![]() |
cb862374fd | ||
![]() |
60265ce7e8 | ||
![]() |
eec1c0954a | ||
![]() |
8aa0556298 | ||
![]() |
c92c1686cd |
5
.github/ISSUE_TEMPLATE/bug_report.md
vendored
5
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -27,8 +27,9 @@ If applicable, add a copy of Hugo's log messages.
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Environment (please complete the following information):**
|
||||
- Host OS: [e.g. macOS Ventura 13.0]
|
||||
- Node version: [e.g. node v18.10.0]
|
||||
- Hinode version: [e.g. v0.11.3]
|
||||
- Host OS: [e.g. macOS Ventura 13.3]
|
||||
- Node version: [e.g. node v18.15.0]
|
||||
- Hugo version: [e.g. hugo v0.109.0-47b12b83e636224e5e601813ff3e6790c191e371+extended darwin/amd64 BuildDate=2022-12-23T10:38:11Z VendorInfo=gohugoio]
|
||||
- Browser: [e.g. Google Chrome Version 108.0.5359.124 (Official Build) (arm64)]
|
||||
|
||||
|
21
.github/workflows/auto-approve.yml
vendored
Normal file
21
.github/workflows/auto-approve.yml
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
name: Dependabot auto-approve
|
||||
on: pull_request
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
dependabot:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.actor == 'dependabot[bot]' }}
|
||||
steps:
|
||||
- name: Dependabot metadata
|
||||
id: metadata
|
||||
uses: dependabot/fetch-metadata@v1
|
||||
with:
|
||||
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
- name: Approve a PR
|
||||
run: gh pr review --approve "$PR_URL"
|
||||
env:
|
||||
PR_URL: ${{github.event.pull_request.html_url}}
|
||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
@@ -4,8 +4,6 @@
|
||||
* Licensed under the Creative Commons Attribution 3.0 Unported License.
|
||||
*/
|
||||
|
||||
{{ if site.Params.main.enableDarkMode }}
|
||||
|
||||
(() => {
|
||||
'use strict'
|
||||
|
||||
@@ -30,17 +28,24 @@
|
||||
setTheme(getPreferredTheme())
|
||||
|
||||
const showActiveTheme = theme => {
|
||||
const activeSelector = document.querySelector('.theme-icon-active')
|
||||
const activeButton = document.querySelector(`[data-bs-theme-value="${theme}"]`)
|
||||
const activeIcon = activeButton.querySelector('i')
|
||||
const activeSelectors = document.querySelectorAll('.theme-icon-active')
|
||||
const activeButtons = document.querySelectorAll(`[data-bs-theme-value="${theme}"]`)
|
||||
if (activeButtons.length > 0) {
|
||||
const activeIcon = activeButtons[0].querySelector('i')
|
||||
|
||||
document.querySelectorAll('[data-bs-theme-value]').forEach(element => {
|
||||
element.classList.remove('active')
|
||||
})
|
||||
document.querySelectorAll('[data-bs-theme-value]').forEach(element => {
|
||||
element.classList.remove('active')
|
||||
})
|
||||
|
||||
activeSelector.className = activeIcon.className
|
||||
activeSelector.className = activeSelector.className.replace('theme-icon', 'theme-icon-active')
|
||||
activeButton.classList.add('active')
|
||||
for (let i = 0; i < activeSelectors.length; ++i) {
|
||||
activeSelectors[i].className = activeIcon.className
|
||||
activeSelectors[i].className = activeSelectors[i].className.replace('theme-icon', 'theme-icon-active')
|
||||
}
|
||||
|
||||
for (let i = 0; i < activeButtons.length; ++i) {
|
||||
activeButtons[i].classList.add('active')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
|
||||
@@ -63,5 +68,3 @@
|
||||
})
|
||||
})
|
||||
})()
|
||||
|
||||
{{ end }}
|
@@ -81,7 +81,7 @@ Source:
|
||||
// https://discourse.gohugo.io/t/range-length-or-last-element/3803/2
|
||||
// Note: uses .Site.AllPages as .Site.RegularPages only returns content for the current language
|
||||
// pages without a title (such as browserconfig.xml) are excluded
|
||||
{{ $list := where (where .Site.AllPages "Kind" "in" "page") "Title" "!=" "" }}
|
||||
{{ $list := where (where site.AllPages "Kind" "in" "page") "Title" "!=" "" }}
|
||||
{{ $len := (len $list) -}}
|
||||
|
||||
index.add(
|
||||
|
@@ -1,5 +1,6 @@
|
||||
const navbar = document.querySelector('.navbar')
|
||||
const toggler = document.getElementById('main-nav-toggler')
|
||||
const modeSelectors = document.querySelectorAll('.switch-mode-collapsed')
|
||||
|
||||
// set the navbar background color to opaque when scrolling past a breakpoint
|
||||
window.onscroll = () => {
|
||||
@@ -14,3 +15,10 @@ window.onscroll = () => {
|
||||
toggler.onclick = () => {
|
||||
navbar.classList.toggle('navbar-expanded')
|
||||
}
|
||||
|
||||
// invoke the navbar toggler for each mode switcher to collapse the main menu afterwards
|
||||
for (let i = 0; i < modeSelectors.length; ++i) {
|
||||
modeSelectors[i].onclick = () => {
|
||||
toggler.click()
|
||||
}
|
||||
}
|
||||
|
@@ -1,25 +1,25 @@
|
||||
// scss-docs-start icons
|
||||
$form-check-input-checked-bg-image: url("icons/form-check-input-checked-bg-image.svg") !default;
|
||||
$form-check-radio-checked-bg-image: url("icons/form-check-radio-checked-bg-image.svg") !default;
|
||||
$form-check-input-indeterminate-bg-image: url("icons/form-check-input-indeterminate-bg-image.svg") !default;
|
||||
$form-switch-bg-image: url("icons/form-switch-bg-image.svg") !default;
|
||||
$form-switch-bg-image-dark: url("icons/form-switch-bg-image-dark.svg") !default;
|
||||
$form-switch-focus-bg-image: url("icons/form-switch-focus-bg-image.svg") !default;
|
||||
$form-switch-checked-bg-image: url("icons/form-switch-checked-bg-image.svg") !default;
|
||||
$form-select-indicator: url("icons/form-select-indicator.svg") !default;
|
||||
$form-select-indicator-dark: url("icons/form-select-indicator-dark.svg") !default;
|
||||
$form-feedback-icon-valid: url("icons/form-feedback-icon-valid.svg") !default;
|
||||
$form-feedback-icon-invalid: url("icons/form-feedback-icon-invalid.svg") !default;
|
||||
$navbar-light-toggler-icon-bg: url("icons/navbar-light-toggler-icon-bg.svg") !default;
|
||||
$navbar-dark-toggler-icon-bg: url("icons/navbar-dark-toggler-icon-bg.svg") !default;
|
||||
$accordion-button-icon: url("icons/accordion-button-icon.svg") !default;
|
||||
$accordion-button-icon-dark: url("icons/accordion-button-icon-dark.svg") !default;
|
||||
$accordion-button-active-icon: url("icons/accordion-button-active-icon.svg") !default;
|
||||
$accordion-button-active-icon-dark: url("icons/accordion-button-active-icon-dark.svg") !default;
|
||||
$carousel-control-prev-icon-bg: url("icons/carousel-control-prev-icon-bg.svg") !default;
|
||||
$carousel-control-next-icon-bg: url("icons/carousel-control-next-icon-bg.svg") !default;
|
||||
$btn-close-bg: url("icons/btn-close-bg.svg") !default;
|
||||
$btn-toggle: url("icons/btn-toggle.svg") !default;
|
||||
$btn-toggle-dark: url("icons/btn-toggle-dark.svg") !default;
|
||||
$form-check-input-checked-bg-image: url("/icons/form-check-input-checked-bg-image.svg") !default;
|
||||
$form-check-radio-checked-bg-image: url("/icons/form-check-radio-checked-bg-image.svg") !default;
|
||||
$form-check-input-indeterminate-bg-image: url("/icons/form-check-input-indeterminate-bg-image.svg") !default;
|
||||
$form-switch-bg-image: url("/icons/form-switch-bg-image.svg") !default;
|
||||
$form-switch-bg-image-dark: url("/icons/form-switch-bg-image-dark.svg") !default;
|
||||
$form-switch-focus-bg-image: url("/icons/form-switch-focus-bg-image.svg") !default;
|
||||
$form-switch-checked-bg-image: url("/icons/form-switch-checked-bg-image.svg") !default;
|
||||
$form-select-indicator: url("/icons/form-select-indicator.svg") !default;
|
||||
$form-select-indicator-dark: url("/icons/form-select-indicator-dark.svg") !default;
|
||||
$form-feedback-icon-valid: url("/icons/form-feedback-icon-valid.svg") !default;
|
||||
$form-feedback-icon-invalid: url("/icons/form-feedback-icon-invalid.svg") !default;
|
||||
$navbar-light-toggler-icon-bg: url("/icons/navbar-light-toggler-icon-bg.svg") !default;
|
||||
$navbar-dark-toggler-icon-bg: url("/icons/navbar-dark-toggler-icon-bg.svg") !default;
|
||||
$accordion-button-icon: url("/icons/accordion-button-icon.svg") !default;
|
||||
$accordion-button-icon-dark: url("/icons/accordion-button-icon-dark.svg") !default;
|
||||
$accordion-button-active-icon: url("/icons/accordion-button-active-icon.svg") !default;
|
||||
$accordion-button-active-icon-dark: url("/icons/accordion-button-active-icon-dark.svg") !default;
|
||||
$carousel-control-prev-icon-bg: url("/icons/carousel-control-prev-icon-bg.svg") !default;
|
||||
$carousel-control-next-icon-bg: url("/icons/carousel-control-next-icon-bg.svg") !default;
|
||||
$btn-close-bg: url("/icons/btn-close-bg.svg") !default;
|
||||
$btn-toggle: url("/icons/btn-toggle.svg") !default;
|
||||
$btn-toggle-dark: url("/icons/btn-toggle-dark.svg") !default;
|
||||
|
||||
// scss-docs-end icons
|
||||
|
@@ -4,13 +4,17 @@
|
||||
|
||||
.navbar {
|
||||
transition: 0.5s ease-in-out;
|
||||
background-color: none;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.nav-active, .navbar-expanded {
|
||||
background-color: var(--bs-body-bg);
|
||||
}
|
||||
|
||||
.navbar-expanded {
|
||||
box-shadow: $box-shadow-sm;
|
||||
}
|
||||
|
||||
/* Remove border from toggler */
|
||||
.navbar-toggler {
|
||||
border: 0 if($enable-important-utilities, !important, null);
|
||||
|
@@ -192,13 +192,34 @@ As an example, the following shortcode displays an image with rounded corners an
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Nav
|
||||
|
||||
As an example, the following shortcode displays a tab group with vertically aligned pills.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* nav type="pills" vertical="true" */>}}
|
||||
{{</* nav-item header="Nav Item #1" show="true" */>}}
|
||||
This is the first item's nav body. It supports HTML content. The item is shown by adding the value
|
||||
<code>show</code> to the <code>class</code> argument.
|
||||
{{</* /nav-item */>}}
|
||||
{{</* nav-item header="Nav Item #2" */>}}
|
||||
This is the second item's nav body. It too supports HTML content.
|
||||
{{</* /nav-item */>}}
|
||||
{{</* nav-item header="Nav Item #3" */>}}
|
||||
This is the third item's nav body.
|
||||
{{</* /nav-item */>}}
|
||||
{{</* /nav */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Navbar
|
||||
|
||||
As an example, the following shortcode displays a light navigation header.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* navbar path="about" color="primary" size="sm" search="false" menus="sample" title="Brand" */>}}
|
||||
{{</* navbar path="about" color="primary" size="md" search="false" menus="sample" title="Brand" mode="false" */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
|
@@ -198,7 +198,7 @@ De volgende shortcode toont een navigatiemenu.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* navbar path="about" color="primary" size="sm" search="false" menus="sample" title="Brand" */>}}
|
||||
{{</* navbar path="about" color="primary" size="md" search="false" menus="sample" title="Brand" mode="false" */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
|
@@ -3,12 +3,15 @@
|
||||
{{ $.Scratch.Set "version" (site.Param (printf "%s.version" .Section)) }}
|
||||
|
||||
<!doctype html>
|
||||
<html lang="{{ .Site.Language.Lang }}" class="no-js" data-bs-theme="dark">
|
||||
<html lang="{{ .Site.Language.Lang }}" class="no-js">
|
||||
<head>
|
||||
{{ block "head" . }}{{ end -}}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{{- if site.Params.main.enableDarkMode -}}
|
||||
{{- partial "footer/scripts.html" (dict "filename" "js/critical.bundle.js" "match" "js/critical/**.js" "page" .) -}}
|
||||
{{- end -}}
|
||||
<div class="d-flex flex-column min-vh-100{{ if and .IsHome .Site.Params.home.style }} {{ .Site.Params.home.style }}{{ end }}">
|
||||
<div class="{{ if .Site.Params.navigation.fixed }}mb-4{{ end }}">
|
||||
{{- partial "assets/navbar.html" (dict
|
||||
@@ -54,6 +57,6 @@
|
||||
{{- partial "footer/footer.html" . -}}
|
||||
{{ end -}}
|
||||
|
||||
{{- partialCached "footer/scripts.html" . -}}
|
||||
{{- partialCached "footer/scripts.html" (dict "page" .) }}
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -6,12 +6,47 @@
|
||||
"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",
|
||||
"danger", "warning", "info", "light", "dark", "white" or "black". The default color is none.
|
||||
"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".
|
||||
"logo" Optional address of the logo image, defaults to the parameter "logo" set in the "main" section of
|
||||
the site's parameter configuration.
|
||||
"title" Optional brand title, displayed when the logo is not set. Defaults to the site's title.
|
||||
-->
|
||||
|
||||
<!-- Inline partial to render the color mode switcher -->
|
||||
{{- define "partials/navbar-mode.html" -}}
|
||||
{{- $id := .id -}}
|
||||
{{- $size := .size -}}
|
||||
{{- $collapsed := .collapsed -}}
|
||||
|
||||
<li class="nav-item dropdown {{ if $collapsed }}d-{{ $size }}-none{{ else }}d-none d-{{ $size }}-block{{ end }}">
|
||||
<a class="nav-link dropdown-toggle" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false" id="navbar-color-theme">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas sun theme-icon-active") }} {{ if $collapsed }} {{ T "colorMode" }} {{ end }}
|
||||
<span class="d-md-none"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbar-color-theme">
|
||||
<li>
|
||||
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="light" href="#!">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas sun theme-icon") }}
|
||||
{{ T "colorLight" }}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="dark" href="#!">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas moon theme-icon") }}
|
||||
{{ T "colorDark" }}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="auto" href="#!">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas circle-half-stroke theme-icon" ) }}
|
||||
{{ T "colorAuto" }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
{{- end -}}
|
||||
|
||||
{{- $supportedFlags := slice "true" "false" -}}
|
||||
|
||||
{{- $id := 0 -}}
|
||||
@@ -65,6 +100,15 @@
|
||||
{{- end -}}
|
||||
|
||||
{{- $enableDarkMode := default true site.Params.main.enableDarkMode -}}
|
||||
{{- with .mode -}}
|
||||
{{- $darkModeParam := . -}}
|
||||
{{- if in $supportedFlags $darkModeParam -}}
|
||||
{{- if eq $darkModeParam "true" }}{{ $enableDarkMode = site.Params.main.enableDarkMode }}{{ else }}{{ $enableDarkMode = false }}{{ end -}}
|
||||
{{- else -}}
|
||||
{{- errorf "Invalid value for param 'darkMode': %s" $darkModeParam -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $enableLanguage := or $page.IsTranslated site.IsMultiLingual -}}
|
||||
|
||||
{{- $logo := site.Params.navigation.logo -}}
|
||||
@@ -138,7 +182,7 @@
|
||||
<li><a class="dropdown-item {{ if $child_active }}active{{ end }}" href="{{ .URL }}">{{ .Name }}</a></li>
|
||||
{{- end -}}
|
||||
</ul>
|
||||
</li>
|
||||
</li>
|
||||
{{- else -}}
|
||||
<li class="nav-item">
|
||||
{{- $external := ne $url.Host $baseurl.Host -}}
|
||||
@@ -155,18 +199,22 @@
|
||||
|
||||
|
||||
{{- if or $enableLanguage $enableDarkMode -}}
|
||||
<li class="nav-item py-2 py-md-1 col-12 col-md-auto">
|
||||
<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>
|
||||
</li>
|
||||
<li><hr class="dropdown-divider-bg"></li>
|
||||
{{- end -}}
|
||||
|
||||
<!-- Insert language switcher if applicable -->
|
||||
{{- if $enableLanguage -}}
|
||||
{{- $currentLang := $page.Language.Lang -}}
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<a class="nav-link dropdown-toggle d-{{ $size }}-none" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas globe") }} {{ T "languageSwitcherLabel" }}
|
||||
</a>
|
||||
<a class="nav-link dropdown-toggle d-none d-{{ $size }}-block" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas globe") }}
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end ">
|
||||
{{- if $page.IsTranslated -}}
|
||||
{{- range $page.AllTranslations -}}
|
||||
@@ -183,32 +231,8 @@
|
||||
|
||||
<!-- Insert color mode switcher -->
|
||||
{{- if $enableDarkMode -}}
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false" id="navbar-color-theme">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas sun theme-icon-active") }}
|
||||
<span class="d-md-none"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbar-color-theme">
|
||||
<li>
|
||||
<a class="dropdown-item" data-bs-theme-value="light" href="#!">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas sun theme-icon") }}
|
||||
{{ T "colorLight" }}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item" data-bs-theme-value="dark" href="#!">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas moon theme-icon") }}
|
||||
{{ T "colorDark" }}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item" data-bs-theme-value="auto" href="#!">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas circle-half-stroke theme-icon" ) }}
|
||||
{{ T "colorAuto" }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
{{- partial "partials/navbar-mode.html" (dict "id" $id "size" $size "collapsed" true) -}}
|
||||
{{- partial "partials/navbar-mode.html" (dict "id" $id "size" $size "collapsed" false) -}}
|
||||
{{- end -}}
|
||||
</ul>
|
||||
</div>
|
||||
|
@@ -1,15 +1,20 @@
|
||||
{{ $filename := "js/main.bundle.js" -}}
|
||||
{{ if hugo.IsProduction }}{{ $filename = "js/main.bundle.min.js" }}{{ end -}}
|
||||
{{ $filename := .filename | default "js/main.bundle.js" -}}
|
||||
{{ $match := .match | default "{js/*.js,js/vendor/**.js}" }}
|
||||
{{ $page := .page }}
|
||||
|
||||
{{ $files := slice -}}
|
||||
{{ range $index, $file := resources.Match "js/**.js" -}}
|
||||
{{ range $index, $file := resources.Match $match -}}
|
||||
{{ $files = $files | append $file -}}
|
||||
{{ end -}}
|
||||
{{ $bundle := $files | resources.Concat $filename -}}
|
||||
{{ $js := $bundle | resources.ExecuteAsTemplate $filename . -}}
|
||||
|
||||
{{- if not hugo.IsProduction -}}
|
||||
<script src="{{ $js.RelPermalink }}"></script>
|
||||
{{ else -}}
|
||||
{{ $js = $js | minify | fingerprint -}}
|
||||
<script src="{{ $js.RelPermalink }}" integrity="{{ $js.Data.Integrity }}" crossorigin="anonymous"></script>
|
||||
{{ if gt (len $files) 0 }}
|
||||
{{ $bundle := $files | resources.Concat $filename -}}
|
||||
{{ $js := $bundle | resources.ExecuteAsTemplate $filename $page -}}
|
||||
|
||||
{{- if not hugo.IsProduction -}}
|
||||
<script src="{{ $js.RelPermalink }}"></script>
|
||||
{{ else -}}
|
||||
{{ $js = $js | minify | fingerprint -}}
|
||||
<script src="{{ $js.RelPermalink }}" integrity="{{ $js.Data.Integrity }}" crossorigin="anonymous"></script>
|
||||
{{ end -}}
|
||||
{{ end -}}
|
@@ -15,8 +15,8 @@
|
||||
"import-fonts" (printf "%t" (not (hasPrefix (lower .Site.Params.style.themeFontPath) "http")))
|
||||
-}}
|
||||
|
||||
{{- $options := (dict "transpiler" "libsass" "targetPath" "main.css" "enableSourceMap" (not hugo.IsProduction) "includePaths" (slice "node_modules") "vars" $vars) -}}
|
||||
{{/*- $options := (dict "transpiler" "dartsass" "targetPath" "main.css" "enableSourceMap" (not hugo.IsProduction) "includePaths" (slice "node_modules") "vars" $vars) -*/}}
|
||||
{{- $options := (dict "transpiler" "libsass" "targetPath" "css/main.css" "enableSourceMap" (not hugo.IsProduction) "includePaths" (slice "node_modules") "vars" $vars) -}}
|
||||
{{/*- $options := (dict "transpiler" "dartsass" "targetPath" "css/main.css" "enableSourceMap" (not hugo.IsProduction) "includePaths" (slice "node_modules") "vars" $vars) -*/}}
|
||||
{{- if hugo.IsProduction -}}
|
||||
{{- $options = merge $options (dict "outputStyle" "compressed") -}}
|
||||
{{- else -}}
|
||||
|
12
layouts/partials/utilities/GetVal.html
Normal file
12
layouts/partials/utilities/GetVal.html
Normal file
@@ -0,0 +1,12 @@
|
||||
<!--
|
||||
Retrieve the value from a key-value pair. The expected format is 'key="value"', including double quotes for the
|
||||
value. Returns -1 when no valid value is found.
|
||||
-->
|
||||
|
||||
{{- $input := (split . "=") -}}
|
||||
{{- $val := -1 -}}
|
||||
{{- if gt (len $input) 1 -}}
|
||||
{{- $val = trim (index $input 1) "\"" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- return $val -}}
|
42
layouts/shortcodes/nav-item.html
Normal file
42
layouts/shortcodes/nav-item.html
Normal file
@@ -0,0 +1,42 @@
|
||||
<!--
|
||||
Defines an individual nav item. The shortcode supports the following arguments:
|
||||
"header" Required header of the nav item.
|
||||
"class" Optional class attribute of the inner nav item.
|
||||
"show" Optional flag to indicate an item should be shown.
|
||||
-->
|
||||
|
||||
{{- $id := .Ordinal -}}
|
||||
{{ $header := .Get "header" -}}
|
||||
{{ if not $header -}}
|
||||
{{ if .Parent }}
|
||||
{{ errorf "Missing value for param 'header': %s" .Parent.Position -}}
|
||||
{{ else }}
|
||||
{{ errorf "Missing value for param 'header': %s" .Position -}}
|
||||
{{ end }}
|
||||
{{ end -}}
|
||||
|
||||
{{ $class := .Get "class" -}}
|
||||
{{ $body := trim .Inner " \r\n" -}}
|
||||
{{ if not $body -}}
|
||||
{{ if .Parent }}
|
||||
{{ errorf "Missing inner element text: %s" .Parent.Position -}}
|
||||
{{ else }}
|
||||
{{ errorf "Missing inner element text: %s" .Position -}}
|
||||
{{ end }}
|
||||
{{ end -}}
|
||||
|
||||
{{ $supportedFlags := slice "true" "false" -}}
|
||||
{{ $showParam := "false" -}}
|
||||
{{ $show := false -}}
|
||||
{{ with .Get "show" }}{{ $showParam = . }}{{ end -}}
|
||||
{{ if in $supportedFlags $showParam -}}
|
||||
{{ if eq $showParam "true" }}{{ $show = true }}{{ else }}{{ $show = false }}{{ end -}}
|
||||
{{ else -}}
|
||||
{{ errorf "Invalid value for param 'show': %s" $showParam -}}
|
||||
{{ end -}}
|
||||
|
||||
{{- $parent := printf "nav-%d" .Parent.Ordinal -}}
|
||||
|
||||
<div class="tab-pane{{ if $show }} active{{ end }}" id="{{ $parent }}-{{ $id }}" role="tabpanel" aria-labelledby="{{ $parent }}-btn-{{ $id }}" tabindex="0" data-header="{{ $header }}" {{ if $show }}data-show-id="{{ $id }}"{{ end }}>
|
||||
{{ $body | markdownify | safeHTML }}
|
||||
</div>
|
57
layouts/shortcodes/nav.html
Normal file
57
layouts/shortcodes/nav.html
Normal file
@@ -0,0 +1,57 @@
|
||||
<!--
|
||||
Displays a tab group of multiple items. Add nav-item inner elements for each tab pane. The shortcode supports the
|
||||
following arguments:
|
||||
"type" Optional type of the tab group, either "tabs", "pills", or "underline".
|
||||
"vertical" Optional flag to show vertical tabs instead of horizontal tabs (default).
|
||||
"class": Optional class attribute of the tab group, e.g. “nav-fill”.
|
||||
-->
|
||||
|
||||
<!-- TODO: add fade support -->
|
||||
|
||||
{{- $id := .Ordinal -}}
|
||||
{{- $class := .Get "class" -}}
|
||||
{{ $type := .Get "type" -}}
|
||||
{{ $supportedNavTypes := slice "tabs" "pills" "underline" -}}
|
||||
{{ if $type }}
|
||||
{{ if not (in $supportedNavTypes $type) -}}
|
||||
{{ errorf "Invalid value for param 'type': %s" $type -}}
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
|
||||
{{ $supportedFlags := slice "true" "false" -}}
|
||||
{{ $verticalParam := "false" -}}
|
||||
{{ $vertical := false -}}
|
||||
{{ with .Get "vertical" }}{{ $verticalParam = . }}{{ end -}}
|
||||
{{ if in $supportedFlags $verticalParam -}}
|
||||
{{ if eq $verticalParam "true" }}{{ $vertical = true }}{{ else }}{{ $vertical = false }}{{ end -}}
|
||||
{{ else -}}
|
||||
{{ errorf "Invalid value for param 'vertical': %s" $verticalParam -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if and (eq $type "tabs") $vertical -}}
|
||||
{{- errorf "Tabs do not support vertical layout" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $inner := .Inner -}}
|
||||
{{- $items := findRE "data-header=\"(.+?)\"" $inner -}}
|
||||
{{- $showVal := findRE "data-show-id=\"(.+?)\"" $inner -}}
|
||||
{{- $showID := -1 -}}
|
||||
{{- if gt (len $showVal) 0 -}}
|
||||
{{- $showID = int (partial "utilities/GetVal.html" (index $showVal 0)) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{ if $vertical }}<div class="d-flex align-items-start">{{ end }}
|
||||
<div class="nav{{ with $type }} nav-{{ . }}{{ end }}{{ with $class }} {{ . }}{{ end }}{{ if $vertical }} flex-column{{ end }}" id="nav-{{ $id }}" role="tablist"{{ if $vertical }} aria-orientation="vertical"{{ end }}>
|
||||
{{- range $index, $item := $items -}}
|
||||
{{- $header := partial "utilities/GetVal.html" $item -}}
|
||||
<button class="nav-link text-nowrap{{ if eq $index $showID }} active{{ end }}" id="nav-{{ $id }}-btn-{{ $index }}" data-bs-toggle="pill" data-bs-target="#nav-{{ $id }}-{{ $index }}"
|
||||
type="button" role="tab" aria-controls="nav-{{ $id }}-{{ $index }}" aria-selected="{{ if eq $index 0 }}true{{ else }}false{{ end }}">
|
||||
{{ $header }}
|
||||
</button>
|
||||
{{ end -}}
|
||||
</div>
|
||||
|
||||
<div class="tab-content {{ if eq $type "tabs" }}border border-top-0 p-3{{ else if $vertical }}ms-3{{ else }}mt-3{{ end }}">
|
||||
{{- $inner -}}
|
||||
</div>
|
||||
{{ if $vertical }}</div>{{ end }}
|
@@ -8,12 +8,15 @@
|
||||
"style" Optional style of the navbar, either "light" (default) or "dark".
|
||||
"color" Optional background color of the navbar, either "primary", "secondary", "success",
|
||||
"danger", "warning", "info", "light", "dark", "white" or "black". The default color is none.
|
||||
"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".
|
||||
"logo" Optional address of the logo image.
|
||||
"title" Optional brand title, displayed when the logo is not set.
|
||||
-->
|
||||
|
||||
{{ $error := false }}
|
||||
{{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" "body" -}}
|
||||
{{ $supportedFlags := slice "true" "false" -}}
|
||||
|
||||
{{ $id := add .Ordinal 1 }}
|
||||
|
||||
@@ -49,7 +52,6 @@
|
||||
{{ $color := "" -}}
|
||||
{{ with .Get "color" }}
|
||||
{{ $color = . }}
|
||||
{{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" "body" -}}
|
||||
{{ if not (in $supportedColors $color) -}}
|
||||
{{ errorf "Invalid value for param 'color': %s" $color -}}
|
||||
{{ $error = true -}}
|
||||
@@ -58,12 +60,18 @@
|
||||
|
||||
{{ $searchParam := "true" -}}
|
||||
{{ with .Get "search" }}{{ $searchParam = . }}{{ end -}}
|
||||
{{ $supportedFlags := slice "true" "false" -}}
|
||||
{{ if not (in $supportedFlags $searchParam) -}}
|
||||
{{ errorf "Invalid value for param 'search': %s" .Position -}}
|
||||
{{ $error = true -}}
|
||||
{{ end -}}
|
||||
|
||||
{{ $modeParam := "true" -}}
|
||||
{{ with .Get "mode" }}{{ $modeParam = . }}{{ end -}}
|
||||
{{ if not (in $supportedFlags $modeParam) -}}
|
||||
{{ errorf "Invalid value for param 'mode': %s" .Position -}}
|
||||
{{ $error = true -}}
|
||||
{{ end -}}
|
||||
|
||||
{{ $logo := "" -}}
|
||||
{{ with .Get "logo" }}{{ $logo = . }}{{ end -}}
|
||||
|
||||
@@ -71,5 +79,17 @@
|
||||
{{ with .Get "title" }}{{ $title = . }}{{ end -}}
|
||||
|
||||
{{ if not $error -}}
|
||||
{{- partial "assets/navbar.html" (dict "id" $id "page" $page "size" $size "style" $style "color" $color "search" $searchParam "menus" $menus "logo" $logo "title" $title) -}}
|
||||
{{- partial "assets/navbar.html" (dict
|
||||
"id" $id
|
||||
"page" $page
|
||||
"size" $size
|
||||
"style" $style
|
||||
"color" $color
|
||||
"search" $searchParam
|
||||
"mode" $modeParam
|
||||
"menus" $menus
|
||||
"logo" $logo
|
||||
"title" $title
|
||||
)
|
||||
-}}
|
||||
{{ end -}}
|
254
package-lock.json
generated
254
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.11.4",
|
||||
"version": "0.11.8",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.11.4",
|
||||
"version": "0.11.8",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@fortawesome/fontawesome-free": "^6.4.0",
|
||||
@@ -25,10 +25,10 @@
|
||||
"markdownlint-cli2": "^0.6.0",
|
||||
"postcss-cli": "^10.1.0",
|
||||
"purgecss-whitelister": "^2.4.0",
|
||||
"rimraf": "^4.4.1",
|
||||
"rimraf": "^5.0.0",
|
||||
"shx": "^0.3.4",
|
||||
"stylelint": "^15.4.0",
|
||||
"stylelint-config-standard-scss": "^7.0.1"
|
||||
"stylelint-config-standard-scss": "^8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/code-frame": {
|
||||
@@ -247,9 +247,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/js": {
|
||||
"version": "8.37.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.37.0.tgz",
|
||||
"integrity": "sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==",
|
||||
"version": "8.38.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz",
|
||||
"integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
@@ -1887,6 +1887,12 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/dlv": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
|
||||
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/doctrine": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
|
||||
@@ -2094,15 +2100,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint": {
|
||||
"version": "8.37.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.37.0.tgz",
|
||||
"integrity": "sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==",
|
||||
"version": "8.38.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz",
|
||||
"integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.2.0",
|
||||
"@eslint-community/regexpp": "^4.4.0",
|
||||
"@eslint/eslintrc": "^2.0.2",
|
||||
"@eslint/js": "8.37.0",
|
||||
"@eslint/js": "8.38.0",
|
||||
"@humanwhocodes/config-array": "^0.11.8",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"@nodelib/fs.walk": "^1.2.8",
|
||||
@@ -4276,9 +4282,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/minipass": {
|
||||
"version": "4.2.4",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz",
|
||||
"integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==",
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
|
||||
"integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
@@ -4646,28 +4652,28 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/path-scurry": {
|
||||
"version": "1.6.1",
|
||||
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz",
|
||||
"integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==",
|
||||
"version": "1.6.4",
|
||||
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz",
|
||||
"integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lru-cache": "^7.14.1",
|
||||
"minipass": "^4.0.2"
|
||||
"lru-cache": "^9.0.0",
|
||||
"minipass": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
"node": ">=16 || 14 >=14.17"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/path-scurry/node_modules/lru-cache": {
|
||||
"version": "7.18.1",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.1.tgz",
|
||||
"integrity": "sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg==",
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.0.tgz",
|
||||
"integrity": "sha512-9AEKXzvOZc4BMacFnYiTOlDH/197LNnQIK9wZ6iMB5NXPzuv4bWR/Msv7iUMplkiMQ1qQL+KSv/JF1mZAB5Lrg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
"node": ">=16.14"
|
||||
}
|
||||
},
|
||||
"node_modules/path-type": {
|
||||
@@ -5884,12 +5890,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/rimraf": {
|
||||
"version": "4.4.1",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz",
|
||||
"integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==",
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz",
|
||||
"integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"glob": "^9.2.0"
|
||||
"glob": "^10.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"rimraf": "dist/cjs/src/bin.js"
|
||||
@@ -5911,15 +5917,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/rimraf/node_modules/glob": {
|
||||
"version": "9.2.1",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz",
|
||||
"integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==",
|
||||
"version": "10.0.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz",
|
||||
"integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"minimatch": "^7.4.1",
|
||||
"minipass": "^4.2.4",
|
||||
"path-scurry": "^1.6.1"
|
||||
"minimatch": "^9.0.0",
|
||||
"minipass": "^5.0.0",
|
||||
"path-scurry": "^1.6.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16 || 14 >=14.17"
|
||||
@@ -5929,15 +5935,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/rimraf/node_modules/minimatch": {
|
||||
"version": "7.4.2",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz",
|
||||
"integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==",
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz",
|
||||
"integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
"node": ">=16 || 14 >=14.17"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
@@ -6489,27 +6495,27 @@
|
||||
}
|
||||
},
|
||||
"node_modules/stylelint-config-recommended": {
|
||||
"version": "10.0.1",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-10.0.1.tgz",
|
||||
"integrity": "sha512-TQ4xQ48tW4QSlODcti7pgSRqBZcUaBzuh0jPpfiMhwJKBPkqzTIAU+IrSWL/7BgXlOM90DjB7YaNgFpx8QWhuA==",
|
||||
"version": "11.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-11.0.0.tgz",
|
||||
"integrity": "sha512-SoGIHNI748OCZn6BxFYT83ytWoYETCINVHV3LKScVAWQQauWdvmdDqJC5YXWjpBbxg2E761Tg5aUGKLFOVhEkA==",
|
||||
"dev": true,
|
||||
"peerDependencies": {
|
||||
"stylelint": "^15.0.0"
|
||||
"stylelint": "^15.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/stylelint-config-recommended-scss": {
|
||||
"version": "9.0.1",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-9.0.1.tgz",
|
||||
"integrity": "sha512-qAmz/TdrqslwiMTuLM3QXeISUkfEDUXGMfRBCHm/xrkCJNnQefv+mzG2mWTsWkqcVk8HAyUkug10dwAcYp2fCQ==",
|
||||
"version": "10.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-10.0.0.tgz",
|
||||
"integrity": "sha512-+YvPgUHi0W5mCJCKdupBCIsWPYNbWuJcRmFtSYujwNg+41ljFknhO9bpY6C+oahv659zW7W1AT7i6DQvJYYr1A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"postcss-scss": "^4.0.2",
|
||||
"stylelint-config-recommended": "^10.0.1",
|
||||
"stylelint-scss": "^4.4.0"
|
||||
"postcss-scss": "^4.0.6",
|
||||
"stylelint-config-recommended": "^11.0.0",
|
||||
"stylelint-scss": "^4.6.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.3.3",
|
||||
"stylelint": "^15.0.0"
|
||||
"stylelint": "^15.3.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"postcss": {
|
||||
@@ -6518,29 +6524,29 @@
|
||||
}
|
||||
},
|
||||
"node_modules/stylelint-config-standard": {
|
||||
"version": "30.0.1",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-30.0.1.tgz",
|
||||
"integrity": "sha512-NbeHOmpRQhjZh5XB1B/S4MLRWvz4xxAxeDBjzl0tY2xEcayNhLbaRGF0ZQzq+DQZLCcPpOHeS2Ru1ydbkhkmLg==",
|
||||
"version": "32.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-32.0.0.tgz",
|
||||
"integrity": "sha512-UnGJxYDyYFrIE9CjDMZRkrNh2o4lOtO+MVZ9qG5b8yARfsWho0GMx4YvhHfsv8zKKgHeWX2wfeyxmuoqcaYZ4w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"stylelint-config-recommended": "^10.0.1"
|
||||
"stylelint-config-recommended": "^11.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"stylelint": "^15.0.0"
|
||||
"stylelint": "^15.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/stylelint-config-standard-scss": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-7.0.1.tgz",
|
||||
"integrity": "sha512-m5sRdtsB1F5fnC1Ozla7ryftU47wVpO+HWd+JQTqeoG0g/oPh5EfbWfcVHbNCEtuoHfALIySiUWS20pz2hX6jA==",
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-8.0.0.tgz",
|
||||
"integrity": "sha512-TDT/gJD/0LUDoUgkjF1uoI/4DfczXHxg7gJVcWT4/JbE6k5hszVuI14reNX+tEwSyMNhcK2BA7izrK+uVAz7XA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"stylelint-config-recommended-scss": "^9.0.0",
|
||||
"stylelint-config-standard": "^30.0.1"
|
||||
"stylelint-config-recommended-scss": "^10.0.0",
|
||||
"stylelint-config-standard": "^32.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"postcss": "^8.3.3",
|
||||
"stylelint": "^15.0.0"
|
||||
"stylelint": "^15.4.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"postcss": {
|
||||
@@ -6549,16 +6555,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/stylelint-scss": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.4.0.tgz",
|
||||
"integrity": "sha512-Qy66a+/30aylFhPmUArHhVsHOun1qrO93LGT15uzLuLjWS7hKDfpFm34mYo1ndR4MCo8W4bEZM1+AlJRJORaaw==",
|
||||
"version": "4.6.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.6.0.tgz",
|
||||
"integrity": "sha512-M+E0BQim6G4XEkaceEhfVjP/41C9Klg5/tTPTCQVlgw/jm2tvB+OXJGaU0TDP5rnTCB62aX6w+rT+gqJW/uwjA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lodash": "^4.17.21",
|
||||
"dlv": "^1.1.3",
|
||||
"postcss-media-query-parser": "^0.2.3",
|
||||
"postcss-resolve-nested-selector": "^0.1.1",
|
||||
"postcss-selector-parser": "^6.0.6",
|
||||
"postcss-value-parser": "^4.1.0"
|
||||
"postcss-selector-parser": "^6.0.11",
|
||||
"postcss-value-parser": "^4.2.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"stylelint": "^14.5.1 || ^15.0.0"
|
||||
@@ -7261,9 +7267,9 @@
|
||||
}
|
||||
},
|
||||
"@eslint/js": {
|
||||
"version": "8.37.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.37.0.tgz",
|
||||
"integrity": "sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==",
|
||||
"version": "8.38.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz",
|
||||
"integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==",
|
||||
"dev": true
|
||||
},
|
||||
"@fortawesome/fontawesome-free": {
|
||||
@@ -8425,6 +8431,12 @@
|
||||
"path-type": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"dlv": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
|
||||
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
|
||||
"dev": true
|
||||
},
|
||||
"doctrine": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
|
||||
@@ -8580,15 +8592,15 @@
|
||||
"dev": true
|
||||
},
|
||||
"eslint": {
|
||||
"version": "8.37.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.37.0.tgz",
|
||||
"integrity": "sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==",
|
||||
"version": "8.38.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz",
|
||||
"integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@eslint-community/eslint-utils": "^4.2.0",
|
||||
"@eslint-community/regexpp": "^4.4.0",
|
||||
"@eslint/eslintrc": "^2.0.2",
|
||||
"@eslint/js": "8.37.0",
|
||||
"@eslint/js": "8.38.0",
|
||||
"@humanwhocodes/config-array": "^0.11.8",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"@nodelib/fs.walk": "^1.2.8",
|
||||
@@ -10185,9 +10197,9 @@
|
||||
}
|
||||
},
|
||||
"minipass": {
|
||||
"version": "4.2.4",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz",
|
||||
"integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==",
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
|
||||
"integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
|
||||
"dev": true
|
||||
},
|
||||
"ms": {
|
||||
@@ -10443,19 +10455,19 @@
|
||||
"dev": true
|
||||
},
|
||||
"path-scurry": {
|
||||
"version": "1.6.1",
|
||||
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz",
|
||||
"integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==",
|
||||
"version": "1.6.4",
|
||||
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz",
|
||||
"integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lru-cache": "^7.14.1",
|
||||
"minipass": "^4.0.2"
|
||||
"lru-cache": "^9.0.0",
|
||||
"minipass": "^5.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"lru-cache": {
|
||||
"version": "7.18.1",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.1.tgz",
|
||||
"integrity": "sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg==",
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.0.tgz",
|
||||
"integrity": "sha512-9AEKXzvOZc4BMacFnYiTOlDH/197LNnQIK9wZ6iMB5NXPzuv4bWR/Msv7iUMplkiMQ1qQL+KSv/JF1mZAB5Lrg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
@@ -11260,12 +11272,12 @@
|
||||
"dev": true
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "4.4.1",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz",
|
||||
"integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==",
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz",
|
||||
"integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"glob": "^9.2.0"
|
||||
"glob": "^10.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"brace-expansion": {
|
||||
@@ -11278,21 +11290,21 @@
|
||||
}
|
||||
},
|
||||
"glob": {
|
||||
"version": "9.2.1",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz",
|
||||
"integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==",
|
||||
"version": "10.0.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz",
|
||||
"integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"minimatch": "^7.4.1",
|
||||
"minipass": "^4.2.4",
|
||||
"path-scurry": "^1.6.1"
|
||||
"minimatch": "^9.0.0",
|
||||
"minipass": "^5.0.0",
|
||||
"path-scurry": "^1.6.4"
|
||||
}
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "7.4.2",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz",
|
||||
"integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==",
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz",
|
||||
"integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
@@ -11732,53 +11744,53 @@
|
||||
}
|
||||
},
|
||||
"stylelint-config-recommended": {
|
||||
"version": "10.0.1",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-10.0.1.tgz",
|
||||
"integrity": "sha512-TQ4xQ48tW4QSlODcti7pgSRqBZcUaBzuh0jPpfiMhwJKBPkqzTIAU+IrSWL/7BgXlOM90DjB7YaNgFpx8QWhuA==",
|
||||
"version": "11.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-11.0.0.tgz",
|
||||
"integrity": "sha512-SoGIHNI748OCZn6BxFYT83ytWoYETCINVHV3LKScVAWQQauWdvmdDqJC5YXWjpBbxg2E761Tg5aUGKLFOVhEkA==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
},
|
||||
"stylelint-config-recommended-scss": {
|
||||
"version": "9.0.1",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-9.0.1.tgz",
|
||||
"integrity": "sha512-qAmz/TdrqslwiMTuLM3QXeISUkfEDUXGMfRBCHm/xrkCJNnQefv+mzG2mWTsWkqcVk8HAyUkug10dwAcYp2fCQ==",
|
||||
"version": "10.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-10.0.0.tgz",
|
||||
"integrity": "sha512-+YvPgUHi0W5mCJCKdupBCIsWPYNbWuJcRmFtSYujwNg+41ljFknhO9bpY6C+oahv659zW7W1AT7i6DQvJYYr1A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"postcss-scss": "^4.0.2",
|
||||
"stylelint-config-recommended": "^10.0.1",
|
||||
"stylelint-scss": "^4.4.0"
|
||||
"postcss-scss": "^4.0.6",
|
||||
"stylelint-config-recommended": "^11.0.0",
|
||||
"stylelint-scss": "^4.6.0"
|
||||
}
|
||||
},
|
||||
"stylelint-config-standard": {
|
||||
"version": "30.0.1",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-30.0.1.tgz",
|
||||
"integrity": "sha512-NbeHOmpRQhjZh5XB1B/S4MLRWvz4xxAxeDBjzl0tY2xEcayNhLbaRGF0ZQzq+DQZLCcPpOHeS2Ru1ydbkhkmLg==",
|
||||
"version": "32.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-32.0.0.tgz",
|
||||
"integrity": "sha512-UnGJxYDyYFrIE9CjDMZRkrNh2o4lOtO+MVZ9qG5b8yARfsWho0GMx4YvhHfsv8zKKgHeWX2wfeyxmuoqcaYZ4w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"stylelint-config-recommended": "^10.0.1"
|
||||
"stylelint-config-recommended": "^11.0.0"
|
||||
}
|
||||
},
|
||||
"stylelint-config-standard-scss": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-7.0.1.tgz",
|
||||
"integrity": "sha512-m5sRdtsB1F5fnC1Ozla7ryftU47wVpO+HWd+JQTqeoG0g/oPh5EfbWfcVHbNCEtuoHfALIySiUWS20pz2hX6jA==",
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-8.0.0.tgz",
|
||||
"integrity": "sha512-TDT/gJD/0LUDoUgkjF1uoI/4DfczXHxg7gJVcWT4/JbE6k5hszVuI14reNX+tEwSyMNhcK2BA7izrK+uVAz7XA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"stylelint-config-recommended-scss": "^9.0.0",
|
||||
"stylelint-config-standard": "^30.0.1"
|
||||
"stylelint-config-recommended-scss": "^10.0.0",
|
||||
"stylelint-config-standard": "^32.0.0"
|
||||
}
|
||||
},
|
||||
"stylelint-scss": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.4.0.tgz",
|
||||
"integrity": "sha512-Qy66a+/30aylFhPmUArHhVsHOun1qrO93LGT15uzLuLjWS7hKDfpFm34mYo1ndR4MCo8W4bEZM1+AlJRJORaaw==",
|
||||
"version": "4.6.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.6.0.tgz",
|
||||
"integrity": "sha512-M+E0BQim6G4XEkaceEhfVjP/41C9Klg5/tTPTCQVlgw/jm2tvB+OXJGaU0TDP5rnTCB62aX6w+rT+gqJW/uwjA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lodash": "^4.17.21",
|
||||
"dlv": "^1.1.3",
|
||||
"postcss-media-query-parser": "^0.2.3",
|
||||
"postcss-resolve-nested-selector": "^0.1.1",
|
||||
"postcss-selector-parser": "^6.0.6",
|
||||
"postcss-value-parser": "^4.1.0"
|
||||
"postcss-selector-parser": "^6.0.11",
|
||||
"postcss-value-parser": "^4.2.0"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.11.4",
|
||||
"version": "0.11.8",
|
||||
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
|
||||
"keywords": [
|
||||
"hugo",
|
||||
@@ -67,10 +67,10 @@
|
||||
"markdownlint-cli2": "^0.6.0",
|
||||
"postcss-cli": "^10.1.0",
|
||||
"purgecss-whitelister": "^2.4.0",
|
||||
"rimraf": "^4.4.1",
|
||||
"rimraf": "^5.0.0",
|
||||
"shx": "^0.3.4",
|
||||
"stylelint": "^15.4.0",
|
||||
"stylelint-config-standard-scss": "^7.0.1"
|
||||
"stylelint-config-standard-scss": "^8.0.0"
|
||||
},
|
||||
"hugo-bin": {
|
||||
"buildTags": "extended"
|
||||
|
Reference in New Issue
Block a user