mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 01:54:23 +00:00
Compare commits
353 Commits
v0.15.0-be
...
0.18.0-bet
Author | SHA1 | Date | |
---|---|---|---|
![]() |
838e73c380 | ||
![]() |
d57a646a27 | ||
![]() |
e27d760123 | ||
![]() |
f74cd1a1e6 | ||
![]() |
c226700c6d | ||
![]() |
c3ca11b05d | ||
![]() |
164d86e5b0 | ||
![]() |
61e692f5ac | ||
![]() |
47d68f7710 | ||
![]() |
6dd6f3bc45 | ||
![]() |
b229d70fab | ||
![]() |
c4d8eb5eea | ||
![]() |
ac6ebc6b57 | ||
![]() |
2a2d564a13 | ||
![]() |
a29c903a95 | ||
![]() |
7b54eb5cdf | ||
![]() |
7e6d2b40a3 | ||
![]() |
b0f0418207 | ||
![]() |
98d7611236 | ||
![]() |
2119b05429 | ||
![]() |
dd15e0eb37 | ||
![]() |
9e1f79a3b5 | ||
![]() |
65be02a837 | ||
![]() |
2a3cab631d | ||
![]() |
e6605764bc | ||
![]() |
9fbccab1b5 | ||
![]() |
6f6908f30b | ||
![]() |
1cf5fad731 | ||
![]() |
75dc930abb | ||
![]() |
8d0adf5a28 | ||
![]() |
7a981950f5 | ||
![]() |
da1c738671 | ||
![]() |
8fbdd27e1c | ||
![]() |
631cd979b0 | ||
![]() |
de9c00a6ec | ||
![]() |
4de1b7dce7 | ||
![]() |
e0f464dc7d | ||
![]() |
5b91945824 | ||
![]() |
e7bdd81136 | ||
![]() |
dbd1b731bc | ||
![]() |
097f041765 | ||
![]() |
f283e329a7 | ||
![]() |
ffbc775446 | ||
![]() |
fedb652e1e | ||
![]() |
503a7f7410 | ||
![]() |
a693508e24 | ||
![]() |
3ba3f13005 | ||
![]() |
66f5904893 | ||
![]() |
27848998d5 | ||
![]() |
e2e9bb421f | ||
![]() |
5e32ac2a04 | ||
![]() |
efbaa6ce4f | ||
![]() |
60821fc0c3 | ||
![]() |
e25edd77b0 | ||
![]() |
2ac190723e | ||
![]() |
775a4a4b2a | ||
![]() |
84d6758b7a | ||
![]() |
1031fbd660 | ||
![]() |
80d43bed2d | ||
![]() |
094ba86f47 | ||
![]() |
244911614d | ||
![]() |
f9eedc7835 | ||
![]() |
cbfb33faf0 | ||
![]() |
2d9e89d40a | ||
![]() |
266b3978fc | ||
![]() |
d2bfd1c48f | ||
![]() |
633da32df5 | ||
![]() |
ea2c28f3fd | ||
![]() |
f66b519f51 | ||
![]() |
6bfb558f73 | ||
![]() |
f0a894091c | ||
![]() |
3bc14eb232 | ||
![]() |
e428666750 | ||
![]() |
2301ea8df6 | ||
![]() |
e9434b327a | ||
![]() |
3b1d5d838e | ||
![]() |
4e5ea23b66 | ||
![]() |
3ad19673a4 | ||
![]() |
bb58394a43 | ||
![]() |
f574888563 | ||
![]() |
7339c262b5 | ||
![]() |
51f9d204b9 | ||
![]() |
3d082a51a3 | ||
![]() |
db6b6238c5 | ||
![]() |
6011e5637a | ||
![]() |
855bf85be6 | ||
![]() |
ec37884f7a | ||
![]() |
057720bca8 | ||
![]() |
e3d607bd25 | ||
![]() |
a9e3a5ecbb | ||
![]() |
f9a3edbf30 | ||
![]() |
c199aa0902 | ||
![]() |
dfafdbb8af | ||
![]() |
c4d8507638 | ||
![]() |
44d5cfa4de | ||
![]() |
5aa3cfb80f | ||
![]() |
22b83dbcf9 | ||
![]() |
0a88ae04b9 | ||
![]() |
bf068977a6 | ||
![]() |
5dfc99efa0 | ||
![]() |
84f09f0dcb | ||
![]() |
65d9635f61 | ||
![]() |
452bd92029 | ||
![]() |
87fc26e289 | ||
![]() |
aad1335523 | ||
![]() |
a216b26857 | ||
![]() |
2c121c6cde | ||
![]() |
2bc4ff0233 | ||
![]() |
a76c80ba17 | ||
![]() |
6580955770 | ||
![]() |
38d6c01983 | ||
![]() |
af2ba38a86 | ||
![]() |
0242d388b5 | ||
![]() |
5a78dda34f | ||
![]() |
8564e3e2fc | ||
![]() |
913c6ad158 | ||
![]() |
5e676ee5fa | ||
![]() |
f1b4e556c4 | ||
![]() |
9856b670e6 | ||
![]() |
88ff187891 | ||
![]() |
5c54291eb8 | ||
![]() |
2a862034aa | ||
![]() |
56e0713582 | ||
![]() |
23a3f7ef71 | ||
![]() |
3418ac8d1d | ||
![]() |
c645024474 | ||
![]() |
f35c66c0ae | ||
![]() |
f479764542 | ||
![]() |
ab7cc04821 | ||
![]() |
6dd208f671 | ||
![]() |
833e438a23 | ||
![]() |
9d829b6d94 | ||
![]() |
0f42fae2c4 | ||
![]() |
a2f7749aa2 | ||
![]() |
ba87ccd4a5 | ||
![]() |
1c68399313 | ||
![]() |
30714ef6da | ||
![]() |
1ef92a0928 | ||
![]() |
8331a6ce7c | ||
![]() |
fd34766ffb | ||
![]() |
78573f8e51 | ||
![]() |
4a0cc8bc88 | ||
![]() |
8fd6f2af4e | ||
![]() |
0191e14a69 | ||
![]() |
1f8fb26278 | ||
![]() |
50548237c6 | ||
![]() |
7f35cf45ef | ||
![]() |
528f84c8c6 | ||
![]() |
33ab75ed84 | ||
![]() |
3010136585 | ||
![]() |
676a28c322 | ||
![]() |
a04ec4d73e | ||
![]() |
fcc93788a9 | ||
![]() |
f949a785a1 | ||
![]() |
becba931bc | ||
![]() |
03e3c5b3ee | ||
![]() |
311aa3b957 | ||
![]() |
62db3eb9db | ||
![]() |
56ea9eec47 | ||
![]() |
b845e210b7 | ||
![]() |
e8bba05213 | ||
![]() |
74d0d625c6 | ||
![]() |
9d98a3568c | ||
![]() |
dc55571f7a | ||
![]() |
b7ab9d5690 | ||
![]() |
5d20be19a8 | ||
![]() |
ecae077e2d | ||
![]() |
132c316ff0 | ||
![]() |
a3b9081b4d | ||
![]() |
8a689a95de | ||
![]() |
9bd04a5b2a | ||
![]() |
8dc884f846 | ||
![]() |
4cb558440b | ||
![]() |
0d78918aa4 | ||
![]() |
ba7ab907ef | ||
![]() |
af557ac054 | ||
![]() |
9ada0eee80 | ||
![]() |
ae3e20b596 | ||
![]() |
c49e6f14c1 | ||
![]() |
b4f6b1aa3d | ||
![]() |
962549f2ae | ||
![]() |
28601323c4 | ||
![]() |
a11ee72174 | ||
![]() |
8e91440261 | ||
![]() |
19879c4ecc | ||
![]() |
810dfef311 | ||
![]() |
c42fcefa73 | ||
![]() |
a3c417e378 | ||
![]() |
2bee381906 | ||
![]() |
244a3f7496 | ||
![]() |
563b526cea | ||
![]() |
fa7fad67b5 | ||
![]() |
966906778d | ||
![]() |
135128a5f9 | ||
![]() |
25663974ce | ||
![]() |
af5643f98f | ||
![]() |
743126d9b9 | ||
![]() |
b0187e3a75 | ||
![]() |
c7613ab7a8 | ||
![]() |
2a6a119762 | ||
![]() |
b556f4f4ec | ||
![]() |
9fa95da778 | ||
![]() |
3a07b36447 | ||
![]() |
ca5ed02bf9 | ||
![]() |
d19321af56 | ||
![]() |
142e21d792 | ||
![]() |
4c00655584 | ||
![]() |
38a2b9ff72 | ||
![]() |
efe8837eb3 | ||
![]() |
130e95ace5 | ||
![]() |
e6e38ac7c3 | ||
![]() |
3c0a6079af | ||
![]() |
4ae09056d3 | ||
![]() |
c20f367894 | ||
![]() |
4e41b5d233 | ||
![]() |
b78e9bd154 | ||
![]() |
5caaeae073 | ||
![]() |
df99d74a30 | ||
![]() |
976c541b03 | ||
![]() |
853a2f0ddd | ||
![]() |
e7b6216e4e | ||
![]() |
5f3e3fca43 | ||
![]() |
3e2340a14a | ||
![]() |
52f9dc5016 | ||
![]() |
542bf1103e | ||
![]() |
04d1d24c7b | ||
![]() |
398028858e | ||
![]() |
8658d02264 | ||
![]() |
6adb066773 | ||
![]() |
b68a632b63 | ||
![]() |
20d9de6c0f | ||
![]() |
51a26c4be8 | ||
![]() |
ef136b33da | ||
![]() |
04262c00d2 | ||
![]() |
bc17718fb8 | ||
![]() |
bd277e420c | ||
![]() |
69e196f8c2 | ||
![]() |
6663d8de58 | ||
![]() |
99d457a091 | ||
![]() |
4b1a72d1c0 | ||
![]() |
02875e731f | ||
![]() |
50664248ca | ||
![]() |
b3491cdadb | ||
![]() |
fe822cccaf | ||
![]() |
c0bcb96275 | ||
![]() |
cb09aba813 | ||
![]() |
fac6581dc9 | ||
![]() |
3ef2392913 | ||
![]() |
8531bf988f | ||
![]() |
bb2d3e7eeb | ||
![]() |
7892bd6afe | ||
![]() |
733b8b6dc8 | ||
![]() |
b5fb0d3ea8 | ||
![]() |
31e3fdc534 | ||
![]() |
641f2ee1d1 | ||
![]() |
951f595d29 | ||
![]() |
cab4338b23 | ||
![]() |
0921b1467e | ||
![]() |
23a1f2fed9 | ||
![]() |
1acc1a5264 | ||
![]() |
3c60c2c512 | ||
![]() |
9d3ac01de2 | ||
![]() |
09973c5a23 | ||
![]() |
2ed01bb499 | ||
![]() |
bca302323a | ||
![]() |
ac0152640b | ||
![]() |
5e15eb5dae | ||
![]() |
c1515325a8 | ||
![]() |
6fbec8dbac | ||
![]() |
6e20600893 | ||
![]() |
de7fb8927f | ||
![]() |
c14e45ac49 | ||
![]() |
32fd291194 | ||
![]() |
b45d0155ea | ||
![]() |
0530b2ea1e | ||
![]() |
8678741f72 | ||
![]() |
8c4e11b99f | ||
![]() |
00818cb91f | ||
![]() |
b3469d277c | ||
![]() |
3627059227 | ||
![]() |
4f92886b21 | ||
![]() |
0c2f951b81 | ||
![]() |
300efb780c | ||
![]() |
42a4fc4618 | ||
![]() |
683ffff1b2 | ||
![]() |
7738c06b6c | ||
![]() |
9aca661574 | ||
![]() |
3d5440fa3d | ||
![]() |
4854d238b7 | ||
![]() |
898764eb12 | ||
![]() |
40e66bba8a | ||
![]() |
a543db250f | ||
![]() |
8d6b34716f | ||
![]() |
ea89e1c8b5 | ||
![]() |
fb6d47c33e | ||
![]() |
dc71f43faf | ||
![]() |
78df40873f | ||
![]() |
43f996acc3 | ||
![]() |
dd51fbd542 | ||
![]() |
49df936f3b | ||
![]() |
b6643f12dd | ||
![]() |
2de996242a | ||
![]() |
3b8611ebd0 | ||
![]() |
3274c7453e | ||
![]() |
ff622c8080 | ||
![]() |
455e77b3e9 | ||
![]() |
22c85f7997 | ||
![]() |
d8799fabb5 | ||
![]() |
8ae01a2ce1 | ||
![]() |
d9d3054f22 | ||
![]() |
0bf25f7acd | ||
![]() |
d5c228d43c | ||
![]() |
96886e20d7 | ||
![]() |
171259fb29 | ||
![]() |
a706936849 | ||
![]() |
f538f3b772 | ||
![]() |
a848fccec8 | ||
![]() |
69352dd60a | ||
![]() |
e1c8641d41 | ||
![]() |
deb8dfb3cb | ||
![]() |
0dcd3f02c9 | ||
![]() |
d3105436a3 | ||
![]() |
38c982f7f4 | ||
![]() |
9c19327e19 | ||
![]() |
a9f2d56dd6 | ||
![]() |
434e02e7f5 | ||
![]() |
7e44d71ecb | ||
![]() |
be8c6d539b | ||
![]() |
3db2b1f734 | ||
![]() |
6802524aac | ||
![]() |
71cdad17d3 | ||
![]() |
626b82a619 | ||
![]() |
fbb60a0622 | ||
![]() |
a0684a8a49 | ||
![]() |
55516602e5 | ||
![]() |
fcab852216 | ||
![]() |
cb714201bc | ||
![]() |
c8de62f46b | ||
![]() |
53ab00357e | ||
![]() |
0cc246a79a | ||
![]() |
21541b9f80 | ||
![]() |
e3d4339730 | ||
![]() |
710efd0caa | ||
![]() |
493ff64be0 | ||
![]() |
f2e35074c2 | ||
![]() |
7597710980 | ||
![]() |
c44340ef9e | ||
![]() |
8dfe0cb9d4 | ||
![]() |
fdb8287951 | ||
![]() |
f4f9b7c754 | ||
![]() |
4bb5ba728a | ||
![]() |
bdb8c43fb9 | ||
![]() |
63e51006ed |
@@ -1,5 +1,6 @@
|
||||
assets/js/critical/color.js
|
||||
assets/js/analytics.js
|
||||
assets/js/color.js
|
||||
assets/js/flexsearch.js
|
||||
assets/js/sharing.js
|
||||
assets/js/vendor
|
||||
node_modules
|
||||
|
1
.github/dependabot.yml
vendored
1
.github/dependabot.yml
vendored
@@ -7,3 +7,4 @@ updates:
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
versioning-strategy: increase
|
||||
|
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@@ -12,7 +12,7 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [macos-latest, windows-latest, ubuntu-latest]
|
||||
node-version: [14.x, 16.x, 18.x]
|
||||
node-version: [16.x, 18.x, 20.x]
|
||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
@@ -24,5 +24,7 @@ jobs:
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
- run: npm ci
|
||||
- run: npm run build
|
||||
- run: npm run build:example
|
||||
|
5
.github/workflows/lint.yml
vendored
5
.github/workflows/lint.yml
vendored
@@ -14,15 +14,18 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [14.x, 16.x, 18.x]
|
||||
node-version: [16.x, 18.x, 20.x]
|
||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'npm'
|
||||
cache-dependency-path: '**/package-lock.json'
|
||||
|
||||
- run: npm ci --ignore-scripts
|
||||
- run: npm run lint
|
||||
|
37
.github/workflows/update.yml
vendored
Normal file
37
.github/workflows/update.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
name: Update Hugo Dependencies
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 3 * * *' # run daily at 03:00 AM
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
update-dep:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: "lts/*"
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
- name: Update Hugo module dependencies
|
||||
run: npm run mod:update
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
with:
|
||||
token: ${{ secrets.HUGO_MOD_PR }}
|
||||
commit-message: 'fix: update Hugo module dependencies'
|
||||
branch: hugo-mod-dependencies
|
||||
delete-branch: true
|
||||
title: 'Update Hugo module dependencies'
|
||||
body: >
|
||||
This PR is auto-generated by
|
||||
[create-pull-request](https://github.com/peter-evans/create-pull-request).
|
||||
labels: dependencies
|
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,4 +1,5 @@
|
||||
/public
|
||||
/_vendor
|
||||
public/
|
||||
resources/
|
||||
node_modules/
|
||||
|
||||
|
23
README.md
23
README.md
@@ -9,25 +9,31 @@
|
||||
<!-- Badges -->
|
||||
<p align="center">
|
||||
<a href="https://gohugo.io" alt="Hugo website">
|
||||
<img src="https://img.shields.io/badge/generator-hugo-brightgreen" />
|
||||
<img src="https://img.shields.io/badge/generator-hugo-brightgreen">
|
||||
</a>
|
||||
<a href="https://gethinode.com" alt="Hinode theme">
|
||||
<img src="https://img.shields.io/badge/theme-hinode-blue">
|
||||
</a>
|
||||
<a href="https://www.npmjs.com/package/%40gethinode/hinode" alt="npm package">
|
||||
<img src="https://img.shields.io/npm/v/%40gethinode/hinode">
|
||||
</a>
|
||||
<a href="https://app.netlify.com/sites/gethinode-demo/deploys" alt="Netlify Status">
|
||||
<img src="https://img.shields.io/netlify/0ad42e3e-fdfa-4d37-8e26-58badd429a67" />
|
||||
<img src="https://img.shields.io/netlify/0ad42e3e-fdfa-4d37-8e26-58badd429a67">
|
||||
</a>
|
||||
<a href="https://stats.uptimerobot.com/xyGVYhLJmV" alt="UptimeRobot Status">
|
||||
<img src="https://img.shields.io/uptimerobot/status/m791334689-73d9dfc82030f4f955b2d6bb" />
|
||||
<img src="https://img.shields.io/uptimerobot/status/m791334689-73d9dfc82030f4f955b2d6bb">
|
||||
</a>
|
||||
<a href="https://github.com/gethinode/hinode/commits/main" alt="Last commit">
|
||||
<img src="https://img.shields.io/github/last-commit/gethinode/hinode.svg" />
|
||||
<img src="https://img.shields.io/github/last-commit/gethinode/hinode.svg">
|
||||
</a>
|
||||
<a href="https://github.com/gethinode/hinode/issues" alt="Issues">
|
||||
<img src="https://img.shields.io/github/issues/gethinode/hinode.svg" />
|
||||
<img src="https://img.shields.io/github/issues/gethinode/hinode.svg">
|
||||
</a>
|
||||
<a href="https://github.com/gethinode/hinode/pulls" alt="Pulls">
|
||||
<img src="https://img.shields.io/github/issues-pr-raw/gethinode/hinode.svg" />
|
||||
<img src="https://img.shields.io/github/issues-pr-raw/gethinode/hinode.svg">
|
||||
</a>
|
||||
<a href="https://github.com/gethinode/hinode/blob/main/LICENSE" alt="License">
|
||||
<img src="https://img.shields.io/github/license/gethinode/hinode" />
|
||||
<img src="https://img.shields.io/github/license/gethinode/hinode">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
@@ -50,10 +56,11 @@
|
||||
- [PageSpeed Insights][pagespeed]
|
||||
- [Mozilla Observatory][observatory]
|
||||
|
||||
Hinode is a clean documentation and blog theme for [Hugo][hugo], an open-source static site generator. Based on the [Bootstrap 5][bootstrap] framework, the rendered site is fast, secure, and responsive. Hinode uses [FlexSearch][flexsearch] to enable full text search across your site. Finally, the theme uses [Node Package Manager][npm] to automate the build process and to keep track of dependencies.
|
||||
Hinode is a clean documentation and blog theme for [Hugo][hugo], an open-source static site generator. Based on the [Bootstrap 5][bootstrap] framework, the rendered site is fast, secure, and responsive. Hinode uses [FlexSearch][flexsearch] to enable full text search across your site. Finally, the theme supports [Node Package Manager][npm] to automate the build process and to keep track of dependencies.
|
||||
|
||||
Additional features include:
|
||||
|
||||
- Flexible configuration of Hugo modules
|
||||
- Switching between light mode and dark mode
|
||||
- Support for multiple languages
|
||||
- Reusable Bootstrap components through configurable shortcodes and partials
|
||||
|
@@ -1,2 +1,16 @@
|
||||
+++
|
||||
+++
|
||||
---
|
||||
# author:
|
||||
title: {{ replace .Name "-" " " | title }}
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
# layout:
|
||||
# description:
|
||||
# tags:
|
||||
# icon:
|
||||
# thumbnail:
|
||||
# url:
|
||||
# author:
|
||||
# authorURL:
|
||||
# origin:
|
||||
# originURL:
|
||||
---
|
||||
|
BIN
assets/img/puzzle.jpg
Normal file
BIN
assets/img/puzzle.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 152 KiB |
@@ -1,3 +1,5 @@
|
||||
{{- if site.Params.main.enableDarkMode -}}
|
||||
|
||||
/*!
|
||||
* Color mode toggler for Bootstrap's docs (https://getbootstrap.com/)
|
||||
* Copyright 2011-2022 The Bootstrap Authors
|
||||
@@ -31,7 +33,7 @@
|
||||
const activeSelectors = document.querySelectorAll('.theme-icon-active')
|
||||
const activeButtons = document.querySelectorAll(`[data-bs-theme-value="${theme}"]`)
|
||||
if (activeButtons.length > 0) {
|
||||
const activeIcon = activeButtons[0].querySelector('i')
|
||||
const activeIcon = activeButtons[0].querySelector('span')
|
||||
|
||||
document.querySelectorAll('[data-bs-theme-value]').forEach(element => {
|
||||
element.classList.remove('active')
|
||||
@@ -68,3 +70,5 @@
|
||||
})
|
||||
})
|
||||
})()
|
||||
|
||||
{{- end -}}
|
@@ -1,164 +0,0 @@
|
||||
{{- $search := default true site.Params.navigation.search -}}
|
||||
{{- if $search -}}
|
||||
var search = document.getElementById('search');
|
||||
var suggestions = document.getElementById('suggestions');
|
||||
var index = new FlexSearch.Document({
|
||||
tokenize: "forward",
|
||||
cache: 100,
|
||||
document: {
|
||||
id: "id",
|
||||
tag: "tag",
|
||||
store: ["href", "title", "description"],
|
||||
index: ["title", "description", "content"]
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
Source:
|
||||
- https://github.com/nextapps-de/flexsearch#index-documents-field-search
|
||||
- https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html
|
||||
*/
|
||||
function initIndex() {
|
||||
// https://discourse.gohugo.io/t/range-length-or-last-element/3803/2
|
||||
// Note: uses .Site.AllPages as .Site.RegularPages only returns content for the current language;
|
||||
// pages without a title (such as browserconfig.xml) are excluded
|
||||
{{ $list := where (where site.AllPages "Kind" "in" "page") "Title" "!=" "" }}
|
||||
{{ $len := (len $list) -}}
|
||||
|
||||
index.add(
|
||||
{{ range $index, $element := $list -}}
|
||||
{
|
||||
id: {{ $index }},
|
||||
tag: "{{ .Lang }}",
|
||||
href: "{{ .RelPermalink }}",
|
||||
title: {{ .Title | jsonify }},
|
||||
{{ with .Description -}}
|
||||
description: {{ . | jsonify }},
|
||||
{{ else -}}
|
||||
description: {{ .Summary | plainify | jsonify }},
|
||||
{{ end -}}
|
||||
content: {{ .Plain | jsonify }}
|
||||
})
|
||||
{{ if ne (add $index 1) $len -}}
|
||||
.add(
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
;
|
||||
|
||||
search.addEventListener('input', showResults, true);
|
||||
}
|
||||
|
||||
function hideSuggestions(e) {
|
||||
var isClickInsideElement = suggestions.contains(e.target);
|
||||
|
||||
if (!isClickInsideElement) {
|
||||
suggestions.classList.add('d-none');
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Source:
|
||||
- https://raw.githubusercontent.com/h-enk/doks/master/assets/js/index.js
|
||||
*/
|
||||
function inputFocus(e) {
|
||||
if (e.ctrlKey && e.key === '/' ) {
|
||||
e.preventDefault();
|
||||
search.focus();
|
||||
}
|
||||
if (e.key === 'Escape' ) {
|
||||
search.blur();
|
||||
suggestions.classList.add('d-none');
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Source:
|
||||
- https://dev.to/shubhamprakash/trap-focus-using-javascript-6a3
|
||||
*/
|
||||
function suggestionFocus(e) {
|
||||
const suggestionsHidden = suggestions.classList.contains('d-none');
|
||||
if (suggestionsHidden) return;
|
||||
|
||||
const focusableSuggestions= [...suggestions.querySelectorAll('a')];
|
||||
if (focusableSuggestions.length === 0) return;
|
||||
|
||||
const index = focusableSuggestions.indexOf(document.activeElement);
|
||||
|
||||
if (e.key === "ArrowUp") {
|
||||
e.preventDefault();
|
||||
const nextIndex = index > 0 ? index - 1 : 0;
|
||||
focusableSuggestions[nextIndex].focus();
|
||||
}
|
||||
else if (e.key === "ArrowDown") {
|
||||
e.preventDefault();
|
||||
const nextIndex= index + 1 < focusableSuggestions.length ? index + 1 : index;
|
||||
focusableSuggestions[nextIndex].focus();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Source:
|
||||
- https://github.com/nextapps-de/flexsearch#index-documents-field-search
|
||||
- https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html
|
||||
*/
|
||||
function showResults() {
|
||||
const maxResult = 5;
|
||||
var searchQuery = this.value;
|
||||
// filter the results for the currently tagged language
|
||||
const lang = document.documentElement.lang;
|
||||
var results = index.search(searchQuery, { index: ['title', 'description', 'content'], limit: maxResult, tag: lang, enrich: true });
|
||||
|
||||
// flatten results since index.search() returns results for each indexed field
|
||||
const flatResults = new Map(); // keyed by href to dedupe results
|
||||
for (const result of results.flatMap(r => r.result)) {
|
||||
if (flatResults.has(result.doc.href)) continue;
|
||||
flatResults.set(result.doc.href, result.doc);
|
||||
}
|
||||
|
||||
suggestions.innerHTML = "";
|
||||
suggestions.classList.remove('d-none');
|
||||
|
||||
// inform user that no results were found
|
||||
if (flatResults.size === 0 && searchQuery) {
|
||||
const msg = suggestions.dataset.noResults;
|
||||
const noResultsMessage = document.createElement('div')
|
||||
noResultsMessage.innerHTML = `${msg} "<strong>${searchQuery}</strong>"`
|
||||
noResultsMessage.classList.add("suggestion__no-results");
|
||||
suggestions.appendChild(noResultsMessage);
|
||||
return;
|
||||
}
|
||||
|
||||
// construct a list of suggestions
|
||||
for (const [href, doc] of flatResults) {
|
||||
const entry = document.createElement('div');
|
||||
suggestions.appendChild(entry);
|
||||
|
||||
const a = document.createElement('a');
|
||||
a.href = href;
|
||||
entry.appendChild(a);
|
||||
|
||||
const title = document.createElement('span');
|
||||
title.classList.add('text-start');
|
||||
title.textContent = doc.title;
|
||||
title.classList.add("suggestion__title");
|
||||
a.appendChild(title);
|
||||
|
||||
const description = document.createElement('span');
|
||||
description.textContent = doc.description;
|
||||
description.classList.add("suggestion__description");
|
||||
a.appendChild(description);
|
||||
|
||||
suggestions.appendChild(entry);
|
||||
|
||||
if (suggestions.childElementCount == maxResult) break;
|
||||
}
|
||||
}
|
||||
|
||||
if (search !== null && suggestions !== null) {
|
||||
document.addEventListener('keydown', inputFocus);
|
||||
document.addEventListener('keydown', suggestionFocus);
|
||||
document.addEventListener('click', hideSuggestions);
|
||||
initIndex();
|
||||
}
|
||||
|
||||
{{- end -}}
|
0
assets/js/optional/.gitkeep
Normal file
0
assets/js/optional/.gitkeep
Normal file
36
assets/js/sharing.js
Normal file
36
assets/js/sharing.js
Normal file
@@ -0,0 +1,36 @@
|
||||
{{- if site.Params.sharing.webshare -}}
|
||||
|
||||
// Adapted from: https://dev.to/j471n/how-to-share-anything-from-your-website-by-web-share-api-1h5g
|
||||
|
||||
// function for Web Share API
|
||||
function webShareAPI (title, description, link) {
|
||||
navigator
|
||||
.share({
|
||||
title,
|
||||
text: description,
|
||||
url: link
|
||||
})
|
||||
.then(() => console.log('Successful share'))
|
||||
.catch((error) => console.log('Error sharing', error))
|
||||
}
|
||||
|
||||
const shareBtn = document.getElementById('btn-webshare')
|
||||
|
||||
if (shareBtn !== null) {
|
||||
if (navigator.share) {
|
||||
const title = shareBtn.getAttribute('data-sharing-title')
|
||||
const description = shareBtn.getAttribute('data-sharing-description')
|
||||
const url = shareBtn.getAttribute('data-sharing-url')
|
||||
|
||||
// show button if it supports webShareAPI
|
||||
shareBtn.style.display = 'block'
|
||||
shareBtn.addEventListener('click', () =>
|
||||
webShareAPI(title, description, url)
|
||||
)
|
||||
} else {
|
||||
// hide button if host does not support Web Share API
|
||||
shareBtn.style.display = 'none'
|
||||
}
|
||||
}
|
||||
|
||||
{{- end -}}
|
@@ -5,79 +5,28 @@
|
||||
@import "common/variables.scss";
|
||||
@import "common/icons.scss";
|
||||
|
||||
// Import Bootstrap banner and functions
|
||||
@import "bootstrap/scss/mixins/banner";
|
||||
@include bsBanner("");
|
||||
@import "bootstrap/scss/functions";
|
||||
|
||||
// Import Bootstrap configuration
|
||||
@import "bootstrap/scss/variables";
|
||||
@import "bootstrap/scss/variables-dark.scss";
|
||||
@import "bootstrap/scss/maps";
|
||||
@import "bootstrap/scss/mixins";
|
||||
@import "bootstrap/scss/utilities";
|
||||
|
||||
// Import Bootstrap layout & components
|
||||
@import "bootstrap/scss/root";
|
||||
@import "bootstrap/scss/reboot";
|
||||
@import "bootstrap/scss/type";
|
||||
@import "bootstrap/scss/images";
|
||||
@import "bootstrap/scss/containers";
|
||||
@import "bootstrap/scss/grid";
|
||||
@import "bootstrap/scss/tables";
|
||||
@import "bootstrap/scss/forms";
|
||||
@import "bootstrap/scss/buttons";
|
||||
@import "bootstrap/scss/transitions";
|
||||
@import "bootstrap/scss/dropdown";
|
||||
@import "bootstrap/scss/button-group";
|
||||
@import "bootstrap/scss/nav";
|
||||
@import "bootstrap/scss/navbar";
|
||||
@import "bootstrap/scss/card";
|
||||
@import "bootstrap/scss/accordion";
|
||||
@import "bootstrap/scss/breadcrumb";
|
||||
@import "bootstrap/scss/pagination";
|
||||
@import "bootstrap/scss/badge";
|
||||
@import "bootstrap/scss/alert";
|
||||
@import "bootstrap/scss/progress";
|
||||
@import "bootstrap/scss/list-group";
|
||||
@import "bootstrap/scss/close";
|
||||
@import "bootstrap/scss/toasts";
|
||||
@import "bootstrap/scss/modal";
|
||||
@import "bootstrap/scss/tooltip";
|
||||
@import "bootstrap/scss/popover";
|
||||
@import "bootstrap/scss/carousel";
|
||||
@import "bootstrap/scss/spinners";
|
||||
@import "bootstrap/scss/offcanvas";
|
||||
@import "bootstrap/scss/placeholders";
|
||||
|
||||
// Import Bootstrap helpers
|
||||
@import "bootstrap/scss/helpers";
|
||||
|
||||
// Import Font Awesome
|
||||
// scss-docs-start awesome
|
||||
@import "@fortawesome/fontawesome-free/scss/fontawesome";
|
||||
@import "@fortawesome/fontawesome-free/scss/regular";
|
||||
@import "@fortawesome/fontawesome-free/scss/solid";
|
||||
@import "@fortawesome/fontawesome-free/scss/brands";
|
||||
// scss-docs-end awesome
|
||||
// Import Bootstrap configuration (mounted by core Bootstrap module)
|
||||
@import "bootstrap.scss";
|
||||
|
||||
// Import Hinode theme styles
|
||||
@import "components/alert.scss";
|
||||
@import "components/blockquote.scss";
|
||||
@import "components/breadcrumb.scss";
|
||||
@import "components/buttons.scss";
|
||||
@import "components/card.scss";
|
||||
@import "components/carousel.scss";
|
||||
@import "components/clipboard.scss";
|
||||
@import "components/command.scss";
|
||||
@import "components/comments.scss";
|
||||
@import "components/feature.scss";
|
||||
@import "components/navbar.scss";
|
||||
@import "components/img.scss";
|
||||
@import "components/pagination.scss";
|
||||
@import "components/persona.scss";
|
||||
@import "components/popover.scss";
|
||||
@import "components/search.scss";
|
||||
@import "components/sidebar.scss";
|
||||
@import "components/syntax.scss";
|
||||
@import "components/timeline.scss";
|
||||
@import "components/toc.scss";
|
||||
@import "components/vimeo.scss";
|
||||
@import "common/animation.scss";
|
||||
@@ -100,5 +49,5 @@
|
||||
// Import theme placeholder
|
||||
@import "theme/theme.scss";
|
||||
|
||||
// Import Bootstrap utilities API
|
||||
@import "bootstrap/scss/utilities/api";
|
||||
// Import Bootstrap utilities API (mounted by core Bootstrap module)
|
||||
@import "modules/bootstrap/utilities/api";
|
||||
|
@@ -23,19 +23,3 @@ $btn-toggle: url("/icons/btn-toggle.svg") !de
|
||||
$btn-toggle-dark: url("/icons/btn-toggle-dark.svg") !default;
|
||||
|
||||
// scss-docs-end icons
|
||||
|
||||
.fa-wrapper {
|
||||
container: wrapper / inline-size;
|
||||
}
|
||||
|
||||
// define fallback size for browsers not supporting containers
|
||||
.fa-fluid {
|
||||
font-size: 5rem;
|
||||
}
|
||||
|
||||
// set size based on container width
|
||||
@container (min-width: 0) {
|
||||
.fa-wrapper .fa-fluid {
|
||||
font-size: 60cqi;
|
||||
}
|
||||
}
|
||||
|
6
assets/scss/components/_breadcrumb.scss
Normal file
6
assets/scss/components/_breadcrumb.scss
Normal file
@@ -0,0 +1,6 @@
|
||||
// scss-docs-start breadcrumb
|
||||
.breadcrumb {
|
||||
padding-top: 0.3 * $navbar-offset;
|
||||
}
|
||||
|
||||
// scss-docs-end breadcrumb
|
3
assets/scss/components/_feature.scss
Normal file
3
assets/scss/components/_feature.scss
Normal file
@@ -0,0 +1,3 @@
|
||||
.feature {
|
||||
margin-top: 0.3 * $navbar-offset;
|
||||
}
|
@@ -1,117 +0,0 @@
|
||||
// Adapted from https://github.com/h-enk/doks
|
||||
|
||||
@include media-breakpoint-up(md) {
|
||||
.search {
|
||||
max-width: 20rem;
|
||||
margin-top: 0.125rem;
|
||||
margin-bottom: 0.125rem;
|
||||
}
|
||||
}
|
||||
|
||||
.form-control.is-search {
|
||||
padding-right: 4rem;
|
||||
border: 1px solid transparent;
|
||||
background: var(--bs-tertiary-bg);
|
||||
}
|
||||
|
||||
.form-control.is-search:focus {
|
||||
border: 1px solid $primary;
|
||||
}
|
||||
|
||||
.search::after {
|
||||
position: absolute;
|
||||
top: 0.4625rem;
|
||||
right: 0.5375rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 1.5rem;
|
||||
padding-right: 0.3125rem;
|
||||
padding-left: 0.3125rem;
|
||||
font-size: $font-size-base * 0.75;
|
||||
color: var(--bs-secondary-color);
|
||||
content: "Ctrl + /";
|
||||
border: 1px solid var(--bs-border-color);
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.navbar-form {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#suggestions {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
margin-top: 0.5rem;
|
||||
width: calc(100vw - 3rem);
|
||||
z-index: $zindex-dropdown;
|
||||
}
|
||||
|
||||
#suggestions a,
|
||||
.suggestion__no-results {
|
||||
padding: 0.75rem;
|
||||
margin: 0 0.5rem;
|
||||
}
|
||||
|
||||
#suggestions a {
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#suggestions a:focus {
|
||||
background-color: var(--bs-tertiary-bg);
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
#suggestions div:not(:first-child) {
|
||||
border-top: 1px dashed var(--bs-border-color);
|
||||
}
|
||||
|
||||
#suggestions div:first-child {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
#suggestions div:last-child {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
#suggestions a:hover {
|
||||
background-color: var(--bs-tertiary-bg);
|
||||
}
|
||||
|
||||
#suggestions span {
|
||||
display: flex;
|
||||
font-size: $font-size-base;
|
||||
}
|
||||
|
||||
.suggestion__title {
|
||||
font-weight: $headings-font-weight;
|
||||
}
|
||||
|
||||
.suggestion__description,
|
||||
.suggestion__no-results {
|
||||
color: var(--bs-secondary-color);
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(sm) {
|
||||
#suggestions {
|
||||
width: 31.125rem;
|
||||
}
|
||||
|
||||
#suggestions a {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.suggestion__title {
|
||||
width: 9rem;
|
||||
padding-right: 1rem;
|
||||
border-right: 1px solid var(--bs-border-color);
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.suggestion__description {
|
||||
width: 19rem;
|
||||
padding-left: 1rem;
|
||||
}
|
||||
}
|
@@ -6,9 +6,9 @@
|
||||
/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
|
||||
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
||||
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
|
||||
/* LineHighlight */ .chroma .hl { background-color: #ffffcc }
|
||||
/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #64686c }
|
||||
/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #6e7681 }
|
||||
/* LineHighlight */ .chroma .hl { background-color: #b8b800 }
|
||||
/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #64686c }
|
||||
/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #6e7681 }
|
||||
/* Line */ .chroma .line { display: flex; }
|
||||
/* Keyword */ .chroma .k { color: #ff7b72 }
|
||||
/* KeywordConstant */ .chroma .kc { color: #79c0ff }
|
||||
|
@@ -7,8 +7,8 @@
|
||||
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
||||
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
|
||||
/* LineHighlight */ .chroma .hl { background-color: #ffffcc }
|
||||
/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||
/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||
/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||
/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||
/* Line */ .chroma .line { display: flex; }
|
||||
/* Keyword */ .chroma .k { color: #000000; font-weight: bold }
|
||||
/* KeywordConstant */ .chroma .kc { color: #000000; font-weight: bold }
|
||||
|
@@ -1,5 +1,5 @@
|
||||
// stylelint-disable annotation-no-unknown
|
||||
@import "syntax-light";
|
||||
@import "components/syntax-light";
|
||||
|
||||
.bg,
|
||||
.chroma,
|
||||
@@ -10,15 +10,16 @@
|
||||
|
||||
.syntax-highlight {
|
||||
background-color: var(--bs-light) if($enable-important-utilities, !important, null);
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.preview-background {
|
||||
background-color: var(--bs-secondary-bg) if($enable-important-utilities, !important, null);
|
||||
background-color: var(--bs-dark-bg-subtle) if($enable-important-utilities, !important, null);
|
||||
}
|
||||
|
||||
@if $enable-dark-mode {
|
||||
[data-bs-theme="dark"] {
|
||||
@import "syntax-dark"; // stylelint-disable-line no-invalid-position-at-import-rule
|
||||
@import "components/syntax-dark"; // stylelint-disable-line no-invalid-position-at-import-rule
|
||||
|
||||
.bg,
|
||||
.chroma,
|
||||
@@ -29,6 +30,7 @@
|
||||
|
||||
.syntax-highlight {
|
||||
background-color: var(--bs-tertiary-bg) if($enable-important-utilities, !important, null);
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.bg,
|
||||
|
165
assets/scss/components/_timeline.scss
Normal file
165
assets/scss/components/_timeline.scss
Normal file
@@ -0,0 +1,165 @@
|
||||
// scss-docs-start timeline
|
||||
$connector-radius: 0.8rem;
|
||||
$semi-circle-radius: 8rem;
|
||||
$semi-circle-border: 0.2rem;
|
||||
|
||||
:root {
|
||||
--timeline-highlight: var(--bs-primary);
|
||||
--timeline-icon-radius: #{$semi-circle-radius};
|
||||
--timeline-offset: 50%;
|
||||
--timeline-connector-bg: var(--bs-body-bg);
|
||||
}
|
||||
|
||||
@each $state in map-keys($theme-colors) {
|
||||
.timeline-#{$state} {
|
||||
--timeline-highlight: var(--#{$prefix}#{$state});
|
||||
}
|
||||
|
||||
.timeline-bg-#{$state} {
|
||||
--timeline-connector-bg: var(--#{$prefix}#{$state}-bg-subtle);
|
||||
}
|
||||
}
|
||||
|
||||
// scss-docs-end timeline
|
||||
|
||||
.timeline, .timeline-sm {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.timeline-sm {
|
||||
--timeline-icon-radius: calc(#{$semi-circle-radius} / 2);
|
||||
--timeline-offset: 25%
|
||||
}
|
||||
|
||||
.timeline::before, .timeline-sm::before {
|
||||
content: "";
|
||||
width: 2 * $semi-circle-border;
|
||||
margin: 0 auto;
|
||||
background: var(--bs-body-color);
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
}
|
||||
|
||||
.timeline-sm::before {
|
||||
margin: 0 calc(var(--timeline-offset) - #{$semi-circle-border});
|
||||
}
|
||||
|
||||
.timeline-semi-circle-start, .timeline-semi-circle-end {
|
||||
width: var(--timeline-icon-radius);
|
||||
height: var(--timeline-icon-radius);
|
||||
border-radius: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.timeline-semi-circle-start {
|
||||
left: -$semi-circle-border;
|
||||
}
|
||||
|
||||
.timeline-semi-circle-end {
|
||||
left: $semi-circle-border;
|
||||
}
|
||||
|
||||
.timeline-semi-circle-start::before {
|
||||
content: "";
|
||||
width: var(--timeline-icon-radius);
|
||||
height: var(--timeline-icon-radius);
|
||||
border-radius: 100%;
|
||||
border: $semi-circle-border solid;
|
||||
position: absolute;
|
||||
border-color: transparent var(--timeline-highlight) var(--timeline-highlight) var(--timeline-highlight);
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
|
||||
.timeline-semi-circle-start::after {
|
||||
content: "";
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: var(--timeline-icon-radius);
|
||||
height: var(--timeline-icon-radius);
|
||||
border-radius: 100%;
|
||||
border: $semi-circle-border solid;
|
||||
position: absolute;
|
||||
border-color: var(--timeline-highlight) var(--timeline-highlight) var(--timeline-highlight) transparent;
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
|
||||
.timeline-semi-circle-end::before {
|
||||
content: "";
|
||||
width: var(--timeline-icon-radius);
|
||||
height: var(--timeline-icon-radius);
|
||||
border-radius: 100%;
|
||||
border: $semi-circle-border solid;
|
||||
position: absolute;
|
||||
border-color: transparent var(--timeline-highlight) var(--timeline-highlight) var(--timeline-highlight);
|
||||
transform: rotate(-225deg);
|
||||
}
|
||||
|
||||
.timeline-semi-circle-end::after {
|
||||
content: "";
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: var(--timeline-icon-radius);
|
||||
height: var(--timeline-icon-radius);
|
||||
border-radius: 100%;
|
||||
border: $semi-circle-border solid;
|
||||
position: absolute;
|
||||
border-color: var(--timeline-highlight) var(--timeline-highlight) var(--timeline-highlight) transparent;
|
||||
transform: rotate(-180deg);
|
||||
}
|
||||
|
||||
.timeline-description-text-start {
|
||||
border-bottom: $semi-circle-border solid var(--timeline-highlight);
|
||||
margin-right: 2 * $connector-radius;
|
||||
}
|
||||
|
||||
.timeline-description-text-end {
|
||||
border-bottom: $semi-circle-border solid var(--timeline-highlight);
|
||||
margin-left: 2 * $connector-radius;
|
||||
}
|
||||
|
||||
.timeline-panel-start, .timeline-panel-end, .timeline-connector-start, .timeline-connector-end {
|
||||
top: calc(var(--timeline-icon-radius) / 2);
|
||||
position: relative;
|
||||
width: calc(var(--timeline-icon-radius) / 2);
|
||||
height: calc($semi-circle-border + var(--timeline-icon-radius) / 2);
|
||||
border: $semi-circle-border solid var(--timeline-highlight);
|
||||
border-bottom: none;
|
||||
border-right: none;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.timeline-panel-start {
|
||||
top: 50%;
|
||||
right: 50%;
|
||||
position: absolute;
|
||||
width: calc(var(--timeline-icon-radius) * 2);
|
||||
width: 2 * $connector-radius;
|
||||
height: 50%;
|
||||
border-top: $semi-circle-border solid var(--timeline-highlight);
|
||||
border-left: $semi-circle-border solid var(--timeline-highlight);
|
||||
}
|
||||
|
||||
.timeline-panel-end {
|
||||
top: 50%;
|
||||
position: absolute;
|
||||
width: calc(var(--timeline-icon-radius) * 2);
|
||||
width: 2 * $connector-radius;
|
||||
height: 50%;
|
||||
border-top: $semi-circle-border solid var(--timeline-highlight);
|
||||
border-right: $semi-circle-border solid var(--timeline-highlight);
|
||||
}
|
||||
|
||||
.timeline-dot::after {
|
||||
display: inline-block;
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: var(--timeline-offset);
|
||||
margin: (-$connector-radius) 0 0 (-$connector-radius);
|
||||
width: 2 * $connector-radius;
|
||||
height: 2 * $connector-radius;
|
||||
border-radius: 100%;
|
||||
border: ($semi-circle-border * 1.5) solid var(--timeline-connector-bg);
|
||||
color: var(--timeline-highlight);
|
||||
background: var(--timeline-highlight);
|
||||
}
|
@@ -6,12 +6,13 @@ enableGitInfo = true
|
||||
# toml-docs-end main
|
||||
|
||||
# additional settings
|
||||
googleAnalytics = "G-T85PPZ36GN"
|
||||
baseURL = "https://demo.gethinode.com/"
|
||||
# googleAnalytics = "G-xxxxxxxxxx"
|
||||
baseURL = "https://example.com/"
|
||||
canonifyURLs = false
|
||||
enableEmoji = true
|
||||
enableRobotsTXT = true
|
||||
enableInlineShortcodes = true
|
||||
summaryLength = 20
|
||||
|
||||
# prevent build failures when using Hugo's Instagram shortcode due to deprecated Instagram API.
|
||||
# See https://github.com/gohugoio/hugo/issues/7228#issuecomment-714490456
|
||||
@@ -24,7 +25,7 @@ timeout = "180s"
|
||||
# toml-docs-start language
|
||||
languageCode = "en-us"
|
||||
defaultContentLanguage = "en"
|
||||
defaultContentLanguageInSubdir = true
|
||||
defaultContentLanguageInSubdir = false
|
||||
# toml-docs-end language
|
||||
|
||||
# toml-docs-start redirect
|
||||
@@ -85,27 +86,35 @@ home = ["HTML", "RSS", "REDIR"]
|
||||
[module]
|
||||
[module.hugoVersion]
|
||||
extended = true
|
||||
min = "0.81.0"
|
||||
min = "0.110.0"
|
||||
max = ""
|
||||
[[module.mounts]]
|
||||
source = "archetypes"
|
||||
target = "archetypes"
|
||||
[[module.mounts]]
|
||||
source = "assets"
|
||||
target = "assets"
|
||||
[[module.mounts]]
|
||||
source = "i18n"
|
||||
target = "i18n"
|
||||
[[module.mounts]]
|
||||
source = "layouts"
|
||||
target = "layouts"
|
||||
[[module.mounts]]
|
||||
source = "static"
|
||||
target = "static"
|
||||
[[module.mounts]]
|
||||
source = "static/fonts"
|
||||
target = "static/fonts"
|
||||
# toml-docs-start javascript
|
||||
[[module.mounts]]
|
||||
source = "node_modules/bootstrap/dist/js"
|
||||
target = "assets/js/vendor/bootstrap"
|
||||
includeFiles = "*.bundle.js"
|
||||
[[module.mounts]]
|
||||
source = "node_modules/flexsearch/dist"
|
||||
target = "assets/js/vendor/flexsearch"
|
||||
includeFiles = "*.bundle.js"
|
||||
# toml-docs-end javascript
|
||||
[[module.mounts]]
|
||||
source = "node_modules/@fortawesome/fontawesome-free/webfonts"
|
||||
target = "static/fonts"
|
||||
source = "netlify.toml"
|
||||
target = "assets/config/netlify.toml"
|
||||
# toml-docs-start modules
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-bootstrap"
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-flexsearch"
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-fontawesome"
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-katex"
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/mod-leaflet"
|
||||
# toml-docs-end modules
|
@@ -1,31 +1,15 @@
|
||||
# toml-docs-start lang-main
|
||||
[en]
|
||||
languageName = "English"
|
||||
contentDir = "content/en"
|
||||
contentDir = "content"
|
||||
weight = 1
|
||||
# toml-docs-end lang-main
|
||||
# toml-docs-start lang-param
|
||||
[en.params.head]
|
||||
tagline = "A Hugo Theme"
|
||||
[en.params.feature]
|
||||
link = "about"
|
||||
caption = "About"
|
||||
[en.params.social]
|
||||
title = "Follow me"
|
||||
caption = "I work on everything coding and tweet developer memes"
|
||||
[en.params.footer]
|
||||
license = "Licensed under Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank' rel='noopener noreferrer'>CC BY-NC-SA 4.0</a>)."
|
||||
socialTitle = "Follow me"
|
||||
socialCaption = "I work on everything coding and tweet developer memes"
|
||||
# license = "Licensed under Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank' rel='noopener noreferrer'>CC BY-NC-SA 4.0</a>)."
|
||||
# toml-docs-end lang-param
|
||||
|
||||
[nl]
|
||||
languageName = "Nederlands"
|
||||
contentDir = "content/nl"
|
||||
weight = 2
|
||||
[nl.params.head]
|
||||
tagline = "Een Hugo Thema"
|
||||
[nl.params.feature]
|
||||
link = "over-mij"
|
||||
caption = "Over mij"
|
||||
[nl.params.footer]
|
||||
license = "Gelicenseerd onder Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank' rel='noopener noreferrer'>CC BY-NC-SA 4.0</a>)."
|
||||
socialTitle = "Volg mij"
|
||||
socialCaption = "Ik doe aan programmeren en tweet memes"
|
@@ -1,50 +1,28 @@
|
||||
[[main]]
|
||||
name = "About"
|
||||
pageRef = "/about/"
|
||||
name = "Home"
|
||||
pageRef = "/"
|
||||
weight = 10
|
||||
|
||||
[[main]]
|
||||
name = "Blog"
|
||||
pageRef = "/blog/"
|
||||
weight = 20
|
||||
|
||||
[[main]]
|
||||
name = "Projects"
|
||||
pageRef = "/projects/"
|
||||
weight = 30
|
||||
|
||||
[[main]]
|
||||
name = "Sample project"
|
||||
pageRef = "/projects/sample-project/"
|
||||
parent = "Projects"
|
||||
weight = 1
|
||||
|
||||
[[main]]
|
||||
name = "Another project"
|
||||
pageRef = "/projects/another-project/"
|
||||
parent = "Projects"
|
||||
weight = 2
|
||||
|
||||
[[main]]
|
||||
name = "Tags"
|
||||
pageRef = "/tags/"
|
||||
weight = 40
|
||||
pageRef = "/tags"
|
||||
weight = 20
|
||||
|
||||
[[social]]
|
||||
name = "LinkedIn"
|
||||
pre = "<i class=\"fab fa-linkedin fa-2x\"></i>"
|
||||
pre = "fab linkedin"
|
||||
url = "https://linkedin.com/"
|
||||
weight = 10
|
||||
|
||||
[[social]]
|
||||
name = "GitHub"
|
||||
pre = "<i class=\"fab fa-github fa-2x\"></i>"
|
||||
pre = "fab fa-github"
|
||||
url = "https://github.com/"
|
||||
weight = 20
|
||||
|
||||
[[social]]
|
||||
name = "Medium"
|
||||
pre = "<i class=\"fab fa-medium fa-2x\"></i>"
|
||||
pre = "fab medium"
|
||||
url = "https://medium.com/"
|
||||
weight = 30
|
||||
|
||||
|
@@ -4,23 +4,41 @@
|
||||
description = "Hinode is a clean documentation and blog theme for your Hugo site based on Bootstrap 5."
|
||||
enableDarkMode = true
|
||||
modes = ["light", "dark"]
|
||||
canonifyAssetsURLs = false
|
||||
endorse = true
|
||||
[main.externalLinks]
|
||||
cue = false
|
||||
tab = false
|
||||
# toml-docs-end main
|
||||
|
||||
# toml-docs-start modules
|
||||
[modules]
|
||||
core = ["bootstrap", "flexsearch", "fontawesome"]
|
||||
optional = ["leaflet", "katex"]
|
||||
excludeSCSS = ["bootstrap"]
|
||||
disableTemplate = ["katex"]
|
||||
[modules.fontawesome]
|
||||
inline = true
|
||||
debug = true
|
||||
skipMissing = false
|
||||
# toml-docs-end modules
|
||||
|
||||
# toml-docs-start debugging
|
||||
[debugging]
|
||||
showJS = false
|
||||
showSCSS = false
|
||||
# toml-docs-end debugging
|
||||
|
||||
# toml-docs-start docs
|
||||
[docs]
|
||||
latest = "1.0"
|
||||
version = "0.8"
|
||||
basePath = ""
|
||||
github = "https://github.com/gethinode/hinode"
|
||||
release = "https://github.com/gethinode/hinode/releases/tag/"
|
||||
checkVersion = true
|
||||
latestURL = "https://demo.gethinode.com/"
|
||||
checkVersion = false
|
||||
# toml-docs-end docs
|
||||
|
||||
# toml-docs-start home
|
||||
[home]
|
||||
sections = ["blog", "projects"]
|
||||
featurePhoto = "/img/sunrise.jpg" # source: https://unsplash.com/photos/ZX6BPboJrYk
|
||||
# sections = ["posts"]
|
||||
fullCover = false
|
||||
centerHeadline = false
|
||||
style = ""
|
||||
@@ -34,7 +52,7 @@
|
||||
fixed = true
|
||||
offset = "3.8em"
|
||||
search = true
|
||||
breadcrumb = false
|
||||
breadcrumb = true
|
||||
toc = true
|
||||
sidebar = true
|
||||
# toml-docs-end navigation
|
||||
@@ -49,6 +67,7 @@
|
||||
enabled = true
|
||||
sort = "weight"
|
||||
reverse = false
|
||||
webshare = true
|
||||
|
||||
[[sharing.providers]]
|
||||
name = "LinkedIn"
|
||||
@@ -59,7 +78,7 @@
|
||||
[[sharing.providers]]
|
||||
name = "Twitter"
|
||||
url = "https://twitter.com/home?status={url}"
|
||||
icon = "fab twitter"
|
||||
icon = "fab x-twitter"
|
||||
weight = 20
|
||||
|
||||
[[sharing.providers]]
|
||||
@@ -83,37 +102,21 @@
|
||||
# toml-docs-end sharing
|
||||
|
||||
# toml-docs-start sections
|
||||
[sections]
|
||||
[sections.blog]
|
||||
title = "Blog"
|
||||
sort = "date"
|
||||
reverse = true
|
||||
nested = true
|
||||
cols = 3
|
||||
color = ""
|
||||
padding = "0"
|
||||
header = "full"
|
||||
footer = "none"
|
||||
orientation = "stacked"
|
||||
style = "border-0 card-zoom"
|
||||
homepage = 3
|
||||
separator = true
|
||||
[sections.projects]
|
||||
title = "Projects"
|
||||
layout = "card"
|
||||
sort = "title"
|
||||
reverse = false
|
||||
nested = true
|
||||
cols = 1
|
||||
background = "body-tertiary"
|
||||
color = "body"
|
||||
padding = "3"
|
||||
header = "none"
|
||||
footer = "tags"
|
||||
orientation = "horizontal"
|
||||
style = "border-1 card-emphasize"
|
||||
homepage = 3
|
||||
separator = false
|
||||
# [sections]
|
||||
# [sections.posts]
|
||||
# title = "Posts"
|
||||
# sort = "date"
|
||||
# reverse = true
|
||||
# nested = true
|
||||
# cols = 3
|
||||
# color = ""
|
||||
# padding = "0"
|
||||
# header = "full"
|
||||
# footer = "none"
|
||||
# orientation = "stacked"
|
||||
# style = "border-0 card-zoom"
|
||||
# homepage = 3
|
||||
# separator = true
|
||||
# toml-docs-end sections
|
||||
|
||||
[favicon]
|
||||
@@ -177,11 +180,4 @@
|
||||
#theme = ""
|
||||
|
||||
[links]
|
||||
bs_badge_heading = "https://getbootstrap.com/docs/5.2/components/badge/#headings"
|
||||
hinode_docs = "https://gethinode.com/docs"
|
||||
hugo_imaging = "https://gohugo.io/content-management/image-processing/#imaging-configuration"
|
||||
mozilla_image = "https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images"
|
||||
observatory = "https://observatory.mozilla.org/analyze/demo.gethinode.com"
|
||||
pagespeed = "https://pagespeed.web.dev/report?url=https%3A%2F%2Fdemo.gethinode.com%2F"
|
||||
utterances = "https://utteranc.es"
|
||||
|
||||
hinode = "https://gethinode.com"
|
||||
|
@@ -16,7 +16,7 @@ for = '/**'
|
||||
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
|
||||
font-src 'self' https://fonts.gstatic.com; \
|
||||
frame-src 'self' https://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com; \
|
||||
img-src 'self' https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com; \
|
||||
img-src 'self' data: https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \
|
||||
manifest-src 'self'; \
|
||||
media-src 'self' \
|
||||
"""
|
||||
|
@@ -21,12 +21,15 @@ const purgecss = require('@fullhuman/postcss-purgecss')({
|
||||
'./assets/scss/components/_syntax-light.scss',
|
||||
'./assets/scss/theme/fonts.scss',
|
||||
'./assets/scss/theme/theme.scss',
|
||||
'./node_modules/bootstrap/scss/_carousel.scss',
|
||||
'./node_modules/bootstrap/scss/_dropdown.scss',
|
||||
'./node_modules/bootstrap/scss/_reboot.scss',
|
||||
'./node_modules/bootstrap/scss/_tooltip.scss',
|
||||
'./node_modules/bootstrap/scss/_transitions.scss',
|
||||
'./node_modules/bootstrap/scss/_utilities.scss'
|
||||
'./_vendor/github.com/gethinode/mod-flexsearch/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/twbs/bootstrap/scss/_carousel.scss',
|
||||
'./_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss',
|
||||
'./_vendor/github.com/twbs/bootstrap/scss/_reboot.scss',
|
||||
'./_vendor/github.com/twbs/bootstrap/scss/_tooltip.scss',
|
||||
'./_vendor/github.com/twbs/bootstrap/scss/_transitions.scss',
|
||||
'./_vendor/github.com/twbs/bootstrap/scss/_utilities.scss'
|
||||
])
|
||||
]
|
||||
})
|
||||
|
@@ -1 +0,0 @@
|
||||
canonifyURLs = false
|
13
content/_index.md
Normal file
13
content/_index.md
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Welcome to Hinode!
|
||||
thumbnail:
|
||||
url: /img/sunrise.jpg
|
||||
author: Harris Vo
|
||||
authorURL: https://unsplash.com/@hoanvokim
|
||||
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
||||
originName: Unsplash
|
||||
---
|
||||
|
||||
A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
||||
|
||||
{{< button href="https://gethinode.com/docs" icon="fas book-open" order="first" >}}Get Started{{< /button>}}
|
@@ -1,6 +0,0 @@
|
||||
---
|
||||
author: Mark Dumay
|
||||
title: Welcome to Hinode!
|
||||
---
|
||||
|
||||
A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
@@ -1,6 +0,0 @@
|
||||
---
|
||||
author: Mark Dumay
|
||||
title: Welkom bij Hinode!
|
||||
---
|
||||
|
||||
Een documentatie en blog thema voor Hugo gebaseerd op Bootstrap 5.
|
@@ -1,281 +0,0 @@
|
||||
---
|
||||
author: Mark Dumay
|
||||
title: Bootstrap elementen
|
||||
slug: bootstrap-elementen
|
||||
date: 2023-02-17
|
||||
description: Gebruik shortcodes om eenvoudig Bootstrap elementen toe te voegen.
|
||||
tags: ["bootstrap", "shortcode"]
|
||||
thumbnail: img/boots.jpg
|
||||
photoCredits: <a href="https://unsplash.com/@nate_dumlao">Nathan Dumlao</a>
|
||||
photoSource: <a href="https://unsplash.com/photos/QLPWQvHvmII">Unsplash</a>
|
||||
---
|
||||
|
||||
Hinode beschikt over meerdere shortcodes om eenvoudig Bootstrap elementen toe te voegen aan je website. De [officiële documentatie]({{< param "links.hinode_docs" >}}) bevat meer details.
|
||||
|
||||
## Accordion
|
||||
|
||||
De volgende shortcode toont een accordion met drie elementen, waarvan de eerste is uitgeklapt.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* accordion */>}}
|
||||
{{</* accordion-item header="Accordion Item #1" show="true" */>}}
|
||||
Dit is de inhoud van het eerste element met ondersteuning voor HTML. De waarde <code>show</code>
|
||||
voor het argument <code>class</code> geeft aan dat het element uitgeklapt moet worden.
|
||||
{{</* /accordion-item */>}}
|
||||
{{</* accordion-item header="Accordion Item #2" */>}}
|
||||
Dit is de inhoud van het tweede element. Het ondersteunt ook HTML.
|
||||
{{</* /accordion-item */>}}
|
||||
{{</* accordion-item header="Accordion Item #3" */>}}
|
||||
Dit is de inhoud van het derde element.
|
||||
{{</* /accordion-item */>}}
|
||||
{{</* /accordion */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Alert
|
||||
|
||||
De volgende shortcode toont een waarschuwing.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* alert color="danger" dismissible="true" */>}}
|
||||
Een eenvoudige waarschuwing
|
||||
{{</* /alert */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Badge
|
||||
|
||||
Gebruik HTML code om een label toe te voegen aan een titel. De Bootstrap [documentatie]({{< param "links.bs_badge_heading" >}}) beschrijft meer opties.
|
||||
|
||||
{{< example >}}
|
||||
<h1>Voorbeeldtekst met grootte één <span class="badge bg-secondary">Nieuw</span></h1>
|
||||
<h2>Voorbeeldtekst met grootte twee <span class="badge bg-secondary">Nieuw</span></h2>
|
||||
<h3>Voorbeeldtekst met grootte drie <span class="badge bg-secondary">Nieuw</span></h3>
|
||||
<h4>Voorbeeldtekst met grootte vier <span class="badge bg-secondary">Nieuw</span></h4>
|
||||
<h5>Voorbeeldtekst met grootte vijf <span class="badge bg-secondary">Nieuw</span></h5>
|
||||
<h6>Voorbeeldtekst met grootte zes <span class="badge bg-secondary">Nieuw</span></h6>
|
||||
{{< /example >}}
|
||||
|
||||
## Breadcrumb
|
||||
|
||||
De volgende shortcode toont het navigatiepad voor de blog pagina.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* breadcrumb path="blog" */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Button
|
||||
|
||||
De volgende shortcode toont een knop met een label en een aanwijzing.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* button color="secondary" tooltip="Toon je ongelezen berichten" href="#!" badge="99+" */>}}
|
||||
Inbox
|
||||
{{</* /button */>}}
|
||||
{{< /example>}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Button group
|
||||
|
||||
De volgende shortcode toont een groep van drie knoppen.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* button-group aria-label="Basic example" */>}}
|
||||
{{</* button color="primary" href="#!" */>}}Links{{</* /button */>}}
|
||||
{{</* button color="primary" href="#!" */>}}Midden{{</* /button */>}}
|
||||
{{</* button color="primary" href="#!" */>}}Rechts{{</* /button */>}}
|
||||
{{</* /button-group */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Card
|
||||
|
||||
De volgende shortcode toont een kaart dat linkt naar de [over mij]({{< ref "about" >}}) pagina. De kaart bevat een titel.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* card path="about" padding="3" class="w-50" color="body-tertiary" header="publication" footer="none" */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Carousel
|
||||
|
||||
De volgende shortcode toont een carousel met drie pagina's, in een verhouding van 16x9 voor een breedte van 67% op grotere schermen.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* carousel ratio="16x9" class="col-sm-12 col-lg-8 mx-auto" */>}}
|
||||
{{</* img src="img/coffee.jpg" caption="pagina 1" */>}}
|
||||
{{</* img src="img/phone.jpg" caption="pagina 2" */>}}
|
||||
{{</* img src="img/dunes.jpg" caption="pagina 3" */>}}
|
||||
{{</* /carousel */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Collapse
|
||||
|
||||
De volgende shortcode toont een knop die een informatiepaneel toont of verbergt.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* button collapse="collapse-1" */>}}
|
||||
Trigger panel
|
||||
{{</* /button */>}}
|
||||
|
||||
{{</* collapse id="collapse-1" class="p-3 border rounded" */>}}
|
||||
Dit is een voorbeeldtekst. Het informatiepaneel is <i>standaard verborgen </i> maar wordt getoond als
|
||||
de gebruiker op de bijbehorende knop drukt.
|
||||
{{</* /collapse */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Command prompt
|
||||
|
||||
De volgende shortcode toont een prompt voor bash.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* command */>}}
|
||||
export MY_VAR=123
|
||||
{{</* /command */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
Voeg `user` en `host` om de gebruikerscontext op te geven. Als aanvulling, `(out)` definieert een outputregel en `\` is een markering die aangeeft dat de regel doorgaat op de volgende regel.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* command user="user" host="localhost" */>}}
|
||||
export MY_VAR=123
|
||||
echo "hello"
|
||||
(out)hello
|
||||
echo one \
|
||||
two \
|
||||
three
|
||||
(out)one two three
|
||||
echo "goodbye"
|
||||
(out)goodbye
|
||||
{{</* /command */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Docs
|
||||
|
||||
Gebruik de volgende shortcode om de inhoud van een `toml` of `scss` bestand te tonen.
|
||||
|
||||
{{< docs name="theme-colors" file="config/_default/params.toml" >}}
|
||||
|
||||
## Icon
|
||||
|
||||
De volgende shortcodes tonen drie verschillende iconen:
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* fa square-check */>}}
|
||||
{{</* fab linkedin */>}}
|
||||
{{</* fas circle-check */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Image
|
||||
|
||||
De volgende shortcode toont een plaatje met afgeronde hoeken en een 21x9 verhouding.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* image src="img/flowers.jpg" ratio="21x9" caption="Onderschrift" class="rounded" */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Nav
|
||||
|
||||
De volgende shortcode toont een groep met verticale tabbladen.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* nav type="pills" vertical="true" */>}}
|
||||
{{</* nav-item header="Nav Item #1" show="true" */>}}
|
||||
Dit is de inhoud van het eerste element met ondersteuning voor HTML. De waarde <code>show</code>
|
||||
voor het argument <code>class</code> geeft aan dat het element uitgeklapt moet worden.
|
||||
{{</* /nav-item */>}}
|
||||
{{</* nav-item header="Nav Item #2" */>}}
|
||||
Dit is de inhoud van het tweede element. Het ondersteunt ook HTML.
|
||||
{{</* /nav-item */>}}
|
||||
{{</* nav-item header="Nav Item #3" */>}}
|
||||
Dit is de inhoud van het derde element.
|
||||
{{</* /nav-item */>}}
|
||||
{{</* /nav */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Navbar
|
||||
|
||||
De volgende shortcode toont een navigatiemenu.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* navbar path="about" color="primary" size="md" search="false" menus="sample" title="Brand" mode="false" */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Release
|
||||
|
||||
De volgende shortcode toont een knop voor een nieuwe release.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* release version="v0.14.1" */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Spinner
|
||||
|
||||
De volgende shortcode toont een ronddraaiende cirkel.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* spinner color="info" class="text-center" */>}}
|
||||
Loading...
|
||||
{{</* /spinner */>}}
|
||||
{{< /example>}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Toast
|
||||
|
||||
De volgende shortcode toont een knop die een bericht laat verschijnen op het scherm.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* button toast="toast-example-1" */>}}
|
||||
Toon bericht 1
|
||||
{{</* /button */>}}
|
||||
|
||||
{{</* button toast="toast-example-2" */>}}
|
||||
Toon bericht 2
|
||||
{{</* /button */>}}
|
||||
|
||||
{{</* toast id="toast-example-1" header="Eerste titel" */>}}
|
||||
Dit is het eerste bericht.
|
||||
{{</* /toast */>}}
|
||||
|
||||
{{</* toast id="toast-example-2" header="Tweede titel" */>}}
|
||||
Dit is het tweede bericht.
|
||||
{{</* /toast */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Tooltip
|
||||
|
||||
De volgende shortcode toont een uitleg voor een gekleurde link.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* tooltip color="primary" title="Tooltip" href="#!" */>}}Tooltip{{</* /tooltip */>}} demonstratie
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
78
exampleSite/config/_default/hugo.toml
Normal file
78
exampleSite/config/_default/hugo.toml
Normal file
@@ -0,0 +1,78 @@
|
||||
title = "Hinode"
|
||||
copyright = "Copyright © 2023 Mark Dumay."
|
||||
paginate = 9
|
||||
enableGitInfo = true
|
||||
|
||||
# additional settings
|
||||
googleAnalytics = "G-T85PPZ36GN"
|
||||
baseURL = "https://demo.gethinode.com/"
|
||||
canonifyURLs = false
|
||||
enableEmoji = true
|
||||
enableRobotsTXT = true
|
||||
enableInlineShortcodes = true
|
||||
|
||||
# prevent build failures when using Hugo's Instagram shortcode due to deprecated Instagram API.
|
||||
# See https://github.com/gohugoio/hugo/issues/7228#issuecomment-714490456
|
||||
ignoreErrors = ["error-remote-getjson"]
|
||||
|
||||
timeout = "180s"
|
||||
|
||||
languageCode = "en-us"
|
||||
defaultContentLanguage = "en"
|
||||
defaultContentLanguageInSubdir = true
|
||||
|
||||
[outputFormats.REDIR]
|
||||
mediaType = "text/netlify"
|
||||
baseName = "_redirects"
|
||||
isPlainText = true
|
||||
notAlternative = true
|
||||
|
||||
[mediaTypes."text/netlify"]
|
||||
delimiter = ""
|
||||
|
||||
[outputs]
|
||||
home = ["HTML", "RSS", "REDIR"]
|
||||
|
||||
[build]
|
||||
writeStats = true
|
||||
|
||||
[taxonomies]
|
||||
tag = 'tags'
|
||||
|
||||
[privacy]
|
||||
[privacy.vimeo]
|
||||
disabled = false
|
||||
simple = true
|
||||
|
||||
[privacy.twitter]
|
||||
disabled = false
|
||||
enableDNT = true
|
||||
simple = true
|
||||
|
||||
[privacy.instagram]
|
||||
disabled = false
|
||||
simple = true
|
||||
|
||||
[privacy.youtube]
|
||||
disabled = false
|
||||
privacyEnhanced = true
|
||||
|
||||
[services]
|
||||
[services.instagram]
|
||||
disableInlineCSS = true
|
||||
[services.twitter]
|
||||
disableInlineCSS = true
|
||||
|
||||
[outputFormats]
|
||||
[outputFormats.XML]
|
||||
isPlainText = false
|
||||
mediaType = "application/xml"
|
||||
isHtml = false
|
||||
noUgly = true
|
||||
permalinkable = false
|
||||
name = "xml"
|
||||
|
||||
[module]
|
||||
replacements = 'github.com/gethinode/hinode -> ../..'
|
||||
[[module.imports]]
|
||||
path = "github.com/gethinode/hinode"
|
36
exampleSite/config/_default/languages.toml
Normal file
36
exampleSite/config/_default/languages.toml
Normal file
@@ -0,0 +1,36 @@
|
||||
# toml-docs-start lang-main
|
||||
[en]
|
||||
languageName = "English"
|
||||
contentDir = "content/en"
|
||||
weight = 1
|
||||
# toml-docs-end lang-main
|
||||
# toml-docs-start lang-param
|
||||
[en.params.head]
|
||||
tagline = "A Hugo Theme"
|
||||
[en.params.social]
|
||||
title = "Follow me"
|
||||
caption = "I work on everything coding and tweet developer memes"
|
||||
[en.params.footer]
|
||||
# license = "Licensed under Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank' rel='noopener noreferrer'>CC BY-NC-SA 4.0</a>)."
|
||||
# toml-docs-end lang-param
|
||||
[en.params.sections.blog]
|
||||
reference = "More Posts"
|
||||
[en.params.sections.projects]
|
||||
reference = "More Projects"
|
||||
|
||||
[nl]
|
||||
languageName = "Nederlands"
|
||||
contentDir = "content/nl"
|
||||
weight = 2
|
||||
[nl.params.head]
|
||||
tagline = "Een Hugo Thema"
|
||||
[nl.params.social]
|
||||
title = "Volg mij"
|
||||
caption = "Ik doe aan programmeren en tweet memes"
|
||||
[nl.params.footer]
|
||||
# license = "Gelicenseerd onder Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank' rel='noopener noreferrer'>CC BY-NC-SA 4.0</a>)."
|
||||
[nl.params.sections.blog]
|
||||
reference = "Meer artikelen"
|
||||
[nl.params.sections.projects]
|
||||
title = "Projecten"
|
||||
reference = "Meer projecten"
|
35
exampleSite/config/_default/markup.toml
Normal file
35
exampleSite/config/_default/markup.toml
Normal file
@@ -0,0 +1,35 @@
|
||||
defaultMarkdownHandler = "goldmark"
|
||||
|
||||
[highlight]
|
||||
anchorLineNos = false
|
||||
codeFences = true
|
||||
guessSyntax = true
|
||||
hl_Lines = ""
|
||||
lineAnchors = ""
|
||||
lineNoStart = 1
|
||||
lineNos = false
|
||||
lineNumbersInTable = false
|
||||
noClasses = false
|
||||
tabWidth = 2
|
||||
## Update the 'create:syntax' command in package.json to modify the style
|
||||
## The first two lines have been modified to remove the background color
|
||||
# style = "monokailight"
|
||||
|
||||
[goldmark]
|
||||
[goldmark.extensions]
|
||||
definitionList = true
|
||||
footnote = true
|
||||
linkify = true
|
||||
strikethrough = true
|
||||
table = true
|
||||
taskList = true
|
||||
typographer = true
|
||||
[goldmark.parser]
|
||||
autoHeadingID = true
|
||||
autoHeadingIDType = 'github'
|
||||
[goldmark.parser.attribute]
|
||||
block = true
|
||||
[goldmark.renderer]
|
||||
hardWraps = false
|
||||
unsafe = true
|
||||
xhtml = false
|
73
exampleSite/config/_default/menus/menus.en.toml
Normal file
73
exampleSite/config/_default/menus/menus.en.toml
Normal file
@@ -0,0 +1,73 @@
|
||||
[[main]]
|
||||
name = "About"
|
||||
pageRef = "/about/"
|
||||
weight = 10
|
||||
|
||||
[[main]]
|
||||
name = "Blog"
|
||||
pageRef = "/blog/"
|
||||
weight = 20
|
||||
|
||||
[[main]]
|
||||
name = "Projects"
|
||||
pageRef = "/projects/"
|
||||
weight = 30
|
||||
|
||||
[[main]]
|
||||
name = "Sample project"
|
||||
pageRef = "/projects/sample-project/"
|
||||
parent = "Projects"
|
||||
weight = 1
|
||||
|
||||
[[main]]
|
||||
name = "Another project"
|
||||
pageRef = "/projects/another-project/"
|
||||
parent = "Projects"
|
||||
weight = 2
|
||||
|
||||
[[main]]
|
||||
name = "Tags"
|
||||
pageRef = "/tags/"
|
||||
weight = 40
|
||||
|
||||
[[social]]
|
||||
name = "LinkedIn"
|
||||
pre = "fab linkedin"
|
||||
url = "https://linkedin.com/"
|
||||
weight = 10
|
||||
|
||||
[[social]]
|
||||
name = "GitHub"
|
||||
pre = "fab fa-github"
|
||||
url = "https://github.com/"
|
||||
weight = 20
|
||||
|
||||
[[social]]
|
||||
name = "Medium"
|
||||
pre = "fab medium"
|
||||
url = "https://medium.com/"
|
||||
weight = 30
|
||||
|
||||
# toml-docs-start sample-navigation
|
||||
[[sample]]
|
||||
name = "Blog"
|
||||
pageRef = "/blog/"
|
||||
weight = 10
|
||||
|
||||
[[sample]]
|
||||
name = "Projects"
|
||||
pageRef = "/projects/"
|
||||
weight = 20
|
||||
|
||||
[[sample]]
|
||||
name = "Sample project"
|
||||
pageRef = "/projects/sample-project/"
|
||||
parent = "Projects"
|
||||
weight = 1
|
||||
|
||||
[[sample]]
|
||||
name = "Another project"
|
||||
pageRef = "/projects/another-project/"
|
||||
parent = "Projects"
|
||||
weight = 2
|
||||
# toml-docs-end sample-navigation
|
@@ -32,19 +32,19 @@
|
||||
|
||||
[[social]]
|
||||
name = "LinkedIn"
|
||||
pre = "<i class=\"fab fa-linkedin fa-2x\"></i>"
|
||||
pre = "fab linkedin"
|
||||
url = "https://linkedin.com/"
|
||||
weight = 10
|
||||
|
||||
[[social]]
|
||||
name = "GitHub"
|
||||
pre = "<i class=\"fab fa-github fa-2x\"></i>"
|
||||
pre = "fab github"
|
||||
url = "https://github.com/"
|
||||
weight = 20
|
||||
|
||||
[[social]]
|
||||
name = "Medium"
|
||||
pre = "<i class=\"fab fa-medium fa-2x\"></i>"
|
||||
pre = "fab medium"
|
||||
url = "https://medium.com/"
|
||||
weight = 30
|
||||
|
183
exampleSite/config/_default/params.toml
Normal file
183
exampleSite/config/_default/params.toml
Normal file
@@ -0,0 +1,183 @@
|
||||
[main]
|
||||
separator = "-"
|
||||
description = "Hinode is a clean documentation and blog theme for your Hugo site based on Bootstrap 5."
|
||||
enableDarkMode = true
|
||||
modes = ["light", "dark"]
|
||||
canonifyAssetsURLs = false
|
||||
[main.externalLinks]
|
||||
cue = true
|
||||
tab = true
|
||||
|
||||
[modules]
|
||||
core = ["bootstrap", "flexsearch", "fontawesome"]
|
||||
optional = ["leaflet", "katex"]
|
||||
excludeSCSS = ["bootstrap"]
|
||||
disableTemplate = ["katex"]
|
||||
[modules.fontawesome]
|
||||
inline = true
|
||||
debug = true
|
||||
skipMissing = false
|
||||
|
||||
[debugging]
|
||||
showJS = false
|
||||
showSCSS = false
|
||||
|
||||
[docs]
|
||||
basePath = "/" # TODO: replace
|
||||
github = "https://github.com/gethinode/hinode"
|
||||
release = "https://github.com/gethinode/hinode/releases/tag/"
|
||||
checkVersion = false
|
||||
|
||||
[home]
|
||||
sections = ["blog", "projects"]
|
||||
fullCover = false
|
||||
centerHeadline = false
|
||||
style = ""
|
||||
|
||||
[navigation]
|
||||
anchor = true
|
||||
logo = "/img/logo_icon.svg"
|
||||
color = "body"
|
||||
fixed = true
|
||||
offset = "3.8em"
|
||||
search = true
|
||||
breadcrumb = true
|
||||
toc = true
|
||||
sidebar = true
|
||||
|
||||
[messages]
|
||||
placement = "bottom-right"
|
||||
|
||||
[sharing]
|
||||
enabled = true
|
||||
sort = "weight"
|
||||
reverse = false
|
||||
webshare = true
|
||||
|
||||
[[sharing.providers]]
|
||||
name = "LinkedIn"
|
||||
url = "https://www.linkedin.com/sharing/share-offsite/?url={url}"
|
||||
icon = "fab linkedin"
|
||||
weight = 10
|
||||
|
||||
[[sharing.providers]]
|
||||
name = "Twitter"
|
||||
url = "https://twitter.com/home?status={url}"
|
||||
icon = "fab x-twitter"
|
||||
weight = 20
|
||||
|
||||
[[sharing.providers]]
|
||||
name = "Facebook"
|
||||
url = "https://www.facebook.com/sharer.php?u={url}"
|
||||
icon = "fab facebook"
|
||||
weight = 30
|
||||
|
||||
[[sharing.providers]]
|
||||
name = "WhatsApp"
|
||||
url = "whatsapp://send?text={title}%20{url}"
|
||||
icon = "fab whatsapp"
|
||||
weight = 40
|
||||
|
||||
[[sharing.providers]]
|
||||
name = "email"
|
||||
url = "{url}"
|
||||
icon = "fas link"
|
||||
weight = 50
|
||||
clipboard = true
|
||||
|
||||
[sections]
|
||||
[sections.blog]
|
||||
title = "Blog"
|
||||
sort = "date"
|
||||
reverse = true
|
||||
cols = 3
|
||||
color = ""
|
||||
padding = "0"
|
||||
header = "full"
|
||||
footer = "none"
|
||||
orientation = "stacked"
|
||||
style = "border-0 card-zoom"
|
||||
homepage = 3
|
||||
separator = true
|
||||
[sections.projects]
|
||||
title = "Projects"
|
||||
layout = "card"
|
||||
sort = "title"
|
||||
reverse = false
|
||||
nested = true
|
||||
cols = 1
|
||||
background = "body-tertiary"
|
||||
color = "body"
|
||||
padding = "3"
|
||||
header = "none"
|
||||
footer = "tags"
|
||||
orientation = "horizontal"
|
||||
style = "border-1 card-emphasize"
|
||||
homepage = 3
|
||||
separator = false
|
||||
|
||||
[favicon]
|
||||
logo = "img/favicon.png"
|
||||
sizes = [16, 32, 48]
|
||||
|
||||
# toml-docs-start theme-colors
|
||||
[style]
|
||||
primary = "#d43900"
|
||||
secondary = "#6c757d"
|
||||
success = "#198754"
|
||||
info = "#0dcaf0"
|
||||
warning = "#ffc107"
|
||||
danger = "#dc3545"
|
||||
light = "#f8f9fa"
|
||||
dark = "#212529"
|
||||
themeOpacity = "10"
|
||||
themeFont = "Inter"
|
||||
# themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" # external path
|
||||
themeFontPath = "/fonts" # local path
|
||||
purge = true
|
||||
# toml-docs-end theme-colors
|
||||
|
||||
[schema]
|
||||
type = "Organization"
|
||||
name = "Hinode"
|
||||
locale = "en-US"
|
||||
# twitter = "https://twitter.com/gethinode"
|
||||
# linkedIn = ""
|
||||
github = "https://github.com/gethinode/hinode"
|
||||
section = "blog"
|
||||
[author]
|
||||
name = "Mark Dumay"
|
||||
# twitter = "https://twitter.com/markdumay"
|
||||
linkedin = "https://www.linkedin.com/in/markdumay/"
|
||||
github = "https://github.com/markdumay"
|
||||
[logo]
|
||||
url = "img/logo512x512.png"
|
||||
width = 512
|
||||
height = 512
|
||||
[image]
|
||||
url = "img/logo1280x640.png"
|
||||
width = 1280
|
||||
height = 640
|
||||
|
||||
[opengraph]
|
||||
images = ["logo.png"]
|
||||
locale = "en_US"
|
||||
|
||||
[comments]
|
||||
enabled = false
|
||||
repo = "" # Replace with your repository.
|
||||
#issueTerm = "pathname" # pathname, url, title, og:title
|
||||
#label = "comment"
|
||||
# By default, light and dark mode correspond to github-light and github-dark, respectively.
|
||||
# Optional values: github-light, github-dark, preferred-color-scheme, github-dark-orange, icy-dark, dark-blue, photon-dark.
|
||||
#theme = ""
|
||||
|
||||
[links]
|
||||
bs_badge_heading = "https://getbootstrap.com/docs/5.3/components/badge/#headings"
|
||||
hinode_docs = "https://gethinode.com"
|
||||
hugo_imaging = "https://gohugo.io/content-management/image-processing/#imaging-configuration"
|
||||
mozilla_image = "https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images"
|
||||
observatory = "https://observatory.mozilla.org/analyze/demo.gethinode.com"
|
||||
pagespeed = "https://pagespeed.web.dev/report?url=https%3A%2F%2Fdemo.gethinode.com%2F"
|
||||
utterances = "https://utteranc.es"
|
||||
hinode = "https://gethinode.com"
|
43
exampleSite/config/_default/server.toml
Normal file
43
exampleSite/config/_default/server.toml
Normal file
@@ -0,0 +1,43 @@
|
||||
# toml-docs-start server-config
|
||||
[[headers]]
|
||||
for = '/**'
|
||||
[headers.values]
|
||||
Strict-Transport-Security = "max-age=31536000; includeSubDomains; preload"
|
||||
X-Content-Type-Options = "nosniff"
|
||||
X-XSS-Protection = "1; mode=block"
|
||||
Content-Security-Policy = """\
|
||||
default-src 'self'; \
|
||||
script-src 'self' \
|
||||
https://utteranc.es/client.js https://*.google-analytics.com https://*.googletagmanager.com; \
|
||||
style-src 'self' https://utteranc.es https://fonts.googleapis.com https://www.youtube.com; \
|
||||
object-src 'none'; \
|
||||
base-uri 'self'; \
|
||||
connect-src 'self'
|
||||
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
|
||||
font-src 'self' https://fonts.gstatic.com; \
|
||||
frame-src 'self' https://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com; \
|
||||
img-src 'self' data: https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \
|
||||
manifest-src 'self'; \
|
||||
media-src 'self' \
|
||||
"""
|
||||
X-Frame-Options = "SAMEORIGIN"
|
||||
Referrer-Policy = "strict-origin"
|
||||
Permissions-Policy = """\
|
||||
geolocation=(), \
|
||||
midi=(), \
|
||||
sync-xhr=(), \
|
||||
microphone=(), \
|
||||
camera=(), \
|
||||
magnetometer=(), \
|
||||
gyroscope=(), \
|
||||
fullscreen=(), \
|
||||
payment=() \
|
||||
"""
|
||||
cache-control = """\
|
||||
max-age=0, \
|
||||
no-cache, \
|
||||
no-store, \
|
||||
must-revalidate \
|
||||
"""
|
||||
Access-Control-Allow-Origin = "*"
|
||||
# toml-docs-end server-config
|
14
exampleSite/content/en/_index.md
Normal file
14
exampleSite/content/en/_index.md
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
author: Mark Dumay
|
||||
title: Welcome to Hinode!
|
||||
thumbnail:
|
||||
url: /img/sunrise.jpg
|
||||
author: Harris Vo
|
||||
authorURL: https://unsplash.com/@hoanvokim
|
||||
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
||||
originName: Unsplash
|
||||
---
|
||||
|
||||
A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
||||
|
||||
{{< button href="about" >}}About{{< /button>}}
|
@@ -2,7 +2,7 @@
|
||||
title: About
|
||||
description: Hinode is a clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
||||
date: 2022-04-11
|
||||
updated: 2023-02-11
|
||||
updated: 2023-08-02
|
||||
showComments: false
|
||||
---
|
||||
|
||||
@@ -12,17 +12,17 @@ showComments: false
|
||||
<div class="container-fluid">
|
||||
<div class="row justify-content-center text-center">
|
||||
<div class="col-lg-4">
|
||||
<i class="fa-brands fa-bootstrap fa-2xl"></i>
|
||||
{{< icon fab bootstrap fa-2xl >}}
|
||||
<h2 class="h4">Bootstrap framework</h2>
|
||||
<p>Build fast, responsive sites with Bootstrap 5. Easily customize your site with the source Sass files.</p>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<i class="fa-solid fa-magnifying-glass fa-2xl"></i>
|
||||
{{< icon fas magnifying-glass fa-2xl >}}
|
||||
<h2 class="h4">Full text search</h2>
|
||||
<p>Search your site with FlexSearch, a full-text search library with zero dependencies.</p>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<i class="fa-solid fa-code fa-2xl"></i>
|
||||
{{< icon fas code fa-2xl >}}
|
||||
<h2 class="h4">Development tools</h2>
|
||||
<p>Use Node Package Manager to automate the build process and to keep track of dependencies.</p>
|
||||
</div>
|
||||
@@ -35,8 +35,8 @@ Additional features include:
|
||||
* Switching between light mode and dark mode
|
||||
* Support for multiple languages
|
||||
* Reusable Bootstrap components through configurable shortcodes and partials
|
||||
* Versioned documentation, including sidebar navigation and version switcher
|
||||
* Embedded comments through light-weight integration with GitHub via [utteranc.es]({{< param "links.utterances" >}})
|
||||
* Integrated sidebar navigation for content-heavy sections, such as documentation pages
|
||||
* Reponsive image handling for multiple screen sizes and resolutions
|
||||
* Optimized search results, scoring 100 points for SEO on [PageSpeed Insights]({{< param "links.pagespeed" >}})
|
||||
* Secure by default, scoring A+ on [Mozilla Observatory test]({{< param "links.observatory" >}})
|
@@ -1,12 +1,15 @@
|
||||
---
|
||||
author: Mark Dumay
|
||||
title: Bootstrap elements
|
||||
date: 2023-05-20
|
||||
date: 2023-08-05
|
||||
description: Use shortcodes to add common Bootstrap elements with ease.
|
||||
tags: ["bootstrap", "shortcode"]
|
||||
thumbnail: img/boots.jpg
|
||||
photoCredits: <a href="https://unsplash.com/@nate_dumlao">Nathan Dumlao</a>
|
||||
photoSource: <a href="https://unsplash.com/photos/QLPWQvHvmII">Unsplash</a>
|
||||
thumbnail:
|
||||
url: img/boots.jpg
|
||||
author: Nathan Dumlao
|
||||
authorURL: https://unsplash.com/@nate_dumlao
|
||||
origin: Unsplash
|
||||
originURL: https://unsplash.com/photos/QLPWQvHvmII
|
||||
---
|
||||
|
||||
Hinode provides several shortcodes that wrap common Bootstrap components. Refer to the [official documentation]({{< param "links.hinode_docs" >}}) for more details.
|
||||
@@ -127,7 +130,7 @@ As an example, the following shortcode displays a button that, when clicked, tri
|
||||
Trigger panel
|
||||
{{</* /button */>}}
|
||||
|
||||
{{</* collapse id="collapse-1" class="p-3 border rounded" */>}}
|
||||
{{</* collapse id="collapse-1" class="p-3 border rounded bg-primary-subtle" */>}}
|
||||
Some placeholder content for the collapse component. This panel is <i>hidden by default</i> but
|
||||
revealed when the user activates the relevant trigger.
|
||||
{{</* /collapse */>}}
|
||||
@@ -170,6 +173,28 @@ Use the `docs` shortcode to display the content of a `js`, `scss` or `toml` file
|
||||
|
||||
{{< docs name="theme-colors" file="config/_default/params.toml" >}}
|
||||
|
||||
## Example
|
||||
|
||||
Use the `example` shortcode to display a code example and to render a preview of the same input.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* command */>}}
|
||||
export MY_VAR=123
|
||||
{{</* /command */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## File
|
||||
|
||||
Use the `file` shortcode to print and highlight the full content of a given input file.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* file path="./config/_default/languages.toml" id="file-collapse-1" */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Icon
|
||||
|
||||
As an example, the following shortcodes show a square check, a brand logo, and a circle check.
|
||||
@@ -245,6 +270,16 @@ Loading...
|
||||
{{< /example>}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Timeline
|
||||
|
||||
As an example, the following shortcode displays a timeline with the file `data/timeline-en.yml` as data.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* timeline data="timeline-en" background="dark" */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
## Toast
|
||||
|
||||
As an example, the following shortcode displays a button that, when clicked, triggers the toast message.
|
39
exampleSite/content/en/blog/components.md
Normal file
39
exampleSite/content/en/blog/components.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
author: Mark Dumay
|
||||
title: Components
|
||||
date: 2023-07-21
|
||||
description: Use shortcodes to add predefined components powered by external libraries.
|
||||
tags: ["bootstrap", "shortcode"]
|
||||
thumbnail:
|
||||
url: img/puzzle.jpg
|
||||
author: Ryoji Iwata
|
||||
authorURL: https://unsplash.com/@ryoji__iwata
|
||||
origin: Unsplash
|
||||
originURL: https://unsplash.com/photos/5siQcvSxCP8
|
||||
modules: ["katex", "leaflet"]
|
||||
---
|
||||
|
||||
Hinode provides several shortcodes on top of the common [Bootstrap elements]({{< relref "bootstrap-elements" >}}). Refer to the [official documentation]({{< param "links.hinode_docs" >}}) for more details.
|
||||
|
||||
## Formula (KaTeX)
|
||||
|
||||
As an example, the following markdown renders two formulas using the KaTeX typesetting library.
|
||||
|
||||
{{< example lang="markdown" >}}
|
||||
This is an inline $-b \pm \sqrt{b^2 - 4ac} \over 2a$ formula
|
||||
|
||||
This is not an inline formula:
|
||||
|
||||
$$x = a_0 + \frac{1}{a_1 + \frac{1}{a_2 + \frac{1}{a_3 + a_4}}}$$
|
||||
$$\forall x \in X, \quad \exists y \leq \epsilon$$
|
||||
{{< /example >}}
|
||||
|
||||
## Map
|
||||
|
||||
As an example, the following shortcode displays an interactive map of the city of Amsterdam.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
{{</* map lat=52.377 long=4.90 zoom=13 popup="Amsterdam Central Station" popup-lat=52.378062 popup-long=4.900562 */>}}
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
@@ -4,9 +4,12 @@ title: First post
|
||||
date: 2022-10-01
|
||||
description: This is my first blog post.
|
||||
tags: ["blog"]
|
||||
thumbnail: img/notepad.jpg
|
||||
photoCredits: <a href="https://unsplash.com/@frederickjmedina">Frederick Medina</a>
|
||||
photoSource: <a href="https://unsplash.com/photos/PdfRE-xB--s">Unsplash</a>
|
||||
thumbnail:
|
||||
url: img/notepad.jpg
|
||||
author: Frederick Medina
|
||||
authorURL: https://unsplash.com/@frederickjmedina
|
||||
origin: Unsplash
|
||||
originURL: https://unsplash.com/photos/PdfRE-xB--s
|
||||
---
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate, ante in luctus congue, leo risus semper justo, vel consequat sapien lectus quis ipsum. In imperdiet urna justo. Nulla vel pellentesque ipsum. Cras congue feugiat dolor ac aliquam. Pellentesque eget dui venenatis, ultrices urna ac, vehicula nibh. Curabitur est lectus, dapibus eu vehicula non, malesuada et dui. Nam enim nulla, egestas et nunc non, elementum aliquet justo. Mauris euismod mauris sapien, eget vestibulum odio dictum sit amet. Morbi nisl elit, placerat at auctor in, finibus ac neque. Curabitur placerat feugiat risus non vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque quis cursus est, nec posuere libero.
|
@@ -4,9 +4,12 @@ title: Fourth post
|
||||
date: 2023-01-01
|
||||
description: This is my fourth blog post.
|
||||
tags: ["blog"]
|
||||
thumbnail: img/flowers.jpg # https://picsum.photos/id/106/2592/1728
|
||||
photoCredits: <a href="https://unsplash.com/@flutterhappy">Arvee Marie</a>
|
||||
photoSource: <a href="https://unsplash.com/photos/YnfGtpt2gf4">Unsplash</a>
|
||||
thumbnail:
|
||||
url: img/flowers.jpg
|
||||
author: Arvee Marie
|
||||
authorURL: https://unsplash.com/@flutterhappy
|
||||
origin: Unsplash
|
||||
originURL: https://unsplash.com/photos/YnfGtpt2gf4
|
||||
---
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam finibus libero in felis accumsan, vitae imperdiet metus vehicula. Quisque nec dignissim purus. In id dui porta sapien posuere viverra nec vel nisi. Sed varius tincidunt lectus, quis sagittis felis interdum id. Proin purus odio, ultrices auctor libero convallis, volutpat gravida turpis. Ut commodo metus orci, quis sagittis lectus rhoncus non. Nulla et lectus tortor. Suspendisse quam felis, molestie non odio quis, consequat venenatis orci. Etiam sed turpis sit amet elit scelerisque imperdiet. Sed suscipit felis non nibh suscipit egestas. Nulla sodales libero non rhoncus consequat. Nunc in elit at est cursus congue ut ac velit. Cras luctus libero augue, id semper sapien volutpat ultrices.
|
@@ -4,9 +4,12 @@ title: Second post
|
||||
date: 2022-11-01
|
||||
description: This is my second blog post.
|
||||
tags: ["blog"]
|
||||
thumbnail: img/phone.jpg # https://picsum.photos/id/160/3200/2119
|
||||
photoCredits: <a href="https://unsplash.com/@thomweerd">Thom</a>
|
||||
photoSource: <a href="https://unsplash.com/photos/Zdcq3iKly6g">Unsplash</a>
|
||||
thumbnail:
|
||||
url: img/phone.jpg
|
||||
author: Thom
|
||||
authorURL: https://unsplash.com/@thomweerd
|
||||
origin: Unsplash
|
||||
originURL: https://unsplash.com/photos/Zdcq3iKly6g
|
||||
---
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non sollicitudin sapien. Ut porttitor lectus eu tempor ultricies. Sed semper tincidunt nibh pellentesque condimentum. Vivamus dictum sem eu rhoncus semper. Vestibulum convallis congue tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Mauris magna urna, egestas sit amet ligula quis, viverra semper arcu. Praesent laoreet nunc vitae nulla posuere facilisis.
|
@@ -4,9 +4,12 @@ title: Third post
|
||||
date: 2022-12-01
|
||||
description: This is my third blog post.
|
||||
tags: ["blog"]
|
||||
thumbnail: https://picsum.photos/id/184/4288/2848.jpg
|
||||
photoCredits: <a href="https://unsplash.com/@timdegroot">Tim de Groot</a>
|
||||
photoSource: <a href="https://unsplash.com/photos/yNGQ830uFB4">Unsplash</a>
|
||||
thumbnail:
|
||||
url: https://picsum.photos/id/184/4288/2848.jpg
|
||||
author: Tim de Groot
|
||||
authorURL: https://unsplash.com/@timdegroot
|
||||
origin: Unsplash
|
||||
originURL: https://unsplash.com/photos/yNGQ830uFB4
|
||||
---
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent id scelerisque ligula. Vestibulum eu lorem tortor. Suspendisse tristique ultrices mauris, non maximus lorem faucibus in. Suspendisse sagittis eleifend dapibus. Curabitur dignissim luctus sapien eu consequat. Proin congue dui vel ipsum bibendum varius. Pellentesque cursus nisi metus, egestas eleifend ipsum sollicitudin vitae. Sed vitae erat elementum, semper turpis sed, molestie nulla.
|
@@ -3,4 +3,4 @@ draft: false
|
||||
outputs:
|
||||
- xml
|
||||
url: browserconfig.xml
|
||||
---
|
||||
---
|
14
exampleSite/content/nl/_index.md
Normal file
14
exampleSite/content/nl/_index.md
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
author: Mark Dumay
|
||||
title: Welkom bij Hinode!
|
||||
thumbnail:
|
||||
url: /img/sunrise.jpg
|
||||
author: Harris Vo
|
||||
authorURL: https://unsplash.com/@hoanvokim
|
||||
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
||||
originName: Unsplash
|
||||
---
|
||||
|
||||
Een documentatie en blog thema voor Hugo gebaseerd op Bootstrap 5.
|
||||
|
||||
{{< button href="over-mij" >}}Over mij{{< /button>}}
|
@@ -3,6 +3,7 @@ slug: over-mij
|
||||
title: Over mij
|
||||
description: Een blog en documentatie thema voor Hugo gebaseerd op Bootstrap 5.
|
||||
date: 2023-02-17
|
||||
updated: 2023-08-02
|
||||
showComments: false
|
||||
---
|
||||
|
||||
@@ -13,17 +14,17 @@ showComments: false
|
||||
<div class="row justify-content-center text-center">
|
||||
<div class="row justify-content-center text-center">
|
||||
<div class="col-lg-4">
|
||||
<i class="fa-brands fa-bootstrap fa-2xl"></i>
|
||||
{{< icon fab bootstrap fa-2xl >}}
|
||||
<h2 class="h4">Bootstrap raamwerk</h2>
|
||||
<p>Bouw snelle websites geschikt voor mobiele en desktop schermen met Bootstrap 5. Pas de site eenvoudig aan met bronbestanden in Sass.</p>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<i class="fa-solid fa-magnifying-glass fa-2xl"></i>
|
||||
{{< icon fas magnifying-glass fa-2xl >}}
|
||||
<h2 class="h4">Volledig doorzoekbaar</h2>
|
||||
<p>Doorzoek je site met FlexSearch, een software bibliotheek zonder afhankelijkheden.</p>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<i class="fa-solid fa-code fa-2xl"></i>
|
||||
{{< icon fas code fa-2xl >}}
|
||||
<h2 class="h4">Ontwikkelgereedschap</h2>
|
||||
<p>Gebruik Node Package Manager om het bouwproces inclusief versiebeheer volledig te automatiseren.</p>
|
||||
</div>
|
||||
@@ -36,8 +37,8 @@ Overige functies:
|
||||
* Omschakelen tussen donkere en lichte modus
|
||||
* Ondersteuning voor meerdere talen
|
||||
* Herbruikbare Bootstrap componenten via shortcodes en partials
|
||||
* Versiebeheer van documentatiepagina's, inclusief secundaire navigatie en selectie van versies
|
||||
* Integreren van commentaar via [utteranc.es]({{< param "links.utterances" >}})
|
||||
* Secundaire navigatie voor bijvoorbeeld documentatie
|
||||
* Optimalisering van foto's voor meerdere schermafmetingen en resoluties
|
||||
* Optimale zoekresultaten, met 100 punten voor SEO volgens [PageSpeed Insights]({{< param "links.pagespeed" >}})
|
||||
* Veilige communicatie, met een score van A+ volgens [Mozilla Observatory]({{< param "links.observatory" >}})
|
@@ -5,9 +5,12 @@ slug: eerste-artikel
|
||||
date: 2022-10-01
|
||||
description: Dit is mijn eerste artikel.
|
||||
tags: ["blog"]
|
||||
thumbnail: img/notepad.jpg
|
||||
photoCredits: <a href="https://unsplash.com/@frederickjmedina">Frederick Medina</a>
|
||||
photoSource: <a href="https://unsplash.com/photos/PdfRE-xB--s">Unsplash</a>
|
||||
thumbnail:
|
||||
url: img/notepad.jpg
|
||||
author: Frederick Medina
|
||||
authorURL: https://unsplash.com/@frederickjmedina
|
||||
origin: Unsplash
|
||||
originURL: https://unsplash.com/photos/PdfRE-xB--s
|
||||
---
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate, ante in luctus congue, leo risus semper justo, vel consequat sapien lectus quis ipsum. In imperdiet urna justo. Nulla vel pellentesque ipsum. Cras congue feugiat dolor ac aliquam. Pellentesque eget dui venenatis, ultrices urna ac, vehicula nibh. Curabitur est lectus, dapibus eu vehicula non, malesuada et dui. Nam enim nulla, egestas et nunc non, elementum aliquet justo. Mauris euismod mauris sapien, eget vestibulum odio dictum sit amet. Morbi nisl elit, placerat at auctor in, finibus ac neque. Curabitur placerat feugiat risus non vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque quis cursus est, nec posuere libero.
|
@@ -5,9 +5,12 @@ slug: vierde-artikel
|
||||
date: 2023-01-01
|
||||
description: Dit is mijn vierde artikel.
|
||||
tags: ["blog"]
|
||||
thumbnail: img/flowers.jpg # https://picsum.photos/id/106/2592/1728
|
||||
photoCredits: <a href="https://unsplash.com/@flutterhappy">Arvee Marie</a>
|
||||
photoSource: <a href="https://unsplash.com/photos/YnfGtpt2gf4">Unsplash</a>
|
||||
thumbnail:
|
||||
url: img/flowers.jpg
|
||||
author: Arvee Marie
|
||||
authorURL: https://unsplash.com/@flutterhappy
|
||||
origin: Unsplash
|
||||
originURL: https://unsplash.com/photos/YnfGtpt2gf4
|
||||
---
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam finibus libero in felis accumsan, vitae imperdiet metus vehicula. Quisque nec dignissim purus. In id dui porta sapien posuere viverra nec vel nisi. Sed varius tincidunt lectus, quis sagittis felis interdum id. Proin purus odio, ultrices auctor libero convallis, volutpat gravida turpis. Ut commodo metus orci, quis sagittis lectus rhoncus non. Nulla et lectus tortor. Suspendisse quam felis, molestie non odio quis, consequat venenatis orci. Etiam sed turpis sit amet elit scelerisque imperdiet. Sed suscipit felis non nibh suscipit egestas. Nulla sodales libero non rhoncus consequat. Nunc in elit at est cursus congue ut ac velit. Cras luctus libero augue, id semper sapien volutpat ultrices.
|
@@ -5,9 +5,12 @@ slug: tweede-artikel
|
||||
date: 2022-11-01
|
||||
description: Dit is mijn tweede artikel.
|
||||
tags: ["blog"]
|
||||
thumbnail: img/phone.jpg # https://picsum.photos/id/160/3200/2119
|
||||
photoCredits: <a href="https://unsplash.com/@thomweerd">Thom</a>
|
||||
photoSource: <a href="https://unsplash.com/photos/Zdcq3iKly6g">Unsplash</a>
|
||||
thumbnail:
|
||||
url: img/phone.jpg
|
||||
author: Thom
|
||||
authorURL: https://unsplash.com/@thomweerd
|
||||
origin: Unsplash
|
||||
originURL: https://unsplash.com/photos/Zdcq3iKly6g
|
||||
---
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non sollicitudin sapien. Ut porttitor lectus eu tempor ultricies. Sed semper tincidunt nibh pellentesque condimentum. Vivamus dictum sem eu rhoncus semper. Vestibulum convallis congue tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Mauris magna urna, egestas sit amet ligula quis, viverra semper arcu. Praesent laoreet nunc vitae nulla posuere facilisis.
|
@@ -5,9 +5,12 @@ slug: derde-artikel
|
||||
date: 2022-12-01
|
||||
description: Dit is mijn derde artikel.
|
||||
tags: ["blog"]
|
||||
thumbnail: https://picsum.photos/id/184/4288/2848.jpg
|
||||
photoCredits: <a href="https://unsplash.com/@timdegroot">Tim de Groot</a>
|
||||
photoSource: <a href="https://unsplash.com/photos/yNGQ830uFB4">Unsplash</a>
|
||||
thumbnail:
|
||||
url: https://picsum.photos/id/184/4288/2848.jpg
|
||||
author: Tim de Groot
|
||||
authorURL: https://unsplash.com/@timdegroot
|
||||
origin: Unsplash
|
||||
originURL: https://unsplash.com/photos/yNGQ830uFB4
|
||||
---
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent id scelerisque ligula. Vestibulum eu lorem tortor. Suspendisse tristique ultrices mauris, non maximus lorem faucibus in. Suspendisse sagittis eleifend dapibus. Curabitur dignissim luctus sapien eu consequat. Proin congue dui vel ipsum bibendum varius. Pellentesque cursus nisi metus, egestas eleifend ipsum sollicitudin vitae. Sed vitae erat elementum, semper turpis sed, molestie nulla.
|
@@ -3,4 +3,4 @@ draft: false
|
||||
outputs:
|
||||
- xml
|
||||
url: browserconfig.xml
|
||||
---
|
||||
---
|
@@ -6,9 +6,7 @@ url: "projecten/ander-project"
|
||||
date: 2021-07-15
|
||||
description: "Een ander project."
|
||||
tags: ["javascript", "golang"]
|
||||
thumbnail: img/coffee.jpg # https://picsum.photos/id/1060/5598/3732
|
||||
photoCredits: <a href="https://unsplash.com/@kfred">Karl Fredrickson</a>
|
||||
photoSource: <a href="https://unsplash.com/photos/TYIzeCiZ_60">Unsplash</a>
|
||||
icon: fas rocket
|
||||
---
|
||||
|
||||
Vivamus iaculis metus sed magna porta tincidunt. Aliquam molestie eget orci eu elementum. Integer pellentesque dolor sit amet suscipit maximus. Duis consequat, massa vitae volutpat rhoncus, erat augue venenatis velit, a auctor leo nulla nec turpis. Nunc ut libero sapien. Vivamus aliquam ultrices vestibulum. Sed sit amet vestibulum dolor, ut vehicula diam. Sed felis purus, feugiat vitae vulputate quis, sodales vitae dui. Pellentesque volutpat fringilla sapien varius condimentum. Integer odio massa, pharetra at bibendum vitae, aliquam nec erat.
|
@@ -6,9 +6,7 @@ url: "projecten/voorbeeldproject"
|
||||
date: 2021-07-15
|
||||
description: "Een voorbeeldproject."
|
||||
tags: ["html", "css"]
|
||||
thumbnail: img/laptop.jpg # https://picsum.photos/id/0/5616/3744
|
||||
photoCredits: <a href="https://unsplash.com/@alejandroescamilla">Alejandro Escamilla</a>
|
||||
photoSource: <a href="https://unsplash.com/photos/yC-Yzbqy7PY">Unsplash</a>
|
||||
icon: fab docker
|
||||
---
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
35
exampleSite/data/timeline-en.yml
Normal file
35
exampleSite/data/timeline-en.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
# This file holds all menu entries for the docs sidebar
|
||||
|
||||
- title: Product launch
|
||||
icon: fas rocket
|
||||
color: primary
|
||||
date: 2023-07-01
|
||||
url: https://github.com/gethinode/hinode/releases/tag/v0.15.2
|
||||
content:
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
||||
|
||||
- title: I18N support
|
||||
icon: fas globe
|
||||
color: success
|
||||
date: 2023-05-06
|
||||
url: v0.14.0
|
||||
content:
|
||||
Lorem ipsum dolor sit amet.
|
||||
|
||||
- title: New feature
|
||||
icon: fas house
|
||||
color: warning
|
||||
date: 2023-02-04
|
||||
url: v0.8.1
|
||||
content:
|
||||
Cupiditate ducimus officiis quod!
|
||||
|
||||
- title: Beta release
|
||||
icon: fas heart
|
||||
color: info
|
||||
date: 2022-11-30
|
||||
# url: v0.1
|
||||
content:
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
35
exampleSite/data/timeline-nl.yml
Normal file
35
exampleSite/data/timeline-nl.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
# This file holds all menu entries for the docs sidebar
|
||||
|
||||
- title: Productlancering
|
||||
icon: fas rocket
|
||||
color: primary
|
||||
date: 2023-07-01
|
||||
url: https://github.com/gethinode/hinode/releases/tag/v0.15.2
|
||||
content:
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
||||
|
||||
- title: Internationalisering
|
||||
icon: fas globe
|
||||
color: success
|
||||
date: 2023-05-06
|
||||
url: v0.14.0
|
||||
content:
|
||||
Lorem ipsum dolor sit amet.
|
||||
|
||||
- title: Nieuwe functie
|
||||
icon: fas house
|
||||
color: warning
|
||||
date: 2023-02-04
|
||||
url: v0.8.1
|
||||
content:
|
||||
Cupiditate ducimus officiis quod!
|
||||
|
||||
- title: Beta release
|
||||
icon: fas heart
|
||||
color: info
|
||||
date: 2022-11-30
|
||||
# url: v0.1
|
||||
content:
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
11
exampleSite/go.mod
Normal file
11
exampleSite/go.mod
Normal file
@@ -0,0 +1,11 @@
|
||||
module github.com/gethinode/hinode-test
|
||||
|
||||
go 1.19
|
||||
|
||||
require (
|
||||
github.com/gethinode/mod-bootstrap v1.1.1 // indirect
|
||||
github.com/gethinode/mod-flexsearch v1.2.0 // indirect
|
||||
github.com/gethinode/mod-fontawesome v1.2.4 // indirect
|
||||
github.com/gethinode/mod-katex v1.0.2 // indirect
|
||||
github.com/gethinode/mod-leaflet v0.3.4 // indirect
|
||||
)
|
10
exampleSite/go.sum
Normal file
10
exampleSite/go.sum
Normal file
@@ -0,0 +1,10 @@
|
||||
github.com/gethinode/mod-bootstrap v1.1.1 h1:Tx4M5hGVOFrEaxnUONDAm6N9xuRi5UphKlT7F26HujU=
|
||||
github.com/gethinode/mod-bootstrap v1.1.1/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
||||
github.com/gethinode/mod-flexsearch v1.2.0 h1:SSMpWzK9SMbi9QRYfil9PJZLLWWLHWzlTc69UxtSWAA=
|
||||
github.com/gethinode/mod-flexsearch v1.2.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||
github.com/gethinode/mod-fontawesome v1.2.4 h1:SqE3CQ+boaBIhrVh3MPu4nz0uoHPfEH5t60nNY1CfsI=
|
||||
github.com/gethinode/mod-fontawesome v1.2.4/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-katex v1.0.2 h1:pIG4n3qLl/IVe7BEiwn+GL8r5lOCtF6FDxlcrPKdAXk=
|
||||
github.com/gethinode/mod-katex v1.0.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||
github.com/gethinode/mod-leaflet v0.3.4 h1:oY+YQ0JiJuhFQNrk9XgFdg0NMsTUQPXNfnILp4ia4r4=
|
||||
github.com/gethinode/mod-leaflet v0.3.4/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
|
11
go.mod
Normal file
11
go.mod
Normal file
@@ -0,0 +1,11 @@
|
||||
module github.com/gethinode/hinode
|
||||
|
||||
go 1.19
|
||||
|
||||
require (
|
||||
github.com/gethinode/mod-bootstrap v1.1.1 // indirect
|
||||
github.com/gethinode/mod-flexsearch v1.2.0 // indirect
|
||||
github.com/gethinode/mod-fontawesome v1.2.5 // indirect
|
||||
github.com/gethinode/mod-katex v1.0.2 // indirect
|
||||
github.com/gethinode/mod-leaflet v0.3.4 // indirect
|
||||
)
|
50
go.sum
Normal file
50
go.sum
Normal file
@@ -0,0 +1,50 @@
|
||||
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=
|
||||
github.com/gethinode/mod-bootstrap v1.1.0/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
||||
github.com/gethinode/mod-bootstrap v1.1.1 h1:Tx4M5hGVOFrEaxnUONDAm6N9xuRi5UphKlT7F26HujU=
|
||||
github.com/gethinode/mod-bootstrap v1.1.1/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
||||
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=
|
||||
github.com/gethinode/mod-flexsearch v1.1.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||
github.com/gethinode/mod-flexsearch v1.1.1 h1:zHypfKR/rWPAwqNXvo09Pp3vGqU4w3r7d2VtMudIzkI=
|
||||
github.com/gethinode/mod-flexsearch v1.1.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||
github.com/gethinode/mod-flexsearch v1.1.2 h1:vA/jHxLq9xxkYGS9cmAoLNIkEBW+iLVCcQ8qKyEa+R4=
|
||||
github.com/gethinode/mod-flexsearch v1.1.2/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||
github.com/gethinode/mod-flexsearch v1.1.3 h1:lzmSvnJL6ABjp03avYzSvJJ7hw01CpHap1JGUbDIELg=
|
||||
github.com/gethinode/mod-flexsearch v1.1.3/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||
github.com/gethinode/mod-flexsearch v1.1.4 h1:dJvwBxYlLe/VGlctLn8k89STJ5toATIjNnXIlNeanOY=
|
||||
github.com/gethinode/mod-flexsearch v1.1.4/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||
github.com/gethinode/mod-flexsearch v1.2.0 h1:SSMpWzK9SMbi9QRYfil9PJZLLWWLHWzlTc69UxtSWAA=
|
||||
github.com/gethinode/mod-flexsearch v1.2.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||
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=
|
||||
github.com/gethinode/mod-fontawesome v1.1.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-fontawesome v1.2.0 h1:2nWYEjpUKu6IJ6kOh2WDlDUqRQ/dUGw6mJWIdMTA3O0=
|
||||
github.com/gethinode/mod-fontawesome v1.2.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-fontawesome v1.2.1 h1:k7z5ZRsNxCohZjlZm8jVAzmTPk17c6xMYBAjAXHs13I=
|
||||
github.com/gethinode/mod-fontawesome v1.2.1/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-fontawesome v1.2.2 h1:rA9EtuE/LeFQmKSA7ampfUknxsR1mu7hpi4wpA89gX8=
|
||||
github.com/gethinode/mod-fontawesome v1.2.2/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-fontawesome v1.2.3 h1:RHWd+E72+m29xaC45m/3CF35C201jehw0dcozVBdPrI=
|
||||
github.com/gethinode/mod-fontawesome v1.2.3/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-fontawesome v1.2.4 h1:SqE3CQ+boaBIhrVh3MPu4nz0uoHPfEH5t60nNY1CfsI=
|
||||
github.com/gethinode/mod-fontawesome v1.2.4/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
github.com/gethinode/mod-fontawesome v1.2.5 h1:RqkLRj6+s+gM4nKd0IwNMMDA8cRmxfp0fxkVH4FdAGU=
|
||||
github.com/gethinode/mod-fontawesome v1.2.5/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||
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=
|
||||
github.com/gethinode/mod-katex v1.0.1/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||
github.com/gethinode/mod-katex v1.0.2 h1:pIG4n3qLl/IVe7BEiwn+GL8r5lOCtF6FDxlcrPKdAXk=
|
||||
github.com/gethinode/mod-katex v1.0.2/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=
|
||||
github.com/gethinode/mod-leaflet v0.3.1/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
|
||||
github.com/gethinode/mod-leaflet v0.3.3 h1:isnjja6VRFvVWBatYSouh46TXSJg2C4/E2BQTrQw+yI=
|
||||
github.com/gethinode/mod-leaflet v0.3.3/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
|
||||
github.com/gethinode/mod-leaflet v0.3.4 h1:oY+YQ0JiJuhFQNrk9XgFdg0NMsTUQPXNfnILp4ia4r4=
|
||||
github.com/gethinode/mod-leaflet v0.3.4/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
|
157
i18n/de.yaml
157
i18n/de.yaml
@@ -1,50 +1,42 @@
|
||||
# Content
|
||||
- id: about
|
||||
translation: "Über mich"
|
||||
# Single pages
|
||||
- id: postedOnDate
|
||||
translation: "Veröffentlicht am {{ . }}"
|
||||
- id: lastModified
|
||||
translation: "Zuletzt verändert am {{ . }}"
|
||||
- id: translationsLabel
|
||||
translation: "Andere Sprachen: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: more
|
||||
translation: "Weitere {{ . }}"
|
||||
- id: readMore
|
||||
translation: "Weiterlesen"
|
||||
- id: moreBlog
|
||||
translation: "Weitere Beiträge"
|
||||
- id: olderBlog
|
||||
translation: "Ältere Beiträge"
|
||||
- id: recentBlog
|
||||
translation: "Aktuelle Beiträge"
|
||||
- id: newerBlog
|
||||
translation: "Neuere Beiträge"
|
||||
- id: previousBlog
|
||||
translation: "Vorheriger Beitrag"
|
||||
- id: nextBlog
|
||||
translation: "Nächster Beitrag"
|
||||
- id: recentProjects
|
||||
translation: "Projekte"
|
||||
- id: moreProjects
|
||||
translation: "Weitere Projekte"
|
||||
- id: read
|
||||
translation: "Lesezeit"
|
||||
- id: minutesShort
|
||||
translation: "Min."
|
||||
- id: words
|
||||
translation: "Wörter"
|
||||
- id: copyright
|
||||
translation: "Copyright"
|
||||
- id: photoBy
|
||||
translation: "Foto von"
|
||||
- id: photoOn
|
||||
translation: "auf"
|
||||
- id: photoFull
|
||||
translation: "Foto von %s auf %s"
|
||||
- id: photoShort
|
||||
translation: "Foto von {{ . }}"
|
||||
- id: draft
|
||||
translation: "Entwurf"
|
||||
|
||||
# List pages
|
||||
- id: article
|
||||
translation: "Artikel"
|
||||
- id: articles
|
||||
translation: "Artikel"
|
||||
- id: more
|
||||
translation: "Weitere {{ . }}"
|
||||
|
||||
# Sharing
|
||||
- id: shareLink
|
||||
translation: "Diese Seite teilen"
|
||||
- id: copiedToClipboard
|
||||
translation: "Der Text befindet sich in die Zwischenablage"
|
||||
- id: link
|
||||
translation: "Link zur Webseite"
|
||||
- id: code
|
||||
translation: "Code"
|
||||
|
||||
# Pagination
|
||||
- id: paginationNav
|
||||
translation: "Navigation auf der Seite"
|
||||
- id: paginationPrevious
|
||||
translation: "Vorherige"
|
||||
- id: paginationNext
|
||||
@@ -53,78 +45,65 @@
|
||||
translation: "Erste"
|
||||
- id: paginationLast
|
||||
translation: "Letzte"
|
||||
- id: toggleSidebar
|
||||
translation: "Menünavigation anzuzeigen oder auszublenden"
|
||||
|
||||
# Navigation
|
||||
- id: colorMode
|
||||
translation: "Modus"
|
||||
translation: "Thema umschalten"
|
||||
- id: colorLight
|
||||
translation: "Licht"
|
||||
translation: "Light"
|
||||
- id: colorDark
|
||||
translation: "Dunkel"
|
||||
translation: "Dark"
|
||||
- id: colorAuto
|
||||
translation: "Automatisch"
|
||||
translation: "Auto"
|
||||
- id: toggleMainNav
|
||||
translation: "Hauptmenü anzuzeigen oder auszublenden"
|
||||
- id: home
|
||||
translation: "Startseite"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Sprache"
|
||||
|
||||
# Table of contents
|
||||
- id: toc
|
||||
translation: "Auf dieser Seite"
|
||||
- id: seeAlso
|
||||
translation: "Siehe auch"
|
||||
|
||||
# Sidebar
|
||||
- id: toggleSidebar
|
||||
translation: "Menünavigation anzuzeigen oder auszublenden"
|
||||
|
||||
# Feature
|
||||
- id: addedFeature
|
||||
translation: "Eingefügt seit {{ . }}"
|
||||
- id: deprecatedFeature
|
||||
translation: "Veraltet seit {{ . }}"
|
||||
|
||||
# Versioning
|
||||
- id: latest
|
||||
translation: "neueste"
|
||||
- id: allVersions
|
||||
translation: "Alle Versionen"
|
||||
- id: newerVersionAlert
|
||||
translation: "Es gibt eine neuere Version von {{ . }}!"
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Diese Seite existiert nicht. Versuche es über die"
|
||||
translation: "Diese Seite existiert nicht. Versuche es über die {{ . }}"
|
||||
- id: pageNotFoundTitle
|
||||
translation: "Nicht gefunden"
|
||||
- id: pageNotFoundHome
|
||||
translation: "Startseite"
|
||||
|
||||
# Footer
|
||||
- id: copyright
|
||||
translation: "Copyright"
|
||||
- id: rights
|
||||
translation: "Alle Rechte vorbehalten"
|
||||
- id: poweredBy
|
||||
translation: "Ermöglicht durch {{ . }}."
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Navigation umschalten"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Sprache"
|
||||
- id: gcseLabelShort
|
||||
translation: "Suche"
|
||||
- id: gcseLabelLong
|
||||
translation: "Suche {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Schließen"
|
||||
- id: home
|
||||
translation: "Startseite"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "Kein Kommentar"
|
||||
- id: oneComment
|
||||
translation: "Kommentar"
|
||||
- id: moreComment
|
||||
translation: "Kommentare"
|
||||
- id: useMarkdown
|
||||
translation: "Du kannst Markdown-Syntax benutzen"
|
||||
- id: yourName
|
||||
translation: "Dein Name"
|
||||
- id: yourEmail
|
||||
translation: "Deine E-Mail-Adresse"
|
||||
- id: yourWebsite
|
||||
translation: "Deine Webseite"
|
||||
|
||||
# Delayed Disqus
|
||||
# Comments
|
||||
- id: show
|
||||
translation: "Zeige"
|
||||
- id: comments
|
||||
translation: "Kommentare"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "Siehe auch"
|
||||
|
||||
# Table of contents
|
||||
- id: toc
|
||||
translation: "Auf dieser Seite"
|
||||
|
||||
# Search
|
||||
- id: ui_search
|
||||
translation: "Durchsuche diese Seite..."
|
||||
- id: ui_no_results
|
||||
translation: "Keine Ergebnisse für"
|
||||
|
||||
# Draft
|
||||
- id: draft
|
||||
translation: "Entwurf"
|
||||
|
158
i18n/en.yaml
158
i18n/en.yaml
@@ -1,58 +1,42 @@
|
||||
# Content
|
||||
- id: about
|
||||
translation: "About"
|
||||
# Single pages
|
||||
- id: postedOnDate
|
||||
translation: "Posted on {{ . }}"
|
||||
- id: lastModified
|
||||
translation: "Last modified on {{ . }}"
|
||||
- id: translationsLabel
|
||||
translation: "Other languages: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: more
|
||||
translation: "More {{ . }}"
|
||||
- id: readMore
|
||||
translation: "Read More"
|
||||
- id: moreBlog
|
||||
translation: "More Posts"
|
||||
- id: olderBlog
|
||||
translation: "Older Posts"
|
||||
- id: recentBlog
|
||||
translation: "Recent Posts"
|
||||
- id: newerBlog
|
||||
translation: "Newer Posts"
|
||||
- id: previousBlog
|
||||
translation: "Previous Post"
|
||||
- id: nextBlog
|
||||
translation: "Next Post"
|
||||
- id: recentProjects
|
||||
translation: "Projects"
|
||||
- id: moreFeatures
|
||||
translation: "More Features"
|
||||
- id: moreGuides
|
||||
translation: "More Guides"
|
||||
- id: moreOpensource
|
||||
translation: "More Features"
|
||||
- id: moreProjects
|
||||
translation: "More Projects"
|
||||
- id: moreUsers
|
||||
translation: "More Users"
|
||||
- id: read
|
||||
translation: "read"
|
||||
- id: minutesShort
|
||||
translation: "min"
|
||||
- id: words
|
||||
translation: "words"
|
||||
- id: copyright
|
||||
translation: "Copyright"
|
||||
- id: photoBy
|
||||
translation: "Photo by"
|
||||
- id: photoFull
|
||||
translation: "Photo by %s on %s"
|
||||
- id: photoShort
|
||||
translation: "Photo by {{ . }}"
|
||||
- id: photoOn
|
||||
translation: "on"
|
||||
- id: draft
|
||||
translation: "Draft"
|
||||
|
||||
# List pages
|
||||
- id: article
|
||||
translation: "Article"
|
||||
- id: articles
|
||||
translation: "Articles"
|
||||
- id: more
|
||||
translation: "More {{ . }}"
|
||||
|
||||
# Sharing
|
||||
- id: shareLink
|
||||
translation: "Share via"
|
||||
- id: copiedToClipboard
|
||||
translation: "copied to clipboard"
|
||||
- id: link
|
||||
translation: "Link"
|
||||
- id: code
|
||||
translation: "Code"
|
||||
|
||||
# Pagination
|
||||
- id: paginationNav
|
||||
translation: "Page navigation"
|
||||
- id: paginationPrevious
|
||||
@@ -63,8 +47,8 @@
|
||||
translation: "First page"
|
||||
- id: paginationLast
|
||||
translation: "Last page"
|
||||
- id: toggleSidebar
|
||||
translation: "Toggle sidebar navigation"
|
||||
|
||||
# Navigation
|
||||
- id: colorMode
|
||||
translation: "Toggle theme"
|
||||
- id: colorLight
|
||||
@@ -75,20 +59,28 @@
|
||||
translation: "Auto"
|
||||
- id: toggleMainNav
|
||||
translation: "Toggle main navigation"
|
||||
- id: demo
|
||||
translation: "Demo"
|
||||
- id: home
|
||||
translation: "Home"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Language"
|
||||
|
||||
# Table of contents
|
||||
- id: toc
|
||||
translation: "On this page"
|
||||
- id: seeAlso
|
||||
translation: "See also"
|
||||
|
||||
# Sidebar
|
||||
- id: toggleSidebar
|
||||
translation: "Toggle sidebar navigation"
|
||||
|
||||
# Feature
|
||||
- id: addedFeature
|
||||
translation: "Added in"
|
||||
translation: "Added in {{ . }}"
|
||||
- id: deprecatedFeature
|
||||
translation: "Deprecated in"
|
||||
- id: shareLink
|
||||
translation: "Share via"
|
||||
- id: copiedToClipboard
|
||||
translation: "copied to clipboard"
|
||||
- id: link
|
||||
translation: "Link"
|
||||
- id: code
|
||||
translation: "Code"
|
||||
translation: "Deprecated in {{ . }}"
|
||||
|
||||
# Versioning
|
||||
- id: latest
|
||||
translation: "latest"
|
||||
- id: allVersions
|
||||
@@ -98,62 +90,22 @@
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "The page you are looking for does not exist or another error occurred. Try going back to our"
|
||||
translation: "The page you are looking for does not exist or another error occurred. Try going back to our {{ . }}."
|
||||
- id: pageNotFoundTitle
|
||||
translation: "Page not found"
|
||||
- id: pageNotFoundHome
|
||||
translation: "home page"
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Toggle navigation"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Language"
|
||||
- id: gcseLabelShort
|
||||
translation: "Search"
|
||||
- id: gcseLabelLong
|
||||
translation: "Search {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Close"
|
||||
- id: home
|
||||
translation: "Home"
|
||||
# Footer
|
||||
- id: copyright
|
||||
translation: "Copyright"
|
||||
- id: rights
|
||||
translation: "All rights reserved"
|
||||
- id: poweredBy
|
||||
translation: "Powered by {{ . }}."
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "No comment"
|
||||
- id: oneComment
|
||||
translation: "comment"
|
||||
- id: moreComment
|
||||
translation: "comments"
|
||||
- id: useMarkdown
|
||||
translation: "You can use Markdown syntax"
|
||||
- id: yourName
|
||||
translation: "Your name"
|
||||
- id: yourEmail
|
||||
translation: "Your email address"
|
||||
- id: yourWebsite
|
||||
translation: "You website"
|
||||
|
||||
# Delayed Disqus
|
||||
# Comments
|
||||
- id: show
|
||||
translation: "Show"
|
||||
- id: comments
|
||||
translation: "comments"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "See also"
|
||||
|
||||
# Table of contents
|
||||
- id: toc
|
||||
translation: "On this page"
|
||||
|
||||
# Search
|
||||
- id: ui_search
|
||||
translation: "Search this site..."
|
||||
- id: ui_no_results
|
||||
translation: "No results for"
|
||||
|
||||
# Draft
|
||||
- id: draft
|
||||
translation: "Draft"
|
||||
translation: "Comments"
|
||||
|
161
i18n/nl.yaml
161
i18n/nl.yaml
@@ -1,62 +1,52 @@
|
||||
# Content
|
||||
- id: about
|
||||
translation: "Over mij"
|
||||
# Single pages
|
||||
- id: postedOnDate
|
||||
translation: "Gepubliceerd op {{ . }}"
|
||||
- id: lastModified
|
||||
translation: "Laatst gewijzigd op {{ . }}"
|
||||
- id: translationsLabel
|
||||
translation: "Overige talen: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: more
|
||||
translation: "Meer {{ . }}"
|
||||
- id: readMore
|
||||
translation: "Lees meer"
|
||||
- id: moreBlog
|
||||
translation: "Meer berichten"
|
||||
- id: olderBlog
|
||||
translation: "Oudere berichten"
|
||||
- id: recentBlog
|
||||
translation: "Recente berichten"
|
||||
- id: newerBlog
|
||||
translation: "Nieuwere berichten"
|
||||
- id: previousBlog
|
||||
translation: "Vorig bericht"
|
||||
- id: nextBlog
|
||||
translation: "Volgend bericht"
|
||||
- id: recentProjects
|
||||
translation: "Projecten"
|
||||
- id: moreProjects
|
||||
translation: "Meer projecten"
|
||||
- id: read
|
||||
translation: "leestijd"
|
||||
- id: minutesShort
|
||||
translation: "min"
|
||||
- id: words
|
||||
translation: "woorden"
|
||||
- id: copyright
|
||||
translation: "Copyright"
|
||||
- id: photoBy
|
||||
translation: "Foto van"
|
||||
- id: photoOn
|
||||
translation: "via"
|
||||
- id: photoFull
|
||||
translation: "Foto van %s via %s"
|
||||
- id: photoShort
|
||||
translation: "Foto van {{ . }}"
|
||||
- id: draft
|
||||
translation: "Concept"
|
||||
|
||||
# List pages
|
||||
- id: article
|
||||
translation: "Artikel"
|
||||
- id: articles
|
||||
translation: "Artikelen"
|
||||
- id: more
|
||||
translation: "Meer {{ . }}"
|
||||
|
||||
# Sharing
|
||||
- id: shareLink
|
||||
translation: "Delen via"
|
||||
- id: copiedToClipboard
|
||||
translation: "gekopieerd naar clipboard"
|
||||
- id: link
|
||||
translation: "Link"
|
||||
- id: code
|
||||
translation: "Code"
|
||||
|
||||
# Pagination
|
||||
- id: paginationNav
|
||||
translation: "Pagina navigatie"
|
||||
- id: paginationPrevious
|
||||
translation: "Vorige"
|
||||
translation: "Vorige pagina"
|
||||
- id: paginationNext
|
||||
translation: "Volgende"
|
||||
translation: "Volgende pagina"
|
||||
- id: paginationFirst
|
||||
translation: "Eerste"
|
||||
translation: "Eerste pagina"
|
||||
- id: paginationLast
|
||||
translation: "Laatste"
|
||||
- id: toggleSidebar
|
||||
translation: "Toon of verberg navigatie"
|
||||
translation: "Laatste pagina"
|
||||
|
||||
# Navigation
|
||||
- id: colorMode
|
||||
translation: "Pas modus aan"
|
||||
- id: colorLight
|
||||
@@ -67,18 +57,28 @@
|
||||
translation: "Automatisch"
|
||||
- id: toggleMainNav
|
||||
translation: "Toon of verberg hoofdnavigatie"
|
||||
- id: home
|
||||
translation: "Home"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Taal"
|
||||
|
||||
# Table of contents
|
||||
- id: toc
|
||||
translation: "Inhoudsopgave"
|
||||
- id: seeAlso
|
||||
translation: "Zie ook"
|
||||
|
||||
# Sidebar
|
||||
- id: toggleSidebar
|
||||
translation: "Toon of verberg navigatie"
|
||||
|
||||
# Feature
|
||||
- id: addedFeature
|
||||
translation: "Toegevoegd in"
|
||||
translation: "Toegevoegd in {{ . }}"
|
||||
- id: deprecatedFeature
|
||||
translation: "Verouderd in"
|
||||
- id: shareLink
|
||||
translation: "Delen via"
|
||||
- id: copiedToClipboard
|
||||
translation: "gekopieerd naar clipboard"
|
||||
- id: link
|
||||
translation: "Link"
|
||||
- id: code
|
||||
translation: "Code"
|
||||
translation: "Afgeschaft in {{ . }}"
|
||||
|
||||
# Versioning
|
||||
- id: latest
|
||||
translation: "meest recente"
|
||||
- id: allVersions
|
||||
@@ -88,63 +88,22 @@
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Deze pagina bestaat niet of er is een andere fout opgetreden. Ga terug naar het"
|
||||
translation: "Deze pagina bestaat niet of er is een andere fout opgetreden. Ga terug naar het {{ . }}."
|
||||
- id: pageNotFoundTitle
|
||||
translation: "Niet gevonden"
|
||||
translation: "Pagina niet gevonden"
|
||||
- id: pageNotFoundHome
|
||||
translation: "begin"
|
||||
|
||||
# Footer
|
||||
- id: copyright
|
||||
translation: "Copyright"
|
||||
- id: rights
|
||||
translation: "Alle rechten voorbehouden"
|
||||
- id: poweredBy
|
||||
translation: "Mede mogelijk gemaakt door {{ . }}."
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Toon/verberg navigatie"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Taal"
|
||||
- id: gcseLabelShort
|
||||
translation: "Zoeken"
|
||||
- id: gcseLabelLong
|
||||
translation: "Zoeken op {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Sluiten"
|
||||
- id: home
|
||||
translation: "Home"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "Geen commentaar"
|
||||
- id: oneComment
|
||||
translation: "commentaar"
|
||||
- id: moreComment
|
||||
translation: "commentaar"
|
||||
- id: useMarkdown
|
||||
translation: "Je kunt Markdown syntax gebruiken"
|
||||
- id: yourName
|
||||
translation: "Jouw naam"
|
||||
- id: yourEmail
|
||||
translation: "Jouw email adres"
|
||||
- id: yourWebsite
|
||||
translation: "Jouw website"
|
||||
|
||||
# Delayed Disqus
|
||||
# Comments
|
||||
- id: show
|
||||
translation: "Tonen"
|
||||
- id: comments
|
||||
translation: "commentaar"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "Zie ook"
|
||||
|
||||
# Table of contents
|
||||
- id: toc
|
||||
translation: "Inhoudsopgave"
|
||||
|
||||
# Search
|
||||
- id: ui_search
|
||||
translation: "Zoeken op deze site..."
|
||||
- id: ui_no_results
|
||||
translation: "Geen resultaten voor"
|
||||
|
||||
# Draft
|
||||
- id: draft
|
||||
translation: "Concept"
|
||||
translation: "Reacties"
|
||||
|
@@ -1,12 +1,13 @@
|
||||
{{ define "main"}}
|
||||
<div class="container-xxl flex-fill d-flex align-content-center flex-wrap">
|
||||
<div class="container-xxl flex-fill d-flex align-content-center flex-wrap feature">
|
||||
<div class="w-100 text-center">
|
||||
<span class="text-secondary fw-bold">
|
||||
<i class="fa-regular fa-face-frown fa-10x"></i>
|
||||
{{ partial "assets/icon.html" (dict "icon" "fa face-frown fa-10x") }}
|
||||
<p class="display-1 mt-3 fw-bold">404</p>
|
||||
<p class="fs-3">{{ T "pageNotFoundTitle" }}</p>
|
||||
</span>
|
||||
<p>{{ T "pageNotFound" }} <a href="{{ "/" | relLangURL }}">{{ T "pageNotFoundHome" }}</a>.</p>
|
||||
{{- $home := printf "<a href=\"%s\">%s</a>" ("/" | relLangURL) (T "pageNotFoundHome") -}}
|
||||
<p>{{ T "pageNotFound" $home | safeHTML }}</p>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
{{ if site.Params.navigation.anchor }}
|
||||
<h{{ .Level }} id="{{ .Anchor | safeURL }}" class="heading">{{ .Text | safeHTML }} <a href="#{{ .Anchor | safeURL }}"><i class="fa-solid fa-link anchor"></i></a></h{{ .Level }}>
|
||||
<h{{ .Level }} id="{{ .Anchor | safeURL }}" class="heading">{{ .Text | safeHTML }} <a href="#{{ .Anchor | safeURL }}">{{- partial "assets/icon.html" (dict "icon" "fas link anchor") }}</a></h{{ .Level }}>
|
||||
{{ else }}
|
||||
<h{{ .Level }} id="{{ .Anchor | safeURL }}">{{ .Text | safeHTML }}</h{{ .Level }}>
|
||||
{{ end }}
|
@@ -3,16 +3,19 @@
|
||||
{{- $.Scratch.Set "version" $version -}}
|
||||
{{ with partial "utilities/GetMenu" (dict "page" . "version" $version) }}{{ $.Scratch.Set "sidebar" . }}{{ end }}
|
||||
|
||||
{{- if site.Params.docs.checkVersion -}}
|
||||
{{ with $version }}
|
||||
{{- $isOlder := partial "utilities/IsOlder" (dict "current" .) -}}
|
||||
{{- if $isOlder }}
|
||||
{{- if and site.Params.docs.checkVersion $version -}}
|
||||
{{- if ne $version "latest" -}}
|
||||
{{- if partial "utilities/IsOlder" (dict "current" $version) -}}
|
||||
{{- $.Scratch.Set "pageAlertMsg" (T "newerVersionAlert" site.Title) -}}
|
||||
{{- $.Scratch.Set "pageAlertURL" (or site.Params.docs.latestURL site.baseURL) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if and .IsPage (not (in .Site.Params.modules.core "bootstrap")) -}}
|
||||
{{- errorf "Bootstrap is a required module, please add it to 'modules.core' in your site parameters" -}}
|
||||
{{- end -}}
|
||||
|
||||
<!doctype html>
|
||||
<html lang="{{ .Site.Language.Lang }}" class="no-js">
|
||||
<head>
|
||||
@@ -20,9 +23,7 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{{- if site.Params.main.enableDarkMode -}}
|
||||
{{- partial "footer/scripts.html" (dict "filename" "js/critical.bundle.js" "match" "js/critical/**.js" "header" true "page" .) -}}
|
||||
{{- end -}}
|
||||
{{- partial "footer/scripts.html" (dict "filename" "js/critical.bundle.js" "match" "js/critical/**.js" "header" true "page" .) -}}
|
||||
<div class="d-flex flex-column min-vh-100{{ if and .IsHome .Site.Params.home.style }} {{ .Site.Params.home.style }}{{ end }}">
|
||||
<div class="{{ if .Site.Params.navigation.fixed }}mb-4{{ end }}">
|
||||
{{- partial "assets/navbar.html" (dict
|
||||
@@ -80,6 +81,19 @@
|
||||
{{ end }}
|
||||
|
||||
{{- partial "footer/toast-container.html" . -}}
|
||||
{{- partialCached "footer/scripts.html" (dict "header" false "page" .) }}
|
||||
{{- partialCached "footer/scripts.html" (dict "header" false "page" . "core" true) }}
|
||||
{{- $modules := site.Params.modules.optional | intersect .Params.modules -}}
|
||||
{{- range $index, $mod := $modules -}}
|
||||
{{- $filename := printf "js/%s.bundle.js" $mod -}}
|
||||
{{- $match := printf "js/modules/%s/**.js" $mod -}}
|
||||
{{- $skipTemplate := false -}}
|
||||
{{- if reflect.IsSlice site.Params.modules.disableTemplate -}}
|
||||
{{- if in site.Params.modules.disableTemplate $mod}}
|
||||
{{- $skipTemplate = true -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- partial "footer/scripts.html" (dict "filename" $filename "match" $match "header" false "skipTemplate" $skipTemplate "page" .) }}
|
||||
{{- end -}}
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -4,7 +4,7 @@
|
||||
"section" .Type
|
||||
"home" false
|
||||
"nested" .Params.Nested
|
||||
"title" .Title
|
||||
"title" (or .Title .Type)
|
||||
"description" .Description
|
||||
"content" .Content
|
||||
"paginate" true)
|
||||
|
@@ -47,10 +47,40 @@
|
||||
{{- end -}}
|
||||
|
||||
{{ if not (in (slice "docs" "minimal") .Layout) }}
|
||||
{{ if .Params.thumbnail -}}
|
||||
{{- $credits := "" -}}
|
||||
{{- if .Params.photoCredits }}{{ if .Params.PhotoSource }}{{ $credits = printf "%s %s %s %s" (T "photoBy") .Params.photoCredits (T "photoOn") .Params.PhotoSource }}{{ end }}{{ end -}}
|
||||
{{- partial "assets/image.html" (dict "url" .Params.thumbnail "ratio" "21x9" "outerClass" "img-wrap" "innerClass" "rounded" "title" .Params.title "caption" $credits) -}}
|
||||
{{- $thumbnail := "" -}}
|
||||
{{- $credits := "" -}}
|
||||
|
||||
{{- if reflect.IsMap .Params.Thumbnail -}}
|
||||
{{- $thumbnail = .Params.Thumbnail.url -}}
|
||||
{{- $author := "" -}}
|
||||
{{- if and .Params.Thumbnail.authorURL "text" .Params.Thumbnail.author }}
|
||||
{{- $author = partial "utilities/link" (dict "destination" .Params.Thumbnail.authorURL "text" .Params.Thumbnail.author) -}}
|
||||
{{- else if .Params.Thumbnail.author }}
|
||||
{{- $author = .Params.Thumbnail.author -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $origin := "" -}}
|
||||
{{- if and .Params.Thumbnail.originURL "text" .Params.Thumbnail.origin }}
|
||||
{{- $origin = partial "utilities/link" (dict "destination" .Params.Thumbnail.originURL "text" .Params.Thumbnail.origin) -}}
|
||||
{{- else if .Params.Thumbnail.origin }}
|
||||
{{- $origin = .Params.Thumbnail.origin -}}
|
||||
{{- end }}
|
||||
|
||||
{{- if and $author $origin }}
|
||||
{{ $credits = printf (T "photoFull") $author $origin }}
|
||||
{{ else if $author }}
|
||||
{{ $credits = T "photoShort" $author }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{- $thumbnail = .Params.Thumbnail -}}
|
||||
{{ if or .Params.photoCredits .Params.photoSource }}
|
||||
{{ warnf "DEPRECATED: frontmatter variables `photoCredits` and `photoSource` have been deprecated in release v0.18: %s" .RelPermalink }}
|
||||
{{ end }}
|
||||
{{- if and .Params.photoCredits .Params.PhotoSource }}{{ $credits = printf (T "photoFull") .Params.photoCredits .Params.PhotoSource }}{{ end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{ if $thumbnail -}}
|
||||
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "21x9" "outerClass" "img-wrap" "innerClass" "rounded" "title" .Params.title "caption" $credits) -}}
|
||||
{{ end -}}
|
||||
{{ end }}
|
||||
{{ .Content }}
|
||||
@@ -67,7 +97,8 @@
|
||||
{{ with .NextInSection -}}
|
||||
{{ $next := . -}}
|
||||
{{ with .OutputFormats.Get "html" -}}
|
||||
<a class="next" href="{{ $next.Permalink }}"><i class="fas fa-arrow-left"></i> {{ $next.Title }}</a>
|
||||
<a class="next" href="{{ $next.RelPermalink }}">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas arrow-left") }} {{ $next.Title }}</a>
|
||||
{{- end -}}
|
||||
{{ end -}}
|
||||
</div>
|
||||
@@ -75,7 +106,7 @@
|
||||
{{ with .PrevInSection -}}
|
||||
{{ $prev := . -}}
|
||||
{{ with .OutputFormats.Get "html" -}}
|
||||
<a class="previous" href="{{ $prev.Permalink }}">{{ $prev.Title }} <i class="fas fa-arrow-right"></i></a>
|
||||
<a class="previous" href="{{ $prev.RelPermalink }}">{{ $prev.Title }} {{- partial "assets/icon.html" (dict "icon" "fas arrow-right") }}</a>
|
||||
{{- end -}}
|
||||
{{ end -}}
|
||||
</div>
|
||||
|
@@ -7,10 +7,10 @@
|
||||
{{ $square150 := .Resize "150x150 CatmullRom" }}
|
||||
{{ $wide310 := .Fill "310x150 CatmullRom" }}
|
||||
{{ $square310 := .Resize "310x310 CatmullRom" }}
|
||||
<square70x70logo src="{{ $square70.Permalink }}" />
|
||||
<square150x150logo src="{{ $square150.Permalink }}" />
|
||||
<wide310x150logo src="{{ $wide310.Permalink }}" />
|
||||
<square310x310logo src="{{ $square310.Permalink }}" />
|
||||
<square70x70logo src="{{ $square70.RelPermalink }}" />
|
||||
<square150x150logo src="{{ $square150.RelPermalink }}" />
|
||||
<wide310x150logo src="{{ $wide310.RelPermalink }}" />
|
||||
<square310x310logo src="{{ $square310.RelPermalink }}" />
|
||||
{{ end }}
|
||||
<TileColor>#000000</TileColor>
|
||||
</tile>
|
||||
|
@@ -4,17 +4,26 @@
|
||||
|
||||
{{- define "main" -}}
|
||||
{{- $page := . -}}
|
||||
{{- $sections := site.Params.home.sections -}}
|
||||
{{- if not $sections -}}
|
||||
{{ range $section := site.Sections }}
|
||||
{{ $sections = $sections | append $section.Type }}
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
|
||||
{{- range $index, $section := site.Params.home.sections -}}
|
||||
{{- range $index, $section := $sections -}}
|
||||
{{- $sectionPage := site.GetPage "section" $section -}}
|
||||
{{- $sectionURL := $sectionPage.RelPermalink -}}
|
||||
{{- $title := $sectionPage.Title -}}
|
||||
{{- $thumbnail := $sectionPage.Params.Thumbnail -}}
|
||||
{{- $title := or $sectionPage.Title $sectionPage.Type -}}
|
||||
{{- $thumbnail := (or (and (reflect.IsMap $sectionPage.Params.Thumbnail) $sectionPage.Params.Thumbnail.url) $sectionPage.Params.Thumbnail) -}}
|
||||
{{- $icon := $sectionPage.Params.Icon -}}
|
||||
{{- $description := $sectionPage.Description -}}
|
||||
{{- $content := $sectionPage.Content -}}
|
||||
|
||||
{{- $moreTitle := (T (printf "more%s" (strings.FirstUpper $section))) -}}
|
||||
{{- $sectionTitle := strings.FirstUpper $sectionPage.Type -}}
|
||||
{{- $moreTitle := "" -}}
|
||||
{{- with (index site.Params.sections $section) -}}
|
||||
{{- with index . "reference" }}{{ $moreTitle = . }}{{ end -}}
|
||||
{{- end -}}
|
||||
{{- $moreTitle = or $moreTitle (printf (T "more" (pluralize $sectionTitle))) -}}
|
||||
|
||||
{{- partial "assets/section-list.html" (dict
|
||||
"page" $page
|
||||
|
@@ -3,7 +3,7 @@
|
||||
{{- range $index, $item := .Page.Ancestors.Reverse -}}
|
||||
{{- $title := .Title -}}
|
||||
{{- if .IsHome }}{{ $title = T "home" }}{{ end -}}
|
||||
{{- $address := or .Permalink (.Params.Redirect | absLangURL) -}}
|
||||
{{- $address := or .RelPermalink (.Params.Redirect | relLangURL) -}}
|
||||
{{ if $address }}
|
||||
<li class="breadcrumb-item"><a href="{{ $address }}">{{ $title }}</a></li>
|
||||
{{ else }}
|
||||
|
@@ -22,6 +22,11 @@
|
||||
"between", "around", or "evenly".
|
||||
"toast" Optional id of the toast to display when the button is clicked.
|
||||
"clipboard" Optional text to be copied to the clipboard when the button is clicked.
|
||||
"cue" Optional flag to indicate if an external link should show a visual cue, defaults to setting
|
||||
"main.externalLinks.cue" in the site's parameters.
|
||||
"tab" Optional flag to indicate if an external link should open in a new tab, defaults to setting
|
||||
"main.externalLinks.tab" in the site's parameters.
|
||||
"attributes" Optional dictionary of key-value pairs added as custom attributes to the button element ('<a>').
|
||||
-->
|
||||
|
||||
{{- $title := trim .title " \r\n" -}}
|
||||
@@ -95,6 +100,7 @@
|
||||
{{- end -}}
|
||||
|
||||
{{- $class := .class }}
|
||||
{{ with $badge }}{{ $class = printf "%s me-3" $class }}{{ end }}
|
||||
|
||||
{{- $order := "last" -}}
|
||||
{{- with .order }}{{ $order = . }}{{ end -}}
|
||||
@@ -113,22 +119,45 @@
|
||||
{{- $toast := .toast -}}
|
||||
{{- $clipboard := .clipboard -}}
|
||||
|
||||
<a aria-label="{{ $title }}" {{ if ne $state "disabled" }}{{ with $href }}href="{{ . }}"{{ end }}{{ end }}
|
||||
{{ with $id }}id="{{ . }}"{{ end }}
|
||||
{{ with $toast }}data-toast-target="{{ $toast }}"{{ end }}
|
||||
{{ with $clipboard }}data-clipboard="{{ $clipboard }}"{{ end }}
|
||||
{{ if eq $type "button" }}class="btn btn-{{ if $outline }}outline-{{ end }}{{ $color }} {{ if ne $size "md"}}btn-{{ $size }}{{ end }} position-relative {{ if in (slice "disabled" "active") $state }}{{ $state }}{{ end }} {{ $class }}"
|
||||
role="button" {{ if eq $state "disabled" }}aria-disabled="true"{{ end }}
|
||||
{{ else }} class="link-{{ $color }} position-relative {{ $class }}"{{ end }}
|
||||
{{ with $tooltip }}data-bs-toggle="tooltip" data-bs-title="{{ . }}" data-bs-placement="{{ $placement }}"{{ end }}
|
||||
{{ with $collapse }}data-bs-toggle="collapse" aria-expanded="false" aria-controls="{{ . }}"{{ end }}
|
||||
{{ if eq $state "active" }}data-bs-toggle="button" aria-pressed="true"{{ end }}
|
||||
{{ if eq $state "inactive" }}data-bs-toggle="button" aria-pressed="false"{{ end }}
|
||||
>
|
||||
{{- $cue := .cue | default site.Params.main.externalLinks.cue -}}
|
||||
{{- $tab := .tab | default site.Params.main.externalLinks.tab -}}
|
||||
{{- $isExternal := ne (urls.Parse (absURL $href)).Host (urls.Parse site.BaseURL).Host -}}
|
||||
{{- $target := "" -}}
|
||||
{{- $rel := "" -}}
|
||||
|
||||
{{- if $isExternal -}}
|
||||
{{- if $tab -}}
|
||||
{{- $target = "_blank" -}}
|
||||
{{- $rel = "noopener noreferrer" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if and $title $cue -}}
|
||||
{{ $suffix := partial "assets/icon.html" (dict "icon" "fas up-right-from-square fa-2xs") }}
|
||||
{{- $title = printf "%s %s" $title $suffix | safeHTML -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $attributes := .attributes -}}
|
||||
|
||||
<a aria-label="{{ $title }}" {{ if ne $state "disabled" }}{{ with $href }}href="{{ . }}"{{ end }}{{ end -}}
|
||||
{{- with $id }}id="{{ . }}"{{ end -}}
|
||||
{{- with $target }}target="{{ . }}"{{ end }}{{ with $rel }} rel="{{ . }}"{{ end -}}
|
||||
{{- with $toast }}data-toast-target="{{ $toast }}"{{ end -}}
|
||||
{{- with $clipboard }}data-clipboard="{{ $clipboard }}"{{ end -}}
|
||||
{{- if eq $type "button" }}class="btn btn-{{ if $outline }}outline-{{ end }}{{ $color }} {{ if ne $size "md"}}btn-{{ $size }}{{ end }} position-relative {{ if in (slice "disabled" "active") $state }}{{ $state }}{{ end }} {{ $class -}}"
|
||||
role="button" {{ if eq $state "disabled" }}aria-disabled="true"{{ end -}}
|
||||
{{- else }} class="link-{{ $color }} position-relative {{ $class }}"{{ end -}}
|
||||
{{- with $tooltip }}data-bs-toggle="tooltip" data-bs-title="{{ . }}" data-bs-placement="{{ $placement }}"{{ end -}}
|
||||
{{- with $collapse }}data-bs-toggle="collapse" aria-expanded="false" aria-controls="{{ . }}"{{ end -}}
|
||||
{{- if eq $state "active" }}data-bs-toggle="button" aria-pressed="true"{{ end -}}
|
||||
{{- if eq $state "inactive" }}data-bs-toggle="button" aria-pressed="false"{{ end -}}
|
||||
{{- range $key, $val := $attributes -}}
|
||||
{{- print $key | safeHTMLAttr }}="{{ $val }}"
|
||||
{{- end -}}
|
||||
>
|
||||
<div class="d-flex justify-content-{{ $justify }}">
|
||||
<div>{{ $title }}</div>
|
||||
{{- with $icon }}<div class="align-self-center{{ if eq $order "first" }} order-first pe-1{{ else }} ps-1{{ end }}">{{ partial "assets/icon.html" (dict "icon" $icon) }}</div>{{ end }}
|
||||
<div class="my-auto">{{ $title }}</div>
|
||||
{{- with $icon }}<div class="align-self-center{{ if $title }}{{ if eq $order "first" }} order-first pe-1{{ else }} ps-1{{ end }}{{ end }}">{{ partial "assets/icon.html" (dict "icon" $icon) }}</div>{{ end }}
|
||||
</div>
|
||||
|
||||
{{- with $badge }}
|
||||
|
@@ -106,15 +106,16 @@
|
||||
"footer" $footer
|
||||
"orientation" $orientation
|
||||
) -}}
|
||||
|
||||
{{- if $element.Permalink -}}
|
||||
|
||||
{{- if $element.RelPermalink -}}
|
||||
{{- $params = merge $params (dict "path" $element.File.Path) -}}
|
||||
{{- else -}}
|
||||
{{- $thumbnail := (or (and (reflect.IsMap $element.Params.Thumbnail) $element.Params.Thumbnail.url) $element.Params.Thumbnail) -}}
|
||||
{{- $params = merge $params (dict
|
||||
"title" $element.Title
|
||||
"href" $element.Permalink
|
||||
"description" (or $element.Description $element.Content)
|
||||
"thumbnail" $element.Params.thumbnail
|
||||
"href" $element.RelPermalink
|
||||
"description" (partial "utilities/GetDescription.html" $element)
|
||||
"thumbnail" $thumbnail
|
||||
"icon" $element.Params.icon
|
||||
) -}}
|
||||
{{- end -}}
|
||||
|
@@ -111,9 +111,9 @@
|
||||
|
||||
{{- with $page -}}
|
||||
{{- if not $title }}{{ $title = .Title }}{{ end -}}
|
||||
{{- if not $href }}{{ $href = .Permalink }}{{ end -}}
|
||||
{{- if not $description }}{{ $description = .Description }}{{ end -}}
|
||||
{{- if not $thumbnail }}{{ $thumbnail = .Params.thumbnail }}{{ end -}}
|
||||
{{- if not $href }}{{ $href = .RelPermalink }}{{ end -}}
|
||||
{{- if not $description }}{{ $description = partial "utilities/GetDescription.html" . }}{{ end -}}
|
||||
{{- if not $thumbnail }}{{ $thumbnail = (or (and (reflect.IsMap .Params.Thumbnail) .Params.Thumbnail.url) .Params.Thumbnail) }}{{ end -}}
|
||||
{{- if not $icon }}{{ $icon = .Params.icon }}{{ end -}}
|
||||
{{- end -}}
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{{- $params := .Site.Params.comments -}}
|
||||
{{- with $params -}}
|
||||
<h2>Comments</h2>
|
||||
<h2>{{ T "comments" }}</h2>
|
||||
<script src="https://utteranc.es/client.js"
|
||||
repo="{{ $params.repo }}"
|
||||
issue-term="{{ default "pathname" $params.issueTerm }}"
|
||||
|
@@ -1,16 +0,0 @@
|
||||
{{- $icon := .icon -}}
|
||||
{{- if not $icon -}}
|
||||
{{- errorf "partial [assets/icon.html] - Expected value for param 'icon'" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $icon_class := split $icon " " -}}
|
||||
{{- $attr := delimit (after 1 $icon_class) " " -}}
|
||||
{{- if eq (index $icon_class 0) "fas" -}}
|
||||
<i class="fa-solid fa-{{ $attr}}"></i>
|
||||
{{- else if eq (index $icon_class 0) "fab" -}}
|
||||
<i class="fa-brands fa-{{ $attr }}"></i>
|
||||
{{- else if eq (index $icon_class 0) "fa" -}}
|
||||
<i class="fa-regular fa-{{ $attr }}"></i>
|
||||
{{- else -}}
|
||||
{{- errorf "partial [assets/icon.html] - Unrecognized icon class: %s" $icon_class -}}
|
||||
{{- end -}}
|
@@ -15,6 +15,7 @@
|
||||
-->
|
||||
|
||||
{{- $validRatios := slice "1x1" "4x3" "16x9" "21x9" -}}
|
||||
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
|
||||
{{- $ratio := .ratio -}}
|
||||
{{- $url := .url -}}
|
||||
{{- $mode := false -}}
|
||||
@@ -68,6 +69,7 @@
|
||||
|
||||
<!-- Generate a image set of type webp -->
|
||||
{{- define "partials/image-scaled.html " -}}
|
||||
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
|
||||
{{- $img := .img -}}
|
||||
{{- $ratio := .ratio -}}
|
||||
{{- $imgset := "" -}}
|
||||
@@ -98,7 +100,11 @@
|
||||
{{- $scaled = $img.Fit (printf "%s webp" $dim) -}}
|
||||
{{- end -}}
|
||||
{{- $scaled = $scaled | resources.Copy (replace $img.RelPermalink $clean (printf "-%s.webp" $dim)) -}}
|
||||
{{- $imgset = printf "%s, %s %sw" $imgset $scaled.Permalink (index $widths $index) -}}
|
||||
{{- if $absoluteURL -}}
|
||||
{{- $imgset = printf "%s, %s %sw" $imgset $scaled.Permalink (index $widths $index) -}}
|
||||
{{- else -}}
|
||||
{{- $imgset = printf "%s, %s %sw" $imgset $scaled.RelPermalink (index $widths $index) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- $imgset = strings.TrimPrefix ", " $imgset -}}
|
||||
{{- end -}}
|
||||
@@ -108,6 +114,7 @@
|
||||
|
||||
<!-- Define the img with optional caption -->
|
||||
{{- define "partials/image-definition.html" -}}
|
||||
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
|
||||
{{- $ratio := .ratio -}}
|
||||
{{- $url := .url -}}
|
||||
{{- $outerClass := .outerClass -}}
|
||||
@@ -125,7 +132,11 @@
|
||||
{{- $img := partial "utilities/GetImage.html" (dict "url" $url) -}}
|
||||
{{- if $img -}}
|
||||
{{- $fallback := partial "partials/image-default.html" (dict "img" $img "ratio" $ratio) -}}
|
||||
{{- $fallbackURL = $fallback.RelPermalink -}}
|
||||
{{- if $absoluteURL -}}
|
||||
{{- $fallbackURL = $fallback.Permalink -}}
|
||||
{{- else -}}
|
||||
{{- $fallbackURL = $fallback.RelPermalink -}}
|
||||
{{- end -}}
|
||||
{{- $imgset = partial "partials/image-scaled.html " (dict "img" $img "ratio" $ratio) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
@@ -145,7 +156,7 @@
|
||||
srcset="{{ . }}"
|
||||
sizes="100vw"
|
||||
{{- end }}
|
||||
src="{{ absURL $fallbackURL }}"
|
||||
src="{{ $fallbackURL }}"
|
||||
alt="{{ $title }}">
|
||||
</div>
|
||||
{{- if $caption -}}
|
||||
|
@@ -52,6 +52,7 @@
|
||||
<div class="d-none d-md-block p-0">
|
||||
{{- range $index, $item := $list -}}
|
||||
{{- $odd := eq (mod $index 2) 1 -}}
|
||||
{{- $thumbnail := (or (and (reflect.IsMap $item.Params.Thumbnail) $item.Params.Thumbnail.url) $item.Params.Thumbnail) -}}
|
||||
<div class="container ratio-section d-flex flex-column">
|
||||
<div class="row pt-5 pb-5 align-items-center flex-fill row-cols-2">
|
||||
<div class="col-6{{ if $odd }} order-last{{ end }}">
|
||||
@@ -60,7 +61,7 @@
|
||||
{{- $style = "reveal fade-bottom-n5 rotate-n5 ps-3" -}}
|
||||
{{- if $odd }}{{ $style = "reveal fade-bottom-5 rotate-5 pe-3" }}{{ end }}
|
||||
{{ end }}
|
||||
{{ partial "partials/list-img.html" (dict "thumbnail" $item.Params.Thumbnail "style" $style "mode" $item.Params.colormode) }}
|
||||
{{ partial "partials/list-img.html" (dict "thumbnail" $thumbnail "style" $style "mode" $item.Params.colormode) }}
|
||||
</div>
|
||||
<div class="col-6{{ if $odd }} order-first{{ end }} psw-lg-5 p-5">
|
||||
{{ partial "partials/list-content.html" (dict "title" $item.Title "content" (or $item.Description $item.Content)) }}
|
||||
@@ -73,13 +74,14 @@
|
||||
<div class="d-md-none">
|
||||
{{- range $index, $item := $list -}}
|
||||
{{- $odd := eq (mod $index 2) 1 -}}
|
||||
{{- $thumbnail := (or (and (reflect.IsMap $item.Params.Thumbnail) $item.Params.Thumbnail.url) $item.Params.Thumbnail) -}}
|
||||
<div class="container d-flex flex-column">
|
||||
<div class="row pt-5 pb-5 align-items-center flex-fill row-cols-2">
|
||||
<div class="col-12 text-center">
|
||||
{{ partial "partials/list-img.html" (dict "thumbnail" $item.Params.Thumbnail "mode" $item.Params.colormode) }}
|
||||
{{ partial "partials/list-img.html" (dict "thumbnail" $thumbnail "mode" $item.Params.colormode) }}
|
||||
</div>
|
||||
<div class="col-12 p-3">
|
||||
{{ partial "partials/list-content.html" (dict "title" $item.Title "content" (or $item.Description $item.Content)) }}
|
||||
{{ partial "partials/list-content.html" (dict "title" $item.Title "content" (partial "utilities/GetDescription.html" $item)) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -93,14 +93,15 @@
|
||||
{{ $header := $item.Title }}
|
||||
{{ $body := $item.Content }}
|
||||
{{ $show := eq $index 0}}
|
||||
{{- $thumbnail := (or (and (reflect.IsMap $item.Params.Thumbnail) $item.Params.Thumbnail.url) $item.Params.Thumbnail) -}}
|
||||
<div class="tab-pane{{ if $show }} active{{ end }}" id="nav-{{ $id }}-{{ $index }}" role="tabpanel" aria-labelledby="{{ $id }}-btn-{{ $index }}" tabindex="0">
|
||||
{{- if eq $pane "persona" -}}
|
||||
{{- partial "assets/persona.html" (dict
|
||||
"title" $item.Title
|
||||
"class" $class
|
||||
"color" $color
|
||||
"content" (or $item.Description $item.Content)
|
||||
"thumbnail" $item.Params.Thumbnail
|
||||
"content" (partial "utilities/GetDescription.html" $item)
|
||||
"thumbnail" $thumbnail
|
||||
) -}}
|
||||
{{- else -}}
|
||||
{{- (or $item.Description $item.Content) -}}
|
||||
|
@@ -9,12 +9,24 @@
|
||||
{{- $isActive := hasPrefix $pageURL $menuURL -}}
|
||||
{{- $isAlias := $menu.Params.alias -}}
|
||||
{{- $isIcon := $menu.Params.icon -}}
|
||||
{{- $cue := .cue | default site.Params.main.externalLinks.cue -}}
|
||||
{{- $tab := .tab | default site.Params.main.externalLinks.tab -}}
|
||||
|
||||
{{- $url := urls.Parse $menuURL -}}
|
||||
{{- $baseURL := urls.Parse $.Site.Params.Baseurl -}}
|
||||
{{- $isExternal := ne $url.Host $baseURL.Host -}}
|
||||
{{- $externalHref := "" }}
|
||||
{{- if $isExternal }}{{ $externalHref = "target=\"_blank\" rel=\"noopener noreferrer\"" }}{{ end -}}
|
||||
{{- $suffix := "" }}
|
||||
|
||||
{{- if $isExternal }}
|
||||
{{- if $tab -}}
|
||||
{{ $externalHref = "target=\"_blank\" rel=\"noopener noreferrer\"" }}
|
||||
{{- end -}}
|
||||
|
||||
{{- if $cue -}}
|
||||
{{ $suffix = partial "assets/icon.html" (dict "icon" "fas up-right-from-square fa-2xs") }}
|
||||
{{- end -}}
|
||||
{{ end -}}
|
||||
|
||||
{{- $mainNav := urlize (lower $menu.Name) -}}
|
||||
{{- $childNav := "" -}}
|
||||
@@ -40,9 +52,14 @@
|
||||
{{ if $isIcon }}aria-label="{{ $menu.Name }}"{{ end }}
|
||||
data-nav="main" data-nav-main="{{ $mainNav }}"{{ with $childNav }} data-nav-child="{{ . }}"{{ end }}
|
||||
href="{{ $menuURL }}{{ $params | safeHTMLAttr }}"{{ with $externalHref }} {{ . | safeHTMLAttr }}{{ end }} {{ $button | safeHTMLAttr }}>
|
||||
|
||||
{{- with $menu.Pre }}{{ . }}{{ end -}}
|
||||
{{- with $menu.Pre }}
|
||||
{{ if hasPrefix . "<i" }}
|
||||
{{ . | safeHTML }}
|
||||
{{ else }}
|
||||
{{ partial "assets/icon.html" (dict "icon" . )}}
|
||||
{{ end }}
|
||||
{{ end -}}
|
||||
<span {{ if $isActive }} class="active"{{ end }}>{{ if not $isIcon }}{{ $menu.Name }}{{ end }}</span>
|
||||
{{- with $menu.Post }}{{ . }}{{ end -}}
|
||||
{{- if and $isExternal (not $isIcon)}} {{ partial "assets/icon.html" (dict "icon" "fas up-right-from-square fa-2xs") }}{{ end -}}
|
||||
{{- if not $isIcon }} {{ $suffix }}{{ end -}}
|
||||
</a>
|
||||
|
@@ -13,6 +13,7 @@
|
||||
"logo" Optional address of the logo image, defaults to the parameter "logo" set in the "main" section of
|
||||
the site's parameter configuration.
|
||||
"title" Optional brand title, displayed when the logo is not set. Defaults to the site's title.
|
||||
"class": Optional class attribute of the navbar container.
|
||||
-->
|
||||
|
||||
<!-- Inline partial to render the color mode switcher -->
|
||||
@@ -21,26 +22,26 @@
|
||||
{{- $collapsed := .collapsed -}}
|
||||
|
||||
<li class="nav-item dropdown {{ if $collapsed }}d-{{ $size }}-none{{ else }}d-none d-{{ $size }}-block{{ end }}">
|
||||
<a class="nav-link dropdown-toggle" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false" id="navbar-color-theme">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas sun theme-icon-active") }} {{ if $collapsed }} {{ T "colorMode" }} {{ end }}
|
||||
<a class="nav-link dropdown-toggle" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false" id="navbar-color-theme{{ if $collapsed }}-collapsed{{ end }}">
|
||||
<span class="theme-icon-active">{{- partial "assets/icon.html" (dict "icon" "fas sun fa-fw") }} {{ if $collapsed }} {{ T "colorMode" }} {{ end }}</span>
|
||||
<span class="d-md-none"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbar-color-theme">
|
||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbar-color-theme{{ if $collapsed }}-collapsed{{ end }}">
|
||||
<li>
|
||||
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="light" href="#!">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas sun theme-icon") }}
|
||||
<span class="theme-icon">{{- partial "assets/icon.html" (dict "icon" "fas sun fa-fw") }}</span>
|
||||
{{ T "colorLight" }}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="dark" href="#!">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas moon theme-icon") }}
|
||||
<span class="theme-icon">{{- partial "assets/icon.html" (dict "icon" "fas moon fa-fw") }}</span>
|
||||
{{ T "colorDark" }}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="auto" href="#!">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas circle-half-stroke theme-icon" ) }}
|
||||
<span class="theme-icon">{{- partial "assets/icon.html" (dict "icon" "fas circle-half-stroke fa-fw" ) }}</span>
|
||||
{{ T "colorAuto" }}
|
||||
</a>
|
||||
</li>
|
||||
@@ -73,7 +74,7 @@
|
||||
<a class="pe-5 dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}{{ if $active }} active{{ end }}{{ if $disabled }} disabled{{ end }}" href="{{ $url }}">{{ $item.label }}
|
||||
{{ if $item.latest }} ({{ T "latest" }}){{ end }}
|
||||
{{ if $active }}
|
||||
<span class="position-absolute end-0 me-3">{{- partial "assets/icon.html" (dict "icon" "fas check") }}</span>
|
||||
<span class="position-absolute end-0 me-3">{{- partial "assets/icon.html" (dict "icon" "fas check fa-fw") }}</span>
|
||||
{{ end }}
|
||||
</a>
|
||||
</li>
|
||||
@@ -93,6 +94,7 @@
|
||||
</li>
|
||||
{{- end -}}
|
||||
|
||||
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
|
||||
{{- $supportedFlags := slice "true" "false" -}}
|
||||
|
||||
{{- $id := printf "navbar-collapse-%d" 0 -}}
|
||||
@@ -105,11 +107,14 @@
|
||||
{{- errorf "partial [assets/navbar.html] - Missing value for param 'page'" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $menuName := "main" }}
|
||||
{{- with .menus }}{{ $menuName = .}}{{ end -}}
|
||||
{{- $defaultMenu := "main" }}
|
||||
{{- $menuName := $defaultMenu }}
|
||||
{{- with .menus }}{{ $menuName = . }}{{ end -}}
|
||||
{{- $menus := index site.Menus $menuName -}}
|
||||
{{- if or (ne (printf "%T" $menus) "navigation.Menu") (ne (index $menus 0).Menu $menuName) -}}
|
||||
{{- errorf "partial [assets/navbar.html] - Invalid value for param 'menus': %s" $menuName -}}
|
||||
{{- if ne $menuName $defaultMenu }}
|
||||
{{- errorf "partial [assets/navbar.html] - Invalid value for param 'menus': %s" $menuName -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $size := "md" -}}
|
||||
@@ -147,7 +152,7 @@
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $enableDarkMode := default true site.Params.main.enableDarkMode -}}
|
||||
{{- $enableDarkMode := default false site.Params.main.enableDarkMode -}}
|
||||
{{- with .mode -}}
|
||||
{{- $darkModeParam := . -}}
|
||||
{{- if in $supportedFlags $darkModeParam -}}
|
||||
@@ -181,7 +186,9 @@
|
||||
{{- if eq $color "black" }}{{ $theme = "dark" }}{{ end -}}
|
||||
{{- if eq $color "white" }}{{ $theme = "light" }}{{ end -}}
|
||||
|
||||
<div class="container-fluid {{ if $fixed }}fixed-top{{ end }} p-0"{{ with $theme }} data-bs-theme="{{ . }}"{{ end }}>
|
||||
{{- $class := .class -}}
|
||||
|
||||
<div class="container-fluid {{ if $fixed }}fixed-top{{ end }} p-0{{ with $class }} {{ . }}{{ end }}"{{ with $theme }} data-bs-theme="{{ . }}"{{ end }}>
|
||||
{{- partial "assets/page-alert.html" (dict "page" $page) -}}
|
||||
<nav class="navbar navbar-expand-{{ $size }} {{ with $color }}bg-{{ . }}{{ end }} p-4"{{ with $theme }} data-bs-theme="{{ . }}"{{ end }}>
|
||||
<div class="container-xxl p-0">
|
||||
@@ -189,12 +196,12 @@
|
||||
<div class="d-flex">
|
||||
{{- if $page.Scratch.Get "sidebar" -}}
|
||||
<button class="navbar-toggler fw-30 collapsed p-0 mx-auto" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvass-sidebar" aria-controls="offcanvass-sidebar" aria-label="{{ T "toggleSidebar" }}">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis") -}}
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis fa-fw") -}}
|
||||
</button>
|
||||
{{- else -}}
|
||||
<!-- Insert invisible sidebar toggler to center logo correctly on smaller screens -->
|
||||
<button class="navbar-toggler fw-30 collapsed p-0 mx-auto invisible" type="button">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis") -}}
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis fa-fw") -}}
|
||||
</button>
|
||||
{{- end -}}
|
||||
</div>
|
||||
@@ -202,7 +209,7 @@
|
||||
<!-- Insert the brand logo or name -->
|
||||
<a class="navbar-brand mx-auto" href="{{ site.Home.RelPermalink }}">
|
||||
{{- if $logo -}}
|
||||
<img src="{{ $logo }}" alt="{{ $title }} logo" height="30">
|
||||
<img src="{{if $absoluteURL }}{{ absURL $logo }}{{ else }}{{ $logo }}{{ end }}" alt="{{ $title }} logo" height="30">
|
||||
{{- else -}}
|
||||
<span class="fw-bold">{{ $title }}</span>
|
||||
{{- end -}}
|
||||
@@ -238,7 +245,7 @@
|
||||
{{- end -}}
|
||||
|
||||
<!-- Insert divider if applicable -->
|
||||
{{- if or $enableLanguage $enableVersions -}}
|
||||
{{- if and $menus (or $enableLanguage $enableVersions) -}}
|
||||
<li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $size }}-block">
|
||||
<div class="vr d-none d-md-flex h-100 mx-md-2"></div>
|
||||
</li>
|
||||
@@ -250,15 +257,15 @@
|
||||
{{- $currentLang := $page.Language.Lang -}}
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle d-{{ $size }}-none" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas globe") }} {{ T "languageSwitcherLabel" }}
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas globe fa-fw") }} {{ T "languageSwitcherLabel" }}
|
||||
</a>
|
||||
<a class="nav-link dropdown-toggle d-none d-{{ $size }}-block" href="#!" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas globe") }}
|
||||
{{- partial "assets/icon.html" (dict "icon" "fas globe fa-fw") }}
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end ">
|
||||
{{- if $page.IsTranslated -}}
|
||||
{{- range $page.AllTranslations -}}
|
||||
<li><a class="dropdown-item {{ if eq .Language.Lang $currentLang }}active{{ end }}" href="{{ .Permalink }}">{{ .Language.LanguageName }}</a></li>
|
||||
<li><a class="dropdown-item {{ if eq .Language.Lang $currentLang }}active{{ end }}" href="{{ .RelPermalink }}">{{ .Language.LanguageName }}</a></li>
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
{{- range site.Languages -}}
|
||||
|
@@ -41,22 +41,22 @@
|
||||
{{- with .First }}
|
||||
{{- if ne $currentPageNumber .PageNumber }}
|
||||
<li class="page-item">
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationFirst" }}" class="page-link" role="button"><span aria-hidden="true"><i class="fas fa-angle-double-left"></i></span></a>
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationFirst" }}" class="page-link" role="button"><span aria-hidden="true">{{ partial "assets/icon.html" (dict "icon" "fas angles-left") }}</span></a>
|
||||
</li>
|
||||
{{- else }}
|
||||
<li class="page-item disabled">
|
||||
<a aria-disabled="true" aria-label="{{ T "paginationFirst" }}" class="page-link" role="button" tabindex="-1"><span aria-hidden="true"><i class="fas fa-angle-double-left"></i></span></a>
|
||||
<a aria-disabled="true" aria-label="{{ T "paginationFirst" }}" class="page-link" role="button" tabindex="-1"><span aria-hidden="true">{{ partial "assets/icon.html" (dict "icon" "fas angles-left") }}</span></a>
|
||||
</li>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- with .Prev }}
|
||||
<li class="page-item">
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationPrevious" }}" class="page-link" role="button"><span aria-hidden="true"><i class="fas fa-angle-left"></i></span></a>
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationPrevious" }}" class="page-link" role="button"><span aria-hidden="true">{{ partial "assets/icon.html" (dict "icon" "fas angle-left") }}</span></a>
|
||||
</li>
|
||||
{{- else }}
|
||||
<li class="page-item disabled">
|
||||
<a aria-disabled="true" aria-label="{{ T "paginationPrevious" }}" class="page-link" role="button" tabindex="-1"><span aria-hidden="true"><i class="fas fa-angle-left"></i></span></a>
|
||||
<a aria-disabled="true" aria-label="{{ T "paginationPrevious" }}" class="page-link" role="button" tabindex="-1"><span aria-hidden="true">{{ partial "assets/icon.html" (dict "icon" "fas angle-left") }}</span></a>
|
||||
</li>
|
||||
{{- end }}
|
||||
|
||||
@@ -81,22 +81,22 @@
|
||||
|
||||
{{- with .Next }}
|
||||
<li class="page-item">
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationNext" }}" class="page-link" role="button"><span aria-hidden="true"><i class="fas fa-angle-right"></i></span></a>
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationNext" }}" class="page-link" role="button"><span aria-hidden="true">{{ partial "assets/icon.html" (dict "icon" "fas angle-right") }}</span></a>
|
||||
</li>
|
||||
{{- else }}
|
||||
<li class="page-item disabled">
|
||||
<a aria-disabled="true" aria-label="{{ T "paginationNext" }}" class="page-link" role="button" tabindex="-1"><span aria-hidden="true"><i class="fas fa-angle-right"></i></span></a>
|
||||
<a aria-disabled="true" aria-label="{{ T "paginationNext" }}" class="page-link" role="button" tabindex="-1"><span aria-hidden="true">{{ partial "assets/icon.html" (dict "icon" "fas angle-right") }}</span></a>
|
||||
</li>
|
||||
{{- end }}
|
||||
|
||||
{{- with .Last }}
|
||||
{{- if ne $currentPageNumber .PageNumber }}
|
||||
<li class="page-item">
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationLast" }}" class="page-link" role="button"><span aria-hidden="true"><i class="fas fa-angle-double-right"></i></span></a>
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationLast" }}" class="page-link" role="button"><span aria-hidden="true">{{ partial "assets/icon.html" (dict "icon" "fas angles-right") }}</span></a>
|
||||
</li>
|
||||
{{- else }}
|
||||
<li class="page-item disabled">
|
||||
<a aria-disabled="true" aria-label="{{ T "paginationLast" }}" class="page-link" role="button" tabindex="-1"><span aria-hidden="true"><i class="fas fa-angle-double-right"></i></span></a>
|
||||
<a aria-disabled="true" aria-label="{{ T "paginationLast" }}" class="page-link" role="button" tabindex="-1"><span aria-hidden="true">{{ partial "assets/icon.html" (dict "icon" "fas angles-right") }}</span></a>
|
||||
</li>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -112,14 +112,14 @@
|
||||
{{- with .First }}
|
||||
{{- if ne $currentPageNumber .PageNumber }}
|
||||
<li class="page-item">
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationFirst" }}" class="page-link" role="button"><span aria-hidden="true"><i class="fas fa-angle-double-left"></i></span></a>
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationFirst" }}" class="page-link" role="button"><span aria-hidden="true">{{ partial "assets/icon.html" (dict "icon" "fas angles-left") }}</span></a>
|
||||
</li>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- with .Prev }}
|
||||
<li class="page-item">
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationPrevious" }}" class="page-link" role="button"><span aria-hidden="true"><i class="fas fa-angle-left"></i></span></a>
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationPrevious" }}" class="page-link" role="button"><span aria-hidden="true">{{ partial "assets/icon.html" (dict "icon" "fas angle-left") }}</span></a>
|
||||
</li>
|
||||
{{- end }}
|
||||
|
||||
@@ -144,14 +144,14 @@
|
||||
|
||||
{{- with .Next }}
|
||||
<li class="page-item">
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationNext" }}" class="page-link" role="button"><span aria-hidden="true"><i class="fas fa-angle-right"></i></span></a>
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationNext" }}" class="page-link" role="button"><span aria-hidden="true">{{ partial "assets/icon.html" (dict "icon" "fas angle-right") }}</span></a>
|
||||
</li>
|
||||
{{- end }}
|
||||
|
||||
{{- with .Last }}
|
||||
{{- if ne $currentPageNumber .PageNumber }}
|
||||
<li class="page-item">
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationLast" }}" class="page-link" role="button"><span aria-hidden="true"><i class="fas fa-angle-double-right"></i></span></a>
|
||||
<a href="{{ .URL }}" aria-label="{{ T "paginationLast" }}" class="page-link" role="button"><span aria-hidden="true">{{ partial "assets/icon.html" (dict "icon" "fas angles-right") }}</span></a>
|
||||
</li>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@@ -49,9 +49,9 @@
|
||||
|
||||
{{- with $page -}}
|
||||
{{- if not $title }}{{ $title = .Title }}{{ end -}}
|
||||
{{- if not $href }}{{ $href = .Permalink }}{{ end -}}
|
||||
{{- if not $href }}{{ $href = .RelPermalink }}{{ end -}}
|
||||
{{- if not $content }}{{ $content = .Content }}{{ end -}}
|
||||
{{- if not $thumbnail }}{{ $thumbnail = .Params.thumbnail }}{{ end -}}
|
||||
{{- if not $thumbnail }}{{ $thumbnail = (or (and (reflect.IsMap .Params.Thumbnail) .Params.Thumbnail.url) .Params.Thumbnail) }}{{ end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $class := .class -}}
|
||||
|
@@ -1,6 +0,0 @@
|
||||
<div class="d-flex ms-md-3">
|
||||
<form class="search position-relative flex-grow-1 me-auto">
|
||||
<input id="search" class="form-control is-search" type="search" placeholder="{{ T "ui_search" }}" aria-label="{{ T "ui_search" }}" autocomplete="off">
|
||||
<div id="suggestions" class="shadow bg-body rounded d-none" data-no-results="{{ T "ui_no_results" }}"></div>
|
||||
</form>
|
||||
</div>
|
@@ -24,7 +24,7 @@
|
||||
{{- $padding := "0" -}}
|
||||
{{- $header := "full" -}}
|
||||
{{- $footer := "none" -}}
|
||||
{{- $style := "" -}}
|
||||
{{- $style := "border-0 card-zoom" -}}
|
||||
{{- $homepage := 3 -}}
|
||||
{{- $background := "" -}}
|
||||
{{- $layout := "card" -}}
|
||||
@@ -87,7 +87,6 @@
|
||||
{{- $paginate = false -}}
|
||||
{{- $max = int (math.Min $homepage $max) -}}
|
||||
{{ end -}}
|
||||
{{- $cols = int (math.Min $cols $max) -}}
|
||||
|
||||
{{- $params := (dict
|
||||
"page" $page
|
||||
|
@@ -23,6 +23,10 @@
|
||||
{{- end -}}
|
||||
{{ partial "assets/button.html" (dict "toast" $target "clipboard" $clipboard "href" $url "icon" (printf "%s fa-fw" $item.icon) "class" "btn-social p-0" )}}
|
||||
{{- end -}}
|
||||
{{ if .Site.Params.sharing.webshare }}
|
||||
{{ $attr := dict "data-sharing-title" .Title "data-sharing-description" .Description "data-sharing-url" .Permalink }}
|
||||
{{ partial "assets/button.html" (dict "href" "#!" "icon" "fas share-nodes fa-fw" "id" "btn-webshare" "class" "btn-social p-0" "attributes" $attr )}}
|
||||
{{- end -}}
|
||||
</div>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
@@ -3,6 +3,7 @@
|
||||
"id" Optional id of the toast message, defaults to "toast-message-0".
|
||||
"header": Optional header of the toast message.
|
||||
"message": Required toast message.
|
||||
"class": Optional class attribute of the toast element.
|
||||
-->
|
||||
|
||||
{{- $id := printf "toast-message-%d" 0 -}}
|
||||
@@ -19,7 +20,9 @@
|
||||
{{- errorf "partial [assets/toast.html] - Missing message text" -}}
|
||||
{{ end -}}
|
||||
|
||||
<div id="{{ $id }}" class="toast" role="alert" aria-live="assertive" aria-atomic="true">
|
||||
{{- $class := .class -}}
|
||||
|
||||
<div id="{{ $id }}" class="toast{{ with $class }} {{ . }}{{ end }}" role="alert" aria-live="assertive" aria-atomic="true">
|
||||
<div class="toast-header">
|
||||
{{ with $header }}<strong class="me-auto">{{ . }}</strong>{{ end }}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
|
||||
|
@@ -1,9 +1,13 @@
|
||||
<footer class="container-fluid text-center p-3">
|
||||
<div class="container-xxl text-center">
|
||||
<small class="text-secondary">
|
||||
{{- $copyright := printf "%s © %s %s All rights reserved." (i18n "copyright") (dateFormat "2006" now) .Site.Title }}
|
||||
{{- $copyright := printf "%s © %s %s %s." (T "copyright") (dateFormat "2006" now) .Site.Title (T "rights") }}
|
||||
{{ cond (gt (len .Site.Copyright) 0) .Site.Copyright $copyright }}
|
||||
{{ .Site.Params.footer.license | safeHTML }}
|
||||
{{ if .Site.Params.main.endorse }}
|
||||
{{ $link := partial "utilities/link" (dict "destination" (index site.Params.links "hinode") "text" "Hinode" "class" "link-secondary") }}
|
||||
{{ T "poweredBy" $link | safeHTML }}
|
||||
{{ end }}
|
||||
</small>
|
||||
</div>
|
||||
</footer>
|
@@ -1,28 +1,34 @@
|
||||
{{ $filename := .filename | default "js/main.bundle.js" -}}
|
||||
{{ $match := .match | default "{js/*.js,js/vendor/**.js}" }}
|
||||
{{ $page := .page }}
|
||||
{{ $header := .header }}
|
||||
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
|
||||
{{- $filename := .filename | default "js/main.bundle.js" -}}
|
||||
{{- $match := .match | default "{js/*.js,js/vendor/**.js}" -}}
|
||||
{{- $page := .page -}}
|
||||
{{- $header := .header -}}
|
||||
{{- $core := .core | default false -}}
|
||||
{{- $skipTemplate := .skipTemplate | default false -}}
|
||||
|
||||
{{ $files := slice -}}
|
||||
{{ range $index, $file := resources.Match $match -}}
|
||||
{{ $files = $files | append $file -}}
|
||||
{{ end -}}
|
||||
{{- $modules := "" -}}
|
||||
{{ if $core }}
|
||||
{{- $modules = site.Params.modules.core -}}
|
||||
{{- end -}}
|
||||
|
||||
{{ if gt (len $files) 0 }}
|
||||
{{ $bundle := $files | resources.Concat $filename -}}
|
||||
{{ $js := $bundle | resources.ExecuteAsTemplate $filename $page -}}
|
||||
{{- $bundle := partial "utilities/bundle" (dict "match" $match "filename" $filename "modules" $modules "basepath" "js/modules" "all" true "debugging" site.Params.debugging.showJS) -}}
|
||||
{{- $js := $bundle -}}
|
||||
{{- if not $skipTemplate -}}
|
||||
{{- $js = $bundle | resources.ExecuteAsTemplate $filename $page -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if and (not site.IsServer) $header -}}
|
||||
{{- $pc := site.Config.Privacy.GoogleAnalytics -}}
|
||||
{{- if and (not $pc.Disable) (hasPrefix site.GoogleAnalytics "G-") }}
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.GoogleAnalytics }}"></script>
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
|
||||
{{- if and (not site.IsServer) $header -}}
|
||||
{{- $pc := site.Config.Privacy.GoogleAnalytics -}}
|
||||
{{- if and (not $pc.Disable) (hasPrefix site.GoogleAnalytics "G-") }}
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.GoogleAnalytics }}"></script>
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
|
||||
{{- if gt (len $js.Content) 0 -}}
|
||||
{{- if not hugo.IsProduction -}}
|
||||
<script src="{{ $js.Permalink }}"></script>
|
||||
<script src="{{ if $absoluteURL }}{{ $js.Permalink }}{{ else }}{{ $js.RelPermalink }}{{ end }}"></script>
|
||||
{{ else -}}
|
||||
{{ $js = $js | minify | fingerprint -}}
|
||||
<script src="{{ $js.Permalink }}" integrity="{{ $js.Data.Integrity }}" crossorigin="anonymous"></script>
|
||||
<script src="{{ if $absoluteURL }}{{ $js.Permalink }}{{ else }}{{ $js.RelPermalink }}{{ end }}" integrity="{{ $js.Data.Integrity }}" crossorigin="anonymous"></script>
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user