Compare commits

..

16 Commits

Author SHA1 Message Date
Mark Dumay
a44e5dcafc Merge pull request #1542 from gethinode/radius
Radius
2025-08-22 11:40:51 +02:00
Mark Dumay
8493154844 Merge branch 'main' into radius 2025-08-22 11:32:52 +02:00
Mark Dumay
8a8a644ccf feat: support theme-border-radius for consistent styling 2025-08-22 11:32:02 +02:00
Mark Dumay
d390d2eb4e fix: set font display to block to reduce layout shift 2025-08-22 11:19:22 +02:00
Mark Dumay
2e3bca1a34 fix: add border color to search input 2025-08-22 11:17:39 +02:00
Mark Dumay
9a00e6c4c1 feat: add video color argument to ease in frame content 2025-08-22 11:16:05 +02:00
Mark Dumay
3dcbe0b62c feat: improve border radius consistency 2025-08-22 08:23:25 +02:00
Mark Dumay
2625222554 Merge pull request #1538 from gethinode/develop
feat: add link button to toggle TOC items
2025-08-15 10:00:54 +02:00
Mark Dumay
74eeec9030 Merge branch 'main' into develop 2025-08-15 09:53:29 +02:00
Mark Dumay
a57e0da164 feat: add link button to toggle TOC items 2025-08-15 09:52:20 +02:00
github-actions[bot]
6ab01755f2 Merge pull request #1537 from gethinode/dependabot/npm_and_yarn/cpy-cli-6.0.0
build(deps-dev): bump cpy-cli from 5.0.0 to 6.0.0
2025-08-13 13:51:27 +00:00
dependabot[bot]
22cb71ca9b build(deps-dev): bump cpy-cli from 5.0.0 to 6.0.0
Bumps [cpy-cli](https://github.com/sindresorhus/cpy-cli) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/sindresorhus/cpy-cli/releases)
- [Commits](https://github.com/sindresorhus/cpy-cli/compare/v5.0.0...v6.0.0)

---
updated-dependencies:
- dependency-name: cpy-cli
  dependency-version: 6.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 13:45:14 +00:00
Mark Dumay
62897f685f Merge pull request #1535 from gethinode/codeql
ci: use advanced codeql config
2025-08-12 09:35:18 +02:00
Mark Dumay
4f8fdc4f03 ci: fix codeql config path 2025-08-12 09:28:05 +02:00
Mark Dumay
925a3ff33e ci: specify codeql paths to scan 2025-08-12 09:25:06 +02:00
Mark Dumay
cf16cb9824 ci: use advanced codeql config 2025-08-12 08:22:40 +02:00
43 changed files with 534 additions and 434 deletions

8
.github/codeql/codeql-config.yml vendored Normal file
View File

@@ -0,0 +1,8 @@
paths:
- 'assets/js'
paths-ignore:
- '**/vendor'
- '**/critical/languageSelector.js'
- '**/critical/color.js'
- '**/navbar.js'
- '**/sharing.js'

102
.github/workflows/codeql.yml vendored Normal file
View File

@@ -0,0 +1,102 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL Advanced"
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
schedule:
- cron: '44 1 * * 3'
jobs:
analyze:
name: Analyze (${{ matrix.language }})
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
permissions:
# required for all workflows
security-events: write
# required to fetch internal or private CodeQL packs
packages: read
# only required for workflows in private repositories
actions: read
contents: read
strategy:
fail-fast: false
matrix:
include:
- language: actions
build-mode: none
- language: javascript-typescript
build-mode: none
# CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'rust', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Add any setup steps before running the `github/codeql-action/init` action.
# This includes steps like installing compilers or runtimes (`actions/setup-node`
# or others). This is typically only required for manual builds.
# - name: Setup runtime (example)
# uses: actions/setup-example@v1
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
config-file: ./.github/codeql/codeql-config.yml
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if: matrix.build-mode == 'manual'
shell: bash
run: |
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
'your code, for example:'
echo ' make bootstrap'
echo ' make release'
exit 1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"

13
assets/js/toc.js Normal file
View File

@@ -0,0 +1,13 @@
const btnTOCShowMore = document.getElementById('btnTOCShowMore')
if (btnTOCShowMore !== null) {
btnTOCShowMore.addEventListener('click', (e) => {
btnTOCShowMore.style.display = 'none'
})
}
const btnTOCShowLess = document.getElementById('btnTOCShowLess')
if ((btnTOCShowLess !== null) && (btnTOCShowMore !== null)) {
btnTOCShowLess.addEventListener('click', (e) => {
btnTOCShowMore.style.display = 'initial'
})
}

View File

@@ -24,8 +24,10 @@
@import "components/carousel.scss";
@import "components/clipboard.scss";
@import "components/command.scss";
@import "components/docs.scss";
@import "components/feature.scss";
@import "components/footer.scss";
@import "components/kbd.scss";
@import "components/nav.scss";
@import "components/navbar.scss";
@import "components/img.scss";
@@ -35,6 +37,7 @@
@import "components/sidebar.scss";
@import "components/syntax-dart.scss"; // note: modified for dart-sass
@import "components/table.scss";
@import "components/toast.scss";
@import "components/timeline.scss";
@import "components/toc.scss";
@import "components/video.scss";

View File

@@ -22,8 +22,10 @@
@import "components/carousel.scss";
@import "components/clipboard.scss";
@import "components/command.scss";
@import "components/docs.scss";
@import "components/feature.scss";
@import "components/footer.scss";
@import "components/kbd.scss";
@import "components/nav.scss";
@import "components/navbar.scss";
@import "components/img.scss";
@@ -33,6 +35,7 @@
@import "components/sidebar.scss";
@import "components/syntax.scss";
@import "components/table.scss";
@import "components/toast.scss";
@import "components/timeline.scss";
@import "components/toc.scss";
@import "components/video.scss";

View File

@@ -14,6 +14,10 @@ a:active {
text-decoration: none;
}
div.rounded, img.rounded {
--bs-border-radius: #{$theme-border-radius};
}
//
// Ensure main page is rendered to full viewport height
//

View File

@@ -16,12 +16,12 @@ $font-weight-normal: 300 !default;
$font-weight-bold: 600 !default;
$font-weight-bolder: bolder !default;
$theme-border-radius: 1rem;
strong {
font-weight: 600 if($enable-important-utilities, !important, null);
}
$theme-border-radius: 0.375rem;
$navbar-height: h.$navbar-height;
$navbar-offset: h.$navbar-offset;
$navbar-offset-xs: h.$navbar-offset-xs;

View File

@@ -17,13 +17,13 @@ $font-weight-normal: 300 !default;
$font-weight-bold: 600 !default;
$font-weight-bolder: bolder !default;
$theme-border-radius: 1rem;
strong {
font-weight: 600 if($enable-important-utilities, !important, null);
}
// scss-docs-end font
$theme-border-radius: 0.375rem;
$white: #fff !default;
$black: #000 !default;
$body-bg: #fff !default;

View File

@@ -52,3 +52,7 @@ a.btn {
.btn-xs {
@include button-size($btn-padding-y-xs, $btn-padding-x-xs, $btn-font-size-xs, $btn-border-radius-xs);
}
.btn {
--bs-border-radius: #{$theme-border-radius};
}

View File

@@ -6,6 +6,9 @@
}
.card {
--bs-card-border-radius: #{$theme-border-radius};
--bs-card-inner-border-radius: #{$theme-border-radius};
--bs-border-radius: #{$theme-border-radius};
--bs-card-bg: transparent;
}
@@ -28,6 +31,13 @@
cursor: pointer;
}
.card-img-top {
--bs-border-radius: #{$theme-border-radius};
border-top-left-radius: var(--bs-border-radius) !important;
border-top-right-radius: var(--bs-border-radius) !important;
}
.card-img-wrap img {
transition: transform 0.25s ease;
width: 100%;

View File

@@ -1,3 +1,7 @@
.carousel-inner {
border-radius: #{$theme-border-radius};
}
.gradient {
width: 100%;
height: 100%;

View File

@@ -0,0 +1,22 @@
.docs-controls .nav-link,
.file-controls .nav-link {
border-top-left-radius: #{$theme-border-radius};
border-top-right-radius: #{$theme-border-radius};
margin-left: #{$theme-border-radius};
&:hover,
&:focus {
border-bottom: 0;
}
}
.docs-panel,
.file-panel {
border: 1px solid var(--#{$prefix}border-color);
overflow: hidden;
}
.docs-panel, .docs-panel .collapse,
.file-panel, .file-panel .collapse {
border-radius: #{$theme-border-radius};
}

View File

@@ -27,3 +27,7 @@
width: 100vw;
object-fit: cover;
}
.figure-caption {
margin-left: #{$theme-border-radius};
}

View File

@@ -0,0 +1,3 @@
kbd {
border-radius: #{$theme-border-radius};
}

View File

@@ -84,6 +84,14 @@
border-color: var(--#{$prefix}border-color);
}
.nav-callout, .pagination {
--bs-border-radius: #{$theme-border-radius};
}
.nav-callout .tab-content {
border-radius: #{$theme-border-radius};
}
@if $enable-dark-mode {
@include color-mode(dark) {
.nav-callout, .tab-content {

View File

@@ -319,3 +319,7 @@
position: absolute;
z-index: $zindex-fixed;
}
.form-control.is-search {
border: 1px solid var(--bs-border-color) !important;
}

View File

@@ -11,6 +11,12 @@
}
.sidebar-item {
--bs-border-radius: #{$theme-border-radius};
--bs-border-radius-sm: #{$theme-border-radius};
--bs-border-radius-lg: #{$theme-border-radius};
--bs-border-radius-xl: #{$theme-border-radius};
--bs-border-radius-xxl: #{$theme-border-radius};
color: rgba(0, 0, 0, 0.65);
margin-left: 0 !important;
display: inline-block;
@@ -28,6 +34,8 @@
}
.sidebar-item-group {
border-radius: #{$theme-border-radius};
&:hover,
&:focus {
color: $primary;

View File

@@ -16,6 +16,10 @@
flex: 1;
}
.codeblock.syntax-highlight, .command.syntax-highlight {
border-radius: #{$theme-border-radius};
}
.syntax-highlight {
background-color: var(--bs-light) if($enable-important-utilities, !important, null);
overflow-x: auto;

View File

@@ -16,6 +16,10 @@
flex: 1;
}
.codeblock.syntax-highlight, .command.syntax-highlight {
border-radius: #{$theme-border-radius};
}
.syntax-highlight {
background-color: var(--bs-light) if($enable-important-utilities, !important, null);
overflow-x: auto;

View File

@@ -26,6 +26,10 @@ $semi-circle-border: 0.2rem;
// scss-docs-end timeline
.timeline-container {
border-radius: #{$theme-border-radius};
}
.timeline, .timeline-sm {
position: relative;
}

View File

@@ -0,0 +1,4 @@
.toast {
border-radius: #{$theme-border-radius};
overflow: hidden;
}

View File

@@ -74,6 +74,14 @@
}
}
.btn-link.toc-item {
font-size: inherit;
}
#btnTOCShowMore {
padding-top: 0.875rem;
}
a.toc-item {
display: block;
}

View File

@@ -3,6 +3,7 @@
padding-bottom: 56.25%;
height: 0;
overflow: hidden;
border-radius: #{$theme-border-radius};
}
.video-embedded > iframe {
@@ -11,7 +12,7 @@
left: 0;
width: 100%;
height: 100%;
border:0;
border: 0;
}
// Adapted from https://github.com/gohugoio/hugo/tpl/tplimpl/embedded/templates/shortcodes/vimeo_simple.html

View File

@@ -10,7 +10,7 @@
/* inter-200 - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-display: block; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Inter';
font-style: normal;
font-weight: 200;
@@ -23,7 +23,7 @@
}
/* inter-300 - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-display: block; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Inter';
font-style: normal;
font-weight: 300;
@@ -36,7 +36,7 @@
}
/* inter-regular - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-display: block; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Inter';
font-style: normal;
font-weight: 400;
@@ -49,7 +49,7 @@
}
/* inter-600 - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-display: block; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Inter';
font-style: normal;
font-weight: 600;

View File

@@ -2,6 +2,10 @@
background-color: var(--#{$prefix}primary-bg-subtle);
}
.cta, .background-img-fluid {
border-radius: #{$theme-border-radius} if($enable-important-utilities, !important, null);
}
.cta .contact-img {
background-color: var(--#{$prefix}body-bg);
border-radius: var(--bs-border-radius);

View File

@@ -1,3 +1,13 @@
.panels .dropdown-toggle {
text-decoration: none !important;
}
.panels .nav-tabs {
border-top-left-radius: #{$theme-border-radius};
border-top-right-radius: #{$theme-border-radius};
margin-left: #{$theme-border-radius};
}
.panels .tab-content {
border-radius: #{$theme-border-radius};
}

View File

@@ -31,6 +31,7 @@ blueprint:
media-id:
autoplay:
query-args:
color:
cols:
messages:
- title:

View File

@@ -28,6 +28,7 @@
{{ $queryArgs := .queryArgs }}
{{ $border := .border }}
{{ $padding := .padding }}
{{ $color := .color }}
{{ if site.Params.env_bookshop_live }}
{{/* Define dummy content as we cannot retrieve video data in live mode */}}
@@ -36,7 +37,7 @@
"ratio" "21x9"
"wrapper" (printf "text-center mb-%d" $padding.y)) -}}
{{ else }}
<div class="video-container{{ if $border }} video-container-border{{ end}}">
<div class="video-container{{ if $border }} video-container-border{{ end}} {{ with $color }}bg-{{ . }}{{ end }}">
{{ partial "assets/video.html" (dict
"page" page
"provider" $provider
@@ -117,6 +118,7 @@
"query-args" .queryArgs
"border" $.border
"padding" $padding
"color" .color
) -}}
{{ end }}
</div>
@@ -142,6 +144,7 @@
"query-args" .queryArgs
"border" $.border
"padding" $padding
"color" .color
) -}}
{{ end }}
</div>

