mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 01:54:23 +00:00
Compare commits
133 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
593ab2c918 | ||
![]() |
1f33976fe2 | ||
![]() |
9234d3c86a | ||
![]() |
de716b0162 | ||
![]() |
7c176956b0 | ||
![]() |
7258d0b5a9 | ||
![]() |
fe04de37a7 | ||
![]() |
d3ca7075bf | ||
![]() |
68215d5f94 | ||
![]() |
dc57fa5217 | ||
![]() |
8299b125fc | ||
![]() |
6a51cb9681 | ||
![]() |
27bbf7ddf5 | ||
![]() |
89fea6d15f | ||
![]() |
af762c840c | ||
![]() |
4b3b0e87bb | ||
![]() |
6bad35eec8 | ||
![]() |
46e745d1e7 | ||
![]() |
6cef5651d2 | ||
![]() |
c91604d34a | ||
![]() |
842725fd1c | ||
![]() |
5cad7cb0f9 | ||
![]() |
057dd63957 | ||
![]() |
f002cf06e4 | ||
![]() |
9d742f9165 | ||
![]() |
68c2cac3e0 | ||
![]() |
1c0ed71df9 | ||
![]() |
1e8791fdf0 | ||
![]() |
8cfac32280 | ||
![]() |
6e7a1dcdb9 | ||
![]() |
19cda9a986 | ||
![]() |
9ee9ebc960 | ||
![]() |
6f7903a2f2 | ||
![]() |
82d12d693c | ||
![]() |
3ed64f59f1 | ||
![]() |
df8ea923c5 | ||
![]() |
60872ea541 | ||
![]() |
52715cef21 | ||
![]() |
91f79e57ab | ||
![]() |
fdd878241b | ||
![]() |
f32bd92efa | ||
![]() |
c31dca464a | ||
![]() |
cb02c25ac4 | ||
![]() |
39ef3c5372 | ||
![]() |
546003c9d4 | ||
![]() |
6b4a1334bb | ||
![]() |
90ee71a536 | ||
![]() |
0c6b2929dc | ||
![]() |
2cb60efc38 | ||
![]() |
26f1bf3c7f | ||
![]() |
ec8176c1e3 | ||
![]() |
20b1cfb59e | ||
![]() |
09a6125834 | ||
![]() |
f30b30e48e | ||
![]() |
a0b89fd1a3 | ||
![]() |
dccedfe42d | ||
![]() |
d3ee13584a | ||
![]() |
03f4541b8a | ||
![]() |
9b0f91a378 | ||
![]() |
d9487b77db | ||
![]() |
f543c012bd | ||
![]() |
c068f7f4e6 | ||
![]() |
0dfd5d6a2f | ||
![]() |
0a6dbccb12 | ||
![]() |
c012eb5358 | ||
![]() |
bb2f1b63cf | ||
![]() |
d7facc353d | ||
![]() |
4dcae71516 | ||
![]() |
bac2bed6ad | ||
![]() |
56275d04dc | ||
![]() |
f32a958cf9 | ||
![]() |
e00e04b40b | ||
![]() |
4970c604d9 | ||
![]() |
a44e5dcafc | ||
![]() |
8493154844 | ||
![]() |
8a8a644ccf | ||
![]() |
d390d2eb4e | ||
![]() |
2e3bca1a34 | ||
![]() |
9a00e6c4c1 | ||
![]() |
3dcbe0b62c | ||
![]() |
bdf9d84a72 | ||
![]() |
7386cf1fb9 | ||
![]() |
2625222554 | ||
![]() |
74eeec9030 | ||
![]() |
a57e0da164 | ||
![]() |
6ab01755f2 | ||
![]() |
22cb71ca9b | ||
![]() |
62897f685f | ||
![]() |
4f8fdc4f03 | ||
![]() |
925a3ff33e | ||
![]() |
cf16cb9824 | ||
![]() |
5d9383858f | ||
![]() |
3332b437dd | ||
![]() |
c5510707b1 | ||
![]() |
498f208382 | ||
![]() |
86962eb8a2 | ||
![]() |
f4319180e0 | ||
![]() |
9607aef8ef | ||
![]() |
2c2f150faa | ||
![]() |
6087630643 | ||
![]() |
26235a1e7e | ||
![]() |
408799c3e2 | ||
![]() |
7b4a46121c | ||
![]() |
7af4c37c88 | ||
![]() |
9cc7174030 | ||
![]() |
f8de99173f | ||
![]() |
68f7b466fb | ||
![]() |
3a9a57cc5d | ||
![]() |
f3c264ead2 | ||
![]() |
1dd2971893 | ||
![]() |
7ac6b89ece | ||
![]() |
458e8fb605 | ||
![]() |
b268c1bad0 | ||
![]() |
d414c111f4 | ||
![]() |
62f7ca0c79 | ||
![]() |
6ebd03b4db | ||
![]() |
a3e5b7cbc4 | ||
![]() |
7335014a55 | ||
![]() |
f43dc337d1 | ||
![]() |
50de255e59 | ||
![]() |
3166ce9bb3 | ||
![]() |
d8c331e35d | ||
![]() |
cef686243a | ||
![]() |
c4bdbb242c | ||
![]() |
cb70afd5f0 | ||
![]() |
fbf758cced | ||
![]() |
abd69af2f2 | ||
![]() |
1190a96694 | ||
![]() |
d310648950 | ||
![]() |
8c7fea7670 | ||
![]() |
9e5d786ca3 | ||
![]() |
2bfb9d6991 | ||
![]() |
294f1ae91d |
8
.github/codeql/codeql-config.yml
vendored
Normal file
8
.github/codeql/codeql-config.yml
vendored
Normal 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
102
.github/workflows/codeql.yml
vendored
Normal 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@v5
|
||||
|
||||
# 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}}"
|
10
.github/workflows/lint-build.yml
vendored
10
.github/workflows/lint-build.yml
vendored
@@ -24,10 +24,10 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: lts/*
|
||||
cache: 'npm'
|
||||
@@ -53,15 +53,15 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version: ">1.0.0"
|
||||
|
||||
- name: Set up Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'npm'
|
||||
|
4
.github/workflows/mod-update.yml
vendored
4
.github/workflows/mod-update.yml
vendored
@@ -14,10 +14,10 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: lts/*
|
||||
cache: 'npm'
|
||||
|
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
@@ -23,12 +23,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: "lts/*"
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
{{- if site.Params.main.enableDarkMode -}}
|
||||
{{- if (or site.Params.main.enableDarkMode site.Params.main.colorMode.enabled) -}}
|
||||
|
||||
/*!
|
||||
* Color mode toggler for Bootstrap's docs (https://getbootstrap.com/)
|
||||
@@ -43,9 +43,7 @@
|
||||
document.documentElement.setAttribute('data-bs-theme', theme)
|
||||
}
|
||||
|
||||
document.querySelectorAll('.navbar-mode-selector').forEach(chk => {
|
||||
chk.checked = (document.documentElement.getAttribute('data-bs-theme') === 'light')
|
||||
})
|
||||
updateSelectors()
|
||||
}
|
||||
|
||||
// alternates the currently active theme
|
||||
@@ -54,6 +52,12 @@
|
||||
setTheme(target)
|
||||
}
|
||||
|
||||
function updateSelectors() {
|
||||
document.querySelectorAll('.navbar-mode-selector').forEach(chk => {
|
||||
chk.checked = (document.documentElement.getAttribute('data-bs-theme') === 'light')
|
||||
})
|
||||
}
|
||||
|
||||
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
|
||||
if (storedTheme !== 'light' || storedTheme !== 'dark') {
|
||||
setTheme(getPreferredTheme())
|
||||
@@ -69,7 +73,12 @@
|
||||
})
|
||||
})
|
||||
|
||||
// initialize theme directly when script is invoked
|
||||
window.addEventListener('load', () => {
|
||||
// update the selectors when all elements are ready
|
||||
updateSelectors()
|
||||
})
|
||||
|
||||
// initialize theme as soon as possible to reduce screen flickering
|
||||
setTheme(getTheme())
|
||||
})()
|
||||
|
||||
|
6
assets/js/modal.js
Normal file
6
assets/js/modal.js
Normal file
@@ -0,0 +1,6 @@
|
||||
document.addEventListener('hide.bs.modal', function (event) {
|
||||
// Remove the focus from the active element
|
||||
if (document.activeElement) {
|
||||
document.activeElement.blur()
|
||||
}
|
||||
})
|
13
assets/js/toc.js
Normal file
13
assets/js/toc.js
Normal 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'
|
||||
})
|
||||
}
|
@@ -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";
|
||||
|
@@ -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";
|
||||
|
@@ -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
|
||||
//
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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};
|
||||
}
|
||||
|
@@ -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%;
|
||||
|
@@ -1,3 +1,7 @@
|
||||
.carousel-inner {
|
||||
border-radius: #{$theme-border-radius};
|
||||
}
|
||||
|
||||
.gradient {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
22
assets/scss/components/_docs.scss
Normal file
22
assets/scss/components/_docs.scss
Normal 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};
|
||||
}
|
@@ -27,3 +27,7 @@
|
||||
width: 100vw;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.figure-caption {
|
||||
margin-left: #{$theme-border-radius};
|
||||
}
|
||||
|
3
assets/scss/components/_kbd.scss
Normal file
3
assets/scss/components/_kbd.scss
Normal file
@@ -0,0 +1,3 @@
|
||||
kbd {
|
||||
border-radius: #{$theme-border-radius};
|
||||
}
|
@@ -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 {
|
||||
|
@@ -7,7 +7,7 @@
|
||||
}
|
||||
|
||||
.mode-switch {
|
||||
--#{$prefix}mode-switch-width: 50px;
|
||||
--#{$prefix}mode-switch-width: 3em;
|
||||
}
|
||||
|
||||
.mode-switch .label {
|
||||
@@ -64,6 +64,18 @@
|
||||
transform: scale(0.8);
|
||||
}
|
||||
|
||||
.mode-toggle > input {
|
||||
z-index: 1;
|
||||
cursor: pointer;
|
||||
height: 25px;
|
||||
width: 25px;
|
||||
}
|
||||
|
||||
.mode-toggle > label {
|
||||
z-index: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
// Source: https://jsfiddle.net/njhgr40m/
|
||||
|
||||
@if $enable-dark-mode {
|
||||
@@ -126,12 +138,64 @@
|
||||
|
||||
.navbar-expanded {
|
||||
box-shadow: $box-shadow-sm;
|
||||
min-height: 100vh;
|
||||
align-items: start;
|
||||
}
|
||||
|
||||
.navbar-expanded .navbar-collapse {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
@each $h, $size in $font-sizes {
|
||||
.navbar-fs-#{$h} {
|
||||
font-size: #{$size};
|
||||
}
|
||||
}
|
||||
|
||||
@each $breakpoint in map-keys($grid-breakpoints) {
|
||||
$next: breakpoint-next($breakpoint, $grid-breakpoints);
|
||||
$infix: breakpoint-infix($next, $grid-breakpoints);
|
||||
|
||||
@if $infix != '' {
|
||||
@include media-breakpoint-up($next) {
|
||||
.navbar#{$infix}-fs {
|
||||
font-size: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-icon {
|
||||
padding-right: var(--bs-navbar-nav-link-padding-x);
|
||||
padding-left: var(--bs-navbar-nav-link-padding-x);
|
||||
}
|
||||
|
||||
.nav-item .vr {
|
||||
color: var(--bs-navbar-color);
|
||||
}
|
||||
|
||||
.navbar .nav-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.navbar-collapse .dropdown {
|
||||
display: inline;
|
||||
align-items: normal;
|
||||
}
|
||||
|
||||
.navbar-expanded .btn {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.navbar .btn {
|
||||
border-radius: #{$theme-border-radius};
|
||||
}
|
||||
|
||||
.navbar-expanded .search-input {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
/* Remove border from toggler */
|
||||
.navbar-toggler {
|
||||
border: 0 if($enable-important-utilities, !important, null);
|
||||
@@ -319,3 +383,7 @@
|
||||
position: absolute;
|
||||
z-index: $zindex-fixed;
|
||||
}
|
||||
|
||||
.form-control.is-search {
|
||||
border: 1px solid var(--bs-border-color) !important;
|
||||
}
|
||||
|
@@ -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;
|
||||
@@ -126,4 +134,6 @@
|
||||
|
||||
.dropdown-toggle {
|
||||
outline: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
}
|
||||
|
4
assets/scss/components/_toast.scss
Normal file
4
assets/scss/components/_toast.scss
Normal file
@@ -0,0 +1,4 @@
|
||||
.toast {
|
||||
border-radius: #{$theme-border-radius};
|
||||
overflow: hidden;
|
||||
}
|
@@ -3,11 +3,11 @@
|
||||
//
|
||||
// scss-docs-start toc
|
||||
.toc-sidebar {
|
||||
grid-area: toc;
|
||||
right: 0;
|
||||
z-index: 2;
|
||||
overflow-y: auto;
|
||||
top: 5rem;
|
||||
max-height: calc(100vh - var(--navbar-offset));
|
||||
}
|
||||
|
||||
// scss-docs-end toc
|
||||
@@ -74,6 +74,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
.btn-link.toc-item {
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
#btnTOCShowMore {
|
||||
padding-top: 0.875rem;
|
||||
}
|
||||
|
||||
a.toc-item {
|
||||
display: block;
|
||||
}
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
@@ -32,6 +32,8 @@ blueprint:
|
||||
width:
|
||||
justify:
|
||||
link-type:
|
||||
theme:
|
||||
cover:
|
||||
links:
|
||||
-
|
||||
title:
|
||||
|
@@ -47,3 +47,5 @@ blueprint:
|
||||
class:
|
||||
width:
|
||||
justify:
|
||||
theme:
|
||||
cover:
|
||||
|
@@ -88,7 +88,7 @@
|
||||
)}}
|
||||
|
||||
{{ if $args.scroll }}
|
||||
{{ $partial := "assets/stack.html" }}
|
||||
{{ $partial = "assets/stack.html" }}
|
||||
{{ $params = merge $params (dict
|
||||
"header-style" "none"
|
||||
"body-style" "title"
|
||||
|
@@ -34,3 +34,5 @@ blueprint:
|
||||
width:
|
||||
justify:
|
||||
align:
|
||||
theme:
|
||||
cover:
|
||||
|
@@ -41,3 +41,5 @@ blueprint:
|
||||
padding:
|
||||
order:
|
||||
width:
|
||||
theme:
|
||||
cover:
|
||||
|
@@ -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);
|
||||
|
@@ -26,3 +26,5 @@ blueprint:
|
||||
items:
|
||||
- title:
|
||||
description:
|
||||
theme:
|
||||
cover:
|
||||
|
@@ -35,6 +35,7 @@ blueprint:
|
||||
align:
|
||||
order:
|
||||
overlay-mode:
|
||||
theme:
|
||||
cover:
|
||||
orientation:
|
||||
width:
|
||||
|
@@ -33,3 +33,5 @@ blueprint:
|
||||
class:
|
||||
width:
|
||||
justify:
|
||||
theme:
|
||||
cover:
|
||||
|
@@ -33,16 +33,17 @@
|
||||
{{ $toc = $toc | append (dict "href" "panel-0-1" "level" 2 "title" $element.title) }}
|
||||
|
||||
{{ $hero := partial "assets/hero.html" (dict
|
||||
"page" page
|
||||
"heading" (dict "title" $element.title "content" $element.content "width" 8 "size" 6)
|
||||
"background" $args.background
|
||||
"illustration" (dict "ratio" $args.ratio "icon" $element.icon "image" $element.image "mode" $element.mode)
|
||||
"order" $args.order
|
||||
"link-type" $args.linkType
|
||||
"links" $args.links
|
||||
"orientation" "horizontal"
|
||||
"align" "start"
|
||||
"width" 12
|
||||
"page" page
|
||||
"heading" (dict "content" $element.content "width" 8)
|
||||
"background" $args.background
|
||||
"illustration" (dict "ratio" $args.ratio "icon" $element.icon "image" $element.image "mode" $element.mode)
|
||||
"order" $args.order
|
||||
"link-type" $args.linkType
|
||||
"links" $args.links
|
||||
"orientation" "horizontal"
|
||||
"align" "start"
|
||||
"width" 12
|
||||
"content-style" "fs-6"
|
||||
)
|
||||
}}
|
||||
|
||||
|
@@ -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};
|
||||
}
|
||||
|
@@ -23,4 +23,6 @@ blueprint:
|
||||
subtle:
|
||||
width:
|
||||
justify:
|
||||
data:
|
||||
data:
|
||||
theme:
|
||||
cover:
|
||||
|
@@ -31,6 +31,7 @@ blueprint:
|
||||
media-id:
|
||||
autoplay:
|
||||
query-args:
|
||||
color:
|
||||
cols:
|
||||
messages:
|
||||
- title:
|
||||
@@ -41,6 +42,8 @@ blueprint:
|
||||
border:
|
||||
width:
|
||||
justify:
|
||||
theme:
|
||||
cover:
|
||||
|
||||
_structures:
|
||||
messages:
|
||||
|
@@ -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,10 +118,11 @@
|
||||
"query-args" .queryArgs
|
||||
"border" $.border
|
||||
"padding" $padding
|
||||
"color" .color
|
||||
) -}}
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="mt-{{ $padding.y }}">
|
||||
<div class="mt-{{ $padding.y }} w-100">
|
||||
{{- partial "inline/messages.html" (dict
|
||||
"list" $list
|
||||
"cols" $args.cols
|
||||
@@ -142,6 +144,7 @@
|
||||
"query-args" .queryArgs
|
||||
"border" $.border
|
||||
"padding" $padding
|
||||
"color" .color
|
||||
) -}}
|
||||
{{ end }}
|
||||
</div>
|
||||
|
@@ -2,6 +2,7 @@
|
||||
--bs-video-border-color: var(--bs-primary);
|
||||
--bs-video-border-width: 1rem;
|
||||
|
||||
border-radius: $theme-border-radius;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
@@ -176,7 +176,7 @@ home = ["HTML", "RSS", "REDIR", "netlify", "server"]
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-csp"
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-flexsearch/v2"
|
||||
path = "github.com/gethinode/mod-flexsearch/v3"
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-fontawesome/v2"
|
||||
[[module.imports]]
|
||||
@@ -188,7 +188,7 @@ home = ["HTML", "RSS", "REDIR", "netlify", "server"]
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-lottie"
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-mermaid/v2"
|
||||
path = "github.com/gethinode/mod-mermaid/v3"
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-simple-datatables/v2"
|
||||
[[module.imports]]
|
||||
|
@@ -2,9 +2,7 @@
|
||||
[main]
|
||||
separator = "-"
|
||||
description = "Hinode is a clean documentation and blog theme for your Hugo site based on Bootstrap 5."
|
||||
enableDarkMode = true
|
||||
enableLanguageSelectionStorage = false
|
||||
modes = ["light", "dark"]
|
||||
canonifyAssetsURLs = false
|
||||
endorse = true
|
||||
footerBelowFold = false
|
||||
@@ -22,6 +20,12 @@
|
||||
tab = false
|
||||
[main.build]
|
||||
transpiler = "libsass"
|
||||
[main.colorMode]
|
||||
enabled = true
|
||||
modes = ["light", "dark"]
|
||||
toggle = false
|
||||
iconLight = "fas sun"
|
||||
iconDark = "fas moon"
|
||||
# toml-docs-end main
|
||||
|
||||
# toml-docs-start images
|
||||
@@ -91,15 +95,22 @@
|
||||
overlayMode = "dark"
|
||||
horizontal = false
|
||||
offset = "5.5rem"
|
||||
search = true
|
||||
searchModal = false
|
||||
breadcrumb = true
|
||||
toc = true
|
||||
sidebar = true
|
||||
size = "md"
|
||||
startLevel = 2
|
||||
endLevel = 3
|
||||
maxNumHeadings = 9
|
||||
[navigation.padding]
|
||||
x = 4
|
||||
y = 4
|
||||
[navigation.language]
|
||||
icon = "fas globe"
|
||||
[navigation.search]
|
||||
enabled = true
|
||||
modal = true
|
||||
icon = "fas magnifying-glass"
|
||||
# toml-docs-end navigation
|
||||
|
||||
# toml-docs-start messages
|
||||
|
@@ -27,9 +27,10 @@ const purgecss = purgeCSSPlugin({
|
||||
'./assets/scss/theme/fonts.scss',
|
||||
'./assets/scss/theme/theme.scss',
|
||||
'./_vendor/github.com/gethinode/mod-cookieyes/v2/assets/scss/cookieyes.scss',
|
||||
'./_vendor/github.com/gethinode/mod-flexsearch/v2/assets/scss/modules/flexsearch/flexsearch.scss',
|
||||
'./_vendor/github.com/gethinode/mod-flexsearch/v3/assets/scss/modules/flexsearch/flexsearch.scss',
|
||||
'./_vendor/github.com/gethinode/mod-katex/dist/katex.scss',
|
||||
'./_vendor/github.com/gethinode/mod-leaflet/dist/leaflet.scss',
|
||||
'./_vendor/github.com/gethinode/mod-mermaid/v3/assets/scss/mermaid.scss',
|
||||
'./_vendor/github.com/gethinode/mod-simple-datatables/v2/dist/simple-datatables.scss',
|
||||
'./_vendor/github.com/twbs/bootstrap/scss/_carousel.scss',
|
||||
'./_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss',
|
||||
|
8
content/_modals/_index.md
Normal file
8
content/_modals/_index.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: Modal elements
|
||||
cascade:
|
||||
- build:
|
||||
list: local
|
||||
publishResources: false
|
||||
render: never
|
||||
---
|
@@ -28,3 +28,5 @@ arguments:
|
||||
theme:
|
||||
hook:
|
||||
default: assets/hero-image.html
|
||||
heading-style:
|
||||
content-style:
|
||||
|
@@ -9,7 +9,9 @@ arguments:
|
||||
comment: Context of the current page.
|
||||
group: partial
|
||||
menu:
|
||||
type: '*navigation.MenuEntry'
|
||||
type:
|
||||
- '*navigation.MenuEntry'
|
||||
- 'map[string]interface {}'
|
||||
optional: false
|
||||
comment: Menu data to use for the navbar item.
|
||||
parent:
|
||||
@@ -37,3 +39,24 @@ arguments:
|
||||
optional: true
|
||||
comment: >-
|
||||
Renders the navigation item as plain item, ignoring any children.
|
||||
breakpoint:
|
||||
release: v1.2.0
|
||||
modal:
|
||||
type: string
|
||||
optional: true
|
||||
release: v1.2.0
|
||||
comment: >-
|
||||
If set, toggles a modal control for the provided target.
|
||||
id:
|
||||
type: string
|
||||
optional: true
|
||||
release: v1.2.0
|
||||
comment: >-
|
||||
If set, adds an id attribute to the menu item.
|
||||
fs:
|
||||
type: int
|
||||
optional: true
|
||||
default: 6
|
||||
release: v1.2.0
|
||||
comment: >-
|
||||
Sets the font size of the navigation items when the navbar is collapsed.
|
||||
|
@@ -1,6 +1,6 @@
|
||||
comment: >-
|
||||
Includes a reference to a local or external JavaScript file. Hinode uses the
|
||||
template defined in `layouts/partials/templates/script.html` to generate the
|
||||
template defined in `layouts/_partials/templates/script.html` to generate the
|
||||
link to a (bundled) JavaScript file. It includes context such as the state,
|
||||
category, and integrity. For example, you can adapt this template to implement
|
||||
cookie consent management.
|
||||
@@ -44,3 +44,10 @@ arguments:
|
||||
optional: true
|
||||
comment: >-
|
||||
Cryptographic hash of the script to enable Subresource Integrity (SRI).
|
||||
script-type:
|
||||
type: string
|
||||
optional: true
|
||||
release: v1.7.0
|
||||
comment: >-
|
||||
Type of the attribute of the script. Set the value to `module` to import
|
||||
the script as a JavaScript module.
|
||||
|
@@ -115,7 +115,7 @@ home = ["HTML", "RSS", "REDIR", "netlify", "server"]
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-csp"
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-flexsearch/v2"
|
||||
path = "github.com/gethinode/mod-flexsearch/v3"
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-fontawesome/v2"
|
||||
[[module.imports]]
|
||||
|
@@ -1,9 +1,7 @@
|
||||
[main]
|
||||
separator = "-"
|
||||
description = "Hinode is a clean documentation and blog theme for your Hugo site based on Bootstrap 5."
|
||||
enableDarkMode = true
|
||||
enableLanguageSelectionStorage = true
|
||||
modes = ["light", "dark"]
|
||||
canonifyAssetsURLs = false
|
||||
footerBelowFold = false
|
||||
loading = "lazy"
|
||||
@@ -21,6 +19,12 @@
|
||||
[main.build]
|
||||
transpiler = "dartsass"
|
||||
silenceDeprecations = true
|
||||
[main.colorMode]
|
||||
enabled = true
|
||||
modes = ["light", "dark"]
|
||||
toggle = true
|
||||
iconLight = "fas sun"
|
||||
iconDark = "fas moon"
|
||||
|
||||
[debugging]
|
||||
showJS = false
|
||||
@@ -45,15 +49,23 @@
|
||||
horizontal = false
|
||||
offset = "5.5rem"
|
||||
offsetXS = "5.5rem"
|
||||
search = true
|
||||
searchModal = false
|
||||
breadcrumb = true
|
||||
toc = true
|
||||
sidebar = true
|
||||
size = "md"
|
||||
fontsizeCollapsed = 6
|
||||
startLevel = 2
|
||||
endLevel = 3
|
||||
maxNumHeadings = 9
|
||||
[navigation.language]
|
||||
icon = "fas globe"
|
||||
[navigation.padding]
|
||||
x = 4
|
||||
y = 4
|
||||
[navigation.search]
|
||||
enabled = true
|
||||
modal = false
|
||||
icon = "fas magnifying-glass"
|
||||
|
||||
[messages]
|
||||
placement = "bottom-right"
|
||||
@@ -129,7 +141,7 @@
|
||||
# themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" # external path
|
||||
themeFontPath = "/fonts" # local path
|
||||
themeFontPreload = "/fonts/inter-v12-latin-regular.woff2"
|
||||
purge = false
|
||||
purge = true
|
||||
# toml-docs-end theme-colors
|
||||
|
||||
[schema]
|
||||
@@ -169,3 +181,6 @@
|
||||
|
||||
[modules.cookieyes]
|
||||
url = "https://cdn-cookieyes.com/client_data/a54b5553f349dd13bd225f8e/script.js"
|
||||
|
||||
[modules.mermaid]
|
||||
elk = true
|
||||
|
@@ -27,9 +27,10 @@ const purgecss = purgeCSSPlugin({
|
||||
'./assets/scss/theme/fonts.scss',
|
||||
'./assets/scss/theme/theme.scss',
|
||||
'./_vendor/github.com/gethinode/mod-cookieyes/v2/assets/scss/cookieyes.scss',
|
||||
'./_vendor/github.com/gethinode/mod-flexsearch/v2/assets/scss/modules/flexsearch/flexsearch.scss',
|
||||
'./_vendor/github.com/gethinode/mod-flexsearch/v3/assets/scss/modules/flexsearch/flexsearch.scss',
|
||||
'./_vendor/github.com/gethinode/mod-katex/dist/katex.scss',
|
||||
'./_vendor/github.com/gethinode/mod-leaflet/dist/leaflet.scss',
|
||||
'./_vendor/github.com/gethinode/mod-mermaid/v3/assets/scss/mermaid.scss',
|
||||
'./_vendor/github.com/gethinode/mod-simple-datatables/v2/dist/simple-datatables.scss',
|
||||
'./_vendor/github.com/twbs/bootstrap/scss/_carousel.scss',
|
||||
'./_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss',
|
||||
|
@@ -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
|
||||
|
@@ -4,7 +4,7 @@ title: Components
|
||||
date: 2023-09-23
|
||||
description: Use shortcodes to add predefined components powered by external libraries.
|
||||
tags: ["bootstrap", "shortcode"]
|
||||
keywords: ["featured"]
|
||||
keywords: featured
|
||||
thumbnail:
|
||||
url: img/puzzle.jpg
|
||||
author: Ryoji Iwata
|
||||
@@ -94,6 +94,22 @@ As an example, the following shortcode displays an interactive map of the city o
|
||||
|
||||
## Mermaid Diagrams
|
||||
|
||||
### Shortcode (with controls and frontmatter)
|
||||
|
||||
<!-- markdownlint-disable MD003 MD022 -->
|
||||
{{< mermaid controls=true >}}
|
||||
---
|
||||
config:
|
||||
layout: elk.stress
|
||||
look: handDrawn
|
||||
theme: forest
|
||||
---
|
||||
flowchart TD
|
||||
A --> B
|
||||
A --> C
|
||||
{{< /mermaid >}}
|
||||
<!-- markdownlint-enable MD003 MD022 -->
|
||||
|
||||
### Flowchart
|
||||
|
||||
```mermaid
|
||||
|
@@ -4,7 +4,7 @@ title: Content blocks
|
||||
date: 2025-06-07
|
||||
description: Quickly edit your webpages using reusable content blocks.
|
||||
tags: ["bookshop", "blocks"]
|
||||
keywords: ["featured"]
|
||||
keywords: featured
|
||||
thumbnail:
|
||||
url: img/pj-accetturo-XpD6Dkui-yg-unsplash.jpg
|
||||
author: Pj Accetturo
|
||||
|
@@ -2,14 +2,63 @@
|
||||
author: Mark Dumay
|
||||
title: Bienvenue sur Hinode!
|
||||
description: Un thème de blog et de documentation pour Hugo basé sur Bootstrap 5.
|
||||
thumbnail:
|
||||
url: /img/sunrise.jpg
|
||||
author: Harris Vo
|
||||
authorURL: https://unsplash.com/@hoanvokim
|
||||
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
||||
originName: Unsplash
|
||||
actions:
|
||||
about:
|
||||
url: "a-propos"
|
||||
title: "À propos"
|
||||
content_blocks:
|
||||
- _bookshop_name: hero
|
||||
heading:
|
||||
title: Bienvenue sur Hinode!
|
||||
content: |-
|
||||
Un thème de blog et de documentation pour Hugo basé sur Bootstrap 5.
|
||||
width: 6
|
||||
background:
|
||||
color: primary
|
||||
subtle: true
|
||||
illustration:
|
||||
image: /img/sunrise.jpg
|
||||
ratio: 16x9
|
||||
width: 8
|
||||
links:
|
||||
- title: À propos
|
||||
url: "/fr/a-propos/"
|
||||
icon: fas chevron-right
|
||||
orientation: horizontal
|
||||
justify: center
|
||||
|
||||
- _bookshop_name: articles
|
||||
heading:
|
||||
title: Articles de blog
|
||||
align: start
|
||||
input:
|
||||
section: blog
|
||||
reverse: true
|
||||
sort: date
|
||||
keywords: featured
|
||||
hide-empty: false
|
||||
header-style: none
|
||||
more:
|
||||
title: Plus d'articles
|
||||
padding: 0
|
||||
limit: 3
|
||||
class: border-0 card-zoom card-body-margin
|
||||
|
||||
- _bookshop_name: articles
|
||||
heading:
|
||||
title: Projets
|
||||
align: start
|
||||
background:
|
||||
background: body-tertiary
|
||||
hide-empty: false
|
||||
input:
|
||||
section: projects
|
||||
reverse: false
|
||||
sort: date
|
||||
more:
|
||||
title: Plus d'articles
|
||||
cols: 1
|
||||
padding: 4
|
||||
limit: 2
|
||||
icon-style: fa-5x
|
||||
header-style: none
|
||||
footer-style: tags
|
||||
orientation: horizontal-sm
|
||||
class: border-1 card-emphasize
|
||||
---
|
||||
|
@@ -5,6 +5,7 @@ slug: elements-bootstrap
|
||||
date: 2023-08-12
|
||||
description: Utilisez des shortcodes pour ajouter facilement des éléments Bootstrap courants.
|
||||
tags: ["bootstrap", "shortcode"]
|
||||
keywords: featured
|
||||
thumbnail:
|
||||
url: img/boots.jpg
|
||||
author: Nathan Dumlao
|
||||
|
@@ -5,6 +5,7 @@ slug: composents
|
||||
date: 2023-07-21
|
||||
description: Utilisez des shortcodes pour ajouter des composants prédéfinis alimentés par des bibliothèques externes.
|
||||
tags: ["bootstrap", "shortcode"]
|
||||
keywords: featured
|
||||
thumbnail:
|
||||
url: img/puzzle.jpg
|
||||
author: Ryoji Iwata
|
||||
|
@@ -4,6 +4,7 @@ title: Images locales et distantes
|
||||
date: 2024-05-19
|
||||
description: Inclure des images responsives provenant de sources locales et de certains fournisseurs de CDN d'images.
|
||||
tags: ["blog"]
|
||||
keywords: featured
|
||||
thumbnail:
|
||||
url: https://assets.imgix.net/examples/bluehat.jpg
|
||||
---
|
||||
|
@@ -2,14 +2,62 @@
|
||||
author: Mark Dumay
|
||||
title: Welkom bij Hinode!
|
||||
description: Een documentatie en blog thema voor Hugo gebaseerd op Bootstrap 5.
|
||||
thumbnail:
|
||||
url: /img/sunrise.jpg
|
||||
author: Harris Vo
|
||||
authorURL: https://unsplash.com/@hoanvokim
|
||||
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
||||
originName: Unsplash
|
||||
actions:
|
||||
about:
|
||||
url: "over-mij"
|
||||
title: "Over mij"
|
||||
content_blocks:
|
||||
- _bookshop_name: hero
|
||||
heading:
|
||||
title: Welkom bij Hinode!
|
||||
content: |-
|
||||
Een documentatie en blog thema voor Hugo gebaseerd op Bootstrap 5.
|
||||
width: 6
|
||||
background:
|
||||
color: primary
|
||||
subtle: true
|
||||
illustration:
|
||||
image: /img/sunrise.jpg
|
||||
ratio: 16x9
|
||||
width: 8
|
||||
links:
|
||||
- title: "Over mij"
|
||||
url: "/nl/over-mij/"
|
||||
icon: fas chevron-right
|
||||
orientation: horizontal
|
||||
justify: center
|
||||
|
||||
- _bookshop_name: articles
|
||||
heading:
|
||||
title: Blog
|
||||
align: start
|
||||
input:
|
||||
section: blog
|
||||
reverse: true
|
||||
sort: date
|
||||
hide-empty: false
|
||||
header-style: none
|
||||
more:
|
||||
title: Meer artikelen
|
||||
padding: 0
|
||||
limit: 3
|
||||
class: border-0 card-zoom card-body-margin
|
||||
|
||||
- _bookshop_name: articles
|
||||
heading:
|
||||
title: Projecten
|
||||
align: start
|
||||
background:
|
||||
background: body-tertiary
|
||||
hide-empty: false
|
||||
input:
|
||||
section: projects
|
||||
reverse: false
|
||||
sort: date
|
||||
more:
|
||||
title: Meer artikelen
|
||||
cols: 1
|
||||
padding: 4
|
||||
limit: 2
|
||||
icon-style: fa-5x
|
||||
header-style: none
|
||||
footer-style: tags
|
||||
orientation: horizontal-sm
|
||||
class: border-1 card-emphasize
|
||||
---
|
||||
|
@@ -95,25 +95,22 @@
|
||||
"background-container",
|
||||
"background-img-fluid",
|
||||
"badge",
|
||||
"ball",
|
||||
"bg-bg-body-tertiary",
|
||||
"bg-bg-primary-subtle",
|
||||
"bg-black",
|
||||
"bg-body",
|
||||
"bg-body-tertiary",
|
||||
"bg-danger",
|
||||
"bg-opacity-10",
|
||||
"bg-primary",
|
||||
"bg-primary-subtle",
|
||||
"bg-secondary-subtle",
|
||||
"bi",
|
||||
"bi-activity",
|
||||
"border",
|
||||
"border-0",
|
||||
"border-1",
|
||||
"border-bottom",
|
||||
"border-end",
|
||||
"border-none",
|
||||
"border-start",
|
||||
"border-top",
|
||||
"bottom-0",
|
||||
"bottom-bar",
|
||||
@@ -192,10 +189,15 @@
|
||||
"col-sm-6",
|
||||
"collapse",
|
||||
"collapsed",
|
||||
"command",
|
||||
"contact-img",
|
||||
"container",
|
||||
"container-fluid",
|
||||
"container-xxl",
|
||||
"control-btn",
|
||||
"control-btn-expand",
|
||||
"control-btn-zoom-in",
|
||||
"control-btn-zoom-out",
|
||||
"cta",
|
||||
"custom",
|
||||
"d-block",
|
||||
@@ -213,10 +215,16 @@
|
||||
"d-sm-block",
|
||||
"d-sm-none",
|
||||
"data-table",
|
||||
"diagram-container",
|
||||
"diagram-controls",
|
||||
"diagram-wrapper",
|
||||
"disabled",
|
||||
"display-1",
|
||||
"display-4",
|
||||
"display-6",
|
||||
"docs",
|
||||
"docs-controls",
|
||||
"docs-panel",
|
||||
"dropdown",
|
||||
"dropdown-divider-bg",
|
||||
"dropdown-item",
|
||||
@@ -243,7 +251,6 @@
|
||||
"fa-arrow-left",
|
||||
"fa-arrow-right",
|
||||
"fa-bootstrap",
|
||||
"fa-check",
|
||||
"fa-chevron-right",
|
||||
"fa-circle",
|
||||
"fa-circle-check",
|
||||
@@ -253,6 +260,7 @@
|
||||
"fa-divide",
|
||||
"fa-docker",
|
||||
"fa-ellipsis",
|
||||
"fa-expand",
|
||||
"fa-face-frown",
|
||||
"fa-facebook",
|
||||
"fa-fluid",
|
||||
@@ -267,10 +275,11 @@
|
||||
"fa-info",
|
||||
"fa-inverse",
|
||||
"fa-lg",
|
||||
"fa-li",
|
||||
"fa-link",
|
||||
"fa-linkedin",
|
||||
"fa-magnifying-glass",
|
||||
"fa-magnifying-glass-minus",
|
||||
"fa-magnifying-glass-plus",
|
||||
"fa-medium",
|
||||
"fa-moon",
|
||||
"fa-rocket",
|
||||
@@ -283,17 +292,20 @@
|
||||
"fa-stack-2x",
|
||||
"fa-sun",
|
||||
"fa-timeline",
|
||||
"fa-ul",
|
||||
"fa-up-right-from-square",
|
||||
"fa-whatsapp",
|
||||
"fa-wrapper",
|
||||
"fa-x-twitter",
|
||||
"fa-xl",
|
||||
"fa-xs",
|
||||
"fab",
|
||||
"fade",
|
||||
"faq",
|
||||
"fas",
|
||||
"figure-caption",
|
||||
"file",
|
||||
"file-controls",
|
||||
"file-panel",
|
||||
"fixed-top",
|
||||
"flex-column",
|
||||
"flex-fill",
|
||||
@@ -344,7 +356,6 @@
|
||||
"justify-content-between",
|
||||
"justify-content-center",
|
||||
"justify-content-end",
|
||||
"justify-content-md-end",
|
||||
"justify-content-md-start",
|
||||
"justify-content-start",
|
||||
"katex",
|
||||
@@ -372,9 +383,11 @@
|
||||
"me-1",
|
||||
"me-3",
|
||||
"me-auto",
|
||||
"me-md-3",
|
||||
"mermaid",
|
||||
"middle-bar",
|
||||
"mode-switch",
|
||||
"mode-item",
|
||||
"mode-toggle",
|
||||
"ms-1",
|
||||
"ms-3",
|
||||
"ms-auto",
|
||||
@@ -414,6 +427,8 @@
|
||||
"navbar-contrast",
|
||||
"navbar-expand-md",
|
||||
"navbar-fixed-top",
|
||||
"navbar-fs-6",
|
||||
"navbar-md-fs",
|
||||
"navbar-mode-selector",
|
||||
"navbar-nav",
|
||||
"navbar-nav-scroll",
|
||||
@@ -467,7 +482,6 @@
|
||||
"px-md-4",
|
||||
"px-xxl-0",
|
||||
"py-%!d(string=0)",
|
||||
"py-0",
|
||||
"py-1",
|
||||
"py-2",
|
||||
"py-3",
|
||||
@@ -533,7 +547,6 @@
|
||||
"text-decoration-none",
|
||||
"text-end",
|
||||
"text-info",
|
||||
"text-md-start",
|
||||
"text-muted",
|
||||
"text-nowrap",
|
||||
"text-primary",
|
||||
@@ -550,6 +563,7 @@
|
||||
"timeline-bg-primary-subtle",
|
||||
"timeline-connector-end",
|
||||
"timeline-connector-start",
|
||||
"timeline-container",
|
||||
"timeline-description-text-end",
|
||||
"timeline-description-text-start",
|
||||
"timeline-dot",
|
||||
@@ -590,7 +604,6 @@
|
||||
],
|
||||
"ids": [
|
||||
"abbr",
|
||||
"accelerate-your-data-products",
|
||||
"accordion",
|
||||
"accordion-0",
|
||||
"accordion-0-heading-0",
|
||||
@@ -600,17 +613,17 @@
|
||||
"accordion-0-item-1",
|
||||
"accordion-0-item-2",
|
||||
"accordéon",
|
||||
"ai",
|
||||
"alert",
|
||||
"alerte",
|
||||
"analytics",
|
||||
"animatie",
|
||||
"animation",
|
||||
"args",
|
||||
"arguments",
|
||||
"articles-de-blog",
|
||||
"background-type",
|
||||
"badge",
|
||||
"barre-de-navigation",
|
||||
"bienvenue-sur-hinode",
|
||||
"block-diagram",
|
||||
"blog",
|
||||
"body-docs-collapse-15",
|
||||
@@ -618,6 +631,8 @@
|
||||
"body-file-collapse-1",
|
||||
"bouton",
|
||||
"breadcrumb",
|
||||
"btnTOCShowLess",
|
||||
"btnTOCShowMore",
|
||||
"button",
|
||||
"button-group",
|
||||
"c4-diagram",
|
||||
@@ -640,17 +655,15 @@
|
||||
"content-blocks",
|
||||
"cookies-etc",
|
||||
"custom-activity",
|
||||
"data-quality",
|
||||
"data-tables",
|
||||
"docs",
|
||||
"documentation",
|
||||
"dropdown-nav-0",
|
||||
"dropdown-panel-071ec18d100b1b143a52290acbccb5d2",
|
||||
"dropdown-panel-3",
|
||||
"dropdown-panel-353faae960d8e5f264e975d330a6b22f",
|
||||
"dropdown-panel-6f7573c76bb16d93358060c54c56bb25",
|
||||
"dropdown-panel-78e144cc4646b9bdebe8f1d59a62159d",
|
||||
"dropdown-panel-fbf9d10f31358572a82e263a6abb2d8c",
|
||||
"dropdown-panel-0e0d7c1fd6d33e3180b75a3f126f5fea",
|
||||
"dropdown-panel-3afb6d66b09dfeb4621548fc9812ce10",
|
||||
"dropdown-panel-46f581d5bacea14d68114161d503d5c1",
|
||||
"dropdown-panel-e37d2a3ed3fbb2ae9956fe2816627070",
|
||||
"dropdown-panel-effd2deef2e0cded9c2d41c8aaec9646",
|
||||
"elements-type",
|
||||
"entity-relationship-diagram",
|
||||
"example",
|
||||
@@ -668,11 +681,11 @@
|
||||
"fab-medium",
|
||||
"fab-whatsapp",
|
||||
"fab-x-twitter",
|
||||
"faq-5113bdcf965ec7494b27d4fb87b2d30c",
|
||||
"faq-5113bdcf965ec7494b27d4fb87b2d30c-heading-faq-5113bdcf965ec7494b27d4fb87b2d30c",
|
||||
"faq-5113bdcf965ec7494b27d4fb87b2d30c-item-0",
|
||||
"faq-5113bdcf965ec7494b27d4fb87b2d30c-item-1",
|
||||
"faq-5113bdcf965ec7494b27d4fb87b2d30c-item-2",
|
||||
"faq-963137b2b2e4941741e0ab33cf4fd1fe",
|
||||
"faq-963137b2b2e4941741e0ab33cf4fd1fe-heading-faq-963137b2b2e4941741e0ab33cf4fd1fe",
|
||||
"faq-963137b2b2e4941741e0ab33cf4fd1fe-item-0",
|
||||
"faq-963137b2b2e4941741e0ab33cf4fd1fe-item-1",
|
||||
"faq-963137b2b2e4941741e0ab33cf4fd1fe-item-2",
|
||||
"fas-1",
|
||||
"fas-2",
|
||||
"fas-3",
|
||||
@@ -683,7 +696,6 @@
|
||||
"fas-angles-right",
|
||||
"fas-arrow-left",
|
||||
"fas-arrow-right",
|
||||
"fas-check",
|
||||
"fas-chevron-right",
|
||||
"fas-circle",
|
||||
"fas-circle-check",
|
||||
@@ -692,6 +704,7 @@
|
||||
"fas-code",
|
||||
"fas-divide",
|
||||
"fas-ellipsis",
|
||||
"fas-expand",
|
||||
"fas-globe",
|
||||
"fas-grip",
|
||||
"fas-h",
|
||||
@@ -700,6 +713,8 @@
|
||||
"fas-info",
|
||||
"fas-link",
|
||||
"fas-magnifying-glass",
|
||||
"fas-magnifying-glass-minus",
|
||||
"fas-magnifying-glass-plus",
|
||||
"fas-moon",
|
||||
"fas-rocket",
|
||||
"fas-share-nodes",
|
||||
@@ -710,7 +725,6 @@
|
||||
"fichier",
|
||||
"fil-dariane",
|
||||
"file",
|
||||
"first-panel",
|
||||
"flowchart",
|
||||
"footer-docs-collapse-15",
|
||||
"footer-docs-collapse-16",
|
||||
@@ -743,7 +757,6 @@
|
||||
"items-type",
|
||||
"kaart",
|
||||
"kbd",
|
||||
"kickstart-your-data-stack-without-coding",
|
||||
"language-selector",
|
||||
"leaflet-map-0",
|
||||
"lien",
|
||||
@@ -758,7 +771,6 @@
|
||||
"messages-type",
|
||||
"mindmap",
|
||||
"more-type",
|
||||
"move-your-data-into-action",
|
||||
"nav",
|
||||
"nav-0-0",
|
||||
"nav-0-1",
|
||||
@@ -767,12 +779,11 @@
|
||||
"nav-0-btn-1",
|
||||
"nav-0-btn-2",
|
||||
"nav-nav-0",
|
||||
"nav-panel-071ec18d100b1b143a52290acbccb5d2",
|
||||
"nav-panel-3",
|
||||
"nav-panel-353faae960d8e5f264e975d330a6b22f",
|
||||
"nav-panel-6f7573c76bb16d93358060c54c56bb25",
|
||||
"nav-panel-78e144cc4646b9bdebe8f1d59a62159d",
|
||||
"nav-panel-fbf9d10f31358572a82e263a6abb2d8c",
|
||||
"nav-panel-0e0d7c1fd6d33e3180b75a3f126f5fea",
|
||||
"nav-panel-3afb6d66b09dfeb4621548fc9812ce10",
|
||||
"nav-panel-46f581d5bacea14d68114161d503d5c1",
|
||||
"nav-panel-e37d2a3ed3fbb2ae9956fe2816627070",
|
||||
"nav-panel-effd2deef2e0cded9c2d41c8aaec9646",
|
||||
"navbar",
|
||||
"navbar-0-collapse",
|
||||
"navbar-mode",
|
||||
@@ -781,42 +792,36 @@
|
||||
"navigation",
|
||||
"notification",
|
||||
"overview",
|
||||
"panel-071ec18d100b1b143a52290acbccb5d2-0",
|
||||
"panel-071ec18d100b1b143a52290acbccb5d2-1",
|
||||
"panel-071ec18d100b1b143a52290acbccb5d2-2",
|
||||
"panel-071ec18d100b1b143a52290acbccb5d2-btn-0",
|
||||
"panel-071ec18d100b1b143a52290acbccb5d2-btn-1",
|
||||
"panel-071ec18d100b1b143a52290acbccb5d2-btn-2",
|
||||
"panel-3-0",
|
||||
"panel-3-1",
|
||||
"panel-3-2",
|
||||
"panel-3-btn-0",
|
||||
"panel-3-btn-1",
|
||||
"panel-3-btn-2",
|
||||
"panel-353faae960d8e5f264e975d330a6b22f-0",
|
||||
"panel-353faae960d8e5f264e975d330a6b22f-1",
|
||||
"panel-353faae960d8e5f264e975d330a6b22f-2",
|
||||
"panel-353faae960d8e5f264e975d330a6b22f-btn-0",
|
||||
"panel-353faae960d8e5f264e975d330a6b22f-btn-1",
|
||||
"panel-353faae960d8e5f264e975d330a6b22f-btn-2",
|
||||
"panel-6f7573c76bb16d93358060c54c56bb25-0",
|
||||
"panel-6f7573c76bb16d93358060c54c56bb25-1",
|
||||
"panel-6f7573c76bb16d93358060c54c56bb25-2",
|
||||
"panel-6f7573c76bb16d93358060c54c56bb25-btn-0",
|
||||
"panel-6f7573c76bb16d93358060c54c56bb25-btn-1",
|
||||
"panel-6f7573c76bb16d93358060c54c56bb25-btn-2",
|
||||
"panel-78e144cc4646b9bdebe8f1d59a62159d-0",
|
||||
"panel-78e144cc4646b9bdebe8f1d59a62159d-1",
|
||||
"panel-78e144cc4646b9bdebe8f1d59a62159d-2",
|
||||
"panel-78e144cc4646b9bdebe8f1d59a62159d-btn-0",
|
||||
"panel-78e144cc4646b9bdebe8f1d59a62159d-btn-1",
|
||||
"panel-78e144cc4646b9bdebe8f1d59a62159d-btn-2",
|
||||
"panel-fbf9d10f31358572a82e263a6abb2d8c-0",
|
||||
"panel-fbf9d10f31358572a82e263a6abb2d8c-1",
|
||||
"panel-fbf9d10f31358572a82e263a6abb2d8c-2",
|
||||
"panel-fbf9d10f31358572a82e263a6abb2d8c-btn-0",
|
||||
"panel-fbf9d10f31358572a82e263a6abb2d8c-btn-1",
|
||||
"panel-fbf9d10f31358572a82e263a6abb2d8c-btn-2",
|
||||
"panel-0e0d7c1fd6d33e3180b75a3f126f5fea-0",
|
||||
"panel-0e0d7c1fd6d33e3180b75a3f126f5fea-1",
|
||||
"panel-0e0d7c1fd6d33e3180b75a3f126f5fea-2",
|
||||
"panel-0e0d7c1fd6d33e3180b75a3f126f5fea-btn-0",
|
||||
"panel-0e0d7c1fd6d33e3180b75a3f126f5fea-btn-1",
|
||||
"panel-0e0d7c1fd6d33e3180b75a3f126f5fea-btn-2",
|
||||
"panel-3afb6d66b09dfeb4621548fc9812ce10-0",
|
||||
"panel-3afb6d66b09dfeb4621548fc9812ce10-1",
|
||||
"panel-3afb6d66b09dfeb4621548fc9812ce10-2",
|
||||
"panel-3afb6d66b09dfeb4621548fc9812ce10-btn-0",
|
||||
"panel-3afb6d66b09dfeb4621548fc9812ce10-btn-1",
|
||||
"panel-3afb6d66b09dfeb4621548fc9812ce10-btn-2",
|
||||
"panel-46f581d5bacea14d68114161d503d5c1-0",
|
||||
"panel-46f581d5bacea14d68114161d503d5c1-1",
|
||||
"panel-46f581d5bacea14d68114161d503d5c1-2",
|
||||
"panel-46f581d5bacea14d68114161d503d5c1-btn-0",
|
||||
"panel-46f581d5bacea14d68114161d503d5c1-btn-1",
|
||||
"panel-46f581d5bacea14d68114161d503d5c1-btn-2",
|
||||
"panel-e37d2a3ed3fbb2ae9956fe2816627070-0",
|
||||
"panel-e37d2a3ed3fbb2ae9956fe2816627070-1",
|
||||
"panel-e37d2a3ed3fbb2ae9956fe2816627070-2",
|
||||
"panel-e37d2a3ed3fbb2ae9956fe2816627070-btn-0",
|
||||
"panel-e37d2a3ed3fbb2ae9956fe2816627070-btn-1",
|
||||
"panel-e37d2a3ed3fbb2ae9956fe2816627070-btn-2",
|
||||
"panel-effd2deef2e0cded9c2d41c8aaec9646-0",
|
||||
"panel-effd2deef2e0cded9c2d41c8aaec9646-1",
|
||||
"panel-effd2deef2e0cded9c2d41c8aaec9646-2",
|
||||
"panel-effd2deef2e0cded9c2d41c8aaec9646-btn-0",
|
||||
"panel-effd2deef2e0cded9c2d41c8aaec9646-btn-1",
|
||||
"panel-effd2deef2e0cded9c2d41c8aaec9646-btn-2",
|
||||
"persona",
|
||||
"pie-chart",
|
||||
"pills",
|
||||
@@ -829,22 +834,18 @@
|
||||
"release",
|
||||
"requirement-chart",
|
||||
"réduire",
|
||||
"second-panel",
|
||||
"security",
|
||||
"sequence-diagram",
|
||||
"shortcode-with-controls-and-frontmatter",
|
||||
"spinner",
|
||||
"stacked-cards-with-an-icon",
|
||||
"stacked-cards-with-an-image",
|
||||
"stacked-video-message",
|
||||
"start-using-your-data-immediately",
|
||||
"state-diagram",
|
||||
"sub",
|
||||
"sup",
|
||||
"sécurité",
|
||||
"table",
|
||||
"tabs",
|
||||
"tap-into-the-latest-thinking-from-infusal-and-stay-in-the-lead",
|
||||
"third-panel",
|
||||
"third-party-links--use-of-your-information",
|
||||
"timeline",
|
||||
"title",
|
||||
@@ -855,8 +856,8 @@
|
||||
"toast-example-2",
|
||||
"toast-message-email-4",
|
||||
"toc-collapse",
|
||||
"toc-collapse-items",
|
||||
"tooltip",
|
||||
"turn-boring-into-brilliant",
|
||||
"types-de-cookies-que-nous-utilisons",
|
||||
"types-of-cookies-we-use",
|
||||
"underline",
|
||||
@@ -866,8 +867,8 @@
|
||||
"vidéo",
|
||||
"vos-droits",
|
||||
"welcome-to-hinode",
|
||||
"welkom-bij-hinode",
|
||||
"what-are-cookies",
|
||||
"works-seamlessly-with-your-current-tech-stack",
|
||||
"xy-chart",
|
||||
"your-rights"
|
||||
]
|
||||
|
31
exampleSite/layouts/_partials/templates/script.html
Normal file
31
exampleSite/layouts/_partials/templates/script.html
Normal file
@@ -0,0 +1,31 @@
|
||||
{{/*
|
||||
Copyright © 2022 - 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.
|
||||
*/}}
|
||||
|
||||
<!-- TODO: this partial is not properly mounted for the exampleSite, possibly a bug with Hugo -->
|
||||
|
||||
{{/* Initialize arguments */}}
|
||||
{{- $args := partial "utilities/InitArgs.html" (dict "structure" "script" "args" .) -}}
|
||||
{{- if or $args.err $args.warnmsg -}}
|
||||
{{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
|
||||
"partial" "templates/script.html"
|
||||
"warnid" "warn-invalid-arguments"
|
||||
"msg" "Invalid arguments"
|
||||
"details" ($args.errmsg | append $args.warnmsg)
|
||||
"file" page.File
|
||||
) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Initialize local arguments */}}
|
||||
{{- $category := cond (ne $args.category "other") $args.category "" -}}
|
||||
|
||||
{{/* Main code */}}
|
||||
{{- if not $args.err -}}
|
||||
<script src="{{ $args.link }}"
|
||||
{{- with $args.scriptType }}{{ printf ` type="%s"` . | safeHTMLAttr }}{{ end -}}
|
||||
{{- with $category }} data-category="{{ . }}"{{ end -}}
|
||||
{{- with $args.integrity }} integrity="{{ . }}" crossorigin="anonymous"{{ end }}
|
||||
{{- with $args.state }} {{ . | safeHTMLAttr }}{{ end -}}></script>
|
||||
{{- end -}}
|
17
go.mod
17
go.mod
@@ -3,22 +3,19 @@ module github.com/gethinode/hinode
|
||||
go 1.19
|
||||
|
||||
require (
|
||||
github.com/airbnb/lottie-web v5.12.2+incompatible // indirect
|
||||
github.com/cloudcannon/bookshop/hugo/v3 v3.16.3 // indirect
|
||||
github.com/airbnb/lottie-web v5.13.0+incompatible // indirect
|
||||
github.com/cloudcannon/bookshop/hugo/v3 v3.16.4 // indirect
|
||||
github.com/gethinode/mod-bootstrap v1.3.4 // indirect
|
||||
github.com/gethinode/mod-csp v1.0.8 // indirect
|
||||
github.com/gethinode/mod-flexsearch/v2 v2.1.3 // indirect
|
||||
github.com/gethinode/mod-flexsearch/v3 v3.0.0 // 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
|
||||
github.com/gethinode/mod-leaflet v1.3.1 // indirect
|
||||
github.com/gethinode/mod-lottie v1.6.1 // indirect
|
||||
github.com/gethinode/mod-mermaid v1.1.23 // indirect
|
||||
github.com/gethinode/mod-mermaid/v2 v2.0.3 // indirect
|
||||
github.com/gethinode/mod-simple-datatables v1.1.7 // indirect
|
||||
github.com/gethinode/mod-mermaid/v3 v3.0.1 // indirect
|
||||
github.com/gethinode/mod-simple-datatables/v2 v2.0.2 // indirect
|
||||
github.com/gethinode/mod-utils/v3 v3.3.1 // indirect
|
||||
github.com/gethinode/mod-utils/v4 v4.11.1 // indirect
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20250606060143-c28f52c09b7a // indirect
|
||||
github.com/twbs/bootstrap v5.3.7+incompatible // indirect
|
||||
github.com/gethinode/mod-utils/v4 v4.14.0 // indirect
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20250907103239-defb38b083f0 // indirect
|
||||
github.com/twbs/bootstrap v5.3.8+incompatible // indirect
|
||||
)
|
||||
|
22
go.sum
22
go.sum
@@ -1,5 +1,7 @@
|
||||
github.com/airbnb/lottie-web v5.12.2+incompatible h1:Ldogtlhiucf7mMsgisyxSBY0qunV44+lpa9Icy2KoQc=
|
||||
github.com/airbnb/lottie-web v5.12.2+incompatible/go.mod h1:nTss557UK9FGnp8QYlCMO29tjUHwbdAHG/DprbGfHGE=
|
||||
github.com/airbnb/lottie-web v5.13.0+incompatible h1:plBV5Uq/F1kK0EC61Hr0cBGReI9OgUfd/pp0baoDX8o=
|
||||
github.com/airbnb/lottie-web v5.13.0+incompatible/go.mod h1:nTss557UK9FGnp8QYlCMO29tjUHwbdAHG/DprbGfHGE=
|
||||
github.com/cloudcannon/bookshop/hugo/v3 v3.14.0 h1:QNLtpTINvXkxAG/RQVpdXzxtFjG6YAmnBr7qbOD5GF8=
|
||||
github.com/cloudcannon/bookshop/hugo/v3 v3.14.0/go.mod h1:s7mIonDhtsLcn10ZKuVXyqd6BDHI8vT1WQhZw8rPfY8=
|
||||
github.com/cloudcannon/bookshop/hugo/v3 v3.16.0 h1:Fb76ABHqTyPl9Z2QqYJCwiMBKPyShOe1EnZxXzW3RVo=
|
||||
@@ -8,6 +10,8 @@ github.com/cloudcannon/bookshop/hugo/v3 v3.16.1 h1:WByz6rqg28h94VLVLscu77/CHhi2p
|
||||
github.com/cloudcannon/bookshop/hugo/v3 v3.16.1/go.mod h1:s7mIonDhtsLcn10ZKuVXyqd6BDHI8vT1WQhZw8rPfY8=
|
||||
github.com/cloudcannon/bookshop/hugo/v3 v3.16.3 h1:/Z66xKILl1SNGQePHZCnxo6vFgED7AGI600OSPotXj4=
|
||||
github.com/cloudcannon/bookshop/hugo/v3 v3.16.3/go.mod h1:s7mIonDhtsLcn10ZKuVXyqd6BDHI8vT1WQhZw8rPfY8=
|
||||
github.com/cloudcannon/bookshop/hugo/v3 v3.16.4 h1:k233xdD3ydE6iN8QB+c37//rSsFVtLIo5OUNRN4E3bc=
|
||||
github.com/cloudcannon/bookshop/hugo/v3 v3.16.4/go.mod h1:s7mIonDhtsLcn10ZKuVXyqd6BDHI8vT1WQhZw8rPfY8=
|
||||
github.com/gethinode/mod-bootstrap v1.0.1 h1:NDZar+UEL42YHCvzzO+jVgqkZU5INA12BpjX3y6U4I4=
|
||||
github.com/gethinode/mod-bootstrap v1.0.1/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
||||
github.com/gethinode/mod-bootstrap v1.1.0 h1:BbalsW8kmFhv+J+dcc41TGcjIlM/p69AB0h0oGhAXIU=
|
||||
@@ -118,6 +122,8 @@ github.com/gethinode/mod-flexsearch/v2 v2.1.2 h1:B/onreHG/qzIqMo9YYiRk4WWM+GgFj1
|
||||
github.com/gethinode/mod-flexsearch/v2 v2.1.2/go.mod h1:0IJGZQRv9X+th/gFmFRusEUSv0oJSr3aw5t1w3lfvYg=
|
||||
github.com/gethinode/mod-flexsearch/v2 v2.1.3 h1:m5I9B7cA1SU99f90yO4OpOcKNPZ5zMF18pEhusLxa80=
|
||||
github.com/gethinode/mod-flexsearch/v2 v2.1.3/go.mod h1:0IJGZQRv9X+th/gFmFRusEUSv0oJSr3aw5t1w3lfvYg=
|
||||
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-fontawesome v1.0.2 h1:ZSK6D20/w4y5GnfYfTBB58uHD0ChIfkpKfRGwioS9rg=
|
||||
github.com/gethinode/mod-fontawesome v1.0.2/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-fontawesome v1.1.0 h1:rsDzUI+3ZlS/do2ff3ne8/z3KwHeysmuA+WsXlumXXk=
|
||||
@@ -326,6 +332,10 @@ github.com/gethinode/mod-mermaid/v2 v2.0.2 h1:uRHS3RyrMBK/hhDbEX39HnYkypSvSeci0k
|
||||
github.com/gethinode/mod-mermaid/v2 v2.0.2/go.mod h1:kp3oUFAjKxuwzFbwxGWPEx5VQOu2ZHzcrwcNhDv08BI=
|
||||
github.com/gethinode/mod-mermaid/v2 v2.0.3 h1:vWiAE640GAzkQCj0NFyn1VtnpFwiJ5Bljm2YgoQ3qG4=
|
||||
github.com/gethinode/mod-mermaid/v2 v2.0.3/go.mod h1:kp3oUFAjKxuwzFbwxGWPEx5VQOu2ZHzcrwcNhDv08BI=
|
||||
github.com/gethinode/mod-mermaid/v3 v3.0.0 h1:pFF2soB3ZQcY4KuMzDprcSv2zdC3yTKywNId4yhcPOA=
|
||||
github.com/gethinode/mod-mermaid/v3 v3.0.0/go.mod h1:+8p5KbFjIkB/I77Gpd8LTQgmNrRBfJpmKGnjclzwJFo=
|
||||
github.com/gethinode/mod-mermaid/v3 v3.0.1 h1:h4v3QvGpSln9PDbWccSktULq9FbRZ57JN4Lp+gVjvVI=
|
||||
github.com/gethinode/mod-mermaid/v3 v3.0.1/go.mod h1:rbI8IKFfKVGqTY/eJnuNJwzB5kSjaEUNX0NRHc4rBfA=
|
||||
github.com/gethinode/mod-simple-datatables v1.0.0 h1:Dj4WGw12OkaimwkCpLn5Jhmd49dvNJW9O2P/W9F+HlQ=
|
||||
github.com/gethinode/mod-simple-datatables v1.0.0/go.mod h1:K8T7fIdb8pMOB+OSW4A5lz5IW99+HyzcTgx764fvOGw=
|
||||
github.com/gethinode/mod-simple-datatables v1.0.2 h1:zhqxHet3iLQWYCBbGROALpOY9zQlptMycFkz1Tto5bA=
|
||||
@@ -490,6 +500,12 @@ github.com/gethinode/mod-utils/v4 v4.11.0 h1:24RObT99j/jiQnCyHvXahJHIA8e8uQuBb1p
|
||||
github.com/gethinode/mod-utils/v4 v4.11.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/gethinode/mod-utils/v4 v4.11.1 h1:12CzZjyLOb/FSXbX8mDAWqs8y4OCXOEavKww7T4V9jU=
|
||||
github.com/gethinode/mod-utils/v4 v4.11.1/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/gethinode/mod-utils/v4 v4.12.0 h1:5sSfYIxZCeQbXLoZdS//rl6thwLwtXuvM0ujaWKyPmc=
|
||||
github.com/gethinode/mod-utils/v4 v4.12.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/gethinode/mod-utils/v4 v4.13.0 h1:VKAA+wKy4saayXfgJuVBRfhNVWQWmxOjO8LSpQCvLfw=
|
||||
github.com/gethinode/mod-utils/v4 v4.13.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/gethinode/mod-utils/v4 v4.14.0 h1:CF5dy+HWg22L306bWVhClWK9b1NVinEqtb4Qr2vcl9A=
|
||||
github.com/gethinode/mod-utils/v4 v4.14.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3 h1:H/qVR5O4BXjRjD+5PZB+r4ug2BSJ2Of4RtwOntd+OKo=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20240108021025-afd75f742f22 h1:re7L8FxbXQpnX8BgzkdUnDpsUmloGNyLmiy2ZCln8pg=
|
||||
@@ -512,6 +528,10 @@ github.com/nextapps-de/flexsearch v0.0.0-20250523180618-1f75f5f9d9b6 h1:vUlZHDX+
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20250523180618-1f75f5f9d9b6/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20250606060143-c28f52c09b7a h1:CF/f62ufhBzNvAgoC6JhuqQxtqz0yDj3IIXYKl+A650=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20250606060143-c28f52c09b7a/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20250901122457-99cddafcdc64 h1:8gn/7ZfERwknYk63DskhEfkwwpoXubGrzLv5LuSq6hc=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20250901122457-99cddafcdc64/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20250907103239-defb38b083f0 h1:55phPhe6fDjfjG0jX4+br3nLORKgjgx8abZUdI0YJRA=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20250907103239-defb38b083f0/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
|
||||
github.com/twbs/bootstrap v5.3.2+incompatible h1:tuiO5acc6xnZUR77Sbi5aKWXxjYxbmsSbJwYrhAKoQQ=
|
||||
github.com/twbs/bootstrap v5.3.2+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=
|
||||
github.com/twbs/bootstrap v5.3.3+incompatible h1:goFoqinzdHfkeegpFP7pvhbd0g+A3O2hbU3XCjuNrEQ=
|
||||
@@ -522,3 +542,5 @@ github.com/twbs/bootstrap v5.3.6+incompatible h1:efmXVyq839m5QQ0+JBUdQQ1TrmoBqvQ
|
||||
github.com/twbs/bootstrap v5.3.6+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=
|
||||
github.com/twbs/bootstrap v5.3.7+incompatible h1:ea1W8TOWZFkqSK2M0McpgzLiUQVru3bz8aHb0j/XtuM=
|
||||
github.com/twbs/bootstrap v5.3.7+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=
|
||||
github.com/twbs/bootstrap v5.3.8+incompatible h1:eK1fsXP7R/FWFt+sSNmmvUH9usPocf240nWVw7Dh02o=
|
||||
github.com/twbs/bootstrap v5.3.8+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=
|
||||
|
@@ -8,6 +8,7 @@
|
||||
"footer",
|
||||
"form",
|
||||
"head",
|
||||
"hr",
|
||||
"html",
|
||||
"img",
|
||||
"input",
|
||||
@@ -56,6 +57,7 @@
|
||||
"col-md-2",
|
||||
"col-md-6",
|
||||
"col-md-8",
|
||||
"col-md-auto",
|
||||
"col-sm-12",
|
||||
"collapse",
|
||||
"collapsed",
|
||||
@@ -64,12 +66,14 @@
|
||||
"d-flex",
|
||||
"d-inline",
|
||||
"d-md-block",
|
||||
"d-md-flex",
|
||||
"d-md-none",
|
||||
"d-none",
|
||||
"d-sm-block",
|
||||
"d-sm-none",
|
||||
"display-1",
|
||||
"display-4",
|
||||
"dropdown-divider-bg",
|
||||
"emphasis",
|
||||
"end-0",
|
||||
"fa",
|
||||
@@ -82,10 +86,12 @@
|
||||
"fa-fw",
|
||||
"fa-github",
|
||||
"fa-linkedin",
|
||||
"fa-magnifying-glass",
|
||||
"fa-medium",
|
||||
"fa-moon",
|
||||
"fa-sun",
|
||||
"fab",
|
||||
"fade",
|
||||
"fas",
|
||||
"fixed-top",
|
||||
"flex-column",
|
||||
@@ -97,6 +103,7 @@
|
||||
"fw-30",
|
||||
"fw-bold",
|
||||
"h-100",
|
||||
"h-50",
|
||||
"hero",
|
||||
"hero-content",
|
||||
"hero-image",
|
||||
@@ -120,15 +127,21 @@
|
||||
"main-nav-toggler",
|
||||
"me-auto",
|
||||
"middle-bar",
|
||||
"modal",
|
||||
"modal-body",
|
||||
"modal-content",
|
||||
"modal-dialog",
|
||||
"modal-dialog-centered",
|
||||
"modal-dialog-scrollable",
|
||||
"modal-header",
|
||||
"modal-lg",
|
||||
"mode-switch",
|
||||
"ms-auto",
|
||||
"ms-md-3",
|
||||
"mt-3",
|
||||
"mt-4",
|
||||
"mt-5",
|
||||
"mt-md-0",
|
||||
"mx-auto",
|
||||
"mx-md-0",
|
||||
"mx-md-2",
|
||||
"my-auto",
|
||||
"my-md-auto",
|
||||
"nav-item",
|
||||
@@ -139,8 +152,11 @@
|
||||
"navbar-container",
|
||||
"navbar-expand-md",
|
||||
"navbar-fixed-top",
|
||||
"navbar-fs-6",
|
||||
"navbar-md-fs",
|
||||
"navbar-mode-selector",
|
||||
"navbar-nav",
|
||||
"navbar-nav-scroll",
|
||||
"navbar-toggler",
|
||||
"no-js",
|
||||
"order-0",
|
||||
@@ -159,18 +175,21 @@
|
||||
"pt-md-0",
|
||||
"px-4",
|
||||
"px-xxl-0",
|
||||
"py-2",
|
||||
"py-3",
|
||||
"py-4",
|
||||
"py-md-1",
|
||||
"rounded",
|
||||
"row",
|
||||
"row-cols-1",
|
||||
"row-cols-2",
|
||||
"row-cols-sm-3",
|
||||
"search",
|
||||
"search-background",
|
||||
"search-input",
|
||||
"search-modal",
|
||||
"search-suggestions",
|
||||
"section-cover",
|
||||
"shadow",
|
||||
"svg-inline--fa",
|
||||
"text-",
|
||||
"text-body",
|
||||
@@ -185,7 +204,9 @@
|
||||
"toast-container",
|
||||
"toast-header",
|
||||
"toggler-icon",
|
||||
"top-bar"
|
||||
"top-bar",
|
||||
"vr",
|
||||
"w-100"
|
||||
],
|
||||
"ids": [
|
||||
"container",
|
||||
@@ -196,11 +217,14 @@
|
||||
"fas-angle-left",
|
||||
"fas-chevron-right",
|
||||
"fas-ellipsis",
|
||||
"fas-magnifying-glass",
|
||||
"fas-moon",
|
||||
"fas-sun",
|
||||
"navbar-0-collapse",
|
||||
"navbar-mode",
|
||||
"navbar-mode-checkbox",
|
||||
"search-input-modal",
|
||||
"search-modal",
|
||||
"toast-container",
|
||||
"toast-copied-code-message",
|
||||
"welcome-to-hinode"
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<div class="mb-3 syntax-highlight">
|
||||
<div class="codeblock syntax-highlight mb-3">
|
||||
{{- $result := transform.HighlightCodeBlock . -}}
|
||||
{{- $result.Wrapped -}}
|
||||
</div>
|
@@ -168,7 +168,7 @@
|
||||
-}}
|
||||
|
||||
{{/* Main code */}}
|
||||
{{ if or (ne $args.gutter "0") ($args.wrapper) }}<div class="g-{{ $args.gutter }} {{ $args.wrapper }} h-100">{{ end }}
|
||||
{{ if or (gt $args.gutter "0") ($args.wrapper) }}<div class="{{ with $args.gutter }}g-{{ . }}{{ end }} {{ $args.wrapper }}">{{ end }}
|
||||
|
||||
{{ $stack := "" }}
|
||||
|
||||
@@ -301,4 +301,4 @@
|
||||
</div>
|
||||
{{- end -}}
|
||||
|
||||
{{ if or (ne $args.gutter "0") ($args.wrapper) }}</div>{{ end }}
|
||||
{{ if or (gt $args.gutter "0") ($args.wrapper) }}</div>{{ end }}
|
||||
|
@@ -7,45 +7,45 @@
|
||||
{{ $error := false }}
|
||||
|
||||
{{/* Initialize arguments */}}
|
||||
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "featured-illustration" "args" . "group" "partial") }}
|
||||
{{ if or $args.err $args.warnmsg }}
|
||||
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
|
||||
{{- $args := partial "utilities/InitArgs.html" (dict "structure" "featured-illustration" "args" . "group" "partial") -}}
|
||||
{{- if or $args.err $args.warnmsg -}}
|
||||
{{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
|
||||
"partial" "assets/featured-illustration.html"
|
||||
"warnid" "warn-invalid-arguments"
|
||||
"msg" "Invalid arguments"
|
||||
"details" ($args.errmsg | append $args.warnmsg)
|
||||
"file" page.File
|
||||
)}}
|
||||
{{ $error = $args.err }}
|
||||
{{ end }}
|
||||
) -}}
|
||||
{{- $error = $args.err -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Initialize local arguments */}}
|
||||
|
||||
{{ $icon := partial "utilities/GetTargetPath.html" (dict "path" $args.icon "page" $args.page) }}
|
||||
{{ $image := partial "utilities/GetTargetPath.html" (dict "path" $args.image "page" $args.page) }}
|
||||
{{- $icon := partial "utilities/GetTargetPath.html" (dict "path" $args.icon "page" $args.page) -}}
|
||||
{{- $image := partial "utilities/GetTargetPath.html" (dict "path" $args.image "page" $args.page) -}}
|
||||
{{- $wrapper := $args.wrapper -}}
|
||||
{{ if $image }}{{ $wrapper = print "img-wrap " (or $wrapper "mx-auto") }}{{ end -}}
|
||||
{{- if $image }}{{ $wrapper = printf "img-wrap %s" (or $wrapper "mx-auto") }}{{ end -}}
|
||||
{{- $class := $args.class -}}
|
||||
|
||||
{{ if $icon }}
|
||||
{{ if eq (lower (path.Ext $icon)) ".json" }}
|
||||
{{ if site.Params.env_bookshop_live }}
|
||||
{{- if $icon -}}
|
||||
{{- if eq (lower (path.Ext $icon)) ".json" -}}
|
||||
{{- if site.Params.env_bookshop_live }}
|
||||
<i>Animation preview not supported</i>
|
||||
{{ else }}
|
||||
{{ partial "assets/animation.html" (dict
|
||||
{{- else }}
|
||||
{{- partial "assets/animation.html" (dict
|
||||
"data" $icon
|
||||
"mode" $args.mode
|
||||
"loop" false
|
||||
"hover" true
|
||||
"class" "col-6 mx-auto text-center"
|
||||
) }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{ partial "assets/icon.html" (dict "icon" $icon "wrapper" $wrapper) }}
|
||||
{{ end }}
|
||||
{{ else if $image }}
|
||||
{{ if not (hasSuffix $image "svg") }}{{ $class = printf "%s rounded" $class }}{{ end }}
|
||||
{{ partial "assets/live-image.html" (dict
|
||||
) -}}
|
||||
{{- end -}}
|
||||
{{- else }}
|
||||
{{ partial "assets/icon.html" (dict "icon" $icon "wrapper" $wrapper) -}}
|
||||
{{- end -}}
|
||||
{{- else if $image -}}
|
||||
{{- if not (hasSuffix $image "svg") }}{{ $class = printf "%s rounded" $class }}{{ end -}}
|
||||
{{- partial "assets/live-image.html" (dict
|
||||
"src" $image
|
||||
"anchor" $args.anchor
|
||||
"ratio" $args.ratio
|
||||
@@ -55,5 +55,5 @@
|
||||
"sizes" $args.sizes
|
||||
"priority" "high"
|
||||
"mode" $args.mode
|
||||
) }}
|
||||
{{ end }}
|
||||
) -}}
|
||||
{{- end -}}
|
||||
|
@@ -35,7 +35,7 @@
|
||||
{{- $isActive := or (and (eq $pageURL $menuURL) (ne $menuURL ("/" | relLangURL))) (eq $pageURL $menuURL) -}}
|
||||
{{ if not $menu.PageRef }}{{ $isActive = false }}{{ end }}
|
||||
{{- $isAlias := $menu.Params.alias -}}
|
||||
{{- $isIcon := $menu.Params.icon -}}
|
||||
{{- $isIcon := or $menu.Params.icon $menu.Pre -}}
|
||||
|
||||
{{- $url := urls.Parse $menuURL -}}
|
||||
{{- $baseURL := urls.Parse $.Site.Params.Baseurl -}}
|
||||
@@ -63,6 +63,9 @@
|
||||
{{- $childNav := "" -}}
|
||||
|
||||
{{- $button := "" -}}
|
||||
{{- if $args.modal -}}
|
||||
{{- $button = printf " role=%q data-bs-toggle=%q data-bs-target=%q" "button" "modal" $args.modal -}}
|
||||
{{- end -}}
|
||||
{{- if $args.parent -}}
|
||||
{{- $mainNav = urlize (lower $args.parent.Name) -}}
|
||||
{{- $childNav = urlize (lower $menu.Name) -}}
|
||||
@@ -92,21 +95,34 @@
|
||||
"button-size" "sm"
|
||||
)}}
|
||||
{{ else }}
|
||||
{{ cond (ne $menuURL "") "<a" "<div" | safeHTML }} class="{{ $anchorClass }}{{ if $isActive }} active{{ end }}{{ with $args.class }} {{ . }}{{ end }}"
|
||||
{{ cond (ne $menuURL "") "<a" "<div" | safeHTML }}
|
||||
class="{{ $anchorClass }}{{ if $isActive }} active{{ end }}{{ with $args.class }} {{ . }}{{ end }}"
|
||||
{{ if $isIcon }}aria-label="{{ $title }}"{{ end }}
|
||||
data-nav="main" data-nav-main="{{ $mainNav }}"{{ with $childNav }} data-nav-child="{{ . }}"{{ end }}
|
||||
{{ if $menuURL }} href="{{ $menuURL }}{{ $params | safeHTML }}"{{ with $externalHref }} {{ . | safeHTML }}{{ end }}{{ end }} {{ $button | safeHTML }}>
|
||||
{{ if $menuURL }} href="{{ $menuURL }}{{ $params | safeHTML }}"{{ with $externalHref }} {{ . | safeHTML }}{{ end }}{{ end }}
|
||||
{{ $button | safeHTML }}
|
||||
{{ with $args.id }}id="{{ . }}"{{ end }}
|
||||
>
|
||||
|
||||
{{- with $menu.Pre }}
|
||||
{{ if hasPrefix . "<i" }}
|
||||
{{ . | safeHTML }}
|
||||
{{ else }}
|
||||
{{ partial "assets/icon.html" (dict "icon" (string .) )}}
|
||||
{{ partial "assets/icon.html" (dict "icon" (printf "%s fa-fw" .) "spacing" false )}}
|
||||
{{ end }}
|
||||
{{ end -}}
|
||||
<span {{ if $isActive }} class="active"{{ end }}>{{ if or (not $isIcon) $args.plain }}{{ $title }}{{ end }}</span>
|
||||
{{- with $menu.Post }}{{ . }}{{ end -}}
|
||||
{{- if not $isIcon }} {{ $suffix }}{{ end -}}
|
||||
<span class="{{ if $isActive }}active{{ end }} {{ with $args.breakpoint }}d-{{ . }}-none {{ end }}">
|
||||
{{- if $isIcon }} {{ end }}{{ $title }}
|
||||
{{- with $menu.Post }}{{ . }}{{ end -}}
|
||||
{{- with $suffix }} {{ . }}{{ end -}}
|
||||
</span>
|
||||
{{ if not $isIcon }}
|
||||
<span class="{{ if $isActive }}active{{ end }} {{ with $args.breakpoint }}d-none d-{{ . }}-block{{ end }}">
|
||||
{{- if $isIcon }} {{ end }}{{ $title }}
|
||||
{{- with $menu.Post }}{{ . }}{{ end -}}
|
||||
{{- with $suffix }} {{ . }}{{ end -}}
|
||||
</span>
|
||||
{{ end }}
|
||||
{{ cond (ne $menuURL "") "</a>" "</div>" | safeHTML }}
|
||||
{{ end }}
|
||||
{{ end }}
|
38
layouts/_partials/assets/helpers/navbar-languages.html
Normal file
38
layouts/_partials/assets/helpers/navbar-languages.html
Normal file
@@ -0,0 +1,38 @@
|
||||
{{- $page := .page -}}
|
||||
{{- $baseURL := .baseURL -}}
|
||||
{{- $breakpoint := .breakpoint -}}
|
||||
{{- $pretty := .pretty -}}
|
||||
{{- $icon := .icon | default "fas globe" -}}
|
||||
{{- $fs := .fs | default 6 -}}
|
||||
|
||||
{{- $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 $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 -}}
|
||||
</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>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
</ul>
|
||||
</li>
|
26
layouts/_partials/assets/helpers/navbar-mode.html
Normal file
26
layouts/_partials/assets/helpers/navbar-mode.html
Normal file
@@ -0,0 +1,26 @@
|
||||
{{- $id := .id | default "navbar-mode" -}}
|
||||
{{- $toggle := .toggle | default false -}}
|
||||
{{- $breakpoint := .breakpoint -}}
|
||||
{{- $iconLight := site.Params.main.colorMode.iconLight | default "fas sun" -}}
|
||||
{{- $iconDark := site.Params.main.colorMode.iconDark | default "fas moon" -}}
|
||||
{{- $fs := .fs | default 6 -}}
|
||||
|
||||
<li class="nav-link navbar-fs-{{ $fs }} navbar-{{ $breakpoint }}-fs d-flex mode-{{ cond $toggle "toggle" "switch" }} align-items-center" id="{{ $id }}">
|
||||
<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">
|
||||
{{- 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">
|
||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-fw" $iconDark) "spacing" false) }}
|
||||
<span class="d-{{ $breakpoint }}-none">{{ T "colorMode" }}</span>
|
||||
</div>
|
||||
{{ else }}
|
||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-fw" $iconLight) "spacing" false) }}
|
||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-fw" $iconDark) "spacing" false) }}
|
||||
<div class="ball"></div>
|
||||
{{ end }}
|
||||
</label>
|
||||
</li>
|
35
layouts/_partials/assets/helpers/navbar-render-menu.html
Normal file
35
layouts/_partials/assets/helpers/navbar-render-menu.html
Normal file
@@ -0,0 +1,35 @@
|
||||
{{- $page := .page -}}
|
||||
{{- $menus := .menus -}}
|
||||
{{- $collapsed := .collapsed -}}
|
||||
{{- $control := .control | default false -}}
|
||||
{{- $horizontal := .horizontal | default false -}}
|
||||
{{- $breakpoint := .breakpoint -}}
|
||||
{{- $fs := .fs | default 6 -}}
|
||||
|
||||
{{- range $menu := $menus -}}
|
||||
{{ if (eq $control ($menu.Params.control | default false)) }}
|
||||
{{ if $menu.Params.spacing }}
|
||||
<li class="nav-item flex-grow-1"></li>
|
||||
{{ else }}
|
||||
<li class="nav-item {{ if .HasChildren }} dropdown me-auto{{ if $horizontal }} dropdown-horizontal-{{ $breakpoint }}{{ end }}{{ end }}">
|
||||
{{- partial "assets/helpers/navbar-item.html" (dict "menu" $menu "page" $page) -}}
|
||||
{{- if .HasChildren -}}
|
||||
<ul class="dropdown-menu{{ if $control }} dropdown-menu-end{{ end }}">
|
||||
{{- range .Children -}}
|
||||
<li>{{- partial "assets/helpers/navbar-item.html" (dict
|
||||
"menu" .
|
||||
"parent" $menu
|
||||
"page" $page
|
||||
"breakpoint" $breakpoint
|
||||
"modal" .Params.modal
|
||||
"id" .Params.id
|
||||
"class" (printf "navbar-fs-%d navbar-%s-fs" $fs $breakpoint)
|
||||
) -}}
|
||||
</li>
|
||||
{{- end -}}
|
||||
</ul>
|
||||
{{- end -}}
|
||||
</li>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
43
layouts/_partials/assets/helpers/navbar-versions.html
Normal file
43
layouts/_partials/assets/helpers/navbar-versions.html
Normal file
@@ -0,0 +1,43 @@
|
||||
{{- $breakpoint := .breakpoint -}}
|
||||
{{- $collapsed := .collapsed -}}
|
||||
{{- $page := .page -}}
|
||||
{{- $baseURL := .baseURL -}}
|
||||
{{- $list := site.Params.docs.releases -}}
|
||||
{{- $id := .id -}}
|
||||
{{- $version := partial "utilities/GetVersion.html" (dict "page" $page) -}}
|
||||
|
||||
<li class="nav-item dropdown {{ if $collapsed }}d-{{ $breakpoint }}-none{{ else }}d-none d-{{ $breakpoint }}-block{{ end }}">
|
||||
<a class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false" id="{{ $id }}-version-switch">
|
||||
{{ if $collapsed }}{{ site.Title }} {{ end }}{{ $version }}
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="{{ $id }}-version-switch">
|
||||
{{- range $index, $item := $list -}}
|
||||
{{- $active := eq $item.label $version -}}
|
||||
{{- $disabled := false -}}
|
||||
{{- if hugo.IsServer }}
|
||||
{{- $disabled = and $item.redirect (gt (len $item.redirect) 0) -}}
|
||||
{{- end -}}
|
||||
{{ if $item.url }}
|
||||
<li>
|
||||
{{- $url := partial "utilities/URLJoin.html" (dict "base" $baseURL "path" $item.url) | relLangURL -}}
|
||||
<a class="pe-5 dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}{{ if $active }} active{{ end }}{{ if $disabled }} disabled{{ end }}" href="{{ $url }}">{{ $item.label }}
|
||||
{{ if $item.latest }} ({{ T "latest" }}){{ end }}
|
||||
{{ if $active }}
|
||||
<span class="position-absolute end-0 me-3">{{- partial "assets/icon.html" (dict "icon" "fas check fa-fw") }}</span>
|
||||
{{ end }}
|
||||
</a>
|
||||
</li>
|
||||
{{ else }}
|
||||
{{ if gt $index 0}}<li><hr class="dropdown-divider"></li>{{ end }}
|
||||
<li><span class="dropdown-header fs-6">{{ $item.label }}</span></li>
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
{{- if site.Params.docs.overview -}}
|
||||
{{ if gt (len $list) 0 }}<li><hr class="dropdown-divider"></li>{{ end }}
|
||||
<li>
|
||||
{{- $url := partial "utilities/URLJoin.html" (dict "base" $baseURL "path" site.Params.docs.overview) | relLangURL -}}
|
||||
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" href="{{ $url }}">{{ T "allVersions" }}</a>
|
||||
</li>
|
||||
{{- end -}}
|
||||
</ul>
|
||||
</li>
|
@@ -112,13 +112,16 @@
|
||||
{{ end }}
|
||||
|
||||
{{ $title := partial "assets/section-title.html" (dict
|
||||
"heading" $heading
|
||||
"use-title" $args.useTitle
|
||||
"links" $args.links
|
||||
"link-type" (or $args.linkType $args.type)
|
||||
"class" "hero-title"
|
||||
"arrangement" $arrangement
|
||||
"justify" $args.justify
|
||||
"heading" $heading
|
||||
"use-title" $args.useTitle
|
||||
"links" $args.links
|
||||
"link-type" (or $args.linkType $args.type)
|
||||
"class" "hero-title"
|
||||
"arrangement" $arrangement
|
||||
"justify" $args.justify
|
||||
"heading-style" $args.headingStyle
|
||||
"content-style" $args.contentStyle
|
||||
|
||||
) }}
|
||||
|
||||
{{ if eq $args.orientation "stacked" }}
|
||||
|
5
layouts/_partials/assets/modals.html
Normal file
5
layouts/_partials/assets/modals.html
Normal file
@@ -0,0 +1,5 @@
|
||||
{{ with .Site.GetPage "/_modals" }}
|
||||
{{ range .Pages }}
|
||||
{{ .Content }}
|
||||
{{ end }}
|
||||
{{ end }}
|
@@ -6,65 +6,12 @@
|
||||
|
||||
{{/* TODO: consider to drop style arg */}}
|
||||
|
||||
{{/* Inline partial to render the color mode switcher */}}
|
||||
{{- define "_partials/inline/navbar-mode.html" -}}
|
||||
{{- $id := .id | default "navbar-mode" -}}
|
||||
|
||||
<li class="d-flex mode-switch align-items-center" id="{{ $id }}">
|
||||
<input type="checkbox" class="checkbox navbar-mode-selector" id="{{ $id }}-checkbox" aria-label="{{ T "colorMode" }}" />
|
||||
<label class="label" for="{{ $id }}-checkbox">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas sun fa-fw" "spacing" false) }}
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas moon fa-fw" "spacing" false) }}
|
||||
<div class="ball"></div>
|
||||
</label>
|
||||
</li>
|
||||
{{- end -}}
|
||||
|
||||
{{/* Inline partial to render the version switcher */}}
|
||||
{{- define "_partials/inline/navbar-versions.html" -}}
|
||||
{{- define "_partials/inline/divider.html" -}}
|
||||
{{- $breakpoint := .breakpoint -}}
|
||||
{{- $collapsed := .collapsed -}}
|
||||
{{- $page := .page -}}
|
||||
{{- $baseURL := .baseURL -}}
|
||||
{{- $list := site.Params.docs.releases -}}
|
||||
{{- $id := .id -}}
|
||||
{{- $version := partial "utilities/GetVersion.html" (dict "page" $page) -}}
|
||||
|
||||
<li class="nav-item dropdown {{ if $collapsed }}d-{{ $breakpoint }}-none{{ else }}d-none d-{{ $breakpoint }}-block{{ end }}">
|
||||
<a class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false" id="{{ $id }}-version-switch">
|
||||
{{ if $collapsed }}{{ site.Title }} {{ end }}{{ $version }}
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="{{ $id }}-version-switch">
|
||||
{{- range $index, $item := $list -}}
|
||||
{{- $active := eq $item.label $version -}}
|
||||
{{- $disabled := false -}}
|
||||
{{- if hugo.IsServer }}
|
||||
{{- $disabled = and $item.redirect (gt (len $item.redirect) 0) -}}
|
||||
{{- end -}}
|
||||
{{ if $item.url }}
|
||||
<li>
|
||||
{{- $url := partial "utilities/URLJoin.html" (dict "base" $baseURL "path" $item.url) | relLangURL -}}
|
||||
<a class="pe-5 dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}{{ if $active }} active{{ end }}{{ if $disabled }} disabled{{ end }}" href="{{ $url }}">{{ $item.label }}
|
||||
{{ if $item.latest }} ({{ T "latest" }}){{ end }}
|
||||
{{ if $active }}
|
||||
<span class="position-absolute end-0 me-3">{{- partial "assets/icon.html" (dict "icon" "fas check fa-fw") }}</span>
|
||||
{{ end }}
|
||||
</a>
|
||||
</li>
|
||||
{{ else }}
|
||||
{{ if gt $index 0}}<li><hr class="dropdown-divider"></li>{{ end }}
|
||||
<li><span class="dropdown-header fs-6">{{ $item.label }}</span></li>
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
{{- if site.Params.docs.overview -}}
|
||||
{{ if gt (len $list) 0 }}<li><hr class="dropdown-divider"></li>{{ end }}
|
||||
<li>
|
||||
{{- $url := partial "utilities/URLJoin.html" (dict "base" $baseURL "path" site.Params.docs.overview) | relLangURL -}}
|
||||
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" href="{{ $url }}">{{ T "allVersions" }}</a>
|
||||
</li>
|
||||
{{- end -}}
|
||||
</ul>
|
||||
<li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $breakpoint }}-block me-auto">
|
||||
<div class="vr d-none d-md-flex h-100 mx-md-2"></div>
|
||||
</li>
|
||||
<li><hr class="dropdown-divider-bg"></li>
|
||||
{{- end -}}
|
||||
|
||||
{{/* Initialize arguments */}}
|
||||
@@ -81,6 +28,9 @@
|
||||
|
||||
{{/* Initialize global variables */}}
|
||||
{{- $padding := partial "utilities/GetPadding.html" (dict "section" "navigation") -}}
|
||||
{{- $search := partial "utilities/GetSearchConfig.html" (dict "search" $args.search) -}}
|
||||
{{- $fs := site.Params.navigation.fontsizeCollapsed | default 6 -}}
|
||||
{{- $langIcon := site.Params.navigation.language.icon | default "fas globe" -}}
|
||||
|
||||
{{/* Initialize local arguments */}}
|
||||
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
|
||||
@@ -103,10 +53,15 @@
|
||||
{{- $overlayMode := $args.overlayMode | default "dark" -}}
|
||||
{{- if eq $overlayMode "none" }}{{ $overlayMode = "" }}{{ end }}
|
||||
{{- $color := $args.color | default "" -}}
|
||||
{{- $search := $args.search | default site.Params.navigation.search -}}
|
||||
{{- $searchModal := and $search site.Params.navigation.searchModal -}}
|
||||
{{- $enableDarkMode := .mode | default site.Params.main.enableDarkMode -}}
|
||||
{{- $enableDarkMode := .mode | default (or site.Params.main.enableDarkMode site.Params.main.colorMode.enabled) -}}
|
||||
{{- $modes := site.Params.main.modes | default (slice "light" "dark") -}}
|
||||
{{ if isset site.Params.main "enabledarkmode" }}
|
||||
{{ warnf "site parameter %q: deprecated in v%s, use %q instead" "main.enableDarkMode" "1.12.0" "main.colorMode.enabled" }}
|
||||
{{ end }}
|
||||
{{ if isset site.Params.main "modes" }}
|
||||
{{ warnf "site parameter %q: deprecated in v%s, use %q instead" "main.modes" "1.12.0" "main.colorMode.modes" }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
{{- $enableVersions := false -}}
|
||||
{{ $list := site.Params.docs.releases }}
|
||||
@@ -128,8 +83,6 @@
|
||||
{{ $logo = partial "assets/image.html" (dict "src" . "loading" "eager" "title" $title "image-height" $height) }}
|
||||
{{ end }}
|
||||
|
||||
{{- $pre := $args.pre -}}
|
||||
{{- $post := $args.post -}}
|
||||
{{- $class := $args.class -}}
|
||||
|
||||
{{- $contrast := false -}}
|
||||
@@ -143,7 +96,7 @@
|
||||
{{/* Main code */}}
|
||||
<div class="container-fluid {{ if $args.fixed }}fixed-top{{ else if $overlay }}navbar-overlay{{ end }} p-0{{ with $class }} {{ . }}{{ end }}">
|
||||
{{- partial "assets/page-alert.html" (dict "page" $page) -}}
|
||||
<nav class="navbar px-{{ $padding.x }} py-{{ $padding.y }}
|
||||
<nav class="navbar px-{{ $padding.x }} py-{{ $padding.y }} navbar-fs-{{ $fs }} navbar-{{ $args.breakpoint }}-fs
|
||||
{{- if not $overlay }}{{ with $color }} bg-{{ . }}{{ end }}{{ end -}}
|
||||
{{ if $args.fixed }} navbar-fixed-top{{ end }} navbar-expand-{{ $args.breakpoint -}}
|
||||
{{ if $contrast }} navbar-contrast{{ end }}"
|
||||
@@ -158,7 +111,8 @@
|
||||
{{/* Insert sidebar toggler when applicable */}}
|
||||
<div class="d-flex align-items-center">
|
||||
{{- if $page.Scratch.Get "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" }}">
|
||||
<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" }}">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis fa-fw" "spacing" false) -}}
|
||||
</button>
|
||||
{{- else -}}
|
||||
@@ -178,7 +132,8 @@
|
||||
|
||||
{{/* Insert main navigation toggler */}}
|
||||
<div class="d-flex align-items-center">
|
||||
<button class="navbar-toggler main-nav-toggler collapsed p-0" type="button" data-bs-toggle="collapse" data-bs-target="#{{ $id }}-collapse"
|
||||
<button class="navbar-toggler main-nav-toggler collapsed p-0" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#{{ $id }}-collapse"
|
||||
aria-controls="{{ $id }}" aria-expanded="false" aria-label="{{ T "toggleMainNav" }}">
|
||||
<span class="toggler-icon top-bar emphasis"></span>
|
||||
<span class="toggler-icon middle-bar emphasis"></span>
|
||||
@@ -189,117 +144,94 @@
|
||||
|
||||
<div class="navbar-collapse collapse" id="{{ $id }}-collapse">
|
||||
{{/* Insert search input */}}
|
||||
{{- if and $search (not $searchModal) }}
|
||||
{{ partial "assets/search-input.html" (dict "class" (printf "mt-4 mt-%s-0" $args.breakpoint)) }}
|
||||
{{- if and $search.enabled (not $search.modal) }}
|
||||
{{ partial "assets/search-input.html" (dict "class" (printf "mt-4 mt-%s-0 me-%s-3" $args.breakpoint $args.breakpoint)) }}
|
||||
{{ end -}}
|
||||
|
||||
{{/* Render top-menu items (maximum depth of 2) */}}
|
||||
<ul class="navbar-nav {{ if $flex }}d-flex w-100{{ else }}ms-auto{{ end }}">
|
||||
{{- range $menu := $menus -}}
|
||||
{{ if $menu.Params.spacing }}
|
||||
<li class="nav-item flex-grow-1"></li>
|
||||
{{ else }}
|
||||
<li class="nav-item {{ if .HasChildren }} dropdown{{ if $horizontal }} dropdown-horizontal-{{ $args.breakpoint }}{{ end }}{{ end }}">
|
||||
{{- partial "assets/navbar-item.html" (dict "menu" $menu "page" $page) -}}
|
||||
{{- if .HasChildren -}}
|
||||
<ul class="dropdown-menu">
|
||||
{{- range .Children -}}
|
||||
<li>{{- partial "assets/navbar-item.html" (dict "menu" . "parent" $menu "page" $page) -}}</li>
|
||||
{{- end -}}
|
||||
</ul>
|
||||
{{- end -}}
|
||||
</li>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
<ul class="navbar-nav navbar-nav-scroll {{ if $flex }}d-flex w-100{{ else }}ms-auto{{ end }}">
|
||||
{{/* Render top-menu items (maximum depth of 2) */}}
|
||||
{{- partial "assets/helpers/navbar-render-menu.html" (dict
|
||||
"page" $page
|
||||
"menus" $menus
|
||||
"collapsed" $args.collapsed
|
||||
"horizontal" $horizontal
|
||||
"breakpoint" $args.breakpoint
|
||||
"control" false
|
||||
"fs" $fs
|
||||
) }}
|
||||
|
||||
{{/* Insert divider if applicable */}}
|
||||
{{- if and $menus (or $enableLanguage $enableVersions) -}}
|
||||
<li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $args.breakpoint }}-block me-auto">
|
||||
<div class="vr d-none d-md-flex h-100 mx-md-2"></div>
|
||||
</li>
|
||||
<li><hr class="dropdown-divider-bg"></li>
|
||||
{{ partial "inline/divider.html" (dict "breakpoint" $args.breakpoint) }}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Insert version switcher */}}
|
||||
{{- if $enableVersions -}}
|
||||
{{- partial "inline/navbar-versions.html" (dict "page" $page "breakpoint" $args.breakpoint "collapsed" true "id" .id "baseURL" $baseURL) -}}
|
||||
{{- partial "inline/navbar-versions.html" (dict "page" $page "breakpoint" $args.breakpoint "collapsed" false "id" .id "baseURL" $baseURL) -}}
|
||||
{{- partial "assets/helpers/navbar-versions.html" (dict
|
||||
"page" $page
|
||||
"breakpoint" $args.breakpoint
|
||||
"collapsed" true
|
||||
"id" .id
|
||||
"baseURL" $baseURL
|
||||
"fs" $fs
|
||||
) -}}
|
||||
{{- partial "assets/helpers/navbar-versions.html" (dict
|
||||
"page" $page
|
||||
"breakpoint" $args.breakpoint
|
||||
"collapsed" false
|
||||
"id" .id
|
||||
"baseURL" $baseURL
|
||||
"fs" $fs
|
||||
) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Insert language switcher if applicable */}}
|
||||
{{- if $enableLanguage -}}
|
||||
{{- $currentLang := $page.Language.Lang -}}
|
||||
<li class="nav-item dropdown me-auto">
|
||||
<a class="nav-link dropdown-toggle d-{{ $args.breakpoint }}-none" role="button" data-bs-toggle="dropdown" aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas globe fa-fw" "spacing" false) }} {{ T "languageSwitcherLabel" }}
|
||||
</a>
|
||||
<a class="nav-link dropdown-toggle d-none d-{{ $args.breakpoint }}-block" role="button" data-bs-toggle="dropdown" aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas globe fa-fw" "spacing" false) }}
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end " id="language-selector" data-translated="{{ $page.IsTranslated }}">
|
||||
{{- if $page.IsTranslated -}}
|
||||
{{- range $page.AllTranslations -}}
|
||||
<li><a class="dropdown-item {{ if eq .Language.Lang $currentLang }}active{{ end }}" hreflang="{{ .Language.Lang }}" href="{{ .RelPermalink }}">{{ .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>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
</ul>
|
||||
</li>
|
||||
{{ partial "assets/helpers/navbar-languages.html" (dict
|
||||
"page" $page
|
||||
"baseURL" $baseURL
|
||||
"breakpoint" $breakpoint
|
||||
"pretty" $pretty
|
||||
"fs" $fs
|
||||
"icon" $langIcon
|
||||
)}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Insert divider if applicable */}}
|
||||
{{ $hasControls := gt (len (where $menus "Params.control" true)) 0 }}
|
||||
{{ if and (or $menus $enableLanguage $enableVersions) (or $enableDarkMode $search.modal $hasControls) }}
|
||||
{{ partial "inline/divider.html" (dict "breakpoint" $args.breakpoint) }}
|
||||
{{ end }}
|
||||
|
||||
{{/* Insert color mode switcher */}}
|
||||
{{- if $enableDarkMode -}}
|
||||
{{- partial "inline/navbar-mode.html" (dict "size" $args.breakpoint "collapsed" true "id" .id) -}}
|
||||
{{- partial "assets/helpers/navbar-mode.html" (dict
|
||||
"breakpoint" $args.breakpoint
|
||||
"collapsed" true
|
||||
"id" .id
|
||||
"toggle" (site.Params.main.colorMode.toggle)
|
||||
"fs" $fs
|
||||
) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Insert modal search button */}}
|
||||
{{- if $searchModal }}
|
||||
<li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $args.breakpoint }}-block me-auto">
|
||||
<div class="vr d-none d-md-flex h-100 mx-md-2"></div>
|
||||
</li>
|
||||
<li><hr class="dropdown-divider-bg"></li>
|
||||
|
||||
<li class="d-{{ $args.breakpoint }}-none">
|
||||
<a class="nav-link" role="button" data-bs-toggle="modal" data-bs-target="#search-modal" aria-label="{{ T "ui_search" }}" aria-expanded="false">
|
||||
{{ partial "assets/icon.html" (dict "icon" "fas magnifying-glass fa-fw") }} {{ T "ui_search" }}
|
||||
</a>
|
||||
</li>
|
||||
<li class="d-none d-{{ $args.breakpoint }}-block">
|
||||
<a class="nav-link" role="button" data-bs-toggle="modal" data-bs-target="#search-modal" aria-label="{{ T "ui_search" }}" aria-expanded="false">
|
||||
{{ partial "assets/icon.html" (dict "icon" "fas magnifying-glass fa-fw") }}
|
||||
</a>
|
||||
</li>
|
||||
{{- if $search.modal }}
|
||||
{{ $searchItem := dict "Name" (T "ui_search") "Menu" "Main" "Pre" $search.icon "Params" (dict "icon" true) }}
|
||||
{{- partial "assets/helpers/navbar-item.html" (dict "menu" $searchItem "page" $page "modal" "#search-modal" "fs" $fs) -}}
|
||||
{{ end -}}
|
||||
|
||||
{{/* Render custom controls */}}
|
||||
{{- partial "assets/helpers/navbar-render-menu.html" (dict
|
||||
"page" $page
|
||||
"menus" $menus
|
||||
"collapsed" $args.collapsed
|
||||
"horizontal" $horizontal
|
||||
"breakpoint" $args.breakpoint
|
||||
"control" true
|
||||
"fs" $fs
|
||||
) }}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
{{/* Insert modal search element */}}
|
||||
{{- if $searchModal }}
|
||||
<div class="modal fade search-modal" tabindex="-1" id="search-modal" aria-labelledby="searchModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable modal-lg">
|
||||
<div class="modal-content h-50">
|
||||
<div class="modal-header">
|
||||
<div class="w-100">
|
||||
<form class="search position-relative me-auto">
|
||||
<input id="search-input-modal" class="search-input form-control is-search" tabindex="1" type="search" placeholder="{{ T "ui_search" }}..." aria-label="{{ T "ui_search" }}" autocomplete="off">
|
||||
</form>
|
||||
</div>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{{ T "close" }}"></button>
|
||||
</div>
|
||||
<div class="modal-body p-2 search-background">
|
||||
<div class="search-suggestions" data-no-results="{{ T "ui_no_results" }}"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end -}}
|
||||
|
@@ -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) }}
|
||||
|
@@ -1,107 +1,90 @@
|
||||
{{- /*
|
||||
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 }}
|
||||
|
||||
{{ if lt $item.Level $endLevel }}
|
||||
{{ range $item.Headings }}
|
||||
{{ $result = $result | append (partial "inline/toc-item.html" (dict
|
||||
"base" $base
|
||||
"item" .
|
||||
"startLevel" $startLevel
|
||||
"endLevel" $endLevel
|
||||
"maxNumHeadings" $maxNumHeadings
|
||||
)) }}
|
||||
{{ end }}
|
||||
{{ 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 }}
|
||||
|
||||
{{ 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 }}
|
||||
|
@@ -4,175 +4,204 @@
|
||||
Visit gethinode.com/license for more details.
|
||||
*/}}
|
||||
|
||||
{{ $error := false }}
|
||||
{{- $error := false -}}
|
||||
|
||||
{{/* Define inline partials */}}
|
||||
{{ define "_partials/inline/match.html" }}
|
||||
{{ $result := "" }}
|
||||
{{ $matches := slice }}
|
||||
{{ if gt (len .modules) 0 }}
|
||||
{{ range .modules }}
|
||||
{{ $matches = $matches | append (printf "js/modules/%s/**.js" .) }}
|
||||
{{ end }}
|
||||
{{ $result = printf "{%s}" (delimit $matches ",") }}
|
||||
{{ end }}
|
||||
|
||||
{{ return $result }}
|
||||
{{ end }}
|
||||
|
||||
{{ define "_partials/inline/bundle-script.html" }}
|
||||
{{ $page := .page }}
|
||||
{{ $match := .match }}
|
||||
{{ $destination := .destination }}
|
||||
{{ $cat := .cat }}
|
||||
{{ $localize := .localize }}
|
||||
{{ $modules := .modules }}
|
||||
{{ $skipTemplate := .skipTemplate }}
|
||||
{{ $absoluteURL := .absoluteURL }}
|
||||
{{ $state := cond (ne .state "immediate") .state "" }}
|
||||
|
||||
{{ if and $cat (ne $cat "other") }}
|
||||
{{ $destination = path.Join (path.Dir $destination) (printf "%s-%s%s" (path.BaseName $destination) $cat (path.Ext $destination)) }}
|
||||
{{ end }}
|
||||
|
||||
{{ if $localize }}
|
||||
{{ $destination = path.Join (path.Dir $destination) (printf "%s.%s%s" (path.BaseName $destination) $page.Language.Lang (path.Ext $destination)) }}
|
||||
{{ end }}
|
||||
|
||||
{{- $bundle := partial "utilities/bundle.html" (dict
|
||||
"match" $match
|
||||
"filename" $destination
|
||||
"modules" $modules
|
||||
"basepath" "js/modules"
|
||||
"all" true
|
||||
"debugging" site.Params.debugging.showJS
|
||||
) -}}
|
||||
{{- $js := $bundle -}}
|
||||
{{- if not $skipTemplate -}}
|
||||
{{- $js = $bundle | resources.ExecuteAsTemplate $destination $page -}}
|
||||
{{- define "_partials/inline/match.html" -}}
|
||||
{{- $result := "" -}}
|
||||
{{- $matches := slice -}}
|
||||
{{- if gt (len .modules) 0 -}}
|
||||
{{- range .modules -}}
|
||||
{{- $matches = $matches | append (printf "js/modules/%s/**.*js" .) -}}
|
||||
{{- end -}}
|
||||
{{- $result = printf "{%s}" (delimit $matches ",") -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- return $result -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "_partials/inline/bundle-script.html" -}}
|
||||
{{- $page := .page -}}
|
||||
{{- $match := .match -}}
|
||||
{{- $destination := .destination -}}
|
||||
{{- $cat := .cat -}}
|
||||
{{- $localize := .localize -}}
|
||||
{{- $modules := .modules -}}
|
||||
{{- $skipTemplate := .skipTemplate -}}
|
||||
{{- $enableTemplate := .enableTemplate }}
|
||||
{{- $absoluteURL := .absoluteURL -}}
|
||||
{{- $state := cond (ne .state "immediate") .state "" -}}
|
||||
|
||||
{{- if and $cat (ne $cat "other") -}}
|
||||
{{- $destination = path.Join (path.Dir $destination) (printf "%s-%s%s" (path.BaseName $destination) $cat (path.Ext $destination)) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if $localize -}}
|
||||
{{- $destination = path.Join (path.Dir $destination) (printf "%s.%s%s" (path.BaseName $destination) $page.Language.Lang (path.Ext $destination)) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $bundle := partial "utilities/bundlev2.html" (dict
|
||||
"page" $page
|
||||
"match" $match
|
||||
"filename" $destination
|
||||
"modules" $modules
|
||||
"basepath" "js/modules"
|
||||
"all" true
|
||||
"skip-template" $skipTemplate
|
||||
"enable-template" $enableTemplate
|
||||
"debugging" site.Params.debugging.showJS
|
||||
) -}}
|
||||
{{- $js := $bundle.bundle -}}
|
||||
{{- $jsmod := $bundle.module -}}
|
||||
|
||||
{{- if gt (len $js.Content) 0 -}}
|
||||
{{ $integrity := "" }}
|
||||
{{- $integrity := "" -}}
|
||||
{{- if hugo.IsProduction -}}
|
||||
{{ $js = $js | minify | fingerprint -}}
|
||||
{{ $integrity = $js.Data.Integrity }}
|
||||
{{ end -}}
|
||||
{{ partial "templates/script.html" (dict "link" (cond $absoluteURL $js.Permalink $js.RelPermalink) "category" $cat "state" $state "integrity" $integrity) }}
|
||||
{{ end -}}
|
||||
{{ end }}
|
||||
{{- $js = $js | minify | fingerprint -}}
|
||||
{{- $integrity = $js.Data.Integrity -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- partial "templates/script.html" (dict
|
||||
"link" (cond $absoluteURL $js.Permalink $js.RelPermalink)
|
||||
"category" $cat
|
||||
"state" $state
|
||||
"integrity" $integrity
|
||||
) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if gt (len $jsmod.Content) 0 -}}
|
||||
{{- $integrity := "" -}}
|
||||
{{- if hugo.IsProduction -}}
|
||||
{{- $jsmod = $jsmod | minify | fingerprint -}}
|
||||
{{- $integrity = $jsmod.Data.Integrity -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- partial "templates/script.html" (dict
|
||||
"link" (cond $absoluteURL $jsmod.Permalink $jsmod.RelPermalink)
|
||||
"category" $cat
|
||||
"state" $state
|
||||
"integrity" $integrity
|
||||
"script-type" "module"
|
||||
) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Initialize arguments */}}
|
||||
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "scripts" "args" .) }}
|
||||
{{ if $args.err }}
|
||||
{{ partial "utilities/LogErr.html" (dict
|
||||
{{- $args := partial "utilities/InitArgs.html" (dict "structure" "scripts" "args" .) -}}
|
||||
{{- if $args.err -}}
|
||||
{{- partial "utilities/LogErr.html" (dict
|
||||
"partial" "footer/scripts.html"
|
||||
"msg" "Invalid arguments"
|
||||
"details" $args.errmsg
|
||||
"file" page.File
|
||||
)}}
|
||||
{{ $error = true }}
|
||||
{{ end }}
|
||||
{{- $error = true -}}
|
||||
{{- end -}}
|
||||
|
||||
{{ $page := $args.page | default page }}
|
||||
{{- $page := $args.page | default page -}}
|
||||
|
||||
{{/* Initialize local arguments */}}
|
||||
{{ $patterns := dict
|
||||
"other" "js/critical/*.js"
|
||||
"functional" "js/critical/functional/**.js"
|
||||
"analytics" "js/critical/analytics/**.js"
|
||||
"performance" "js/critical/performance/**.js"
|
||||
"advertisement" "js/critical/advertisement/**.js"
|
||||
"core" "{js/*.js,js/vendor/**.js}"
|
||||
{{- $patterns := dict
|
||||
"other" "js/critical/*.*js"
|
||||
"functional" "js/critical/functional/**.*js"
|
||||
"analytics" "js/critical/analytics/**.*js"
|
||||
"performance" "js/critical/performance/**.*js"
|
||||
"advertisement" "js/critical/advertisement/**.*js"
|
||||
"core" "{js/*.*js,js/vendor/**.*js}"
|
||||
}}
|
||||
|
||||
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
|
||||
{{ $state := "immediate" }}
|
||||
{{ $config := $page.Scratch.Get "modules" }}
|
||||
{{- $state := "immediate" -}}
|
||||
{{- $config := $page.Scratch.Get "modules" -}}
|
||||
|
||||
{{ $page_modules := slice }}
|
||||
{{ if reflect.IsMap $page.Params.modules }}
|
||||
{{ $page_modules = $page.Params.modules }}
|
||||
{{ else }}
|
||||
{{ $page_modules = $page_modules | append $page.Params.modules }}
|
||||
{{ end }}
|
||||
{{ with $page.Scratch.Get "dependencies" }}{{ $page_modules = append $page_modules . | uniq }}{{ end }}
|
||||
{{- $page_modules := slice -}}
|
||||
{{- if reflect.IsMap $page.Params.modules -}}
|
||||
{{- $page_modules = $page.Params.modules -}}
|
||||
{{- else -}}
|
||||
{{- $page_modules = $page_modules | append $page.Params.modules -}}
|
||||
{{- end -}}
|
||||
{{- with $page.Scratch.Get "dependencies" -}}{{- $page_modules = append $page_modules . | uniq -}}{{- end -}}
|
||||
|
||||
{{- $categories := dict "other" slice -}}
|
||||
|
||||
{{ $modules := slice }}
|
||||
{{ if eq $args.type "critical" }}
|
||||
{{- $modules := slice -}}
|
||||
{{- if eq $args.type "critical" -}}
|
||||
{{- $modules = $config.critical -}}
|
||||
{{ $categories = merge $categories (dict "functional" slice "analytics" slice "performance" slice "advertisement" slice) }}
|
||||
{{ else if eq $args.type "core" }}
|
||||
{{- $categories = merge $categories (dict "functional" slice "analytics" slice "performance" slice "advertisement" slice) -}}
|
||||
{{- else if eq $args.type "core" -}}
|
||||
{{- $modules = $config.core -}}
|
||||
{{ else if eq $args.type "optional" }}
|
||||
{{- else if eq $args.type "optional" -}}
|
||||
{{- $modules = $config.optional | intersect $page_modules -}}
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
|
||||
{{ range $cat, $val := $config.categories }}
|
||||
{{ $categories = merge $categories (dict $cat (intersect $val $modules)) }}
|
||||
{{ end }}
|
||||
{{- range $cat, $val := $config.categories -}}
|
||||
{{- $categories = merge $categories (dict $cat (intersect $val $modules)) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{ $localize := false }}
|
||||
{{ if gt (intersect (or $config.localize slice) $modules | len) 0 }}{{ $localize = true }}{{ end }}
|
||||
{{- $localize := false -}}
|
||||
{{- if gt (intersect (or $config.localize slice) $modules | len) 0 }}{{ $localize = true }}{{ end -}}
|
||||
|
||||
{{ $skipTemplate := false }}
|
||||
{{ if gt (intersect (or $config.skipTemplate slice) $modules | len) 0 }}{{ $skipTemplate = true }}{{ end }}
|
||||
{{- $skipTemplate := false -}}
|
||||
{{- if gt (intersect (or $config.skipTemplate slice) $modules | len) 0 }}{{ $skipTemplate = true }}{{ end -}}
|
||||
|
||||
{{/* Main code */}}
|
||||
{{ if not $error }}
|
||||
{{- if not $error -}}
|
||||
{{/* include external scripts first */}}
|
||||
{{ range $mod, $cfg := $config.modules }}
|
||||
{{ if in $modules $mod }}
|
||||
{{ if or (index $cfg "local") (not hugo.IsServer) }}
|
||||
{{ with index $cfg "url" }}
|
||||
{{ partial "templates/script.html" (dict "link" . "category" (index $cfg "category") "state" (index $cfg "state")) }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{- range $mod, $cfg := $config.modules -}}
|
||||
{{- if in $modules $mod -}}
|
||||
{{- if or (index $cfg "local") (not hugo.IsServer) -}}
|
||||
{{- with index $cfg "url" -}}
|
||||
{{- partial "templates/script.html" (dict
|
||||
"link" .
|
||||
"category" (index $cfg "category")
|
||||
"state" (index $cfg "state"))
|
||||
-}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Bundle the critical and core scripts by category */}}
|
||||
{{ if ne $args.type "optional" }}
|
||||
{{ range $cat, $val := $categories }}
|
||||
{{ if or (gt ($val | len) 0) (eq $args.type "critical") }}
|
||||
{{ $match := "" }}
|
||||
{{ if eq $args.type "critical" }}
|
||||
{{ $match = index $patterns $cat }}
|
||||
{{ else if eq $cat "other" }}
|
||||
{{ $match = index $patterns $args.type }}
|
||||
{{ end }}
|
||||
{{- if ne $args.type "optional" -}}
|
||||
{{- range $cat, $val := $categories -}}
|
||||
{{- if or (gt ($val | len) 0) (eq $args.type "critical") -}}
|
||||
{{- $match := "" -}}
|
||||
{{- if eq $args.type "critical" -}}
|
||||
{{- $match = index $patterns $cat -}}
|
||||
{{- else if eq $cat "other" -}}
|
||||
{{- $match = index $patterns $args.type -}}
|
||||
{{- end -}}
|
||||
|
||||
{{ partial "inline/bundle-script.html" (dict
|
||||
"page" $page
|
||||
"match" $match
|
||||
"destination" (printf "js/%s.bundle.js" $args.type)
|
||||
"cat" $cat
|
||||
"modules" $val
|
||||
"localize" $localize
|
||||
"skipTemplate" $skipTemplate
|
||||
"absoluteURL" $absoluteURL
|
||||
"state" (cond (eq $args.type "critical") "immediate" "async")
|
||||
{{- partial "inline/bundle-script.html" (dict
|
||||
"page" $page
|
||||
"match" $match
|
||||
"destination" (printf "js/%s.bundle.js" $args.type)
|
||||
"cat" $cat
|
||||
"modules" $val
|
||||
"localize" $localize
|
||||
"skipTemplate" $skipTemplate
|
||||
"absoluteURL" $absoluteURL
|
||||
"state" (cond (eq $args.type "critical") "immediate" "async")
|
||||
)}}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
{{/* Bundle the optional scripts by module name and category */}}
|
||||
{{ range $cat, $val := $categories }}
|
||||
{{ range $val }}
|
||||
{{ $modconfig := index $config.modules . }}
|
||||
{{ partial "inline/bundle-script.html" (dict
|
||||
"page" $page
|
||||
"destination" (printf "js/%s.js" .)
|
||||
"cat" $cat
|
||||
"modules" (slice .)
|
||||
"localize" $modconfig.localize
|
||||
"skipTemplate" $modconfig.disabletemplate
|
||||
"absoluteURL" $absoluteURL
|
||||
"state" $modconfig.state
|
||||
{{- range $cat, $val := $categories -}}
|
||||
{{- range $val -}}
|
||||
{{- $modconfig := index $config.modules . -}}
|
||||
{{- partial "inline/bundle-script.html" (dict
|
||||
"page" $page
|
||||
"destination" (printf "js/%s.js" .)
|
||||
"cat" $cat
|
||||
"modules" (slice .)
|
||||
"localize" $modconfig.localize
|
||||
"skipTemplate" $modconfig.disabletemplate
|
||||
"enableTemplate" $modconfig.enableTemplate
|
||||
"absoluteURL" $absoluteURL
|
||||
"state" $modconfig.state
|
||||
)}}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
@@ -46,7 +46,7 @@
|
||||
{{ if eq .Kind "404" -}}
|
||||
<meta name="robots" content="noindex, follow">
|
||||
{{ else }}
|
||||
{{ with or .Params.robots .Params.meta.robots -}}
|
||||
{{ with or .Params.robots .Params.meta.robots .Site.Params.meta.robots -}}
|
||||
<meta name="robots" content="{{ . }}">
|
||||
{{ else -}}
|
||||
<meta name="robots" content="index, follow">
|
||||
|
@@ -60,17 +60,30 @@
|
||||
"navbar-offset-xs" $navbarOffsetXS
|
||||
"navbar-size" (site.Params.navigation.size | default "md")
|
||||
"overlay-offset" $overlayOffset
|
||||
"enable-dark-mode" (printf "%t" ((default true site.Params.main.enableDarkMode)))
|
||||
"enable-dark-mode" (printf "%t" ((default true (or site.Params.main.enableDarkMode site.Params.main.colorMode.enabled))))
|
||||
"import-fonts" (printf "%t" (not (hasPrefix (lower site.Params.style.themeFontPath) "http")))
|
||||
"dark-mode-shade" (default "0%" site.Params.style.darkModeShade)
|
||||
"dark-mode-tint" (default "0%" site.Params.style.darkModeTint)
|
||||
-}}
|
||||
|
||||
{{- $options := (dict "transpiler" $transpiler "silenceDeprecations" $silence "targetPath" $target "enableSourceMap" (not hugo.IsProduction) "vars" $vars) -}}
|
||||
{{- $bundle := partial "utilities/bundle.html" (dict "match" $source "filename" (printf "scss/bundle-%d.scss" now.UnixNano) "modules" $modules "basepath" "scss" "debugging" site.Params.debugging.showSCSS) -}}
|
||||
{{- $options := (dict
|
||||
"transpiler" $transpiler
|
||||
"silenceDeprecations" $silence
|
||||
"targetPath" $target
|
||||
"enableSourceMap" (not hugo.IsProduction)
|
||||
"vars" $vars
|
||||
) -}}
|
||||
{{- $bundle := partial "utilities/bundlev2.html" (dict
|
||||
"page" page
|
||||
"match" $source
|
||||
"filename" (printf "scss/bundle-%d.scss" now.UnixNano)
|
||||
"modules" $modules
|
||||
"basepath" "scss"
|
||||
"debugging" site.Params.debugging.showSCSS
|
||||
) -}}
|
||||
|
||||
{{- if gt ($bundle.Content | len) 0 }}
|
||||
{{- $css := $bundle | resources.ExecuteAsTemplate $target . | toCSS $options -}}
|
||||
{{- if gt ($bundle.bundle.Content | len) 0 }}
|
||||
{{- $css := $bundle.bundle | resources.ExecuteAsTemplate $target . | toCSS $options -}}
|
||||
|
||||
{{ if $core }}
|
||||
{{- partial "head/icons.html" (dict "css" $css) -}}
|
||||
|
@@ -6,7 +6,7 @@
|
||||
|
||||
{{/* Initialize arguments */}}
|
||||
{{- $args := partial "utilities/InitArgs.html" (dict "structure" "script" "args" .) -}}
|
||||
{{ if or $args.err $args.warnmsg }}
|
||||
{{- if or $args.err $args.warnmsg -}}
|
||||
{{- partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
|
||||
"partial" "templates/script.html"
|
||||
"warnid" "warn-invalid-arguments"
|
||||
@@ -16,15 +16,15 @@
|
||||
) -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
{{/* Initialize local arguments */}}
|
||||
{{- $category := cond (ne $args.category "other") $args.category "" -}}
|
||||
|
||||
{{/* Main code */}}
|
||||
{{- if not $args.err -}}
|
||||
<script src="{{ $args.link }}"
|
||||
{{/* with $args.scriptType generates an error when using type="{{ . }}", possibly a Hugo bug */}}
|
||||
{{- with $args.scriptType }}{{ printf ` type="%s"` . | safeHTMLAttr }}{{ end -}}
|
||||
{{- with $category }} data-category="{{ . }}"{{ end -}}
|
||||
{{- with $args.integrity }}integrity="{{ . }}" crossorigin="anonymous"{{ end }}
|
||||
{{- with $args.state }} {{ . | safeHTMLAttr }}{{ end -}}>
|
||||
</script>
|
||||
{{- with $args.integrity }} integrity="{{ . }}" crossorigin="anonymous"{{ end }}
|
||||
{{- with $args.state }} {{ . | safeHTMLAttr }}{{ end -}}></script>
|
||||
{{- end -}}
|
@@ -45,14 +45,14 @@
|
||||
{{ end }}
|
||||
|
||||
{{ $modules := dict
|
||||
"modules" $modules
|
||||
"critical" $critical
|
||||
"core" $core
|
||||
"optional" $optional
|
||||
"excludeSCSS" $excludeSCSS
|
||||
"modules" $modules
|
||||
"critical" $critical
|
||||
"core" $core
|
||||
"optional" $optional
|
||||
"excludeSCSS" $excludeSCSS
|
||||
"disableTemplate" $disableTemplate
|
||||
"localize" $localize
|
||||
"categories" $category
|
||||
"localize" $localize
|
||||
"categories" $category
|
||||
}}
|
||||
|
||||
{{- if and .IsPage (not (in $core "bootstrap")) -}}
|
||||
|
@@ -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 }}
|
@@ -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 -}}
|
@@ -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 -}}
|
@@ -23,8 +23,9 @@
|
||||
{{- /* Define main breakpoint */ -}}
|
||||
{{- $.Scratch.Set "breakpoint" (partialCached "utilities/GetBreakpoint.html" .) }}
|
||||
|
||||
{{- /* Render blocks and establish overlay mode */ -}}
|
||||
{{- /* Prepare content blocks and establish overlay mode */ -}}
|
||||
{{ $blocks := partial "utilities/RenderContentBlocks.html" (dict "page" . "blocks" .Params.content_blocks) }}
|
||||
{{ $.Scratch.Set "blocks" $blocks }}
|
||||
{{ $overlayMode := $.Scratch.Get "overlayMode" }}
|
||||
|
||||
{{- /* Define base URL */ -}}
|
||||
@@ -51,7 +52,6 @@
|
||||
-}}
|
||||
|
||||
<div id="container" class="main">
|
||||
{{ $blocks }}
|
||||
{{ block "main" . }}{{ end -}}
|
||||
</div>
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
{{- partial "footer/footer.html" . -}}
|
||||
{{- partial "footer/toast-container.html" . -}}
|
||||
{{- partial "assets/symbols.html" . -}}
|
||||
{{- partial "assets/modals.html" . -}}
|
||||
{{- partialCached "footer/scripts.html" (dict "page" .) -}}
|
||||
{{- partial "footer/scripts.html" (dict "page" . "type" "optional") -}}
|
||||
</body>
|
||||
|
@@ -1,5 +1,8 @@
|
||||
{{ define "main" -}}
|
||||
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
|
||||
{{- $blocks := $.Scratch.Get "blocks" -}}
|
||||
|
||||
{{ $blocks | safeHTML }}
|
||||
|
||||
<div class="container-xxl flex-fill p-4 px-xxl-0">
|
||||
{{ .Render "body" }}
|
||||
|
@@ -1,4 +1,5 @@
|
||||
{{ define "main" -}}
|
||||
{{- $blocks := $.Scratch.Get "blocks" -}}
|
||||
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
|
||||
{{- $sidebar := partial "page/sidebar" . -}}
|
||||
{{- $toc := partial "page/panel-toc" . -}}
|
||||
@@ -15,6 +16,8 @@
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ $blocks | safeHTML }}
|
||||
|
||||
<div class="container-xxl flex-fill p-4 px-xxl-0">
|
||||
<div class="row row-cols-1 row-cols-{{ $breakpoint.current }}-2 row-cols-{{ $breakpoint.next }}-3">
|
||||
<div class="col col-{{ $breakpoint.next }}-2 d-none d-{{ $breakpoint.next }}-block sidebar-overflow sticky-top pt-5">
|
||||
|
994
package-lock.json
generated
994
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
14
package.json
14
package.json
@@ -73,9 +73,9 @@
|
||||
"dependencies": {
|
||||
"@fullhuman/postcss-purgecss": "^7.0.2",
|
||||
"autoprefixer": "^10.4.21",
|
||||
"cssnano": "^7.0.7",
|
||||
"cssnano-preset-advanced": "^7.0.7",
|
||||
"hugo-bin": "0.145.0",
|
||||
"cssnano": "^7.1.1",
|
||||
"cssnano-preset-advanced": "^7.0.9",
|
||||
"hugo-bin": "0.147.0",
|
||||
"purgecss-whitelister": "^2.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -85,9 +85,9 @@
|
||||
"@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.30.1",
|
||||
"eslint": "^9.35.0",
|
||||
"husky": "^9.1.7",
|
||||
"markdownlint-cli2": "^0.18.1",
|
||||
"neostandard": "^0.12.2",
|
||||
@@ -96,9 +96,9 @@
|
||||
"postcss-cli": "^11.0.1",
|
||||
"replace-in-files-cli": "^3.0.0",
|
||||
"rimraf": "^6.0.1",
|
||||
"semantic-release": "^24.2.6",
|
||||
"semantic-release": "^24.2.7",
|
||||
"shx": "^0.4.0",
|
||||
"stylelint": "^16.21.1",
|
||||
"stylelint": "^16.24.0",
|
||||
"stylelint-config-standard-scss": "^15.0.1"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
|
Reference in New Issue
Block a user