mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 18:14:28 +00:00
Compare commits
360 Commits
v0.19.0-be
...
v0.21.0-be
Author | SHA1 | Date | |
---|---|---|---|
![]() |
bcf22f193c | ||
![]() |
6272f08d3a | ||
![]() |
14cf7a3f6f | ||
![]() |
51a92ecbe7 | ||
![]() |
567235ff3c | ||
![]() |
3a7f30474d | ||
![]() |
2f8a7c412e | ||
![]() |
f338da681b | ||
![]() |
80a2a2da3b | ||
![]() |
1b660ebd80 | ||
![]() |
43b9854190 | ||
![]() |
3779237f6a | ||
![]() |
e94d9b3b1a | ||
![]() |
8ec4bcfa5e | ||
![]() |
962835fc80 | ||
![]() |
cdd7e63e46 | ||
![]() |
1ae4678cdb | ||
![]() |
ec6dcbe049 | ||
![]() |
58e609c6f3 | ||
![]() |
128e52266f | ||
![]() |
576e50822f | ||
![]() |
5ff61d44d7 | ||
![]() |
7b1b2ecb42 | ||
![]() |
70b09a5265 | ||
![]() |
54ec23c85a | ||
![]() |
d97b88bcdd | ||
![]() |
6f5c7626c8 | ||
![]() |
0e1525ca7f | ||
![]() |
f6b520fb30 | ||
![]() |
a1849663cf | ||
![]() |
d4d0b075ed | ||
![]() |
e90bb990e8 | ||
![]() |
a9808cab34 | ||
![]() |
a40bb78a07 | ||
![]() |
8111ee0c76 | ||
![]() |
7191b57318 | ||
![]() |
f44670d2ca | ||
![]() |
9671f0c2eb | ||
![]() |
6ad6eef347 | ||
![]() |
43ed4d411e | ||
![]() |
7c8d5453cc | ||
![]() |
f4a40367f6 | ||
![]() |
e786ef279a | ||
![]() |
a6684e1bb5 | ||
![]() |
4fbe389245 | ||
![]() |
04b0af5d58 | ||
![]() |
7f797af3eb | ||
![]() |
4a3a0fb0bb | ||
![]() |
f9e9eec611 | ||
![]() |
cb71742a91 | ||
![]() |
638c7054d0 | ||
![]() |
fb21633f8c | ||
![]() |
9bb7cf1825 | ||
![]() |
e00ad4498b | ||
![]() |
a0f7e62616 | ||
![]() |
11653015ab | ||
![]() |
e6a37cab0f | ||
![]() |
7fcc6713a4 | ||
![]() |
5694938b81 | ||
![]() |
b6d3c17a87 | ||
![]() |
40ba175409 | ||
![]() |
bcc98d507b | ||
![]() |
ce1c32c930 | ||
![]() |
08d462f698 | ||
![]() |
d32e615837 | ||
![]() |
83368cdf3a | ||
![]() |
45525a6e3c | ||
![]() |
75a082c8df | ||
![]() |
d3d4d99fe4 | ||
![]() |
f05764d4a8 | ||
![]() |
a7822fcd55 | ||
![]() |
f0a0d2022a | ||
![]() |
2ccc85926e | ||
![]() |
b9699ab8bc | ||
![]() |
02ca7271fc | ||
![]() |
9dbe4bc8a1 | ||
![]() |
2ca20096a0 | ||
![]() |
1d7e8e3adb | ||
![]() |
88c897e09c | ||
![]() |
f1a1ec128f | ||
![]() |
b0bc03f251 | ||
![]() |
0f57e9ad1d | ||
![]() |
8b27c8986b | ||
![]() |
1210117922 | ||
![]() |
3a1e310e22 | ||
![]() |
918c043f10 | ||
![]() |
fbfb02d7ca | ||
![]() |
3026837946 | ||
![]() |
f7ccdad1df | ||
![]() |
4b4f70e6e0 | ||
![]() |
c28e9861ba | ||
![]() |
15c2b5466e | ||
![]() |
58bcdff782 | ||
![]() |
a08cdeeeb6 | ||
![]() |
9be2f7712d | ||
![]() |
f59e34758c | ||
![]() |
fc3846424d | ||
![]() |
11a0e4943a | ||
![]() |
5d95eb0420 | ||
![]() |
ef0b797e60 | ||
![]() |
dfa34a1838 | ||
![]() |
d58a32e283 | ||
![]() |
5fa1abe7bc | ||
![]() |
251dec084c | ||
![]() |
52ef24a5f6 | ||
![]() |
0a7fc04fa5 | ||
![]() |
612dbcc868 | ||
![]() |
850a92bee9 | ||
![]() |
5664e98d89 | ||
![]() |
1bd6f0f04e | ||
![]() |
58e3e0f53e | ||
![]() |
a3d8585276 | ||
![]() |
882269bf72 | ||
![]() |
c71e21ca0b | ||
![]() |
890ab25210 | ||
![]() |
81687c19ef | ||
![]() |
c98165c61e | ||
![]() |
0ee3ddef1d | ||
![]() |
06af1481e6 | ||
![]() |
740108432b | ||
![]() |
331959e3da | ||
![]() |
679e49e55f | ||
![]() |
5ae69f2466 | ||
![]() |
15c7d53acc | ||
![]() |
a1d93fca52 | ||
![]() |
56af6dda1d | ||
![]() |
7c62e115c3 | ||
![]() |
5f13e2d7ab | ||
![]() |
0186b3db8b | ||
![]() |
db4e353d8a | ||
![]() |
30468c2dab | ||
![]() |
3afe0a8a99 | ||
![]() |
fc626dc4c0 | ||
![]() |
7e4f582445 | ||
![]() |
f740443f73 | ||
![]() |
d43da60e8e | ||
![]() |
d29759da9b | ||
![]() |
4b3a2e441b | ||
![]() |
a8b8d07bf4 | ||
![]() |
34410446f3 | ||
![]() |
13098a351d | ||
![]() |
d071fa03a6 | ||
![]() |
6ff65c37ac | ||
![]() |
e03396490e | ||
![]() |
ad453b6400 | ||
![]() |
500a572a9c | ||
![]() |
f3bffcb5fb | ||
![]() |
30305ffd1c | ||
![]() |
62f2e33b64 | ||
![]() |
24d655ec76 | ||
![]() |
7668f795da | ||
![]() |
96a5853333 | ||
![]() |
6b767410dc | ||
![]() |
3f8dd1d457 | ||
![]() |
8cb501186a | ||
![]() |
bdfe42b22f | ||
![]() |
37c4fbdec0 | ||
![]() |
9af109d23d | ||
![]() |
3322e3337a | ||
![]() |
6ede71d164 | ||
![]() |
da2e41d59d | ||
![]() |
c08af69752 | ||
![]() |
1a3b438bfb | ||
![]() |
f15ee8cc5b | ||
![]() |
d65897ad09 | ||
![]() |
607f9690cc | ||
![]() |
3cbdc511c8 | ||
![]() |
e21ab89f89 | ||
![]() |
c50e0153f6 | ||
![]() |
bd3c2f9d78 | ||
![]() |
57bcc6d1ac | ||
![]() |
8331cb9f38 | ||
![]() |
1ef0f32ad9 | ||
![]() |
c9cab7f43d | ||
![]() |
73d8efcea7 | ||
![]() |
e9c45a45d7 | ||
![]() |
5b94307559 | ||
![]() |
ee03b65f2d | ||
![]() |
7920512f2b | ||
![]() |
928e355618 | ||
![]() |
efac0a7026 | ||
![]() |
42d10ed012 | ||
![]() |
b0655adff4 | ||
![]() |
c1b025d04b | ||
![]() |
3cf5884e10 | ||
![]() |
ce0acb9547 | ||
![]() |
777c54f6a1 | ||
![]() |
8e17d093c7 | ||
![]() |
33ba9d6e59 | ||
![]() |
f6a1751efe | ||
![]() |
00372947fa | ||
![]() |
c86167851f | ||
![]() |
6a90952319 | ||
![]() |
02f135eec3 | ||
![]() |
daa9bcc471 | ||
![]() |
5072fd6a07 | ||
![]() |
20f5868759 | ||
![]() |
db0297e898 | ||
![]() |
1efb03f3be | ||
![]() |
4e00d967a6 | ||
![]() |
266ca8db68 | ||
![]() |
2b976a3eec | ||
![]() |
962429ad33 | ||
![]() |
5d5c645308 | ||
![]() |
f1c7792f87 | ||
![]() |
fe86a21303 | ||
![]() |
33cccd76b3 | ||
![]() |
1f90c552a7 | ||
![]() |
614e789ce4 | ||
![]() |
07f2f82675 | ||
![]() |
d28d2be7c5 | ||
![]() |
a3250b31c2 | ||
![]() |
eae97e2017 | ||
![]() |
7983a52de9 | ||
![]() |
92b1b81b25 | ||
![]() |
f91fe303fb | ||
![]() |
529b0db71d | ||
![]() |
bd142ac66d | ||
![]() |
3749937799 | ||
![]() |
16d309cc34 | ||
![]() |
5315bc950a | ||
![]() |
2dbf6a9faf | ||
![]() |
a67e38bd1b | ||
![]() |
4688176216 | ||
![]() |
dbee9aafd7 | ||
![]() |
8c20617b1a | ||
![]() |
9e2ed6480d | ||
![]() |
7ef1b1aba9 | ||
![]() |
b74071d4cf | ||
![]() |
dc7578a5c3 | ||
![]() |
2227cf5fe2 | ||
![]() |
1296595ff7 | ||
![]() |
94f0b7599d | ||
![]() |
481d3099eb | ||
![]() |
d9a718d934 | ||
![]() |
e396bcce82 | ||
![]() |
b80b45f126 | ||
![]() |
b9a9a84982 | ||
![]() |
32a582dc66 | ||
![]() |
ce7362a6f5 | ||
![]() |
c3541f0368 | ||
![]() |
fa9da5147d | ||
![]() |
9905581b63 | ||
![]() |
4fe871d5c1 | ||
![]() |
4e5e39624b | ||
![]() |
7174c8ac39 | ||
![]() |
37c26de1ce | ||
![]() |
a56030eb53 | ||
![]() |
686a54b666 | ||
![]() |
3f3c19aeaa | ||
![]() |
0ff114b51d | ||
![]() |
f8deb13215 | ||
![]() |
b4669878a6 | ||
![]() |
68210961be | ||
![]() |
6af0d9b062 | ||
![]() |
ad401a8747 | ||
![]() |
e0ca123aa2 | ||
![]() |
ef3636befe | ||
![]() |
5635f895df | ||
![]() |
779f9b11a7 | ||
![]() |
b0b8e9d684 | ||
![]() |
b4f7163913 | ||
![]() |
6ef4738619 | ||
![]() |
333e4c3e07 | ||
![]() |
705900dd27 | ||
![]() |
363b6293af | ||
![]() |
97ef22d3fb | ||
![]() |
f7fa573347 | ||
![]() |
971b61fe8a | ||
![]() |
303a611913 | ||
![]() |
066a9f1722 | ||
![]() |
ac5cddf448 | ||
![]() |
d6bea30b24 | ||
![]() |
ac05154eec | ||
![]() |
ff579b0cfc | ||
![]() |
13ede1b2a4 | ||
![]() |
51c7706af2 | ||
![]() |
5a3c2c298b | ||
![]() |
608e8609c6 | ||
![]() |
60edf6d444 | ||
![]() |
28c79f30a2 | ||
![]() |
89fcd7413f | ||
![]() |
5741027a54 | ||
![]() |
6598ca5335 | ||
![]() |
5024bac01e | ||
![]() |
499a481baa | ||
![]() |
7d4ab6ff58 | ||
![]() |
9c93d5e336 | ||
![]() |
19af20457e | ||
![]() |
1cdc165b1c | ||
![]() |
ede8fe8066 | ||
![]() |
51046d9646 | ||
![]() |
f2fd933f50 | ||
![]() |
8d16d50171 | ||
![]() |
3e3e2486ee | ||
![]() |
780707d821 | ||
![]() |
8ac0f752ba | ||
![]() |
180641a72b | ||
![]() |
75126f27ed | ||
![]() |
df683a3022 | ||
![]() |
61373259e9 | ||
![]() |
481dffd8b6 | ||
![]() |
80a957d261 | ||
![]() |
9df3b0f163 | ||
![]() |
284cc53308 | ||
![]() |
4c7075fdb8 | ||
![]() |
5d5a21ca4e | ||
![]() |
9e6f14ed47 | ||
![]() |
c61c770c3e | ||
![]() |
9595892444 | ||
![]() |
8c7867e14a | ||
![]() |
a58b0dae6b | ||
![]() |
4385ef9f87 | ||
![]() |
8f9ed014f2 | ||
![]() |
2f0ce05789 | ||
![]() |
6d700e6819 | ||
![]() |
46c5ec3b44 | ||
![]() |
de8d450a05 | ||
![]() |
56f74e03ba | ||
![]() |
0ce037675b | ||
![]() |
aa472e6ffa | ||
![]() |
f05b45af02 | ||
![]() |
69b4f6a4ca | ||
![]() |
484d540ecb | ||
![]() |
bb542efaa8 | ||
![]() |
49ac691b3e | ||
![]() |
95d757f826 | ||
![]() |
c1fc156d75 | ||
![]() |
35a5a25150 | ||
![]() |
9547ba316e | ||
![]() |
0d48dec518 | ||
![]() |
f4852a4bdb | ||
![]() |
a7d515e76a | ||
![]() |
37f6acc984 | ||
![]() |
c87bd75334 | ||
![]() |
77ffbb49a7 | ||
![]() |
64533e5dbc | ||
![]() |
d42b980496 | ||
![]() |
2b84def4d8 | ||
![]() |
7ba75a04ad | ||
![]() |
98b88a74ae | ||
![]() |
31d98ef263 | ||
![]() |
3f34ae2ab0 | ||
![]() |
d8b52d8772 | ||
![]() |
103fa52511 | ||
![]() |
cdb0a8e685 | ||
![]() |
6b217d6c02 | ||
![]() |
490b0a32b2 | ||
![]() |
c0684f4486 | ||
![]() |
988c8dcb08 | ||
![]() |
a1251de4e8 | ||
![]() |
a64e4f1d0d | ||
![]() |
72f13a2b66 | ||
![]() |
a587119310 | ||
![]() |
12e29f944a | ||
![]() |
19861ce3d4 | ||
![]() |
d8647e4f16 | ||
![]() |
60e9abecfe | ||
![]() |
1b45d2b564 | ||
![]() |
25d62a4755 |
2
.github/release.yml
vendored
2
.github/release.yml
vendored
@@ -14,7 +14,7 @@ changelog:
|
|||||||
labels:
|
labels:
|
||||||
- Semver-Minor
|
- Semver-Minor
|
||||||
- enhancement
|
- enhancement
|
||||||
- title: 🐛 Bug fixes
|
- title: 🐛 Bug Fixes
|
||||||
labels:
|
labels:
|
||||||
- fix
|
- fix
|
||||||
- bugfix
|
- bugfix
|
||||||
|
13
.github/workflows/lint-build.yml
vendored
13
.github/workflows/lint-build.yml
vendored
@@ -43,7 +43,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os: [macos-latest, windows-latest, ubuntu-latest]
|
os: [macos-latest, windows-latest, ubuntu-latest]
|
||||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||||
node-version: [16.x, 18.x, 20.x]
|
node-version: [18.x, 20.x]
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
@@ -58,6 +58,17 @@ jobs:
|
|||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
cache-dependency-path: '**/package-lock.json'
|
cache-dependency-path: '**/package-lock.json'
|
||||||
|
|
||||||
|
- name: Install Dart Sass
|
||||||
|
run: |
|
||||||
|
if [ "$RUNNER_OS" == "Linux" ]; then
|
||||||
|
sudo snap install dart-sass
|
||||||
|
elif [ "$RUNNER_OS" == "macOS" ]; then
|
||||||
|
brew install sass/sass/sass
|
||||||
|
elif [ "$RUNNER_OS" == "Windows" ]; then
|
||||||
|
choco install sass
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
|
|
||||||
# [24/AUG/23] Adjusted from npm ci for non-macOS to prevent EBADPLATFORM error due to fsevents
|
# [24/AUG/23] Adjusted from npm ci for non-macOS to prevent EBADPLATFORM error due to fsevents
|
||||||
- name: Perform clean install of npm
|
- name: Perform clean install of npm
|
||||||
run: |
|
run: |
|
||||||
|
@@ -3,5 +3,6 @@ assets/scss/components/_syntax-dark.scss
|
|||||||
assets/scss/components/_syntax-light.scss
|
assets/scss/components/_syntax-light.scss
|
||||||
assets/scss/vendor
|
assets/scss/vendor
|
||||||
assets/scss/theme/fonts.scss
|
assets/scss/theme/fonts.scss
|
||||||
|
assets/scss/app-dart.scss
|
||||||
assets/scss/app.scss
|
assets/scss/app.scss
|
||||||
node_modules
|
node_modules
|
||||||
|
57
assets/scss/app-dart.scss
Normal file
57
assets/scss/app-dart.scss
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
@use "sass:meta";
|
||||||
|
|
||||||
|
// Define template variables
|
||||||
|
@use "hugo:vars" as h; // note: modified for dart-sass
|
||||||
|
|
||||||
|
// Include default variable overrides
|
||||||
|
@import "common/variables-dart.scss"; // note: modified for dart-sass
|
||||||
|
@import "common/icons.scss";
|
||||||
|
|
||||||
|
// Import Bootstrap configuration (mounted by core Bootstrap module)
|
||||||
|
@import "bootstrap-dart.scss"; // note: modified for dart-sass
|
||||||
|
|
||||||
|
// Include dark mode overrides
|
||||||
|
@import "common/variables-dark.scss";
|
||||||
|
|
||||||
|
// Import Hinode theme styles
|
||||||
|
@import "components/abbr.scss";
|
||||||
|
@import "components/alert.scss";
|
||||||
|
@import "components/blockquote.scss";
|
||||||
|
@import "components/breadcrumb.scss";
|
||||||
|
@import "components/button.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/footer.scss";
|
||||||
|
@import "components/navbar.scss";
|
||||||
|
@import "components/img.scss";
|
||||||
|
@import "components/pagination.scss";
|
||||||
|
@import "components/persona.scss";
|
||||||
|
@import "components/popover.scss";
|
||||||
|
@import "components/sidebar.scss";
|
||||||
|
@import "components/syntax-dart.scss"; // note: modified for dart-sass
|
||||||
|
@import "components/table.scss";
|
||||||
|
@import "components/timeline.scss";
|
||||||
|
@import "components/toc.scss";
|
||||||
|
@import "components/vimeo.scss";
|
||||||
|
@import "common/animation.scss";
|
||||||
|
@import "common/styles.scss";
|
||||||
|
@import "layouts/reboot.scss";
|
||||||
|
@import "layouts/type.scss";
|
||||||
|
@import "common/export.scss";
|
||||||
|
@import "helpers/colored-links.scss";
|
||||||
|
@import "helpers/display.scss";
|
||||||
|
|
||||||
|
// note: modified for dart-sass
|
||||||
|
@if h.$import-fonts {
|
||||||
|
@include meta.load-css(theme/fonts);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Import theme placeholder
|
||||||
|
@import "theme/theme.scss";
|
||||||
|
|
||||||
|
// Import Bootstrap utilities API (mounted by core Bootstrap module)
|
||||||
|
@import "modules/bootstrap/utilities/api";
|
@@ -12,10 +12,11 @@
|
|||||||
@import "common/variables-dark.scss";
|
@import "common/variables-dark.scss";
|
||||||
|
|
||||||
// Import Hinode theme styles
|
// Import Hinode theme styles
|
||||||
|
@import "components/abbr.scss";
|
||||||
@import "components/alert.scss";
|
@import "components/alert.scss";
|
||||||
@import "components/blockquote.scss";
|
@import "components/blockquote.scss";
|
||||||
@import "components/breadcrumb.scss";
|
@import "components/breadcrumb.scss";
|
||||||
@import "components/buttons.scss";
|
@import "components/button.scss";
|
||||||
@import "components/card.scss";
|
@import "components/card.scss";
|
||||||
@import "components/carousel.scss";
|
@import "components/carousel.scss";
|
||||||
@import "components/clipboard.scss";
|
@import "components/clipboard.scss";
|
||||||
@@ -30,6 +31,7 @@
|
|||||||
@import "components/popover.scss";
|
@import "components/popover.scss";
|
||||||
@import "components/sidebar.scss";
|
@import "components/sidebar.scss";
|
||||||
@import "components/syntax.scss";
|
@import "components/syntax.scss";
|
||||||
|
@import "components/table.scss";
|
||||||
@import "components/timeline.scss";
|
@import "components/timeline.scss";
|
||||||
@import "components/toc.scss";
|
@import "components/toc.scss";
|
||||||
@import "components/vimeo.scss";
|
@import "components/vimeo.scss";
|
||||||
|
@@ -15,6 +15,34 @@ a:active {
|
|||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.fullcover {
|
||||||
|
--navbar-height: #{$navbar-height};
|
||||||
|
|
||||||
|
min-height: calc(100vh - var(--navbar-height));
|
||||||
|
}
|
||||||
|
|
||||||
|
.fullscreen {
|
||||||
|
--navbar-offset: #{$navbar-offset};
|
||||||
|
|
||||||
|
min-height: calc(100vh - var(--navbar-offset));
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-content {
|
||||||
|
margin-top: $navbar-offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
$utilities: map-merge(
|
||||||
|
$utilities,
|
||||||
|
(
|
||||||
|
"cursor": (
|
||||||
|
property: margin-left margin-right,
|
||||||
|
class: mx,
|
||||||
|
responsive: true,
|
||||||
|
values: auto 0,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
.tickmark li::marker {
|
.tickmark li::marker {
|
||||||
content: "✓ ";
|
content: "✓ ";
|
||||||
}
|
}
|
||||||
|
43
assets/scss/common/_variables-dart.scss
Normal file
43
assets/scss/common/_variables-dart.scss
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
// Bootstrap variables overrides for theme
|
||||||
|
$enable-negative-margins: true;
|
||||||
|
$enable-important-utilities: true !default;
|
||||||
|
|
||||||
|
// Remove the border from the focused navigation toggler
|
||||||
|
$navbar-toggler-focus-width: 0 !default;
|
||||||
|
|
||||||
|
$font-family-sans-serif: h.$theme-font, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
|
||||||
|
$font-size-base: h.$font-size-base !default;
|
||||||
|
$headings-font-weight: 600 !default;
|
||||||
|
$font-weight-lighter: lighter !default;
|
||||||
|
$font-weight-light: 200 !default;
|
||||||
|
$font-weight-normal: 300 !default;
|
||||||
|
$font-weight-bold: 600 !default;
|
||||||
|
$font-weight-bolder: bolder !default;
|
||||||
|
|
||||||
|
strong {
|
||||||
|
font-weight: 600 if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
$navbar-height: h.$navbar-height;
|
||||||
|
$navbar-offset: h.$navbar-offset;
|
||||||
|
$primary: h.$primary;
|
||||||
|
$secondary: h.$secondary;
|
||||||
|
$success: h.$success;
|
||||||
|
$info: h.$info;
|
||||||
|
$warning: h.$warning;
|
||||||
|
$danger: h.$danger;
|
||||||
|
$light: h.$light;
|
||||||
|
$dark: h.$dark;
|
||||||
|
|
||||||
|
$black: #000 !default;
|
||||||
|
$btn-toggle-color: $black !default;
|
||||||
|
|
||||||
|
$carousel-dark-indicator-active-bg: #fff !default;
|
||||||
|
$carousel-dark-caption-color: #fff !default;
|
||||||
|
$carousel-dark-control-icon-filter: invert(0) grayscale(100) !default;
|
||||||
|
|
||||||
|
$primary-text-emphasis-dark: mix(white, h.$primary, h.$dark-mode-tint) !default;
|
||||||
|
$secondary-text-emphasis-dark: mix(white, h.$secondary, h.$dark-mode-tint) !default;
|
||||||
|
$link-color-dark: mix(white, h.$primary, h.$dark-mode-tint) !default;
|
||||||
|
$primary-bg-subtle-dark: mix(black, h.$primary, h.$dark-mode-shade) !default;
|
||||||
|
$primary-border-subtle-dark: mix(black, h.$primary, calc(h.$dark-mode-shade / 2)) !default;
|
@@ -7,6 +7,7 @@ $navbar-toggler-focus-width: 0 !default;
|
|||||||
|
|
||||||
// scss-docs-start font
|
// scss-docs-start font
|
||||||
$font-family-sans-serif: $theme-font, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
|
$font-family-sans-serif: $theme-font, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
|
||||||
|
$font-size-base: $font-size-base !default;;
|
||||||
$headings-font-weight: 600 !default;
|
$headings-font-weight: 600 !default;
|
||||||
$font-weight-lighter: lighter !default;
|
$font-weight-lighter: lighter !default;
|
||||||
$font-weight-light: 200 !default;
|
$font-weight-light: 200 !default;
|
||||||
@@ -22,8 +23,8 @@ strong {
|
|||||||
$black: #000 !default;
|
$black: #000 !default;
|
||||||
$btn-toggle-color: $black !default;
|
$btn-toggle-color: $black !default;
|
||||||
|
|
||||||
$carousel-dark-indicator-active-bg: #ffffff !default;
|
$carousel-dark-indicator-active-bg: #fff !default;
|
||||||
$carousel-dark-caption-color: #ffffff !default;
|
$carousel-dark-caption-color: #fff !default;
|
||||||
$carousel-dark-control-icon-filter: invert(0) grayscale(100) !default;
|
$carousel-dark-control-icon-filter: invert(0) grayscale(100) !default;
|
||||||
|
|
||||||
// scss-docs-start color-mode
|
// scss-docs-start color-mode
|
||||||
|
22
assets/scss/components/_abbr.scss
Normal file
22
assets/scss/components/_abbr.scss
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
@media (hover: none) {
|
||||||
|
abbr[title] {
|
||||||
|
position: relative;
|
||||||
|
text-decoration: underline dotted;
|
||||||
|
}
|
||||||
|
|
||||||
|
abbr[title]:hover::after,
|
||||||
|
abbr[title]:focus::after {
|
||||||
|
content: attr(title);
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
bottom: -30px;
|
||||||
|
width: auto;
|
||||||
|
white-space: nowrap;
|
||||||
|
background-color: var(--bs-body-bg);
|
||||||
|
color: var(--bs-tooltip-color);
|
||||||
|
border-radius: 3px;
|
||||||
|
box-shadow: 1px 1px 5px 0 rgba(0,0,0,0.4);
|
||||||
|
font-size: 14px;
|
||||||
|
padding: 3px 5px;
|
||||||
|
}
|
||||||
|
}
|
@@ -28,3 +28,16 @@
|
|||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
color: var(--bs-primary) if($enable-important-utilities, !important, null);
|
color: var(--bs-primary) if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a.btn {
|
||||||
|
margin-top: $spacer * .25;
|
||||||
|
margin-bottom: $spacer * .25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-close {
|
||||||
|
background-color: transparent if($enable-important-utilities, !important, null);
|
||||||
|
background-image: var(--#{$prefix}btn-close-bg) if($enable-important-utilities, !important, null);
|
||||||
|
background-position: center if($enable-important-utilities, !important, null);
|
||||||
|
background-repeat: no-repeat if($enable-important-utilities, !important, null);
|
||||||
|
background-size: $btn-close-width if($enable-important-utilities, !important, null);
|
||||||
|
}
|
@@ -15,6 +15,10 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.card-icon {
|
||||||
|
color: $secondary;
|
||||||
|
}
|
||||||
|
|
||||||
.card-zoom::after .card-img-wrap img {
|
.card-zoom::after .card-img-wrap img {
|
||||||
content: "";
|
content: "";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -48,6 +52,10 @@
|
|||||||
color: $body-color if($enable-important-utilities, !important, null);
|
color: $body-color if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.card-body-margin {
|
||||||
|
margin-bottom: $spacer * 1.5; // equals mb-4
|
||||||
|
}
|
||||||
|
|
||||||
@if $enable-dark-mode {
|
@if $enable-dark-mode {
|
||||||
@include color-mode(dark) {
|
@include color-mode(dark) {
|
||||||
.card-body-link {
|
.card-body-link {
|
||||||
|
@@ -108,7 +108,7 @@
|
|||||||
background-color: $white if($enable-important-utilities, !important, null);
|
background-color: $white if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
.emphasis, {
|
.emphasis {
|
||||||
background-color: $black if($enable-important-utilities, !important, null);
|
background-color: $black if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,3 +119,75 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// stylelint-enable annotation-no-unknown
|
// stylelint-enable annotation-no-unknown
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--dropdown-horizontal-bg: var(--#{$prefix}light);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $enable-dark-mode {
|
||||||
|
@include color-mode(dark) {
|
||||||
|
--dropdown-horizontal-bg: var(--#{$prefix}tertiary-bg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$dropdown-transition: opacity .15s ease-in-out !default;
|
||||||
|
|
||||||
|
.dropdown-horizontal {
|
||||||
|
@each $breakpoint in map-keys($grid-breakpoints) {
|
||||||
|
$next: breakpoint-next($breakpoint, $grid-breakpoints);
|
||||||
|
$infix: breakpoint-infix($next, $grid-breakpoints);
|
||||||
|
|
||||||
|
@include media-breakpoint-up($next) {
|
||||||
|
&#{$infix} {
|
||||||
|
position: static !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
&#{$infix} > .dropdown-menu {
|
||||||
|
opacity: 0;
|
||||||
|
display: block;
|
||||||
|
visibility: hidden;
|
||||||
|
background-color: var(--dropdown-horizontal-bg) if($enable-important-utilities, !important, null);
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 0;
|
||||||
|
border: 0;
|
||||||
|
margin-top: calc((-1.5 * $spacer) - 2px);
|
||||||
|
padding-top: calc(1 * $spacer + 2px);
|
||||||
|
padding-bottom: 1 * $spacer;
|
||||||
|
box-shadow: 0.125rem 0.25rem rgba(0, 0, 0, .075);
|
||||||
|
|
||||||
|
@include transition($dropdown-transition);
|
||||||
|
}
|
||||||
|
|
||||||
|
&#{$infix} > .dropdown-menu.show {
|
||||||
|
visibility: visible;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
&#{$infix} > .dropdown-menu > li {
|
||||||
|
display: inline-block;
|
||||||
|
padding-left: $spacer;
|
||||||
|
padding-right: $spacer;
|
||||||
|
}
|
||||||
|
|
||||||
|
&#{$infix} > .dropdown-menu > li > a {
|
||||||
|
padding-left: .25 * $spacer;
|
||||||
|
padding-right: .25 * $spacer;
|
||||||
|
|
||||||
|
&.active,
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
color: var(--bs-body-color);
|
||||||
|
border-bottom: solid 1px var(--bs-navbar-hover-color);
|
||||||
|
margin-bottom: -1px;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&#{$infix} > .nav-link.show {
|
||||||
|
background-color: var(--dropdown-horizontal-bg) if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
49
assets/scss/components/_syntax-dart.scss
Normal file
49
assets/scss/components/_syntax-dart.scss
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
// stylelint-disable annotation-no-unknown
|
||||||
|
@import "syntax-light";
|
||||||
|
|
||||||
|
.bg,
|
||||||
|
.chroma,
|
||||||
|
.chroma .err {
|
||||||
|
// set to transparent background to avoid rendering issues with example shortcode
|
||||||
|
background-color: transparent if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
.chroma {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chroma code {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.syntax-highlight {
|
||||||
|
background-color: var(--bs-light) if($enable-important-utilities, !important, null);
|
||||||
|
overflow-x: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $enable-dark-mode {
|
||||||
|
[data-bs-theme="dark"] {
|
||||||
|
@include meta.load-css(syntax-dark);
|
||||||
|
|
||||||
|
.bg,
|
||||||
|
.chroma,
|
||||||
|
.chroma .err {
|
||||||
|
// set to transparent background to avoid rendering issues with example shortcode
|
||||||
|
background-color: transparent if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
.syntax-highlight {
|
||||||
|
background-color: var(--bs-tertiary-bg) if($enable-important-utilities, !important, null);
|
||||||
|
overflow-x: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg,
|
||||||
|
.chroma,
|
||||||
|
.chroma .ge,
|
||||||
|
.chroma .gl,
|
||||||
|
.chroma .gs {
|
||||||
|
color: #c9d1d9 if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// stylelint-enable annotation-no-unknown
|
13
assets/scss/components/_table.scss
Normal file
13
assets/scss/components/_table.scss
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
@if $enable-dark-mode {
|
||||||
|
@include color-mode(dark) {
|
||||||
|
.table-striped, .table-striped-columns {
|
||||||
|
--bs-table-striped-bg: var(--bs-tertiary-bg);
|
||||||
|
--bs-table-striped-color: var(--bs-body-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-hover {
|
||||||
|
--bs-table-hover-bg: var(--bs-tertiary-bg);
|
||||||
|
--bs-table-striped-color: var(--bs-body-color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -75,6 +75,10 @@
|
|||||||
.toc-button {
|
.toc-button {
|
||||||
--bs-btn-color: var(--bs-body-color);
|
--bs-btn-color: var(--bs-body-color);
|
||||||
--bs-btn-border-color: var(--bs-body-color);
|
--bs-btn-border-color: var(--bs-body-color);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#toc-collapse {
|
#toc-collapse {
|
||||||
|
@@ -30,3 +30,7 @@ h6 {
|
|||||||
margin-top: $spacer;
|
margin-top: $spacer;
|
||||||
scroll-margin-top: $navbar-offset;
|
scroll-margin-top: $navbar-offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
|
||||||
|
scroll-margin-top: $navbar-offset;
|
||||||
|
}
|
||||||
|
@@ -120,4 +120,6 @@ home = ["HTML", "RSS", "REDIR"]
|
|||||||
path = "github.com/gethinode/mod-katex"
|
path = "github.com/gethinode/mod-katex"
|
||||||
[[module.imports]]
|
[[module.imports]]
|
||||||
path = "github.com/gethinode/mod-leaflet"
|
path = "github.com/gethinode/mod-leaflet"
|
||||||
|
[[module.imports]]
|
||||||
|
path = "github.com/gethinode/mod-lottie"
|
||||||
# toml-docs-end modules
|
# toml-docs-end modules
|
||||||
|
@@ -6,17 +6,23 @@
|
|||||||
modes = ["light", "dark"]
|
modes = ["light", "dark"]
|
||||||
canonifyAssetsURLs = false
|
canonifyAssetsURLs = false
|
||||||
endorse = true
|
endorse = true
|
||||||
|
footerBelowFold = false
|
||||||
|
loading = "lazy"
|
||||||
[main.externalLinks]
|
[main.externalLinks]
|
||||||
cue = false
|
cue = false
|
||||||
tab = false
|
tab = false
|
||||||
|
[main.build]
|
||||||
|
transpiler = "libsass"
|
||||||
# toml-docs-end main
|
# toml-docs-end main
|
||||||
|
|
||||||
# toml-docs-start modules
|
# toml-docs-start modules
|
||||||
[modules]
|
[modules]
|
||||||
core = ["bootstrap", "flexsearch", "fontawesome"]
|
core = ["bootstrap", "flexsearch", "fontawesome"]
|
||||||
optional = ["leaflet", "katex"]
|
optional = ["leaflet", "katex", "lottie"]
|
||||||
excludeSCSS = ["bootstrap"]
|
excludeSCSS = ["bootstrap"]
|
||||||
disableTemplate = ["katex"]
|
disableTemplate = ["katex"]
|
||||||
|
[modules.katex]
|
||||||
|
state = "defer"
|
||||||
[modules.fontawesome]
|
[modules.fontawesome]
|
||||||
inline = true
|
inline = true
|
||||||
debug = true
|
debug = true
|
||||||
@@ -43,6 +49,11 @@
|
|||||||
fullCover = false
|
fullCover = false
|
||||||
centerHeadline = false
|
centerHeadline = false
|
||||||
style = ""
|
style = ""
|
||||||
|
[home.feature]
|
||||||
|
orientation = "horizontal"
|
||||||
|
color = "primary"
|
||||||
|
width = 4
|
||||||
|
align = "start"
|
||||||
# toml-docs-end home
|
# toml-docs-end home
|
||||||
|
|
||||||
# toml-docs-start navigation
|
# toml-docs-start navigation
|
||||||
@@ -51,8 +62,10 @@
|
|||||||
logo = "/img/logo_icon.svg"
|
logo = "/img/logo_icon.svg"
|
||||||
color = "body"
|
color = "body"
|
||||||
fixed = true
|
fixed = true
|
||||||
offset = "3.8em"
|
horizontal = false
|
||||||
|
offset = "5.5rem"
|
||||||
search = true
|
search = true
|
||||||
|
searchModal = false
|
||||||
breadcrumb = true
|
breadcrumb = true
|
||||||
toc = true
|
toc = true
|
||||||
sidebar = true
|
sidebar = true
|
||||||
@@ -116,7 +129,7 @@
|
|||||||
# header = "full"
|
# header = "full"
|
||||||
# footer = "none"
|
# footer = "none"
|
||||||
# orientation = "stacked"
|
# orientation = "stacked"
|
||||||
# style = "border-0 card-zoom"
|
# style = "border-0 card-zoom card-body-margin"
|
||||||
# homepage = 3
|
# homepage = 3
|
||||||
# separator = true
|
# separator = true
|
||||||
# toml-docs-end sections
|
# toml-docs-end sections
|
||||||
@@ -143,6 +156,7 @@
|
|||||||
themeFont = "Inter"
|
themeFont = "Inter"
|
||||||
# themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" # external path
|
# themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" # external path
|
||||||
themeFontPath = "/fonts" # local path
|
themeFontPath = "/fonts" # local path
|
||||||
|
fontSizeBase = "1rem" # assumes the browser default, typically '16px'
|
||||||
# toml-docs-end font
|
# toml-docs-end font
|
||||||
# toml-docs-start build
|
# toml-docs-start build
|
||||||
purge = false
|
purge = false
|
||||||
|
@@ -19,6 +19,7 @@ const purgecss = require('@fullhuman/postcss-purgecss')({
|
|||||||
'./assets/scss/components/_syntax.scss',
|
'./assets/scss/components/_syntax.scss',
|
||||||
'./assets/scss/components/_syntax-dark.scss',
|
'./assets/scss/components/_syntax-dark.scss',
|
||||||
'./assets/scss/components/_syntax-light.scss',
|
'./assets/scss/components/_syntax-light.scss',
|
||||||
|
'./assets/scss/components/_table.scss',
|
||||||
'./assets/scss/theme/fonts.scss',
|
'./assets/scss/theme/fonts.scss',
|
||||||
'./assets/scss/theme/theme.scss',
|
'./assets/scss/theme/theme.scss',
|
||||||
'./_vendor/github.com/gethinode/mod-flexsearch/assets/scss/modules/flexsearch/flexsearch.scss',
|
'./_vendor/github.com/gethinode/mod-flexsearch/assets/scss/modules/flexsearch/flexsearch.scss',
|
||||||
|
@@ -1,13 +1,15 @@
|
|||||||
---
|
---
|
||||||
title: Welcome to Hinode!
|
title: Welcome to Hinode!
|
||||||
|
description: A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
||||||
thumbnail:
|
thumbnail:
|
||||||
url: /img/sunrise.jpg
|
url: /img/sunrise.jpg
|
||||||
author: Harris Vo
|
author: Harris Vo
|
||||||
authorURL: https://unsplash.com/@hoanvokim
|
authorURL: https://unsplash.com/@hoanvokim
|
||||||
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
||||||
originName: Unsplash
|
originName: Unsplash
|
||||||
|
actions:
|
||||||
|
get-started:
|
||||||
|
url: "https://gethinode.com/docs"
|
||||||
|
title: "Get started"
|
||||||
|
icon: "fas book-open"
|
||||||
---
|
---
|
||||||
|
|
||||||
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>}}
|
|
||||||
|
3
exampleSite/assets/svgs/custom/activity.svg
Normal file
3
exampleSite/assets/svgs/custom/activity.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-activity" viewBox="0 0 16 16">
|
||||||
|
<path fill-rule="evenodd" d="M6 2a.5.5 0 0 1 .47.33L10 12.036l1.53-4.208A.5.5 0 0 1 12 7.5h3.5a.5.5 0 0 1 0 1h-3.15l-1.88 5.17a.5.5 0 0 1-.94 0L6 3.964 4.47 8.171A.5.5 0 0 1 4 8.5H.5a.5.5 0 0 1 0-1h3.15l1.88-5.17A.5.5 0 0 1 6 2Z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 367 B |
@@ -4,13 +4,17 @@
|
|||||||
enableDarkMode = true
|
enableDarkMode = true
|
||||||
modes = ["light", "dark"]
|
modes = ["light", "dark"]
|
||||||
canonifyAssetsURLs = false
|
canonifyAssetsURLs = false
|
||||||
|
footerBelowFold = false
|
||||||
|
loading = "lazy"
|
||||||
[main.externalLinks]
|
[main.externalLinks]
|
||||||
cue = true
|
cue = true
|
||||||
tab = true
|
tab = true
|
||||||
|
[main.build]
|
||||||
|
transpiler = "dartsass"
|
||||||
|
|
||||||
[modules]
|
[modules]
|
||||||
core = ["bootstrap", "flexsearch", "fontawesome"]
|
core = ["bootstrap", "flexsearch", "fontawesome"]
|
||||||
optional = ["leaflet", "katex"]
|
optional = ["leaflet", "katex", "lottie"]
|
||||||
excludeSCSS = ["bootstrap"]
|
excludeSCSS = ["bootstrap"]
|
||||||
disableTemplate = ["katex"]
|
disableTemplate = ["katex"]
|
||||||
[modules.fontawesome]
|
[modules.fontawesome]
|
||||||
@@ -34,14 +38,21 @@
|
|||||||
fullCover = false
|
fullCover = false
|
||||||
centerHeadline = false
|
centerHeadline = false
|
||||||
style = ""
|
style = ""
|
||||||
|
[home.feature]
|
||||||
|
orientation = "horizontal"
|
||||||
|
color = "primary"
|
||||||
|
width = 4
|
||||||
|
align = "start"
|
||||||
|
|
||||||
[navigation]
|
[navigation]
|
||||||
anchor = true
|
anchor = true
|
||||||
logo = "/img/logo_icon.svg"
|
logo = "/img/logo_icon.svg"
|
||||||
color = "body"
|
color = "body"
|
||||||
fixed = true
|
fixed = true
|
||||||
offset = "3.8em"
|
horizontal = false
|
||||||
|
offset = "5.5rem"
|
||||||
search = true
|
search = true
|
||||||
|
searchModal = false
|
||||||
breadcrumb = true
|
breadcrumb = true
|
||||||
toc = true
|
toc = true
|
||||||
sidebar = true
|
sidebar = true
|
||||||
@@ -98,7 +109,7 @@
|
|||||||
header = "full"
|
header = "full"
|
||||||
footer = "none"
|
footer = "none"
|
||||||
orientation = "stacked"
|
orientation = "stacked"
|
||||||
style = "border-0 card-zoom"
|
style = "border-0 card-zoom card-body-margin"
|
||||||
homepage = 3
|
homepage = 3
|
||||||
separator = true
|
separator = true
|
||||||
[sections.projects]
|
[sections.projects]
|
||||||
@@ -113,7 +124,7 @@
|
|||||||
padding = "3"
|
padding = "3"
|
||||||
header = "none"
|
header = "none"
|
||||||
footer = "tags"
|
footer = "tags"
|
||||||
orientation = "horizontal"
|
orientation = "horizontal-sm"
|
||||||
style = "border-1 card-emphasize"
|
style = "border-1 card-emphasize"
|
||||||
homepage = 3
|
homepage = 3
|
||||||
separator = false
|
separator = false
|
||||||
|
44
exampleSite/config/postcss.config.js
Normal file
44
exampleSite/config/postcss.config.js
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
const autoprefixer = require('autoprefixer')({})
|
||||||
|
const cssnano = require('cssnano')({
|
||||||
|
preset: 'advanced'
|
||||||
|
})
|
||||||
|
const whitelister = require('purgecss-whitelister')
|
||||||
|
const purgecss = require('@fullhuman/postcss-purgecss')({
|
||||||
|
content: ['./exampleSite/hugo_stats.json'],
|
||||||
|
defaultExtractor: (content) => {
|
||||||
|
const els = JSON.parse(content).htmlElements
|
||||||
|
return [...(els.tags || []), ...(els.classes || []), ...(els.ids || [])]
|
||||||
|
},
|
||||||
|
dynamicAttributes: ['data-bs-theme'],
|
||||||
|
safelist: [
|
||||||
|
...whitelister([
|
||||||
|
'./assets/scss/components/_clipboard.scss',
|
||||||
|
'./assets/scss/components/_command.scss',
|
||||||
|
'./assets/scss/components/_navbar.scss',
|
||||||
|
'./assets/scss/components/_search.scss',
|
||||||
|
'./assets/scss/components/_syntax.scss',
|
||||||
|
'./assets/scss/components/_syntax-dark.scss',
|
||||||
|
'./assets/scss/components/_syntax-light.scss',
|
||||||
|
'./assets/scss/components/_table.scss',
|
||||||
|
'./assets/scss/theme/fonts.scss',
|
||||||
|
'./assets/scss/theme/theme.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'
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
plugins: [
|
||||||
|
autoprefixer,
|
||||||
|
cssnano,
|
||||||
|
purgecss
|
||||||
|
]
|
||||||
|
}
|
@@ -1,14 +1,15 @@
|
|||||||
---
|
---
|
||||||
author: Mark Dumay
|
author: Mark Dumay
|
||||||
title: Welcome to Hinode!
|
title: Welcome to Hinode!
|
||||||
|
description: A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
||||||
thumbnail:
|
thumbnail:
|
||||||
url: /img/sunrise.jpg
|
url: /img/sunrise.jpg
|
||||||
author: Harris Vo
|
author: Harris Vo
|
||||||
authorURL: https://unsplash.com/@hoanvokim
|
authorURL: https://unsplash.com/@hoanvokim
|
||||||
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
||||||
originName: Unsplash
|
originName: Unsplash
|
||||||
|
actions:
|
||||||
|
about:
|
||||||
|
url: "about"
|
||||||
|
title: "About"
|
||||||
---
|
---
|
||||||
|
|
||||||
A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
|
||||||
|
|
||||||
{{< button href="about" >}}About{{< /button>}}
|
|
||||||
|
@@ -135,7 +135,7 @@ As an example, the following shortcode displays a card group of three elements.
|
|||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
<!-- markdownlint-disable MD037 -->
|
||||||
{{< example lang="hugo" >}}
|
{{< example lang="hugo" >}}
|
||||||
{{</* card-group padding="3" */>}}
|
{{</* card-group padding="3" gutter="3" */>}}
|
||||||
{{</* card title="Bootstrap framework" icon="fab bootstrap" */>}}
|
{{</* card title="Bootstrap framework" icon="fab bootstrap" */>}}
|
||||||
Build fast, responsive sites with Bootstrap 5. Easily customize your site with the source
|
Build fast, responsive sites with Bootstrap 5. Easily customize your site with the source
|
||||||
Sass files.
|
Sass files.
|
||||||
@@ -241,13 +241,14 @@ Use the `file` shortcode to print and highlight the full content of a given inpu
|
|||||||
|
|
||||||
## Icon
|
## Icon
|
||||||
|
|
||||||
As an example, the following shortcodes show a square check, a brand logo, and a circle check.
|
As an example, the following shortcodes show a square check, a brand logo, a circle check, and a custom icon.
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
<!-- markdownlint-disable MD037 -->
|
||||||
{{< example lang="hugo" >}}
|
{{< example lang="hugo" >}}
|
||||||
{{</* fa square-check */>}}
|
{{</* fa square-check */>}}
|
||||||
{{</* fab linkedin */>}}
|
{{</* fab linkedin */>}}
|
||||||
{{</* fas circle-check */>}}
|
{{</* fas circle-check */>}}
|
||||||
|
{{</* icon custom activity */>}}
|
||||||
{{< /example >}}
|
{{< /example >}}
|
||||||
<!-- markdownlint-enable MD037 -->
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
@@ -293,9 +294,9 @@ As an example, the following shortcodes render links in different formats.
|
|||||||
- {{</* link url="projects/another-project" /*/>}}
|
- {{</* link url="projects/another-project" /*/>}}
|
||||||
- {{</* link url="/projects/another-project" /*/>}}
|
- {{</* link url="/projects/another-project" /*/>}}
|
||||||
- {{</* link url="../projects/another-project" case=false /*/>}}
|
- {{</* link url="../projects/another-project" case=false /*/>}}
|
||||||
- {{</* link "/about/" /*/>}}
|
- {{</* link "about" /*/>}}
|
||||||
- {{</* link "/fr/about/" /*/>}}
|
- {{</* link "/fr/a-propos/" /*/>}}
|
||||||
- {{</* link "/fr/about" >}}About (French){{< /link */>}}
|
- {{</* link "/fr/a-propos" >}}About (French){{< /link */>}}
|
||||||
- {{</* link "#image" /*/>}}
|
- {{</* link "#image" /*/>}}
|
||||||
- {{</* link "components/#map" /*/>}}
|
- {{</* link "components/#map" /*/>}}
|
||||||
|
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
author: Mark Dumay
|
author: Mark Dumay
|
||||||
title: Components
|
title: Components
|
||||||
date: 2023-07-21
|
date: 2023-09-23
|
||||||
description: Use shortcodes to add predefined components powered by external libraries.
|
description: Use shortcodes to add predefined components powered by external libraries.
|
||||||
tags: ["bootstrap", "shortcode"]
|
tags: ["bootstrap", "shortcode"]
|
||||||
thumbnail:
|
thumbnail:
|
||||||
@@ -10,11 +10,21 @@ thumbnail:
|
|||||||
authorURL: https://unsplash.com/@ryoji__iwata
|
authorURL: https://unsplash.com/@ryoji__iwata
|
||||||
origin: Unsplash
|
origin: Unsplash
|
||||||
originURL: https://unsplash.com/photos/5siQcvSxCP8
|
originURL: https://unsplash.com/photos/5siQcvSxCP8
|
||||||
modules: ["katex", "leaflet"]
|
modules: ["katex", "leaflet", "lottie"]
|
||||||
---
|
---
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
## Animation
|
||||||
|
|
||||||
|
As an example, the following shortcode shows an animation that plays on hover.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* animation data="gatin.json" auto=false hover=true class="col-6 mx-auto" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
## Formula (KaTeX)
|
## Formula (KaTeX)
|
||||||
|
|
||||||
As an example, the following markdown renders two formulas using the KaTeX typesetting library.
|
As an example, the following markdown renders two formulas using the KaTeX typesetting library.
|
||||||
|
@@ -1,14 +1,15 @@
|
|||||||
---
|
---
|
||||||
author: Mark Dumay
|
author: Mark Dumay
|
||||||
title: Bienvenue sur Hinode!
|
title: Bienvenue sur Hinode!
|
||||||
|
description: Un thème de blog et de documentation pour Hugo basé sur Bootstrap 5.
|
||||||
thumbnail:
|
thumbnail:
|
||||||
url: /img/sunrise.jpg
|
url: /img/sunrise.jpg
|
||||||
author: Harris Vo
|
author: Harris Vo
|
||||||
authorURL: https://unsplash.com/@hoanvokim
|
authorURL: https://unsplash.com/@hoanvokim
|
||||||
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
||||||
originName: Unsplash
|
originName: Unsplash
|
||||||
|
actions:
|
||||||
|
about:
|
||||||
|
url: "a-propos"
|
||||||
|
title: "À propos"
|
||||||
---
|
---
|
||||||
|
|
||||||
Un thème de blog et de documentation pour Hugo basé sur Bootstrap 5.
|
|
||||||
|
|
||||||
{{< button href="a-propos" >}}À propos{{< /button>}}
|
|
||||||
|
@@ -31,9 +31,4 @@ Les fonctionnalités supplémentaires incluent:
|
|||||||
- Gestion d'images adaptatives pour plusieurs tailles d'écran et résolutions.
|
- Gestion d'images adaptatives pour plusieurs tailles d'écran et résolutions.
|
||||||
- Résultats de recherche optimisés, obtenant un score de 100 points pour le référencement (SEO) sur [PageSpeed Insights]({{< param "links.pagespeed" >}}).
|
- Résultats de recherche optimisés, obtenant un score de 100 points pour le référencement (SEO) sur [PageSpeed Insights]({{< param "links.pagespeed" >}}).
|
||||||
- Sécurisé par défaut, obtenant un score A+ au test [Mozilla Observatory]({{< param "links.observatory" >}})
|
- Sécurisé par défaut, obtenant un score A+ au test [Mozilla Observatory]({{< param "links.observatory" >}})
|
||||||
{.tickmark}
|
{.tickmark}
|
||||||
|
|
||||||
Hinode est inspiré par les thèmes suivants:
|
|
||||||
|
|
||||||
- [Blist](https://github.com/apvarun/blist-hugo-theme) - Un thème de blog pour Hugo basé sur Tailwind CSS.
|
|
||||||
- [Doks](https://github.com/h-enk/doks) - Un thème Hugo pour la création de sites de documentation sécurisés, rapides et optimisés pour le référencement (SEO), que vous pouvez facilement mettre à jour et personnaliser.
|
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
author: Mark Dumay
|
author: Mark Dumay
|
||||||
title: Éléments Bootstrap
|
title: Éléments Bootstrap
|
||||||
|
slug: elements-bootstrap
|
||||||
date: 2023-08-12
|
date: 2023-08-12
|
||||||
description: Utilisez des shortcodes pour ajouter facilement des éléments Bootstrap courants.
|
description: Utilisez des shortcodes pour ajouter facilement des éléments Bootstrap courants.
|
||||||
tags: ["bootstrap", "shortcode"]
|
tags: ["bootstrap", "shortcode"]
|
||||||
@@ -14,6 +15,16 @@ thumbnail:
|
|||||||
|
|
||||||
Hinode propose plusieurs shortcodes qui enveloppent des composants Bootstrap courants. Consultez la [documentation officielle]({{< param "links.hinode_docs" >}}) pour plus de détails.
|
Hinode propose plusieurs shortcodes qui enveloppent des composants Bootstrap courants. Consultez la [documentation officielle]({{< param "links.hinode_docs" >}}) pour plus de détails.
|
||||||
|
|
||||||
|
## Abbr
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche le texte complet d'une abréviation lorsque survolé.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* abbr "CI/CD" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
## Accordéon
|
## Accordéon
|
||||||
|
|
||||||
À titre d'exemple, le shortcode suivant affiche un accordéon avec trois éléments, dont le premier élément est déplié.
|
À titre d'exemple, le shortcode suivant affiche un accordéon avec trois éléments, dont le premier élément est déplié.
|
||||||
@@ -124,7 +135,7 @@ En-tête 6 {{</* badge title="Nouveau" */>}}
|
|||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
<!-- markdownlint-disable MD037 -->
|
||||||
{{< example lang="hugo" >}}
|
{{< example lang="hugo" >}}
|
||||||
{{</* card-group padding="3" */>}}
|
{{</* card-group padding="3" gutter="3" */>}}
|
||||||
{{</* card title="Framework Bootstrap" icon="fab bootstrap" */>}}
|
{{</* card title="Framework Bootstrap" icon="fab bootstrap" */>}}
|
||||||
Créez des sites rapides et réactifs avec Bootstrap 5. Personnalisez facilement votre site
|
Créez des sites rapides et réactifs avec Bootstrap 5. Personnalisez facilement votre site
|
||||||
avec les fichiers source Sass.
|
avec les fichiers source Sass.
|
||||||
@@ -284,15 +295,25 @@ Utilisez le shortcode `file` pour afficher et mettre en évidence le contenu com
|
|||||||
- {{</* link url="projects/another-project" /*/>}}
|
- {{</* link url="projects/another-project" /*/>}}
|
||||||
- {{</* link url="/projects/another-project" /*/>}}
|
- {{</* link url="/projects/another-project" /*/>}}
|
||||||
- {{</* link url="../projects/another-project" case=false /*/>}}
|
- {{</* link url="../projects/another-project" case=false /*/>}}
|
||||||
- {{</* link "/about/" /*/>}}
|
- {{</* link "about" /*/>}}
|
||||||
- {{</* link "/fr/about/" /*/>}}
|
- {{</* link "/en/about/" /*/>}}
|
||||||
- {{</* link "/fr/about" >}}About (French){{< /link */>}}
|
- {{</* link "/en/about" >}}About (Anglais){{< /link */>}}
|
||||||
- {{</* link "#image" /*/>}}
|
- {{</* link "#image" /*/>}}
|
||||||
- {{</* link "components/#map" /*/>}}
|
- {{</* link "components/#map" /*/>}}
|
||||||
|
|
||||||
{{< /example >}}
|
{{< /example >}}
|
||||||
<!-- markdownlint-enable MD037 -->
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Mark
|
||||||
|
|
||||||
|
Utilisez le shortcode `mark` pour mettre en évidence le texte. Le contenu interne est utilisé en tant qu'entrée.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
Utilisez le shortcode `mark` pour {{</* mark >}}mettre en évidence{{< /mark */>}} un texte spécifique.
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
## Navigation
|
## Navigation
|
||||||
|
|
||||||
À titre d'exemple, le shortcode suivant affiche un groupe d'onglets avec des onglets alignés verticalement.
|
À titre d'exemple, le shortcode suivant affiche un groupe d'onglets avec des onglets alignés verticalement.
|
||||||
@@ -346,6 +367,26 @@ Chargement...
|
|||||||
{{< /example>}}
|
{{< /example>}}
|
||||||
<!-- markdownlint-enable MD037 -->
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Sub
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche du texte en indice.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example >}}
|
||||||
|
H{{</* sub 2 */>}}O est un liquide.
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Sup
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche du texte en exposant.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example >}}
|
||||||
|
2{{</* sup 10 */>}} équivaut à 1024.
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
## Chronologie
|
## Chronologie
|
||||||
|
|
||||||
À titre d'exemple, le shortcode suivant affiche une chronologie avec le fichier `data/timeline-fr.yml` en tant que données.
|
À titre d'exemple, le shortcode suivant affiche une chronologie avec le fichier `data/timeline-fr.yml` en tant que données.
|
||||||
@@ -363,11 +404,11 @@ Chargement...
|
|||||||
<!-- markdownlint-disable MD037 -->
|
<!-- markdownlint-disable MD037 -->
|
||||||
{{< example lang="hugo" >}}
|
{{< example lang="hugo" >}}
|
||||||
{{</* button toast="toast-example-1" */>}}
|
{{</* button toast="toast-example-1" */>}}
|
||||||
Affiche la notifiaction #1
|
Affiche la notification #1
|
||||||
{{</* /button */>}}
|
{{</* /button */>}}
|
||||||
|
|
||||||
{{</* button toast="toast-example-2" */>}}
|
{{</* button toast="toast-example-2" */>}}
|
||||||
Affiche la notifiaction #1
|
Affiche la notification #1
|
||||||
{{</* /button */>}}
|
{{</* /button */>}}
|
||||||
|
|
||||||
{{</* toast id="toast-example-1" header="Premier titre" */>}}
|
{{</* toast id="toast-example-1" header="Premier titre" */>}}
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
author: Mark Dumay
|
author: Mark Dumay
|
||||||
title: Components
|
title: Composents
|
||||||
|
slug: composents
|
||||||
date: 2023-07-21
|
date: 2023-07-21
|
||||||
description: Utilisez des shortcodes pour ajouter des composants prédéfinis alimentés par des bibliothèques externes.
|
description: Utilisez des shortcodes pour ajouter des composants prédéfinis alimentés par des bibliothèques externes.
|
||||||
tags: ["bootstrap", "shortcode"]
|
tags: ["bootstrap", "shortcode"]
|
||||||
@@ -10,11 +11,21 @@ thumbnail:
|
|||||||
authorURL: https://unsplash.com/@ryoji__iwata
|
authorURL: https://unsplash.com/@ryoji__iwata
|
||||||
origin: Unsplash
|
origin: Unsplash
|
||||||
originURL: https://unsplash.com/photos/5siQcvSxCP8
|
originURL: https://unsplash.com/photos/5siQcvSxCP8
|
||||||
modules: ["katex", "leaflet"]
|
modules: ["katex", "leaflet", "lottie"]
|
||||||
---
|
---
|
||||||
|
|
||||||
Hinode propose plusieurs shortcodes en plus des [éléments Bootstrap]({{< relref "bootstrap-elements" >}}) courants. Consultez la [documentation officielle]({{< param "links.hinode_docs" >}}) pour plus de détails.
|
Hinode propose plusieurs shortcodes en plus des [éléments Bootstrap]({{< relref "bootstrap-elements" >}}) courants. Consultez la [documentation officielle]({{< param "links.hinode_docs" >}}) pour plus de détails.
|
||||||
|
|
||||||
|
## Animation
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche une animation qui se déclenche au survol.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* animation data="gatin.json" auto=false hover=true class="col-6 mx-auto" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
## Formule (KaTeX)
|
## Formule (KaTeX)
|
||||||
|
|
||||||
À titre d'exemple, le markdown suivant affiche deux formules en utilisant la bibliothèque de composition typographique KaTeX.
|
À titre d'exemple, le markdown suivant affiche deux formules en utilisant la bibliothèque de composition typographique KaTeX.
|
||||||
|
@@ -1,14 +1,15 @@
|
|||||||
---
|
---
|
||||||
author: Mark Dumay
|
author: Mark Dumay
|
||||||
title: Welkom bij Hinode!
|
title: Welkom bij Hinode!
|
||||||
|
description: Een documentatie en blog thema voor Hugo gebaseerd op Bootstrap 5.
|
||||||
thumbnail:
|
thumbnail:
|
||||||
url: /img/sunrise.jpg
|
url: /img/sunrise.jpg
|
||||||
author: Harris Vo
|
author: Harris Vo
|
||||||
authorURL: https://unsplash.com/@hoanvokim
|
authorURL: https://unsplash.com/@hoanvokim
|
||||||
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
||||||
originName: Unsplash
|
originName: Unsplash
|
||||||
|
actions:
|
||||||
|
about:
|
||||||
|
url: "over-mij"
|
||||||
|
title: "Over mij"
|
||||||
---
|
---
|
||||||
|
|
||||||
Een documentatie en blog thema voor Hugo gebaseerd op Bootstrap 5.
|
|
||||||
|
|
||||||
{{< button href="over-mij" >}}Over mij{{< /button>}}
|
|
||||||
|
@@ -33,8 +33,3 @@ Overige functies:
|
|||||||
* Optimale zoekresultaten, met 100 punten voor SEO volgens [PageSpeed Insights]({{< param "links.pagespeed" >}})
|
* 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" >}})
|
* Veilige communicatie, met een score van A+ volgens [Mozilla Observatory]({{< param "links.observatory" >}})
|
||||||
{.tickmark}
|
{.tickmark}
|
||||||
|
|
||||||
Hinode is geinspireerd door de volgende thema's:
|
|
||||||
|
|
||||||
* [Blist](https://github.com/apvarun/blist-hugo-theme) - een blog thema voor Hugo op basis van Tailwind CSS.
|
|
||||||
* [Doks](https://github.com/h-enk/doks) - een Hugo thema voor het bouwen van veilige, snelle, en SEO-geoptimaliseerde documentatiesites, die je eenvoudig kunt actualiseren en aanpassen.
|
|
||||||
|
@@ -8,4 +8,4 @@
|
|||||||
long: "Scalable Vector Graphics"
|
long: "Scalable Vector Graphics"
|
||||||
|
|
||||||
- id: ci/cd
|
- id: ci/cd
|
||||||
long: "Continous Integration/Continuous Deployment"
|
long: "Continuous Integration/Continuous Deployment"
|
||||||
|
@@ -3,9 +3,4 @@ module github.com/gethinode/hinode-test
|
|||||||
go 1.19
|
go 1.19
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/gethinode/mod-bootstrap v1.1.1 // indirect
|
|
||||||
github.com/gethinode/mod-flexsearch v1.4.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
|
|
||||||
)
|
)
|
||||||
|
@@ -1,17 +1,57 @@
|
|||||||
github.com/gethinode/mod-bootstrap v1.1.1 h1:Tx4M5hGVOFrEaxnUONDAm6N9xuRi5UphKlT7F26HujU=
|
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-bootstrap v1.1.1/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
||||||
|
github.com/gethinode/mod-bootstrap v1.2.0 h1:JkTcImU3qpi25WgKvUxUYiMoiXtrxrG+Wf/utRB5UbU=
|
||||||
|
github.com/gethinode/mod-bootstrap v1.2.0/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
||||||
|
github.com/gethinode/mod-bootstrap v1.2.1 h1:z54dgsbhShhlri+X77Z+yLrg0wz/f8C8ojA/wnlhsJc=
|
||||||
|
github.com/gethinode/mod-bootstrap v1.2.1/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
||||||
|
github.com/gethinode/mod-bootstrap v1.2.2 h1:Q8E04OKWr9owk7nhQ/NBukUgSFhsECxZsOLEaf5oeiQ=
|
||||||
|
github.com/gethinode/mod-bootstrap v1.2.2/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
||||||
github.com/gethinode/mod-flexsearch v1.2.0 h1:SSMpWzK9SMbi9QRYfil9PJZLLWWLHWzlTc69UxtSWAA=
|
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-flexsearch v1.2.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||||
github.com/gethinode/mod-flexsearch v1.3.0 h1:RbfEDw219Y1rOVp9lHmy5ePdF9lyPalDu2J5oVeejrU=
|
github.com/gethinode/mod-flexsearch v1.3.0 h1:RbfEDw219Y1rOVp9lHmy5ePdF9lyPalDu2J5oVeejrU=
|
||||||
github.com/gethinode/mod-flexsearch v1.3.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
github.com/gethinode/mod-flexsearch v1.3.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||||
github.com/gethinode/mod-flexsearch v1.4.0 h1:5e/NVRLyWzUZ9fO/fNsM5o+O7nw+xyln2rfEOtbgfWc=
|
github.com/gethinode/mod-flexsearch v1.4.0 h1:5e/NVRLyWzUZ9fO/fNsM5o+O7nw+xyln2rfEOtbgfWc=
|
||||||
github.com/gethinode/mod-flexsearch v1.4.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
github.com/gethinode/mod-flexsearch v1.4.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.4.1 h1:z+GKvhJ4v6BsZsWVZRgbO9WcmSZEVUkb3Q9a09yXtd8=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.4.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.5.1 h1:9fYlnHgiEXckL0EoC0zlSNO7BWZf5yiOroSWT13Kphc=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.5.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.6.0 h1:Rjx+GLOByFLmaWD9hZXwmuKN8A89te6BZAIq2c9QBKg=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.6.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 h1:SqE3CQ+boaBIhrVh3MPu4nz0uoHPfEH5t60nNY1CfsI=
|
||||||
github.com/gethinode/mod-fontawesome v1.2.4/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
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 h1:RqkLRj6+s+gM4nKd0IwNMMDA8cRmxfp0fxkVH4FdAGU=
|
||||||
github.com/gethinode/mod-fontawesome v1.2.5/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
github.com/gethinode/mod-fontawesome v1.2.5/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.3.0 h1:oudeDBlAKu8vqYxumWuq5SG5F5itm33NgTrBLgvPulQ=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.3.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.3.1 h1:EdnBuG2B+bi06OcYmcL1NfSxHpRMEGu8TXUqEEpVH4g=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.3.1/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.3.2 h1:qLJSbAFR2T33BuBtC2Iulm9wZql3cy7AhXjxc2YGzBU=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.3.2/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.4.0 h1:JfmVYwQl19jmZxgxY64yvGqJAAEiFkKf2dbZ5Iv08Qw=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.4.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.5.0 h1:3mW5dnWauuF9wSWXNIY+PPgTNPlc/xQOQoG7XGic1Yk=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.5.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
github.com/gethinode/mod-katex v1.0.1/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
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 h1:pIG4n3qLl/IVe7BEiwn+GL8r5lOCtF6FDxlcrPKdAXk=
|
||||||
github.com/gethinode/mod-katex v1.0.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
github.com/gethinode/mod-katex v1.0.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||||
|
github.com/gethinode/mod-katex v1.0.3 h1:fvlUWqcUQqv2zRNM2kfmJ6GhXA816Tl1nfVrUkmBStI=
|
||||||
|
github.com/gethinode/mod-katex v1.0.3/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||||
|
github.com/gethinode/mod-katex v1.0.4 h1:NozgWPFnHhx1W+E9DnwMTRpvxPbdqdANEtwp9N3/mj8=
|
||||||
|
github.com/gethinode/mod-katex v1.0.4/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||||
github.com/gethinode/mod-leaflet v0.3.4 h1:oY+YQ0JiJuhFQNrk9XgFdg0NMsTUQPXNfnILp4ia4r4=
|
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=
|
github.com/gethinode/mod-leaflet v0.3.4/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
|
||||||
|
github.com/gethinode/mod-leaflet v0.3.5 h1:69Bv/6zRXhbcTzo7TMr58h3ry47srHRpM1k81LrLbYU=
|
||||||
|
github.com/gethinode/mod-leaflet v0.3.5/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
|
||||||
|
github.com/gethinode/mod-lottie v1.0.0 h1:1CUZMcgN5FAyjjyuP3qkaOQ6M5sv6HUAbosW4sIT5VE=
|
||||||
|
github.com/gethinode/mod-lottie v1.0.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
||||||
|
github.com/gethinode/mod-lottie v1.0.1 h1:+IE7xtnSVQpJS56oBJq9RWKZeFEfxrOZAqE3BSrS/u0=
|
||||||
|
github.com/gethinode/mod-lottie v1.0.1/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
||||||
|
github.com/gethinode/mod-lottie v1.0.2 h1:QM/PJqEl1UhNNoPx6y7pVtwev/mDxUyWNHLqDB76YzI=
|
||||||
|
github.com/gethinode/mod-lottie v1.0.2/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
||||||
|
github.com/gethinode/mod-lottie v1.1.0 h1:KnfOQ45xdv1tpsKCkF5OiE3QuT29ycppBfY6o+rWl/4=
|
||||||
|
github.com/gethinode/mod-lottie v1.1.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
||||||
|
github.com/gethinode/mod-lottie v1.2.0 h1:9S0Y4PlEO66dIvFxayatmDEf8WWxqbLNLi4z563i2gM=
|
||||||
|
github.com/gethinode/mod-lottie v1.2.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
||||||
|
github.com/gethinode/mod-lottie v1.3.0 h1:vQ8CXkjdp2IeFskTzu+ZnKOEio8GtN08urVK+oCH81E=
|
||||||
|
github.com/gethinode/mod-lottie v1.3.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
||||||
|
@@ -54,21 +54,22 @@
|
|||||||
"alert",
|
"alert",
|
||||||
"alert-danger",
|
"alert-danger",
|
||||||
"alert-dismissible",
|
"alert-dismissible",
|
||||||
"align-content-center",
|
|
||||||
"align-items-center",
|
"align-items-center",
|
||||||
"align-items-end",
|
"align-items-end",
|
||||||
"align-items-start",
|
"align-items-start",
|
||||||
"align-middle",
|
"align-middle",
|
||||||
"align-self-center",
|
"align-self-center",
|
||||||
|
"align-self-end",
|
||||||
"anchor",
|
"anchor",
|
||||||
"badge",
|
"badge",
|
||||||
"bg-body",
|
"bg-body",
|
||||||
"bg-body-tertiary",
|
"bg-body-tertiary",
|
||||||
"bg-danger",
|
"bg-danger",
|
||||||
"bg-info",
|
|
||||||
"bg-opacity-10",
|
"bg-opacity-10",
|
||||||
"bg-primary",
|
"bg-primary",
|
||||||
"bg-primary-subtle",
|
"bg-primary-subtle",
|
||||||
|
"bi",
|
||||||
|
"bi-activity",
|
||||||
"border",
|
"border",
|
||||||
"border-0",
|
"border-0",
|
||||||
"border-1",
|
"border-1",
|
||||||
@@ -94,7 +95,9 @@
|
|||||||
"card",
|
"card",
|
||||||
"card-body",
|
"card-body",
|
||||||
"card-body-link",
|
"card-body-link",
|
||||||
|
"card-body-margin",
|
||||||
"card-emphasize",
|
"card-emphasize",
|
||||||
|
"card-icon",
|
||||||
"card-img-top",
|
"card-img-top",
|
||||||
"card-img-wrap",
|
"card-img-wrap",
|
||||||
"card-text",
|
"card-text",
|
||||||
@@ -117,7 +120,6 @@
|
|||||||
"col-6",
|
"col-6",
|
||||||
"col-8",
|
"col-8",
|
||||||
"col-9",
|
"col-9",
|
||||||
"col-lg-2",
|
|
||||||
"col-lg-4",
|
"col-lg-4",
|
||||||
"col-lg-8",
|
"col-lg-8",
|
||||||
"col-md-10",
|
"col-md-10",
|
||||||
@@ -133,12 +135,12 @@
|
|||||||
"container",
|
"container",
|
||||||
"container-fluid",
|
"container-fluid",
|
||||||
"container-xxl",
|
"container-xxl",
|
||||||
|
"custom",
|
||||||
"d-block",
|
"d-block",
|
||||||
"d-flex",
|
"d-flex",
|
||||||
"d-grid",
|
"d-grid",
|
||||||
"d-inline",
|
"d-inline",
|
||||||
"d-inline-flex",
|
"d-inline-flex",
|
||||||
"d-lg-block",
|
|
||||||
"d-md-block",
|
"d-md-block",
|
||||||
"d-md-flex",
|
"d-md-flex",
|
||||||
"d-md-none",
|
"d-md-none",
|
||||||
@@ -163,6 +165,7 @@
|
|||||||
"fa-2x",
|
"fa-2x",
|
||||||
"fa-2xs",
|
"fa-2xs",
|
||||||
"fa-4x",
|
"fa-4x",
|
||||||
|
"fa-activity",
|
||||||
"fa-arrow-left",
|
"fa-arrow-left",
|
||||||
"fa-arrow-right",
|
"fa-arrow-right",
|
||||||
"fa-bootstrap",
|
"fa-bootstrap",
|
||||||
@@ -196,25 +199,26 @@
|
|||||||
"fab",
|
"fab",
|
||||||
"fade",
|
"fade",
|
||||||
"fas",
|
"fas",
|
||||||
"feature",
|
|
||||||
"figure-caption",
|
"figure-caption",
|
||||||
"fixed-top",
|
"fixed-top",
|
||||||
"flex-column",
|
"flex-column",
|
||||||
"flex-fill",
|
"flex-fill",
|
||||||
"flex-grow-1",
|
"flex-grow-1",
|
||||||
"flex-wrap",
|
|
||||||
"font-monospace",
|
"font-monospace",
|
||||||
"footer",
|
"footer",
|
||||||
"form-control",
|
"form-control",
|
||||||
"fs-3",
|
"fs-3",
|
||||||
"fs-5",
|
"fs-5",
|
||||||
|
"fullcover",
|
||||||
|
"fullscreen",
|
||||||
"fw-30",
|
"fw-30",
|
||||||
"fw-bold",
|
"fw-bold",
|
||||||
"fw-semibold",
|
"fw-semibold",
|
||||||
"g-0",
|
"g-0",
|
||||||
"g-3",
|
"g-3",
|
||||||
|
"g-4",
|
||||||
|
"gap-1",
|
||||||
"gap-2",
|
"gap-2",
|
||||||
"gap-3",
|
|
||||||
"gradient",
|
"gradient",
|
||||||
"h-100",
|
"h-100",
|
||||||
"h1",
|
"h1",
|
||||||
@@ -243,11 +247,12 @@
|
|||||||
"link-secondary",
|
"link-secondary",
|
||||||
"link-success",
|
"link-success",
|
||||||
"link-warning",
|
"link-warning",
|
||||||
|
"lottie-animation",
|
||||||
"m-0",
|
"m-0",
|
||||||
|
"main-content",
|
||||||
"main-nav-toggler",
|
"main-nav-toggler",
|
||||||
"mb-0",
|
"mb-0",
|
||||||
"mb-3",
|
"mb-3",
|
||||||
"mb-4",
|
|
||||||
"mb-5",
|
"mb-5",
|
||||||
"mb-lg-5",
|
"mb-lg-5",
|
||||||
"me-3",
|
"me-3",
|
||||||
@@ -265,10 +270,12 @@
|
|||||||
"multi-docs-collapse-15",
|
"multi-docs-collapse-15",
|
||||||
"multi-file-collapse-1",
|
"multi-file-collapse-1",
|
||||||
"mx-auto",
|
"mx-auto",
|
||||||
|
"mx-md-0",
|
||||||
"mx-md-2",
|
"mx-md-2",
|
||||||
"my-2",
|
"my-2",
|
||||||
"my-auto",
|
"my-auto",
|
||||||
"my-md-0",
|
"my-md-0",
|
||||||
|
"my-md-auto",
|
||||||
"nav",
|
"nav",
|
||||||
"nav-item",
|
"nav-item",
|
||||||
"nav-link",
|
"nav-link",
|
||||||
@@ -279,18 +286,17 @@
|
|||||||
"navbar-collapse",
|
"navbar-collapse",
|
||||||
"navbar-contrast",
|
"navbar-contrast",
|
||||||
"navbar-expand-md",
|
"navbar-expand-md",
|
||||||
|
"navbar-fixed-top",
|
||||||
"navbar-nav",
|
"navbar-nav",
|
||||||
"navbar-nav-scroll",
|
"navbar-nav-scroll",
|
||||||
"navbar-toggler",
|
"navbar-toggler",
|
||||||
"next",
|
"next",
|
||||||
"no-js",
|
"no-js",
|
||||||
|
"order-0",
|
||||||
"order-1",
|
"order-1",
|
||||||
"order-2",
|
|
||||||
"order-3",
|
|
||||||
"order-4",
|
|
||||||
"order-first",
|
"order-first",
|
||||||
"order-sm-2",
|
"order-md-0",
|
||||||
"order-sm-3",
|
"order-md-1",
|
||||||
"p-0",
|
"p-0",
|
||||||
"p-1",
|
"p-1",
|
||||||
"p-2",
|
"p-2",
|
||||||
@@ -298,7 +304,9 @@
|
|||||||
"p-4",
|
"p-4",
|
||||||
"pb-2",
|
"pb-2",
|
||||||
"pb-3",
|
"pb-3",
|
||||||
|
"pb-4",
|
||||||
"pb-5",
|
"pb-5",
|
||||||
|
"pb-md-0",
|
||||||
"pe-3",
|
"pe-3",
|
||||||
"position-absolute",
|
"position-absolute",
|
||||||
"position-fixed",
|
"position-fixed",
|
||||||
@@ -308,8 +316,8 @@
|
|||||||
"ps-1",
|
"ps-1",
|
||||||
"ps-3",
|
"ps-3",
|
||||||
"ps-xl-3",
|
"ps-xl-3",
|
||||||
"pt-3",
|
"pt-5",
|
||||||
"px-3",
|
"pt-md-3",
|
||||||
"px-4",
|
"px-4",
|
||||||
"px-xxl-0",
|
"px-xxl-0",
|
||||||
"py-1",
|
"py-1",
|
||||||
@@ -327,10 +335,10 @@
|
|||||||
"row",
|
"row",
|
||||||
"row-cols-1",
|
"row-cols-1",
|
||||||
"row-cols-2",
|
"row-cols-2",
|
||||||
|
"row-cols-md-2",
|
||||||
"row-cols-md-3",
|
"row-cols-md-3",
|
||||||
"row-cols-sm-2",
|
"row-cols-sm-2",
|
||||||
"row-cols-sm-3",
|
"row-cols-sm-3",
|
||||||
"row-cols-sm-4",
|
|
||||||
"search",
|
"search",
|
||||||
"search-input",
|
"search-input",
|
||||||
"search-suggestions",
|
"search-suggestions",
|
||||||
@@ -362,10 +370,12 @@
|
|||||||
"text-decoration-none",
|
"text-decoration-none",
|
||||||
"text-end",
|
"text-end",
|
||||||
"text-info",
|
"text-info",
|
||||||
|
"text-muted",
|
||||||
"text-nowrap",
|
"text-nowrap",
|
||||||
"text-right",
|
"text-right",
|
||||||
"text-secondary",
|
"text-secondary",
|
||||||
"text-sm-start",
|
"text-sm-start",
|
||||||
|
"text-start",
|
||||||
"text-uppercase",
|
"text-uppercase",
|
||||||
"theme-icon",
|
"theme-icon",
|
||||||
"theme-icon-active",
|
"theme-icon-active",
|
||||||
@@ -416,10 +426,16 @@
|
|||||||
"accordion-0-item-0",
|
"accordion-0-item-0",
|
||||||
"accordion-0-item-1",
|
"accordion-0-item-1",
|
||||||
"accordion-0-item-2",
|
"accordion-0-item-2",
|
||||||
|
"accordéon",
|
||||||
"alert",
|
"alert",
|
||||||
|
"alerte",
|
||||||
|
"animation",
|
||||||
"badge",
|
"badge",
|
||||||
|
"barre-de-navigation",
|
||||||
|
"blog",
|
||||||
"body-docs-collapse-15",
|
"body-docs-collapse-15",
|
||||||
"body-file-collapse-1",
|
"body-file-collapse-1",
|
||||||
|
"bouton",
|
||||||
"breadcrumb",
|
"breadcrumb",
|
||||||
"btn-webshare",
|
"btn-webshare",
|
||||||
"button",
|
"button",
|
||||||
@@ -428,19 +444,34 @@
|
|||||||
"card-group",
|
"card-group",
|
||||||
"carousel",
|
"carousel",
|
||||||
"carousel-0",
|
"carousel-0",
|
||||||
|
"carrousel",
|
||||||
|
"carte",
|
||||||
|
"chronologie",
|
||||||
"collapse",
|
"collapse",
|
||||||
"collapse-1",
|
"collapse-1",
|
||||||
"command-prompt",
|
"command-prompt",
|
||||||
"docs",
|
"docs",
|
||||||
|
"documentation",
|
||||||
"example",
|
"example",
|
||||||
|
"exemple",
|
||||||
|
"fichier",
|
||||||
|
"fil-dariane",
|
||||||
"file",
|
"file",
|
||||||
"footer-docs-collapse-15",
|
"footer-docs-collapse-15",
|
||||||
"footer-file-collapse-1",
|
"footer-file-collapse-1",
|
||||||
"formula-katex",
|
"formula-katex",
|
||||||
|
"formule-katex",
|
||||||
|
"groupe-de-boutons",
|
||||||
|
"groupe-de-cartes",
|
||||||
"icon",
|
"icon",
|
||||||
"image",
|
"image",
|
||||||
|
"indicateur-de-chargement",
|
||||||
|
"infobulle",
|
||||||
|
"invite-de-commandes",
|
||||||
"leaflet-map-0",
|
"leaflet-map-0",
|
||||||
|
"lien",
|
||||||
"link",
|
"link",
|
||||||
|
"lottie-animation-0",
|
||||||
"map",
|
"map",
|
||||||
"mark",
|
"mark",
|
||||||
"nav",
|
"nav",
|
||||||
@@ -454,7 +485,14 @@
|
|||||||
"navbar",
|
"navbar",
|
||||||
"navbar-0-collapse",
|
"navbar-0-collapse",
|
||||||
"navbar-sample-collapse",
|
"navbar-sample-collapse",
|
||||||
|
"navigation",
|
||||||
|
"notification",
|
||||||
|
"projecten",
|
||||||
|
"projects",
|
||||||
|
"projets",
|
||||||
|
"publication",
|
||||||
"release",
|
"release",
|
||||||
|
"réduire",
|
||||||
"spinner",
|
"spinner",
|
||||||
"sub",
|
"sub",
|
||||||
"sup",
|
"sup",
|
||||||
@@ -469,4 +507,4 @@
|
|||||||
"tooltip"
|
"tooltip"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1
exampleSite/static/gatin.json
Normal file
1
exampleSite/static/gatin.json
Normal file
File diff suppressed because one or more lines are too long
11
go.mod
11
go.mod
@@ -3,9 +3,10 @@ module github.com/gethinode/hinode
|
|||||||
go 1.19
|
go 1.19
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/gethinode/mod-bootstrap v1.1.1 // indirect
|
github.com/gethinode/mod-bootstrap v1.2.2 // indirect
|
||||||
github.com/gethinode/mod-flexsearch v1.4.0 // indirect
|
github.com/gethinode/mod-flexsearch v1.6.0 // indirect
|
||||||
github.com/gethinode/mod-fontawesome v1.2.5 // indirect
|
github.com/gethinode/mod-fontawesome v1.5.0 // indirect
|
||||||
github.com/gethinode/mod-katex v1.0.2 // indirect
|
github.com/gethinode/mod-katex v1.0.4 // indirect
|
||||||
github.com/gethinode/mod-leaflet v0.3.4 // indirect
|
github.com/gethinode/mod-leaflet v0.3.5 // indirect
|
||||||
|
github.com/gethinode/mod-lottie v1.3.0 // indirect
|
||||||
)
|
)
|
||||||
|
40
go.sum
40
go.sum
@@ -4,6 +4,12 @@ github.com/gethinode/mod-bootstrap v1.1.0 h1:BbalsW8kmFhv+J+dcc41TGcjIlM/p69AB0h
|
|||||||
github.com/gethinode/mod-bootstrap v1.1.0/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
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 h1:Tx4M5hGVOFrEaxnUONDAm6N9xuRi5UphKlT7F26HujU=
|
||||||
github.com/gethinode/mod-bootstrap v1.1.1/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
github.com/gethinode/mod-bootstrap v1.1.1/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
||||||
|
github.com/gethinode/mod-bootstrap v1.2.0 h1:JkTcImU3qpi25WgKvUxUYiMoiXtrxrG+Wf/utRB5UbU=
|
||||||
|
github.com/gethinode/mod-bootstrap v1.2.0/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
||||||
|
github.com/gethinode/mod-bootstrap v1.2.1 h1:z54dgsbhShhlri+X77Z+yLrg0wz/f8C8ojA/wnlhsJc=
|
||||||
|
github.com/gethinode/mod-bootstrap v1.2.1/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
||||||
|
github.com/gethinode/mod-bootstrap v1.2.2 h1:Q8E04OKWr9owk7nhQ/NBukUgSFhsECxZsOLEaf5oeiQ=
|
||||||
|
github.com/gethinode/mod-bootstrap v1.2.2/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
||||||
github.com/gethinode/mod-flexsearch v1.0.1 h1:FJkRsUzSnQTXl3MWCigT4E6vfff870UWTnkGqaDGIhA=
|
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.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 h1:7BCMyQDlYlskNXuazt8Jg/jg9WREexu2xVkYqThkAX4=
|
||||||
@@ -22,6 +28,12 @@ github.com/gethinode/mod-flexsearch v1.3.0 h1:RbfEDw219Y1rOVp9lHmy5ePdF9lyPalDu2
|
|||||||
github.com/gethinode/mod-flexsearch v1.3.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
github.com/gethinode/mod-flexsearch v1.3.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||||
github.com/gethinode/mod-flexsearch v1.4.0 h1:5e/NVRLyWzUZ9fO/fNsM5o+O7nw+xyln2rfEOtbgfWc=
|
github.com/gethinode/mod-flexsearch v1.4.0 h1:5e/NVRLyWzUZ9fO/fNsM5o+O7nw+xyln2rfEOtbgfWc=
|
||||||
github.com/gethinode/mod-flexsearch v1.4.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
github.com/gethinode/mod-flexsearch v1.4.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.4.1 h1:z+GKvhJ4v6BsZsWVZRgbO9WcmSZEVUkb3Q9a09yXtd8=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.4.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.5.1 h1:9fYlnHgiEXckL0EoC0zlSNO7BWZf5yiOroSWT13Kphc=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.5.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.6.0 h1:Rjx+GLOByFLmaWD9hZXwmuKN8A89te6BZAIq2c9QBKg=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.6.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 h1:ZSK6D20/w4y5GnfYfTBB58uHD0ChIfkpKfRGwioS9rg=
|
||||||
github.com/gethinode/mod-fontawesome v1.0.2/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
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 h1:rsDzUI+3ZlS/do2ff3ne8/z3KwHeysmuA+WsXlumXXk=
|
||||||
@@ -38,12 +50,26 @@ github.com/gethinode/mod-fontawesome v1.2.4 h1:SqE3CQ+boaBIhrVh3MPu4nz0uoHPfEH5t
|
|||||||
github.com/gethinode/mod-fontawesome v1.2.4/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
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 h1:RqkLRj6+s+gM4nKd0IwNMMDA8cRmxfp0fxkVH4FdAGU=
|
||||||
github.com/gethinode/mod-fontawesome v1.2.5/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
github.com/gethinode/mod-fontawesome v1.2.5/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.3.0 h1:oudeDBlAKu8vqYxumWuq5SG5F5itm33NgTrBLgvPulQ=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.3.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.3.1 h1:EdnBuG2B+bi06OcYmcL1NfSxHpRMEGu8TXUqEEpVH4g=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.3.1/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.3.2 h1:qLJSbAFR2T33BuBtC2Iulm9wZql3cy7AhXjxc2YGzBU=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.3.2/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.4.0 h1:JfmVYwQl19jmZxgxY64yvGqJAAEiFkKf2dbZ5Iv08Qw=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.4.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.5.0 h1:3mW5dnWauuF9wSWXNIY+PPgTNPlc/xQOQoG7XGic1Yk=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.5.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
github.com/gethinode/mod-katex v1.0.0 h1:me/3dIIZBkfk1mRIFt8QiAGYwYDoSG5bc2hHRtIutFc=
|
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.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 h1:809QUztxmKgMNchU+v03iMO7Ma+ISc3ZzhXYauc21rs=
|
||||||
github.com/gethinode/mod-katex v1.0.1/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
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 h1:pIG4n3qLl/IVe7BEiwn+GL8r5lOCtF6FDxlcrPKdAXk=
|
||||||
github.com/gethinode/mod-katex v1.0.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
github.com/gethinode/mod-katex v1.0.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||||
|
github.com/gethinode/mod-katex v1.0.3 h1:fvlUWqcUQqv2zRNM2kfmJ6GhXA816Tl1nfVrUkmBStI=
|
||||||
|
github.com/gethinode/mod-katex v1.0.3/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||||
|
github.com/gethinode/mod-katex v1.0.4 h1:NozgWPFnHhx1W+E9DnwMTRpvxPbdqdANEtwp9N3/mj8=
|
||||||
|
github.com/gethinode/mod-katex v1.0.4/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
|
||||||
github.com/gethinode/mod-leaflet v0.2.3 h1:QQI4h+IH0jZ7fx4q0um2YIEiYBoW3OAfW8qHzbRCDPk=
|
github.com/gethinode/mod-leaflet v0.2.3 h1:QQI4h+IH0jZ7fx4q0um2YIEiYBoW3OAfW8qHzbRCDPk=
|
||||||
github.com/gethinode/mod-leaflet v0.2.3/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
|
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 h1:H5MaOa+BB1KuVw7abTqfIn/SNzzRsAyx/WQoSe+2Ykc=
|
||||||
@@ -52,3 +78,17 @@ github.com/gethinode/mod-leaflet v0.3.3 h1:isnjja6VRFvVWBatYSouh46TXSJg2C4/E2BQT
|
|||||||
github.com/gethinode/mod-leaflet v0.3.3/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
|
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 h1:oY+YQ0JiJuhFQNrk9XgFdg0NMsTUQPXNfnILp4ia4r4=
|
||||||
github.com/gethinode/mod-leaflet v0.3.4/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
|
github.com/gethinode/mod-leaflet v0.3.4/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
|
||||||
|
github.com/gethinode/mod-leaflet v0.3.5 h1:69Bv/6zRXhbcTzo7TMr58h3ry47srHRpM1k81LrLbYU=
|
||||||
|
github.com/gethinode/mod-leaflet v0.3.5/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
|
||||||
|
github.com/gethinode/mod-lottie v1.0.0 h1:1CUZMcgN5FAyjjyuP3qkaOQ6M5sv6HUAbosW4sIT5VE=
|
||||||
|
github.com/gethinode/mod-lottie v1.0.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
||||||
|
github.com/gethinode/mod-lottie v1.0.1 h1:+IE7xtnSVQpJS56oBJq9RWKZeFEfxrOZAqE3BSrS/u0=
|
||||||
|
github.com/gethinode/mod-lottie v1.0.1/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
||||||
|
github.com/gethinode/mod-lottie v1.0.2 h1:QM/PJqEl1UhNNoPx6y7pVtwev/mDxUyWNHLqDB76YzI=
|
||||||
|
github.com/gethinode/mod-lottie v1.0.2/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
||||||
|
github.com/gethinode/mod-lottie v1.1.0 h1:KnfOQ45xdv1tpsKCkF5OiE3QuT29ycppBfY6o+rWl/4=
|
||||||
|
github.com/gethinode/mod-lottie v1.1.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
||||||
|
github.com/gethinode/mod-lottie v1.2.0 h1:9S0Y4PlEO66dIvFxayatmDEf8WWxqbLNLi4z563i2gM=
|
||||||
|
github.com/gethinode/mod-lottie v1.2.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
||||||
|
github.com/gethinode/mod-lottie v1.3.0 h1:vQ8CXkjdp2IeFskTzu+ZnKOEio8GtN08urVK+oCH81E=
|
||||||
|
github.com/gethinode/mod-lottie v1.3.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
|
||||||
|
@@ -8,7 +8,6 @@
|
|||||||
"footer",
|
"footer",
|
||||||
"form",
|
"form",
|
||||||
"head",
|
"head",
|
||||||
"hr",
|
|
||||||
"html",
|
"html",
|
||||||
"img",
|
"img",
|
||||||
"input",
|
"input",
|
||||||
@@ -16,7 +15,6 @@
|
|||||||
"link",
|
"link",
|
||||||
"meta",
|
"meta",
|
||||||
"nav",
|
"nav",
|
||||||
"ol",
|
|
||||||
"p",
|
"p",
|
||||||
"path",
|
"path",
|
||||||
"script",
|
"script",
|
||||||
@@ -29,48 +27,35 @@
|
|||||||
],
|
],
|
||||||
"classes": [
|
"classes": [
|
||||||
"active",
|
"active",
|
||||||
"align-content-center",
|
|
||||||
"align-items-center",
|
"align-items-center",
|
||||||
"align-self-center",
|
"align-self-center",
|
||||||
"bg-body",
|
"bg-body",
|
||||||
"bg-info",
|
|
||||||
"bg-opacity-10",
|
"bg-opacity-10",
|
||||||
"bg-primary",
|
"bg-primary",
|
||||||
"bottom-0",
|
"bottom-0",
|
||||||
"bottom-bar",
|
"bottom-bar",
|
||||||
"breadcrumb",
|
|
||||||
"breadcrumb-item",
|
|
||||||
"btn",
|
"btn",
|
||||||
"btn-close",
|
"btn-close",
|
||||||
"btn-primary",
|
"btn-primary",
|
||||||
"btn-social",
|
|
||||||
"col",
|
"col",
|
||||||
"col-12",
|
"col-12",
|
||||||
"col-lg-2",
|
"col-6",
|
||||||
"col-lg-4",
|
|
||||||
"col-md-2",
|
"col-md-2",
|
||||||
"col-md-4",
|
"col-md-4",
|
||||||
"col-md-8",
|
"col-md-8",
|
||||||
"col-md-auto",
|
|
||||||
"col-sm-12",
|
"col-sm-12",
|
||||||
"col-sm-6",
|
|
||||||
"collapse",
|
"collapse",
|
||||||
"collapsed",
|
"collapsed",
|
||||||
"container-fluid",
|
"container-fluid",
|
||||||
"container-xxl",
|
"container-xxl",
|
||||||
"d-block",
|
|
||||||
"d-flex",
|
"d-flex",
|
||||||
"d-inline",
|
"d-inline",
|
||||||
"d-lg-block",
|
|
||||||
"d-md-block",
|
"d-md-block",
|
||||||
"d-md-flex",
|
|
||||||
"d-md-none",
|
"d-md-none",
|
||||||
"d-none",
|
"d-none",
|
||||||
"d-sm-none",
|
|
||||||
"display-1",
|
"display-1",
|
||||||
"display-4",
|
"display-4",
|
||||||
"dropdown",
|
"dropdown",
|
||||||
"dropdown-divider-bg",
|
|
||||||
"dropdown-item",
|
"dropdown-item",
|
||||||
"dropdown-menu",
|
"dropdown-menu",
|
||||||
"dropdown-menu-end",
|
"dropdown-menu-end",
|
||||||
@@ -84,45 +69,36 @@
|
|||||||
"fa-circle-half-stroke",
|
"fa-circle-half-stroke",
|
||||||
"fa-ellipsis",
|
"fa-ellipsis",
|
||||||
"fa-face-frown",
|
"fa-face-frown",
|
||||||
"fa-facebook",
|
|
||||||
"fa-fw",
|
"fa-fw",
|
||||||
"fa-github",
|
"fa-github",
|
||||||
"fa-link",
|
|
||||||
"fa-linkedin",
|
"fa-linkedin",
|
||||||
"fa-medium",
|
"fa-medium",
|
||||||
"fa-moon",
|
"fa-moon",
|
||||||
"fa-share-nodes",
|
|
||||||
"fa-sun",
|
"fa-sun",
|
||||||
"fa-whatsapp",
|
|
||||||
"fa-x-twitter",
|
|
||||||
"fab",
|
"fab",
|
||||||
"fas",
|
"fas",
|
||||||
"feature",
|
|
||||||
"fixed-top",
|
"fixed-top",
|
||||||
"flex-column",
|
"flex-column",
|
||||||
"flex-fill",
|
"flex-fill",
|
||||||
"flex-grow-1",
|
"flex-grow-1",
|
||||||
"flex-wrap",
|
|
||||||
"footer",
|
"footer",
|
||||||
"form-control",
|
"form-control",
|
||||||
"fs-3",
|
"fs-3",
|
||||||
|
"fs-5",
|
||||||
"fw-30",
|
"fw-30",
|
||||||
"fw-bold",
|
"fw-bold",
|
||||||
"gap-2",
|
|
||||||
"h-100",
|
|
||||||
"hstack",
|
"hstack",
|
||||||
"img-fluid",
|
"img-fluid",
|
||||||
"img-wrap",
|
"img-wrap",
|
||||||
"invisible",
|
"invisible",
|
||||||
"is-search",
|
"is-search",
|
||||||
"justify-content-center",
|
"justify-content-center",
|
||||||
"lead",
|
"justify-content-end",
|
||||||
|
"justify-content-start",
|
||||||
"link-bg-footer",
|
"link-bg-footer",
|
||||||
"link-secondary",
|
"link-secondary",
|
||||||
|
"main-content",
|
||||||
"main-nav-toggler",
|
"main-nav-toggler",
|
||||||
"mb-3",
|
|
||||||
"mb-4",
|
|
||||||
"mb-5",
|
|
||||||
"me-auto",
|
"me-auto",
|
||||||
"middle-bar",
|
"middle-bar",
|
||||||
"min-vh-100",
|
"min-vh-100",
|
||||||
@@ -131,58 +107,57 @@
|
|||||||
"mt-3",
|
"mt-3",
|
||||||
"mt-5",
|
"mt-5",
|
||||||
"mx-auto",
|
"mx-auto",
|
||||||
"mx-md-2",
|
"mx-md-0",
|
||||||
"my-auto",
|
"my-auto",
|
||||||
|
"my-md-auto",
|
||||||
"nav-item",
|
"nav-item",
|
||||||
"nav-link",
|
"nav-link",
|
||||||
"navbar",
|
"navbar",
|
||||||
"navbar-brand",
|
"navbar-brand",
|
||||||
"navbar-collapse",
|
"navbar-collapse",
|
||||||
"navbar-expand-md",
|
"navbar-expand-md",
|
||||||
|
"navbar-fixed-top",
|
||||||
"navbar-nav",
|
"navbar-nav",
|
||||||
"navbar-toggler",
|
"navbar-toggler",
|
||||||
"no-js",
|
"no-js",
|
||||||
|
"order-0",
|
||||||
"order-1",
|
"order-1",
|
||||||
"order-2",
|
"order-md-0",
|
||||||
"order-3",
|
"order-md-1",
|
||||||
"order-4",
|
|
||||||
"order-first",
|
|
||||||
"order-sm-2",
|
|
||||||
"order-sm-3",
|
|
||||||
"p-0",
|
"p-0",
|
||||||
"p-2",
|
"p-2",
|
||||||
"p-3",
|
"p-3",
|
||||||
"p-4",
|
"p-4",
|
||||||
"pb-5",
|
"pb-4",
|
||||||
"pe-1",
|
"pb-md-0",
|
||||||
"position-fixed",
|
"position-fixed",
|
||||||
"position-relative",
|
"position-relative",
|
||||||
"px-3",
|
"ps-1",
|
||||||
|
"pt-4",
|
||||||
|
"pt-5",
|
||||||
|
"pt-md-3",
|
||||||
"px-4",
|
"px-4",
|
||||||
"px-xxl-0",
|
"px-xxl-0",
|
||||||
"py-2",
|
|
||||||
"py-3",
|
"py-3",
|
||||||
"py-5",
|
|
||||||
"py-md-1",
|
|
||||||
"rounded",
|
"rounded",
|
||||||
"row",
|
"row",
|
||||||
"row-cols-1",
|
"row-cols-1",
|
||||||
"row-cols-2",
|
"row-cols-2",
|
||||||
|
"row-cols-md-2",
|
||||||
|
"row-cols-sm-2",
|
||||||
"row-cols-sm-3",
|
"row-cols-sm-3",
|
||||||
"row-cols-sm-4",
|
|
||||||
"search",
|
"search",
|
||||||
"search-input",
|
"search-input",
|
||||||
"search-suggestions",
|
"search-suggestions",
|
||||||
"shadow",
|
"shadow",
|
||||||
"svg-inline--fa",
|
"svg-inline--fa",
|
||||||
"switch-mode-collapsed",
|
"switch-mode-collapsed",
|
||||||
"text-body-secondary",
|
|
||||||
"text-center",
|
"text-center",
|
||||||
"text-decoration-none",
|
"text-decoration-none",
|
||||||
"text-end",
|
"text-muted",
|
||||||
"text-secondary",
|
"text-secondary",
|
||||||
"text-sm-start",
|
"text-sm-start",
|
||||||
"text-uppercase",
|
"text-start",
|
||||||
"theme-icon",
|
"theme-icon",
|
||||||
"theme-icon-active",
|
"theme-icon-active",
|
||||||
"toast",
|
"toast",
|
||||||
@@ -190,18 +165,14 @@
|
|||||||
"toast-container",
|
"toast-container",
|
||||||
"toast-header",
|
"toast-header",
|
||||||
"toggler-icon",
|
"toggler-icon",
|
||||||
"top-bar",
|
"top-bar"
|
||||||
"vr",
|
|
||||||
"w-100"
|
|
||||||
],
|
],
|
||||||
"ids": [
|
"ids": [
|
||||||
"-theme",
|
"-theme",
|
||||||
"-theme-collapsed",
|
"-theme-collapsed",
|
||||||
"btn-webshare",
|
|
||||||
"navbar-0-collapse",
|
"navbar-0-collapse",
|
||||||
"toast-container",
|
"toast-container",
|
||||||
"toast-copied-code-message",
|
"toast-copied-code-message"
|
||||||
"toast-message-email-4"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -65,6 +65,8 @@
|
|||||||
translation: "Startseite"
|
translation: "Startseite"
|
||||||
- id: languageSwitcherLabel
|
- id: languageSwitcherLabel
|
||||||
translation: "Sprache"
|
translation: "Sprache"
|
||||||
|
- id: close
|
||||||
|
translation: "Schließen"
|
||||||
|
|
||||||
# Table of contents
|
# Table of contents
|
||||||
- id: toc
|
- id: toc
|
||||||
|
@@ -25,6 +25,8 @@
|
|||||||
translation: "Articles"
|
translation: "Articles"
|
||||||
- id: more
|
- id: more
|
||||||
translation: "More {{ . }}"
|
translation: "More {{ . }}"
|
||||||
|
- id: emptyList
|
||||||
|
translation: "No articles found"
|
||||||
|
|
||||||
# Sharing
|
# Sharing
|
||||||
- id: shareLink
|
- id: shareLink
|
||||||
@@ -39,6 +41,8 @@
|
|||||||
translation: "Link"
|
translation: "Link"
|
||||||
- id: code
|
- id: code
|
||||||
translation: "Code"
|
translation: "Code"
|
||||||
|
- id: download
|
||||||
|
translation: "Download article"
|
||||||
|
|
||||||
# Pagination
|
# Pagination
|
||||||
- id: paginationNav
|
- id: paginationNav
|
||||||
@@ -67,6 +71,8 @@
|
|||||||
translation: "Home"
|
translation: "Home"
|
||||||
- id: languageSwitcherLabel
|
- id: languageSwitcherLabel
|
||||||
translation: "Language"
|
translation: "Language"
|
||||||
|
- id: close
|
||||||
|
translation: "Close"
|
||||||
|
|
||||||
# Table of contents
|
# Table of contents
|
||||||
- id: toc
|
- id: toc
|
||||||
|
@@ -67,6 +67,8 @@
|
|||||||
translation: "Accueil"
|
translation: "Accueil"
|
||||||
- id: languageSwitcherLabel
|
- id: languageSwitcherLabel
|
||||||
translation: "Langage"
|
translation: "Langage"
|
||||||
|
- id: close
|
||||||
|
translation: "Fermer"
|
||||||
|
|
||||||
# Table of contents
|
# Table of contents
|
||||||
- id: toc
|
- id: toc
|
||||||
|
@@ -23,6 +23,8 @@
|
|||||||
translation: "Artikelen"
|
translation: "Artikelen"
|
||||||
- id: more
|
- id: more
|
||||||
translation: "Meer {{ . }}"
|
translation: "Meer {{ . }}"
|
||||||
|
- id: emptyList
|
||||||
|
translation: "Geen artikelen gevonden"
|
||||||
|
|
||||||
# Sharing
|
# Sharing
|
||||||
- id: shareLink
|
- id: shareLink
|
||||||
@@ -37,6 +39,8 @@
|
|||||||
translation: "Link"
|
translation: "Link"
|
||||||
- id: code
|
- id: code
|
||||||
translation: "Code"
|
translation: "Code"
|
||||||
|
- id: download
|
||||||
|
translation: "Download artikel"
|
||||||
|
|
||||||
# Pagination
|
# Pagination
|
||||||
- id: paginationNav
|
- id: paginationNav
|
||||||
@@ -65,6 +69,8 @@
|
|||||||
translation: "Home"
|
translation: "Home"
|
||||||
- id: languageSwitcherLabel
|
- id: languageSwitcherLabel
|
||||||
translation: "Taal"
|
translation: "Taal"
|
||||||
|
- id: close
|
||||||
|
translation: "Sluiten"
|
||||||
|
|
||||||
# Table of contents
|
# Table of contents
|
||||||
- id: toc
|
- id: toc
|
||||||
|
@@ -1,13 +1,15 @@
|
|||||||
{{ define "main"}}
|
{{ define "main"}}
|
||||||
<div class="container-xxl flex-fill d-flex align-content-center flex-wrap feature">
|
<div class="d-flex flex-fill">
|
||||||
<div class="w-100 text-center">
|
<div class="container-xxl my-auto">
|
||||||
<span class="text-secondary fw-bold">
|
<div class="text-center">
|
||||||
{{ partial "assets/icon.html" (dict "icon" "fa face-frown fa-10x") }}
|
<span class="text-secondary fw-bold">
|
||||||
<p class="display-1 mt-3 fw-bold">404</p>
|
{{ partial "assets/icon.html" (dict "icon" "fa face-frown fa-10x") }}
|
||||||
<p class="fs-3">{{ T "pageNotFoundTitle" }}</p>
|
<p class="display-1 mt-3 fw-bold">404</p>
|
||||||
</span>
|
<p class="fs-3">{{ T "pageNotFoundTitle" }}</p>
|
||||||
{{- $home := printf "<a href=\"%s\">%s</a>" ("/" | relLangURL) (T "pageNotFoundHome") -}}
|
</span>
|
||||||
<p>{{ T "pageNotFound" $home | safeHTML }}</p>
|
{{- $home := printf "<a href=\"%s\">%s</a>" ("/" | relLangURL) (T "pageNotFoundHome") -}}
|
||||||
|
<p>{{ T "pageNotFound" $home | safeHTML }}</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
@@ -1,8 +1,30 @@
|
|||||||
{{- $section := .Section }}
|
{{- define "partials/optional-scripts.html" -}}
|
||||||
|
{{- $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 -}}
|
||||||
|
|
||||||
|
{{ $state := "" }}
|
||||||
|
{{- with (index site.Params.modules $mod) -}}
|
||||||
|
{{- with index . "state" }}{{ $state = . }}{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- partial "footer/scripts.html" (dict "filename" $filename "match" $match "header" false "skipTemplate" $skipTemplate "state" $state "page" .) }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- /* Set version-aware sidebar menu */ -}}
|
||||||
{{- $version := partial "utilities/GetVersion.html" (dict "page" . "base" true) -}}
|
{{- $version := partial "utilities/GetVersion.html" (dict "page" . "base" true) -}}
|
||||||
{{- $.Scratch.Set "version" $version -}}
|
{{- $.Scratch.Set "version" $version -}}
|
||||||
{{ with partial "utilities/GetMenu" (dict "page" . "version" $version) }}{{ $.Scratch.Set "sidebar" . }}{{ end }}
|
{{ with partial "utilities/GetMenu" (dict "page" . "version" $version) }}{{ $.Scratch.Set "sidebar" . }}{{ end }}
|
||||||
|
|
||||||
|
{{- /* Validate if current version is latest */ -}}
|
||||||
{{- if and site.Params.docs.checkVersion $version -}}
|
{{- if and site.Params.docs.checkVersion $version -}}
|
||||||
{{- if ne $version "latest" -}}
|
{{- if ne $version "latest" -}}
|
||||||
{{- if partial "utilities/IsOlder" (dict "current" $version) -}}
|
{{- if partial "utilities/IsOlder" (dict "current" $version) -}}
|
||||||
@@ -12,10 +34,20 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- /* Validate module configuration */ -}}
|
||||||
{{- if and .IsPage (not (in .Site.Params.modules.core "bootstrap")) -}}
|
{{- 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" -}}
|
{{- errorf "Bootstrap is a required module, please add it to 'modules.core' in your site parameters" -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $fullCover := or (or (and .IsHome .Site.Params.home.fullCover) .Page.Params.fullCover) .Site.Params.main.footerBelowFold }}
|
||||||
|
{{- $.Scratch.Set "fullCover" $fullCover -}}
|
||||||
|
|
||||||
|
{{- /* Define section headings */ -}}
|
||||||
|
{{- $loading := "" -}}
|
||||||
|
{{- if $fullCover }}{{ $loading = .Site.Params.main.loading }}{{ end -}}
|
||||||
|
{{ $sections := partial "utilities/GetSections.html" (dict "page" . "loading" $loading) }}
|
||||||
|
{{- $.Scratch.Set "sections" $sections -}}
|
||||||
|
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html lang="{{ .Site.Language.Lang }}" class="no-js">
|
<html lang="{{ .Site.Language.Lang }}" class="no-js">
|
||||||
<head>
|
<head>
|
||||||
@@ -24,77 +56,37 @@
|
|||||||
|
|
||||||
<body>
|
<body>
|
||||||
{{- partial "footer/scripts.html" (dict "filename" "js/critical.bundle.js" "match" "js/critical/**.js" "header" true "page" .) -}}
|
{{- 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="d-flex flex-column min-vh-100">
|
||||||
<div class="{{ if .Site.Params.navigation.fixed }}mb-4{{ end }}">
|
<div class="d-flex flex-column {{ if $fullCover }} fullscreen{{ end }}{{ if .IsHome }} {{ .Site.Params.home.style }}{{ end }}">
|
||||||
{{- partial "assets/navbar.html" (dict
|
{{- partial "assets/navbar.html" (dict
|
||||||
"page" .
|
"page" .
|
||||||
"fixed" (string .Site.Params.navigation.fixed)
|
"fixed" (string site.Params.navigation.fixed)
|
||||||
"color" (.Site.Params.navigation.color)
|
"color" site.Params.navigation.color
|
||||||
"style" (default "light" .Site.Params.navigation.style)
|
"style" (default "light" site.Params.navigation.style)
|
||||||
"size" (default "md" .Site.Params.navigation.size))
|
"size" (default "md" site.Params.navigation.size))
|
||||||
-}}
|
-}}
|
||||||
</div>
|
<div class="main-content">
|
||||||
{{ if .IsHome -}}
|
{{ block "featured" . }}{{ end -}}
|
||||||
{{ if .Site.Params.home.fullCover -}}
|
|
||||||
<div class="d-flex flex-fill {{ if .Site.Params.navigation.fixed }}mt-5{{ end }}">
|
|
||||||
{{ block "featured" . }}{{ end -}}
|
|
||||||
</div>
|
|
||||||
{{ else -}}
|
|
||||||
<div class="{{ if .Site.Params.navigation.fixed }}mt-5{{ end }}">
|
|
||||||
{{ block "featured" . }}{{ end -}}
|
|
||||||
</div>
|
|
||||||
<div class="d-flex flex-column flex-fill">
|
|
||||||
{{ block "main" . }}{{ end -}}
|
|
||||||
</div>
|
|
||||||
{{ if not .Site.Params.main.footerBelowFold }}
|
|
||||||
<div class="">
|
|
||||||
{{- partial "footer/social.html" . -}}
|
|
||||||
{{- partial "footer/footer.html" . -}}
|
|
||||||
</div>
|
|
||||||
{{ end }}
|
|
||||||
{{ end -}}
|
|
||||||
{{ else -}}
|
|
||||||
<div class="d-flex flex-column flex-fill {{ if .Site.Params.navigation.fixed }}mt-5{{ end }}">
|
|
||||||
{{ block "main" . }}{{ end -}}
|
|
||||||
</div>
|
</div>
|
||||||
{{ if not .Site.Params.main.footerBelowFold }}
|
{{ if .Site.Params.main.footerBelowFold }}
|
||||||
<div class="">
|
{{ block "main" . }}{{ end -}}
|
||||||
{{- partial "footer/social.html" . -}}
|
|
||||||
{{- partial "footer/footer.html" . -}}
|
|
||||||
</div>
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end -}}
|
</div>
|
||||||
|
|
||||||
|
{{ if not .Site.Params.main.footerBelowFold }}
|
||||||
|
{{ block "main" . }}{{ end -}}
|
||||||
|
{{- partial "footer/social.html" . -}}
|
||||||
|
{{- partial "footer/footer.html" . -}}
|
||||||
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{ if and .IsHome .Site.Params.home.fullCover -}}
|
{{ if .Site.Params.main.footerBelowFold }}
|
||||||
<div class="">
|
{{- partial "footer/social.html" . -}}
|
||||||
{{ block "main" . }}{{ end -}}
|
{{- partial "footer/footer.html" . -}}
|
||||||
</div>
|
|
||||||
<div class="">
|
|
||||||
{{- partial "footer/social.html" . -}}
|
|
||||||
{{- partial "footer/footer.html" . -}}
|
|
||||||
</div>
|
|
||||||
{{ else if .Site.Params.main.footerBelowFold }}
|
|
||||||
<div class="">
|
|
||||||
{{- partial "footer/social.html" . -}}
|
|
||||||
{{- partial "footer/footer.html" . -}}
|
|
||||||
</div>
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{- partial "footer/toast-container.html" . -}}
|
{{- partial "footer/toast-container.html" . -}}
|
||||||
{{- partialCached "footer/scripts.html" (dict "header" false "page" . "core" true) }}
|
{{- partialCached "footer/scripts.html" (dict "header" false "page" . "core" true) }}
|
||||||
{{- $modules := site.Params.modules.optional | intersect .Params.modules -}}
|
{{- partial "partials/optional-scripts.html" . -}}
|
||||||
{{- 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>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@@ -1,15 +1,96 @@
|
|||||||
|
{{- define "featured" }}
|
||||||
|
{{- $sections := $.Scratch.Get "sections" -}}
|
||||||
|
{{- $headings := slice }}
|
||||||
|
{{ if .Params.sectionMenu }}
|
||||||
|
{{ range $sections }}
|
||||||
|
{{ $headings = $headings | append .title }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{- $page := . -}}
|
||||||
|
{{- $orientation := site.Params.list.feature.orientation | default "horizontal" -}}
|
||||||
|
{{- $width := site.Params.list.feature.width | default 6 -}}
|
||||||
|
{{- $justify := site.Params.list.feature.justify | default "center" -}}
|
||||||
|
{{- $align := site.Params.list.feature.align | default "center" -}}
|
||||||
|
{{- $actions := $page.Params.actions -}}
|
||||||
|
{{- $layout := $page.Params.layout -}}
|
||||||
|
|
||||||
|
{{ if $page.IsHome }}
|
||||||
|
{{- $orientation = or site.Params.home.feature.orientation $orientation -}}
|
||||||
|
{{- $width = or site.Params.home.feature.width $width -}}
|
||||||
|
{{- $justify = or site.Params.home.feature.justify $justify -}}
|
||||||
|
{{- $align = or site.Params.home.feature.align $align -}}
|
||||||
|
{{- $actions = (or $actions site.Params.featured.actions) -}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{/* Display featured section */}}
|
||||||
|
{{- if or (eq $layout "featured") $page.IsHome -}}
|
||||||
|
{{- partial "list/featured.html" (dict
|
||||||
|
"page" .
|
||||||
|
"headings" $headings
|
||||||
|
"actions" $actions
|
||||||
|
"orientation" $orientation
|
||||||
|
"width" $width
|
||||||
|
"justify" $justify
|
||||||
|
"align" $align)
|
||||||
|
-}}
|
||||||
|
{{- end -}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{- define "main" -}}
|
{{- define "main" -}}
|
||||||
<!-- Ignore empty content, see https://github.com/gohugoio/hugo/issues/11406 -->
|
{{- $page := . -}}
|
||||||
{{- $content := "" -}}
|
{{- $sections := $.Scratch.Get "sections" -}}
|
||||||
{{- if .Content }}{{ $content = partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}{{ end -}}
|
{{- $fullCover := $.Scratch.Get "fullCover" -}}
|
||||||
{{- partial "assets/section-list.html" (dict
|
{{- $layout := $page.Params.layout -}}
|
||||||
"page" .
|
|
||||||
"section" .Type
|
<div class="container-xxl px-4 px-xxl-0">
|
||||||
"home" false
|
{{- if ne $layout "featured" -}}
|
||||||
"nested" .Params.Nested
|
{{ if and (not $page.IsHome) site.Params.navigation.breadcrumb }}
|
||||||
"title" (or .Title .Type)
|
<div>{{ partial "assets/breadcrumb.html" $page }}</div>
|
||||||
"description" .Description
|
{{ end -}}
|
||||||
"content" $content
|
{{- end -}}
|
||||||
"paginate" true)
|
|
||||||
-}}
|
<div class="row row-cols-1 row-cols-sm-2">
|
||||||
{{- end -}}
|
<div class="col col-sm-12 col-md-8">
|
||||||
|
{{ if not $page.IsHome }}
|
||||||
|
{{ with $page.Title }}<p id="{{ anchorize . }}" class="display-4 mt-5{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ if ($page.Params.menu) }}
|
||||||
|
{{- partial "assets/section-menu.html" $page -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- $loading := "" -}}
|
||||||
|
{{- if or (eq $layout "featured") $page.IsHome -}}
|
||||||
|
{{- if $fullCover}}{{ $loading = site.Params.main.loading }}{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{- $content := partial "utilities/ProcessContent" (dict "page" $page "raw" $page.RawContent "loading" $loading) -}}
|
||||||
|
{{ $content | safeHTML }}
|
||||||
|
{{ if and (and $sections (eq (len $sections) 1)) (not $content) }}
|
||||||
|
<p class="pt-4">{{- T "emptyList" }}.</p>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
{{ with $page.Params.contact }}
|
||||||
|
{{- $contact := site.GetPage . }}
|
||||||
|
{{- if not $contact }}
|
||||||
|
{{- errorf "Error processing content file '%s' - Cannot find contact: %s" $page.File . -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{ $color := site.Params.contact.color | default "primary" }}
|
||||||
|
{{ $style := site.Params.contact.style | default "shadow" }}
|
||||||
|
<div class="col col-md-4 d-none d-md-block pt-5">
|
||||||
|
{{- partial "assets/card.html" (dict "path" $page.Params.contact "color" $color "header" "none" "footer" "none" "ratio" "1x1" "class" (printf "w-75 mx-auto mt-4 %s" $style)) -}}
|
||||||
|
</div>
|
||||||
|
<div class="col col-sm-12 d-md-none pt-5">
|
||||||
|
{{- partial "assets/card.html" (dict "path" $page.Params.contact "color" $color "header" "none" "footer" "none" "orientation" "horizontal" "class" $style) -}}
|
||||||
|
</div>
|
||||||
|
{{- end }}
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{/* Display generated sections */}}
|
||||||
|
{{ range $sections }}
|
||||||
|
{{ .content | safeHTML }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{/* Fill remaining space to push footer to viewport bottom */}}
|
||||||
|
<div class="container-fluid flex-fill"></div>
|
||||||
|
{{- end -}}
|
||||||
|
@@ -1,119 +1,15 @@
|
|||||||
{{- define "partials/header.html" -}}
|
{{- define "partials/single-main.html" -}}
|
||||||
{{ if site.Params.navigation.breadcrumb }}{{ partial "assets/breadcrumb.html" . }}{{ end -}}
|
{{ if .Site.Params.navigation.breadcrumb }}{{ partial "assets/breadcrumb.html" . }}{{ end -}}
|
||||||
{{ if in (slice "docs" "minimal") .Layout }}
|
|
||||||
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
|
|
||||||
{{ partial "assets/sharing.html" . }}
|
|
||||||
<p class="lead mb-5">{{ .Description }}</p>
|
|
||||||
{{ else }}
|
|
||||||
{{ $lastmodstr := (partial "utilities/date.html" (dict "date" .Lastmod "format" "long")) -}}
|
|
||||||
{{ $datestr := (partial "utilities/date.html" (dict "date" .Date "format" "long")) -}}
|
|
||||||
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
|
|
||||||
<small class="text-body-secondary text-uppercase">
|
|
||||||
{{ $datestr | i18n "postedOnDate" -}}
|
|
||||||
{{ if ne $datestr $lastmodstr -}} ({{ $lastmodstr | i18n "lastModified" }}){{ end }} •
|
|
||||||
{{ .ReadingTime | lang.FormatNumber 0 }} {{ i18n "minutesShort" }} {{ i18n "read" }} •
|
|
||||||
{{ .WordCount | lang.FormatNumber 0 }} {{ i18n "words" }}
|
|
||||||
</small>
|
|
||||||
|
|
||||||
{{- if gt (len (.GetTerms "tags")) 0 -}}
|
{{ .Render "single/header" }}
|
||||||
<div class="mt-3">
|
|
||||||
<div class="d-none-dark">
|
|
||||||
<div class="hstack gap-3">
|
|
||||||
{{ range (.GetTerms "tags") -}}
|
|
||||||
{{- $url := (path.Join .Page.RelPermalink) | relLangURL -}}
|
|
||||||
{{ partial "assets/button.html" (dict "href" $url "title" .LinkTitle "color" "light" "size" "sm") }}
|
|
||||||
{{ end -}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="d-none-light">
|
|
||||||
<div class="hstack gap-3">
|
|
||||||
{{ range (.GetTerms "tags") -}}
|
|
||||||
{{- $url := (path.Join .Page.RelPermalink) | relLangURL -}}
|
|
||||||
{{ partial "assets/button.html" (dict "href" $url "title" .LinkTitle "color" "primary" "size" "sm" "outline" "true") }}
|
|
||||||
{{ end -}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{- end -}}
|
|
||||||
{{ partial "assets/sharing.html" . }}
|
|
||||||
<p class="lead mb-5 mt-3">{{ .Description }}</p>
|
|
||||||
{{ end }}
|
|
||||||
{{ end -}}
|
|
||||||
|
|
||||||
{{ define "partials/body.html" -}}
|
|
||||||
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}}
|
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}}
|
||||||
<div class="d-md-none pb-5">{{ partial "assets/toc-dropdown.html" . }}</div>
|
<div class="d-md-none pb-5">{{ partial "assets/toc-dropdown.html" . }}</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{ .Render "single/body" }}
|
||||||
|
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}
|
||||||
|
|
||||||
{{ if not (in (slice "docs" "minimal") .Layout) }}
|
{{ .Render "single/footer" }}
|
||||||
{{- $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 }}
|
|
||||||
|
|
||||||
<!-- Ignore empty content, see https://github.com/gohugoio/hugo/issues/11406 -->
|
|
||||||
{{- if .Content }}{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}{{ end -}}
|
|
||||||
{{ end -}}
|
|
||||||
|
|
||||||
{{ define "partials/footer.html" -}}
|
|
||||||
{{ if eq .Layout "docs" }}
|
|
||||||
<div class="mt-5 small">
|
|
||||||
{{ partial "utilities/git.html" . }}
|
|
||||||
</div>
|
|
||||||
{{ else if ne .Layout "minimal" }}
|
|
||||||
<div class="row row-cols-2 mt-5 mb-3">
|
|
||||||
<div class="col">
|
|
||||||
{{ with .NextInSection -}}
|
|
||||||
{{ $next := . -}}
|
|
||||||
{{ with .OutputFormats.Get "html" -}}
|
|
||||||
<a class="next" href="{{ $next.RelPermalink }}">
|
|
||||||
{{- partial "assets/icon.html" (dict "icon" "fas arrow-left") }} {{ $next.Title }}</a>
|
|
||||||
{{- end -}}
|
|
||||||
{{ end -}}
|
|
||||||
</div>
|
|
||||||
<div class="col text-end">
|
|
||||||
{{ with .PrevInSection -}}
|
|
||||||
{{ $prev := . -}}
|
|
||||||
{{ with .OutputFormats.Get "html" -}}
|
|
||||||
<a class="previous" href="{{ $prev.RelPermalink }}">{{ $prev.Title }} {{- partial "assets/icon.html" (dict "icon" "fas arrow-right") }}</a>
|
|
||||||
{{- end -}}
|
|
||||||
{{ end -}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{ end }}
|
|
||||||
{{- if and .Site.Params.comments.enabled .Params.showComments | default true -}}
|
{{- if and .Site.Params.comments.enabled .Params.showComments | default true -}}
|
||||||
<hr>
|
<hr>
|
||||||
{{ partial "assets/comments.html" . }}
|
{{ partial "assets/comments.html" . }}
|
||||||
@@ -121,52 +17,66 @@
|
|||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
{{ define "main" -}}
|
{{ define "main" -}}
|
||||||
|
{{- $download := .Params.download -}}
|
||||||
|
{{- if and $download (not (fileExists (path.Join "static" $download))) -}}
|
||||||
|
{{- errorf "Cannot find download file for page '%s': %s" .File.Path $download -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- $menu := .Scratch.Get "sidebar" -}}
|
{{- $menu := .Scratch.Get "sidebar" -}}
|
||||||
{{- $version := .Scratch.Get "version" -}}
|
{{- $version := .Scratch.Get "version" -}}
|
||||||
{{- $sidebar := .Site.Params.navigation.sidebar | default true -}}
|
|
||||||
{{ if and $menu $sidebar -}}
|
{{ $sidebar := "" }}
|
||||||
|
{{- $hasSidebar := .Site.Params.navigation.sidebar | default true -}}
|
||||||
|
{{ if and $menu $hasSidebar }}{{ $sidebar = partial "assets/sidebar.html" (dict "page" . "menu" $menu "version" $version) }}{{ end }}
|
||||||
|
|
||||||
|
{{ $toc := "" }}
|
||||||
|
{{- $hasTOC := and .Site.Params.navigation.toc .Params.includeToc | default true -}}
|
||||||
|
{{ if $hasTOC }}{{ $toc = partial "assets/toc.html" (dict "page" . "download" $download) }}{{ end -}}
|
||||||
|
|
||||||
|
{{ with $sidebar -}}
|
||||||
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvass-sidebar" aria-inledby="offcanvas-label">
|
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvass-sidebar" aria-inledby="offcanvas-label">
|
||||||
<div class="offcanvas-header">
|
<div class="offcanvas-header">
|
||||||
<h5 class="offcanvas-title" id="offcanvas-label">{{ strings.FirstUpper .Section }}</h5>
|
<h5 class="offcanvas-title" id="offcanvas-label">{{ strings.FirstUpper $.Section }}</h5>
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="{{ T "close" }}"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="offcanvas-body">
|
<div class="offcanvas-body">
|
||||||
{{ partial "assets/sidebar" (dict "page" . "menu" $menu "version" $version) }}
|
{{ . | safeHTML }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{{ end }}
|
||||||
<div class="container-xxl px-3 px-xxl-0">
|
|
||||||
|
<div class="container-xxl flex-fill p-4 px-xxl-0">
|
||||||
|
{{ if and $menu $hasSidebar -}}
|
||||||
<div class="row row-cols-md-2 row-cols-lg-3">
|
<div class="row row-cols-md-2 row-cols-lg-3">
|
||||||
<div class="col col-md-3 col-lg-2 d-none pt-5 d-md-block sidebar-overflow sticky-top">
|
<div class="col col-md-3 col-lg-2 d-none pt-5 d-md-block sidebar-overflow sticky-top">
|
||||||
{{ partial "assets/sidebar" (dict "page" . "menu" $menu "version" $version) }}
|
{{ $sidebar | safeHTML }}
|
||||||
</div>
|
</div>
|
||||||
<div class="col col-md-9 col-lg-8 mb-5 p-4">
|
<div class="col col-md-9 col-lg-8 mb-5 p-4">
|
||||||
{{ partial "partials/header.html" . }}
|
{{ partial "partials/single-main.html" . }}
|
||||||
{{ partial "partials/body.html" . }}
|
|
||||||
{{ partial "partials/footer.html" . }}
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col col-lg-2 d-none d-lg-block pt-5">
|
<div class="col col-lg-2 d-none d-lg-block pt-5">
|
||||||
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}}
|
{{ $toc | safeHTML }}
|
||||||
{{ partial "assets/toc.html" . -}}
|
|
||||||
{{ end -}}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
{{ else if $hasSidebar }}
|
||||||
{{ else }}
|
|
||||||
<div class="container-xxl px-3 px-xxl-0">
|
|
||||||
<div class="row row-cols-1 row-cols-sm-3">
|
<div class="row row-cols-1 row-cols-sm-3">
|
||||||
<div class="col col-md-2 d-none d-md-block"></div>
|
<div class="col col-md-2 d-none d-md-block"></div>
|
||||||
<div class="col col-sm-12 col-md-8">
|
<div class="col col-sm-12 col-md-8">
|
||||||
{{ partial "partials/header.html" . }}
|
{{ partial "partials/single-main.html" . }}
|
||||||
{{ partial "partials/body.html" . }}
|
|
||||||
{{ partial "partials/footer.html" . }}
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col col-md-2 d-none d-md-block">
|
<div class="col col-md-2 d-none d-md-block">
|
||||||
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}}
|
{{ $toc | safeHTML }}
|
||||||
{{ partial "assets/toc.html" . -}}
|
|
||||||
{{ end -}}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
{{ else }}
|
||||||
{{ end -}}
|
<div class="row row-cols-1 row-cols-sm-2">
|
||||||
|
<div class="col col-sm-12 col-md-9">
|
||||||
|
{{ partial "partials/single-main.html" . }}
|
||||||
|
</div>
|
||||||
|
<div class="col col-md-3 d-none d-md-block">
|
||||||
|
{{ $toc | safeHTML }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{ end -}}
|
||||||
|
</div>
|
||||||
{{ end -}}
|
{{ end -}}
|
1
layouts/_default/single/body.html
Normal file
1
layouts/_default/single/body.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{{- partial "single/thumbnail.html" . -}}
|
20
layouts/_default/single/footer.html
Normal file
20
layouts/_default/single/footer.html
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<div class="row row-cols-2 mt-5 mb-3">
|
||||||
|
<div class="col">
|
||||||
|
{{ with .NextInSection -}}
|
||||||
|
{{ if .OutputFormats.Get "html" -}}
|
||||||
|
<a class="next" href="{{ .RelPermalink }}">
|
||||||
|
{{- partial "assets/icon.html" (dict "icon" "fas arrow-left" "spacing" false) }} {{ .LinkTitle }}
|
||||||
|
</a>
|
||||||
|
{{- end -}}
|
||||||
|
{{ end -}}
|
||||||
|
</div>
|
||||||
|
<div class="col text-end">
|
||||||
|
{{ with .PrevInSection -}}
|
||||||
|
{{ if .OutputFormats.Get "html" -}}
|
||||||
|
<a class="previous" href="{{ .RelPermalink }}">
|
||||||
|
{{ .LinkTitle }} {{- partial "assets/icon.html" (dict "icon" "fas arrow-right" "spacing" false) }}
|
||||||
|
</a>
|
||||||
|
{{- end -}}
|
||||||
|
{{ end -}}
|
||||||
|
</div>
|
||||||
|
</div>
|
33
layouts/_default/single/header.html
Normal file
33
layouts/_default/single/header.html
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{{ $lastmodstr := (partial "utilities/date.html" (dict "date" .Lastmod "format" "long")) -}}
|
||||||
|
{{ $datestr := (partial "utilities/date.html" (dict "date" .Date "format" "long")) -}}
|
||||||
|
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
|
||||||
|
<small class="text-body-secondary text-uppercase">
|
||||||
|
{{ $datestr | i18n "postedOnDate" -}}
|
||||||
|
{{ if ne $datestr $lastmodstr -}} ({{ $lastmodstr | i18n "lastModified" }}){{ end }} •
|
||||||
|
{{ .ReadingTime | lang.FormatNumber 0 }} {{ i18n "minutesShort" }} {{ i18n "read" }} •
|
||||||
|
{{ .WordCount | lang.FormatNumber 0 }} {{ i18n "words" }}
|
||||||
|
</small>
|
||||||
|
|
||||||
|
{{- if gt (len (.GetTerms "tags")) 0 -}}
|
||||||
|
<div class="mt-3">
|
||||||
|
<div class="d-none-dark">
|
||||||
|
<div class="hstack gap-1">
|
||||||
|
{{ range (.GetTerms "tags") -}}
|
||||||
|
{{- $url := (path.Join .Page.RelPermalink) | relLangURL -}}
|
||||||
|
{{ partial "assets/button.html" (dict "href" $url "title" .LinkTitle "color" "light" "size" "sm") }}
|
||||||
|
{{ end -}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="d-none-light">
|
||||||
|
<div class="hstack gap-1">
|
||||||
|
{{ range (.GetTerms "tags") -}}
|
||||||
|
{{- $url := (path.Join .Page.RelPermalink) | relLangURL -}}
|
||||||
|
{{ partial "assets/button.html" (dict "href" $url "title" .LinkTitle "color" "primary" "size" "sm" "outline" "true") }}
|
||||||
|
{{ end -}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{- end -}}
|
||||||
|
{{ partial "assets/sharing.html" . }}
|
||||||
|
<p class="lead mb-5 mt-3">{{ .Description }}</p>
|
1
layouts/docs/single/body.html
Normal file
1
layouts/docs/single/body.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{{/* Intentionally left blank to suppress thumbnail */}}
|
3
layouts/docs/single/footer.html
Normal file
3
layouts/docs/single/footer.html
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<div class="mt-5 small">
|
||||||
|
{{ partial "utilities/git.html" . }}
|
||||||
|
</div>
|
3
layouts/docs/single/header.html
Normal file
3
layouts/docs/single/header.html
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
|
||||||
|
{{ partial "assets/sharing.html" . }}
|
||||||
|
<p class="lead mb-5">{{ .Description }}</p>
|
@@ -1,40 +0,0 @@
|
|||||||
{{- define "featured" -}}
|
|
||||||
{{- partial "home/featured.html" . -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- 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 := $sections -}}
|
|
||||||
{{- $sectionPage := site.GetPage "section" $section -}}
|
|
||||||
{{- $sectionURL := $sectionPage.RelPermalink -}}
|
|
||||||
{{- $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 -}}
|
|
||||||
{{- $content := $sectionPage.Content -}}
|
|
||||||
{{- $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
|
|
||||||
"section" $section
|
|
||||||
"home" true
|
|
||||||
"nested" true
|
|
||||||
"thumbnail" $thumbnail
|
|
||||||
"icon" $icon
|
|
||||||
"content" $content
|
|
||||||
"moreTitle" $moreTitle
|
|
||||||
"sectionURL" $sectionURL)
|
|
||||||
-}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
1
layouts/minimal/single/body.html
Normal file
1
layouts/minimal/single/body.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{{/* Intentionally left blank to suppress thumbnail */}}
|
1
layouts/minimal/single/footer.html
Normal file
1
layouts/minimal/single/footer.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{{/* Intentionally left blank to suppress page navigation */}}
|
3
layouts/minimal/single/header.html
Normal file
3
layouts/minimal/single/header.html
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
|
||||||
|
{{ partial "assets/sharing.html" . }}
|
||||||
|
<p class="lead mb-5">{{ .Description }}</p>
|
@@ -1,7 +1,7 @@
|
|||||||
<nav aria-label="breadcrumb">
|
<nav aria-label="breadcrumb">
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
{{- range $index, $item := .Page.Ancestors.Reverse -}}
|
{{- range $index, $item := .Page.Ancestors.Reverse -}}
|
||||||
{{- $title := .Title -}}
|
{{- $title := .LinkTitle -}}
|
||||||
{{- if .IsHome }}{{ $title = T "home" }}{{ end -}}
|
{{- if .IsHome }}{{ $title = T "home" }}{{ end -}}
|
||||||
{{- $address := or .RelPermalink (.Params.Redirect | relLangURL) -}}
|
{{- $address := or .RelPermalink (.Params.Redirect | relLangURL) -}}
|
||||||
{{ if $address }}
|
{{ if $address }}
|
||||||
@@ -10,6 +10,6 @@
|
|||||||
<li class="breadcrumb-item">{{ $title }}</li>
|
<li class="breadcrumb-item">{{ $title }}</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
<li class="breadcrumb-item active" aria-current="page">{{ .Page.Title }}</li>
|
<li class="breadcrumb-item active" aria-current="page">{{ .Page.LinkTitle }}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
@@ -28,6 +28,7 @@
|
|||||||
"tab" Optional flag to indicate if an external link should open in a new tab, defaults to setting
|
"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.
|
"main.externalLinks.tab" in the site's parameters.
|
||||||
"attributes" Optional dictionary of key-value pairs added as custom attributes to the button element ('<a>').
|
"attributes" Optional dictionary of key-value pairs added as custom attributes to the button element ('<a>').
|
||||||
|
"spacing" Optional flag to add spacing to the inline button, defaults to "true".
|
||||||
-->
|
-->
|
||||||
|
|
||||||
{{- $title := trim .title " \r\n" -}}
|
{{- $title := trim .title " \r\n" -}}
|
||||||
@@ -126,6 +127,8 @@
|
|||||||
{{- $target := "" -}}
|
{{- $target := "" -}}
|
||||||
{{- $rel := "" -}}
|
{{- $rel := "" -}}
|
||||||
|
|
||||||
|
{{- $spacing := .spacing | default true -}}
|
||||||
|
|
||||||
{{- if $isExternal -}}
|
{{- if $isExternal -}}
|
||||||
{{- if $tab -}}
|
{{- if $tab -}}
|
||||||
{{- $target = "_blank" -}}
|
{{- $target = "_blank" -}}
|
||||||
@@ -140,7 +143,7 @@
|
|||||||
|
|
||||||
{{- $attributes := .attributes -}}
|
{{- $attributes := .attributes -}}
|
||||||
|
|
||||||
<a aria-label="{{ or $label $title }}" {{ if ne $state "disabled" }}{{ with $href }}href="{{ . }}"{{ end }}{{ end -}}
|
<a aria-label="{{ (or $label $title) | safeHTML }}" {{ if ne $state "disabled" }}{{ with $href }}href="{{ . }}"{{ end }}{{ end -}}
|
||||||
{{- with $id }} id="{{ . }}"{{ end -}}
|
{{- with $id }} id="{{ . }}"{{ end -}}
|
||||||
{{- with $target }} target="{{ . }}"{{ end }}{{ with $rel }} rel="{{ . }}"{{ end -}}
|
{{- with $target }} target="{{ . }}"{{ end }}{{ with $rel }} rel="{{ . }}"{{ end -}}
|
||||||
{{- with $toast }} data-toast-target="{{ $toast }}"{{ end -}}
|
{{- with $toast }} data-toast-target="{{ $toast }}"{{ end -}}
|
||||||
@@ -157,8 +160,8 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
>
|
>
|
||||||
<div class="d-flex justify-content-{{ $justify }}">
|
<div class="d-flex justify-content-{{ $justify }}">
|
||||||
<div class="my-auto">{{ $title }}</div>
|
<div class="my-auto">{{ $title | safeHTML }}</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 }}
|
{{- 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 "spacing" false) }}</div>{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{- with $badge }}
|
{{- with $badge }}
|
||||||
@@ -167,4 +170,4 @@
|
|||||||
{{ with $label }}<span class="visually-hidden">{{ . }}</span>{{ end }}
|
{{ with $label }}<span class="visually-hidden">{{ . }}</span>{{ end }}
|
||||||
</span>
|
</span>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</a>
|
</a>{{ if $spacing }} {{- end }}
|
||||||
|
@@ -10,6 +10,7 @@
|
|||||||
"cards" Optional string of rendered cards.
|
"cards" Optional string of rendered cards.
|
||||||
"max" Required maximum number of cards to display.
|
"max" Required maximum number of cards to display.
|
||||||
"cols" Required number of columns for the grid, must be a value between 1 and 5.
|
"cols" Required number of columns for the grid, must be a value between 1 and 5.
|
||||||
|
"gutter" Gutter between columns in a group, either "0", "1", "2", "3", "4" (default), or "5".
|
||||||
"title" Optional title of the card group.
|
"title" Optional title of the card group.
|
||||||
"paginate" Optional flag indicating if pagination should be added to the card group, if the list exceeds the
|
"paginate" Optional flag indicating if pagination should be added to the card group, if the list exceeds the
|
||||||
maximum number of cards to display.
|
maximum number of cards to display.
|
||||||
@@ -17,6 +18,8 @@
|
|||||||
maximum number of cards to display.
|
maximum number of cards to display.
|
||||||
"hrefTitle" Optional title of the button or hyperlink as companion to href.
|
"hrefTitle" Optional title of the button or hyperlink as companion to href.
|
||||||
"separator" Optional flag to indicate a horizontal line should be added between items on small screens.
|
"separator" Optional flag to indicate a horizontal line should be added between items on small screens.
|
||||||
|
"wrapper" Optional class attributes of the wrapper element, e.g. "p-4 px-xxl-0".
|
||||||
|
"responsive" Optional flag if the number of columns should be responsive, defaults to "true".
|
||||||
|
|
||||||
In addition, the following arguments are passed to the individual cards.
|
In addition, the following arguments are passed to the individual cards.
|
||||||
"class" Optional class attribute of the card element, e.g. “w-50”.
|
"class" Optional class attribute of the card element, e.g. “w-50”.
|
||||||
@@ -28,6 +31,8 @@
|
|||||||
"footer" Optional footer components of the card, displayed in small caps. Supported values are "full",
|
"footer" Optional footer components of the card, displayed in small caps. Supported values are "full",
|
||||||
"publication", "tags", and "none" (default).
|
"publication", "tags", and "none" (default).
|
||||||
"orientation" Optional placecement of the thumbnail, either "stacked" (default), "horizontal", or "none".
|
"orientation" Optional placecement of the thumbnail, either "stacked" (default), "horizontal", or "none".
|
||||||
|
"ratio" Optional ratio of the thumbnail image, defaults to "16x9" (stacked orientation) or "1x1" (horizontal
|
||||||
|
orientation).
|
||||||
-->
|
-->
|
||||||
|
|
||||||
{{- $page := .page -}}
|
{{- $page := .page -}}
|
||||||
@@ -89,15 +94,31 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- $max = math.Min $max $count -}}
|
{{- $max = math.Min $max $count -}}
|
||||||
|
|
||||||
{{- $cols := .cols -}}
|
{{- $responsive := .responsive | default true -}}
|
||||||
{{- if or (lt $cols 1) (gt $cols 5) -}}
|
{{- with .responsive -}}
|
||||||
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'cols': %d" $cols -}}
|
{{- if ne (printf "%T" .) "bool" -}}
|
||||||
|
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'responsive'" -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $cols := string .cols | default "3" -}}
|
||||||
|
{{- $supportedCols := slice "0" "1" "2" "3" "4" "5" "auto" -}}
|
||||||
|
{{- if not (in $supportedCols $cols) -}}
|
||||||
|
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'cols': %s" $cols -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- $colGrid := "" -}}
|
||||||
|
{{- if eq $cols "1" }}{{ $colGrid = "row-cols-1" -}}
|
||||||
|
{{- else if eq $cols "2" }}{{ if $responsive }}{{ $colGrid = "row-cols-1 row-cols-sm-1 row-cols-md-2" }}{{ else }}{{ $colGrid = "row-cols-2" }}{{ end -}}
|
||||||
|
{{- else if eq $cols "3" }}{{ if $responsive }}{{ $colGrid = "row-cols-1 row-cols-sm-2 row-cols-md-3" }}{{ else }}{{ $colGrid = "row-cols-3" }}{{ end -}}
|
||||||
|
{{- else if eq $cols "4" }}{{ if $responsive }}{{ $colGrid = "row-cols-1 row-cols-sm-2 row-cols-md-4" }}{{ else }}{{ $colGrid = "row-cols-4" }}{{ end -}}
|
||||||
|
{{- else if eq $cols "5" }}{{ if $responsive }}{{ $colGrid = "row-cols-1 row-cols-sm-3 row-cols-md-5" }}{{ else }}{{ $colGrid = "row-cols-5" }}{{ end -}}
|
||||||
|
{{ end -}}
|
||||||
|
|
||||||
|
{{- $gutter := .gutter | default "4" -}}
|
||||||
|
{{- $supportedGutters := slice "0" "1" "2" "3" "4" "5" -}}
|
||||||
|
{{- if not (in $supportedGutters $gutter) -}}
|
||||||
|
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'gutter': %s" $gutter -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- $colGrid := "row-cols-1" -}}
|
|
||||||
{{- if eq $cols 2 }}{{ $colGrid = "row-cols-1 row-cols-sm-1 row-cols-md-2" -}}
|
|
||||||
{{- else if eq $cols 3 }}{{ $colGrid = "row-cols-1 row-cols-sm-2 row-cols-md-3" -}}
|
|
||||||
{{- else if eq $cols 4 }}{{ $colGrid = "row-cols-1 row-cols-sm-2 row-cols-md-4" -}}
|
|
||||||
{{- else if eq $cols 5 }}{{ $colGrid = "row-cols-1 row-cols-sm-3 row-cols-md-5" }}{{ end -}}
|
|
||||||
|
|
||||||
{{- if not $paginate -}}
|
{{- if not $paginate -}}
|
||||||
{{- $list = first $max $list -}}
|
{{- $list = first $max $list -}}
|
||||||
@@ -120,11 +141,21 @@
|
|||||||
{{- $header := .header -}}
|
{{- $header := .header -}}
|
||||||
{{- $footer := .footer -}}
|
{{- $footer := .footer -}}
|
||||||
{{- $orientation := .orientation -}}
|
{{- $orientation := .orientation -}}
|
||||||
|
{{- $ratio := .ratio -}}
|
||||||
|
{{- $wrapper := .wrapper | default "p-0" -}}
|
||||||
|
|
||||||
|
{{- $loading := .loading -}}
|
||||||
|
{{- $validSettings := slice "lazy" "eager" -}}
|
||||||
|
{{- if $loading -}}
|
||||||
|
{{ if not (in $validSettings $loading) -}}
|
||||||
|
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'loading': %s" $loading -}}
|
||||||
|
{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- if and (eq $cols 1) (eq $orientation "horizontal") }}{{ $orientation = "horizontal-sm" }}{{ end -}}
|
{{- if and (eq $cols 1) (eq $orientation "horizontal") }}{{ $orientation = "horizontal-sm" }}{{ end -}}
|
||||||
|
|
||||||
<div class="container-fluid p-4 px-xxl-0 ">
|
<div class="container-fluid {{ $wrapper }}">
|
||||||
<div class="row {{ $colGrid }}">
|
<div class="row {{ $colGrid }} g-{{ $gutter }}">
|
||||||
{{ range $index, $element := $list }}
|
{{ range $index, $element := $list }}
|
||||||
{{- $params := (dict
|
{{- $params := (dict
|
||||||
"class" (printf "h-100 %s" $class)
|
"class" (printf "h-100 %s" $class)
|
||||||
@@ -133,10 +164,12 @@
|
|||||||
"header" $header
|
"header" $header
|
||||||
"footer" $footer
|
"footer" $footer
|
||||||
"orientation" $orientation
|
"orientation" $orientation
|
||||||
|
"ratio" $ratio
|
||||||
|
"loading" $loading
|
||||||
) -}}
|
) -}}
|
||||||
{{- $params = merge $params $element }}
|
{{- $params = merge $params $element }}
|
||||||
|
|
||||||
<div class="col pt-3 pb-3">
|
<div class="col">
|
||||||
{{- partial "assets/card.html" $params -}}
|
{{- partial "assets/card.html" $params -}}
|
||||||
</div>
|
</div>
|
||||||
{{- if and (lt $index (sub $max 1)) $separator -}}
|
{{- if and (lt $index (sub $max 1)) $separator -}}
|
||||||
|
@@ -11,12 +11,15 @@
|
|||||||
"warning", "info", "light", "dark", "white", "black", "body", or "body-tertiary". By default, no
|
"warning", "info", "light", "dark", "white", "black", "body", or "body-tertiary". By default, no
|
||||||
color is specified.
|
color is specified.
|
||||||
"padding": Optional padding of the content, either "0", "1", "2", "3", "4", "5", or "auto" (default).
|
"padding": Optional padding of the content, either "0", "1", "2", "3", "4", "5", or "auto" (default).
|
||||||
|
"gutter" Gutter between columns in a group, either "0" (default), "1", "2", "3", "4", or "5".
|
||||||
"header" Optional header components of the card, displayed in small caps. Supported values are "full"
|
"header" Optional header components of the card, displayed in small caps. Supported values are "full"
|
||||||
(default), "publication", "tags", and "none".
|
(default), "publication", "tags", and "none".
|
||||||
"footer" Optional footer components of the card, displayed in small caps. Supported values are "full",
|
"footer" Optional footer components of the card, displayed in small caps. Supported values are "full",
|
||||||
"publication", "tags", and "none" (default).
|
"publication", "tags", and "none" (default).
|
||||||
"description" Optional description of the card.
|
"description" Optional description of the card.
|
||||||
"thumbnail" Optional thumbnail image url, displayed on top or the left of the card.
|
"thumbnail" Optional thumbnail image url, displayed on top or the left of the card.
|
||||||
|
"ratio" Optional ratio of the thumbnail image, defaults to "16x9" (stacked orientation) or "1x1" (horizontal
|
||||||
|
orientation).
|
||||||
"alt" Optional alternate text for the thumbnail, uses "title" by default.
|
"alt" Optional alternate text for the thumbnail, uses "title" by default.
|
||||||
"icon" Optional Font Awesome icon, displayed on top or the left of the card.
|
"icon" Optional Font Awesome icon, displayed on top or the left of the card.
|
||||||
"orientation" Optional placecement of the thumbnail or icon, either "stacked" (default), "horizontal",
|
"orientation" Optional placecement of the thumbnail or icon, either "stacked" (default), "horizontal",
|
||||||
@@ -33,12 +36,12 @@
|
|||||||
{{- if $href -}}
|
{{- if $href -}}
|
||||||
<a href="{{ $href }}" class="{{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }} stretched-link">
|
<a href="{{ $href }}" class="{{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }} stretched-link">
|
||||||
<p class="card-title fs-5 fw-bold">{{ $title }}</p>
|
<p class="card-title fs-5 fw-bold">{{ $title }}</p>
|
||||||
{{ with $description }}<p class="card-text mb-4 {{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }}">{{ . }}</p>{{ end -}}
|
{{ with $description }}<p class="card-text {{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }}">{{ . }}</p>{{ end -}}
|
||||||
</a>
|
</a>
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
<div>
|
<div>
|
||||||
<p class="card-title fs-5 fw-bold">{{ $title }}</p>
|
{{ with $title }}<p class="card-title fs-5 fw-bold">{{ . }}</p>{{ end -}}
|
||||||
{{ with $description }}<p class="card-text mb-4">{{ . }}</p>{{ end -}}
|
{{ with $description }}<p class="card-text">{{ . }}</p>{{ end -}}
|
||||||
</div>
|
</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -87,6 +90,7 @@
|
|||||||
{{- $href := .href -}}
|
{{- $href := .href -}}
|
||||||
{{- $description := .description -}}
|
{{- $description := .description -}}
|
||||||
{{- $thumbnail := .thumbnail -}}
|
{{- $thumbnail := .thumbnail -}}
|
||||||
|
{{- $ratio := .ratio -}}
|
||||||
{{- $icon := .icon -}}
|
{{- $icon := .icon -}}
|
||||||
|
|
||||||
{{- $color := "" -}}
|
{{- $color := "" -}}
|
||||||
@@ -128,6 +132,12 @@
|
|||||||
{{- errorf "partial [assets/card.html] - Invalid value for param 'padding': %s" $padding -}}
|
{{- errorf "partial [assets/card.html] - Invalid value for param 'padding': %s" $padding -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $gutter := .gutter | default "0" -}}
|
||||||
|
{{ $supportedGutters:= slice "0" "1" "2" "3" "4" "5" -}}
|
||||||
|
{{ if not (in $supportedGutters $gutter) -}}
|
||||||
|
{{- errorf "partial [assets/card.html] - Invalid value for param 'gutter': %s" $gutter -}}
|
||||||
|
{{ end -}}
|
||||||
|
|
||||||
{{- $orientation := "stacked" -}}
|
{{- $orientation := "stacked" -}}
|
||||||
{{- with .orientation }}{{ $orientation = . }}{{ end -}}
|
{{- with .orientation }}{{ $orientation = . }}{{ end -}}
|
||||||
{{- $supportedOrientations := slice "stacked" "horizontal" "horizontal-sm" "none" -}}
|
{{- $supportedOrientations := slice "stacked" "horizontal" "horizontal-sm" "none" -}}
|
||||||
@@ -136,15 +146,24 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- if eq $orientation "none" }}{{ $thumbnail = "" }}{{ $icon = "" }}{{ end -}}
|
{{- if eq $orientation "none" }}{{ $thumbnail = "" }}{{ $icon = "" }}{{ end -}}
|
||||||
|
|
||||||
|
{{- $loading := .loading -}}
|
||||||
|
{{- $validSettings := slice "lazy" "eager" -}}
|
||||||
|
{{- if $loading -}}
|
||||||
|
{{ if not (in $validSettings $loading) -}}
|
||||||
|
{{- errorf "partial [assets/card.html] - Invalid value for param 'loading': %s" $loading -}}
|
||||||
|
{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{ if ne $gutter "0" }}<div class="g-{{ $gutter }}">{{ end }}
|
||||||
{{- if hasPrefix $orientation "horizontal" -}}
|
{{- if hasPrefix $orientation "horizontal" -}}
|
||||||
<div class="card {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}">
|
<div class="card {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}">
|
||||||
<div class="row g-0 row-cols-1 h-100">
|
<div class="row g-0 row-cols-1 h-100">
|
||||||
<div class="col-4{{ if eq $orientation "horizontal-sm" }} col-md-2{{ end }}">
|
<div class="col-4{{ if eq $orientation "horizontal-sm" }} col-md-2{{ end }}">
|
||||||
{{- if $thumbnail -}}
|
{{- if $thumbnail -}}
|
||||||
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "1x1" "outerClass" "h-100 card-img-wrap" "innerClass" "rounded-start card-img-h100" "title" $title) -}}
|
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" (or $ratio "1x1") "outerClass" "h-100 card-img-wrap" "innerClass" "rounded-start card-img-h100" "title" $title "loading" $loading) -}}
|
||||||
{{- else if $icon -}}
|
{{- else if $icon -}}
|
||||||
<div class="p-{{ $padding }} h-100 fa-wrapper d-flex align-items-center justify-content-center">
|
<div class="card-icon p-{{ $padding }} h-100 fa-wrapper d-flex align-items-center justify-content-center">
|
||||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-fluid text-secondary fa-fw" $icon)) -}}
|
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-fluid fa-fw" $icon)) -}}
|
||||||
</div>
|
</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</div>
|
</div>
|
||||||
@@ -162,10 +181,10 @@
|
|||||||
{{- else -}}
|
{{- else -}}
|
||||||
<div class="card {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}">
|
<div class="card {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}">
|
||||||
{{- if $thumbnail -}}
|
{{- if $thumbnail -}}
|
||||||
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "16x9" "outerClass" "card-img-wrap" "innerClass" "card-img-top" "title" (or $alt $title)) -}}
|
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" (or $ratio "16x9") "outerClass" "card-img-wrap" "innerClass" "card-img-top" "title" (or $alt $title) "loading" $loading) -}}
|
||||||
{{- else if $icon -}}
|
{{- else if $icon -}}
|
||||||
<div class="p-{{ $padding }}">
|
<div class="card-icon p-{{ $padding }}">
|
||||||
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-4x text-secondary" $icon)) -}}
|
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-4x" $icon)) -}}
|
||||||
</div>
|
</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
<div class="card-body d-flex flex-column p-{{ $padding }}">
|
<div class="card-body d-flex flex-column p-{{ $padding }}">
|
||||||
@@ -175,3 +194,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{ if ne $gutter "0" }}</div>{{ end }}
|
||||||
|
@@ -5,8 +5,16 @@
|
|||||||
{{- $ratio := .ratio -}}
|
{{- $ratio := .ratio -}}
|
||||||
{{- $portrait := .portrait -}}
|
{{- $portrait := .portrait -}}
|
||||||
|
|
||||||
|
{{- $loading := .loading -}}
|
||||||
|
{{- $validSettings := slice "lazy" "eager" -}}
|
||||||
|
{{- if $loading -}}
|
||||||
|
{{ if not (in $validSettings $loading) -}}
|
||||||
|
{{- errorf "partial [assets/carousel-item.html] - Invalid value for param 'loading': %s" $loading -}}
|
||||||
|
{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
<div class="carousel-item{{ if $active }} active{{ end }}">
|
<div class="carousel-item{{ if $active }} active{{ end }}">
|
||||||
{{ partial "assets/image.html" (dict "url" $src "ratio" $ratio "page" $page "innerClass" "d-block w-100" "portrait" $portrait) }}
|
{{ partial "assets/image.html" (dict "url" $src "ratio" $ratio "page" $page "innerClass" "d-block w-100" "portrait" $portrait "loading" $loading) }}
|
||||||
<div class="carousel-caption gradient"></div>
|
<div class="carousel-caption gradient"></div>
|
||||||
{{ with $caption }}
|
{{ with $caption }}
|
||||||
<div class="carousel-caption d-none d-md-block">
|
<div class="carousel-caption d-none d-md-block">
|
||||||
|
@@ -21,6 +21,10 @@
|
|||||||
applicable to vector graphics.
|
applicable to vector graphics.
|
||||||
"portrait": Optional flag to adjust the ratio from landscape to portrait. The image itself is not rotated, only
|
"portrait": Optional flag to adjust the ratio from landscape to portrait. The image itself is not rotated, only
|
||||||
the crop area is adjusted. Not applicable to vector graphics.
|
the crop area is adjusted. Not applicable to vector graphics.
|
||||||
|
"loading": Optional loading behavior of the image, either "eager" (default) or "lazy". The loading of lazily
|
||||||
|
loaded images is deferred until the image is within scrolling range of the viewport. This should
|
||||||
|
reduce the initial loading time of the website. It is recommended to lazily load only those images
|
||||||
|
that are below the page fold.
|
||||||
"outerClass": Optional class attribute of the outer div element, e.g. "img-wrap".
|
"outerClass": Optional class attribute of the outer div element, e.g. "img-wrap".
|
||||||
"innerClass": Optional class attribute of the inner img element, e.g. "rounded".
|
"innerClass": Optional class attribute of the inner img element, e.g. "rounded".
|
||||||
"title": Optional alternate text of the image.
|
"title": Optional alternate text of the image.
|
||||||
@@ -40,9 +44,7 @@
|
|||||||
{{- $url := .url -}}
|
{{- $url := .url -}}
|
||||||
|
|
||||||
{{- $mode := false -}}
|
{{- $mode := false -}}
|
||||||
{{- with .mode -}}
|
{{- with .mode }}{{ $mode = . }}{{ end -}}
|
||||||
{{ $mode = . -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- $outerClass := .outerClass -}}
|
{{- $outerClass := .outerClass -}}
|
||||||
{{- $innerClass := .innerClass -}}
|
{{- $innerClass := .innerClass -}}
|
||||||
{{- $title := .title -}}
|
{{- $title := .title -}}
|
||||||
@@ -53,6 +55,14 @@
|
|||||||
{{- $modes := site.Params.main.modes | default (slice "light" "dark") -}}
|
{{- $modes := site.Params.main.modes | default (slice "light" "dark") -}}
|
||||||
{{- $page := .page -}}
|
{{- $page := .page -}}
|
||||||
|
|
||||||
|
{{- $loading := .loading -}}
|
||||||
|
{{- $validSettings := slice "lazy" "eager" -}}
|
||||||
|
{{- if $loading -}}
|
||||||
|
{{ if not (in $validSettings $loading) -}}
|
||||||
|
{{- errorf "partial [assets/image.html] - Invalid value for param 'loading'" -}}
|
||||||
|
{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- $lazy := eq $loading "lazy" -}}
|
||||||
|
|
||||||
{{- define "partials/image-portrait.html" -}}
|
{{- define "partials/image-portrait.html" -}}
|
||||||
{{- $dimensions := slice }}
|
{{- $dimensions := slice }}
|
||||||
@@ -68,12 +78,14 @@
|
|||||||
{{- $portraits = $portraits | append (printf "%sx%s" (index $p 1) (index $p 0)) -}}
|
{{- $portraits = $portraits | append (printf "%sx%s" (index $p 1) (index $p 0)) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- $ret := "" }}
|
{{- $ret := "" }}
|
||||||
{{- if reflect.IsSlice $dim -}}
|
{{- if reflect.IsSlice $dim -}}
|
||||||
{{ $ret = $portraits -}}
|
{{ $ret = $portraits -}}
|
||||||
{{- else if gt (len $portraits) 0 -}}
|
{{- else if gt (len $portraits) 0 -}}
|
||||||
{{- $ret = index $portraits 0 -}}
|
{{- $ret = index $portraits 0 -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- return $ret -}}
|
{{- return $ret -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
@@ -87,29 +99,23 @@
|
|||||||
{{- $fallback := "" -}}
|
{{- $fallback := "" -}}
|
||||||
|
|
||||||
{{- with $img -}}
|
{{- with $img -}}
|
||||||
{{- if eq $ratio "4x3" -}}
|
{{- if eq $ratio "4x3" -}}{{- $dim = "1400x1050" }}
|
||||||
{{- $dim = "1400x1050" }}
|
{{- else if eq $ratio "3x2" -}}{{- $dim = "1400x933" }}
|
||||||
{{- else if eq $ratio "3x2" -}}
|
{{- else if eq $ratio "1x1" -}}{{- $dim = "1400x1400" }}
|
||||||
{{- $dim = "1400x933" }}
|
{{- else if eq $ratio "16x9" -}}{{- $dim = "1400x788" -}}
|
||||||
{{- else if eq $ratio "1x1" -}}
|
{{- else if eq $ratio "21x9" -}}{{- $dim = "1400x600" -}}
|
||||||
{{- $dim = "1400x1400" }}
|
|
||||||
{{- else if eq $ratio "16x9" -}}
|
|
||||||
{{- $dim = "1400x788" -}}
|
|
||||||
{{- else if eq $ratio "21x9" -}}
|
|
||||||
{{- $dim = "1400x600" -}}
|
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- $dim = printf "%sx%d" $width (int (math.Round (mul (div (float $width) $img.Width) $img.Height))) -}}
|
{{- $dim = printf "%sx%d" $width (int (math.Round (mul (div (float $width) $img.Width) $img.Height))) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- if $portrait -}}
|
{{- if $portrait -}}{{- $dim = partial "partials/image-portrait.html" (dict "dim" $dim) -}}{{- end -}}
|
||||||
{{- $dim = partial "partials/image-portrait.html" (dict "dim" $dim) -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- if $ratio -}}
|
{{- if $ratio -}}
|
||||||
{{- $fallback = ($img.Fill (printf "%s jpg" $dim)) -}}
|
{{- $fallback = ($img.Fill (printf "%s jpg" $dim)) -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- $fallback = ($img.Fit (printf "%s jpg" $dim)) -}}
|
{{- $fallback = ($img.Fit (printf "%s jpg" $dim)) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- $clean := path.Ext $img.RelPermalink -}}
|
{{- $clean := path.Ext $img.RelPermalink -}}
|
||||||
{{- $ext := path.Ext $img.RelPermalink -}}
|
{{- $ext := path.Ext $img.RelPermalink -}}
|
||||||
{{- $fallback = $fallback | resources.Copy (replace $img.RelPermalink $clean (printf "-%s%s" $dim $ext)) -}}
|
{{- $fallback = $fallback | resources.Copy (replace $img.RelPermalink $clean (printf "-%s%s" $dim $ext)) -}}
|
||||||
@@ -131,7 +137,7 @@
|
|||||||
{{- $dims := slice -}}
|
{{- $dims := slice -}}
|
||||||
{{- with $img -}}
|
{{- with $img -}}
|
||||||
{{- if eq $ratio "4x3" -}}
|
{{- if eq $ratio "4x3" -}}
|
||||||
{{- $dims = slice "576x432" "768x576" "992x744" "1200x900" "1400x1050" -}}
|
{{- $dims = slice "576x432" "768x576" "992x744" "1200x900" "1400x1050" -}}
|
||||||
{{- else if eq $ratio "3x2" -}}
|
{{- else if eq $ratio "3x2" -}}
|
||||||
{{- $dims = slice "576x384" "768x512" "992x661" "1200x800" "1400x933" -}}
|
{{- $dims = slice "576x384" "768x512" "992x661" "1200x800" "1400x933" -}}
|
||||||
{{- else if eq $ratio "1x1" -}}
|
{{- else if eq $ratio "1x1" -}}
|
||||||
@@ -158,6 +164,7 @@
|
|||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- $scaled = $img.Fit (printf "%s webp" $dim) -}}
|
{{- $scaled = $img.Fit (printf "%s webp" $dim) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- $scaled = $scaled | resources.Copy (replace $img.RelPermalink $clean (printf "-%s.webp" $dim)) -}}
|
{{- $scaled = $scaled | resources.Copy (replace $img.RelPermalink $clean (printf "-%s.webp" $dim)) -}}
|
||||||
{{- if $absoluteURL -}}
|
{{- if $absoluteURL -}}
|
||||||
{{- $imgset = printf "%s, %s %sw" $imgset $scaled.Permalink (index $widths $index) -}}
|
{{- $imgset = printf "%s, %s %sw" $imgset $scaled.Permalink (index $widths $index) -}}
|
||||||
@@ -165,6 +172,7 @@
|
|||||||
{{- $imgset = printf "%s, %s %sw" $imgset $scaled.RelPermalink (index $widths $index) -}}
|
{{- $imgset = printf "%s, %s %sw" $imgset $scaled.RelPermalink (index $widths $index) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- $imgset = strings.TrimPrefix ", " $imgset -}}
|
{{- $imgset = strings.TrimPrefix ", " $imgset -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
@@ -186,6 +194,7 @@
|
|||||||
{{- $imgset := "" -}}
|
{{- $imgset := "" -}}
|
||||||
{{- $mode := .mode -}}
|
{{- $mode := .mode -}}
|
||||||
{{- $modes := .modes -}}
|
{{- $modes := .modes -}}
|
||||||
|
{{- $lazy := .lazy -}}
|
||||||
{{- $page := .page -}}
|
{{- $page := .page -}}
|
||||||
{{- $isVector := false -}}
|
{{- $isVector := false -}}
|
||||||
|
|
||||||
@@ -204,11 +213,11 @@
|
|||||||
{{- $img := partial "utilities/GetImage.html" (dict "url" $url "page" $page) -}}
|
{{- $img := partial "utilities/GetImage.html" (dict "url" $url "page" $page) -}}
|
||||||
{{- if $img -}}
|
{{- if $img -}}
|
||||||
{{- $fallback := partial "partials/image-default.html" (dict "img" $img "ratio" $ratio "portrait" $portrait) -}}
|
{{- $fallback := partial "partials/image-default.html" (dict "img" $img "ratio" $ratio "portrait" $portrait) -}}
|
||||||
{{- if $absoluteURL -}}
|
{{- if $absoluteURL -}}
|
||||||
{{- $fallbackURL = $fallback.Permalink -}}
|
{{- $fallbackURL = $fallback.Permalink -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- $fallbackURL = $fallback.RelPermalink -}}
|
{{- $fallbackURL = $fallback.RelPermalink -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- $imgset = partial "partials/image-scaled.html " (dict "img" $img "ratio" $ratio "portrait" $portrait) -}}
|
{{- $imgset = partial "partials/image-scaled.html " (dict "img" $img "ratio" $ratio "portrait" $portrait) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -219,18 +228,32 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $width := "" -}}
|
||||||
|
{{- $height := "" -}}
|
||||||
|
{{- $input := (split (path.BaseName $fallbackURL) "-") | collections.Reverse -}}
|
||||||
|
{{ if $isVector }}
|
||||||
|
{{- $height = "500" -}}
|
||||||
|
{{ $width = string (partial "utilities/GetWidth.html" (dict "path" $fallbackURL "height" 500)) }}
|
||||||
|
{{- else if gt ($input | len) 1 -}}
|
||||||
|
{{- $dim := (split (index $input 0) "x") -}}
|
||||||
|
{{- if eq ($dim | len) 2 -}}
|
||||||
|
{{- $width = index $dim 0 -}}
|
||||||
|
{{- $height = index $dim 1 -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
{{- if $caption -}}
|
{{- if $caption -}}
|
||||||
<figure {{ with $outerClass }}class="{{ . }}"{{ end }}>
|
<figure {{ with $outerClass }}class="{{ . }}"{{ end }}>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<div class="{{ if not $caption }}{{ $outerClass }}{{ end }}">
|
<div class="{{ if not $caption }}{{ $outerClass }}{{ end }}">
|
||||||
{{- if not $anchor -}}
|
{{- if not $anchor -}}
|
||||||
<img class="img-fluid {{ $innerClass }}"
|
<img class="img-fluid {{ $innerClass }}"
|
||||||
{{ with $imgset -}}
|
|
||||||
srcset="{{ . }}"
|
|
||||||
sizes="100vw"
|
|
||||||
{{- end }}
|
|
||||||
src="{{ $fallbackURL }}"
|
src="{{ $fallbackURL }}"
|
||||||
alt="{{ $title }}">
|
{{ if $lazy }}loading="lazy"{{ end }}
|
||||||
|
{{ with $imgset -}}srcset="{{ . }}" sizes="100vw"{{- end }}
|
||||||
|
{{ with $height }}height="{{ . }}"{{ end }}
|
||||||
|
{{ with $width }}width="{{ . }}"{{ end }}
|
||||||
|
{{ with $title }}alt="{{ . }}"{{ end }}>
|
||||||
{{- else }}
|
{{- else }}
|
||||||
<svg class="{{ $innerClass }}">
|
<svg class="{{ $innerClass }}">
|
||||||
<use href="{{ $fallbackURL }}#{{ $anchor }}"></use>
|
<use href="{{ $fallbackURL }}#{{ $anchor }}"></use>
|
||||||
@@ -238,12 +261,25 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
{{- if $caption -}}
|
{{- if $caption -}}
|
||||||
<figcaption class="figure-caption">{{ $caption | safeHTML }}</figcaption>
|
<figcaption class="figure-caption">{{ $caption | safeHTML }}</figcaption>
|
||||||
</figure>
|
</figure>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
|
||||||
<!-- Initiate the regular or color-mode image -->
|
<!-- Initiate the regular or color-mode image -->
|
||||||
|
{{ $params := dict }}
|
||||||
|
{{- $params = merge $params (dict
|
||||||
|
"ratio" $ratio
|
||||||
|
"portrait" $portrait
|
||||||
|
"outerClass" $outerClass
|
||||||
|
"innerClass" $innerClass
|
||||||
|
"title" $title
|
||||||
|
"caption" $caption
|
||||||
|
"lazy" $lazy
|
||||||
|
"page" $page)
|
||||||
|
-}}
|
||||||
|
|
||||||
{{- if $mode -}}
|
{{- if $mode -}}
|
||||||
{{- $ext := path.Ext $url -}}
|
{{- $ext := path.Ext $url -}}
|
||||||
{{- $base := strings.TrimSuffix $ext $url -}}
|
{{- $base := strings.TrimSuffix $ext $url -}}
|
||||||
@@ -253,28 +289,14 @@
|
|||||||
|
|
||||||
{{- range $suffix := $modes -}}
|
{{- range $suffix := $modes -}}
|
||||||
{{- $image := printf "%s-%s%s" $base $suffix $ext -}}
|
{{- $image := printf "%s-%s%s" $base $suffix $ext -}}
|
||||||
{{- partial "partials/image-definition.html" (dict
|
{{- $params = merge $params (dict
|
||||||
"ratio" $ratio
|
|
||||||
"portrait" $portrait
|
|
||||||
"url" $image
|
"url" $image
|
||||||
"outerClass" $outerClass
|
|
||||||
"innerClass" $innerClass
|
|
||||||
"title" $title
|
|
||||||
"caption" $caption
|
|
||||||
"mode" $suffix
|
"mode" $suffix
|
||||||
"modes" $modes
|
"modes" $modes)
|
||||||
"page" $page)
|
|
||||||
-}}
|
-}}
|
||||||
|
{{- partial "partials/image-definition.html" $params -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- else -}}
|
{{ else }}
|
||||||
{{- partial "partials/image-definition.html" (dict
|
{{- $params = merge $params (dict "url" $url) -}}
|
||||||
"ratio" $ratio
|
{{- partial "partials/image-definition.html" $params -}}
|
||||||
"portrait" $portrait
|
|
||||||
"url" $url
|
|
||||||
"outerClass" $outerClass
|
|
||||||
"innerClass" $innerClass
|
|
||||||
"title" $title
|
|
||||||
"caption" $caption
|
|
||||||
"page" $page)
|
|
||||||
-}}
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
@@ -28,7 +28,8 @@
|
|||||||
{{- $thumbnail := .thumbnail -}}
|
{{- $thumbnail := .thumbnail -}}
|
||||||
{{- $style := .style -}}
|
{{- $style := .style -}}
|
||||||
{{- $mode := .mode -}}
|
{{- $mode := .mode -}}
|
||||||
{{- partial "assets/image.html" (dict "url" $thumbnail "outerClass" $style "mode" $mode) -}}
|
{{- $loading := .loading -}}
|
||||||
|
{{- partial "assets/image.html" (dict "url" $thumbnail "outerClass" $style "mode" $mode "loading" $loading) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- $page := .page -}}
|
{{- $page := .page -}}
|
||||||
@@ -49,6 +50,14 @@
|
|||||||
{{ $vertical := false }}
|
{{ $vertical := false }}
|
||||||
{{ $type := "pills" }}
|
{{ $type := "pills" }}
|
||||||
|
|
||||||
|
{{- $loading := .loading -}}
|
||||||
|
{{- $validSettings := slice "lazy" "eager" -}}
|
||||||
|
{{- if $loading -}}
|
||||||
|
{{ if not (in $validSettings $loading) -}}
|
||||||
|
{{- errorf "partial [assets/list.html] - Invalid value for param 'loading': %s" $loading -}}
|
||||||
|
{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
<div class="d-none d-md-block p-0">
|
<div class="d-none d-md-block p-0">
|
||||||
{{- range $index, $item := $list -}}
|
{{- range $index, $item := $list -}}
|
||||||
{{- $odd := eq (mod $index 2) 1 -}}
|
{{- $odd := eq (mod $index 2) 1 -}}
|
||||||
@@ -61,7 +70,7 @@
|
|||||||
{{- $style = "reveal fade-bottom-n5 rotate-n5 ps-3" -}}
|
{{- $style = "reveal fade-bottom-n5 rotate-n5 ps-3" -}}
|
||||||
{{- if $odd }}{{ $style = "reveal fade-bottom-5 rotate-5 pe-3" }}{{ end }}
|
{{- if $odd }}{{ $style = "reveal fade-bottom-5 rotate-5 pe-3" }}{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ partial "partials/list-img.html" (dict "thumbnail" $thumbnail "style" $style "mode" $item.Params.colormode) }}
|
{{ partial "partials/list-img.html" (dict "thumbnail" $thumbnail "style" $style "mode" $item.Params.colormode "loading" $loading) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6{{ if $odd }} order-first{{ end }} psw-lg-5 p-5">
|
<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)) }}
|
{{ partial "partials/list-content.html" (dict "title" $item.Title "content" (or $item.Description $item.Content)) }}
|
||||||
@@ -78,7 +87,7 @@
|
|||||||
<div class="container d-flex flex-column">
|
<div class="container d-flex flex-column">
|
||||||
<div class="row pt-5 pb-5 align-items-center flex-fill row-cols-2">
|
<div class="row pt-5 pb-5 align-items-center flex-fill row-cols-2">
|
||||||
<div class="col-12 text-center">
|
<div class="col-12 text-center">
|
||||||
{{ partial "partials/list-img.html" (dict "thumbnail" $thumbnail "mode" $item.Params.colormode) }}
|
{{ partial "partials/list-img.html" (dict "thumbnail" $thumbnail "mode" $item.Params.colormode "loading" $loading) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 p-3">
|
<div class="col-12 p-3">
|
||||||
{{ partial "partials/list-content.html" (dict "title" $item.Title "content" (partial "utilities/GetDescription.html" $item)) }}
|
{{ partial "partials/list-content.html" (dict "title" $item.Title "content" (partial "utilities/GetDescription.html" $item)) }}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
"class" Optional class attribute of the tab group, e.g. “nav-fill”.
|
"class" Optional class attribute of the tab group, e.g. “nav-fill”.
|
||||||
"pane" Optional style of the panes, either "none" (default) or "persona".
|
"pane" Optional style of the panes, either "none" (default) or "persona".
|
||||||
"width" Optional responsive width of the tab group, either "50" or "100" (default).
|
"width" Optional responsive width of the tab group, either "50" or "100" (default).
|
||||||
|
"wrap" Optional flag to enable word wrapping of tab titles, defaults to false.
|
||||||
|
|
||||||
In addition, the following arguments are passed to the individual tabs.
|
In addition, the following arguments are passed to the individual tabs.
|
||||||
"class" Optional class attribute of the tab element, e.g. “w-50”.
|
"class" Optional class attribute of the tab element, e.g. “w-50”.
|
||||||
@@ -54,6 +55,7 @@
|
|||||||
{{- $title := .title -}}
|
{{- $title := .title -}}
|
||||||
{{- $class := .class -}}
|
{{- $class := .class -}}
|
||||||
{{- $color := .color -}}
|
{{- $color := .color -}}
|
||||||
|
{{- $wrap := .wrap | default false -}}
|
||||||
|
|
||||||
{{ $supportedFlags := slice "true" "false" -}}
|
{{ $supportedFlags := slice "true" "false" -}}
|
||||||
{{ $verticalParam := "false" -}}
|
{{ $verticalParam := "false" -}}
|
||||||
@@ -76,12 +78,20 @@
|
|||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
|
{{- $loading := .loading -}}
|
||||||
|
{{- $validSettings := slice "lazy" "eager" -}}
|
||||||
|
{{- if $loading -}}
|
||||||
|
{{ if not (in $validSettings $loading) -}}
|
||||||
|
{{- errorf "partial [assets/nav.html] - Invalid value for param 'loading': %s" $loading -}}
|
||||||
|
{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
<div class="{{ if eq $width 50 }}col-sm-12 col-md-10 col-lg-8 col-xl-6{{ else }}col-12{{ end }} mx-auto pt-5 pb-5">
|
<div class="{{ if eq $width 50 }}col-sm-12 col-md-10 col-lg-8 col-xl-6{{ else }}col-12{{ end }} mx-auto pt-5 pb-5">
|
||||||
{{ if $vertical }}<div class="d-flex align-items-start">{{ end }}
|
{{ if $vertical }}<div class="d-flex align-items-start">{{ end }}
|
||||||
<div class="nav{{ with $type }} nav-{{ . }}{{ end }}{{ with $class }} {{ . }}{{ end }}{{ if $vertical }} flex-column{{ end }}" id="nav-{{ $id }}" role="tablist"{{ if $vertical }} aria-orientation="vertical"{{ end }}>
|
<div class="nav{{ with $type }} nav-{{ . }}{{ end }}{{ with $class }} {{ . }}{{ end }}{{ if $vertical }} flex-column{{ end }}" id="nav-{{ $id }}" role="tablist"{{ if $vertical }} aria-orientation="vertical"{{ end }}>
|
||||||
{{- range $index, $item := $list -}}
|
{{- range $index, $item := $list -}}
|
||||||
{{ $show := eq $index 0}}
|
{{ $show := eq $index 0}}
|
||||||
<button class="nav-link text-nowrap{{ if $show }} active{{ end }}" id="nav-{{ $id }}-btn-{{ $index }}" data-bs-toggle="pill" data-bs-target="#nav-{{ $id }}-{{ $index }}"
|
<button class="nav-link {{ if not $wrap }} text-nowrap{{ end }}{{ if $show }} active{{ end }}" id="nav-{{ $id }}-btn-{{ $index }}" data-bs-toggle="pill" data-bs-target="#nav-{{ $id }}-{{ $index }}"
|
||||||
type="button" role="tab" aria-controls="nav-{{ $id }}-{{ $index }}" aria-selected="{{ if eq $index 0 }}true{{ else }}false{{ end }}">
|
type="button" role="tab" aria-controls="nav-{{ $id }}-{{ $index }}" aria-selected="{{ if eq $index 0 }}true{{ else }}false{{ end }}">
|
||||||
{{ $item.Title }}
|
{{ $item.Title }}
|
||||||
</button>
|
</button>
|
||||||
@@ -102,6 +112,7 @@
|
|||||||
"color" $color
|
"color" $color
|
||||||
"content" (partial "utilities/GetDescription.html" $item)
|
"content" (partial "utilities/GetDescription.html" $item)
|
||||||
"thumbnail" $thumbnail
|
"thumbnail" $thumbnail
|
||||||
|
"loading" $loading
|
||||||
) -}}
|
) -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- (or $item.Description $item.Content) -}}
|
{{- (or $item.Description $item.Content) -}}
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
"logo" Optional address of the logo image, defaults to the parameter "logo" set in the "main" section of
|
"logo" Optional address of the logo image, defaults to the parameter "logo" set in the "main" section of
|
||||||
the site's parameter configuration.
|
the site's parameter configuration.
|
||||||
"title" Optional brand title, displayed when the logo is not set. Defaults to the site's title.
|
"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.
|
"class" Optional class attribute of the navbar container.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!-- Inline partial to render the color mode switcher -->
|
<!-- Inline partial to render the color mode switcher -->
|
||||||
@@ -25,25 +25,25 @@
|
|||||||
|
|
||||||
<li class="nav-item dropdown {{ if $collapsed }}d-{{ $size }}-none{{ else }}d-none d-{{ $size }}-block{{ end }}">
|
<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-label="{{ T "colorMode" }}" aria-expanded="false" id="{{ $id }}-theme{{ if $collapsed }}-collapsed{{ end }}">
|
<a class="nav-link dropdown-toggle" href="#!" role="button" data-bs-toggle="dropdown" aria-label="{{ T "colorMode" }}" aria-expanded="false" id="{{ $id }}-theme{{ if $collapsed }}-collapsed{{ end }}">
|
||||||
<span class="theme-icon-active">{{- partial "assets/icon.html" (dict "icon" "fas sun fa-fw") }}</span>{{ if $collapsed }} {{ T "colorMode" }} {{ end }}
|
<span class="theme-icon-active">{{- partial "assets/icon.html" (dict "icon" "fas sun fa-fw") }}</span>{{ if $collapsed }} {{ T "colorMode" }} {{ end }}
|
||||||
<span class="d-md-none"></span>
|
<span class="d-md-none"></span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="{{ $id }}-theme{{ if $collapsed }}-collapsed{{ end }}">
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="{{ $id }}-theme{{ if $collapsed }}-collapsed{{ end }}">
|
||||||
<li>
|
<li>
|
||||||
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="light" href="#!">
|
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="light" href="#!">
|
||||||
<span class="theme-icon">{{- partial "assets/icon.html" (dict "icon" "fas sun fa-fw") }}</span>
|
<span class="theme-icon">{{- partial "assets/icon.html" (dict "icon" "fas sun fa-fw" "spacing" false) }}</span>
|
||||||
{{ T "colorLight" }}
|
{{ T "colorLight" }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="dark" href="#!">
|
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="dark" href="#!">
|
||||||
<span class="theme-icon">{{- partial "assets/icon.html" (dict "icon" "fas moon fa-fw") }}</span>
|
<span class="theme-icon">{{- partial "assets/icon.html" (dict "icon" "fas moon fa-fw" "spacing" false) }}</span>
|
||||||
{{ T "colorDark" }}
|
{{ T "colorDark" }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="auto" href="#!">
|
<a class="dropdown-item{{ if $collapsed }} switch-mode-collapsed{{ end }}" data-bs-theme-value="auto" href="#!">
|
||||||
<span class="theme-icon">{{- partial "assets/icon.html" (dict "icon" "fas circle-half-stroke fa-fw" ) }}</span>
|
<span class="theme-icon">{{- partial "assets/icon.html" (dict "icon" "fas circle-half-stroke fa-fw" "spacing" false) }}</span>
|
||||||
{{ T "colorAuto" }}
|
{{ T "colorAuto" }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@@ -154,6 +154,7 @@
|
|||||||
{{- errorf "partial [assets/navbar.html] - Invalid value for param 'search': %s" $searchParam -}}
|
{{- errorf "partial [assets/navbar.html] - Invalid value for param 'search': %s" $searchParam -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{- $searchModal := and $search site.Params.navigation.searchModal -}}
|
||||||
|
|
||||||
{{- $enableDarkMode := default false site.Params.main.enableDarkMode -}}
|
{{- $enableDarkMode := default false site.Params.main.enableDarkMode -}}
|
||||||
{{- with .mode -}}
|
{{- with .mode -}}
|
||||||
@@ -173,6 +174,8 @@
|
|||||||
|
|
||||||
{{- $enableLanguage := or $page.IsTranslated site.IsMultiLingual -}}
|
{{- $enableLanguage := or $page.IsTranslated site.IsMultiLingual -}}
|
||||||
|
|
||||||
|
{{- $horizontal := default false site.Params.navigation.horizontal -}}
|
||||||
|
|
||||||
{{- $logo := site.Params.navigation.logo -}}
|
{{- $logo := site.Params.navigation.logo -}}
|
||||||
{{- $logoLight := "" -}}
|
{{- $logoLight := "" -}}
|
||||||
{{- $logoDark := "" -}}
|
{{- $logoDark := "" -}}
|
||||||
@@ -221,7 +224,7 @@
|
|||||||
|
|
||||||
<div class="container-fluid {{ if $fixed }}fixed-top{{ end }} p-0{{ with $class }} {{ . }}{{ end }}">
|
<div class="container-fluid {{ if $fixed }}fixed-top{{ end }} p-0{{ with $class }} {{ . }}{{ end }}">
|
||||||
{{- partial "assets/page-alert.html" (dict "page" $page) -}}
|
{{- partial "assets/page-alert.html" (dict "page" $page) -}}
|
||||||
<nav class="navbar navbar-expand-{{ $size }}{{ if $contrast }} navbar-contrast{{ end }}{{ with $color }} bg-{{ . }}{{ end }} p-4"{{ with $theme }} data-bs-theme="{{ . }}"{{ end }}>
|
<nav class="navbar {{ if $fixed }}navbar-fixed-top{{ end }} navbar-expand-{{ $size }}{{ if $contrast }} navbar-contrast{{ end }}{{ with $color }} bg-{{ . }}{{ end }} p-4"{{ with $theme }} data-bs-theme="{{ . }}"{{ end }}>
|
||||||
<div class="container-xxl p-0">
|
<div class="container-xxl p-0">
|
||||||
<!-- Insert sidebar toggler when applicable -->
|
<!-- Insert sidebar toggler when applicable -->
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
@@ -238,12 +241,14 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Insert the brand logo or name -->
|
<!-- Insert the brand logo or name -->
|
||||||
<a class="navbar-brand mx-auto" href="{{ site.Home.RelPermalink }}">
|
<a class="navbar-brand mx-auto" href="{{ site.Home.RelPermalink }}" aria-label="{{ T "home" }}">
|
||||||
{{- if (and $logoLight $logoDark) -}}
|
{{- if (and $logoLight $logoDark) -}}
|
||||||
<img src="{{if $absoluteURL }}{{ absURL $logoLight }}{{ else }}{{ $logoLight }}{{ end }}" class="d-none-dark" alt="{{ $title }} logo" height="30">
|
{{ $width := partial "utilities/GetWidth.html" (dict "path" $logoLight "height" 30) }}
|
||||||
<img src="{{if $absoluteURL }}{{ absURL $logoDark }}{{ else }}{{ $logoDark }}{{ end }}" class="d-none-light" alt="{{ $title }} logo" height="30">
|
<img src="{{if $absoluteURL }}{{ absURL $logoLight }}{{ else }}{{ $logoLight }}{{ end }}" class="d-none-dark" alt="{{ $title }} logo" height="30"{{ with $width }} width="{{ . }}"{{ end }}>
|
||||||
|
<img src="{{if $absoluteURL }}{{ absURL $logoDark }}{{ else }}{{ $logoDark }}{{ end }}" class="d-none-light" alt="{{ $title }} logo" height="30"{{ with $width }} width="{{ . }}"{{ end }}>
|
||||||
{{- else if $logo -}}
|
{{- else if $logo -}}
|
||||||
<img src="{{if $absoluteURL }}{{ absURL $logo }}{{ else }}{{ $logo }}{{ end }}" alt="{{ $title }} logo" height="30">
|
{{ $width := partial "utilities/GetWidth.html" (dict "path" $logo "height" 30) }}
|
||||||
|
<img src="{{if $absoluteURL }}{{ absURL $logo }}{{ else }}{{ $logo }}{{ end }}" alt="{{ $title }} logo" height="30"{{ with $width }} width="{{ . }}"{{ end }}>
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
<span class="fw-bold">{{ $title }}</span>
|
<span class="fw-bold">{{ $title }}</span>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -261,15 +266,15 @@
|
|||||||
|
|
||||||
<div class="navbar-collapse collapse" id="{{ $id }}-collapse">
|
<div class="navbar-collapse collapse" id="{{ $id }}-collapse">
|
||||||
<!-- Insert search input -->
|
<!-- Insert search input -->
|
||||||
{{- if $search }}{{ partial "assets/search-input.html" -}}{{ end -}}
|
{{- if and $search (not $searchModal) }}{{ partial "assets/search-input.html" }}{{ end -}}
|
||||||
|
|
||||||
<!-- Render top-menu items (maximum depth of 2) -->
|
<!-- Render top-menu items (maximum depth of 2) -->
|
||||||
<ul class="navbar-nav ms-auto">
|
<ul class="navbar-nav ms-auto">
|
||||||
{{- range $menu := $menus -}}
|
{{- range $menu := $menus -}}
|
||||||
<li class="nav-item{{ if .HasChildren }} dropdown{{ end }}">
|
<li class="nav-item{{ if .HasChildren }} dropdown{{ if $horizontal }} dropdown-horizontal-{{ $size }}{{ end }}{{ end }}">
|
||||||
{{- partial "assets/navbar-item.html" (dict "menu" $menu "page" $page) -}}
|
{{- partial "assets/navbar-item.html" (dict "menu" $menu "page" $page) -}}
|
||||||
{{- if .HasChildren -}}
|
{{- if .HasChildren -}}
|
||||||
<ul class="dropdown-menu dropdown-menu-end">
|
<ul class="dropdown-menu">
|
||||||
{{- range .Children -}}
|
{{- range .Children -}}
|
||||||
<li>{{- partial "assets/navbar-item.html" (dict "menu" . "parent" $menu "page" $page) -}}</li>
|
<li>{{- partial "assets/navbar-item.html" (dict "menu" . "parent" $menu "page" $page) -}}</li>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -286,15 +291,21 @@
|
|||||||
<li><hr class="dropdown-divider-bg"></li>
|
<li><hr class="dropdown-divider-bg"></li>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
<!-- Insert version switcher -->
|
||||||
|
{{- if $enableVersions -}}
|
||||||
|
{{- partial "partials/navbar-versions.html" (dict "page" $page "size" $size "collapsed" true "id" .id) -}}
|
||||||
|
{{- partial "partials/navbar-versions.html" (dict "page" $page "size" $size "collapsed" false "id" .id) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
<!-- Insert language switcher if applicable -->
|
<!-- Insert language switcher if applicable -->
|
||||||
{{- if $enableLanguage -}}
|
{{- if $enableLanguage -}}
|
||||||
{{- $currentLang := $page.Language.Lang -}}
|
{{- $currentLang := $page.Language.Lang -}}
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link dropdown-toggle d-{{ $size }}-none" href="#!" role="button" data-bs-toggle="dropdown" aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false">
|
<a class="nav-link dropdown-toggle d-{{ $size }}-none" href="#!" role="button" data-bs-toggle="dropdown" aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false">
|
||||||
{{- partial "assets/icon.html" (dict "icon" "fas globe fa-fw") }} {{ T "languageSwitcherLabel" }}
|
{{- partial "assets/icon.html" (dict "icon" "fas globe fa-fw" "spacing" false) }} {{ T "languageSwitcherLabel" }}
|
||||||
</a>
|
</a>
|
||||||
<a class="nav-link dropdown-toggle d-none d-{{ $size }}-block" href="#!" role="button" data-bs-toggle="dropdown" aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false">
|
<a class="nav-link dropdown-toggle d-none d-{{ $size }}-block" href="#!" role="button" data-bs-toggle="dropdown" aria-label="{{ T "languageSwitcherLabel" }}" aria-expanded="false">
|
||||||
{{- partial "assets/icon.html" (dict "icon" "fas globe fa-fw") }}
|
{{- partial "assets/icon.html" (dict "icon" "fas globe fa-fw" "spacing" true) }}
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu dropdown-menu-end ">
|
<ul class="dropdown-menu dropdown-menu-end ">
|
||||||
{{- if $page.IsTranslated -}}
|
{{- if $page.IsTranslated -}}
|
||||||
@@ -310,25 +321,49 @@
|
|||||||
</li>
|
</li>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
<!-- Insert version switcher -->
|
|
||||||
{{- if $enableVersions -}}
|
|
||||||
{{- partial "partials/navbar-versions.html" (dict "page" $page "size" $size "collapsed" true "id" .id) -}}
|
|
||||||
{{- partial "partials/navbar-versions.html" (dict "page" $page "size" $size "collapsed" false "id" .id) -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
<!-- Insert color mode switcher -->
|
<!-- Insert color mode switcher -->
|
||||||
{{- if $enableDarkMode -}}
|
{{- if $enableDarkMode -}}
|
||||||
<!-- Insert divider -->
|
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" true "id" .id) -}}
|
||||||
|
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" false "id" .id) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<!-- Insert modal search button -->
|
||||||
|
{{- if $searchModal }}
|
||||||
<li class="nav-item py-2 py-md-1 col-12 col-md-auto d-none d-{{ $size }}-block">
|
<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>
|
<div class="vr d-none d-md-flex h-100 mx-md-2"></div>
|
||||||
</li>
|
</li>
|
||||||
<li><hr class="dropdown-divider-bg"></li>
|
<li><hr class="dropdown-divider-bg"></li>
|
||||||
|
|
||||||
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" true "id" .id) -}}
|
<a class="nav-link d-{{ $size }}-none" href="#!" role="button" data-bs-toggle="modal" data-bs-target="#search-modal" aria-label="{{ T "ui_search" }}" aria-expanded="false">
|
||||||
{{- partial "partials/navbar-mode.html" (dict "size" $size "collapsed" false "id" .id) -}}
|
{{ partial "assets/icon.html" (dict "icon" "fas magnifying-glass fa-fw") }} {{ T "ui_search" }}
|
||||||
{{- end -}}
|
</a>
|
||||||
|
<a class="nav-link d-none d-{{ $size }}-block" href="#!" role="button" data-bs-toggle="modal" data-bs-target="#search-modal" aria-label="{{ T "ui_search" }}" aria-expanded="false">
|
||||||
|
{{ partial "assets/icon.html" (dict "icon" "fas magnifying-glass fa-fw") }}
|
||||||
|
</a>
|
||||||
|
{{ end -}}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{/* Insert modal search element */}}
|
||||||
|
{{- if $searchModal }}
|
||||||
|
<div class="modal fade search-modal" tabindex="-1" id="search-modal" aria-labelledby="searchModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable modal-lg">
|
||||||
|
<div class="modal-content h-50">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div class="w-100">
|
||||||
|
<form class="search position-relative me-auto">
|
||||||
|
<input id="search-input-modal" class="search-input form-control is-search" tabindex="1" type="search" placeholder="{{ T "ui_search" }}..." aria-label="{{ T "ui_search" }}" autocomplete="off">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{{ T "close" }}"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body p-2 search-background">
|
||||||
|
<div class="search-suggestions" data-no-results="{{ T "ui_no_results" }}"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{ end -}}
|
||||||
|
@@ -10,6 +10,6 @@
|
|||||||
{{- if $pageAlertMsg -}}
|
{{- if $pageAlertMsg -}}
|
||||||
<div id="page-alert" class="alert alert-primary alert-no-decoration fade show d-flex align-items-center small m-0 py-1" data-page-alert-version="{{ $version }}">
|
<div id="page-alert" class="alert alert-primary alert-no-decoration fade show d-flex align-items-center small m-0 py-1" data-page-alert-version="{{ $version }}">
|
||||||
<a href="{{ with $pageAlertURL }}{{ . }}{{ else }}#!{{ end }}" class="text-decoration-none flex-grow-1 text-center">{{ $pageAlertMsg }}</a>
|
<a href="{{ with $pageAlertURL }}{{ . }}{{ else }}#!{{ end }}" class="text-decoration-none flex-grow-1 text-center">{{ $pageAlertMsg }}</a>
|
||||||
<button id="page-alert-btn-close" type="button" class="btn-close" data-bs-dismiss="alert"></button>
|
<button id="page-alert-btn-close" type="button" class="btn-close" data-bs-dismiss="alert" aria-label="{{ T "close" }}"></button>
|
||||||
</div>
|
</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
@@ -56,12 +56,20 @@
|
|||||||
|
|
||||||
{{- $class := .class -}}
|
{{- $class := .class -}}
|
||||||
|
|
||||||
|
{{- $loading := .loading -}}
|
||||||
|
{{- $validSettings := slice "lazy" "eager" -}}
|
||||||
|
{{- if $loading -}}
|
||||||
|
{{ if not (in $validSettings $loading) -}}
|
||||||
|
{{- errorf "partial [assets/persona.html] - Invalid value for param 'loading': %s" $loading -}}
|
||||||
|
{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
<div class="d-none d-md-block">
|
<div class="d-none d-md-block">
|
||||||
<div class="persona position-relative row mt-5 align-middle p-3">
|
<div class="persona position-relative row mt-5 align-middle p-3">
|
||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
<div class="position-absolute top-50 start-0 translate-middle-y col-4 ps-3">
|
<div class="position-absolute top-50 start-0 translate-middle-y col-4 ps-3">
|
||||||
{{- if $thumbnail -}}
|
{{- if $thumbnail -}}
|
||||||
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "1x1" "innerClass" "rounded-5") -}}
|
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "1x1" "innerClass" "rounded-5" "loading" $loading) -}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -81,7 +89,7 @@
|
|||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="position-absolute top-25 start-50 translate-middle col-6">
|
<div class="position-absolute top-25 start-50 translate-middle col-6">
|
||||||
{{- if $thumbnail -}}
|
{{- if $thumbnail -}}
|
||||||
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "1x1" "innerClass" "rounded-5") -}}
|
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "1x1" "innerClass" "rounded-5" "loading" $loading) -}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -20,27 +20,6 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
<div class="container-fluid p-4 px-xxl-0">
|
{{ with $title }}<p id="{{ anchorize . }}" class="display-4 py-5{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
|
||||||
{{ with $title }}<p class="display-4 mt-3{{ if and page.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
|
{{ with $description }} <p class="lead mb-5">{{ . }}</p>{{ end }}
|
||||||
{{ with $description }} <p class="lead mb-5">{{ . }}</p>{{ end }}
|
{{ $content }}
|
||||||
{{- if $content -}}
|
|
||||||
<div class="row row-cols-1 row-cols-lg-3 pt-5">
|
|
||||||
<div class="col col-lg-3 d-none d-lg-block"></div>
|
|
||||||
<div class="col col-sm-12 col-lg-6 text-center">
|
|
||||||
<div class="row row-cols-1{{ if ne $sectionHeader "justify-content-center" }} row-cols-sm-2{{ end }} row-gap-5 p-0 align-items-center flex-fill">
|
|
||||||
{{- if eq $sectionHeader "justify-content-center" -}}
|
|
||||||
<div class="col p-0 w-50 mx-auto pb-5">{{ partial "partials/section-header-img.html" (dict "title" $title "thumbnail" $thumbnail "icon" $icon )}}</div>
|
|
||||||
<div class="col fs-md-5 fs-6">{{ $content }}</div>
|
|
||||||
{{- else if eq $sectionHeader "justify-content-end" -}}
|
|
||||||
<div class="col p-0">{{ partial "partials/section-header-img.html" (dict "title" $title "thumbnail" $thumbnail "icon" $icon )}}</div>
|
|
||||||
<div class="col fs-md-5 fs-6 text-sm-start">{{ $content }}</div>
|
|
||||||
{{- else -}}
|
|
||||||
<div class="col fs-md-5 fs-6 text-sm-start">{{ $content }}</div>
|
|
||||||
<div class="col p-0">{{ partial "partials/section-header-img.html" (dict "title" $title "thumbnail" $thumbnail "icon" $icon )}}</div>
|
|
||||||
{{- end -}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col col-lg-3 d-none d-lg-block"></div>
|
|
||||||
</div>
|
|
||||||
{{- end -}}
|
|
||||||
</div>
|
|
||||||
|
@@ -14,7 +14,9 @@
|
|||||||
{{- $moreTitle := .moreTitle -}}
|
{{- $moreTitle := .moreTitle -}}
|
||||||
{{- $sectionURL := .sectionURL -}}
|
{{- $sectionURL := .sectionURL -}}
|
||||||
{{- $nested := .nested | default true -}}
|
{{- $nested := .nested | default true -}}
|
||||||
|
{{- $simple := .simple | default false -}}
|
||||||
{{- $paginate := true -}}
|
{{- $paginate := true -}}
|
||||||
|
{{- $kind := .kind | default "regular" -}}
|
||||||
{{- $sort := "date" -}}
|
{{- $sort := "date" -}}
|
||||||
{{- $order := "desc" -}}
|
{{- $order := "desc" -}}
|
||||||
{{- $separator := false -}}
|
{{- $separator := false -}}
|
||||||
@@ -32,6 +34,9 @@
|
|||||||
{{- $type := "pills" -}}
|
{{- $type := "pills" -}}
|
||||||
{{- $vertical := "false" -}}
|
{{- $vertical := "false" -}}
|
||||||
{{- $width := 100 -}}
|
{{- $width := 100 -}}
|
||||||
|
{{- $ratio := "" -}}
|
||||||
|
{{- $wrap := false -}}
|
||||||
|
{{- $loading := .loading -}}
|
||||||
|
|
||||||
{{- with (index site.Params.sections $section) -}}
|
{{- with (index site.Params.sections $section) -}}
|
||||||
{{- with index . "title" }}{{ $title = or $.title . }}{{ end -}}
|
{{- with index . "title" }}{{ $title = or $.title . }}{{ end -}}
|
||||||
@@ -54,13 +59,25 @@
|
|||||||
{{- with index . "type" }}{{ $type = . }}{{ end -}}
|
{{- with index . "type" }}{{ $type = . }}{{ end -}}
|
||||||
{{- with index . "vertical" }}{{ $vertical = . }}{{ end -}}
|
{{- with index . "vertical" }}{{ $vertical = . }}{{ end -}}
|
||||||
{{- with index . "width" }}{{ $width = . }}{{ end -}}
|
{{- with index . "width" }}{{ $width = . }}{{ end -}}
|
||||||
|
{{- with index . "kind" }}{{ $kind = . }}{{ end -}}
|
||||||
|
{{- with index . "ratio" }}{{ $ratio = . }}{{ end -}}
|
||||||
|
{{- with index . "wrap" }}{{ $wrap = . }}{{ end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{ if ne (printf "%T" $nested) "bool" }}
|
{{ if ne (printf "%T" $nested) "bool" }}
|
||||||
{{ errorf "partial [assets/section-list.html] - Invalid value for param 'nested'"}}
|
{{ errorf "partial [assets/section-list.html] - Invalid value for param 'nested'"}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ $list := "" }}
|
{{ $list := slice }}
|
||||||
{{ if $nested }}
|
{{ if eq $kind "taxonomy" }}
|
||||||
|
{{ $filter := page.Params.filter }}
|
||||||
|
{{ with $filter }}
|
||||||
|
{{ with index site.Taxonomies $section $filter }}
|
||||||
|
{{ $list = .Pages }}
|
||||||
|
{{ end }}
|
||||||
|
{{ else }}
|
||||||
|
{{ $list = where site.Pages (printf ".Params.%s" $section) "!=" nil }}
|
||||||
|
{{ end }}
|
||||||
|
{{ else if $nested }}
|
||||||
{{ $list = where site.RegularPages "Type" "in" $section }}
|
{{ $list = where site.RegularPages "Type" "in" $section }}
|
||||||
{{ else if $home }}
|
{{ else if $home }}
|
||||||
{{ $sectionPage := site.GetPage "section" $section }}
|
{{ $sectionPage := site.GetPage "section" $section }}
|
||||||
@@ -88,23 +105,30 @@
|
|||||||
{{- $max = int (math.Min $homepage $max) -}}
|
{{- $max = int (math.Min $homepage $max) -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
|
{{ if $simple }}
|
||||||
|
{{ $title = "" }}
|
||||||
|
{{ $background = "" }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{- $params := (dict
|
{{- $params := (dict
|
||||||
"page" $page
|
"page" $page
|
||||||
"list" $list
|
"list" $list
|
||||||
"title" $title
|
"title" $title
|
||||||
"icon" $icon
|
"icon" $icon
|
||||||
"thumbnail" $thumbnail
|
"thumbnail" $thumbnail
|
||||||
|
"ratio" $ratio
|
||||||
"sectionHeader" $sectionHeader
|
"sectionHeader" $sectionHeader
|
||||||
"description" $description
|
"description" $description
|
||||||
"content" $content
|
"content" $content
|
||||||
"class" $style
|
"class" $style
|
||||||
"color" $color
|
"color" $color
|
||||||
|
"loading" $loading
|
||||||
)
|
)
|
||||||
-}}
|
-}}
|
||||||
{{- $partial := "" -}}
|
{{- $partial := "" -}}
|
||||||
|
|
||||||
<div class="container-fluid {{ with $background }} bg-{{ . }}{{ end }}">
|
<div class="container-fluid {{ with $background }} bg-{{ . }}{{ end }} p-0">
|
||||||
<div class="container-xxl flex-fill p-0">
|
<div class="container-xxl p-4 px-xxl-0 pb-5">
|
||||||
{{- partial "assets/section-header.html" $params -}}
|
{{- partial "assets/section-header.html" $params -}}
|
||||||
|
|
||||||
{{ if eq $layout "card" }}
|
{{ if eq $layout "card" }}
|
||||||
@@ -131,6 +155,7 @@
|
|||||||
"type" $type
|
"type" $type
|
||||||
"vertical" $vertical
|
"vertical" $vertical
|
||||||
"width" $width
|
"width" $width
|
||||||
|
"wrap" $wrap
|
||||||
)
|
)
|
||||||
-}}
|
-}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
|
20
layouts/partials/assets/section-menu.html
Normal file
20
layouts/partials/assets/section-menu.html
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{{- $page := . -}}
|
||||||
|
{{ $items := $page.Parent.Sections }}
|
||||||
|
{{ if not $page.Parent.Section }}
|
||||||
|
{{ $items = $page.Sections }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{- if gt (len $items) 0 }}
|
||||||
|
<nav class="navbar navbar-expand navbar-services p-0 fs-5">
|
||||||
|
<div class="container-fluid p-0 pb-3">
|
||||||
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
{{- range $items }}
|
||||||
|
{{ $active := eq $page.RelPermalink .RelPermalink }}
|
||||||
|
<li class="nav-item"><a class="nav-link{{ if $active }} active{{ end }}" href="{{ .RelPermalink }}">{{ .Title }}</a></li>
|
||||||
|
{{- end }}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
{{- end }}
|
@@ -6,7 +6,7 @@
|
|||||||
{{- if .Site.Params.sharing.reverse }}{{ $order = "desc" }}{{ else }}{{ $order = "asc" }}{{ end -}}
|
{{- if .Site.Params.sharing.reverse }}{{ $order = "desc" }}{{ else }}{{ $order = "asc" }}{{ end -}}
|
||||||
{{- $sort := .Site.Params.sharing.sort | default "weight" -}}
|
{{- $sort := .Site.Params.sharing.sort | default "weight" -}}
|
||||||
{{- $list = sort $list $sort $order -}}
|
{{- $list = sort $list $sort $order -}}
|
||||||
<div class="py-3 text-body-secondary hstack gap-2">
|
<div class="py-3 text-body-secondary hstack gap-1">
|
||||||
{{ T "shareLink" "" }}
|
{{ T "shareLink" "" }}
|
||||||
{{- range $index, $item := $list -}}
|
{{- range $index, $item := $list -}}
|
||||||
{{- $url := $item.url -}}
|
{{- $url := $item.url -}}
|
||||||
@@ -21,11 +21,11 @@
|
|||||||
{{- $url = "#!" -}}
|
{{- $url = "#!" -}}
|
||||||
{{- partial "assets/toast.html" (dict "id" $target "message" (printf "%s %s" (T "link") (T "copiedToClipboard"))) -}}
|
{{- partial "assets/toast.html" (dict "id" $target "message" (printf "%s %s" (T "link") (T "copiedToClipboard"))) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{ partial "assets/button.html" (dict "toast" $target "clipboard" $clipboard "href" $url "icon" (printf "%s fa-fw" $item.icon) "class" "btn-social p-0" "label" (T "shareLink" $item.name)) }}
|
{{ partial "assets/button.html" (dict "toast" $target "clipboard" $clipboard "href" $url "icon" (printf "%s fa-fw" $item.icon) "class" "btn-social p-0" "label" (T "shareLink" $item.name) "spacing" false) }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{ if .Site.Params.sharing.webshare }}
|
{{ if .Site.Params.sharing.webshare }}
|
||||||
{{ $attr := dict "data-sharing-title" .Title "data-sharing-description" .Description "data-sharing-url" .Permalink }}
|
{{ $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 "label" (T "shareLink" (T "shareSystem"))) }}
|
{{ partial "assets/button.html" (dict "href" "#!" "icon" "fas share-nodes fa-fw" "id" "btn-webshare" "class" "btn-social p-0" "attributes" $attr "label" (T "shareLink" (T "shareSystem")) "spacing" false) }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</div>
|
</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
@@ -9,9 +9,10 @@
|
|||||||
{{- $level := .level -}}
|
{{- $level := .level -}}
|
||||||
{{- $baseURL := .baseURL -}}
|
{{- $baseURL := .baseURL -}}
|
||||||
{{- $group := .group -}}
|
{{- $group := .group -}}
|
||||||
|
{{- $data := .menu -}}
|
||||||
|
|
||||||
{{- $doc_slug := $group.title | urlize -}}
|
{{- $doc_slug := $group.title | urlize -}}
|
||||||
{{- $href := printf "%s/" (relLangURL (path.Join $baseURL $doc_slug)) -}}
|
{{- $href := or $group.link (printf "%s/" (relLangURL (path.Join $baseURL $doc_slug))) -}}
|
||||||
{{- $collapsed := strings.HasPrefix $page.RelPermalink $href -}}
|
{{- $collapsed := strings.HasPrefix $page.RelPermalink $href -}}
|
||||||
|
|
||||||
<li class="mb-1">
|
<li class="mb-1">
|
||||||
@@ -28,6 +29,7 @@
|
|||||||
"level" (add $level 1)
|
"level" (add $level 1)
|
||||||
"baseURL" $href
|
"baseURL" $href
|
||||||
"group" $item
|
"group" $item
|
||||||
|
"menu" $data
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
@@ -37,6 +39,8 @@
|
|||||||
"level" $level
|
"level" $level
|
||||||
"baseURL" $href
|
"baseURL" $href
|
||||||
"title" $item.title
|
"title" $item.title
|
||||||
|
"href" $item.link
|
||||||
|
"menu" $data
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
@@ -47,15 +51,17 @@
|
|||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
{{- define "partials/sidebar/item.html" -}}
|
{{- define "partials/sidebar/item.html" -}}
|
||||||
{{ $page := .page }}
|
{{- $page := .page -}}
|
||||||
{{ $sectionBreak := .sectionBreak }}
|
{{- $sectionBreak := .sectionBreak -}}
|
||||||
{{- $level := .level -}}
|
{{- $level := .level -}}
|
||||||
{{ $baseURL := .baseURL}}
|
{{- $baseURL := .baseURL -}}
|
||||||
{{ $title := .title}}
|
{{- $title := .title -}}
|
||||||
|
{{- $href := .href -}}
|
||||||
|
{{- $data := .menu -}}
|
||||||
|
|
||||||
{{- $doc_slug := $title | urlize -}}
|
{{- $doc_slug := $title | urlize -}}
|
||||||
{{- $href := printf "%s/" (relLangURL (path.Join $baseURL $doc_slug)) -}}
|
{{- $href := or $href (printf "%s/" (relLangURL (path.Join $baseURL $doc_slug))) -}}
|
||||||
{{ $active := eq $page.RelPermalink $href }}
|
{{- $active := eq (strings.TrimSuffix "/" $page.RelPermalink) (strings.TrimSuffix "/" $href) -}}
|
||||||
|
|
||||||
{{ if eq $level 0}}
|
{{ if eq $level 0}}
|
||||||
<li class="mt-1 mb-1 {{ if $sectionBreak }}border-top{{ end }}"></li>
|
<li class="mt-1 mb-1 {{ if $sectionBreak }}border-top{{ end }}"></li>
|
||||||
@@ -63,17 +69,27 @@
|
|||||||
<li>
|
<li>
|
||||||
<ul class="btn-toggle-nav list-unstyled fw-bold pb-1">
|
<ul class="btn-toggle-nav list-unstyled fw-bold pb-1">
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ $href }}" class="sidebar-item text-decoration-none rounded {{ if $active }}active{{ end }}">
|
{{ $class := "sidebar-item text-decoration-none rounded" }}
|
||||||
{{ $title }}
|
{{ if $active }}{{ $class = printf "%s active" $class }}{{ end }}
|
||||||
</a>
|
{{ $link := partial "utilities/link.html" (dict "destination" $href "text" $title "class" $class "page" $page) }}
|
||||||
|
{{ if $link }}
|
||||||
|
{{ print $link | safeHTML }}
|
||||||
|
{{ else }}
|
||||||
|
{{- errorf "partial [utilities/sidebar.html] - Invalid link in file: %s" ($page.Scratch.Get "sidebarFilename") -}}
|
||||||
|
{{ end }}
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ $href }}" class="sidebar-item text-decoration-none rounded small {{ if $active }}active{{ end }}">
|
{{ $class := "sidebar-item text-decoration-none rounded small" }}
|
||||||
{{ $title }}
|
{{ if $active }}{{ $class = printf "%s active" $class }}{{ end }}
|
||||||
</a>
|
{{ $link := partial "utilities/link.html" (dict "destination" $href "text" $title "class" $class "page" $page) }}
|
||||||
|
{{ if $link }}
|
||||||
|
{{ print $link | safeHTML }}
|
||||||
|
{{ else }}
|
||||||
|
{{- errorf "partial [utilities/sidebar.html] - Invalid link in file: %s" ($page.Scratch.Get "sidebarFilename") -}}
|
||||||
|
{{ end }}
|
||||||
</li>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
@@ -94,6 +110,7 @@
|
|||||||
"level" (add $level 1)
|
"level" (add $level 1)
|
||||||
"baseURL" $baseURL
|
"baseURL" $baseURL
|
||||||
"group" $item
|
"group" $item
|
||||||
|
"menu" $data
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
@@ -103,6 +120,8 @@
|
|||||||
"level" $level
|
"level" $level
|
||||||
"baseURL" $baseURL
|
"baseURL" $baseURL
|
||||||
"title" $item.title
|
"title" $item.title
|
||||||
|
"href" $item.link
|
||||||
|
"menu" $data
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@@ -25,7 +25,7 @@
|
|||||||
<div id="{{ $id }}" class="toast{{ with $class }} {{ . }}{{ end }}" role="alert" aria-live="assertive" aria-atomic="true">
|
<div id="{{ $id }}" class="toast{{ with $class }} {{ . }}{{ end }}" role="alert" aria-live="assertive" aria-atomic="true">
|
||||||
<div class="toast-header">
|
<div class="toast-header">
|
||||||
{{ with $header }}<strong class="me-auto">{{ . }}</strong>{{ end }}
|
{{ with $header }}<strong class="me-auto">{{ . }}</strong>{{ end }}
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Close"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="{{ T "close" }}"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="toast-body">{{ $message }}</div>
|
<div class="toast-body">{{ $message }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
20
layouts/partials/assets/toc-main.html
Normal file
20
layouts/partials/assets/toc-main.html
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{{ $headings := .headings | default slice }}
|
||||||
|
{{- range .Fragments.Headings }}
|
||||||
|
{{- range .Headings }}
|
||||||
|
{{- $headings = $headings | append .Title -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if gt (len $headings) 1 }}
|
||||||
|
<nav class="navbar navbar-expand navbar-services p-0 fs-5">
|
||||||
|
<div class="container-fluid p-0 pb-3 border-bottom">
|
||||||
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
{{- range $headings }}
|
||||||
|
<li class="nav-item"><a class="nav-link" href="#{{ anchorize . }}">{{ . }}</a></li>
|
||||||
|
{{- end }}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
{{- end }}
|
@@ -1,7 +1,17 @@
|
|||||||
{{ $items := len (findRE "<li.*?>(.|\n)*?</li>" .TableOfContents) -}}
|
{{- $page := .page -}}
|
||||||
{{ if (gt $items 1) -}}
|
{{- $download := .download -}}
|
||||||
|
|
||||||
|
{{ $items := len (findRE "<li.*?>(.|\n)*?</li>" $page.TableOfContents) -}}
|
||||||
|
{{ if or $download (gt $items 1) -}}
|
||||||
<div class="toc toc-sidebar mb-5 my-md-0 ps-xl-3 mb-lg-5 p-3 text-body-secondary sticky-top">
|
<div class="toc toc-sidebar mb-5 my-md-0 ps-xl-3 mb-lg-5 p-3 text-body-secondary sticky-top">
|
||||||
|
{{ with $download }}
|
||||||
|
<div class="mb-5">
|
||||||
|
{{ $attr := dict "download" (path.Base .) }}
|
||||||
|
{{ partial "assets/button.html" (dict "href" . "title" (T "download" ) "color" "primary" "outline" "true" "icon" "fas download" "attributes" $attr) }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
<strong class="d-block h6 my-2 pb-2 border-bottom">{{ T "toc" }}</strong>
|
<strong class="d-block h6 my-2 pb-2 border-bottom">{{ T "toc" }}</strong>
|
||||||
{{ .TableOfContents }}
|
{{ $page.TableOfContents }}
|
||||||
</div>
|
</div>
|
||||||
{{ end -}}
|
{{ end -}}
|
@@ -6,6 +6,14 @@
|
|||||||
{{- $core := .core | default false -}}
|
{{- $core := .core | default false -}}
|
||||||
{{- $skipTemplate := .skipTemplate | default false -}}
|
{{- $skipTemplate := .skipTemplate | default false -}}
|
||||||
|
|
||||||
|
{{- $state := "async" -}}
|
||||||
|
{{- with .state }}{{ $state = . }}{{ end -}}
|
||||||
|
{{- if or $header (eq $state "immediate") }}{{ $state = "" }}{{ end -}}
|
||||||
|
{{- $supportedStates := slice "defer" "async" "immediate" -}}
|
||||||
|
{{- if and $state (not (in $supportedStates $state)) -}}
|
||||||
|
{{- errorf "partial [footer/script.html] - Invalid value for param 'processing': %s" $state -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- $modules := "" -}}
|
{{- $modules := "" -}}
|
||||||
{{ if $core }}
|
{{ if $core }}
|
||||||
{{- $modules = site.Params.modules.core -}}
|
{{- $modules = site.Params.modules.core -}}
|
||||||
@@ -26,9 +34,9 @@
|
|||||||
|
|
||||||
{{- if gt (len $js.Content) 0 -}}
|
{{- if gt (len $js.Content) 0 -}}
|
||||||
{{- if not hugo.IsProduction -}}
|
{{- if not hugo.IsProduction -}}
|
||||||
<script src="{{ if $absoluteURL }}{{ $js.Permalink }}{{ else }}{{ $js.RelPermalink }}{{ end }}"></script>
|
<script src="{{ if $absoluteURL }}{{ $js.Permalink }}{{ else }}{{ $js.RelPermalink }}{{ end }}"{{ with $state }} {{ . | safeHTMLAttr }}{{ end }}></script>
|
||||||
{{ else -}}
|
{{ else -}}
|
||||||
{{ $js = $js | minify | fingerprint -}}
|
{{ $js = $js | minify | fingerprint -}}
|
||||||
<script src="{{ if $absoluteURL }}{{ $js.Permalink }}{{ else }}{{ $js.RelPermalink }}{{ end }}" integrity="{{ $js.Data.Integrity }}" crossorigin="anonymous"></script>
|
<script src="{{ if $absoluteURL }}{{ $js.Permalink }}{{ else }}{{ $js.RelPermalink }}{{ end }}" integrity="{{ $js.Data.Integrity }}" crossorigin="anonymous"{{ with $state}} {{ . | safeHTMLAttr }}{{ end }}></script>
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
@@ -7,27 +7,29 @@
|
|||||||
|
|
||||||
{{ if gt .Site.Menus.social 0 }}
|
{{ if gt .Site.Menus.social 0 }}
|
||||||
{{- $tab := site.Params.main.externalLinks.tab -}}
|
{{- $tab := site.Params.main.externalLinks.tab -}}
|
||||||
<div class="container-fluid">
|
<div class="container-fluid bg-primary bg-opacity-{{ .Site.Params.style.themeOpacity | default "25" | safeHTML }}">
|
||||||
<div class="row row-cols-1 row-cols-sm-4 bg-primary p-3 bg-opacity-{{ .Site.Params.style.themeOpacity | default "25" | safeHTML }} align-items-center">
|
<div class="container-xxl px-4 px-xxl-0">
|
||||||
<div class="col col-md-2 d-none d-md-block"></div>
|
<div class="row row-cols-2 py-3 align-items-center">
|
||||||
<div class="col col-sm-6 col-md-4">
|
<div class="col col-6">
|
||||||
{{ if gt .Site.Menus.social 0 }}
|
<div class="row justify-content-end p-0">
|
||||||
<div class="fs-3 fw-bold">{{ or .Site.Params.footer.socialTitle .Site.Params.social.title }}</div>
|
<div class="col-12 col-md-8 p-0">
|
||||||
<p>{{ or .Site.Params.footer.socialCaption .Site.Params.social.caption }}</p>
|
<div class="fs-3 fw-bold">{{ or .Site.Params.footer.socialTitle .Site.Params.social.title }}</div>
|
||||||
{{ end }}
|
<p>{{ or .Site.Params.footer.socialCaption .Site.Params.social.caption }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col col-6 text-sm-start">
|
||||||
|
{{ range .Site.Menus.social -}}
|
||||||
|
<a href="{{ .URL }}" {{ if $tab }} target="_blank" rel="noopener noreferrer"{{ end }} aria-label="{{ .Name | safeHTML }}" class="text-decoration-none link-secondary d-inline p-2">
|
||||||
|
{{ if hasPrefix .Pre "<i" }}
|
||||||
|
{{ .Pre | safeHTML }}
|
||||||
|
{{ else }}
|
||||||
|
{{ partial "assets/icon.html" (dict "icon" (printf "%s fa-2x" .Pre) )}}
|
||||||
|
{{ end }}
|
||||||
|
</a>
|
||||||
|
{{ end -}}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col text-sm-start text-center col-sm-6 col-md-4">
|
|
||||||
{{ range .Site.Menus.social -}}
|
|
||||||
<a href="{{ .URL }}" {{ if $tab }} target="_blank" rel="noopener noreferrer"{{ end }} aria-label="{{ .Name | safeHTML }}" class="text-decoration-none link-secondary d-inline p-2">
|
|
||||||
{{ if hasPrefix .Pre "<i" }}
|
|
||||||
{{ .Pre | safeHTML }}
|
|
||||||
{{ else }}
|
|
||||||
{{ partial "assets/icon.html" (dict "icon" (printf "%s fa-2x" .Pre) )}}
|
|
||||||
{{ end }}
|
|
||||||
</a>
|
|
||||||
{{ end -}}
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-2 d-none d-md-block"></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
@@ -3,7 +3,7 @@
|
|||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
{{ hugo.Generator}}
|
{{ hugo.Generator}}
|
||||||
{{ partial "head/stylesheet.html" -}}
|
{{ partialCached "head/stylesheet-core.html" . -}}
|
||||||
{{- $modules := site.Params.modules.optional | intersect .Page.Params.modules -}}
|
{{- $modules := site.Params.modules.optional | intersect .Page.Params.modules -}}
|
||||||
{{- range $index, $mod := $modules -}}
|
{{- range $index, $mod := $modules -}}
|
||||||
{{- $source := printf "scss/%s.scss" $mod -}}
|
{{- $source := printf "scss/%s.scss" $mod -}}
|
||||||
|
3
layouts/partials/head/stylesheet-core.html
Normal file
3
layouts/partials/head/stylesheet-core.html
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{{/* Wrapper for the stylesheet partial with default arguments. */}}
|
||||||
|
{{/* Added to avoid interference with the argument of partialCached. */}}
|
||||||
|
{{ partial "head/stylesheet.html" -}}
|
@@ -1,5 +1,14 @@
|
|||||||
|
{{- $transpiler := site.Params.main.build.transpiler | default "libsass" -}}
|
||||||
|
{{- $supportedTranspilers := slice "libsass" "dartsass" -}}
|
||||||
|
{{- if not (in $supportedTranspilers $transpiler) -}}
|
||||||
|
{{- errorf "partial [head/stylesheet.html] - Invalid value for param 'transpiler': %s" $transpiler -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
|
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
|
||||||
{{- $source := .source | default "scss/app.scss" -}}
|
{{- $source := .source }}
|
||||||
|
{{- if not $source -}}
|
||||||
|
{{- if eq $transpiler "dartsass" }}{{ $source = "scss/app-dart.scss" }}{{ else }}{{ $source = "scss/app.scss" }}{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
{{- $target := .target | default "css/main.css" -}}
|
{{- $target := .target | default "css/main.css" -}}
|
||||||
{{- $page := .page -}}
|
{{- $page := .page -}}
|
||||||
{{- $core := .core | default true -}}
|
{{- $core := .core | default true -}}
|
||||||
@@ -21,6 +30,7 @@
|
|||||||
{{- if site.Params.navigation.fixed }}{{ $navbarOffset = site.Params.navigation.offset | default "4em" }}{{ end }}
|
{{- if site.Params.navigation.fixed }}{{ $navbarOffset = site.Params.navigation.offset | default "4em" }}{{ end }}
|
||||||
{{- $vars := dict
|
{{- $vars := dict
|
||||||
"theme-font" (default "Inter" site.Params.style.themeFont)
|
"theme-font" (default "Inter" site.Params.style.themeFont)
|
||||||
|
"font-size-base" (default "1rem" site.Params.style.fontSizeBase)
|
||||||
"primary" (default "#007bff" site.Params.style.primary)
|
"primary" (default "#007bff" site.Params.style.primary)
|
||||||
"secondary" (default "#6c757d" site.Params.style.secondary)
|
"secondary" (default "#6c757d" site.Params.style.secondary)
|
||||||
"success" (default "#198754" site.Params.style.success)
|
"success" (default "#198754" site.Params.style.success)
|
||||||
@@ -29,6 +39,7 @@
|
|||||||
"danger" (default "#dc3545" site.Params.style.danger)
|
"danger" (default "#dc3545" site.Params.style.danger)
|
||||||
"light" (default "#f8f9fa" site.Params.style.light)
|
"light" (default "#f8f9fa" site.Params.style.light)
|
||||||
"dark" (default "#212529" site.Params.style.dark)
|
"dark" (default "#212529" site.Params.style.dark)
|
||||||
|
"navbar-height" (site.Params.navigation.offset | default "4em")
|
||||||
"navbar-offset" $navbarOffset
|
"navbar-offset" $navbarOffset
|
||||||
"enable-dark-mode" (printf "%t" ((default true site.Params.main.enableDarkMode)))
|
"enable-dark-mode" (printf "%t" ((default true site.Params.main.enableDarkMode)))
|
||||||
"import-fonts" (printf "%t" (not (hasPrefix (lower site.Params.style.themeFontPath) "http")))
|
"import-fonts" (printf "%t" (not (hasPrefix (lower site.Params.style.themeFontPath) "http")))
|
||||||
@@ -36,22 +47,24 @@
|
|||||||
"dark-mode-tint" (default "0%" site.Params.style.darkModeTint)
|
"dark-mode-tint" (default "0%" site.Params.style.darkModeTint)
|
||||||
-}}
|
-}}
|
||||||
|
|
||||||
{{- $options := (dict "transpiler" "libsass" "targetPath" $target "enableSourceMap" (not hugo.IsProduction) "vars" $vars) -}}
|
{{- $options := (dict "transpiler" $transpiler "targetPath" $target "enableSourceMap" (not hugo.IsProduction) "vars" $vars) -}}
|
||||||
{{- $bundle := partial "utilities/bundle" (dict "match" $source "filename" (printf "scss/bundle-%d.scss" now.UnixNano) "modules" $modules "basepath" "scss" "debugging" site.Params.debugging.showSCSS) -}}
|
{{- $bundle := partial "utilities/bundle" (dict "match" $source "filename" (printf "scss/bundle-%d.scss" now.UnixNano) "modules" $modules "basepath" "scss" "debugging" site.Params.debugging.showSCSS) -}}
|
||||||
|
|
||||||
{{- $css := $bundle | resources.ExecuteAsTemplate $target . | toCSS $options -}}
|
{{- if gt ($bundle.Content | len) 0 }}
|
||||||
|
{{- $css := $bundle | resources.ExecuteAsTemplate $target . | toCSS $options -}}
|
||||||
|
|
||||||
{{ if $core }}
|
{{ if $core }}
|
||||||
{{- partial "head/icons.html" (dict "css" $css) -}}
|
{{- partial "head/icons.html" (dict "css" $css) -}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- if site.Params.style.purge -}}
|
{{- if site.Params.style.purge -}}
|
||||||
{{- $post_options := dict "config" "config" -}}
|
{{- $post_options := dict "config" "config" "noMap" hugo.IsProduction -}}
|
||||||
{{- $css = $css | resources.PostCSS $post_options -}}
|
{{- $css = $css | resources.PostCSS $post_options -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- if not hugo.IsProduction -}}
|
{{- if not hugo.IsProduction -}}
|
||||||
<link rel="stylesheet" href="{{ if $absoluteURL }}{{ $css.Permalink }}{{ else }}{{ $css.RelPermalink }}{{ end }}">
|
<link rel="stylesheet" href="{{ if $absoluteURL }}{{ $css.Permalink }}{{ else }}{{ $css.RelPermalink }}{{ end }}">
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- $css = $css | fingerprint | resources.PostProcess -}}
|
{{- $css = $css | minify | fingerprint | resources.PostProcess -}}
|
||||||
<link rel="stylesheet" href="{{ if $absoluteURL }}{{ $css.Permalink }}{{ else }}{{ $css.RelPermalink }}{{ end }}" integrity="{{ $css.Data.Integrity }}" crossorigin="anonymous">
|
<link rel="stylesheet" href="{{ if $absoluteURL }}{{ $css.Permalink }}{{ else }}{{ $css.RelPermalink }}{{ end }}" integrity="{{ $css.Data.Integrity }}" crossorigin="anonymous">
|
||||||
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
@@ -1,21 +0,0 @@
|
|||||||
<div class="container-fluid flex-fill feature">
|
|
||||||
<div class="row row-cols-1 row-cols-sm-4 h-100 bg-primary px-4 py-5 bg-opacity-{{ .Site.Params.style.themeOpacity | default "25" | safeHTML }} align-items-center">
|
|
||||||
<div class="col col-lg-2 d-none d-lg-block bg-info order-1"></div>
|
|
||||||
<div class="col col-sm-6 col-lg-4 text-center text-sm-start order-3 order-sm-2">
|
|
||||||
<p class="display-4">{{ .Title }}</p>
|
|
||||||
<p>{{ .Content }}<p>
|
|
||||||
</div>
|
|
||||||
<div class="col text-sm-start text-center col-sm-6 col-lg-4 order-2 order-sm-3">
|
|
||||||
{{- $thumbnail := (or (and (reflect.IsMap .Params.Thumbnail) .Params.Thumbnail.url) .Params.Thumbnail) -}}
|
|
||||||
{{- $thumbnail = or $thumbnail .Site.Params.home.featurePhoto -}}
|
|
||||||
{{ if .Site.Params.home.featurePhoto }}
|
|
||||||
{{ warnf "DEPRECATED: parameter `Params.home.featurePhoto` has been deprecated in release v0.18"}}
|
|
||||||
{{ end }}
|
|
||||||
{{- if $thumbnail -}}
|
|
||||||
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "16x9" "outerClass" "img-wrap" "innerClass" "rounded" "title" .Site.Title) -}}
|
|
||||||
{{ end }}
|
|
||||||
<div class="pb-5 d-block d-sm-none"></div>
|
|
||||||
</div>
|
|
||||||
<div class="col col-lg-2 d-none d-lg-block bg-info order-4"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
94
layouts/partials/list/featured.html
Normal file
94
layouts/partials/list/featured.html
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
{{- $page := .page -}}
|
||||||
|
{{- $headings := .headings -}}
|
||||||
|
{{- $orientation := .orientation | default "stacked" -}}
|
||||||
|
{{- $actions := .actions -}}
|
||||||
|
{{- $width := .width | default 6 }}
|
||||||
|
{{- if or (lt $width 1) (gt $width 12) -}}
|
||||||
|
{{- $width = 6 -}}
|
||||||
|
{{- warnf "partial [list/featured.html] - Invalid column width: %d" $width -}}
|
||||||
|
{{ end -}}
|
||||||
|
{{- $justify := .justify | default "center" -}}
|
||||||
|
{{- $supportedJustify := slice "start" "end" "center" "between" "around" "evenly" -}}
|
||||||
|
{{- if not (in $supportedJustify $justify) -}}
|
||||||
|
{{- errorf "partial [list/featured.html] - Invalid value for param 'justify': %s" $justify -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- $align := .align | default "center" -}}
|
||||||
|
{{- $supportedAlign := slice "start" "end" "center" -}}
|
||||||
|
{{- if not (in $supportedAlign $align) -}}
|
||||||
|
{{- errorf "partial [list/featured.html] - Invalid value for param 'align': %s" $align -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- $breadcrumb := and (not $page.IsHome) site.Params.navigation.breadcrumb -}}
|
||||||
|
|
||||||
|
{{- define "partials/list/featured-body.html" }}
|
||||||
|
{{- $page := .page -}}
|
||||||
|
{{- $headings := .headings -}}
|
||||||
|
{{- $orientation := .orientation | default "stacked" -}}
|
||||||
|
{{- $actions := .actions -}}
|
||||||
|
{{- $align := .align | default "center" -}}
|
||||||
|
|
||||||
|
<div class="text-{{ $align }}">
|
||||||
|
{{ with $page.Title }}<p class="display-4">{{ . }}</p>{{ end }}
|
||||||
|
<span class="fs-5 text-muted">{{ $page.Description }}</span>
|
||||||
|
|
||||||
|
{{ if $actions }}
|
||||||
|
{{- $actions = sort $actions "weight" "asc" -}}
|
||||||
|
<div class="hstack{{ if gt (len $actions) 1 }} gap-1{{ end }} justify-content-{{ $align}} pt-5 pt-md-3">
|
||||||
|
{{ range $actions }}
|
||||||
|
{{ partial "assets/button.html" (dict "href" .url "icon" .icon "title" .title "outline" .outline "order" "last" "justify" "start") }}
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "partials/list/featured-illustration.html" }}
|
||||||
|
{{- $page := .page -}}
|
||||||
|
{{- $style := printf "img-wrap mx-auto mx-md-0 %s" .style -}}
|
||||||
|
|
||||||
|
{{ if $page.Params.icon }}
|
||||||
|
{{- $icon := (or (and (reflect.IsMap $page.Params.Icon) $page.Params.Icon.url) $page.Params.Icon) -}}
|
||||||
|
{{- $mode := and (reflect.IsMap $page.Params.Icon) $page.Params.Icon.mode -}}
|
||||||
|
{{ if eq (lower (path.Ext $icon)) ".json" }}
|
||||||
|
{{ partial "assets/animation.html" (dict "data" $icon "mode" $mode "loop" false "hover" true "class" "col-6 mx-auto text-center") }}
|
||||||
|
{{ else }}
|
||||||
|
{{ partial "assets/icon.html" (dict "icon" "mode" $mode $icon "wrapper" "col-6 mx-auto text-center")}}
|
||||||
|
{{ end }}
|
||||||
|
{{ else }}
|
||||||
|
{{- $thumbnail := (or (and (reflect.IsMap $page.Params.Thumbnail) $page.Params.Thumbnail.url) $page.Params.Thumbnail) -}}
|
||||||
|
{{- if $thumbnail }}
|
||||||
|
{{ partial "assets/image.html" (dict "url" $thumbnail "ratio" "16x9" "outerClass" $style "innerClass" "rounded" "title" $page.Site.Title) }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
<div class="container-fluid p-0 {{ with site.Params.home.feature.color }} bg-{{ . }} bg-opacity-{{ site.Params.style.themeOpacity | default "25" | safeHTML }}{{ end }}">
|
||||||
|
<div class="container-xxl {{ if $breadcrumb }} pb-4 px-4 {{ else }} p-4 {{ end }} px-xxl-0 {{ if site.Params.home.fullCover }} fullcover{{ end }} d-flex flex-column">
|
||||||
|
{{ if $breadcrumb }}
|
||||||
|
<div>{{ partial "assets/breadcrumb.html" $page }}</div>
|
||||||
|
{{ end -}}
|
||||||
|
|
||||||
|
{{ if eq $orientation "stacked" }}
|
||||||
|
<div class="row justify-content-center flex-fill">
|
||||||
|
<div class="col-12 col-md-{{ $width }} m-auto text-center">
|
||||||
|
{{ partial "partials/list/featured-illustration.html" (dict "page" $page "style" "pb-4") }}
|
||||||
|
{{ partial "partials/list/featured-body.html" (dict "page" $page "headings" $headings "orientation" $orientation "actions" $actions) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{ else }}
|
||||||
|
<div class="row row-cols-1 row-cols-md-2 justify-content-{{ $justify }} flex-fill">
|
||||||
|
<div class="col col-12 col-md-{{ $width }} order-1 order-md-0 my-md-auto">
|
||||||
|
{{ partial "partials/list/featured-body.html" (dict "page" $page "headings" $headings "orientation" $orientation "actions" $actions "align" $align) }}
|
||||||
|
</div>
|
||||||
|
<div class="col col-12 col-md-{{ if gt $width 6 }}{{ sub 12 $width }}{{ else }}{{ $width }}{{ end }} order-0 order-md-1 text-center my-md-auto align-self-end">
|
||||||
|
{{ partial "partials/list/featured-illustration.html" (dict "page" $page "style" "pb-4 pb-md-0") }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ with $headings }}
|
||||||
|
<div class="col col-12 p-0 pt-5">
|
||||||
|
{{ partial "assets/toc-main.html" (dict "headings" .) }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
</div>
|
35
layouts/partials/single/thumbnail.html
Normal file
35
layouts/partials/single/thumbnail.html
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{{- $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 -}}
|
@@ -7,7 +7,8 @@
|
|||||||
{{ $page := .page -}}
|
{{ $page := .page -}}
|
||||||
{{ $arg := .arg -}}
|
{{ $arg := .arg -}}
|
||||||
{{ $merge := .merge -}}
|
{{ $merge := .merge -}}
|
||||||
{{ $val := $page.Get $arg }}
|
{{ $val := "" }}
|
||||||
|
{{ with $page.Get $arg }}{{ $val = . }}{{ end }}
|
||||||
|
|
||||||
{{- with $page.Parent -}}
|
{{- with $page.Parent -}}
|
||||||
{{ with .Get $arg }}
|
{{ with .Get $arg }}
|
||||||
|
@@ -1,12 +1,17 @@
|
|||||||
{{- $page := .page -}}
|
{{- $page := .page -}}
|
||||||
{{- $version := .version -}}
|
{{- $version := .version -}}
|
||||||
|
{{- $sidebarFilename := "" -}}
|
||||||
|
|
||||||
{{- $menu := "" -}}
|
{{- $menu := "" -}}
|
||||||
{{- if $page.IsPage -}}
|
{{- if $page.IsPage -}}
|
||||||
{{- $menu = index site.Data (printf "%s-%s" $page.Section $version) -}}
|
{{- $sidebarFilename = printf "%s-%s" $page.Section $version -}}
|
||||||
|
{{- $menu = index site.Data $sidebarFilename -}}
|
||||||
{{ if not $menu }}
|
{{ if not $menu }}
|
||||||
{{ $menu = index site.Data $page.Section }}
|
{{- $sidebarFilename = $page.Section -}}
|
||||||
|
{{ $menu = index site.Data $sidebarFilename }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{ if $menu }}{{ with $sidebarFilename }}{{ $page.Scratch.Set "sidebarFilename" (path.Join "data" .) }}{{ end }}{{ end -}}
|
||||||
|
|
||||||
{{- return $menu -}}
|
{{- return $menu -}}
|
33
layouts/partials/utilities/GetPage.html
Normal file
33
layouts/partials/utilities/GetPage.html
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{{- $ref := "" -}}
|
||||||
|
{{- $anchor := "" -}}
|
||||||
|
|
||||||
|
{{ $url := .url }}
|
||||||
|
{{ if not $url }}
|
||||||
|
{{- errorf "partial [utilities/GetPage.html] - Expected param 'url'" -}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ $page := .page }}
|
||||||
|
{{ if not $page }}
|
||||||
|
{{- errorf "partial [utilities/GetPage.html] - Expected param 'page'" -}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{- $isExternal := ne (urls.Parse (absURL $url)).Host (urls.Parse site.BaseURL).Host -}}
|
||||||
|
{{- if not $isExternal -}}
|
||||||
|
{{- $ref = $page.GetPage $url -}}
|
||||||
|
{{ if not $ref }}
|
||||||
|
{{ $ref = (index (where $page.Site.AllPages "RelPermalink" (printf "%s/" (strings.TrimSuffix "/" $url))) 0)}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{- if not $ref }}
|
||||||
|
{{- $segments := split $url "/" -}}
|
||||||
|
{{- if and (hasPrefix $url "/") (gt (len $segments) 1) -}}
|
||||||
|
{{- $prefix := index $segments 1 -}}
|
||||||
|
{{ with index (where site.Sites "Language.Lang" $prefix) 0 }}
|
||||||
|
{{- $path := printf "/%s" (strings.TrimPrefix (printf "/%s/" $prefix) $url) }}
|
||||||
|
{{- $ref = .GetPage $path -}}
|
||||||
|
{{ end }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{ return $ref }}
|
78
layouts/partials/utilities/GetSections.html
Normal file
78
layouts/partials/utilities/GetSections.html
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
{{- $page := .page -}}
|
||||||
|
{{- $loading := .loading -}}
|
||||||
|
|
||||||
|
{{/* Add title for current page */}}
|
||||||
|
{{- $items := slice -}}
|
||||||
|
{{ $items = $items | append (dict "title" .Title "content" "" )}}
|
||||||
|
|
||||||
|
{{/* Identify page sections */}}
|
||||||
|
{{- $sections := slice -}}
|
||||||
|
{{- $sections = $sections | append $page.Type -}}
|
||||||
|
{{ with $page.Params.sections }}
|
||||||
|
{{ $sections = $sections | append . }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if $page.IsHome }}
|
||||||
|
{{- if not $page.Params.sections -}}
|
||||||
|
{{- with site.Params.home.sections }}
|
||||||
|
{{ $sections = $sections | append . }}
|
||||||
|
{{ else }}
|
||||||
|
{{ range $section := site.Sections }}
|
||||||
|
{{ $sections = $sections | append $section.Type }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{- end -}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{/* Generate title and content for each section */}}
|
||||||
|
{{- range $index, $section := $sections -}}
|
||||||
|
{{- $sectionPage := site.GetPage "section" $section -}}
|
||||||
|
{{- $sectionURL := $sectionPage.RelPermalink -}}
|
||||||
|
{{ with $sectionPage.Params.redirect}}
|
||||||
|
{{ $target := partial "utilities/GetPage.html" (dict "url" . "page" $page) }}
|
||||||
|
{{- if not $target -}}
|
||||||
|
{{ if eq (printf "%T" $page.File) "*hugolib.fileInfo"}}
|
||||||
|
{{- errorf "Cannot find redirect target on page '%s': %s" $page.File . -}}
|
||||||
|
{{ else }}
|
||||||
|
{{- errorf "Cannot find redirect target: %s" . -}}
|
||||||
|
{{ end }}
|
||||||
|
{{ else }}
|
||||||
|
{{- $sectionURL = $target.RelPermalink -}}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{- $title := or $sectionPage.Title $sectionPage.Type -}}
|
||||||
|
|
||||||
|
{{- with (index site.Params.sections $section) -}}
|
||||||
|
{{- with index . "title" }}{{ $title = or . $title }}{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $thumbnail := (or (and (reflect.IsMap $sectionPage.Params.Thumbnail) $sectionPage.Params.Thumbnail.url) $sectionPage.Params.Thumbnail) -}}
|
||||||
|
{{- $icon := $sectionPage.Params.Icon -}}
|
||||||
|
{{- $content := $sectionPage.Content -}}
|
||||||
|
{{- $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))) -}}
|
||||||
|
|
||||||
|
{{- $sectionContent := trim (partial "assets/section-list.html" (dict
|
||||||
|
"page" $page
|
||||||
|
"section" $section
|
||||||
|
"home" $page.IsHome
|
||||||
|
"simple" (eq (len $sections) 1)
|
||||||
|
"nested" (and $page.IsHome (eq $section $page.Section))
|
||||||
|
"thumbnail" $thumbnail
|
||||||
|
"icon" $icon
|
||||||
|
"content" $content
|
||||||
|
"moreTitle" $moreTitle
|
||||||
|
"sectionURL" $sectionURL
|
||||||
|
"loading" $loading)) " \r\n"
|
||||||
|
-}}
|
||||||
|
|
||||||
|
{{ if $sectionContent }}
|
||||||
|
{{ $items = $items | append (dict "title" $title "content" $sectionContent)}}
|
||||||
|
{{ end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{ return $items }}
|
17
layouts/partials/utilities/GetWidth.html
Normal file
17
layouts/partials/utilities/GetWidth.html
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{{ $path := .path }}
|
||||||
|
{{ $height := .height }}
|
||||||
|
{{ $width := "" }}
|
||||||
|
|
||||||
|
{{ if eq (path.Ext $path) ".svg" }}
|
||||||
|
{{ $path := path.Join "static" .path }}
|
||||||
|
{{ if fileExists $path }}
|
||||||
|
{{ with findRE `viewBox="\d*\.?\d+[\s,]\d*\.?\d+[\s,]\d*\.?\d+[\s,]\d*\.?\d+"` (readFile $path) 1 }}
|
||||||
|
{{ $content := split (index (split (index . 0) `"`) 1) " " }}
|
||||||
|
{{ $viewbox_width := float (index $content 2) }}
|
||||||
|
{{ $viewbox_height := float (index $content 3) }}
|
||||||
|
{{ $width = int (math.Round (mul (div $height $viewbox_height) $viewbox_width)) }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ return $width }}
|
@@ -3,6 +3,7 @@
|
|||||||
{{- errorf "partial [utilities/link.html] - Missing param 'destination'" -}}
|
{{- errorf "partial [utilities/link.html] - Missing param 'destination'" -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $error := false -}}
|
||||||
{{- $target := "" -}}
|
{{- $target := "" -}}
|
||||||
{{- $rel := "" -}}
|
{{- $rel := "" -}}
|
||||||
{{- $case := .case | default true }}
|
{{- $case := .case | default true }}
|
||||||
@@ -25,7 +26,7 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- if $cue -}}
|
{{- if $cue -}}
|
||||||
{{ $suffix := partial "assets/icon.html" (dict "icon" "fas up-right-from-square fa-2xs") }}
|
{{ $suffix := partial "assets/icon.html" (dict "icon" "fas up-right-from-square fa-2xs" "spacing" false) }}
|
||||||
{{- $text = printf "%s %s" $text $suffix | safeHTML -}}
|
{{- $text = printf "%s %s" $text $suffix | safeHTML -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
@@ -34,27 +35,15 @@
|
|||||||
{{- if ne (len $segments) 2 }}
|
{{- if ne (len $segments) 2 }}
|
||||||
{{- errorf "partial [utilities/link.html] - Malformed path, expected one anchor '#' only: %s" $destination -}}
|
{{- errorf "partial [utilities/link.html] - Malformed path, expected one anchor '#' only: %s" $destination -}}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{- $destination = index $segments 0 -}}
|
{{- $destination = index $segments 0 -}}
|
||||||
{{- $anchor = index $segments 1 -}}
|
{{- $anchor = index $segments 1 -}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- $destination = strings.TrimSuffix "/" $destination -}}
|
|
||||||
{{- $ref := $page.GetPage $destination -}}
|
|
||||||
|
|
||||||
{{- if not $ref }}
|
|
||||||
{{- $segments := split $destination "/" -}}
|
|
||||||
{{- if and (hasPrefix $destination "/") (gt (len $segments) 1) -}}
|
|
||||||
{{- $prefix := index $segments 1 -}}
|
|
||||||
{{- $page := .Page -}}
|
|
||||||
{{ with index (where site.Sites "Language.Lang" $prefix) 0 }}
|
|
||||||
{{- $path := printf "/%s" (strings.TrimPrefix (printf "/%s/" $prefix) $destination) }}
|
|
||||||
{{- $ref = .GetPage $path -}}
|
|
||||||
{{ end }}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
|
{{ $ref := partial "utilities/GetPage.html" (dict "url" $destination "page" $page) }}
|
||||||
{{- if not $ref -}}
|
{{- if not $ref -}}
|
||||||
{{- errorf "partial [utilities/link.html] - Cannot find page: %s" $destination -}}
|
{{- errorf "partial [utilities/link.html] - Cannot find page: %s" $destination -}}
|
||||||
|
{{- $error = true -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- $destination = $ref.RelPermalink -}}
|
{{- $destination = $ref.RelPermalink -}}
|
||||||
{{- with $anchor }}{{ $destination = printf "%s#%s" (strings.TrimSuffix "/" $destination) . -}}{{ end -}}
|
{{- with $anchor }}{{ $destination = printf "%s#%s" (strings.TrimSuffix "/" $destination) . -}}{{ end -}}
|
||||||
@@ -69,4 +58,6 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
<a {{ with $class }}class="{{ . }}" {{ end }}href="{{ $destination | safeURL }}"{{ with $target }} target="{{ . }}"{{ end }}{{ with $rel }} rel="{{ . }}"{{ end }}>{{ $text }}</a>
|
{{ if not $error -}}
|
||||||
|
<a {{ with $class }}class="{{ . }}" {{ end }}href="{{ $destination | safeURL }}"{{ with $target }} target="{{ . }}"{{ end }}{{ with $rel }} rel="{{ . }}"{{ end }}>{{ $text }}</a>
|
||||||
|
{{- end }}
|
@@ -35,7 +35,7 @@
|
|||||||
{{ $error = true }}
|
{{ $error = true }}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
{{- $class := .Get "class" -}}
|
{{- $class := .Get "class" | default "" -}}
|
||||||
|
|
||||||
{{ if not $error }}
|
{{ if not $error }}
|
||||||
{{/* Try language-specific file first */}}
|
{{/* Try language-specific file first */}}
|
||||||
@@ -63,6 +63,6 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ if not $error }}
|
{{ if not $error }}
|
||||||
<abbr {{ with $class }}class="{{ . }}"{{ end }} title="{{ $title }}">{{ $key }}</abbr>
|
<abbr {{ with $class }}class="{{ . }}"{{ end }} title="{{ $title }}" tabindex="0">{{ $key }}</abbr>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
@@ -12,7 +12,7 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- $id := .Ordinal -}}
|
{{- $id := .Ordinal -}}
|
||||||
{{ $header := .Get "header" -}}
|
{{ $header := .Get "header" | default "" -}}
|
||||||
{{ if not $header -}}
|
{{ if not $header -}}
|
||||||
{{ if .Parent }}
|
{{ if .Parent }}
|
||||||
{{ errorf "Missing value for param 'header': %s" .Parent.Position -}}
|
{{ errorf "Missing value for param 'header': %s" .Parent.Position -}}
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
{{ $class := .Get "class" -}}
|
{{ $class := .Get "class" | default "" -}}
|
||||||
{{ $body := trim .Inner " \r\n" -}}
|
{{ $body := trim .Inner " \r\n" -}}
|
||||||
{{ if not $body -}}
|
{{ if not $body -}}
|
||||||
{{ if .Parent }}
|
{{ if .Parent }}
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
{{ with .Get "id" }}
|
{{ with .Get "id" }}
|
||||||
{{ $id = . }}
|
{{ $id = . }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- $class := .Get "class" -}}
|
{{- $class := .Get "class" | default "" -}}
|
||||||
|
|
||||||
{{- $openParam := "false" -}}
|
{{- $openParam := "false" -}}
|
||||||
{{- $open := false -}}
|
{{- $open := false -}}
|
||||||
|
@@ -49,14 +49,14 @@
|
|||||||
{{ $error = true -}}
|
{{ $error = true -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
{{- $class := .Get "class" -}}
|
{{- $class := .Get "class" | default "" -}}
|
||||||
|
|
||||||
{{- if not $error -}}
|
{{- if not $error -}}
|
||||||
<div class="d-flex alert alert-{{ $color }} {{ if $dismissible }}alert-dismissible fade show{{ end }}{{ with $class }} {{ . }}{{ end }}" role="alert">
|
<div class="d-flex alert alert-{{ $color }} {{ if $dismissible }}alert-dismissible fade show{{ end }}{{ with $class }} {{ . }}{{ end }}" role="alert">
|
||||||
{{ with $icon }}<div class="pt-1 pe-2">{{ . }}</div>{{ end }}
|
{{ with $icon }}<div class="pt-1 pe-2">{{ . }}</div>{{ end }}
|
||||||
<div class="flex-grow-1 my-auto">
|
<div class="flex-grow-1 my-auto">
|
||||||
{{ trim .Inner " \r\n" | .Page.RenderString | safeHTML -}}
|
{{ trim .Inner " \r\n" | .Page.RenderString | safeHTML -}}
|
||||||
{{ if $dismissible }}<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>{{ end }}
|
{{ if $dismissible }}<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="{{ T "close" }}"></button>{{ end }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
@@ -7,8 +7,8 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
{{- $error := false -}}
|
{{- $error := false -}}
|
||||||
{{- $title := .Get "title" -}}
|
{{- $title := .Get "title" | default "" -}}
|
||||||
{{- $class := .Get "class" -}}
|
{{- $class := .Get "class" | default "" -}}
|
||||||
{{- $color := "secondary" -}}
|
{{- $color := "secondary" -}}
|
||||||
{{- with .Get "color" }}{{ $color = . }}{{ end -}}
|
{{- with .Get "color" }}{{ $color = . }}{{ end -}}
|
||||||
{{- $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" -}}
|
{{- $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" -}}
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{{- $error := false -}}
|
{{- $error := false -}}
|
||||||
{{- $page := . -}}
|
{{- $page := . -}}
|
||||||
{{- $path := .Get "path"}}
|
{{- $path := .Get "path" | default "" }}
|
||||||
{{- if $path -}}
|
{{- if $path -}}
|
||||||
{{- $page = .Site.GetPage $path -}}
|
{{- $page = .Site.GetPage $path -}}
|
||||||
{{- if not $page -}}
|
{{- if not $page -}}
|
||||||
|
@@ -26,12 +26,14 @@
|
|||||||
"main.externalLinks.cue" in the site's parameters.
|
"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
|
"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.
|
"main.externalLinks.tab" in the site's parameters.
|
||||||
|
"spacing" Optional flag to add spacing to the inline button, defaults to "true".
|
||||||
|
"wrapper" Optional element to wrap the button.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
{{ $error := false }}
|
{{ $error := false }}
|
||||||
{{ $type := "button" -}}
|
{{ $type := "button" -}}
|
||||||
|
|
||||||
{{- $icon := .Get "icon" }}
|
{{- $icon := .Get "icon" | default "" }}
|
||||||
{{ $title := trim .Inner " \r\n" | .Page.RenderString -}}
|
{{ $title := trim .Inner " \r\n" | .Page.RenderString -}}
|
||||||
{{ if not (or $title $icon) -}}
|
{{ if not (or $title $icon) -}}
|
||||||
{{ errorf "Missing icon or inner element text: %s" .Position -}}
|
{{ errorf "Missing icon or inner element text: %s" .Position -}}
|
||||||
@@ -71,17 +73,17 @@
|
|||||||
{{ errorf "Invalid value for param 'outline': %s" .Position -}}
|
{{ errorf "Invalid value for param 'outline': %s" .Position -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
{{ $badge := .Get "badge" -}}
|
{{ $badge := .Get "badge" | default "" -}}
|
||||||
{{ $label := .Get "aria-label" -}}
|
{{ $label := .Get "aria-label" | default "" -}}
|
||||||
{{ $tooltip := .Get "tooltip" -}}
|
{{ $tooltip := .Get "tooltip" | default "" -}}
|
||||||
{{ $collapse := .Get "collapse" -}}
|
{{ $collapse := .Get "collapse" | default "" -}}
|
||||||
{{ $href := .Get "href" -}}
|
{{ $href := .Get "href" | default "" -}}
|
||||||
{{ $relref := .Get "relref" }}
|
{{ $relref := .Get "relref" | default "" -}}
|
||||||
{{ $id := .Get "id" -}}
|
{{ $id := .Get "id" | default "" -}}
|
||||||
{{ if $relref }}
|
{{ if $relref }}
|
||||||
{{ $href = relref . $relref }}
|
{{ $href = relref . $relref }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ $class := .Get "class" -}}
|
{{ $class := .Get "class" | default "" -}}
|
||||||
|
|
||||||
{{ $placement := "top" -}}
|
{{ $placement := "top" -}}
|
||||||
{{ with .Get "placement" }}{{ $placement = . }}{{ end -}}
|
{{ with .Get "placement" }}{{ $placement = . }}{{ end -}}
|
||||||
@@ -91,7 +93,7 @@
|
|||||||
{{ $error = true }}
|
{{ $error = true }}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
{{- $toast := .Get "toast" -}}
|
{{- $toast := .Get "toast" | default "" -}}
|
||||||
|
|
||||||
{{- $order := "last" -}}
|
{{- $order := "last" -}}
|
||||||
{{- with .Get "order" }}{{ $order = . }}{{ end -}}
|
{{- with .Get "order" }}{{ $order = . }}{{ end -}}
|
||||||
@@ -112,6 +114,8 @@
|
|||||||
{{- $cue := .Get "cue" | default site.Params.main.externalLinks.cue -}}
|
{{- $cue := .Get "cue" | default site.Params.main.externalLinks.cue -}}
|
||||||
{{- $tab := .Get "tab" | default site.Params.main.externalLinks.tab -}}
|
{{- $tab := .Get "tab" | default site.Params.main.externalLinks.tab -}}
|
||||||
|
|
||||||
|
{{- $spacing := .Get "spacing" | default (not .Parent) -}}
|
||||||
|
|
||||||
{{ if not $error }}
|
{{ if not $error }}
|
||||||
{{- $output := partial "assets/button.html" (dict
|
{{- $output := partial "assets/button.html" (dict
|
||||||
"type" $type
|
"type" $type
|
||||||
@@ -133,9 +137,14 @@
|
|||||||
"justify" $justify
|
"justify" $justify
|
||||||
"cue" $cue
|
"cue" $cue
|
||||||
"tab" $tab
|
"tab" $tab
|
||||||
"toast" $toast)
|
"toast" $toast
|
||||||
|
"spacing" $spacing)
|
||||||
-}}
|
-}}
|
||||||
|
|
||||||
|
{{ with .Get "wrapper" }}
|
||||||
|
{{ $output = printf `<div class="%s">%s</div>` . $output }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{- if .Parent -}}
|
{{- if .Parent -}}
|
||||||
{{ $current := .Parent.Scratch.Get "inner" }}
|
{{ $current := .Parent.Scratch.Get "inner" }}
|
||||||
{{ if $current }}
|
{{ if $current }}
|
||||||
|
@@ -8,7 +8,9 @@
|
|||||||
"cols" Required number of columns for the grid, must be a value between 1 and 5.
|
"cols" Required number of columns for the grid, must be a value between 1 and 5.
|
||||||
"title" Optional title of the card group.
|
"title" Optional title of the card group.
|
||||||
"separator" Optional flag to indicate a horizontal line should be added between items on small screens.
|
"separator" Optional flag to indicate a horizontal line should be added between items on small screens.
|
||||||
"gutter" Gutter between columns in a group, either "0", "1", "2", "3" (default), "4", or "5".
|
"gutter" Gutter between columns in a group, either "0", "1", "2", "3", "4" (default), or "5".
|
||||||
|
"wrapper" Optional class attributes of the wrapper element, e.g. "p-4 px-xxl-0".
|
||||||
|
"responsive" Optional flag if the number of columns should be responsive, defaults to "true".
|
||||||
|
|
||||||
In addition, the following arguments are passed to the individual cards.
|
In addition, the following arguments are passed to the individual cards.
|
||||||
"class" Optional class attribute of the card element, e.g. “w-50”.
|
"class" Optional class attribute of the card element, e.g. “w-50”.
|
||||||
@@ -22,24 +24,35 @@
|
|||||||
"orientation" Optional placecement of the thumbnail, either "stacked" (default), "horizontal", or "none".
|
"orientation" Optional placecement of the thumbnail, either "stacked" (default), "horizontal", or "none".
|
||||||
-->
|
-->
|
||||||
|
|
||||||
{{- $cols := 3 -}}
|
{{- $cols := .Get "cols" | default "3" -}}
|
||||||
{{ with .Get "cols" }}{{ $cols = int . }}{{ end -}}
|
{{- $gutter := .Get "gutter" | default "4" -}}
|
||||||
{{- $title := .Get "title" -}}
|
{{- $title := .Get "title" | default "" -}}
|
||||||
{{- $separator := .Get "separator" -}}
|
{{- $separator := .Get "separator" | default "" -}}
|
||||||
{{- $class := .Get "class" -}}
|
{{- $class := .Get "class" | default "" -}}
|
||||||
{{- $wrapper := .Get "wrapper" -}}
|
{{- $wrapper := .Get "wrapper" | default "" -}}
|
||||||
{{- $color := .Get "color" -}}
|
{{- $responsive := .Get "responsive" | default true -}}
|
||||||
|
{{- $color := .Get "color" | default "" -}}
|
||||||
{{- $padding := .Get "padding" | default "3" -}}
|
{{- $padding := .Get "padding" | default "3" -}}
|
||||||
{{- $header := .Get "header" -}}
|
{{- $header := .Get "header" | default "" -}}
|
||||||
{{- $footer := .Get "footer" -}}
|
{{- $footer := .Get "footer" | default "" -}}
|
||||||
{{- $orientation := .Get "orientation" -}}
|
{{- $orientation := .Get "orientation" | default "" -}}
|
||||||
|
|
||||||
|
{{ $inner := .Scratch.Get "inner" }}
|
||||||
|
{{ $input := trim .Inner " \r\n" }}
|
||||||
|
{{ if $input }}
|
||||||
|
{{ $input = replace $input "\n" "\n " }}
|
||||||
|
{{ warnf "Unexpected inner content: %s\r\n %s" .Position $input }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{- partial "assets/card-group.html" (dict
|
{{- partial "assets/card-group.html" (dict
|
||||||
"page" .Page
|
"page" .Page
|
||||||
"cards" .Inner
|
"cards" $inner
|
||||||
"cols" $cols
|
"cols" $cols
|
||||||
|
"gutter" $gutter
|
||||||
"title" $title
|
"title" $title
|
||||||
"separator" $separator
|
"separator" $separator
|
||||||
|
"wrapper" $wrapper
|
||||||
|
"responsive" $responsive
|
||||||
"class" $class
|
"class" $class
|
||||||
"color" $color
|
"color" $color
|
||||||
"padding" $padding
|
"padding" $padding
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Displays a Bootstrap card that links to a page. Any inner text is used as description The shortcode supports the
|
Displays a Bootstrap card that links to a page. Any inner text is used as description. The shortcode supports the
|
||||||
following arguments:
|
following arguments:
|
||||||
"path" Optional path of the page. If omitted, specify the title, icon, thumbnail, and body as needed.
|
"path" Optional path of the page. If omitted, specify the title, icon, thumbnail, and body as needed.
|
||||||
"title" Optional title of the card.
|
"title" Optional title of the card.
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
"warning", "info", "light", "dark", "white", "black", "body", or "body-tertiary". By default, no
|
"warning", "info", "light", "dark", "white", "black", "body", or "body-tertiary". By default, no
|
||||||
color is specified.
|
color is specified.
|
||||||
"padding" Optional padding of the content, either "0", "1", "2", "3", "4", "5", or "auto" (default).
|
"padding" Optional padding of the content, either "0", "1", "2", "3", "4", "5", or "auto" (default).
|
||||||
"gutter" Gutter between columns in a group, either "0", "1", "2", "3" (default), "4", or "5".
|
"gutter" Gutter between columns in a group, either "0" (default), "1", "2", "3", "4", or "5".
|
||||||
"header" Optional header components of the card, displayed in small caps. Supported values are "full"
|
"header" Optional header components of the card, displayed in small caps. Supported values are "full"
|
||||||
(default), "publication", "tags", and "none".
|
(default), "publication", "tags", and "none".
|
||||||
"footer" Optional footer components of the card, displayed in small caps. Supported values are "full",
|
"footer" Optional footer components of the card, displayed in small caps. Supported values are "full",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
{{ $error := false }}
|
{{ $error := false }}
|
||||||
|
|
||||||
{{ $path := .Get "path" }}
|
{{ $path := or (.Get "path") "" }}
|
||||||
{{ $page := .Page }}
|
{{ $page := .Page }}
|
||||||
{{ with $path }}
|
{{ with $path }}
|
||||||
{{ $page = $.Site.GetPage $path }}
|
{{ $page = $.Site.GetPage $path }}
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
{{ $error = true -}}
|
{{ $error = true -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
{{- $gutter := partial "utilities/GetArg" (dict "page" . "arg" "gutter") | default "3" -}}
|
{{- $gutter := partial "utilities/GetArg" (dict "page" . "arg" "gutter") | default "0" -}}
|
||||||
{{ $supportedGutters:= slice "0" "1" "2" "3" "4" "5" -}}
|
{{ $supportedGutters:= slice "0" "1" "2" "3" "4" "5" -}}
|
||||||
{{ if not (in $supportedGutters $gutter) -}}
|
{{ if not (in $supportedGutters $gutter) -}}
|
||||||
{{ errorf "Invalid value for param 'gutter': %s" .Position -}}
|
{{ errorf "Invalid value for param 'gutter': %s" .Position -}}
|
||||||
@@ -82,26 +82,40 @@
|
|||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
{{ $description := trim .Inner " \r\n" | .Page.RenderString | safeHTML }}
|
{{ $description := trim .Inner " \r\n" | .Page.RenderString | safeHTML }}
|
||||||
{{ $title := .Get "title" }}
|
{{ $title := .Get "title" | default "" -}}
|
||||||
{{ $alt := .Get "alt" }}
|
{{ $alt := .Get "alt" | default "" -}}
|
||||||
{{ $icon := .Get "icon" }}
|
{{ $icon := .Get "icon" | default "" -}}
|
||||||
{{ $thumbnail := .Get "thumbnail" }}
|
{{ $thumbnail := .Get "thumbnail" | default "" -}}
|
||||||
|
|
||||||
|
{{ if .Parent }}
|
||||||
|
{{ $class = (printf "h-100 %s" $class) }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{ if not $error -}}
|
{{ if not $error -}}
|
||||||
<div class="g-{{ $gutter }}">
|
{{- $output := partial "assets/card.html" (dict
|
||||||
{{- partial "assets/card.html" (dict
|
"path" $path
|
||||||
"path" $path
|
"title" $title
|
||||||
"title" $title
|
"class" $class
|
||||||
"class" (printf "h-100 %s" $class)
|
"gutter" $gutter
|
||||||
"color" $color
|
"color" $color
|
||||||
"padding" $padding
|
"padding" $padding
|
||||||
"header" $header
|
"header" $header
|
||||||
"footer" $footer
|
"footer" $footer
|
||||||
"orientation" $orientation
|
"orientation" $orientation
|
||||||
"description" $description
|
"description" $description
|
||||||
"icon" $icon
|
"icon" $icon
|
||||||
"thumbnail" $thumbnail
|
"thumbnail" $thumbnail
|
||||||
"alt" $alt
|
"alt" $alt
|
||||||
) -}}
|
) -}}
|
||||||
</div>
|
|
||||||
|
{{ with .Parent }}
|
||||||
|
{{ $current := .Scratch.Get "inner" }}
|
||||||
|
{{ if $current }}
|
||||||
|
{{ .Scratch.Set "inner" (print $current $output) }}
|
||||||
|
{{ else }}
|
||||||
|
{{ .Scratch.Set "inner" $output }}
|
||||||
|
{{ end }}
|
||||||
|
{{ else }}
|
||||||
|
{{ print $output | safeHTML }}
|
||||||
|
{{ 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