View File

@@ -2,6 +2,7 @@
--bs-video-border-color: var(--bs-primary);
--bs-video-border-width: 1rem;
border-radius: $theme-border-radius;
position: relative;
}

View File

@@ -97,6 +97,9 @@
toc = true
sidebar = true
size = "md"
startLevel = 2
endLevel = 3
maxNumHeadings = 9
[navigation.padding]
x = 4
y = 4

View File

@@ -51,6 +51,9 @@
toc = true
sidebar = true
size = "md"
startLevel = 2
endLevel = 3
maxNumHeadings = 9
[navigation.padding]
x = 4
y = 4

View File

@@ -29,6 +29,7 @@ The `video` content block renders a horizontal line to separate sections. The se
provider: vimeo
media-id: "55073825"
autoplay: true
color: black
messages:
- title: First Message
icon: fas 1

View File

@@ -98,6 +98,7 @@
"ball",
"bg-bg-body-tertiary",
"bg-bg-primary-subtle",
"bg-black",
"bg-body",
"bg-body-tertiary",
"bg-danger",
@@ -110,9 +111,7 @@
"border-0",
"border-1",
"border-bottom",
"border-end",
"border-none",
"border-start",
"border-top",
"bottom-0",
"bottom-bar",
@@ -191,6 +190,7 @@
"col-sm-6",
"collapse",
"collapsed",
"command",
"contact-img",
"container",
"container-fluid",
@@ -223,6 +223,9 @@
"display-1",
"display-4",
"display-6",
"docs",
"docs-controls",
"docs-panel",
"dropdown",
"dropdown-divider-bg",
"dropdown-item",
@@ -243,6 +246,9 @@
"fa-activity",
"fa-address-card",
"fa-angle-left",
"fa-angle-right",
"fa-angles-left",
"fa-angles-right",
"fa-arrow-left",
"fa-arrow-right",
"fa-bootstrap",
@@ -298,6 +304,9 @@
"faq",
"fas",
"figure-caption",
"file",
"file-controls",
"file-panel",
"fixed-top",
"flex-column",
"flex-fill",
@@ -551,6 +560,7 @@
"timeline-bg-primary-subtle",
"timeline-connector-end",
"timeline-connector-start",
"timeline-container",
"timeline-description-text-end",
"timeline-description-text-start",
"timeline-dot",
@@ -616,6 +626,8 @@
"body-file-collapse-1",
"bouton",
"breadcrumb",
"btnTOCShowLess",
"btnTOCShowMore",
"button",
"button-group",
"c4-diagram",
@@ -642,11 +654,11 @@
"docs",
"documentation",
"dropdown-nav-0",
"dropdown-panel-2a268a8b3931b61a7583f392002008fe",
"dropdown-panel-5bf6f23e5fc93f9c342a4b0a1b32b838",
"dropdown-panel-8cd9607610b5a8fff779d38787437e7e",
"dropdown-panel-93636449c1ef8ec23d583052c9fe7a4b",
"dropdown-panel-a97ffb4aaea3a2e4aa01b1ce556dd275",
"dropdown-panel-559429f8ed9abd968d8178a39c12161e",
"dropdown-panel-83b60f1acfc59ebca2632e49adc142ea",
"dropdown-panel-905f7532046e86d10df934d0bb7e6973",
"dropdown-panel-96d18c1dcc343600bc916fe2c37fa4aa",
"dropdown-panel-f6ad6d3ba9fb32a749be0499120c5f22",
"elements-type",
"entity-relationship-diagram",
"example",
@@ -664,16 +676,19 @@
"fab-medium",
"fab-whatsapp",
"fab-x-twitter",
"faq-a69e21a1b0b61dac8b322b1d68137cc6",
"faq-a69e21a1b0b61dac8b322b1d68137cc6-heading-faq-a69e21a1b0b61dac8b322b1d68137cc6",
"faq-a69e21a1b0b61dac8b322b1d68137cc6-item-0",
"faq-a69e21a1b0b61dac8b322b1d68137cc6-item-1",
"faq-a69e21a1b0b61dac8b322b1d68137cc6-item-2",
"faq-106714aa77d6de0ac39f269ae5995985",
"faq-106714aa77d6de0ac39f269ae5995985-heading-faq-106714aa77d6de0ac39f269ae5995985",
"faq-106714aa77d6de0ac39f269ae5995985-item-0",
"faq-106714aa77d6de0ac39f269ae5995985-item-1",
"faq-106714aa77d6de0ac39f269ae5995985-item-2",
"fas-1",
"fas-2",
"fas-3",
"fas-address-card",
"fas-angle-left",
"fas-angle-right",
"fas-angles-left",
"fas-angles-right",
"fas-arrow-left",
"fas-arrow-right",
"fas-chevron-right",
@@ -760,11 +775,11 @@
"nav-0-btn-1",
"nav-0-btn-2",
"nav-nav-0",
"nav-panel-2a268a8b3931b61a7583f392002008fe",
"nav-panel-5bf6f23e5fc93f9c342a4b0a1b32b838",
"nav-panel-8cd9607610b5a8fff779d38787437e7e",
"nav-panel-93636449c1ef8ec23d583052c9fe7a4b",
"nav-panel-a97ffb4aaea3a2e4aa01b1ce556dd275",
"nav-panel-559429f8ed9abd968d8178a39c12161e",
"nav-panel-83b60f1acfc59ebca2632e49adc142ea",
"nav-panel-905f7532046e86d10df934d0bb7e6973",
"nav-panel-96d18c1dcc343600bc916fe2c37fa4aa",
"nav-panel-f6ad6d3ba9fb32a749be0499120c5f22",
"navbar",
"navbar-0-collapse",
"navbar-mode",
@@ -773,36 +788,36 @@
"navigation",
"notification",
"overview",
"panel-2a268a8b3931b61a7583f392002008fe-0",
"panel-2a268a8b3931b61a7583f392002008fe-1",
"panel-2a268a8b3931b61a7583f392002008fe-2",
"panel-2a268a8b3931b61a7583f392002008fe-btn-0",
"panel-2a268a8b3931b61a7583f392002008fe-btn-1",
"panel-2a268a8b3931b61a7583f392002008fe-btn-2",
"panel-5bf6f23e5fc93f9c342a4b0a1b32b838-0",
"panel-5bf6f23e5fc93f9c342a4b0a1b32b838-1",
"panel-5bf6f23e5fc93f9c342a4b0a1b32b838-2",
"panel-5bf6f23e5fc93f9c342a4b0a1b32b838-btn-0",
"panel-5bf6f23e5fc93f9c342a4b0a1b32b838-btn-1",
"panel-5bf6f23e5fc93f9c342a4b0a1b32b838-btn-2",
"panel-8cd9607610b5a8fff779d38787437e7e-0",
"panel-8cd9607610b5a8fff779d38787437e7e-1",
"panel-8cd9607610b5a8fff779d38787437e7e-2",
"panel-8cd9607610b5a8fff779d38787437e7e-btn-0",
"panel-8cd9607610b5a8fff779d38787437e7e-btn-1",
"panel-8cd9607610b5a8fff779d38787437e7e-btn-2",
"panel-93636449c1ef8ec23d583052c9fe7a4b-0",
"panel-93636449c1ef8ec23d583052c9fe7a4b-1",
"panel-93636449c1ef8ec23d583052c9fe7a4b-2",
"panel-93636449c1ef8ec23d583052c9fe7a4b-btn-0",
"panel-93636449c1ef8ec23d583052c9fe7a4b-btn-1",
"panel-93636449c1ef8ec23d583052c9fe7a4b-btn-2",
"panel-a97ffb4aaea3a2e4aa01b1ce556dd275-0",
"panel-a97ffb4aaea3a2e4aa01b1ce556dd275-1",
"panel-a97ffb4aaea3a2e4aa01b1ce556dd275-2",
"panel-a97ffb4aaea3a2e4aa01b1ce556dd275-btn-0",
"panel-a97ffb4aaea3a2e4aa01b1ce556dd275-btn-1",
"panel-a97ffb4aaea3a2e4aa01b1ce556dd275-btn-2",
"panel-559429f8ed9abd968d8178a39c12161e-0",
"panel-559429f8ed9abd968d8178a39c12161e-1",
"panel-559429f8ed9abd968d8178a39c12161e-2",
"panel-559429f8ed9abd968d8178a39c12161e-btn-0",
"panel-559429f8ed9abd968d8178a39c12161e-btn-1",
"panel-559429f8ed9abd968d8178a39c12161e-btn-2",
"panel-83b60f1acfc59ebca2632e49adc142ea-0",
"panel-83b60f1acfc59ebca2632e49adc142ea-1",
"panel-83b60f1acfc59ebca2632e49adc142ea-2",
"panel-83b60f1acfc59ebca2632e49adc142ea-btn-0",
"panel-83b60f1acfc59ebca2632e49adc142ea-btn-1",
"panel-83b60f1acfc59ebca2632e49adc142ea-btn-2",
"panel-905f7532046e86d10df934d0bb7e6973-0",
"panel-905f7532046e86d10df934d0bb7e6973-1",
"panel-905f7532046e86d10df934d0bb7e6973-2",
"panel-905f7532046e86d10df934d0bb7e6973-btn-0",
"panel-905f7532046e86d10df934d0bb7e6973-btn-1",
"panel-905f7532046e86d10df934d0bb7e6973-btn-2",
"panel-96d18c1dcc343600bc916fe2c37fa4aa-0",
"panel-96d18c1dcc343600bc916fe2c37fa4aa-1",
"panel-96d18c1dcc343600bc916fe2c37fa4aa-2",
"panel-96d18c1dcc343600bc916fe2c37fa4aa-btn-0",
"panel-96d18c1dcc343600bc916fe2c37fa4aa-btn-1",
"panel-96d18c1dcc343600bc916fe2c37fa4aa-btn-2",
"panel-f6ad6d3ba9fb32a749be0499120c5f22-0",
"panel-f6ad6d3ba9fb32a749be0499120c5f22-1",
"panel-f6ad6d3ba9fb32a749be0499120c5f22-2",
"panel-f6ad6d3ba9fb32a749be0499120c5f22-btn-0",
"panel-f6ad6d3ba9fb32a749be0499120c5f22-btn-1",
"panel-f6ad6d3ba9fb32a749be0499120c5f22-btn-2",
"persona",
"pie-chart",
"pills",
@@ -839,6 +854,7 @@
"toast-example-2",
"toast-message-email-4",
"toc-collapse",
"toc-collapse-items",
"tooltip",
"types-de-cookies-que-nous-utilisons",
"types-of-cookies-we-use",

