Compare commits

..

34 Commits

Author SHA1 Message Date
Mark Dumay
21e85db7e9 Merge branch 'main' into develop 2025-10-05 08:48:31 +02:00
Mark Dumay
c4fd974e99 fix: disable body scrolling when navbar is collapsed on mobile 2025-10-05 08:47:40 +02:00
Mark Dumay
5adb00d02a fix: correct typo 2025-10-05 06:46:57 +02:00
Mark Dumay
b90bbbdd6f Merge pull request #1608 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2025-10-05 06:13:46 +02:00
Mark Dumay
cd6809cd90 Merge branch 'main' into hugo-mod-dependencies 2025-10-05 06:07:54 +02:00
Mark Dumay
f4382e74ae Merge pull request #1609 from gethinode/develop
Develop
2025-10-05 06:07:22 +02:00
Mark Dumay
6b0222afc9 Merge branch 'main' into develop 2025-10-05 05:57:58 +02:00
Mark Dumay
c5620c6f01 fix: refine vertical layout of nav partial 2025-10-05 05:57:24 +02:00
markdumay
fb7e5c15d9 fix: update Hugo module dependencies 2025-10-05 03:21:57 +00:00
Mark Dumay
7793f5e0ed fix: adjust order of page title and site name 2025-10-04 11:51:38 +02:00
Mark Dumay
5e505d39a7 Merge pull request #1607 from gethinode/develop
feat: enable transparent navbar
2025-10-04 10:38:21 +02:00
Mark Dumay
68226d8c1a Merge branch 'main' into develop 2025-10-04 10:31:11 +02:00
Mark Dumay
d5a780cc32 feat: enable transparent navbar 2025-10-04 10:26:49 +02:00
Mark Dumay
e413a6a76c Merge pull request #1606 from gethinode/develop
feat: enable optional inline language selector
2025-10-04 10:22:17 +02:00
Mark Dumay
df88d868db fix: solve linting issue 2025-10-04 09:50:22 +02:00
Mark Dumay
40b6076437 Merge branch 'main' into develop 2025-10-04 09:42:22 +02:00
Mark Dumay
b314faf43c feat: enable optional inline language selector 2025-10-04 09:41:32 +02:00
github-actions[bot]
d44591270e Merge pull request #1605 from gethinode/dependabot/npm_and_yarn/stylelint-16.25.0
build(deps-dev): bump stylelint from 16.24.0 to 16.25.0
2025-10-03 13:21:50 +00:00
dependabot[bot]
1017afbbd0 build(deps-dev): bump stylelint from 16.24.0 to 16.25.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.24.0 to 16.25.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/16.24.0...16.25.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-03 13:13:26 +00:00
github-actions[bot]
074c783ef1 Merge pull request #1604 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.148.0
build(deps): bump hugo-bin from 0.147.1 to 0.148.0
2025-10-03 13:12:21 +00:00
dependabot[bot]
f64d1c6f05 build(deps): bump hugo-bin from 0.147.1 to 0.148.0
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.147.1 to 0.148.0.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.147.1...v0.148.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-03 13:06:22 +00:00
Mark Dumay
a047a17213 Merge pull request #1603 from gethinode/develop
fix: enable markdown in card titles
2025-10-01 15:20:20 +02:00
Mark Dumay
a7480bf4a8 fix: enable markdown in card titles 2025-10-01 13:24:40 +02:00
Mark Dumay
dd0b8c970a Merge pull request #1602 from gethinode/develop
fix: correct color mode rendering of images
2025-10-01 12:42:21 +02:00
Mark Dumay
95162b067d Merge branch 'main' into develop 2025-10-01 11:42:51 +02:00
Mark Dumay
b1c7c2e7d6 fix: correct color mode rendering of images 2025-10-01 11:42:12 +02:00
github-actions[bot]
74a188a0e2 Merge pull request #1601 from gethinode/dependabot/npm_and_yarn/commitlint/cli-20.1.0
build(deps-dev): bump @commitlint/cli from 20.0.0 to 20.1.0
2025-09-30 13:15:06 +00:00
dependabot[bot]
4f0068bcb6 build(deps-dev): bump @commitlint/cli from 20.0.0 to 20.1.0
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 20.0.0 to 20.1.0.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.1.0/@commitlint/cli)

---
updated-dependencies:
- dependency-name: "@commitlint/cli"
  dependency-version: 20.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-30 13:07:50 +00:00
Mark Dumay
a529268990 Merge pull request #1600 from gethinode/develop
Develop
2025-09-30 14:03:53 +02:00
Mark Dumay
9f88e77b8e Merge branch 'main' into develop 2025-09-30 11:53:52 +02:00
Mark Dumay
7ba3c43523 fix: correct alignment of hero image 2025-09-30 11:52:05 +02:00
Mark Dumay
6b25fab7bb fix: correct handling of nil arguments 2025-09-30 11:51:33 +02:00
github-actions[bot]
34d9716c74 Merge pull request #1599 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.147.1
build(deps): bump hugo-bin from 0.147.0 to 0.147.1
2025-09-26 13:14:51 +00:00
dependabot[bot]
ef5b5ec239 build(deps): bump hugo-bin from 0.147.0 to 0.147.1
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.147.0 to 0.147.1.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.147.0...v0.147.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-26 13:07:48 +00:00
23 changed files with 430 additions and 145 deletions

View File

@@ -38,10 +38,11 @@
setLocalStorage('theme', theme, 'functional')
if (theme === 'auto') {
document.documentElement.setAttribute('data-bs-theme', (getPreferredTheme()))
} else {
document.documentElement.setAttribute('data-bs-theme', theme)
theme = getPreferredTheme()
}
document.documentElement.setAttribute('data-bs-theme', theme)
// store main theme separately, to avoid the navbar mode icon uses a local variable
document.documentElement.setAttribute('data-bs-main-theme', theme)
updateSelectors()
}

View File

