mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-16 06:23:11 +00:00
Compare commits
118 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
a44e5dcafc | ||
![]() |
8493154844 | ||
![]() |
8a8a644ccf | ||
![]() |
d390d2eb4e | ||
![]() |
2e3bca1a34 | ||
![]() |
9a00e6c4c1 | ||
![]() |
3dcbe0b62c | ||
![]() |
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 | ||
![]() |
8f5f1caef6 | ||
![]() |
d342496336 | ||
![]() |
24c5ecda82 | ||
![]() |
dbf3be5528 | ||
![]() |
d4e516065d | ||
![]() |
5b2b996948 | ||
![]() |
33056742af | ||
![]() |
8fa4b251b1 | ||
![]() |
dcbbf2a55a | ||
![]() |
c7a4edee1f | ||
![]() |
f69f536dca | ||
![]() |
4bd20f6bb0 | ||
![]() |
6db9cbec0e | ||
![]() |
0170417ddc | ||
![]() |
3eb2e36429 | ||
![]() |
773b365b1c | ||
![]() |
550945f0f6 | ||
![]() |
b60ad8fd0b | ||
![]() |
38d1ddb86d | ||
![]() |
17287492e5 | ||
![]() |
992d724a6f | ||
![]() |
0b81eba373 | ||
![]() |
0a5e8bed92 | ||
![]() |
a387adca66 | ||
![]() |
5341db7db2 | ||
![]() |
f4d59a0324 | ||
![]() |
6c068898a3 | ||
![]() |
eec6697ff6 | ||
![]() |
26402fb5be | ||
![]() |
e08aebf928 | ||
![]() |
787ad2eb91 | ||
![]() |
8f137b0c54 | ||
![]() |
a979dd8d58 | ||
![]() |
b77a125485 | ||
![]() |
004da99765 | ||
![]() |
907c8ac800 | ||
![]() |
a8efc27771 | ||
![]() |
3bf8da3767 | ||
![]() |
131de0c064 | ||
![]() |
a914fe18e8 | ||
![]() |
a855a41c13 | ||
![]() |
c41cd0650e | ||
![]() |
a83bab6689 | ||
![]() |
03a099ae66 | ||
![]() |
cd837cf116 | ||
![]() |
8cffd358aa | ||
![]() |
0d33a15e98 | ||
![]() |
9be691eb6b | ||
![]() |
fd727228d7 | ||
![]() |
a9f1cd098d | ||
![]() |
dc1c358cfa | ||
![]() |
0d24dc445d | ||
![]() |
f6f034252b | ||
![]() |
863b81efbb | ||
![]() |
9b0683d176 | ||
![]() |
dd1b2eb97f | ||
![]() |
3f6dc3b2d7 | ||
![]() |
873277b691 | ||
![]() |
7a456a12d2 | ||
![]() |
b437b414b0 |
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@v4
|
||||
|
||||
# Add any setup steps before running the `github/codeql-action/init` action.
|
||||
# This includes steps like installing compilers or runtimes (`actions/setup-node`
|
||||
# or others). This is typically only required for manual builds.
|
||||
# - name: Setup runtime (example)
|
||||
# uses: actions/setup-example@v1
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
build-mode: ${{ matrix.build-mode }}
|
||||
config-file: ./.github/codeql/codeql-config.yml
|
||||
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
|
||||
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||
# queries: security-extended,security-and-quality
|
||||
|
||||
# If the analyze step fails for one of the languages you are analyzing with
|
||||
# "We were unable to automatically build your code", modify the matrix above
|
||||
# to set the build mode to "manual" for that language. Then modify this step
|
||||
# to build your code.
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||
- if: matrix.build-mode == 'manual'
|
||||
shell: bash
|
||||
run: |
|
||||
echo 'If you are using a "manual" build mode for one or more of the' \
|
||||
'languages you are analyzing, replace this with the commands to build' \
|
||||
'your code, for example:'
|
||||
echo ' make bootstrap'
|
||||
echo ' make release'
|
||||
exit 1
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v3
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
4
.github/workflows/lint-build.yml
vendored
4
.github/workflows/lint-build.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
@@ -53,7 +53,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@v5
|
||||
|
2
.github/workflows/mod-update.yml
vendored
2
.github/workflows/mod-update.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
|
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
|
@@ -15,9 +15,6 @@
|
||||
<a href="https://gethinode.com">
|
||||
<img src="https://img.shields.io/badge/theme-hinode-blue" alt="Hinode theme">
|
||||
</a>
|
||||
<a href="https://www.npmjs.com/package/%40gethinode/hinode">
|
||||
<img src="https://img.shields.io/npm/v/%40gethinode/hinode" alt="npm package">
|
||||
</a>
|
||||
<a href="https://app.netlify.com/sites/gethinode-demo/deploys">
|
||||
<img src="https://img.shields.io/netlify/0ad42e3e-fdfa-4d37-8e26-58badd429a67" alt="Netlify Status">
|
||||
</a>
|
||||
|
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()
|
||||
}
|
||||
})
|
45
assets/js/nav.js
Normal file
45
assets/js/nav.js
Normal file
@@ -0,0 +1,45 @@
|
||||
function updateDropdown (element, id, label) {
|
||||
const dropdown = document.getElementById(element)
|
||||
if (dropdown != null) {
|
||||
dropdown.querySelector('.dropdown-toggle').textContent = label
|
||||
dropdown.querySelectorAll('.panel-dropdown .dropdown-item').forEach(item => {
|
||||
item.classList.remove('active')
|
||||
let target = item.getAttribute('data-link')
|
||||
if (target != null) {
|
||||
target = target.replace(/^#+/, '')
|
||||
if (target === id) {
|
||||
item.classList.add('active')
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('.panel-dropdown').forEach(trigger => {
|
||||
trigger.addEventListener('hide.bs.dropdown', event => {
|
||||
if (event.clickEvent != null) {
|
||||
let target = event.clickEvent.srcElement.getAttribute('data-link')
|
||||
if (target != null) {
|
||||
trigger.querySelectorAll('.panel-dropdown .dropdown-item').forEach(item => {
|
||||
item.classList.remove('active')
|
||||
})
|
||||
target = target.replace(/^#+/, '')
|
||||
const btn = document.getElementById(target)
|
||||
if (btn != null) {
|
||||
event.clickEvent.srcElement.classList.add('active')
|
||||
trigger.querySelector('.dropdown-toggle').textContent = event.clickEvent.srcElement.textContent
|
||||
btn.click()
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
document.querySelectorAll('.nav-panel .nav-link').forEach(trigger => {
|
||||
trigger.addEventListener('click', event => {
|
||||
const companion = event.srcElement.parentElement.parentElement.getAttribute('data-companion')
|
||||
if (companion != null) {
|
||||
updateDropdown(companion, trigger.getAttribute('id'), trigger.textContent.trim())
|
||||
}
|
||||
})
|
||||
})
|
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 {
|
||||
|
@@ -319,3 +319,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;
|
||||
|
@@ -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;
|
||||
}
|
@@ -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;
|
||||
|
@@ -5,6 +5,7 @@
|
||||
@import "modules/bookshop/components/cta/cta";
|
||||
@import "modules/bookshop/components/faq/faq";
|
||||
@import "modules/bookshop/components/hero/hero";
|
||||
@import "modules/bookshop/components/panels/panels";
|
||||
@import "modules/bookshop/components/releases/releases";
|
||||
@import "modules/bookshop/components/separator/separator";
|
||||
@import "modules/bookshop/components/video-message/video-message";
|
||||
|
@@ -27,6 +27,8 @@ blueprint:
|
||||
more:
|
||||
title:
|
||||
link:
|
||||
icon-rounded:
|
||||
icon-style:
|
||||
cols:
|
||||
padding:
|
||||
limit:
|
||||
|
@@ -19,6 +19,10 @@
|
||||
{{ $error = $args.err }}
|
||||
{{ end }}
|
||||
|
||||
{{/* Initialize global arguments */}}
|
||||
{{- $padding := partial "utilities/GetPadding.html" -}}
|
||||
|
||||
{{/* Initialize local variables */}}
|
||||
{{ $pages := slice }}
|
||||
{{ $result := partial "assets/live-pages.html" (dict
|
||||
"page" $args.page
|
||||
@@ -60,9 +64,14 @@
|
||||
{{ $paginate = false }}
|
||||
{{ end }}
|
||||
|
||||
<!-- Main code -->
|
||||
{{/* Main code */}}
|
||||
{{ if not $error }}
|
||||
{{- partial "assets/section-title.html" (dict "heading" $args.heading "justify" $args.justify) -}}
|
||||
{{ if or (gt (len $pages) 0) (not $args.hideEmpty) }}
|
||||
{{- partial "assets/section-title.html" (dict
|
||||
"heading" $args.heading
|
||||
"justify" $args.justify
|
||||
"class" (printf "pb-%d" $padding.y))
|
||||
-}}
|
||||
|
||||
{{ $partial := "assets/card-group.html" }}
|
||||
{{ $params := dict }}
|
||||
@@ -72,13 +81,14 @@
|
||||
"limit" $args.limit
|
||||
"cols" $args.cols
|
||||
"icon-rounded" $args.iconRounded
|
||||
"icon-style" $args.iconStyle
|
||||
"href" (cond $moreButton $moreLink "")
|
||||
"href-title" (cond $moreButton $moreTitle "")
|
||||
"href-force" (gt $result.total (len $result.pages))
|
||||
)}}
|
||||
|
||||
{{ if $args.scroll }}
|
||||
{{ $partial := "assets/stack.html" }}
|
||||
{{ $partial = "assets/stack.html" }}
|
||||
{{ $params = merge $params (dict
|
||||
"header-style" "none"
|
||||
"body-style" "title"
|
||||
@@ -95,7 +105,6 @@
|
||||
"footer-style" $args.footerStyle
|
||||
"padding" $args.padding
|
||||
"class" (or $args.class "border-0")
|
||||
"icon-style" "fa-2x"
|
||||
"align" "start"
|
||||
"orientation" $args.orientation
|
||||
"hook" "assets/live-card.html"
|
||||
@@ -103,5 +112,10 @@
|
||||
"paginate" $paginate
|
||||
) -}}
|
||||
{{ end }}
|
||||
{{ if gt (len $pages) 0 }}
|
||||
{{ partial $partial $params }}
|
||||
{{ else }}
|
||||
<p class="pt-{{ $padding.y }}">{{- T "emptyList" }}.</p>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
@@ -17,6 +17,7 @@ blueprint:
|
||||
width:
|
||||
cols:
|
||||
icon-rounded:
|
||||
icon-style:
|
||||
padding:
|
||||
background:
|
||||
backdrop:
|
||||
@@ -32,3 +33,4 @@ blueprint:
|
||||
class:
|
||||
width:
|
||||
justify:
|
||||
align:
|
||||
|
@@ -21,6 +21,7 @@
|
||||
|
||||
{{/* Initialize global arguments */}}
|
||||
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
|
||||
{{- $padding := partial "utilities/GetPadding.html" -}}
|
||||
|
||||
{{/* Initialize local variables */}}
|
||||
{{ $list := slice }}
|
||||
@@ -34,37 +35,46 @@
|
||||
) }}
|
||||
{{ end}}
|
||||
|
||||
{{/* Main code */}}
|
||||
{{ if not $error }}
|
||||
{{- partial "assets/section-title.html" (dict "heading" $args.heading "justify" $args.justify) -}}
|
||||
{{- partial "assets/section-title.html" (dict
|
||||
"heading" $args.heading
|
||||
"justify" $args.justify
|
||||
"class" (printf "pb-%d" $padding.y))
|
||||
-}}
|
||||
|
||||
{{/* Layout for small screens */}}
|
||||
{{- partial "assets/card-group.html" (dict
|
||||
"page" page
|
||||
"list" $list
|
||||
"class" (printf "border-0 card-icon-primary d-%s-none %s" $breakpoint.prev $args.class)
|
||||
"class" (printf "border-0 card-icon-primary %s" (or $args.class ""))
|
||||
"wrapper" (printf "d-%s-none" $breakpoint.prev)
|
||||
"cols" $args.cols
|
||||
"gutter" "4"
|
||||
"padding" $args.padding
|
||||
"header-style" "none"
|
||||
"footer-style" "none"
|
||||
"icon-rounded" $args.iconRounded
|
||||
"icon-style" "fa-2x"
|
||||
"align" "start"
|
||||
"icon-style" (or $args.iconStyle "fa-2x")
|
||||
"align" $args.align
|
||||
"orientation" ($args.orientation | default "horizontal-sm")
|
||||
"hook" "assets/live-card.html"
|
||||
) -}}
|
||||
|
||||
{{/* Layout for regular screens */}}
|
||||
{{- partial "assets/card-group.html" (dict
|
||||
"page" page
|
||||
"list" $list
|
||||
"class" (printf "border-0 card-icon-primary d-none d-%s-block %s" $breakpoint.prev $args.class)
|
||||
"class" (printf "border-0 card-icon-primary %s" (or $args.class ""))
|
||||
"wrapper" (printf "d-none d-%s-block" $breakpoint.prev)
|
||||
"cols" $args.cols
|
||||
"gutter" "4"
|
||||
"padding" $args.padding
|
||||
"header-style" "none"
|
||||
"footer-style" "none"
|
||||
"icon-rounded" $args.iconRounded
|
||||
"icon-style" "fa-2x"
|
||||
"align" "start"
|
||||
"icon-style" (or $args.iconStyle "fa-2x")
|
||||
"align" $args.align
|
||||
"orientation" ($args.orientation | default "stacked")
|
||||
"hook" "assets/live-card.html"
|
||||
) -}}
|
||||
|
@@ -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);
|
||||
|
@@ -16,15 +16,24 @@
|
||||
)}}
|
||||
{{ end }}
|
||||
|
||||
{{/* Initialize global arguments */}}
|
||||
{{- $padding := partial "utilities/GetPadding.html" -}}
|
||||
|
||||
{{/* Main code */}}
|
||||
{{ if not $args.err }}
|
||||
{{ $color := "" }}
|
||||
{{ if $args.contrast }}{{ $color = "white" }}{{ end }}
|
||||
{{- partial "assets/section-title.html" (dict "heading" $args.heading "color" $color "justify" $args.justify) -}}
|
||||
{{- partial "assets/section-title.html" (dict
|
||||
"heading" $args.heading
|
||||
"justify" $args.justify
|
||||
"class" (printf "pb-%d" $padding.y))
|
||||
-}}
|
||||
|
||||
{{ $class := "" }}
|
||||
{{ $id := printf "faq-%s" (md5 (delimit (slice . now) "-")) }}
|
||||
|
||||
<div id="{{ $id }}" class="accordion accordion-faq {{ if $args.contrast }}accordion-faq-contrast text-white {{ end }}accordion-flush mb-3{{ with $class }} {{ . }}{{ end }} col-12 col-md-6 mx-auto">
|
||||
<div id="{{ $id }}" class="accordion accordion-faq {{ if $args.contrast }}accordion-faq-contrast text-white {{ end -}}
|
||||
accordion-flush{{ with $class }} {{ . }}{{ end }} col-12 col-md-6 mx-auto">
|
||||
{{ range $index, $item := $args.items }}
|
||||
<div class="accordion-item">
|
||||
{{- with $item.title -}}
|
||||
|
35
component-library/components/panels/panels.bookshop.yml
Normal file
35
component-library/components/panels/panels.bookshop.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
# Metadata about this component, to be used in the CMS
|
||||
spec:
|
||||
structures:
|
||||
- content_blocks
|
||||
label: Panels
|
||||
description: Introduction section
|
||||
icon: check
|
||||
tags: []
|
||||
|
||||
# Defines the structure of this component, as well as the default values
|
||||
blueprint:
|
||||
heading:
|
||||
preheading:
|
||||
heading:
|
||||
content:
|
||||
align:
|
||||
width:
|
||||
cols:
|
||||
padding:
|
||||
background:
|
||||
backdrop:
|
||||
color:
|
||||
subtle:
|
||||
elements:
|
||||
- title:
|
||||
icon:
|
||||
image:
|
||||
mode:
|
||||
content:
|
||||
tab-type:
|
||||
ratio:
|
||||
responsive:
|
||||
class:
|
||||
width:
|
||||
justify:
|
87
component-library/components/panels/panels.hugo.html
Normal file
87
component-library/components/panels/panels.hugo.html
Normal file
@@ -0,0 +1,87 @@
|
||||
{{/*
|
||||
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.
|
||||
*/}}
|
||||
|
||||
{{ $error := false }}
|
||||
|
||||
{{/* Initialize arguments */}}
|
||||
{{ $args := partial "utilities/InitArgs.html" (dict "bookshop" "panels" "args" .)}}
|
||||
{{ if or $args.err $args.warnmsg }}
|
||||
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
|
||||
"partial" "component-library/components/panels/panels.hugo.html"
|
||||
"warnid" "warn-invalid-arguments"
|
||||
"msg" "Invalid arguments"
|
||||
"details" ($args.errmsg | append $args.warnmsg)
|
||||
"file" page.File
|
||||
)}}
|
||||
{{ $error = $args.err }}
|
||||
{{ end }}
|
||||
|
||||
{{/* Initialize global arguments */}}
|
||||
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
|
||||
{{- $padding := partial "utilities/GetPadding.html" -}}
|
||||
|
||||
{{/* Initialize local variables */}}
|
||||
{{ $list := slice }}
|
||||
{{ $titles := slice }}
|
||||
{{ $toc := slice }}
|
||||
{{ $parentID := printf "panel-%v" (cond (isset . "_ordinal") (index . "_ordinal") (md5 (delimit (slice . now) "-"))) }}
|
||||
{{ $inner := "" }}
|
||||
{{ range $i, $element := $args.elements }}
|
||||
{{ $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
|
||||
)
|
||||
}}
|
||||
|
||||
{{- $output := partial "assets/nav-item.html" (dict
|
||||
"page" page
|
||||
"id" $i
|
||||
"parent-id" $parentID
|
||||
"fade" false
|
||||
"title" $element.title
|
||||
"show" (eq $i 0)
|
||||
"raw" $hero
|
||||
)
|
||||
-}}
|
||||
|
||||
{{ $inner = printf "%s\n%s" $inner $output }}
|
||||
{{ $titles = $titles | append $element.title }}
|
||||
{{ end}}
|
||||
|
||||
{{/* Main code */}}
|
||||
{{ if not $error }}
|
||||
{{- partial "assets/section-title.html" (dict
|
||||
"heading" $args.heading
|
||||
"justify" $args.justify
|
||||
"class" (printf "pb-%d" $padding.y))
|
||||
-}}
|
||||
|
||||
{{- partial "assets/nav.html" (dict
|
||||
"id" (or $args.id $parentID)
|
||||
"page" page
|
||||
"nav-items" $inner
|
||||
"nav-titles" $titles
|
||||
"tab-type" $args.tabType
|
||||
"vertical" $args.vertical
|
||||
"word-wrap" $args.wordWrap
|
||||
"class" $args.class
|
||||
"pane" $args.pane
|
||||
"width" $args.width
|
||||
"responsive" $args.responsive
|
||||
)
|
||||
-}}
|
||||
{{ end }}
|
||||
|
13
component-library/components/panels/panels.scss
Normal file
13
component-library/components/panels/panels.scss
Normal file
@@ -0,0 +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};
|
||||
}
|
@@ -6,3 +6,5 @@ spec:
|
||||
description: Inserts a horizontal page section separator
|
||||
icon: horizontal_rule
|
||||
tags: []
|
||||
|
||||
blueprint:
|
||||
|
@@ -4,7 +4,7 @@
|
||||
Visit gethinode.com/license for more details.
|
||||
*/}}
|
||||
|
||||
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "separator" "args" .) }}
|
||||
{{ $args := partial "utilities/InitArgs.html" (dict "bookshop" "separator" "args" .) }}
|
||||
{{ if or $args.err $args.warnmsg }}
|
||||
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
|
||||
"partial" "component-library/components/separator/separator.hugo.html"
|
||||
|
@@ -24,12 +24,14 @@ blueprint:
|
||||
link-type:
|
||||
orientation:
|
||||
icon-rounded:
|
||||
icon-style:
|
||||
video:
|
||||
provider:
|
||||
account:
|
||||
media-id:
|
||||
autoplay:
|
||||
query-args:
|
||||
color:
|
||||
cols:
|
||||
messages:
|
||||
- title:
|
||||
|
@@ -16,6 +16,7 @@
|
||||
)}}
|
||||
{{ end }}
|
||||
|
||||
{{/* Initialize global variables */}}
|
||||
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
|
||||
{{- $padding := partial "utilities/GetPadding.html" -}}
|
||||
|
||||
@@ -27,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 */}}
|
||||
@@ -35,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
|
||||
@@ -59,6 +61,7 @@
|
||||
{{ $cols := .cols }}
|
||||
{{ $type := .type }}
|
||||
{{ $iconRounded := .iconRounded }}
|
||||
{{ $iconStyle := .iconStyle }}
|
||||
|
||||
{{- partial "assets/card-group.html" (dict
|
||||
"page" page
|
||||
@@ -75,9 +78,11 @@
|
||||
"button" true
|
||||
"link-type" $type
|
||||
"icon-rounded" $iconRounded
|
||||
"icon-style" $iconStyle
|
||||
) -}}
|
||||
{{ end }}
|
||||
|
||||
{{/* Main code */}}
|
||||
{{ if not $args.err }}
|
||||
{{ $list := slice }}
|
||||
|
||||
@@ -96,10 +101,14 @@
|
||||
) }}
|
||||
{{ end}}
|
||||
|
||||
{{- partial "assets/section-title.html" (dict "heading" $args.heading "justify" $args.justify) -}}
|
||||
{{- partial "assets/section-title.html" (dict
|
||||
"heading" $args.heading
|
||||
"justify" $args.justify
|
||||
"class" (printf "pb-%d" $padding.y))
|
||||
-}}
|
||||
|
||||
{{ if eq $args.orientation "stacked" }}
|
||||
<div class="col-{{ $breakpoint.current }}-{{ $args.width }} mx-auto pb-{{ $padding.y }}">
|
||||
<div class="col-{{ $breakpoint.current }}-{{ $args.width }} mx-auto">
|
||||
{{ with $args.video }}
|
||||
{{- partial "inline/video.html" (dict
|
||||
"provider" .provider
|
||||
@@ -109,14 +118,21 @@
|
||||
"query-args" .queryArgs
|
||||
"border" $.border
|
||||
"padding" $padding
|
||||
"color" .color
|
||||
) -}}
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="mt-{{ $padding.y }} pb-{{ $padding.y }}">
|
||||
{{- partial "inline/messages.html" (dict "list" $list "cols" $args.cols "type" $args.type "iconRounded" $args.iconRounded) -}}
|
||||
<div class="mt-{{ $padding.y }}">
|
||||
{{- partial "inline/messages.html" (dict
|
||||
"list" $list
|
||||
"cols" $args.cols
|
||||
"type" $args.type
|
||||
"iconRounded" $args.iconRounded
|
||||
"iconStyle" $args.iconStyle
|
||||
) -}}
|
||||
</div>
|
||||
{{ else }}
|
||||
<div class="container grid gap-4 pb-{{ $padding.y }}">
|
||||
<div class="container grid gap-{{ $padding.x }}">
|
||||
<div class="row row-cols-1 row-cols-{{ $breakpoint.current }}-2">
|
||||
<div class="col col-{{ $breakpoint.current }}-{{ $args.width }} p-0">
|
||||
{{ with $args.video }}
|
||||
@@ -128,11 +144,18 @@
|
||||
"query-args" .queryArgs
|
||||
"border" $.border
|
||||
"padding" $padding
|
||||
"color" .color
|
||||
) -}}
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="col col-{{ $breakpoint.current }}-{{ sub 12 $args.width }} mt-{{ $padding.y }} mt-{{ $breakpoint.current }}-0">
|
||||
{{- partial "inline/messages.html" (dict "list" $list "cols" 1 "type" $args.type "iconRounded" $args.iconRounded) -}}
|
||||
{{- partial "inline/messages.html" (dict
|
||||
"list" $list
|
||||
"cols" 1
|
||||
"type" $args.type
|
||||
"iconRounded" $args.iconRounded
|
||||
"iconStyle" $args.iconStyle
|
||||
) -}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -2,6 +2,7 @@
|
||||
--bs-video-border-color: var(--bs-primary);
|
||||
--bs-video-border-width: 1rem;
|
||||
|
||||
border-radius: $theme-border-radius;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
@@ -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]]
|
||||
|
@@ -84,6 +84,7 @@
|
||||
[navigation]
|
||||
anchor = true
|
||||
logo = "/img/logo_icon.svg"
|
||||
logo-height = 30
|
||||
color = "body"
|
||||
fixed = true
|
||||
overlay = false
|
||||
@@ -96,6 +97,12 @@
|
||||
toc = true
|
||||
sidebar = true
|
||||
size = "md"
|
||||
startLevel = 2
|
||||
endLevel = 3
|
||||
maxNumHeadings = 9
|
||||
[navigation.padding]
|
||||
x = 4
|
||||
y = 4
|
||||
# toml-docs-end navigation
|
||||
|
||||
# toml-docs-start messages
|
||||
|
@@ -30,6 +30,7 @@ const purgecss = purgeCSSPlugin({
|
||||
'./_vendor/github.com/gethinode/mod-flexsearch/v2/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',
|
||||
|
@@ -12,6 +12,7 @@ arguments:
|
||||
class:
|
||||
color:
|
||||
padding:
|
||||
default: 3
|
||||
gutter:
|
||||
release: v0.19.0
|
||||
header-style:
|
||||
@@ -43,6 +44,7 @@ arguments:
|
||||
icon-rounded:
|
||||
release: v1.0.0
|
||||
align:
|
||||
default: start
|
||||
wrapper:
|
||||
default: p-0
|
||||
responsive:
|
||||
|
@@ -15,6 +15,7 @@ arguments:
|
||||
parent: cascade
|
||||
padding:
|
||||
parent: cascade
|
||||
default: 3
|
||||
gutter:
|
||||
default: 0
|
||||
parent: cascade
|
||||
@@ -45,6 +46,7 @@ arguments:
|
||||
icon-rounded:
|
||||
release: v1.0.0
|
||||
align:
|
||||
default: start
|
||||
parent: cascade
|
||||
release: v0.23.0
|
||||
scroll:
|
||||
|
@@ -15,6 +15,9 @@ arguments:
|
||||
class:
|
||||
body:
|
||||
group: partial
|
||||
raw:
|
||||
group: partial
|
||||
release: v1.3.0
|
||||
navitem-type:
|
||||
release: v1.0.0
|
||||
illustration:
|
||||
|
@@ -22,6 +22,8 @@ arguments:
|
||||
release: v1.0.0
|
||||
class:
|
||||
pane:
|
||||
responsive:
|
||||
release: v1.4.0
|
||||
width:
|
||||
default: 12
|
||||
group: partial
|
||||
|
@@ -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.
|
||||
|
@@ -1,20 +0,0 @@
|
||||
comment: >-
|
||||
Inserts a horizontal page section separator.
|
||||
arguments:
|
||||
_bookshop_name:
|
||||
type: string
|
||||
optional: true
|
||||
comment: Unique name of the bookshop component
|
||||
group: partial
|
||||
page:
|
||||
type:
|
||||
- '*hugolib.pageState'
|
||||
- '*hugolib.pageForShortcode'
|
||||
optional: true
|
||||
comment: Context of the current page.
|
||||
group: partial
|
||||
theme:
|
||||
type: string
|
||||
optional: true
|
||||
comment: Color theme to apply.
|
||||
release: v1.0.0-alpha
|
@@ -37,6 +37,7 @@
|
||||
[navigation]
|
||||
anchor = true
|
||||
logo = "/img/logo_icon.svg"
|
||||
logo-height = 30
|
||||
color = "body"
|
||||
fixed = true
|
||||
overlay = false
|
||||
@@ -50,6 +51,12 @@
|
||||
toc = true
|
||||
sidebar = true
|
||||
size = "md"
|
||||
startLevel = 2
|
||||
endLevel = 3
|
||||
maxNumHeadings = 9
|
||||
[navigation.padding]
|
||||
x = 4
|
||||
y = 4
|
||||
|
||||
[messages]
|
||||
placement = "bottom-right"
|
||||
@@ -165,3 +172,6 @@
|
||||
|
||||
[modules.cookieyes]
|
||||
url = "https://cdn-cookieyes.com/client_data/a54b5553f349dd13bd225f8e/script.js"
|
||||
|
||||
[modules.mermaid]
|
||||
elk = true
|
||||
|
@@ -30,6 +30,7 @@ const purgecss = purgeCSSPlugin({
|
||||
'./_vendor/github.com/gethinode/mod-flexsearch/v2/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',
|
||||
|
@@ -56,6 +56,7 @@ content_blocks:
|
||||
cols: 1
|
||||
padding: 4
|
||||
limit: 2
|
||||
icon-style: fa-5x
|
||||
header-style: none
|
||||
footer-style: tags
|
||||
orientation: horizontal-sm
|
||||
|
@@ -25,9 +25,10 @@ content_blocks:
|
||||
more:
|
||||
title: More Posts
|
||||
cols: 3
|
||||
padding: 0
|
||||
padding: 3
|
||||
limit: 9
|
||||
paginate: true
|
||||
cover: false
|
||||
header-style: none
|
||||
class: border-1
|
||||
---
|
||||
|
@@ -24,14 +24,19 @@ The `cards` content block renders a group of content cards.
|
||||
subtle: true
|
||||
orientation: stacked
|
||||
icon-rounded: true
|
||||
class: text-center
|
||||
icon-style: fa-xs
|
||||
padding: 0
|
||||
align: start
|
||||
elements:
|
||||
- title: First Card
|
||||
icon: fas 1
|
||||
content: Content of the first card
|
||||
- title: Second Card
|
||||
icon: fas 2
|
||||
content: Content of the second card
|
||||
- title: Third Card
|
||||
icon: fas 3
|
||||
content: Content of the third card
|
||||
```
|
||||
|
||||
{{< /example-bookshop >}}
|
||||
@@ -42,3 +47,145 @@ The `cards` content block renders a group of content cards.
|
||||
The content block supports the following arguments:
|
||||
|
||||
{{< args bookshop-cards >}}
|
||||
|
||||
## Examples
|
||||
|
||||
### Stacked cards with an image
|
||||
|
||||
Set the `image` attribute of each `element` to an image asset to render illustrated cards.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example-bookshop lang="bookshop" >}}
|
||||
|
||||
```yml
|
||||
- _bookshop_name: cards
|
||||
heading:
|
||||
preheading: Preheading
|
||||
title: Heading
|
||||
content: Cards content. It supports multiple lines.
|
||||
align: start
|
||||
background:
|
||||
color: primary
|
||||
subtle: true
|
||||
orientation: stacked
|
||||
class: bg-body
|
||||
align: center
|
||||
elements:
|
||||
- title: First Card
|
||||
image: /img/nat-9l98kFByiao-unsplash.jpg
|
||||
- title: Second Card
|
||||
image: /img/nat-9l98kFByiao-unsplash.jpg
|
||||
- title: Third Card
|
||||
image: /img/nat-9l98kFByiao-unsplash.jpg
|
||||
```
|
||||
|
||||
{{< /example-bookshop >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
### Horizontal cards with an image
|
||||
|
||||
Set the `orientation` attribute to `horizontal` to render horizontally oriented cards.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example-bookshop lang="bookshop" >}}
|
||||
|
||||
```yml
|
||||
- _bookshop_name: cards
|
||||
heading:
|
||||
preheading: Preheading
|
||||
title: Heading
|
||||
content: Cards content. It supports multiple lines.
|
||||
align: start
|
||||
background:
|
||||
color: primary
|
||||
subtle: true
|
||||
orientation: horizontal
|
||||
class: bg-body
|
||||
align: center
|
||||
elements:
|
||||
- title: First Card
|
||||
image: /img/nat-9l98kFByiao-unsplash.jpg
|
||||
content: Content of the first card
|
||||
- title: Second Card
|
||||
image: /img/nat-9l98kFByiao-unsplash.jpg
|
||||
content: Content of the second card
|
||||
- title: Third Card
|
||||
image: /img/nat-9l98kFByiao-unsplash.jpg
|
||||
content: Content of the third card
|
||||
```
|
||||
|
||||
{{< /example-bookshop >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
### Stacked cards with an icon
|
||||
|
||||
Set the `icon` attribute of each `element` to an icon to render illustrated cards. Adjust the icon's styling with `icon-rounded` and `icon-style`.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example-bookshop lang="bookshop" >}}
|
||||
|
||||
```yml
|
||||
- _bookshop_name: cards
|
||||
heading:
|
||||
preheading: Preheading
|
||||
title: Heading
|
||||
content: Cards content. It supports multiple lines.
|
||||
align: start
|
||||
background:
|
||||
color: primary
|
||||
subtle: true
|
||||
orientation: stacked
|
||||
icon-style: fa-xs text-primary
|
||||
align: start
|
||||
padding: 0
|
||||
elements:
|
||||
- title: First Card
|
||||
icon: fas 1
|
||||
content: Content of the first card
|
||||
- title: Second Card
|
||||
icon: fas 2
|
||||
content: Content of the second card
|
||||
- title: Third Card
|
||||
icon: fas 3
|
||||
content: Content of the third card
|
||||
```
|
||||
|
||||
{{< /example-bookshop >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
### Horizontal cards with an icon
|
||||
|
||||
Set the `icon` attribute of each `element` to an icon to render illustrated cards. Adjust the icon's styling with `icon-rounded` and `icon-style`.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example-bookshop lang="bookshop" >}}
|
||||
|
||||
```yml
|
||||
- _bookshop_name: cards
|
||||
heading:
|
||||
preheading: Preheading
|
||||
title: Heading
|
||||
content: Cards content. It supports multiple lines.
|
||||
align: start
|
||||
background:
|
||||
color: primary
|
||||
subtle: true
|
||||
orientation: horizontal
|
||||
icon-rounded: true
|
||||
icon-style: fa-2xs text-primary
|
||||
align: start
|
||||
padding: 0
|
||||
elements:
|
||||
- title: First Card
|
||||
icon: fas 1
|
||||
content: Content of the first card
|
||||
- title: Second Card
|
||||
icon: fas 2
|
||||
content: Content of the second card
|
||||
- title: Third Card
|
||||
icon: fas 3
|
||||
content: Content of the third card
|
||||
```
|
||||
|
||||
{{< /example-bookshop >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
189
exampleSite/content/en/blocks/panels.md
Normal file
189
exampleSite/content/en/blocks/panels.md
Normal file
@@ -0,0 +1,189 @@
|
||||
---
|
||||
_schema: default
|
||||
title: Panels
|
||||
description: Use the panels content block to display multiple toggable panels.
|
||||
icon: fa folder
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
The `panels` content block displays multiple panels that are toggled by a tab control.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example-bookshop lang="bookshop" >}}
|
||||
|
||||
```yml
|
||||
- _bookshop_name: panels
|
||||
heading:
|
||||
preheading: Preheading
|
||||
title: Heading
|
||||
content: Panels content. It supports multiple lines.
|
||||
align: start
|
||||
background:
|
||||
color: primary
|
||||
subtle: true
|
||||
width: 12
|
||||
tab-type: underline
|
||||
ratio: 1x1
|
||||
elements:
|
||||
- title: First Panel
|
||||
image: /img/sunrise.jpg
|
||||
content: content 1
|
||||
- title: Second Panel
|
||||
image: /img/nat-9l98kFByiao-unsplash.jpg
|
||||
content: content 2
|
||||
- title: Third Panel
|
||||
image: /img/pj-accetturo-XpD6Dkui-yg-unsplash.jpg
|
||||
content: content 3
|
||||
```
|
||||
|
||||
{{< /example-bookshop >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Arguments
|
||||
|
||||
The content block supports the following arguments:
|
||||
|
||||
{{< args bookshop-panels >}}
|
||||
|
||||
## Examples
|
||||
|
||||
### Tabs
|
||||
|
||||
Set `tab-type` to `tabs` to adjust the panel controls.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example-bookshop lang="bookshop" >}}
|
||||
|
||||
```yml
|
||||
- _bookshop_name: panels
|
||||
heading:
|
||||
preheading: Preheading
|
||||
title: Heading
|
||||
content: Panels content. It supports multiple lines.
|
||||
align: start
|
||||
background:
|
||||
color: primary
|
||||
subtle: true
|
||||
width: 12
|
||||
tab-type: tabs
|
||||
ratio: 1x1
|
||||
elements:
|
||||
- title: First Panel
|
||||
image: /img/sunrise.jpg
|
||||
content: content 1
|
||||
- title: Second Panel
|
||||
image: /img/nat-9l98kFByiao-unsplash.jpg
|
||||
content: content 2
|
||||
- title: Third Panel
|
||||
image: /img/pj-accetturo-XpD6Dkui-yg-unsplash.jpg
|
||||
content: content 3
|
||||
```
|
||||
|
||||
{{< /example-bookshop >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
### Pills
|
||||
|
||||
Set `tab-type` to `pills` to adjust the panel controls.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example-bookshop lang="bookshop" >}}
|
||||
|
||||
```yml
|
||||
- _bookshop_name: panels
|
||||
heading:
|
||||
preheading: Preheading
|
||||
title: Heading
|
||||
content: Panels content. It supports multiple lines.
|
||||
align: start
|
||||
background:
|
||||
color: primary
|
||||
subtle: true
|
||||
width: 12
|
||||
tab-type: pills
|
||||
ratio: 1x1
|
||||
elements:
|
||||
- title: First Panel
|
||||
image: /img/sunrise.jpg
|
||||
content: content 1
|
||||
- title: Second Panel
|
||||
image: /img/nat-9l98kFByiao-unsplash.jpg
|
||||
content: content 2
|
||||
- title: Third Panel
|
||||
image: /img/pj-accetturo-XpD6Dkui-yg-unsplash.jpg
|
||||
content: content 3
|
||||
```
|
||||
|
||||
{{< /example-bookshop >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
### Underline
|
||||
|
||||
Set `tab-type` to `underline` to adjust the panel controls.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example-bookshop lang="bookshop" >}}
|
||||
|
||||
```yml
|
||||
- _bookshop_name: panels
|
||||
heading:
|
||||
preheading: Preheading
|
||||
title: Heading
|
||||
content: Panels content. It supports multiple lines.
|
||||
align: start
|
||||
background:
|
||||
color: primary
|
||||
subtle: true
|
||||
width: 12
|
||||
tab-type: underline
|
||||
ratio: 1x1
|
||||
elements:
|
||||
- title: First Panel
|
||||
image: /img/sunrise.jpg
|
||||
content: content 1
|
||||
- title: Second Panel
|
||||
image: /img/nat-9l98kFByiao-unsplash.jpg
|
||||
content: content 2
|
||||
- title: Third Panel
|
||||
image: /img/pj-accetturo-XpD6Dkui-yg-unsplash.jpg
|
||||
content: content 3
|
||||
```
|
||||
|
||||
{{< /example-bookshop >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
### Callout
|
||||
|
||||
Set `tab-type` to `callout` to adjust the panel controls.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example-bookshop lang="bookshop" >}}
|
||||
|
||||
```yml
|
||||
- _bookshop_name: panels
|
||||
heading:
|
||||
preheading: Preheading
|
||||
title: Heading
|
||||
content: Panels content. It supports multiple lines.
|
||||
align: start
|
||||
background:
|
||||
color: primary
|
||||
subtle: true
|
||||
width: 12
|
||||
tab-type: callout
|
||||
ratio: 1x1
|
||||
elements:
|
||||
- title: First Panel
|
||||
image: /img/sunrise.jpg
|
||||
content: content 1
|
||||
- title: Second Panel
|
||||
image: /img/nat-9l98kFByiao-unsplash.jpg
|
||||
content: content 2
|
||||
- title: Third Panel
|
||||
image: /img/pj-accetturo-XpD6Dkui-yg-unsplash.jpg
|
||||
content: content 3
|
||||
```
|
||||
|
||||
{{< /example-bookshop >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
@@ -24,10 +24,12 @@ The `video` content block renders a horizontal line to separate sections. The se
|
||||
color: primary
|
||||
subtle: true
|
||||
orientation: horizontal
|
||||
icon-style: fa-lg
|
||||
video:
|
||||
provider: vimeo
|
||||
media-id: "55073825"
|
||||
autoplay: true
|
||||
color: black
|
||||
messages:
|
||||
- title: First Message
|
||||
icon: fas 1
|
||||
|
@@ -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
|
||||
|
@@ -3,5 +3,5 @@ module github.com/gethinode/hinode/exampleSite
|
||||
go 1.19
|
||||
|
||||
require (
|
||||
github.com/gethinode/mod-cookieyes/v2 v2.2.4 // indirect
|
||||
github.com/gethinode/mod-cookieyes/v2 v2.2.5 // indirect
|
||||
)
|
||||
|
@@ -1,2 +1,2 @@
|
||||
github.com/gethinode/mod-cookieyes/v2 v2.2.4 h1:MxKKNSpX2cb9+4l3mH/xfZUqiJ1buaGLj0AFRnPci5M=
|
||||
github.com/gethinode/mod-cookieyes/v2 v2.2.4/go.mod h1:tULb7D7CoTycGUyL7ryqHJKaX11XuL2SN+XwP7/DI0Y=
|
||||
github.com/gethinode/mod-cookieyes/v2 v2.2.5 h1:xzTQ42qYViZ/LJJUHAEeDV9aayXVEX4MtnpS+m5Zekc=
|
||||
github.com/gethinode/mod-cookieyes/v2 v2.2.5/go.mod h1:tULb7D7CoTycGUyL7ryqHJKaX11XuL2SN+XwP7/DI0Y=
|
||||
|
@@ -70,7 +70,6 @@
|
||||
],
|
||||
"classes": [
|
||||
"%!s(<nil>)",
|
||||
"%!s(MISSING)",
|
||||
"about",
|
||||
"accordion",
|
||||
"accordion-body",
|
||||
@@ -90,6 +89,7 @@
|
||||
"align-middle",
|
||||
"align-self-center",
|
||||
"align-self-end",
|
||||
"align-self-start",
|
||||
"anchor",
|
||||
"articles",
|
||||
"background-container",
|
||||
@@ -98,6 +98,7 @@
|
||||
"ball",
|
||||
"bg-bg-body-tertiary",
|
||||
"bg-bg-primary-subtle",
|
||||
"bg-black",
|
||||
"bg-body",
|
||||
"bg-body-tertiary",
|
||||
"bg-danger",
|
||||
@@ -110,9 +111,7 @@
|
||||
"border-0",
|
||||
"border-1",
|
||||
"border-bottom",
|
||||
"border-end",
|
||||
"border-none",
|
||||
"border-start",
|
||||
"border-top",
|
||||
"bottom-0",
|
||||
"bottom-bar",
|
||||
@@ -144,6 +143,7 @@
|
||||
"card-icon-primary",
|
||||
"card-icon-secondary",
|
||||
"card-img-bg",
|
||||
"card-img-h100",
|
||||
"card-img-top",
|
||||
"card-img-wrap",
|
||||
"card-text",
|
||||
@@ -172,6 +172,7 @@
|
||||
"col-6",
|
||||
"col-8",
|
||||
"col-9",
|
||||
"col-auto",
|
||||
"col-lg-2",
|
||||
"col-lg-4",
|
||||
"col-lg-8",
|
||||
@@ -189,10 +190,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",
|
||||
@@ -210,10 +216,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",
|
||||
@@ -230,9 +242,13 @@
|
||||
"fa-2xs",
|
||||
"fa-3",
|
||||
"fa-4x",
|
||||
"fa-5x",
|
||||
"fa-activity",
|
||||
"fa-address-card",
|
||||
"fa-angle-left",
|
||||
"fa-angle-right",
|
||||
"fa-angles-left",
|
||||
"fa-angles-right",
|
||||
"fa-arrow-left",
|
||||
"fa-arrow-right",
|
||||
"fa-bootstrap",
|
||||
@@ -245,9 +261,11 @@
|
||||
"fa-divide",
|
||||
"fa-docker",
|
||||
"fa-ellipsis",
|
||||
"fa-expand",
|
||||
"fa-face-frown",
|
||||
"fa-facebook",
|
||||
"fa-fluid",
|
||||
"fa-folder",
|
||||
"fa-fw",
|
||||
"fa-github",
|
||||
"fa-globe",
|
||||
@@ -257,9 +275,12 @@
|
||||
"fa-house",
|
||||
"fa-info",
|
||||
"fa-inverse",
|
||||
"fa-lg",
|
||||
"fa-link",
|
||||
"fa-linkedin",
|
||||
"fa-magnifying-glass",
|
||||
"fa-magnifying-glass-minus",
|
||||
"fa-magnifying-glass-plus",
|
||||
"fa-medium",
|
||||
"fa-moon",
|
||||
"fa-rocket",
|
||||
@@ -276,11 +297,16 @@
|
||||
"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",
|
||||
@@ -346,15 +372,16 @@
|
||||
"lottie-animation",
|
||||
"m-0",
|
||||
"m-auto",
|
||||
"m-md-n4",
|
||||
"m-n1",
|
||||
"main",
|
||||
"main-nav-toggler",
|
||||
"mb-0",
|
||||
"mb-1",
|
||||
"mb-3",
|
||||
"mb-4",
|
||||
"mb-5",
|
||||
"mb-lg-5",
|
||||
"me-1",
|
||||
"me-3",
|
||||
"me-auto",
|
||||
"mermaid",
|
||||
@@ -364,6 +391,7 @@
|
||||
"ms-3",
|
||||
"ms-auto",
|
||||
"ms-md-3",
|
||||
"mt-1",
|
||||
"mt-2",
|
||||
"mt-3",
|
||||
"mt-4",
|
||||
@@ -376,16 +404,21 @@
|
||||
"mx-auto",
|
||||
"mx-md-0",
|
||||
"mx-md-2",
|
||||
"mx-md-n4",
|
||||
"my-2",
|
||||
"my-4",
|
||||
"my-auto",
|
||||
"my-md-0",
|
||||
"my-md-auto",
|
||||
"my-md-n4",
|
||||
"nav",
|
||||
"nav-callout",
|
||||
"nav-item",
|
||||
"nav-link",
|
||||
"nav-panel",
|
||||
"nav-pills",
|
||||
"nav-tabs",
|
||||
"nav-underline",
|
||||
"navbar",
|
||||
"navbar-brand",
|
||||
"navbar-collapse",
|
||||
@@ -409,7 +442,12 @@
|
||||
"p-2",
|
||||
"p-3",
|
||||
"p-4",
|
||||
"p-md-4",
|
||||
"page-item",
|
||||
"page-link",
|
||||
"pagination",
|
||||
"pagination-terse",
|
||||
"panel-dropdown",
|
||||
"panels",
|
||||
"pb-3",
|
||||
"pb-4",
|
||||
"pb-5",
|
||||
@@ -436,7 +474,9 @@
|
||||
"ptw-sm-4",
|
||||
"px-%!d(string=0)",
|
||||
"px-2",
|
||||
"px-3",
|
||||
"px-4",
|
||||
"px-md-4",
|
||||
"px-xxl-0",
|
||||
"py-%!d(string=0)",
|
||||
"py-1",
|
||||
@@ -444,6 +484,7 @@
|
||||
"py-3",
|
||||
"py-4",
|
||||
"py-md-1",
|
||||
"py-md-4",
|
||||
"ratio",
|
||||
"ratio-16x9",
|
||||
"releases",
|
||||
@@ -452,6 +493,7 @@
|
||||
"rounded-5",
|
||||
"rounded-bottom",
|
||||
"rounded-pill",
|
||||
"rounded-start",
|
||||
"rounded-top",
|
||||
"row",
|
||||
"row-cols-1",
|
||||
@@ -486,6 +528,7 @@
|
||||
"table-border-bottom-wrap",
|
||||
"table-responsive-md",
|
||||
"table-wrap",
|
||||
"tabs-dropdown",
|
||||
"tag-link",
|
||||
"text-",
|
||||
"text-bg-body-tertiary",
|
||||
@@ -517,6 +560,7 @@
|
||||
"timeline-bg-primary-subtle",
|
||||
"timeline-connector-end",
|
||||
"timeline-connector-start",
|
||||
"timeline-container",
|
||||
"timeline-description-text-end",
|
||||
"timeline-description-text-start",
|
||||
"timeline-dot",
|
||||
@@ -582,9 +626,12 @@
|
||||
"body-file-collapse-1",
|
||||
"bouton",
|
||||
"breadcrumb",
|
||||
"btnTOCShowLess",
|
||||
"btnTOCShowMore",
|
||||
"button",
|
||||
"button-group",
|
||||
"c4-diagram",
|
||||
"callout",
|
||||
"card",
|
||||
"card-group",
|
||||
"carousel",
|
||||
@@ -606,12 +653,20 @@
|
||||
"data-tables",
|
||||
"docs",
|
||||
"documentation",
|
||||
"dropdown-nav-0",
|
||||
"dropdown-panel-559429f8ed9abd968d8178a39c12161e",
|
||||
"dropdown-panel-83b60f1acfc59ebca2632e49adc142ea",
|
||||
"dropdown-panel-905f7532046e86d10df934d0bb7e6973",
|
||||
"dropdown-panel-96d18c1dcc343600bc916fe2c37fa4aa",
|
||||
"dropdown-panel-f6ad6d3ba9fb32a749be0499120c5f22",
|
||||
"elements-type",
|
||||
"entity-relationship-diagram",
|
||||
"example",
|
||||
"examples",
|
||||
"exemple",
|
||||
"fa-address-card",
|
||||
"fa-face-frown",
|
||||
"fa-folder",
|
||||
"fa-square-check",
|
||||
"fab-bootstrap",
|
||||
"fab-docker",
|
||||
@@ -621,16 +676,19 @@
|
||||
"fab-medium",
|
||||
"fab-whatsapp",
|
||||
"fab-x-twitter",
|
||||
"faq-9ef13ff2bd73b0e328491bd048c7a1ef",
|
||||
"faq-9ef13ff2bd73b0e328491bd048c7a1ef-heading-faq-9ef13ff2bd73b0e328491bd048c7a1ef",
|
||||
"faq-9ef13ff2bd73b0e328491bd048c7a1ef-item-0",
|
||||
"faq-9ef13ff2bd73b0e328491bd048c7a1ef-item-1",
|
||||
"faq-9ef13ff2bd73b0e328491bd048c7a1ef-item-2",
|
||||
"faq-106714aa77d6de0ac39f269ae5995985",
|
||||
"faq-106714aa77d6de0ac39f269ae5995985-heading-faq-106714aa77d6de0ac39f269ae5995985",
|
||||
"faq-106714aa77d6de0ac39f269ae5995985-item-0",
|
||||
"faq-106714aa77d6de0ac39f269ae5995985-item-1",
|
||||
"faq-106714aa77d6de0ac39f269ae5995985-item-2",
|
||||
"fas-1",
|
||||
"fas-2",
|
||||
"fas-3",
|
||||
"fas-address-card",
|
||||
"fas-angle-left",
|
||||
"fas-angle-right",
|
||||
"fas-angles-left",
|
||||
"fas-angles-right",
|
||||
"fas-arrow-left",
|
||||
"fas-arrow-right",
|
||||
"fas-chevron-right",
|
||||
@@ -641,6 +699,7 @@
|
||||
"fas-code",
|
||||
"fas-divide",
|
||||
"fas-ellipsis",
|
||||
"fas-expand",
|
||||
"fas-globe",
|
||||
"fas-grip",
|
||||
"fas-h",
|
||||
@@ -649,6 +708,8 @@
|
||||
"fas-info",
|
||||
"fas-link",
|
||||
"fas-magnifying-glass",
|
||||
"fas-magnifying-glass-minus",
|
||||
"fas-magnifying-glass-plus",
|
||||
"fas-moon",
|
||||
"fas-rocket",
|
||||
"fas-share-nodes",
|
||||
@@ -659,6 +720,7 @@
|
||||
"fichier",
|
||||
"fil-dariane",
|
||||
"file",
|
||||
"first-panel",
|
||||
"flowchart",
|
||||
"footer-docs-collapse-15",
|
||||
"footer-docs-collapse-16",
|
||||
@@ -673,6 +735,8 @@
|
||||
"gérer-les-préférences-des-cookies",
|
||||
"heading",
|
||||
"heading-type",
|
||||
"horizontal-cards-with-an-icon",
|
||||
"horizontal-cards-with-an-image",
|
||||
"how-do-we-use-cookies",
|
||||
"how-we-share-your-information",
|
||||
"icon",
|
||||
@@ -711,6 +775,11 @@
|
||||
"nav-0-btn-1",
|
||||
"nav-0-btn-2",
|
||||
"nav-nav-0",
|
||||
"nav-panel-559429f8ed9abd968d8178a39c12161e",
|
||||
"nav-panel-83b60f1acfc59ebca2632e49adc142ea",
|
||||
"nav-panel-905f7532046e86d10df934d0bb7e6973",
|
||||
"nav-panel-96d18c1dcc343600bc916fe2c37fa4aa",
|
||||
"nav-panel-f6ad6d3ba9fb32a749be0499120c5f22",
|
||||
"navbar",
|
||||
"navbar-0-collapse",
|
||||
"navbar-mode",
|
||||
@@ -719,8 +788,39 @@
|
||||
"navigation",
|
||||
"notification",
|
||||
"overview",
|
||||
"panel-559429f8ed9abd968d8178a39c12161e-0",
|
||||
"panel-559429f8ed9abd968d8178a39c12161e-1",
|
||||
"panel-559429f8ed9abd968d8178a39c12161e-2",
|
||||
"panel-559429f8ed9abd968d8178a39c12161e-btn-0",
|
||||
"panel-559429f8ed9abd968d8178a39c12161e-btn-1",
|
||||
"panel-559429f8ed9abd968d8178a39c12161e-btn-2",
|
||||
"panel-83b60f1acfc59ebca2632e49adc142ea-0",
|
||||
"panel-83b60f1acfc59ebca2632e49adc142ea-1",
|
||||
"panel-83b60f1acfc59ebca2632e49adc142ea-2",
|
||||
"panel-83b60f1acfc59ebca2632e49adc142ea-btn-0",
|
||||
"panel-83b60f1acfc59ebca2632e49adc142ea-btn-1",
|
||||
"panel-83b60f1acfc59ebca2632e49adc142ea-btn-2",
|
||||
"panel-905f7532046e86d10df934d0bb7e6973-0",
|
||||
"panel-905f7532046e86d10df934d0bb7e6973-1",
|
||||
"panel-905f7532046e86d10df934d0bb7e6973-2",
|
||||
"panel-905f7532046e86d10df934d0bb7e6973-btn-0",
|
||||
"panel-905f7532046e86d10df934d0bb7e6973-btn-1",
|
||||
"panel-905f7532046e86d10df934d0bb7e6973-btn-2",
|
||||
"panel-96d18c1dcc343600bc916fe2c37fa4aa-0",
|
||||
"panel-96d18c1dcc343600bc916fe2c37fa4aa-1",
|
||||
"panel-96d18c1dcc343600bc916fe2c37fa4aa-2",
|
||||
"panel-96d18c1dcc343600bc916fe2c37fa4aa-btn-0",
|
||||
"panel-96d18c1dcc343600bc916fe2c37fa4aa-btn-1",
|
||||
"panel-96d18c1dcc343600bc916fe2c37fa4aa-btn-2",
|
||||
"panel-f6ad6d3ba9fb32a749be0499120c5f22-0",
|
||||
"panel-f6ad6d3ba9fb32a749be0499120c5f22-1",
|
||||
"panel-f6ad6d3ba9fb32a749be0499120c5f22-2",
|
||||
"panel-f6ad6d3ba9fb32a749be0499120c5f22-btn-0",
|
||||
"panel-f6ad6d3ba9fb32a749be0499120c5f22-btn-1",
|
||||
"panel-f6ad6d3ba9fb32a749be0499120c5f22-btn-2",
|
||||
"persona",
|
||||
"pie-chart",
|
||||
"pills",
|
||||
"projecten",
|
||||
"projects",
|
||||
"projets",
|
||||
@@ -730,14 +830,20 @@
|
||||
"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",
|
||||
"state-diagram",
|
||||
"sub",
|
||||
"sup",
|
||||
"sécurité",
|
||||
"table",
|
||||
"tabs",
|
||||
"third-panel",
|
||||
"third-party-links--use-of-your-information",
|
||||
"timeline",
|
||||
"title",
|
||||
@@ -748,9 +854,11 @@
|
||||
"toast-example-2",
|
||||
"toast-message-email-4",
|
||||
"toc-collapse",
|
||||
"toc-collapse-items",
|
||||
"tooltip",
|
||||
"types-de-cookies-que-nous-utilisons",
|
||||
"types-of-cookies-we-use",
|
||||
"underline",
|
||||
"user-journey",
|
||||
"video",
|
||||
"video-type",
|
||||
|
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 -}}
|
27
go.mod
27
go.mod
@@ -4,21 +4,18 @@ go 1.19
|
||||
|
||||
require (
|
||||
github.com/airbnb/lottie-web v5.12.2+incompatible // indirect
|
||||
github.com/cloudcannon/bookshop/hugo/v3 v3.16.1 // indirect
|
||||
github.com/gethinode/mod-bootstrap v1.3.3 // indirect
|
||||
github.com/gethinode/mod-csp v1.0.7 // indirect
|
||||
github.com/gethinode/mod-flexsearch/v2 v2.1.1 // indirect
|
||||
github.com/gethinode/mod-fontawesome/v2 v2.1.1 // indirect
|
||||
github.com/gethinode/mod-google-analytics v1.3.2 // indirect
|
||||
github.com/gethinode/mod-katex v1.1.3 // indirect
|
||||
github.com/gethinode/mod-leaflet v1.3.0 // indirect
|
||||
github.com/gethinode/mod-lottie v1.6.0 // indirect
|
||||
github.com/gethinode/mod-mermaid v1.1.23 // indirect
|
||||
github.com/gethinode/mod-mermaid/v2 v2.0.1 // indirect
|
||||
github.com/gethinode/mod-simple-datatables v1.1.7 // indirect
|
||||
github.com/gethinode/mod-simple-datatables/v2 v2.0.1 // indirect
|
||||
github.com/gethinode/mod-utils/v3 v3.3.1 // indirect
|
||||
github.com/gethinode/mod-utils/v4 v4.9.2 // indirect
|
||||
github.com/cloudcannon/bookshop/hugo/v3 v3.16.3 // 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-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/v3 v3.0.1 // indirect
|
||||
github.com/gethinode/mod-simple-datatables/v2 v2.0.2 // indirect
|
||||
github.com/gethinode/mod-utils/v4 v4.13.0 // indirect
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20250606060143-c28f52c09b7a // indirect
|
||||
github.com/twbs/bootstrap v5.3.7+incompatible // indirect
|
||||
)
|
||||
|
40
go.sum
40
go.sum
@@ -6,6 +6,8 @@ github.com/cloudcannon/bookshop/hugo/v3 v3.16.0 h1:Fb76ABHqTyPl9Z2QqYJCwiMBKPySh
|
||||
github.com/cloudcannon/bookshop/hugo/v3 v3.16.0/go.mod h1:s7mIonDhtsLcn10ZKuVXyqd6BDHI8vT1WQhZw8rPfY8=
|
||||
github.com/cloudcannon/bookshop/hugo/v3 v3.16.1 h1:WByz6rqg28h94VLVLscu77/CHhi2peig/LqrnVomX0Y=
|
||||
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/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=
|
||||
@@ -34,6 +36,8 @@ github.com/gethinode/mod-bootstrap v1.3.2 h1:mf9Qgr+xHZeHjZGYFdurETfdEKKldB158fp
|
||||
github.com/gethinode/mod-bootstrap v1.3.2/go.mod h1:CL9IDot6nbXIWJYE/KxfsTdYYEJIGL17BXbAYPn+wVQ=
|
||||
github.com/gethinode/mod-bootstrap v1.3.3 h1:k7RrZM3zstWA5xg55yLedb4T7WRBXvn77gv7OwBQ0d4=
|
||||
github.com/gethinode/mod-bootstrap v1.3.3/go.mod h1:MkvQgiA3N2NFiW57TTU60Rn4N6oZjvlBIVgrJE9M0WI=
|
||||
github.com/gethinode/mod-bootstrap v1.3.4 h1:rBfyUmdslxL+RX76/5hyJYPacfrt6OYrciNgk/T0NWk=
|
||||
github.com/gethinode/mod-bootstrap v1.3.4/go.mod h1:MkvQgiA3N2NFiW57TTU60Rn4N6oZjvlBIVgrJE9M0WI=
|
||||
github.com/gethinode/mod-csp v1.0.0 h1:Obp0MVMBjIPZbKDh6Ejl5pImDG7yERMLf2or9UVnwPA=
|
||||
github.com/gethinode/mod-csp v1.0.0/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
|
||||
github.com/gethinode/mod-csp v1.0.1 h1:IUUwPc41UNw7DAFuJ75nNPzhkPExenxXU7susdLaxdQ=
|
||||
@@ -50,6 +54,8 @@ github.com/gethinode/mod-csp v1.0.6 h1:ufEKQldQe9ZCXbENTpwqVlYnPRgVv3WDhPjur5OLU
|
||||
github.com/gethinode/mod-csp v1.0.6/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
|
||||
github.com/gethinode/mod-csp v1.0.7 h1:V4D8vYA/jJ2Nv9kPz5gt96fkVd3NtT7sBqVhnG5TvAU=
|
||||
github.com/gethinode/mod-csp v1.0.7/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
|
||||
github.com/gethinode/mod-csp v1.0.8 h1:36bWS7oW5KoPp0ywJXKmfMdM33c/7EPBLjzut0njTgE=
|
||||
github.com/gethinode/mod-csp v1.0.8/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
|
||||
github.com/gethinode/mod-flexsearch v1.0.1 h1:FJkRsUzSnQTXl3MWCigT4E6vfff870UWTnkGqaDGIhA=
|
||||
github.com/gethinode/mod-flexsearch v1.0.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||
github.com/gethinode/mod-flexsearch v1.1.0 h1:7BCMyQDlYlskNXuazt8Jg/jg9WREexu2xVkYqThkAX4=
|
||||
@@ -108,6 +114,10 @@ github.com/gethinode/mod-flexsearch/v2 v2.1.0 h1:NzCruYAKQBMM1DwFFoH7/tzqmItR6sK
|
||||
github.com/gethinode/mod-flexsearch/v2 v2.1.0/go.mod h1:d7MMkVlz0l6cEk76e0mkveEsDxGfu5Sv+HUIhoGguhE=
|
||||
github.com/gethinode/mod-flexsearch/v2 v2.1.1 h1:Vcr0aAkqPdavK183L8nr0dF7ngfY9EUDG4ZpmEK815M=
|
||||
github.com/gethinode/mod-flexsearch/v2 v2.1.1/go.mod h1:0IJGZQRv9X+th/gFmFRusEUSv0oJSr3aw5t1w3lfvYg=
|
||||
github.com/gethinode/mod-flexsearch/v2 v2.1.2 h1:B/onreHG/qzIqMo9YYiRk4WWM+GgFj1FSGHSgUpCvJ0=
|
||||
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-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=
|
||||
@@ -160,6 +170,8 @@ github.com/gethinode/mod-fontawesome/v2 v2.1.0 h1:kRQ/4ady4Ih/m3bJ/1+/rkFhunuzjN
|
||||
github.com/gethinode/mod-fontawesome/v2 v2.1.0/go.mod h1:Jhwzi3KQI3fYn1hPNPJFCk+kcz80s8ONT4FmwLTXH2c=
|
||||
github.com/gethinode/mod-fontawesome/v2 v2.1.1 h1:EieVCvEiT0ulXpEHY4kCLJvZCIvGkupIVyoCRTidrvo=
|
||||
github.com/gethinode/mod-fontawesome/v2 v2.1.1/go.mod h1:zukv88wXqquEvTJJ9mWWk8Ia+9INnA41wYqusf2RcHA=
|
||||
github.com/gethinode/mod-fontawesome/v2 v2.1.2 h1:v1aHhbLLwe/05zRHnx9qGqh6b3toDzcLzuv61rWAoGU=
|
||||
github.com/gethinode/mod-fontawesome/v2 v2.1.2/go.mod h1:zukv88wXqquEvTJJ9mWWk8Ia+9INnA41wYqusf2RcHA=
|
||||
github.com/gethinode/mod-google-analytics v1.0.0 h1:fly42RQ69bdyJe8WFefsBIo7WMIXkd3wZn32kyAr4h4=
|
||||
github.com/gethinode/mod-google-analytics v1.0.0/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
|
||||
github.com/gethinode/mod-google-analytics v1.0.1 h1:zbmOdnAhhFCA7qWw7fnR46biWhqW2r06sIaTWyhB5R0=
|
||||
@@ -188,6 +200,8 @@ github.com/gethinode/mod-google-analytics v1.3.1 h1:WPXrsO6Kpp0k8PYY9a1JyiZgYGMl
|
||||
github.com/gethinode/mod-google-analytics v1.3.1/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
|
||||
github.com/gethinode/mod-google-analytics v1.3.2 h1:W4caxWkSor/BFfOEGDDMp+7RajO/Jh1bE7LXxPqLE3A=
|
||||
github.com/gethinode/mod-google-analytics v1.3.2/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
|
||||
github.com/gethinode/mod-google-analytics v1.3.3 h1:iX2FtXajykfHWJf7MXCQmpezqXgQUADNTeglU81QKpw=
|
||||
github.com/gethinode/mod-google-analytics v1.3.3/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
|
||||
github.com/gethinode/mod-katex v1.0.0 h1:me/3dIIZBkfk1mRIFt8QiAGYwYDoSG5bc2hHRtIutFc=
|
||||
github.com/gethinode/mod-katex v1.0.0/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||
github.com/gethinode/mod-katex v1.0.1 h1:809QUztxmKgMNchU+v03iMO7Ma+ISc3ZzhXYauc21rs=
|
||||
@@ -214,6 +228,8 @@ github.com/gethinode/mod-katex v1.1.2 h1:TbeVIWeG5TqldlVxpM1upOWj11RljXy4fhpOQIw
|
||||
github.com/gethinode/mod-katex v1.1.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||
github.com/gethinode/mod-katex v1.1.3 h1:fRgoBZVCJeLUFqGrGweg4FhCcbGsyqNRmd9WezG/CUQ=
|
||||
github.com/gethinode/mod-katex v1.1.3/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||
github.com/gethinode/mod-katex v1.1.4 h1:HWc45uHKX2JhI624UnA46LCZkLGhSbaq+zAHt9e57zw=
|
||||
github.com/gethinode/mod-katex v1.1.4/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||
github.com/gethinode/mod-leaflet v0.2.3 h1:QQI4h+IH0jZ7fx4q0um2YIEiYBoW3OAfW8qHzbRCDPk=
|
||||
github.com/gethinode/mod-leaflet v0.2.3/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
|
||||
github.com/gethinode/mod-leaflet v0.3.1 h1:H5MaOa+BB1KuVw7abTqfIn/SNzzRsAyx/WQoSe+2Ykc=
|
||||
@@ -240,6 +256,8 @@ github.com/gethinode/mod-leaflet v1.2.1 h1:p0bKi+F5vbXwYknBvFEN9KymK8PRqKaYhVz5O
|
||||
github.com/gethinode/mod-leaflet v1.2.1/go.mod h1:Ei0x9WiL7Dbi4JeG6yI1CE63bT1QJ8sKi67Jea1wFSE=
|
||||
github.com/gethinode/mod-leaflet v1.3.0 h1:rRjuuW2KVJjnrBrFIOxxHxkB6RPdmlTivBlvceBG3Fk=
|
||||
github.com/gethinode/mod-leaflet v1.3.0/go.mod h1:F/XR1lYKENw91u+IC4NXQT6dbCyJlSJUPClMVpBK8Tw=
|
||||
github.com/gethinode/mod-leaflet v1.3.1 h1:nG6lQ7LZ2E/TGok/VGo5FCX+OVoHvxrYszi2FvQimRg=
|
||||
github.com/gethinode/mod-leaflet v1.3.1/go.mod h1:F/XR1lYKENw91u+IC4NXQT6dbCyJlSJUPClMVpBK8Tw=
|
||||
github.com/gethinode/mod-lottie v1.0.0 h1:1CUZMcgN5FAyjjyuP3qkaOQ6M5sv6HUAbosW4sIT5VE=
|
||||
github.com/gethinode/mod-lottie v1.0.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
||||
github.com/gethinode/mod-lottie v1.0.1 h1:+IE7xtnSVQpJS56oBJq9RWKZeFEfxrOZAqE3BSrS/u0=
|
||||
@@ -298,10 +316,20 @@ github.com/gethinode/mod-lottie v1.5.14 h1:17wmpi4XQzmwSB2HKNVa7c6ZzULrRnpKdowOF
|
||||
github.com/gethinode/mod-lottie v1.5.14/go.mod h1:VrjjmrwP/NIrLW7oDQyEAHdbeIRQfbr5BKjgKvI9Al4=
|
||||
github.com/gethinode/mod-lottie v1.6.0 h1:O0ld9Q1rBWKb9HzuCuGPBfCegUcIqczMGNW2O/VjVYk=
|
||||
github.com/gethinode/mod-lottie v1.6.0/go.mod h1:jZy8EJ6ldLnOXhpzayJ2STZ4hzykqkguFHWpN4aHxMo=
|
||||
github.com/gethinode/mod-lottie v1.6.1 h1:0wkQ7yMiwFvkhzsBoO/RhfKJ7ru2EzoQfYrwnC6qoxg=
|
||||
github.com/gethinode/mod-lottie v1.6.1/go.mod h1:Buaa3A4fBIE4mkyQhnjMlassQQ5j8gRxQ4QnN7I1oGc=
|
||||
github.com/gethinode/mod-mermaid v1.1.23 h1:DA5iIdopb7f3wC+bfZ7J5HhcRUuVI/2j1+W/j5L/wwQ=
|
||||
github.com/gethinode/mod-mermaid v1.1.23/go.mod h1:rw6vrY9DpdJblwFwLuXCdy2kBHxMf6gGKWeetwfTSfc=
|
||||
github.com/gethinode/mod-mermaid/v2 v2.0.1 h1:QcahIFCgmYAGsukQ0d+/L4IJtDwgXgv0WzilZ9poI9o=
|
||||
github.com/gethinode/mod-mermaid/v2 v2.0.1/go.mod h1:kp3oUFAjKxuwzFbwxGWPEx5VQOu2ZHzcrwcNhDv08BI=
|
||||
github.com/gethinode/mod-mermaid/v2 v2.0.2 h1:uRHS3RyrMBK/hhDbEX39HnYkypSvSeci0kSyQaSdsKU=
|
||||
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=
|
||||
@@ -342,6 +370,8 @@ github.com/gethinode/mod-simple-datatables v1.1.7 h1:wCY2bWFUxRHWbWzb/zefCACooCS
|
||||
github.com/gethinode/mod-simple-datatables v1.1.7/go.mod h1:FjkIEuxqeLLEqqDcz/nHAGHsRfV7EJP5Uhk4kYD8okY=
|
||||
github.com/gethinode/mod-simple-datatables/v2 v2.0.1 h1:ZwdI96n8dM2VLwdM/x+Vj7sa4tfiAUnkDj39jn+vkXc=
|
||||
github.com/gethinode/mod-simple-datatables/v2 v2.0.1/go.mod h1:mmf1AOxpHdSRQnW2k7ExVWKTyzbG2hpsDRssmyASNb8=
|
||||
github.com/gethinode/mod-simple-datatables/v2 v2.0.2 h1:6HkJkHg754HG2P5FTXiRePEnx/p65yfuqizB+gixV6k=
|
||||
github.com/gethinode/mod-simple-datatables/v2 v2.0.2/go.mod h1:bmXZJeTQ+GZJ83vasFBTS3JSm09Oa/jDX9T187stdnA=
|
||||
github.com/gethinode/mod-utils v1.0.0 h1:cqHm2xS5uDiJzRm1KfHaNbq6uMVDKLhQa8/BuTZ1nhY=
|
||||
github.com/gethinode/mod-utils v1.0.0/go.mod h1:ONJm3pHCq7nvaPNjusLZNCeCbhOhSBH4HVKHwK1FdYE=
|
||||
github.com/gethinode/mod-utils v1.0.1 h1:jhZGlGFHHL1f5HXbBMXfiZ2gCz4TVafAzjnRPTIBSEE=
|
||||
@@ -458,6 +488,16 @@ github.com/gethinode/mod-utils/v4 v4.9.1 h1:9D2AJcrlS5r2moHEoo70GrNBmq1pJHd9oT4G
|
||||
github.com/gethinode/mod-utils/v4 v4.9.1/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/gethinode/mod-utils/v4 v4.9.2 h1:lzcihwAsm8R2k2v+tWu5nfWvXMA8uRKi0nGIzZCygZ8=
|
||||
github.com/gethinode/mod-utils/v4 v4.9.2/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/gethinode/mod-utils/v4 v4.10.0 h1:CfVa57r52wXd0bUqSJlpux2cloHQNBBe13aeqLJ8FXE=
|
||||
github.com/gethinode/mod-utils/v4 v4.10.0/go.mod h1:bYmvRdAo4ICy5MpSGafDvO4p5bTDpsDKFCPL3bH0mN4=
|
||||
github.com/gethinode/mod-utils/v4 v4.11.0 h1:24RObT99j/jiQnCyHvXahJHIA8e8uQuBb1pUIRJOxpA=
|
||||
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/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=
|
||||
|
@@ -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>
|
@@ -84,7 +84,7 @@
|
||||
{{- $params := dict -}}
|
||||
{{/* regular page */}}
|
||||
{{- if and $element.RelPermalink $element.File -}}
|
||||
{{- $params = merge $params (dict "path" $element.File.Path) -}}
|
||||
{{- $params = merge $params (dict "path" $element.Path) -}}
|
||||
{{/* headless page */}}
|
||||
{{- else -}}
|
||||
{{- $thumbnail := "" -}}
|
||||
@@ -156,7 +156,7 @@
|
||||
"ratio" (partial "inline/style.html" (dict "styles" $args.styles "index" $index "key" "ratio" "default" $args.ratio))
|
||||
"portrait" (partial "inline/style.html" (dict "styles" $args.styles "index" $index "key" "portrait" "default" $args.portrait))
|
||||
"subtle" $args.subtle
|
||||
"icon-style" (or (index $element "$icon-style") $element.style)
|
||||
"icon-style" (or (index $element "icon-style") $element.style $args.iconStyle)
|
||||
"align" $args.align
|
||||
"button" $args.button
|
||||
"button-label" (or (index $element "button-label") $element.buttonLabel)
|
||||
|
@@ -62,6 +62,26 @@
|
||||
</small></p>
|
||||
{{- end -}}
|
||||
|
||||
{{/* Inline partial to render the card's icon */}}
|
||||
{{- define "_partials/inline/card-icon.html" -}}
|
||||
{{ $padding := .padding }}
|
||||
{{ $icon := .icon}}
|
||||
{{ $rounded := .rounded }}
|
||||
{{ $style := .style}}
|
||||
{{ $stack := .stack }}
|
||||
{{ $class := .class }}
|
||||
|
||||
<div class="card-icon{{ with $padding }} p-{{ . }}{{ end }}{{ if $rounded }} fa-stack {{ $style }} fa-fw {{ $stack }}{{ end }} {{ $class }}">
|
||||
{{ if $rounded }}
|
||||
{{- partial "assets/icon.html" (dict "icon" (printf "fas circle fa-stack-2x") "spacing" false) -}}
|
||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-stack-1x fa-inverse" $icon) "spacing" false) -}}
|
||||
{{ else }}
|
||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s %s fa-fw" $icon $style) "spacing" false) -}}
|
||||
{{ end }}
|
||||
</div>
|
||||
{{- end -}}
|
||||
|
||||
|
||||
{{/* Initialize global variables */}}
|
||||
{{- $padding := partial "utilities/GetPadding.html" -}}
|
||||
|
||||
@@ -110,7 +130,6 @@
|
||||
{{- $icon := $args.icon -}}
|
||||
{{- $iconStyle := "" -}}
|
||||
{{- $anchor := $args.anchor }}
|
||||
{{- $style := $args.style }}
|
||||
|
||||
{{- with $page -}}
|
||||
{{- if not $args.title }}{{ $title = .Title }}{{ end -}}
|
||||
@@ -126,10 +145,11 @@
|
||||
{{- if not $args.anchor }}{{ $anchor = (or (and (reflect.IsMap .Params.Thumbnail) .Params.Thumbnail.anchor) "") }}{{ end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $style := $args.iconStyle }}
|
||||
{{ if (hasPrefix $args.orientation "horizontal") }}
|
||||
{{ if not $args.style }}{{ $style = "fa-fluid fa-fw" }}{{ end }}
|
||||
{{ if not $args.iconStyle }}{{ $style = "fa-fluid fa-fw" }}{{ end }}
|
||||
{{ else }}
|
||||
{{ if not $args.style }}{{ $style = "fa-4x" }}{{ end }}
|
||||
{{ if not $args.iconStyle }}{{ $style = "fa-4x" }}{{ end }}
|
||||
{{- $iconStyle = "pb-3" -}}
|
||||
{{ end }}
|
||||
|
||||
@@ -138,11 +158,19 @@
|
||||
{{- if eq $args.body "none" }}{{ $title = "" }}{{ $description = "" }}{{ end -}}
|
||||
{{ if site.Params.main.titleCase }}{{ $title = title $title }}{{ end }}
|
||||
|
||||
{{- $thumbnailArgs := dict
|
||||
"src" $thumbnail
|
||||
"portrait" $args.portrait
|
||||
"anchor" $anchor
|
||||
"sizes" $args.sizes
|
||||
"title" (or $args.alt $title)
|
||||
"loading" $args.loading
|
||||
-}}
|
||||
|
||||
{{/* Main code */}}
|
||||
{{ if or (ne $args.gutter "0") ($args.wrapper) }}<div class="g-{{ $args.gutter }} {{ $args.wrapper }}">{{ end }}
|
||||
{{ if or (gt $args.gutter "0") ($args.wrapper) }}<div class="{{ with $args.gutter }}g-{{ . }}{{ end }} {{ $args.wrapper }}">{{ end }}
|
||||
|
||||
{{ $stack := "fa-2x" }}
|
||||
{{ $stack := "" }}
|
||||
|
||||
{{- if hasPrefix $args.orientation "horizontal" -}}
|
||||
{{ $col1 := "" }}
|
||||
@@ -157,52 +185,36 @@
|
||||
{{ $col1 = "col-4 pe-0" }}
|
||||
{{ $col2 = "col-8" }}
|
||||
{{ end }}
|
||||
{{ else if $icon }}
|
||||
{{ if eq $args.orientation "horizontal-sm" }}
|
||||
{{ $stack = "fa-1x" }}
|
||||
{{ $col1 = "col-4 col-md-2 pe-0" }}
|
||||
{{ $col2 = "col-8 col-md-10" }}
|
||||
{{ else }}
|
||||
{{ $col1 = "col-4 pe-0" }}
|
||||
{{ $col2 = "col-8" }}
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
|
||||
{{/* Render horizontal card */}}
|
||||
<div class="card {{ $colorStyle }}{{ $args.class }}">
|
||||
<div class="row g-0 row-cols-2 h-100{{ if $args.button }} pb-{{ $padding.y }}{{ end }}">
|
||||
<div class="{{ if $thumbnail }}row-cols-2 row {{ end }} g-0 h-100{{ if $args.button }} pb-{{ $padding.y }}{{ end }}">
|
||||
{{- if $thumbnail -}}
|
||||
<div class="{{ $col1 }}">
|
||||
{{ $fullHeight := "card-img-h100" }}
|
||||
{{ $rounding := "rounded-start" }}
|
||||
{{ if eq (lower (path.Ext $thumbnail)) ".svg" }}{{ $fullHeight = "" }}{{ $rounding = "" }}{{ end }}
|
||||
{{- partial $args.hook (dict
|
||||
"src" $thumbnail
|
||||
"ratio" (or $ratio "auto")
|
||||
"portrait" $args.portrait
|
||||
"sizes" $args.sizes
|
||||
"anchor" $anchor
|
||||
"wrapper" "h-100 card-img-wrap d-flex align-items-center"
|
||||
{{- partial $args.hook (merge $thumbnailArgs (dict
|
||||
"wrapper" "card-img-wrap h-100 d-flex align-items-center"
|
||||
"class" (printf "card-img-bg %s %s" $rounding $fullHeight)
|
||||
"title" $title
|
||||
"loading" $args.loading
|
||||
) -}}
|
||||
</div>
|
||||
{{- else if $icon -}}
|
||||
<div class="{{ $col1 }} p-{{ $args.padding }}">
|
||||
<div class="card-icon {{ if $args.iconRounded }}fa-stack {{ $args.stack }} mx-auto{{ else }}fa-wrapper h-100 {{ end }} d-flex align-items-{{ $args.align}} justify-content-center {{ $iconStyle }}">
|
||||
{{ if $args.iconRounded }}
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas circle fa-stack-2x") -}}
|
||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-stack-1x fa-inverse" $icon)) -}}
|
||||
{{ else }}
|
||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s %s" $icon $style)) -}}
|
||||
{{ end }}
|
||||
</div>
|
||||
"ratio" (or $ratio "auto")
|
||||
)) -}}
|
||||
</div>
|
||||
{{- end -}}
|
||||
<div class="{{ $col2 }}">
|
||||
<div class="card-body d-flex p-{{ $args.padding }} flex-column h-100 flex-fill">
|
||||
<div class="card-body p-{{ $args.padding }} h-100 hstack">
|
||||
{{ if $icon }}
|
||||
{{- partial "inline/card-icon.html" (dict
|
||||
"icon" $icon
|
||||
"padding" $args.padding
|
||||
"rounded" $args.iconRounded
|
||||
"style" $style
|
||||
"stack" $args.stack
|
||||
"class" (printf "align-self-%s me-1 mt-1 col-auto" $args.align)
|
||||
)}}
|
||||
{{ end }}
|
||||
<div>
|
||||
{{ if $page }}
|
||||
<div>{{ partial "inline/card-caption.html" (dict
|
||||
"page" $page
|
||||
@@ -211,7 +223,6 @@
|
||||
) }}
|
||||
</div>
|
||||
{{ end }}
|
||||
<div class="flex-fill">
|
||||
{{- partial "inline/card-body.html" (dict
|
||||
"title" $title
|
||||
"href" $href
|
||||
@@ -219,7 +230,6 @@
|
||||
"description" $description
|
||||
"button" $args.button
|
||||
) -}}
|
||||
</div>
|
||||
{{ if $page }}<div>{{ partial "inline/card-caption.html" (dict "page" $page "keywords" $args.footerStyle "color" $args.color) }}</div>{{ end }}
|
||||
{{ if and $href $args.button }}
|
||||
{{ $label := (or $args.buttonLabel $title) | default (T "readMore") }}
|
||||
@@ -242,33 +252,27 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{- else -}}
|
||||
{{/* Render stacked / default card */}}
|
||||
{{ $overlay := eq $args.orientation "overlay" }}
|
||||
<div class="card {{ $colorStyle }} {{ $args.class }} text-{{ $args.align }}">
|
||||
<div class="card {{ $colorStyle }} {{ $args.class }} text-{{ $args.align }}{{ if not $thumbnail }} p-{{ $args.padding }}{{ end }}">
|
||||
{{- if $thumbnail -}}
|
||||
{{- partial $args.hook (dict
|
||||
"src" $thumbnail
|
||||
"ratio" (or $ratio "16x9")
|
||||
"portrait" $args.portrait
|
||||
"anchor" $anchor
|
||||
"sizes" $args.sizes
|
||||
{{- partial $args.hook (merge $thumbnailArgs (dict
|
||||
"wrapper" "card-img-wrap"
|
||||
"class" "card-img-top card-img-bg"
|
||||
"title" (or $args.alt $title)
|
||||
"loading" $args.loading
|
||||
) -}}
|
||||
"ratio" (or $ratio "16x9")
|
||||
)) -}}
|
||||
{{- else if $icon -}}
|
||||
<div class="card-icon p-{{ $args.padding }} {{ $iconStyle }} text-{{ $args.align }} {{ if $args.iconRounded }}fa-stack {{ $args.stack }}{{ end }} w-100">
|
||||
{{ if $args.iconRounded }}
|
||||
{{- partial "assets/icon.html" (dict "icon" (printf "fas circle fa-stack-2x %s")) -}}
|
||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-stack-1x fa-inverse" $icon)) -}}
|
||||
{{ else }}
|
||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s %s" $icon $style)) -}}
|
||||
{{ end }}
|
||||
</div>
|
||||
{{- partial "inline/card-icon.html" (dict
|
||||
"icon" $icon
|
||||
"rounded" $args.iconRounded
|
||||
"style" $style
|
||||
"stack" $args.stack
|
||||
"class" (printf "mb-1 m-0 text-%s" $args.align)
|
||||
)}}
|
||||
{{- end -}}
|
||||
<div class="card-body d-flex flex-column p-{{ $args.padding }} {{ if $overlay }}card-img-overlay card-overlay-gradient p-4{{ end }}" {{ if $overlay }}data-bs-theme="dark"{{ end }}>
|
||||
<div class="card-body p-0 d-flex flex-column{{ if $thumbnail }} p-{{ $args.padding }}{{ end }}{{ if $overlay }}card-img-overlay card-overlay-gradient p-4{{ end }}" {{ if $overlay }}data-bs-theme="dark"{{ end }}>
|
||||
{{ if $args.overlay }}<div class="flex-grow-1"></div>{{ end }}
|
||||
{{ if $page }}{{- partial "inline/card-caption.html" (dict "page" $page "keywords" $args.headerStyle "color" $args.color) -}}{{ end }}
|
||||
{{- partial "inline/card-body.html" (dict "title" $title "href" $href "color" $args.color "description" $description) -}}
|
||||
@@ -276,7 +280,7 @@
|
||||
</div>
|
||||
{{ if $args.button }}
|
||||
{{ $label := (or $args.buttonLabel $title) | default (T "readMore") }}
|
||||
<div class="row p-{{ $args.padding }}" >
|
||||
<div class="row" >
|
||||
<div class="{{ if eq $args.orientation "horizontal-sm" }}col-4 col-md-2{{ else if eq $args.orientation "horizontal" }}col-4{{ end }}"></div>
|
||||
<div class="col d-flex align-items-end {{ if eq $args.orientation "horizontal-sm" }}px-2{{ else if eq $args.orientation "horizontal"}}px-1 {{ else }}px-2 pt-1{{ end }}">
|
||||
{{ $buttonClass := "card-button" }}
|
||||
@@ -289,7 +293,7 @@
|
||||
"button-size" "sm"
|
||||
"class" "card-button"
|
||||
"class" $buttonClass
|
||||
"link-type" $args.buttonType
|
||||
"link-type" $buttonType
|
||||
)}}
|
||||
</div>
|
||||
</div>
|
||||
@@ -297,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 }}
|
||||
|
@@ -51,7 +51,7 @@
|
||||
|
||||
{{ partial "assets/hero.html" (dict
|
||||
"page" $args.page
|
||||
"heading" $heading
|
||||
"heading" (merge $heading (dict "size" 6))
|
||||
"background" $args.background
|
||||
"illustration" $illustration
|
||||
"order" $args.order
|
||||
|
@@ -77,10 +77,10 @@
|
||||
{{- with $wrapper }}<div class="{{ . }}">{{ end }}
|
||||
{{- end -}}
|
||||
{{- if $data -}}
|
||||
{{- if site.Params.debugging.includeSVGOrigin -}}
|
||||
{{- if and site.Params.debugging.includeSVGOrigin $.url -}}
|
||||
{{- printf "{{/* <svg src=\"%s\"> */}}" $.url | safeHTML -}}
|
||||
{{- end -}}
|
||||
{{- $data = replace $data "<svg" (printf "<svg class=\"%s\"" $args.class) -}}
|
||||
{{- with $args.class }}{{ $data = replace $data "<svg" (printf "<svg class=\"%s\"" .) }}{{ end -}}
|
||||
{{- $data | safeHTML -}}
|
||||
{{- else if not $fileAnchor -}}
|
||||
<img class="img-fluid {{ $args.class }}"
|
||||
|
@@ -67,7 +67,9 @@
|
||||
{{- if hasSuffix $src "svg" -}}
|
||||
{{- $res = partial "utilities/GetResource.html" (dict "url" $src "page" $args.page) -}}
|
||||
{{ if not $res }}
|
||||
{{- $targetURL := partial "utilities/GetStaticURL" (dict "url" (strings.TrimPrefix "/static" $src)) -}}
|
||||
{{- $targetURL := strings.TrimPrefix "/static" $src -}}
|
||||
{{- $u := urls.Parse site.BaseURL }}
|
||||
{{- $targetURL = strings.TrimPrefix $u.Path $src -}}
|
||||
{{- if not (fileExists (path.Join "/static" $targetURL)) -}}
|
||||
{{ warnf "Cannot find vector image resource: %q" $src -}}
|
||||
{{ else }}
|
||||
|
@@ -114,7 +114,6 @@
|
||||
{{ $title := partial "assets/section-title.html" (dict
|
||||
"heading" $heading
|
||||
"use-title" $args.useTitle
|
||||
"size" $args.size
|
||||
"links" $args.links
|
||||
"link-type" (or $args.linkType $args.type)
|
||||
"class" "hero-title"
|
||||
|
@@ -34,7 +34,7 @@
|
||||
{{/* Retrieve the relevant context page, either current page or page identified by section */}}
|
||||
{{ $sectionPage := $args.page | default page }}
|
||||
{{ if $args.section }}
|
||||
{{ $sectionPage = site.GetPage "section" $args.section }}
|
||||
{{ $sectionPage = site.GetPage $args.section }}
|
||||
{{ if not $sectionPage }}
|
||||
{{ warnf "Cannot find section: %s" $args.section }}
|
||||
{{ end }}
|
||||
|
@@ -72,7 +72,7 @@
|
||||
aria-labelledby="{{ $parentID }}-heading-{{ $args.id }}"
|
||||
data-bs-parent="#accordion-{{ $parentID }}"
|
||||
>
|
||||
<div class="accordion-body">{{ $args.body | $args.page.RenderString | safeHTML }}</div>
|
||||
<div class="accordion-body">{{ or $args.raw ($args.body | $args.page.RenderString) | safeHTML }}</div>
|
||||
</div>
|
||||
</div>
|
||||
{{- else -}}
|
||||
@@ -82,9 +82,9 @@
|
||||
role="tabpanel"
|
||||
aria-labelledby="{{ $parentID }}-btn-{{ $args.id }}"
|
||||
tabindex="0"
|
||||
data-has-content="{{ gt (len $args.body) 0 }}"
|
||||
data-has-content="{{ or (gt (len (or $args.raw "")) 0) (gt (len $args.body) 0 ) }}"
|
||||
>
|
||||
{{ $args.body | $args.page.RenderString | safeHTML }}
|
||||
{{ or $args.raw ($args.body | $args.page.RenderString) | safeHTML }}
|
||||
</div>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
@@ -6,6 +6,29 @@
|
||||
|
||||
{{- $error := false -}}
|
||||
|
||||
{{- define "_partials/inline/nav-dropdown.html" -}}
|
||||
{{ $id := .id }}
|
||||
{{ $class := .class }}
|
||||
{{ $titles := .titles }}
|
||||
{{ $wrap := .wrap }}
|
||||
|
||||
<div id="dropdown-{{ $id }}" class="dropdown panel-dropdown {{ $class }}">
|
||||
<a class="link-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
{{ cond (gt (len $titles) 0) (index $titles 0) (T "sectionMenu") }}
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
{{- range $index, $item := $titles -}}
|
||||
{{ $itemID := printf "%s-btn-%d" $id $index -}}
|
||||
{{- $show := eq $index 0 -}}
|
||||
<li>
|
||||
<a class="dropdown-item {{ if not $wrap }} text-nowrap{{ end }}{{ if $show }} active{{ end }}"
|
||||
data-link="#{{ $id }}-btn-{{ $index }}" type="button">{{ $item }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
{{- end -}}
|
||||
|
||||
{{/* Initialize arguments */}}
|
||||
{{- $args := partial "utilities/InitArgs.html" (dict "structure" "nav" "args" . "group" "partial") -}}
|
||||
{{- if or $args.err $args.warnmsg -}}
|
||||
@@ -19,46 +42,38 @@
|
||||
{{- $error = $args.err -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Initialize global arguments */}}
|
||||
{{- $padding := partial "utilities/GetPadding.html" -}}
|
||||
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
|
||||
|
||||
{{/* Initialize local arguments */}}
|
||||
{{- $page := $args.page -}}
|
||||
{{- $id := $args.id | default "0" -}}
|
||||
{{- $type := or $args.tabType $args.type -}}
|
||||
{{- $wrap := or $args.wordWrap $args.wrap -}}
|
||||
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
|
||||
{{- $titles := slice -}}
|
||||
{{- range $args.list }}{{ $titles = $titles | append .Title }} {{ end -}}
|
||||
{{- if reflect.IsSlice $args.navTitles }}{{ $titles = $titles | append $args.navTitles }}{{ end -}}
|
||||
|
||||
{{/* Main code */}}
|
||||
<div class="col col-{{ $breakpoint.current }}-{{ $args.width }} mx-auto">
|
||||
{{ if $args.vertical }}<div class="d-flex align-items-start">{{ end }}
|
||||
{{ if eq $type "callout" }}
|
||||
<div class="d-lg-none">
|
||||
<div id="accordion-{{ $id }}" class="accordion mb-3{{ with $args.class }} {{ . }}{{ end }} nav-callout">
|
||||
{{- range $index, $item := $args.list -}}
|
||||
{{ partial "assets/nav-item.html" (dict
|
||||
"page" $args.page
|
||||
"id" $index
|
||||
"parentID" $id
|
||||
"fade" false
|
||||
"header" $item.Title
|
||||
"class" $args.class
|
||||
"body" (or $item.Description $item.Content)
|
||||
"show" false
|
||||
"disabled" $item.disabled
|
||||
"item_type" "accordion"
|
||||
"illustration" (partial "utilities/GetIllustration.html" (dict "item" $item "size" "col-12"))
|
||||
)
|
||||
}}
|
||||
{{ end -}}
|
||||
{{- $args.navItems | safeHTML -}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-none d-lg-block">
|
||||
{{ if $args.responsive }}
|
||||
{{ partial "inline/nav-dropdown.html" (dict
|
||||
"id" $id
|
||||
"class" (printf "d-%s-none py-%d" $breakpoint.current $padding.y)
|
||||
"titles" $titles
|
||||
"wrap" $wrap
|
||||
) }}
|
||||
{{ end }}
|
||||
|
||||
<div class="{{ if $args.responsive }}d-none d-{{ $breakpoint.current }}-block{{ end }}">
|
||||
<ul
|
||||
class="nav{{ with $type }} nav-{{ . }}{{ end }}{{ with $args.class }} {{ . }}{{ end }}{{ if $args.vertical }} flex-column{{ end }}"
|
||||
class="nav nav-panel{{ with $type }} nav-{{ . }}{{ end -}}{{ with $args.class }} {{ . }}{{ end }}{{ if $args.vertical }} flex-column{{ end }} tabs-dropdown"
|
||||
id="nav-{{ $id }}"
|
||||
role="tablist"{{ if $args.vertical }}
|
||||
aria-orientation="vertical"{{ end }}
|
||||
role="tablist"
|
||||
{{ if $args.vertical }}aria-orientation="vertical"{{ end }}
|
||||
data-companion="dropdown-{{ $id }}"
|
||||
>
|
||||
{{- $titles := slice -}}
|
||||
{{- range $args.list }}{{ $titles = $titles | append .Title }} {{ end -}}
|
||||
@@ -84,49 +99,9 @@
|
||||
</li>
|
||||
{{ end -}}
|
||||
</ul>
|
||||
|
||||
<div class="tab-content {{ if eq $type "tabs" }}border p-3{{ else if $args.vertical }}ms-3{{ else }}mt-3{{ end }}">
|
||||
{{- range $index, $item := $args.list -}}
|
||||
{{- $header := $item.Title -}}
|
||||
{-{ $body := $item.Content -}}
|
||||
{{- $show := eq $index 0 -}}
|
||||
{{- $thumbnail := "" -}}
|
||||
{{- if reflect.IsMap $item.Params.Thumbnail -}}
|
||||
{{- $thumbnail = $item.Params.Thumbnail.url -}}
|
||||
{{- else -}}
|
||||
{{- $thumbnail = $item.Params.Thumbnail -}}
|
||||
{{- end -}}
|
||||
<div
|
||||
class="tab-pane{{ if $show }} active{{ end }}"
|
||||
id="nav-{{ $id }}-{{ $index }}"
|
||||
role="tabpanel"
|
||||
aria-labelledby="{{ $id }}-btn-{{ $index }}"
|
||||
tabindex="0"
|
||||
>
|
||||
{{- if eq $args.pane "persona" -}}
|
||||
{{- partial "assets/persona.html" (dict
|
||||
"title" $item.Title
|
||||
"class" $args.class
|
||||
"color" $args.color
|
||||
"href" $item.Params.href
|
||||
"content" (partial "utilities/GetDescription.html" (dict "page" $item))
|
||||
"thumbnail" $thumbnail
|
||||
) -}}
|
||||
{{- else -}}
|
||||
{{- $illustration := (partial "utilities/GetIllustration.html" (dict "item" $item)) -}}
|
||||
{{- if $illustration -}}
|
||||
<div class="row">
|
||||
<div class="col-12 col-lg-10 order-1 order-lg-0">{{- (or $item.Description $item.Content) -}}</div>
|
||||
<div class="col-12 col-lg-2 order-0 order-lg-1">{{ $illustration | safeHTML }}</div>
|
||||
</div>
|
||||
{{- else -}}
|
||||
{{- (or $item.Description $item.Content) -}}
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
</div>
|
||||
{{ end }}
|
||||
<div class="tab-content {{ if in (slice "tabs" "callout") $type }}border p-3 bg-body {{ else if $args.vertical }}ms-3{{ else }}mt-3{{ end }}">
|
||||
{{- $args.navItems | safeHTML -}}
|
||||
</div>
|
||||
{{- if eq $type "callout" }}</div>{{ end -}}
|
||||
{{- if $args.vertical }}</div>{{ end -}}
|
||||
</div>
|
||||
|
@@ -80,7 +80,7 @@
|
||||
{{ end }}
|
||||
|
||||
{{/* Initialize global variables */}}
|
||||
{{- $padding := partial "utilities/GetPadding.html" -}}
|
||||
{{- $padding := partial "utilities/GetPadding.html" (dict "section" "navigation") -}}
|
||||
|
||||
{{/* Initialize local arguments */}}
|
||||
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
|
||||
@@ -124,7 +124,8 @@
|
||||
|
||||
{{ $logo := "" }}
|
||||
{{ with $args.logo | default site.Params.navigation.logo }}
|
||||
{{ $logo = partial "assets/image.html" (dict "src" . "loading" "eager" "title" $title "image-height" 30) }}
|
||||
{{ $height := index site.Params.navigation "logo-height" | default 30 }}
|
||||
{{ $logo = partial "assets/image.html" (dict "src" . "loading" "eager" "title" $title "image-height" $height) }}
|
||||
{{ end }}
|
||||
|
||||
{{- $pre := $args.pre -}}
|
||||
|
@@ -19,7 +19,7 @@
|
||||
{{- $padding := partial "utilities/GetPadding.html" -}}
|
||||
|
||||
{{/* Initialize local arguments */}}
|
||||
{{- $size := (or $args.size site.Params.modules.bookshop.title.size) | default 4 -}}
|
||||
{{- $size := (or $args.heading.size site.Params.modules.bookshop.title.size) | default 4 -}}
|
||||
{{- $arrangement := (or $args.arrangement site.Params.modules.bookshop.title.arrangement) | default "above" -}}
|
||||
{{- $headingStyle := (or $args.headingStyle site.Params.modules.bookshop.title.headingStyle) | default "display" -}}
|
||||
{{- $contentStyle := (or $args.contentStyle site.Params.modules.bookshop.title.contentStyle) | default "lead text-muted" -}}
|
||||
@@ -85,8 +85,8 @@
|
||||
"mode" $args.mode
|
||||
}}
|
||||
|
||||
<!-- Main code -->
|
||||
<div class="text-{{ $args.heading.align }}{{ with $justify }} {{ . }}{{ end }}{{ with $args.class }} {{ . }}{{ end }}{{ with $width }} {{ . }}{{ end }} py-{{ $padding.y }}">
|
||||
{{/* Main code */}}
|
||||
<div class="text-{{ $args.heading.align }}{{ with $justify }} {{ . }}{{ end }}{{ with $args.class }} {{ . }}{{ end }}{{ with $width }} {{ . }}{{ end }}">
|
||||
{{ if and $preheading (eq $arrangement "first") }}
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
|
@@ -22,6 +22,7 @@
|
||||
|
||||
{{/* Initialize global variables */}}
|
||||
{{ $arrangement := site.Params.modules.bookshop.title.arrangement }}
|
||||
{{- $padding := partial "utilities/GetPadding.html" -}}
|
||||
|
||||
{{/* Initialize local arguments */}}
|
||||
{{- $page := $args.page -}}
|
||||
@@ -105,11 +106,12 @@
|
||||
"link-type" (or $args.linkType $args.type)
|
||||
"arrangement" $arrangement
|
||||
"justify" $args.justify
|
||||
"class" (printf "pb-%d" $padding.y)
|
||||
) }}
|
||||
{{ end }}
|
||||
|
||||
{{/* Render default timeline */}}
|
||||
<div class="container p-0 d-none d-md-block mb-5 {{ 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 ">
|
||||
@@ -135,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) }}
|
||||
|
@@ -7,7 +7,7 @@
|
||||
{{ $error := false }}
|
||||
|
||||
{{/* Initialize arguments */}}
|
||||
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "toc" "args" . "group" "partial")}}
|
||||
{{ $args := partial "utilities/InitArgs.html" (dict "structure" "toc" "args" . "group" "partial") }}
|
||||
{{ if or $args.err $args.warnmsg }}
|
||||
{{ partial (cond $args.err "utilities/LogErr.html" "utilities/LogWarn.html") (dict
|
||||
"partial" "assets/toc.html"
|
||||
|
@@ -1,107 +1,88 @@
|
||||
{{- /*
|
||||
Copyright 2023 Veriphor, LLC
|
||||
{{/*
|
||||
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.
|
||||
*/}}
|
||||
|
||||
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
|
||||
{{ define "_partials/inline/toc-item.html" }}
|
||||
{{ $base := .base }}
|
||||
{{ $startLevel := .startLevel }}
|
||||
{{ $endLevel := .endLevel }}
|
||||
{{ $item := .item }}
|
||||
{{ $maxNumHeadings := .maxNumHeadings }}
|
||||
{{ $result := .result | default slice }}
|
||||
|
||||
https://www.apache.org/licenses/LICENSE-2.0
|
||||
{{ 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 }}
|
||||
|
||||
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.
|
||||
*/}}
|
||||
{{ $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 }}
|
||||
|
||||
{{- /*
|
||||
Renders a table of contents by parsing rendered content.
|
||||
{{ range $item.Headings }}
|
||||
{{ $result = $result | append (partial "inline/toc-item.html" (dict
|
||||
"base" $base
|
||||
"item" .
|
||||
"startLevel" $startLevel
|
||||
"endLevel" $endLevel
|
||||
"maxNumHeadings" $maxNumHeadings
|
||||
)) }}
|
||||
{{ end }}
|
||||
|
||||
In site configuration, set the default start level, end level, and the minimum
|
||||
number of headings required to show the table of contents:
|
||||
{{ return $result }}
|
||||
{{ end }}
|
||||
|
||||
[params.toc]
|
||||
startLevel = 2 # default is 2
|
||||
endLevel = 3 # default is 3
|
||||
minNumHeadings = 2 # default is 2
|
||||
{{- /* 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 }}
|
||||
|
||||
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 }}
|
||||
{{- /* 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">
|
||||
{{- 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 }}
|
||||
{{ $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 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{ end }}
|
||||
|
@@ -4,15 +4,11 @@
|
||||
Visit gethinode.com/license for more details.
|
||||
*/}}
|
||||
|
||||
{{- $file := "package.json" -}}
|
||||
{{- $basePath := .Site.Params.docs.basePath -}}
|
||||
{{- $file = path.Join $basePath (path.Clean $file) -}}
|
||||
|
||||
{{- $regex := printf `"version":.*(\r\n|\r|\n)` -}}
|
||||
|
||||
{{- $file := "go.mod" -}}
|
||||
{{- $regex := printf `github.com\/gethinode\/hinode v.*(\r\n|\r|\n)` -}}
|
||||
{{- $match := findRE $regex (readFile $file) -}}
|
||||
{{- $match = index $match 0 -}}
|
||||
|
||||
{{- if $match -}}
|
||||
{{- printf "v%s" (trim (index (split $match ":") 1) " \r\n,\"") -}}
|
||||
{{- printf "%s" (trim (index (split $match " ") 1) " \r\n,\"") -}}
|
||||
{{- end -}}
|
||||
|
@@ -4,147 +4,175 @@
|
||||
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 }}
|
||||
{{- 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 }}
|
||||
{{- 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 "" }}
|
||||
{{- 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 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 }}
|
||||
{{- 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
|
||||
{{- $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 -}}
|
||||
{{- if not $skipTemplate -}}
|
||||
{{- $js = $bundle | resources.ExecuteAsTemplate $destination $page -}}
|
||||
{{- end -}}
|
||||
{{- $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
|
||||
{{- partial "inline/bundle-script.html" (dict
|
||||
"page" $page
|
||||
"match" $match
|
||||
"destination" (printf "js/%s.bundle.js" $args.type)
|
||||
@@ -155,24 +183,25 @@
|
||||
"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
|
||||
{{- 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">
|
||||
|
@@ -66,11 +66,24 @@
|
||||
"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 -}}
|
@@ -17,7 +17,9 @@
|
||||
|
||||
{{/* Insert a default hero and article block (for list pages) when no content blocks are available */}}
|
||||
{{ if and .blocks (gt (len .blocks) 0 )}}
|
||||
{{ $blocks = .blocks }}
|
||||
{{ range $i, $b := .blocks }}
|
||||
{{ $blocks = $blocks | append (merge (dict "_ordinal" $i) $b) }}
|
||||
{{ end }}
|
||||
{{ else if $default }}
|
||||
{{ $err := (hasPrefix $page.LinkTitle "404") }}
|
||||
{{ $pageTitle := $page.LinkTitle }}
|
||||
|
@@ -31,12 +31,12 @@
|
||||
{{- $header := or (partial "utilities/GetArgParent" (dict "page" . "arg" "header-style")) (partial "utilities/GetArgParent" (dict "page" . "arg" "header")) -}}
|
||||
{{- $icon := .Get "icon" -}}
|
||||
{{- $iconRounded := or (partial "utilities/GetArgParent" (dict "page" . "arg" "icon-rounded")) (partial "utilities/GetArgParent" (dict "page" . "arg" "iconRounded")) -}}
|
||||
{{- $align := partial "utilities/GetArgParent" (dict "page" . "arg" "align") -}}
|
||||
{{- $align := partial "utilities/GetArgParent" (dict "page" . "arg" "align") | default "start" -}}
|
||||
{{- $style := or (partial "utilities/GetArgParent" (dict "page" . "arg" "icon-style")) (partial "utilities/GetArgParent" (dict "page" . "arg" "style")) -}}
|
||||
{{- $subtle := partial "utilities/GetArgParent" (dict "page" . "arg" "subtle") -}}
|
||||
{{- $loading := .Get "loading" -}}
|
||||
{{- $orientation := partial "utilities/GetArgParent" (dict "page" . "arg" "orientation") -}}
|
||||
{{- $padding := partial "utilities/GetArgParent" (dict "page" . "arg" "padding") -}}
|
||||
{{- $padding := partial "utilities/GetArgParent" (dict "page" . "arg" "padding") | default 3 -}}
|
||||
{{- $ratio := partial "utilities/GetArgParent" (dict "page" . "arg" "ratio") -}}
|
||||
{{- $page := .Page -}}
|
||||
{{- $path := .Get "path" -}}
|
||||
|
@@ -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,7 +71,8 @@
|
||||
{{- $match = replace $match $captureStart "" -}}
|
||||
{{- $match = replace $match $captureEnd "" -}}
|
||||
|
||||
<ul class="nav nav-tabs{{ with $args.class }} {{ . }}{{ end }}">
|
||||
<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 }}"
|
||||
@@ -84,7 +85,7 @@
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="border-start border-end border-bottom mb-3">
|
||||
<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>
|
||||
@@ -100,4 +101,5 @@
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{- end -}}
|
@@ -54,7 +54,13 @@
|
||||
{{ errorf "Expected '_bookshop_name': %s" .Position -}}
|
||||
{{ $error = true }}
|
||||
{{ else }}
|
||||
{{ $partial = partial "_bookshop/helpers/component.html" (slice $component_name $data "p-1 p-md-4" "m-n1 m-md-n4") }}
|
||||
{{- $padding := partial "utilities/GetPadding.html" -}}
|
||||
{{ $partial = partial "_bookshop/helpers/component.html" (slice
|
||||
$component_name
|
||||
$data
|
||||
(printf "p-1 px-md-%d py-md-%d" $padding.x $padding.y)
|
||||
(printf "m-n1 mx-md-n%d my-md-n%d" $padding.x $padding.y)
|
||||
) }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{ errorf "Expected frontmatter codeblock as input: %s" .Position -}}
|
||||
|
@@ -58,7 +58,8 @@
|
||||
{{- $tmp := os.Stat $file -}}
|
||||
{{- $content := readFile $file -}}
|
||||
|
||||
<ul class="nav nav-tabs{{ with $args.class }} {{ . }}{{ end }}">
|
||||
<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 }}"
|
||||
@@ -71,7 +72,7 @@
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="border-start border-end border-bottom mb-3">
|
||||
<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>
|
||||
@@ -87,4 +88,5 @@
|
||||
</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>
|
||||
|
||||
|
@@ -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">
|
||||
|
2818
package-lock.json
generated
2818
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user