View File

@@ -101,6 +101,10 @@
translation: "See also"
- id: sectionMenu
translation: "Select a topic"
- id: tocShowMore
translation: "Show {{ . }} more"
- id: tocShowLess
translation: "Show less"
# Sidebar
- id: toggleSidebar

View File

@@ -99,6 +99,10 @@
translation: "Zie ook"
- id: sectionMenu
translation: "Selecteer een onderwerp"
- id: tocShowMore
translation: "Toon {{ . }} meer"
- id: tocShowLess
translation: "Toon minder"
# Sidebar
- id: toggleSidebar

View File

@@ -1,4 +1,4 @@
<div class="mb-3 syntax-highlight">
<div class="codeblock syntax-highlight mb-3">
{{- $result := transform.HighlightCodeBlock . -}}
{{- $result.Wrapped -}}
</div>

View File

@@ -111,7 +111,7 @@
{{ end }}
{{/* Render default timeline */}}
<div class="container p-0 d-none d-md-block {{ with $background }} timeline-{{ . }} {{ . }}{{ end }}{{ with $args.class }} {{ . }}{{ end }}">
<div class="timeline-container container p-0 d-none d-md-block {{ with $background }} timeline-{{ . }} {{ . }}{{ end }}{{ with $args.class }} {{ . }}{{ end }}">
{{ $title | safeHTML }}
{{ range $index, $item := $data }}
<div class="row timeline timeline-{{ $item.color }} timeline-dot g-0 ">
@@ -137,7 +137,7 @@
</div>
{{/* Render timeline for smaller devices */}}
<div class="container p-0 d-block d-md-none small{{ with $background }} timeline-bg-{{ . }} bg-{{ . }}{{ end }}{{ with $args.class }} {{ . }}{{ end }}">
<div class="timeline-container container p-0 d-block d-md-none small{{ with $background }} timeline-bg-{{ . }} bg-{{ . }}{{ end }}{{ with $args.class }} {{ . }}{{ end }}">
{{ range $index, $item := $data }}
<div class="row timeline-sm timeline-{{ $item.color }} timeline-dot g-0">
{{ partial "inline/timeline-icon.html" (dict "icon" $item.icon "direction" "end" "col" 3) }}