@@ -4,24 +4,163 @@ const togglers = document.querySelectorAll('.main-nav-toggler')
const modeSelectors = document.querySelectorAll('.switch-mode-collapsed')
const colorsBG = ['body', 'secondary', 'tertiary']
function updateNavbar () {
let storedTheme
if (typeof getLocalStorage === "function") {
storedTheme = getLocalStorage('theme', null, 'functional')
let scrollPosition = 0
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms))
}
function getStyle(el, styleProp) {
let y
if (window.getComputedStyle) {
y = document.defaultView.getComputedStyle(el).getPropertyValue(styleProp)
} else if (el.currentStyle) {
y = el.currentStyle[styleProp]
}
return y
}
function updateNavbarColor () {
const scrollTop = window.pageYOffset
const scrollBottom = scrollTop + navbar.offsetHeight
// find which section is currently under the navbar
let currentSection = null
const sections = document.querySelectorAll('article,section,footer')
let currentIndex = -1
sections.forEach(section => {
const rect = section.getBoundingClientRect()
const sectionTop = scrollTop + rect.top
const sectionBottom = sectionTop + section.offsetHeight - 1
// check if navbar overlaps with this section
if (scrollTop <= sectionBottom && scrollBottom >= sectionTop) {
let index = getStyle(section, 'z-index')
if (index === 'auto') {
index = 1
}
if (index > currentIndex) {
currentSection = section
currentIndex = index
}
}
})
// use main part as backup (defined in baseof.html template)
if (!currentSection) {
currentSection = document.querySelector('main')
}
if (window.scrollY > 75) {
navbar.classList.add('nav-active')
if (storedTheme) {
navbar.setAttribute('data-bs-theme', storedTheme)
if (currentSection) {
adaptToSection(currentSection)
}
}
function getBackgroundColor (section) {
// get computed background color of the section
let color = window.getComputedStyle(section).backgroundColor
// use body background when section background is undefined or transparent
if (color === 'rgba(0, 0, 0, 0)' || color === 'transparent') {
color = window.getComputedStyle(document.body).getPropertyValue('background-color')
}
return color
}
function adaptToSection (section) {
// retrieve the section background color, using body color as fallback
const color = getBackgroundColor(section)
// determine if the background is light or dark
const isLightBackground = isLightColor(section, color)
// set appropriate mode class
const nav = document.querySelector('.navbar')
if (isLightBackground) {
if (navbar.dataset.bsTheme !== 'light') {
navbar.dataset.bsTheme = 'light'
}
} else {
navbar.classList.remove('nav-active')
const defaultTheme = navbar.getAttribute('data-bs-overlay')
if (navbar.dataset.bsTheme !== 'dark') {
navbar.dataset.bsTheme = 'dark'
}
}
const targetTheme = defaultTheme ? defaultTheme : storedTheme
if (targetTheme) {
navbar.setAttribute('data-bs-theme', defaultTheme)
// update semi-transparent background color of navbar
const rgb = parseRGB(color)
if (rgb) {
navbar.style.backgroundColor = `rgba(${rgb.r},${rgb.g},${rgb.b},.4)`
}
}
function isLightColor (section, color) {
if (section.dataset.bsTheme === 'light') {
return true
}
if (section.dataset.bsTheme === 'dark') {
return false
}
// parse RGB color of the section backgroiund
const rgb = parseRGB(color)
if (!rgb) return true // Default to light if can't parse
// calculate relative luminance
const luminance = calculateLuminance(rgb.r, rgb.g, rgb.b)
// return true if light (luminance > 0.5)
return luminance > 0.5
}
function parseRGB (color) {
const match = color.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/)
if (match) {
return {
r: parseInt(match[1]),
g: parseInt(match[2]),
b: parseInt(match[3])
}
}
return null
}
function calculateLuminance (r, g, b) {
// convert RGB to relative luminance using sRGB formula
const [rs, gs, bs] = [r, g, b].map(c => {
c = c / 255
return c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4)
})
return 0.2126 * rs + 0.7152 * gs + 0.0722 * bs
}
function updateNavbar () {
if (navbar.dataset.transparent) {
updateNavbarColor()
} else {
let storedTheme
if (typeof getLocalStorage === "function") {
storedTheme = getLocalStorage('theme', null, 'functional')
}
if (window.scrollY > 75) {
navbar.classList.add('nav-active')
if (storedTheme) {
navbar.setAttribute('data-bs-theme', storedTheme)
}
} else {
navbar.classList.remove('nav-active')
const defaultTheme = navbar.getAttribute('data-bs-overlay')
const targetTheme = defaultTheme ? defaultTheme : storedTheme
if (targetTheme) {
navbar.setAttribute('data-bs-theme', defaultTheme)
}
}
}
}
@@ -33,28 +172,49 @@ if ((navbar !== null) && (window.performance.getEntriesByType)) {
}
if (navbar !== null && togglers !== null) {
// initialize and update the navbar on load, on resize, and on scroll
document.addEventListener('DOMContentLoaded', () => { fixed && updateNavbar() })
document.addEventListener('resize', () => fixed && updateNavbar())
document.addEventListener('scroll', () => fixed && updateNavbar())
// hook up collapse events
document.querySelectorAll('.navbar-collapse').forEach((collapse) => {
collapse.addEventListener('show.bs.collapse', function () {
scrollPosition = window.pageYOffset
document.body.style.top = `-${scrollPosition}px`
document.body.classList.add('navbar-open')
})
collapse.addEventListener('hide.bs.collapse', function () {
document.body.classList.remove('navbar-open')
document.body.style.top = ''
window.scrollTo({ top: scrollPosition, behavior: 'instant' })
})
})
// observe state changes to the site's color mode
const html = document.querySelector('html')
const config = {
attributes: true,
attributeFilter: ['data-bs-theme']
}
const Observer = new MutationObserver((mutationrecords) => {
fixed && updateNavbar()
const Observer = new MutationObserver(() => {
if (fixed) {
// wait for the theme animation to finish
sleep(600).then(() => {
updateNavbar()
})
}
})
Observer.observe(html, config)
// initialize background color
const color = (navbar.getAttribute('data-navbar-color') || 'body')
const bg = colorsBG.includes(color) ? `var(--bs-${color}-bg)` : `var(--bs-navbar-color-${color})`
navbar.style.setProperty('--bs-navbar-expanded-color', bg)
// set the navbar background color to opaque when scrolling past a breakpoint
window.onscroll = () => {
fixed && updateNavbar()
if (!navbar.dataset.transparent) {
const color = (navbar.getAttribute('data-navbar-color') || 'body')
const bg = colorsBG.includes(color) ? `var(--bs-${color}-bg)` : `var(--bs-navbar-color-${color})`
navbar.style.setProperty('--bs-navbar-expanded-color', bg)
}
// set the navbar background color to opaque when expanded
// update the navbar background color when expanded
for (let i = 0; i < togglers.length; ++i) {
togglers[i].onclick = () => {
navbar.classList.toggle('navbar-expanded')

View File

@@ -95,6 +95,11 @@
}
}
.navbar[data-transparent="true"] {
backdrop-filter: blur(10px);
transition: all 0.3s ease;
}
.nav-active, .navbar-expanded {
background-color: var(--bs-navbar-expanded-color);
border-bottom: 1px solid var(--bs-secondary-bg);
@@ -392,3 +397,47 @@
.form-control.is-search {
border: 1px solid var(--bs-border-color) !important;
}
.d-none-main-light, .d-none-inline-main-light {
display: none !important;
}
.d-none-main-dark {
display: block !important;
}
.d-none-inline-main-dark {
display: inline !important;
}
[data-bs-main-theme="dark"] .d-none-main-light {
display: block !important;
}
[data-bs-main-theme="dark"] .d-none-inline-main-light {
display: inline !important;
}
[data-bs-main-theme="dark"] .d-none-main-dark, [data-bs-main-theme="dark"] .d-none-inline-main-dark {
display: none !important;
}
.inline-menu li {
display: inline-block;
padding: 0.5rem;
color: var(--bs-nav-link-color);
}
.inline-menu li .active, .inline-menu li>a:hover {
box-shadow: inset 0 -1px 0 var(--bs-navbar-hover-color);
}
ul.inline-menu {
padding: 0;
}
body.navbar-open {
overflow: hidden;
position: fixed;
width: 100%;
}

View File

@@ -96,7 +96,7 @@
overlay = false
overlayMode = "dark"
horizontal = false
offset = "5.5rem"
offset = "5.7rem"
breadcrumb = true
toc = true
sidebar = true

View File

@@ -23,7 +23,6 @@ arguments:
comment: Name of the menu configuration.
breakpoint:
release: v1.0.0
style:
type: select
optional: true
@@ -98,6 +97,17 @@ arguments:
navbar searches for images having a matching color-mode suffix
such as `-light` or `-dark`.
release: v1.15.0
transparent:
type: bool
default: false
optional: true
comment: >-
Flag indicating the navbar should be transparent. When set, the navbar
uses the current section's background color and applies a semi-
transparent blur filter. The site's body color is used as fallback. If
set, the color mode of the current section is used too. When no mode is
set, the navbar applies a mode with the best contrast.
release: v1.19.0
# deprecated arguments
size:
type: select

View File

@@ -48,9 +48,10 @@
fixed = true
overlay = false
overlayMode = "dark"
transparent = false
horizontal = false
offset = "5.5rem"
offsetXS = "5.5rem"
offset = "5.7rem"
offsetXS = "5.7rem"
breadcrumb = true
toc = true
sidebar = true
@@ -61,6 +62,7 @@
maxNumHeadings = 9
[navigation.language]
icon = "fas globe"
inline = false
[navigation.padding]
x = 4
y = 4

View File

@@ -29,6 +29,7 @@
"label",
"li",
"link",
"main",
"mark",
"math",
"meta",
@@ -212,6 +213,8 @@
"d-none",
"d-none-dark",
"d-none-light",
"d-none-main-dark",
"d-none-main-light",
"d-sm-block",
"d-sm-none",
"data-table",
@@ -245,6 +248,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",
@@ -387,7 +393,6 @@
"mode-item",
"mode-toggle",
"ms-1",
"ms-3",
"ms-auto",
"ms-md-3",
"mt-1",
@@ -546,7 +551,7 @@
"text-decoration-none",
"text-end",
"text-info",
"text-md-%!s(<nil>)",
"text-md-center",
"text-md-end",
"text-muted",
"text-nowrap",
@@ -676,11 +681,16 @@
"docs",
"documentation",
"dropdown-nav-0",
"dropdown-panel-10b4dbf7531a9030b98adb10d7ac64dd",
"dropdown-panel-65b7b37c01a2989726d90ded3f24fa4c",
"dropdown-panel-a50b9d56bb2ce6168bbac50b9529d9dc",
"dropdown-panel-e5036bd7b3aa643c5583c1a649dc49ec",
"dropdown-panel-e8d3267614cba868d134250854874b10",
"dropdown-panel-05f2e5ae7cf8c0ab8a49ba311bdc4d7e",
"dropdown-panel-256968d78244b40725f5d484ea340a5f",
"dropdown-panel-29ba03d101604c5caa618293938833b1",
"dropdown-panel-30c508a91fbd512d0bee6f976efc028c",
"dropdown-panel-47c670e7ebc8dd6e57f5d70dde479a8b",
"dropdown-panel-4c945acd0c9326daa6f433a64262c7a0",
"dropdown-panel-552e42166b1b143d516aeccc1fbc7d32",
"dropdown-panel-bf5b105df93a1545b2fc424e3ab1c654",
"dropdown-panel-e5aba6d799885a8fd4208fade274e3a7",
"dropdown-panel-fd6d8a3429e95196931cd8c08072abf3",
"eerste-artikel",
"elements-type",
"entity-relationship-diagram",
@@ -701,16 +711,24 @@
"fab-whatsapp",
"fab-x-twitter",
"faq",
"faq-388337a6445201b7e27c17d9a56daced",
"faq-388337a6445201b7e27c17d9a56daced-heading-faq-388337a6445201b7e27c17d9a56daced",
"faq-388337a6445201b7e27c17d9a56daced-item-0",
"faq-388337a6445201b7e27c17d9a56daced-item-1",
"faq-388337a6445201b7e27c17d9a56daced-item-2",
"faq-726ff0b8b5ec9328cfef51994d523ad1",
"faq-726ff0b8b5ec9328cfef51994d523ad1-heading-faq-726ff0b8b5ec9328cfef51994d523ad1",
"faq-726ff0b8b5ec9328cfef51994d523ad1-item-0",
"faq-726ff0b8b5ec9328cfef51994d523ad1-item-1",
"faq-726ff0b8b5ec9328cfef51994d523ad1-item-2",
"faq-c610e94909d8dd90e16cbcbc4cc3fe84",
"faq-c610e94909d8dd90e16cbcbc4cc3fe84-heading-faq-c610e94909d8dd90e16cbcbc4cc3fe84",
"faq-c610e94909d8dd90e16cbcbc4cc3fe84-item-0",
"faq-c610e94909d8dd90e16cbcbc4cc3fe84-item-1",
"faq-c610e94909d8dd90e16cbcbc4cc3fe84-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",
@@ -801,11 +819,16 @@
"nav-0-btn-1",
"nav-0-btn-2",
"nav-nav-0",
"nav-panel-10b4dbf7531a9030b98adb10d7ac64dd",
"nav-panel-65b7b37c01a2989726d90ded3f24fa4c",
"nav-panel-a50b9d56bb2ce6168bbac50b9529d9dc",
"nav-panel-e5036bd7b3aa643c5583c1a649dc49ec",
"nav-panel-e8d3267614cba868d134250854874b10",
"nav-panel-05f2e5ae7cf8c0ab8a49ba311bdc4d7e",
"nav-panel-256968d78244b40725f5d484ea340a5f",
"nav-panel-29ba03d101604c5caa618293938833b1",
"nav-panel-30c508a91fbd512d0bee6f976efc028c",
"nav-panel-47c670e7ebc8dd6e57f5d70dde479a8b",
"nav-panel-4c945acd0c9326daa6f433a64262c7a0",
"nav-panel-552e42166b1b143d516aeccc1fbc7d32",
"nav-panel-bf5b105df93a1545b2fc424e3ab1c654",
"nav-panel-e5aba6d799885a8fd4208fade274e3a7",
"nav-panel-fd6d8a3429e95196931cd8c08072abf3",
"navbar",
"navbar-0-collapse",
"navbar-mode",
@@ -815,36 +838,66 @@
"notification",
"over-mij",
"overview",
"panel-10b4dbf7531a9030b98adb10d7ac64dd-0",
"panel-10b4dbf7531a9030b98adb10d7ac64dd-1",
"panel-10b4dbf7531a9030b98adb10d7ac64dd-2",
"panel-10b4dbf7531a9030b98adb10d7ac64dd-btn-0",
"panel-10b4dbf7531a9030b98adb10d7ac64dd-btn-1",
"panel-10b4dbf7531a9030b98adb10d7ac64dd-btn-2",
"panel-65b7b37c01a2989726d90ded3f24fa4c-0",
"panel-65b7b37c01a2989726d90ded3f24fa4c-1",
"panel-65b7b37c01a2989726d90ded3f24fa4c-2",
"panel-65b7b37c01a2989726d90ded3f24fa4c-btn-0",
"panel-65b7b37c01a2989726d90ded3f24fa4c-btn-1",
"panel-65b7b37c01a2989726d90ded3f24fa4c-btn-2",
"panel-a50b9d56bb2ce6168bbac50b9529d9dc-0",
"panel-a50b9d56bb2ce6168bbac50b9529d9dc-1",
"panel-a50b9d56bb2ce6168bbac50b9529d9dc-2",
"panel-a50b9d56bb2ce6168bbac50b9529d9dc-btn-0",
"panel-a50b9d56bb2ce6168bbac50b9529d9dc-btn-1",
"panel-a50b9d56bb2ce6168bbac50b9529d9dc-btn-2",
"panel-e5036bd7b3aa643c5583c1a649dc49ec-0",
"panel-e5036bd7b3aa643c5583c1a649dc49ec-1",
"panel-e5036bd7b3aa643c5583c1a649dc49ec-2",
"panel-e5036bd7b3aa643c5583c1a649dc49ec-btn-0",
"panel-e5036bd7b3aa643c5583c1a649dc49ec-btn-1",
"panel-e5036bd7b3aa643c5583c1a649dc49ec-btn-2",
"panel-e8d3267614cba868d134250854874b10-0",
"panel-e8d3267614cba868d134250854874b10-1",
"panel-e8d3267614cba868d134250854874b10-2",
"panel-e8d3267614cba868d134250854874b10-btn-0",
"panel-e8d3267614cba868d134250854874b10-btn-1",
"panel-e8d3267614cba868d134250854874b10-btn-2",
"panel-05f2e5ae7cf8c0ab8a49ba311bdc4d7e-0",
"panel-05f2e5ae7cf8c0ab8a49ba311bdc4d7e-1",
"panel-05f2e5ae7cf8c0ab8a49ba311bdc4d7e-2",
"panel-05f2e5ae7cf8c0ab8a49ba311bdc4d7e-btn-0",
"panel-05f2e5ae7cf8c0ab8a49ba311bdc4d7e-btn-1",
"panel-05f2e5ae7cf8c0ab8a49ba311bdc4d7e-btn-2",
"panel-256968d78244b40725f5d484ea340a5f-0",
"panel-256968d78244b40725f5d484ea340a5f-1",
"panel-256968d78244b40725f5d484ea340a5f-2",
"panel-256968d78244b40725f5d484ea340a5f-btn-0",
"panel-256968d78244b40725f5d484ea340a5f-btn-1",
"panel-256968d78244b40725f5d484ea340a5f-btn-2",
"panel-29ba03d101604c5caa618293938833b1-0",
"panel-29ba03d101604c5caa618293938833b1-1",
"panel-29ba03d101604c5caa618293938833b1-2",
"panel-29ba03d101604c5caa618293938833b1-btn-0",
"panel-29ba03d101604c5caa618293938833b1-btn-1",
"panel-29ba03d101604c5caa618293938833b1-btn-2",
"panel-30c508a91fbd512d0bee6f976efc028c-0",
"panel-30c508a91fbd512d0bee6f976efc028c-1",
"panel-30c508a91fbd512d0bee6f976efc028c-2",
"panel-30c508a91fbd512d0bee6f976efc028c-btn-0",
"panel-30c508a91fbd512d0bee6f976efc028c-btn-1",
"panel-30c508a91fbd512d0bee6f976efc028c-btn-2",
"panel-47c670e7ebc8dd6e57f5d70dde479a8b-0",
"panel-47c670e7ebc8dd6e57f5d70dde479a8b-1",
"panel-47c670e7ebc8dd6e57f5d70dde479a8b-2",
"panel-47c670e7ebc8dd6e57f5d70dde479a8b-btn-0",
"panel-47c670e7ebc8dd6e57f5d70dde479a8b-btn-1",
"panel-47c670e7ebc8dd6e57f5d70dde479a8b-btn-2",
"panel-4c945acd0c9326daa6f433a64262c7a0-0",
"panel-4c945acd0c9326daa6f433a64262c7a0-1",
"panel-4c945acd0c9326daa6f433a64262c7a0-2",
"panel-4c945acd0c9326daa6f433a64262c7a0-btn-0",
"panel-4c945acd0c9326daa6f433a64262c7a0-btn-1",
"panel-4c945acd0c9326daa6f433a64262c7a0-btn-2",
"panel-552e42166b1b143d516aeccc1fbc7d32-0",
"panel-552e42166b1b143d516aeccc1fbc7d32-1",
"panel-552e42166b1b143d516aeccc1fbc7d32-2",
"panel-552e42166b1b143d516aeccc1fbc7d32-btn-0",
"panel-552e42166b1b143d516aeccc1fbc7d32-btn-1",
"panel-552e42166b1b143d516aeccc1fbc7d32-btn-2",
"panel-bf5b105df93a1545b2fc424e3ab1c654-0",
"panel-bf5b105df93a1545b2fc424e3ab1c654-1",
"panel-bf5b105df93a1545b2fc424e3ab1c654-2",
"panel-bf5b105df93a1545b2fc424e3ab1c654-btn-0",
"panel-bf5b105df93a1545b2fc424e3ab1c654-btn-1",
"panel-bf5b105df93a1545b2fc424e3ab1c654-btn-2",
"panel-e5aba6d799885a8fd4208fade274e3a7-0",
"panel-e5aba6d799885a8fd4208fade274e3a7-1",
"panel-e5aba6d799885a8fd4208fade274e3a7-2",
"panel-e5aba6d799885a8fd4208fade274e3a7-btn-0",
"panel-e5aba6d799885a8fd4208fade274e3a7-btn-1",
"panel-e5aba6d799885a8fd4208fade274e3a7-btn-2",
"panel-fd6d8a3429e95196931cd8c08072abf3-0",
"panel-fd6d8a3429e95196931cd8c08072abf3-1",
"panel-fd6d8a3429e95196931cd8c08072abf3-2",
"panel-fd6d8a3429e95196931cd8c08072abf3-btn-0",
"panel-fd6d8a3429e95196931cd8c08072abf3-btn-1",
"panel-fd6d8a3429e95196931cd8c08072abf3-btn-2",
"panels",
"persona",
"pie-chart",

2
go.mod
View File

@@ -7,7 +7,7 @@ require (
github.com/cloudcannon/bookshop/hugo/v3 v3.16.5 // indirect
github.com/gethinode/mod-bootstrap v1.3.4 // indirect
github.com/gethinode/mod-csp v1.0.8 // indirect
github.com/gethinode/mod-flexsearch/v3 v3.0.0 // indirect
github.com/gethinode/mod-flexsearch/v3 v3.0.1 // indirect
github.com/gethinode/mod-fontawesome/v2 v2.1.2 // indirect
github.com/gethinode/mod-google-analytics v1.3.3 // indirect
github.com/gethinode/mod-katex v1.1.4 // indirect

2
go.sum
View File

@@ -8,6 +8,8 @@ github.com/gethinode/mod-csp v1.0.8 h1:36bWS7oW5KoPp0ywJXKmfMdM33c/7EPBLjzut0njT
github.com/gethinode/mod-csp v1.0.8/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
github.com/gethinode/mod-flexsearch/v3 v3.0.0 h1:xFeo5ovZMIcUttvpOamPAMML5+5Au/hewZz/18C2H6Q=
github.com/gethinode/mod-flexsearch/v3 v3.0.0/go.mod h1:iYvaBF6Y62pjnCepYAqLxoX1ZdEBoD+9caj4cBC+MxY=
github.com/gethinode/mod-flexsearch/v3 v3.0.1 h1:dHaSImDDp1xtzpW0vc4zychCGOxOCQb764l/XRp0hZc=
github.com/gethinode/mod-flexsearch/v3 v3.0.1/go.mod h1:iYvaBF6Y62pjnCepYAqLxoX1ZdEBoD+9caj4cBC+MxY=
github.com/gethinode/mod-fontawesome/v2 v2.1.2 h1:v1aHhbLLwe/05zRHnx9qGqh6b3toDzcLzuv61rWAoGU=
github.com/gethinode/mod-fontawesome/v2 v2.1.2/go.mod h1:zukv88wXqquEvTJJ9mWWk8Ia+9INnA41wYqusf2RcHA=
github.com/gethinode/mod-google-analytics v1.3.3 h1:iX2FtXajykfHWJf7MXCQmpezqXgQUADNTeglU81QKpw=

View File

@@ -34,7 +34,7 @@
<a href="{{ $href }}" class="{{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }} stretched-link">
{{ if or $title $links }}
<p class="card-title fs-lg-5 fs-6">
{{- with $title }}{{ . }}{{ end }}
{{- with $title }}{{ . | page.RenderString }}{{ end }}
{{ with $links }}{{ partial "inline/card-icons.html" (dict "links" .) }}{{ end -}}
</p>
{{ end -}}
@@ -48,7 +48,7 @@
<div>
{{ if or $title $links }}
<p class="card-title fs-lg-5 fs-6">
{{- with $title }}{{ . }}{{ end }}
{{- with $title }}{{ . | page.RenderString }}{{ end }}
{{ with $links }}{{ partial "inline/card-icons.html" (dict "links" .) }}{{ end -}}
</p>
{{ end -}}

View File

@@ -44,7 +44,7 @@
{{ partial "assets/icon.html" (dict "icon" $icon "wrapper" $wrapper) -}}
{{- end -}}
{{- else if $image -}}
{{- if not (hasSuffix $image "svg") }}{{ $class = printf "%s rounded" $class }}{{ end -}}
{{- if not (hasSuffix $image "svg") }}{{ $class = strings.TrimSpace (printf "%s rounded" (or $class "")) }}{{ end -}}
{{- partial "assets/live-image.html" (dict
"src" $image
"anchor" $args.anchor

View File

@@ -4,34 +4,39 @@
{{- $pretty := .pretty -}}
{{- $icon := .icon | default "fas globe" -}}
{{- $fs := .fs | default 6 -}}
{{- $inline := site.Params.navigation.language.inline | default false -}}
{{- $class := cond $inline "inline-menu" "dropdown-menu dropdown-menu-end" }}
{{- $lang := $page.Language.Lang -}}
<li class="nav-item dropdown me-auto">
<a class="nav-link dropdown-toggle d-{{ $breakpoint }}-none" role="button" data-bs-toggle="dropdown"
aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false">
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-fw" $icon) "spacing" true) }}{{ T "languageSwitcherLabel" }}
</a>
<a class="nav-link dropdown-toggle d-none d-{{ $breakpoint }}-block" role="button" data-bs-toggle="dropdown"
aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false">
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-fw" $icon) "spacing" false) }}
</a>
<ul id="language-selector" class="dropdown-menu dropdown-menu-end navbar-fs-{{ $fs }} navbar-{{ $breakpoint }}-fs" data-translated="{{ $page.IsTranslated }}">
{{ if not $inline }}
<a class="nav-link dropdown-toggle d-{{ $breakpoint }}-none" role="button" data-bs-toggle="dropdown"
aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false">
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-fw" $icon) "spacing" true) }}{{ T "languageSwitcherLabel" }}
</a>
<a class="nav-link dropdown-toggle d-none d-{{ $breakpoint }}-block" role="button" data-bs-toggle="dropdown"
aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false">
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-fw" $icon) "spacing" false) }}
</a>
{{ end }}
<ul id="language-selector" class="{{ $class }} navbar-fs-{{ $fs }} navbar-{{ $breakpoint }}-fs" data-translated="{{ $page.IsTranslated }}">
{{- if $page.IsTranslated -}}
{{- range $page.AllTranslations -}}
<li>
{{- $state := cond (eq .Language.Lang $lang) "active" "" }}
<a class="dropdown-item {{ $state }}" hreflang="{{ .Language.Lang }}" href="{{ .RelPermalink }}">
{{- .Language.LanguageName -}}
{{- cond $inline (upper .Language.Lang) .Language.LanguageName -}}
</a>
</li>
{{- end -}}
{{- else -}}
{{- range site.Languages -}}
{{ $dest := partial "utilities/URLJoin.html" (dict "base" $baseURL "path" .Lang) }}
{{ if and $pretty (not (hasSuffix $dest "/")) }}
{{ $dest = printf "%s/" $dest }}
{{ end }}
<li><a class="dropdown-item" href="{{ $dest }}" hreflang="{{ .Lang }}">{{ default .Lang .LanguageName }}</a></li>
<li>
{{- $state := cond (eq .Lang $lang) "active" "disabled" }}
<a class="dropdown-item {{ $state }}" href="{{ cond (eq $state "active") $page.RelPermalink "#!" }}" hreflang="{{ .Lang }}">
{{- cond $inline (upper .Lang) (default .Lang .LanguageName) -}}
</a>
</li>
{{- end -}}
{{- end -}}
</ul>

View File

@@ -9,11 +9,11 @@
<input type="checkbox" class="checkbox navbar-mode-selector" id="{{ $id }}-checkbox" aria-label="{{ T "colorMode" }}" />
<label class="label" for="{{ $id }}-checkbox">
{{ if $toggle }}
<div class="mode-item d-none-dark">
<div class="mode-item d-none-main-dark">
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-fw" $iconLight) "spacing" false) }}
<span class="d-{{ $breakpoint }}-none">{{ T "colorMode" }}</span>
</div>
<div class="mode-item d-none-light">
<div class="mode-item d-none-main-light">
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-fw" $iconDark) "spacing" false) }}
<span class="d-{{ $breakpoint }}-none">{{ T "colorMode" }}</span>
</div>

View File

@@ -17,7 +17,7 @@
{{ end }}
{{ if and (not $args.err) (or $args.image $args.icon) }}
<div class="hero-image-container {{ if $args.image }}{{ with $args.justify }}d-flex justify-content-center justify-content-md-{{ . }}{{ end }}{{ end }}">
<div class="hero-image-container {{ if $args.image }}d-flex justify-content-center {{ with $args.justify }} justify-content-md-{{ . }}{{ end }}{{ end }}">
{{ partial "assets/featured-illustration.html" (dict
"page" $args.page
"icon" $args.icon

View File

@@ -31,7 +31,7 @@
{{ $justify := $args.illustration.justify }}
{{ if and $args.illustration.image $scale }}
{{ $class = trim (printf "%s col-%d text-center text-md-%s" $class $scale $justify) " " }}
{{ $class = trim (printf "%s col-%d text-center text-md-%s" $class $scale (or $justify "center")) " " }}
{{ else }}
{{ $scale = 12 }}
{{ end }}
@@ -68,7 +68,7 @@
</div>
{{ end }}
{{ $imageWrapper := printf "mx-md-0 text-center text-md-%s %s" $justify $class }}
{{ $imageWrapper := printf "mx-md-0 text-center text-md-%s %s" (or $justify "center") $class }}
{{ $imageJustify := "" }}
{{ if eq $args.orientation "stacked" }}
{{ $imageWrapper = printf "pt-%d text-center %s" $padding.y $class }}
@@ -96,7 +96,7 @@
{{ end }}
{{ $illustration := "" }}
{{ if or $args.illustration.image $args.illustration.icon }}
{{ if or $args.illustration.image $args.illustration.icon }}
{{ $illustration = partial $args.hook (dict
"page" $args.page
"image" $args.illustration.image
@@ -107,7 +107,7 @@
"sizes" $sizes
"title" (T "heroImage")
"wrapper" $imageWrapper
"class" (printf "hero-image %s" $args.illustration.class)
"class" (strings.TrimSpace (printf "hero-image %s" (or $args.illustration.class "")))
"image-overlay" $args.imageOverlay
"justify" $imageJustify
) }}

View File

@@ -66,7 +66,7 @@
{{- $image := printf "%s-%s%s" $base $suffix $ext -}}
{{- $params = merge $params (dict
"src" $image
"class" (printf "%s d-none-%s" $args.class (cond (eq $suffix "dark") "light" "dark"))
"wrapper" (printf "%s d-none-%s" $args.wrapper (cond (eq $suffix "dark") "light" "dark"))
) -}}
{{- partial "assets/helpers/image-definition.html" $params -}}
{{- end -}}

View File

@@ -56,8 +56,8 @@
{{- if reflect.IsSlice $args.navTitles }}{{ $titles = $titles | append $args.navTitles }}{{ end -}}
{{/* Main code */}}
<div class="col col-{{ $breakpoint.current }}-{{ $args.width }} mx-auto">
{{ if $args.vertical }}<div class="d-flex align-items-start">{{ end }}
<div class="col col-12 col-{{ $breakpoint.current }}-{{ $args.width }} mx-auto">
{{ if $args.vertical }}<div class="d-{{ if $args.responsive }}{{ $breakpoint.current }}{{ end }}-flex align-items-start">{{ end }}
{{ if $args.responsive }}
{{ partial "inline/nav-dropdown.html" (dict
"id" $id
@@ -100,7 +100,7 @@
{{ end -}}
</ul>
</div>
<div class="tab-content {{ if in (slice "tabs" "callout") $type }}border p-3 bg-body {{ else if $args.vertical }}ms-3{{ else }}mt-3{{ end }}">
<div class="tab-content {{ if in (slice "tabs" "callout") $type }}border p-3 bg-body {{ else if $args.vertical }}ms-{{ $breakpoint.current }}-3{{ else }}mt-3{{ end }}">
{{- $args.navItems | safeHTML -}}
</div>
{{- if $args.vertical }}</div>{{ end -}}

View File

@@ -124,7 +124,8 @@
data-bs-theme="{{ $overlayMode }}"
{{ if $args.fixed }}data-bs-overlay="{{ $overlayMode }}"{{ end }}
{{ if $color }}data-navbar-color="{{ $color }}"{{ end }}
{{ end }}
{{ end }}
{{ with $args.transparent }}data-transparent="{{ . }}"{{ end }}
>
<div class="container-xxl p-0">
<div class="d-flex navbar-container">
@@ -134,7 +135,7 @@
<div class="d-flex align-items-center">
{{- if $sidebar -}}
<button class="navbar-toggler collapsed p-0 mx-auto fw-30" type="button" data-bs-toggle="offcanvas"
data-bs-target="#offcanvass-sidebar" aria-controls="offcanvass-sidebar" aria-label="{{ T "toggleSidebar" }}">
data-bs-target="#offcanvas-sidebar" aria-controls="offcanvas-sidebar" aria-label="{{ T "toggleSidebar" }}">
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis fa-fw" "spacing" false) -}}
</button>
{{- else if eq $align "center" -}}

View File

@@ -58,7 +58,7 @@
{{ if .IsHome -}}
<title>{{ .Site.Title }} {{ if .Site.Params.head.tagline }} {{ .Site.Params.main.separator }} {{ .Site.Params.head.tagline }}{{ end }}</title>
{{ else -}}
<title>{{ .Site.Title }} {{ .Site.Params.main.separator }} {{ .Title }}</title>
<title>{{ .Title }} {{ .Site.Params.main.separator }} {{ .Site.Title }} </title>
{{ end -}}
<meta name="description" content="{{ $.Scratch.Get "description" }}">

View File

@@ -46,14 +46,15 @@
"fixed" site.Params.navigation.fixed
"overlay" site.Params.navigation.overlay
"overlayMode" site.Params.navigation.overlayMode
"transparent" site.Params.navigation.transparent
"color" site.Params.navigation.color
"style" (default "light" site.Params.navigation.style)
"breakpoint" (default "md" site.Params.navigation.size))
-}}
<div id="container" class="main">
<main id="container" class="main">
{{ block "main" . }}{{ end -}}
</div>
</main>
{{- partial "footer/social.html" . -}}
{{- partial "footer/footer.html" . -}}

View File

@@ -5,7 +5,7 @@
{{- $toc := partial "page/panel-toc" . -}}
{{ with $sidebar }}
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvass-sidebar" aria-labelledby="offcanvas-label">
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvas-sidebar" aria-labelledby="offcanvas-label">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvas-label">{{ strings.FirstUpper $.Section }}</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="{{ T "close" }}"></button>

59
package-lock.json generated
View File

@@ -13,11 +13,11 @@
"autoprefixer": "^10.4.21",
"cssnano": "^7.1.1",
"cssnano-preset-advanced": "^7.0.9",
"hugo-bin": "0.147.0",
"hugo-bin": "0.148.0",
"purgecss-whitelister": "^2.4.0"
},
"devDependencies": {
"@commitlint/cli": "^20.0.0",
"@commitlint/cli": "^20.1.0",
"@commitlint/config-conventional": "^20.0.0",
"@gethinode/netlify-plugin-dartsass": "^0.3.0",
"@semantic-release/exec": "^7.1.0",
@@ -36,7 +36,7 @@
"rimraf": "^6.0.1",
"semantic-release": "^24.2.9",
"shx": "^0.4.0",
"stylelint": "^16.24.0",
"stylelint": "^16.25.0",
"stylelint-config-standard-scss": "^16.0.0"
},
"optionalDependencies": {
@@ -91,15 +91,15 @@
}
},
"node_modules/@commitlint/cli": {
"version": "20.0.0",
"resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-20.0.0.tgz",
"integrity": "sha512-I3D7Yldq8ZhOB3qEaTvXWIgib6tSZhbCpRObfFQ/aYI0J9AH8NMwT07Ak+bpE3n6Yn7EtbqEhQUkJZ/jZ5kCeQ==",
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-20.1.0.tgz",
"integrity": "sha512-pW5ujjrOovhq5RcYv5xCpb4GkZxkO2+GtOdBW2/qrr0Ll9tl3PX0aBBobGQl3mdZUbOBgwAexEQLeH6uxL0VYg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@commitlint/format": "^20.0.0",
"@commitlint/lint": "^20.0.0",
"@commitlint/load": "^20.0.0",
"@commitlint/load": "^20.1.0",
"@commitlint/read": "^20.0.0",
"@commitlint/types": "^20.0.0",
"tinyexec": "^1.0.0",
@@ -250,15 +250,15 @@
}
},
"node_modules/@commitlint/load": {
"version": "20.0.0",
"resolved": "https://registry.npmjs.org/@commitlint/load/-/load-20.0.0.tgz",
"integrity": "sha512-WiNKO9fDPlLY90Rruw2HqHKcghrmj5+kMDJ4GcTlX1weL8K07Q6b27C179DxnsrjGCRAKVwFKyzxV4x+xDY28Q==",
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/@commitlint/load/-/load-20.1.0.tgz",
"integrity": "sha512-qo9ER0XiAimATQR5QhvvzePfeDfApi/AFlC1G+YN+ZAY8/Ua6IRrDrxRvQAr+YXUKAxUsTDSp9KXeXLBPsNRWg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@commitlint/config-validator": "^20.0.0",
"@commitlint/execute-rule": "^20.0.0",
"@commitlint/resolve-extends": "^20.0.0",
"@commitlint/resolve-extends": "^20.1.0",
"@commitlint/types": "^20.0.0",
"chalk": "^5.3.0",
"cosmiconfig": "^9.0.0",
@@ -327,9 +327,9 @@
}
},
"node_modules/@commitlint/resolve-extends": {
"version": "20.0.0",
"resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-20.0.0.tgz",
"integrity": "sha512-BA4vva1hY8y0/Hl80YDhe9TJZpRFMsUYzVxvwTLPTEBotbGx/gS49JlVvtF1tOCKODQp7pS7CbxCpiceBgp3Dg==",
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-20.1.0.tgz",
"integrity": "sha512-cxKXQrqHjZT3o+XPdqDCwOWVFQiae++uwd9dUBC7f2MdV58ons3uUvASdW7m55eat5sRiQ6xUHyMWMRm6atZWw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -590,13 +590,14 @@
}
},
"node_modules/@dual-bundle/import-meta-resolve": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
"integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.2.1.tgz",
"integrity": "sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==",
"dev": true,
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
"url": "https://github.com/sponsors/JounQin"
}
},
"node_modules/@emnapi/core": {
@@ -4704,9 +4705,9 @@
}
},
"node_modules/debug": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
"integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
"version": "4.4.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"license": "MIT",
"dependencies": {
"ms": "^2.1.3"
@@ -7238,9 +7239,9 @@
}
},
"node_modules/hugo-bin": {
"version": "0.147.0",
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.147.0.tgz",
"integrity": "sha512-8ZO/uEVbYUQzTaPGmB0Www53GeKq6A2oyQs1+0wyV9BR5jWQt7HPpl5U4sCioRTsTF73UQVQMTzIPdg9Iaw4Vw==",
"version": "0.148.0",
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.148.0.tgz",
"integrity": "sha512-7+Nm86bXld2l4hMKtLLBRfYczkt9EtlsvUqvJNWEBsAd4lUuEmB4QvBH/MhyQqZ0+ROdl9aeuzpNXOlfzp28HA==",
"funding": [
{
"type": "github",
@@ -16177,9 +16178,9 @@
}
},
"node_modules/stylelint": {
"version": "16.24.0",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.24.0.tgz",
"integrity": "sha512-7ksgz3zJaSbTUGr/ujMXvLVKdDhLbGl3R/3arNudH7z88+XZZGNLMTepsY28WlnvEFcuOmUe7fg40Q3lfhOfSQ==",
"version": "16.25.0",
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.25.0.tgz",
"integrity": "sha512-Li0avYWV4nfv1zPbdnxLYBGq4z8DVZxbRgx4Kn6V+Uftz1rMoF1qiEI3oL4kgWqyYgCgs7gT5maHNZ82Gk03vQ==",
"dev": true,
"funding": [
{
@@ -16197,13 +16198,13 @@
"@csstools/css-tokenizer": "^3.0.4",
"@csstools/media-query-list-parser": "^4.0.3",
"@csstools/selector-specificity": "^5.0.0",
"@dual-bundle/import-meta-resolve": "^4.1.0",
"@dual-bundle/import-meta-resolve": "^4.2.1",
"balanced-match": "^2.0.0",
"colord": "^2.9.3",
"cosmiconfig": "^9.0.0",
"css-functions-list": "^3.2.3",
"css-tree": "^3.1.0",
"debug": "^4.4.1",
"debug": "^4.4.3",
"fast-glob": "^3.3.3",
"fastest-levenshtein": "^1.0.16",
"file-entry-cache": "^10.1.4",

View File

@@ -75,11 +75,11 @@
"autoprefixer": "^10.4.21",
"cssnano": "^7.1.1",
"cssnano-preset-advanced": "^7.0.9",
"hugo-bin": "0.147.0",
"hugo-bin": "0.148.0",
"purgecss-whitelister": "^2.4.0"
},
"devDependencies": {
"@commitlint/cli": "^20.0.0",
"@commitlint/cli": "^20.1.0",
"@commitlint/config-conventional": "^20.0.0",
"@gethinode/netlify-plugin-dartsass": "^0.3.0",
"@semantic-release/exec": "^7.1.0",
@@ -98,7 +98,7 @@
"rimraf": "^6.0.1",
"semantic-release": "^24.2.9",
"shx": "^0.4.0",
"stylelint": "^16.24.0",
"stylelint": "^16.25.0",
"stylelint-config-standard-scss": "^16.0.0"
},
"optionalDependencies": {