View File

@@ -1,107 +1,88 @@
{{- /*
Copyright 2023 Veriphor, LLC
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under
the License.
*/}}
{{- /*
Renders a table of contents by parsing rendered content.
In site configuration, set the default start level, end level, and the minimum
number of headings required to show the table of contents:
[params.toc]
startLevel = 2 # default is 2
endLevel = 3 # default is 3
minNumHeadings = 2 # default is 2
To display the table of contents on a page:
+++
title = 'Post 1'
toc = true
+++
To display the table of contents on a page, and override one or more of the
default settings:
+++
title = 'Post 1'
[toc]
startLevel = 2 # default is 2
endLevel = 3 # default is 3
minNumHeadings = 2 # default is 2
+++
Change or localize the title with a "toc_title" key in your i18n file(s).
Start with these basic CSS rules to style the table of contents:
a.toc-item {
display: block;
}
a.toc-level-1 {
margin-left: 0em;
}
a.toc-level-2 {
margin-left: 1em;
}
a.toc-level-3 {
margin-left: 2em;
}
a.toc-level-4 {
margin-left: 3em;
}
a.toc-level-5 {
margin-left: 4em;
}
a.toc-level-6 {
margin-left: 5em;
}
@context {page} .
@returns {template.HTML}
@example {{ partial "toc-parse-content.html" . }}
*/}}
{{- /* Get configuration. */}}
{{- $startLevel := or (.Site.Params.navigation.startLevel | int) 2 }}
{{- $endLevel := or (.Site.Params.navigation.endLevel | int) 3 }}
{{- $minNumHeadings := or (.Site.Params.navigation.minNumHeadings | int) 2 }}
{{- /* Initialize. */}}
{{ $headings := partial "assets/toc-headings.html" . }}
{{- /* Render */}}
{{- if .Site.Params.navigation.toc }}
{{- with $headings }}
{{- if ge (len .) $minNumHeadings }}
<strong class="d-block h6 my-2 pt-4">{{ T "toc" }}:</strong>
<nav class="toc">
{{- range . }}
{{- $attrs := dict "class" (printf "toc-item toc-level-%d" (add 1 (sub .level $startLevel))) }}
{{- with .id }}
{{- $attrs = merge $attrs (dict "href" (printf "%s#%s" $.RelPermalink .)) }}
{{- end }}
<a
{{- range $k, $v := $attrs }}
{{- printf " %s=%q" $k $v | safeHTMLAttr }}
{{- end -}}
>{{ .text }}</a>
{{- end }}
</nav>
{{- end }}
{{- end }}
{{- end }}
{{/*
Copyright © 2025 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
*/}}
{{ define "_partials/inline/toc-item.html" }}
{{ $base := .base }}
{{ $startLevel := .startLevel }}
{{ $endLevel := .endLevel }}
{{ $item := .item }}
{{ $maxNumHeadings := .maxNumHeadings }}
{{ $result := .result | default slice }}
{{ if and (ge $item.Level $startLevel) (le $item.Level $endLevel) }}
{{- $attrs := dict "class" (printf "toc-item toc-level-%d" (add 1 (sub $item.Level $startLevel))) }}
{{- with $item.ID }}
{{- $attrs = merge $attrs (dict "href" (printf "%s#%s" $base .)) }}
{{- end }}
{{ $htmlAttr := "" }}
{{ range $k, $v := $attrs }}{{ $htmlAttr = printf "%s %s=%q" $htmlAttr $k $v | safeHTMLAttr }}{{ end }}
{{ $rendered := printf "<a %s>%s</a>" $htmlAttr $item.Title }}
{{ $result = $result | append $rendered }}
{{ end }}
{{ range $item.Headings }}
{{ $result = $result | append (partial "inline/toc-item.html" (dict
"base" $base
"item" .
"startLevel" $startLevel
"endLevel" $endLevel
"maxNumHeadings" $maxNumHeadings
)) }}
{{ end }}
{{ return $result }}
{{ end }}
{{- /* Get configuration. */}}
{{- $startLevel := or (.Site.Params.navigation.startLevel | int) 2 }}
{{- $endLevel := or (.Site.Params.navigation.endLevel | int) 3 }}
{{- $minNumHeadings := or (.Site.Params.navigation.minNumHeadings | int) 2 }}
{{- $maxNumHeadings := or (.Site.Params.navigation.maxNumHeadings | int) 9 }}
{{- /* Render */}}
{{- if and .Site.Params.navigation.toc (ge (len .Fragments.HeadingsMap) $minNumHeadings) }}
<strong class="d-block h6 my-2 pt-4">{{ T "toc" }}:</strong>
<nav class="toc">
{{ $result := slice }}
{{ range .Fragments.Headings }}
{{ $result = $result | append (partial "inline/toc-item.html" (dict
"base" $.RelPermalink
"item" .
"startLevel" $startLevel
"endLevel" $endLevel
"maxNumHeadings" $maxNumHeadings
)) }}
{{ end }}
{{ range $i, $v := $result }}
{{ if eq $i $maxNumHeadings }}
{{ partial "assets/button.html" (dict
"id" "btnTOCShowMore"
"collapse-id" "toc-collapse-items"
"link-type" "link"
"class" "toc-item"
"title" (T "tocShowMore" (sub (len $result) $i))
"spacing" false
) }}
<div class="collapse" id="toc-collapse-items">
{{ end }}
{{ print $v | safeHTML }}
{{ end }}
{{ if gt (len $result) $maxNumHeadings }}
&nbsp;
{{ partial "assets/button.html" (dict
"id" "btnTOCShowLess"
"collapse-id" "toc-collapse-items"
"link-type" "link"
"class" "toc-item"
"title" (T "tocShowLess")
"spacing" false
) }}
</div>{{ end }}
</nav>
{{ end }}

View File

@@ -72,7 +72,7 @@
{{- $output = (replace $output "<span class=\"c\">#" "<span class=\"c\">" | safeHTML) -}}
{{- end -}}
<div class="mb-3 syntax-highlight{{ with $args.class }} {{ . }}{{ end }}">
<div class="command syntax-highlight mb-3{{ with $args.class }} {{ . }}{{ end }}">
{{- $output -}}
</div>
{{ end }}

View File

@@ -71,33 +71,35 @@
{{- $match = replace $match $captureStart "" -}}
{{- $match = replace $match $captureEnd "" -}}
<ul class="nav nav-tabs{{ with $args.class }} {{ . }}{{ end }}">
<li class="nav-item">
<a class="nav-link active font-monospace"
href="#body-{{ $id }}"
aria-current="page"
data-bs-toggle="collapse"
data-bs-target=".multi-{{ $id }}"
aria-expanded="false"
aria-controls="body-{{ $id }} footer-{{ $id }}">
<small>{{ if $args.full }}{{ strings.TrimPrefix "/" (strings.TrimPrefix $basePath $file) }}{{ else }}{{ path.Base $file }}{{ end }}</small>
</a>
</li>
</ul>
<div class="border-start border-end border-bottom mb-3">
<div class="collapse multi-{{ $id }}{{ if $args.show }} show{{ end }} syntax-highlight" id="body-{{ $id }}">
{{- highlight (trim $match "\r\n") $extension "" -}}
</div>
<div class="collapse multi-{{ $id }}{{ if not $args.show }} show{{ end }} p-3" id="footer-{{ $id }}">
<a class="nav-link active"
href="#body-{{ $id }}"
aria-current="page"
data-bs-toggle="collapse"
data-bs-target=".multi-{{ $id }}"
aria-expanded="false"
aria-controls="body-{{ $id }} footer-{{ $id }}">
<small><i>{{ T "clickToExpand" }}</i></small>
</a>
<div class="docs">
<ul class="docs-controls nav nav-tabs{{ with $args.class }} {{ . }}{{ end }}">
<li class="nav-item">
<a class="nav-link active font-monospace"
href="#body-{{ $id }}"
aria-current="page"
data-bs-toggle="collapse"
data-bs-target=".multi-{{ $id }}"
aria-expanded="false"
aria-controls="body-{{ $id }} footer-{{ $id }}">
<small>{{ if $args.full }}{{ strings.TrimPrefix "/" (strings.TrimPrefix $basePath $file) }}{{ else }}{{ path.Base $file }}{{ end }}</small>
</a>
</li>
</ul>
<div class="docs-panel mb-3">
<div class="collapse multi-{{ $id }}{{ if $args.show }} show{{ end }} syntax-highlight" id="body-{{ $id }}">
{{- highlight (trim $match "\r\n") $extension "" -}}
</div>
<div class="collapse multi-{{ $id }}{{ if not $args.show }} show{{ end }} p-3" id="footer-{{ $id }}">
<a class="nav-link active"
href="#body-{{ $id }}"
aria-current="page"
data-bs-toggle="collapse"
data-bs-target=".multi-{{ $id }}"
aria-expanded="false"
aria-controls="body-{{ $id }} footer-{{ $id }}">
<small><i>{{ T "clickToExpand" }}</i></small>
</a>
</div>
</div>
</div>
{{- end -}}

View File

@@ -58,33 +58,35 @@
{{- $tmp := os.Stat $file -}}
{{- $content := readFile $file -}}
<ul class="nav nav-tabs{{ with $args.class }} {{ . }}{{ end }}">
<li class="nav-item">
<a class="nav-link active font-monospace"
href="#body-{{ $id }}"
aria-current="page"
data-bs-toggle="collapse"
data-bs-target=".multi-{{ $id }}"
aria-expanded="false"
aria-controls="body-{{ $id }} footer-{{ $id }}">
<small>{{ if $args.full }}{{ strings.TrimPrefix $basePath $file }}{{ else }}{{ path.Base $file }}{{ end }}</small>
</a>
</li>
</ul>
<div class="border-start border-end border-bottom mb-3">
<div class="collapse multi-{{ $id }}{{ if $args.show }} show{{ end }} syntax-highlight" id="body-{{ $id }}">
{{- highlight (trim $content "\r\n") $lang (or $args.highlightOptions $args.options) -}}
</div>
<div class="collapse multi-{{ $id }}{{ if not $args.show }} show{{ end }} p-3" id="footer-{{ $id }}">
<a class="nav-link active"
href="#body-{{ $id }}"
aria-current="page"
data-bs-toggle="collapse"
data-bs-target=".multi-{{ $id }}"
aria-expanded="false"
aria-controls="body-{{ $id }} footer-{{ $id }}">
<small><i>{{ T "clickToExpand" }}</i></small>
</a>
<div class="file">
<ul class="file-controls nav nav-tabs{{ with $args.class }} {{ . }}{{ end }}">
<li class="nav-item">
<a class="nav-link active font-monospace"
href="#body-{{ $id }}"
aria-current="page"
data-bs-toggle="collapse"
data-bs-target=".multi-{{ $id }}"
aria-expanded="false"
aria-controls="body-{{ $id }} footer-{{ $id }}">
<small>{{ if $args.full }}{{ strings.TrimPrefix $basePath $file }}{{ else }}{{ path.Base $file }}{{ end }}</small>
</a>
</li>
</ul>
<div class="file-panel mb-3">
<div class="collapse multi-{{ $id }}{{ if $args.show }} show{{ end }} syntax-highlight" id="body-{{ $id }}">
{{- highlight (trim $content "\r\n") $lang (or $args.highlightOptions $args.options) -}}
</div>
<div class="collapse multi-{{ $id }}{{ if not $args.show }} show{{ end }} p-3" id="footer-{{ $id }}">
<a class="nav-link active"
href="#body-{{ $id }}"
aria-current="page"
data-bs-toggle="collapse"
data-bs-target=".multi-{{ $id }}"
aria-expanded="false"
aria-controls="body-{{ $id }} footer-{{ $id }}">
<small><i>{{ T "clickToExpand" }}</i></small>
</a>
</div>
</div>
</div>
{{- end -}}

262
package-lock.json generated
View File

@@ -23,7 +23,7 @@
"@semantic-release/exec": "^7.1.0",
"@semantic-release/git": "^10.0.1",
"commitizen": "^4.3.1",
"cpy-cli": "^5.0.0",
"cpy-cli": "^6.0.0",
"cz-conventional-changelog": "^3.3.0",
"eslint": "^9.33.0",
"husky": "^9.1.7",
@@ -1697,35 +1697,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/github/node_modules/p-filter": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz",
"integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==",
"dev": true,
"license": "MIT",
"dependencies": {
"p-map": "^7.0.1"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/github/node_modules/p-map": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz",
"integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@semantic-release/npm": {
"version": "12.0.2",
"resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-12.0.2.tgz",
@@ -3022,23 +2993,6 @@
"node": ">= 14"
}
},
"node_modules/aggregate-error": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz",
"integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==",
"dev": true,
"license": "MIT",
"dependencies": {
"clean-stack": "^4.0.0",
"indent-string": "^5.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -3285,19 +3239,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/arrify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz",
"integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/astral-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
@@ -3825,35 +3766,6 @@
"node": ">= 6"
}
},
"node_modules/clean-stack": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz",
"integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==",
"dev": true,
"license": "MIT",
"dependencies": {
"escape-string-regexp": "5.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/clean-stack/node_modules/escape-string-regexp": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
"integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cli-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
@@ -4266,6 +4178,23 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/copy-file": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/copy-file/-/copy-file-11.1.0.tgz",
"integrity": "sha512-X8XDzyvYaA6msMyAM575CUoygY5b44QzLcGRKsK3MFmXcOvQa518dNPLsKYwkYsn72g3EiW+LE0ytd/FlqWmyw==",
"dev": true,
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.11",
"p-event": "^6.0.0"
},
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
@@ -4317,95 +4246,42 @@
"typescript": ">=5"
}
},
"node_modules/cp-file": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/cp-file/-/cp-file-10.0.0.tgz",
"integrity": "sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg==",
"dev": true,
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.10",
"nested-error-stacks": "^2.1.1",
"p-event": "^5.0.1"
},
"engines": {
"node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cpy": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/cpy/-/cpy-10.1.0.tgz",
"integrity": "sha512-VC2Gs20JcTyeQob6UViBLnyP0bYHkBh6EiKzot9vi2DmeGlFT9Wd7VG3NBrkNx/jYvFBeyDOMMHdHQhbtKLgHQ==",
"version": "12.0.0",
"resolved": "https://registry.npmjs.org/cpy/-/cpy-12.0.0.tgz",
"integrity": "sha512-k2Y2BFZUp8VzoEuGcVx3Vk2/ACf0PgVnC/cgSC7IyZeEW3nr67E/tcspoC0TUpAxZmByXaYsPKATFwSsUli9XA==",
"dev": true,
"license": "MIT",
"dependencies": {
"arrify": "^3.0.0",
"cp-file": "^10.0.0",
"globby": "^13.1.4",
"copy-file": "^11.1.0",
"globby": "^14.1.0",
"junk": "^4.0.1",
"micromatch": "^4.0.5",
"nested-error-stacks": "^2.1.1",
"p-filter": "^3.0.0",
"p-map": "^6.0.0"
"micromatch": "^4.0.8",
"p-filter": "^4.1.0",
"p-map": "^7.0.3"
},
"engines": {
"node": ">=16"
"node": ">=20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cpy-cli": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-5.0.0.tgz",
"integrity": "sha512-fb+DZYbL9KHc0BC4NYqGRrDIJZPXUmjjtqdw4XRRg8iV8dIfghUX/WiL+q4/B/KFTy3sK6jsbUhBaz0/Hxg7IQ==",
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-6.0.0.tgz",
"integrity": "sha512-q7GUqTDnRymCbScJ4Ph1IUM86wWdKG8JbgrvKLgvvehH4wrbRcVN+jRwOTlxJdwm7ykdXMKSp6IESksFeHa0eA==",
"dev": true,
"license": "MIT",
"dependencies": {
"cpy": "^10.1.0",
"meow": "^12.0.1"
"cpy": "^12.0.0",
"meow": "^13.2.0"
},
"bin": {
"cpy": "cli.js"
},
"engines": {
"node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cpy-cli/node_modules/meow": {
"version": "12.1.1",
"resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz",
"integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=16.10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cpy/node_modules/globby": {
"version": "13.2.2",
"resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz",
"integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==",
"dev": true,
"license": "MIT",
"dependencies": {
"dir-glob": "^3.0.1",
"fast-glob": "^3.3.0",
"ignore": "^5.2.4",
"merge2": "^1.4.1",
"slash": "^4.0.0"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
"node": ">=20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -9621,13 +9497,6 @@
"dev": true,
"license": "MIT"
},
"node_modules/nested-error-stacks": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz",
"integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==",
"dev": true,
"license": "MIT"
},
"node_modules/netlify-plugin-hugo-cache-resources": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/netlify-plugin-hugo-cache-resources/-/netlify-plugin-hugo-cache-resources-0.2.1.tgz",
@@ -12811,48 +12680,32 @@
}
},
"node_modules/p-event": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz",
"integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==",
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.1.tgz",
"integrity": "sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==",
"dev": true,
"license": "MIT",
"dependencies": {
"p-timeout": "^5.0.2"
"p-timeout": "^6.1.2"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
"node": ">=16.17"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-filter": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz",
"integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==",
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz",
"integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==",
"dev": true,
"license": "MIT",
"dependencies": {
"p-map": "^5.1.0"
"p-map": "^7.0.1"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-filter/node_modules/p-map": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz",
"integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==",
"dev": true,
"license": "MIT",
"dependencies": {
"aggregate-error": "^4.0.0"
},
"engines": {
"node": ">=12"
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -12909,13 +12762,13 @@
}
},
"node_modules/p-map": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-6.0.0.tgz",
"integrity": "sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==",
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz",
"integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=16"
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -12932,13 +12785,13 @@
}
},
"node_modules/p-timeout": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz",
"integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==",
"version": "6.1.4",
"resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz",
"integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
"node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -15814,19 +15667,6 @@
"node": ">=8"
}
},
"node_modules/slash": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
"integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/slice-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",

View File

@@ -85,7 +85,7 @@
"@semantic-release/exec": "^7.1.0",
"@semantic-release/git": "^10.0.1",
"commitizen": "^4.3.1",
"cpy-cli": "^5.0.0",
"cpy-cli": "^6.0.0",
"cz-conventional-changelog": "^3.3.0",
"eslint": "^9.33.0",
"husky": "^9.1.7",