mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 18:14:28 +00:00
Compare commits
613 Commits
v0.19.0-al
...
v0.22.0-al
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6661434c35 | ||
![]() |
aee6b3a32d | ||
![]() |
4b0cc260cb | ||
![]() |
7611315941 | ||
![]() |
3b1f71a601 | ||
![]() |
fead3555fc | ||
![]() |
cd3f99fc90 | ||
![]() |
a2e6855117 | ||
![]() |
1e4cd3a5da | ||
![]() |
865898ac4f | ||
![]() |
44ace26cde | ||
![]() |
d0350c7672 | ||
![]() |
943a115ef0 | ||
![]() |
745322b3fe | ||
![]() |
90ea2cb760 | ||
![]() |
2d6c3c7d64 | ||
![]() |
4401c49c54 | ||
![]() |
fa3bfa7008 | ||
![]() |
14c2ddc725 | ||
![]() |
1e55dc8f65 | ||
![]() |
78980dde3f | ||
![]() |
3a770b6f40 | ||
![]() |
b271adef3f | ||
![]() |
639c9770b8 | ||
![]() |
e6b29666ad | ||
![]() |
dd052250f6 | ||
![]() |
1223a22d7e | ||
![]() |
b6f034f8e3 | ||
![]() |
ca01b67396 | ||
![]() |
eb3a2b0bb1 | ||
![]() |
41711fb527 | ||
![]() |
6e7a9a8796 | ||
![]() |
92838c0572 | ||
![]() |
3f71da19ee | ||
![]() |
43a6dd2b79 | ||
![]() |
806fac97db | ||
![]() |
9fd07827db | ||
![]() |
28cdcec7ee | ||
![]() |
cb2e946435 | ||
![]() |
2e7bb50d43 | ||
![]() |
3d7875ba18 | ||
![]() |
29ab88d581 | ||
![]() |
d93bbe4fe3 | ||
![]() |
3a2d062e22 | ||
![]() |
c3ef897a71 | ||
![]() |
73964e6be4 | ||
![]() |
520c000d3b | ||
![]() |
e3c1db7b88 | ||
![]() |
9ba3218f61 | ||
![]() |
a912d65608 | ||
![]() |
ffd6bb9c46 | ||
![]() |
6a238c3a11 | ||
![]() |
3210d72068 | ||
![]() |
add57592cd | ||
![]() |
584131c8c4 | ||
![]() |
9e8a1b4e3d | ||
![]() |
61efc2de16 | ||
![]() |
ce1f688b38 | ||
![]() |
088464bf13 | ||
![]() |
936ca3ffc2 | ||
![]() |
4f6320f7cf | ||
![]() |
ccf3169381 | ||
![]() |
54d66d2b02 | ||
![]() |
25aeb94364 | ||
![]() |
5657ef5b40 | ||
![]() |
c8818d104f | ||
![]() |
ed239034bf | ||
![]() |
774f936d3b | ||
![]() |
905c28886a | ||
![]() |
ad430074f7 | ||
![]() |
6449f01185 | ||
![]() |
0c3488472c | ||
![]() |
ee7990ec1e | ||
![]() |
b892b48388 | ||
![]() |
340213e4ff | ||
![]() |
989f2eed4c | ||
![]() |
4fadb7a6ab | ||
![]() |
8f1fd120eb | ||
![]() |
f2fc3b60a4 | ||
![]() |
c0735f71ef | ||
![]() |
858f9b3430 | ||
![]() |
402a7a85b8 | ||
![]() |
97fbc6087c | ||
![]() |
cc4a4766a9 | ||
![]() |
6821ac2b60 | ||
![]() |
06e10655ec | ||
![]() |
d32fdfa987 | ||
![]() |
9e97f063e5 | ||
![]() |
627f174ae4 | ||
![]() |
c349c28f08 | ||
![]() |
e73f96ffe9 | ||
![]() |
bd4ab51aff | ||
![]() |
81823c35ec | ||
![]() |
c567949205 | ||
![]() |
def136cb1b | ||
![]() |
889dc2e5ef | ||
![]() |
371323f929 | ||
![]() |
1694702d11 | ||
![]() |
048f50ddc4 | ||
![]() |
488cfc576b | ||
![]() |
1d8e564acf | ||
![]() |
6e94bc279b | ||
![]() |
90ee15cccf | ||
![]() |
751ff334ac | ||
![]() |
c200af1ad2 | ||
![]() |
5232afa812 | ||
![]() |
ad8e2f51d7 | ||
![]() |
ff708cf580 | ||
![]() |
f93ee9f01b | ||
![]() |
611320e661 | ||
![]() |
8a56d82cb9 | ||
![]() |
c052086388 | ||
![]() |
d4bfbf925a | ||
![]() |
b6b7e7be4f | ||
![]() |
61ef48798b | ||
![]() |
d65382e80d | ||
![]() |
e97d3e6fe9 | ||
![]() |
5cb189d545 | ||
![]() |
7897fe5f00 | ||
![]() |
6c4e0e8992 | ||
![]() |
3c6a533236 | ||
![]() |
69a9108655 | ||
![]() |
4fdc7bb7d3 | ||
![]() |
170bd7034a | ||
![]() |
2bc99753d6 | ||
![]() |
3ae1671b46 | ||
![]() |
4b9f137d41 | ||
![]() |
651f733622 | ||
![]() |
a2b0c2c05f | ||
![]() |
21476927ef | ||
![]() |
8c86081271 | ||
![]() |
fe5e94d277 | ||
![]() |
585db8094e | ||
![]() |
4bcc536d42 | ||
![]() |
b22c2e5ca5 | ||
![]() |
715b714781 | ||
![]() |
1d4b95a827 | ||
![]() |
0530a01445 | ||
![]() |
2a29eba66e | ||
![]() |
e93b66f4b8 | ||
![]() |
44bb9d7f12 | ||
![]() |
4f58f20b94 | ||
![]() |
cd047ea6fe | ||
![]() |
7d6526f291 | ||
![]() |
ede17bdae8 | ||
![]() |
876315613e | ||
![]() |
b2c5efb4bd | ||
![]() |
74047866e5 | ||
![]() |
6fb25c2111 | ||
![]() |
db3fc0014e | ||
![]() |
7105f8e719 | ||
![]() |
96ab7df306 | ||
![]() |
1a964adabb | ||
![]() |
9f4adc0777 | ||
![]() |
da1edce3aa | ||
![]() |
863012256f | ||
![]() |
faecbf7f45 | ||
![]() |
49581b6749 | ||
![]() |
d795d506dd | ||
![]() |
6348b8ed3f | ||
![]() |
aa2ec54189 | ||
![]() |
a8fdd78b21 | ||
![]() |
e1170b8a95 | ||
![]() |
400ef7d2c5 | ||
![]() |
02fec2c512 | ||
![]() |
8f4ec5e8d6 | ||
![]() |
e16e10a8e8 | ||
![]() |
15764b7642 | ||
![]() |
a4247c6c6a | ||
![]() |
1fcfc7c874 | ||
![]() |
0a885188a8 | ||
![]() |
213a78c864 | ||
![]() |
767d0d0efe | ||
![]() |
51ac0e4c33 | ||
![]() |
f3d1f2a84b | ||
![]() |
856fcdd9f2 | ||
![]() |
3aaef99bb3 | ||
![]() |
fed96e723f | ||
![]() |
58ba3c1838 | ||
![]() |
d6b233da3e | ||
![]() |
8bf7668cc5 | ||
![]() |
632badddb5 | ||
![]() |
c2e1cd370a | ||
![]() |
4ac787bef0 | ||
![]() |
678b9502ff | ||
![]() |
e2222be7b8 | ||
![]() |
4c5c2eef73 | ||
![]() |
064baae07d | ||
![]() |
a3a0f0fe6c | ||
![]() |
c5dd3c39d9 | ||
![]() |
7bb0853525 | ||
![]() |
25928bf38a | ||
![]() |
09e516db93 | ||
![]() |
0bf26224df | ||
![]() |
347704fc8e | ||
![]() |
829795f3fe | ||
![]() |
5f25b5458e | ||
![]() |
d3e80198a8 | ||
![]() |
5afb2936b8 | ||
![]() |
2da3f2a2b8 | ||
![]() |
acebdc610f | ||
![]() |
490df18d60 | ||
![]() |
9f963bdd2d | ||
![]() |
104d19e203 | ||
![]() |
261981ca23 | ||
![]() |
1acc469ba2 | ||
![]() |
64287d42b8 | ||
![]() |
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 | ||
![]() |
c0a8fbe86b | ||
![]() |
8a9e7b2d57 | ||
![]() |
dc85034aed | ||
![]() |
6b029098d9 | ||
![]() |
9f754f93a0 | ||
![]() |
910240df67 | ||
![]() |
4f93a96e7e | ||
![]() |
f93977ba24 | ||
![]() |
9a260950ef | ||
![]() |
66df7986e7 | ||
![]() |
487da42baa | ||
![]() |
64150de775 | ||
![]() |
2ded5a6fe5 | ||
![]() |
feae17bffe | ||
![]() |
0949023b81 | ||
![]() |
aa096ed497 | ||
![]() |
af08703c50 | ||
![]() |
5c0939160a | ||
![]() |
1a2497f745 | ||
![]() |
ec1fb97c93 | ||
![]() |
c83c3b7fd8 | ||
![]() |
158fd884ad | ||
![]() |
a872cb977b | ||
![]() |
48d6ab035a | ||
![]() |
27ed169c26 | ||
![]() |
b3118bab80 | ||
![]() |
73edc42408 | ||
![]() |
a2a466cf2b | ||
![]() |
c426340ed2 | ||
![]() |
ae14943882 | ||
![]() |
c4b43fd2ac | ||
![]() |
df017d9d5d | ||
![]() |
9c0ea3e564 | ||
![]() |
eb5d4b3dec | ||
![]() |
8de7ad2d82 | ||
![]() |
96fb918b7a | ||
![]() |
d2e81917d3 | ||
![]() |
020e11a06c | ||
![]() |
8470b4f809 | ||
![]() |
12f29b765d | ||
![]() |
4bf56b9c99 | ||
![]() |
584a51a5bf | ||
![]() |
e36858d1e1 | ||
![]() |
d9152fa8ea | ||
![]() |
77e3698b04 | ||
![]() |
d6366618fd |
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
|
||||||
|
36
README.md
36
README.md
@@ -9,32 +9,32 @@
|
|||||||
|
|
||||||
<!-- Badges -->
|
<!-- Badges -->
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://gohugo.io" alt="Hugo website">
|
<a href="https://gohugo.io">
|
||||||
<img src="https://img.shields.io/badge/generator-hugo-brightgreen">
|
<img src="https://img.shields.io/badge/generator-hugo-brightgreen" alt="Hugo website">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://gethinode.com" alt="Hinode theme">
|
<a href="https://gethinode.com">
|
||||||
<img src="https://img.shields.io/badge/theme-hinode-blue">
|
<img src="https://img.shields.io/badge/theme-hinode-blue" alt="Hinode theme">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://www.npmjs.com/package/%40gethinode/hinode" alt="npm package">
|
<a href="https://www.npmjs.com/package/%40gethinode/hinode">
|
||||||
<img src="https://img.shields.io/npm/v/%40gethinode/hinode">
|
<img src="https://img.shields.io/npm/v/%40gethinode/hinode" alt="npm package">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://app.netlify.com/sites/gethinode-demo/deploys" alt="Netlify Status">
|
<a href="https://app.netlify.com/sites/gethinode-demo/deploys">
|
||||||
<img src="https://img.shields.io/netlify/0ad42e3e-fdfa-4d37-8e26-58badd429a67">
|
<img src="https://img.shields.io/netlify/0ad42e3e-fdfa-4d37-8e26-58badd429a67" alt="Netlify Status">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://stats.uptimerobot.com/xyGVYhLJmV" alt="UptimeRobot Status">
|
<a href="https://stats.uptimerobot.com/xyGVYhLJmV">
|
||||||
<img src="https://img.shields.io/uptimerobot/status/m791334689-73d9dfc82030f4f955b2d6bb">
|
<img src="https://img.shields.io/uptimerobot/status/m791334689-73d9dfc82030f4f955b2d6bb" alt="UptimeRobot Status">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/gethinode/hinode/commits/main" alt="Last commit">
|
<a href="https://github.com/gethinode/hinode/commits/main">
|
||||||
<img src="https://img.shields.io/github/last-commit/gethinode/hinode.svg">
|
<img src="https://img.shields.io/github/last-commit/gethinode/hinode.svg" alt="Last commit">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/gethinode/hinode/issues" alt="Issues">
|
<a href="https://github.com/gethinode/hinode/issues">
|
||||||
<img src="https://img.shields.io/github/issues/gethinode/hinode.svg">
|
<img src="https://img.shields.io/github/issues/gethinode/hinode.svg" alt="Issues">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/gethinode/hinode/pulls" alt="Pulls">
|
<a href="https://github.com/gethinode/hinode/pulls">
|
||||||
<img src="https://img.shields.io/github/issues-pr-raw/gethinode/hinode.svg">
|
<img src="https://img.shields.io/github/issues-pr-raw/gethinode/hinode.svg" alt="Pulls">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/gethinode/hinode/blob/main/LICENSE" alt="License">
|
<a href="https://github.com/gethinode/hinode/blob/main/LICENSE">
|
||||||
<img src="https://img.shields.io/github/license/gethinode/hinode">
|
<img src="https://img.shields.io/github/license/gethinode/hinode" alt="License">
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
@@ -11,8 +11,8 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- $pc := .Site.Config.Privacy.GoogleAnalytics -}}
|
{{- $pc := .Site.Config.Privacy.GoogleAnalytics -}}
|
||||||
{{- if (and (not .Site.IsServer) (not $pc.Disable)) -}}
|
{{- if (and (not hugo.IsServer) (not $pc.Disable)) -}}
|
||||||
{{ with .Site.GoogleAnalytics -}}
|
{{ with .Site.Config.Services.GoogleAnalytics.ID -}}
|
||||||
{{ if hasPrefix . "G-"}}
|
{{ if hasPrefix . "G-"}}
|
||||||
{{ template "__ga_js_set_doNotTrack" $ }}
|
{{ template "__ga_js_set_doNotTrack" $ }}
|
||||||
|
|
||||||
|
59
assets/scss/app-dart.scss
Normal file
59
assets/scss/app-dart.scss
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
@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 "theme/variables.scss";
|
||||||
|
@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/nav.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/video.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";
|
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
// Include default variable overrides
|
// Include default variable overrides
|
||||||
@import "common/variables.scss";
|
@import "common/variables.scss";
|
||||||
|
@import "theme/variables.scss";
|
||||||
@import "common/icons.scss";
|
@import "common/icons.scss";
|
||||||
|
|
||||||
// Import Bootstrap configuration (mounted by core Bootstrap module)
|
// Import Bootstrap configuration (mounted by core Bootstrap module)
|
||||||
@@ -12,10 +13,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";
|
||||||
@@ -23,6 +25,7 @@
|
|||||||
@import "components/comments.scss";
|
@import "components/comments.scss";
|
||||||
@import "components/feature.scss";
|
@import "components/feature.scss";
|
||||||
@import "components/footer.scss";
|
@import "components/footer.scss";
|
||||||
|
@import "components/nav.scss";
|
||||||
@import "components/navbar.scss";
|
@import "components/navbar.scss";
|
||||||
@import "components/img.scss";
|
@import "components/img.scss";
|
||||||
@import "components/pagination.scss";
|
@import "components/pagination.scss";
|
||||||
@@ -30,9 +33,10 @@
|
|||||||
@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/video.scss";
|
||||||
@import "common/animation.scss";
|
@import "common/animation.scss";
|
||||||
@import "common/styles.scss";
|
@import "common/styles.scss";
|
||||||
@import "layouts/reboot.scss";
|
@import "layouts/reboot.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: "✓ ";
|
||||||
}
|
}
|
||||||
|
47
assets/scss/common/_variables-dart.scss
Normal file
47
assets/scss/common/_variables-dart.scss
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
// 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;
|
||||||
|
|
||||||
|
$dropdown-transition: opacity .15s ease-in-out !default;
|
||||||
|
$dropdown-horizontal-margin-top: calc((-1.5 * 1rem) - 2px);
|
||||||
|
$dropdown-horizontal-padding-y: calc(1rem + 2px);
|
@@ -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
|
||||||
@@ -33,3 +34,9 @@ $link-color-dark: mix(white, $primary, $dark-mode-tint) !defau
|
|||||||
$primary-bg-subtle-dark: mix(black, $primary, $dark-mode-shade) !default;
|
$primary-bg-subtle-dark: mix(black, $primary, $dark-mode-shade) !default;
|
||||||
$primary-border-subtle-dark: mix(black, $primary, $dark-mode-shade / 2) !default;
|
$primary-border-subtle-dark: mix(black, $primary, $dark-mode-shade / 2) !default;
|
||||||
// scss-docs-end color-mode
|
// scss-docs-end color-mode
|
||||||
|
|
||||||
|
// scss-docs-start horizontal-nav
|
||||||
|
$dropdown-transition: opacity .15s ease-in-out !default;
|
||||||
|
$dropdown-horizontal-margin-top: calc((-1.5 * 1rem) - 2px);
|
||||||
|
$dropdown-horizontal-padding-y: calc(1rem + 2px);
|
||||||
|
// scss-docs-end horizontal-nav
|
||||||
|
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 {
|
||||||
|
@@ -14,3 +14,8 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mirrorred {
|
||||||
|
-webkit-transform: scaleX(-1);
|
||||||
|
transform: scaleX(-1);
|
||||||
|
}
|
||||||
|
103
assets/scss/components/_nav.scss
Normal file
103
assets/scss/components/_nav.scss
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
.nav-tabs > .nav-link.active {
|
||||||
|
border-bottom-color: var(--bs-body-bg) !important;
|
||||||
|
border-bottom-style: solid !important;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-callout {
|
||||||
|
--#{$prefix}nav-callout-bg: var(--#{$prefix}light);
|
||||||
|
--#{$prefix}nav-callout-active-bg: var(--bs-primary-bg-subtle);
|
||||||
|
--#{$prefix}nav-callout-gap: #{$nav-underline-gap};
|
||||||
|
|
||||||
|
column-gap: var(--#{$prefix}nav-callout-gap) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-callout > .tab-content {
|
||||||
|
background-color: var(--#{$prefix}nav-callout-bg);
|
||||||
|
padding: 2 * $spacer;
|
||||||
|
margin-top: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-callout > .nav-link {
|
||||||
|
display: flex;
|
||||||
|
text-align: start;
|
||||||
|
vertical-align: text-top;
|
||||||
|
border-radius: 0;
|
||||||
|
padding: 0 0 (4 * $spacer) 0;
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-callout > .nav-link.active {
|
||||||
|
background-image: linear-gradient(to top right, var(--#{$prefix}nav-callout-bg) 50%, transparent 0);
|
||||||
|
background-size: 50% (3 * $spacer);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: 50% bottom;
|
||||||
|
font-weight: 600;
|
||||||
|
color: var(--bs-nav-underline-link-active-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-callout .accordion-button {
|
||||||
|
background-color: var(--#{$prefix}nav-callout-bg) !important;
|
||||||
|
border: solid;
|
||||||
|
border-color: var(--#{$prefix}border-color);
|
||||||
|
border-radius: var(--#{$prefix}accordion-inner-border-radius) !important;
|
||||||
|
margin-bottom: 0;
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
border-bottom: none !important;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(.collapsed) {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-callout > .accordion-item {
|
||||||
|
margin-top: 2 * $spacer;
|
||||||
|
margin-bottom: 2 * $spacer;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-callout .accordion-button[aria-expanded="false"] {
|
||||||
|
border-bottom: solid !important;
|
||||||
|
border-color: var(--#{$prefix}border-color) !important;
|
||||||
|
border-radius: var(--#{$prefix}accordion-inner-border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-callout .accordion-button[aria-expanded="true"] {
|
||||||
|
border-color: var(--#{$prefix}border-color) !important;
|
||||||
|
border-bottom: none !important;
|
||||||
|
border-radius: var(--#{$prefix}accordion-inner-border-radius) var(--#{$prefix}accordion-inner-border-radius) 0 0 !important;
|
||||||
|
padding-bottom: 3 * $spacer;
|
||||||
|
background-image: linear-gradient(to top right, var(--#{$prefix}nav-callout-active-bg) 50%, transparent 0);
|
||||||
|
background-size: 10% (2.5 * $spacer);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: 10% bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-callout .accordion-collapse {
|
||||||
|
background-color: var(--#{$prefix}nav-callout-active-bg) !important;
|
||||||
|
border-radius: 0 0 var(--#{$prefix}accordion-inner-border-radius) var(--#{$prefix}accordion-inner-border-radius);
|
||||||
|
border-top: none !important;
|
||||||
|
border-left: solid;
|
||||||
|
border-right: solid;
|
||||||
|
border-bottom: solid;
|
||||||
|
border-color: var(--#{$prefix}border-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $enable-dark-mode {
|
||||||
|
@include color-mode(dark) {
|
||||||
|
.nav-callout {
|
||||||
|
--#{$prefix}nav-callout-bg: var(--#{$prefix}tertiary-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-callout .accordion-button[aria-expanded="true"] {
|
||||||
|
background-image: linear-gradient(to top right, shade-color($primary, 70%) 50%, transparent 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-callout .accordion-collapse {
|
||||||
|
background-color: shade-color($primary, 70%) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -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,73 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 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-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: $dropdown-horizontal-margin-top;
|
||||||
|
padding-top: $dropdown-horizontal-padding-y;
|
||||||
|
padding-bottom: $dropdown-horizontal-padding-y;
|
||||||
|
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 {
|
||||||
@@ -90,3 +94,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.section-menu > .nav-link.active, .section-menu > .nav-link:hover {
|
||||||
|
color: var(--bs-primary);
|
||||||
|
}
|
||||||
|
@@ -1,3 +1,19 @@
|
|||||||
|
.youtube-embedded {
|
||||||
|
position: relative;
|
||||||
|
padding-bottom: 56.25%;
|
||||||
|
height: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.youtube-embedded > iframe {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border:0;
|
||||||
|
}
|
||||||
|
|
||||||
// Adapted from https://github.com/gohugoio/hugo/tpl/tplimpl/embedded/templates/shortcodes/vimeo_simple.html
|
// Adapted from https://github.com/gohugoio/hugo/tpl/tplimpl/embedded/templates/shortcodes/vimeo_simple.html
|
||||||
.__h_video {
|
.__h_video {
|
||||||
position: relative;
|
position: relative;
|
@@ -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;
|
||||||
|
}
|
||||||
|
2
assets/scss/theme/_variables.scss
Normal file
2
assets/scss/theme/_variables.scss
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
// Placeholder to quickly add your own theme variable overrides
|
||||||
|
// The file is included at the beginning of the build pipeline
|
@@ -6,7 +6,6 @@ enableGitInfo = true
|
|||||||
# toml-docs-end main
|
# toml-docs-end main
|
||||||
|
|
||||||
# additional settings
|
# additional settings
|
||||||
# googleAnalytics = "G-xxxxxxxxxx"
|
|
||||||
baseURL = "https://example.com/"
|
baseURL = "https://example.com/"
|
||||||
canonifyURLs = false
|
canonifyURLs = false
|
||||||
enableEmoji = true
|
enableEmoji = true
|
||||||
@@ -73,6 +72,8 @@ home = ["HTML", "RSS", "REDIR"]
|
|||||||
disableInlineCSS = true
|
disableInlineCSS = true
|
||||||
[services.twitter]
|
[services.twitter]
|
||||||
disableInlineCSS = true
|
disableInlineCSS = true
|
||||||
|
[services.googleAnalytics]
|
||||||
|
# ID = "G-xxxxxxxxxx"
|
||||||
|
|
||||||
[outputFormats]
|
[outputFormats]
|
||||||
[outputFormats.XML]
|
[outputFormats.XML]
|
||||||
@@ -83,10 +84,16 @@ home = ["HTML", "RSS", "REDIR"]
|
|||||||
permalinkable = false
|
permalinkable = false
|
||||||
name = "xml"
|
name = "xml"
|
||||||
|
|
||||||
|
[minify]
|
||||||
|
[minify.tdewolff.js]
|
||||||
|
keepVarNames = true
|
||||||
|
precision = 0
|
||||||
|
version = 2022
|
||||||
|
|
||||||
[module]
|
[module]
|
||||||
[module.hugoVersion]
|
[module.hugoVersion]
|
||||||
extended = true
|
extended = true
|
||||||
min = "0.110.0"
|
min = "0.120.0"
|
||||||
max = ""
|
max = ""
|
||||||
[[module.mounts]]
|
[[module.mounts]]
|
||||||
source = "archetypes"
|
source = "archetypes"
|
||||||
@@ -123,4 +130,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,24 @@
|
|||||||
modes = ["light", "dark"]
|
modes = ["light", "dark"]
|
||||||
canonifyAssetsURLs = false
|
canonifyAssetsURLs = false
|
||||||
endorse = true
|
endorse = true
|
||||||
|
footerBelowFold = false
|
||||||
|
loading = "lazy"
|
||||||
|
breakpoint = "md"
|
||||||
[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 +50,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 +63,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 +130,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 +157,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
|
||||||
|
@@ -14,11 +14,13 @@ const purgecss = require('@fullhuman/postcss-purgecss')({
|
|||||||
...whitelister([
|
...whitelister([
|
||||||
'./assets/scss/components/_clipboard.scss',
|
'./assets/scss/components/_clipboard.scss',
|
||||||
'./assets/scss/components/_command.scss',
|
'./assets/scss/components/_command.scss',
|
||||||
|
'./assets/scss/components/_nav.scss',
|
||||||
'./assets/scss/components/_navbar.scss',
|
'./assets/scss/components/_navbar.scss',
|
||||||
'./assets/scss/components/_search.scss',
|
'./assets/scss/components/_search.scss',
|
||||||
'./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',
|
||||||
@@ -26,6 +28,7 @@ const purgecss = require('@fullhuman/postcss-purgecss')({
|
|||||||
'./_vendor/github.com/gethinode/mod-leaflet/dist/leaflet.scss',
|
'./_vendor/github.com/gethinode/mod-leaflet/dist/leaflet.scss',
|
||||||
'./_vendor/github.com/twbs/bootstrap/scss/_carousel.scss',
|
'./_vendor/github.com/twbs/bootstrap/scss/_carousel.scss',
|
||||||
'./_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss',
|
'./_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss',
|
||||||
|
'./_vendor/github.com/twbs/bootstrap/scss/_modal.scss',
|
||||||
'./_vendor/github.com/twbs/bootstrap/scss/_reboot.scss',
|
'./_vendor/github.com/twbs/bootstrap/scss/_reboot.scss',
|
||||||
'./_vendor/github.com/twbs/bootstrap/scss/_tooltip.scss',
|
'./_vendor/github.com/twbs/bootstrap/scss/_tooltip.scss',
|
||||||
'./_vendor/github.com/twbs/bootstrap/scss/_transitions.scss',
|
'./_vendor/github.com/twbs/bootstrap/scss/_transitions.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>}}
|
|
||||||
|
174
data/structures/card.yml
Normal file
174
data/structures/card.yml
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
comment: >-
|
||||||
|
Displays a Bootstrap card. Either specify a valid path, or set the arguments
|
||||||
|
title, href, header, description, and thumbnail individually. The latter
|
||||||
|
arguments override any page attributes.
|
||||||
|
arguments:
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Title of the card.
|
||||||
|
path:
|
||||||
|
type: path
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Path of the page, override with other parameters.
|
||||||
|
href:
|
||||||
|
type: url
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Address for the button or hyperlink.
|
||||||
|
group: partial
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
parent: merge
|
||||||
|
comment: >-
|
||||||
|
Class attribute of the card element, e.g. “w-50”.
|
||||||
|
color:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
parent: cascade
|
||||||
|
comment: >-
|
||||||
|
Theme color of the card. By default, no color is specified.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- primary
|
||||||
|
- secondary
|
||||||
|
- success
|
||||||
|
- danger
|
||||||
|
- warning
|
||||||
|
- info
|
||||||
|
- light
|
||||||
|
- dark
|
||||||
|
- white
|
||||||
|
- black
|
||||||
|
- body
|
||||||
|
- body-tertiary
|
||||||
|
padding:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: auto
|
||||||
|
parent: cascade
|
||||||
|
comment: >-
|
||||||
|
Padding of the content.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- "0"
|
||||||
|
- "1"
|
||||||
|
- "2"
|
||||||
|
- "3"
|
||||||
|
- "4"
|
||||||
|
- "5"
|
||||||
|
- "auto"
|
||||||
|
gutter:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: "0"
|
||||||
|
parent: cascade
|
||||||
|
comment: >-
|
||||||
|
Gutter between columns in a group.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- "0"
|
||||||
|
- "1"
|
||||||
|
- "2"
|
||||||
|
- "3"
|
||||||
|
- "4"
|
||||||
|
- "5"
|
||||||
|
header:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: full
|
||||||
|
parent: cascade
|
||||||
|
comment: >-
|
||||||
|
Header components of the card, displayed in small caps.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- full
|
||||||
|
- publication
|
||||||
|
- tags
|
||||||
|
- none
|
||||||
|
footer:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: none
|
||||||
|
parent: cascade
|
||||||
|
comment: >-
|
||||||
|
Footer components of the card, displayed in small caps.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- full
|
||||||
|
- publication
|
||||||
|
- tags
|
||||||
|
- none
|
||||||
|
description:
|
||||||
|
type:
|
||||||
|
- string
|
||||||
|
- template.HTML
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Description of the card.
|
||||||
|
group: partial
|
||||||
|
loading:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: eager
|
||||||
|
comment: >-
|
||||||
|
Loading behavior of the image. 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.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- lazy
|
||||||
|
- eager
|
||||||
|
group: partial
|
||||||
|
thumbnail:
|
||||||
|
type: path
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Thumbnail image url, displayed on top or the left of the card.
|
||||||
|
ratio:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Ratio of the thumbnail image, defaults to "16x9" (stacked orientation)
|
||||||
|
or "1x1" (horizontal orientation).
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- 1x1
|
||||||
|
- 3x2
|
||||||
|
- 4x3
|
||||||
|
- 16x9
|
||||||
|
- 21x9
|
||||||
|
group: partial
|
||||||
|
alt:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
release: v0.19.0
|
||||||
|
comment: >-
|
||||||
|
Alternate text for the thumbnail, uses "title" by default.
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Font Awesome icon, displayed on top or the left of the card.
|
||||||
|
orientation:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: stacked
|
||||||
|
parent: cascade
|
||||||
|
comment: >-
|
||||||
|
Placement of the thumbnail or icon.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- stacked
|
||||||
|
- horizontal
|
||||||
|
- horizontal-sm
|
||||||
|
- none
|
||||||
|
body:
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Description of the card.
|
||||||
|
group: shortcode
|
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 |
@@ -5,7 +5,6 @@ paginate = 9
|
|||||||
enableGitInfo = true
|
enableGitInfo = true
|
||||||
|
|
||||||
# additional settings
|
# additional settings
|
||||||
googleAnalytics = "G-T85PPZ36GN"
|
|
||||||
baseURL = "https://demo.gethinode.com/"
|
baseURL = "https://demo.gethinode.com/"
|
||||||
canonifyURLs = false
|
canonifyURLs = false
|
||||||
enableEmoji = true
|
enableEmoji = true
|
||||||
@@ -63,6 +62,8 @@ home = ["HTML", "RSS", "REDIR"]
|
|||||||
disableInlineCSS = true
|
disableInlineCSS = true
|
||||||
[services.twitter]
|
[services.twitter]
|
||||||
disableInlineCSS = true
|
disableInlineCSS = true
|
||||||
|
[services.googleAnalytics]
|
||||||
|
ID = "G-T85PPZ36GN"
|
||||||
|
|
||||||
[outputFormats]
|
[outputFormats]
|
||||||
[outputFormats.XML]
|
[outputFormats.XML]
|
||||||
@@ -73,6 +74,12 @@ home = ["HTML", "RSS", "REDIR"]
|
|||||||
permalinkable = false
|
permalinkable = false
|
||||||
name = "xml"
|
name = "xml"
|
||||||
|
|
||||||
|
[minify]
|
||||||
|
[minify.tdewolff.js]
|
||||||
|
keepVarNames = true
|
||||||
|
precision = 0
|
||||||
|
version = 2022
|
||||||
|
|
||||||
[module]
|
[module]
|
||||||
replacements = 'github.com/gethinode/hinode -> ../..'
|
replacements = 'github.com/gethinode/hinode -> ../..'
|
||||||
[[module.imports]]
|
[[module.imports]]
|
||||||
|
@@ -4,15 +4,22 @@
|
|||||||
enableDarkMode = true
|
enableDarkMode = true
|
||||||
modes = ["light", "dark"]
|
modes = ["light", "dark"]
|
||||||
canonifyAssetsURLs = false
|
canonifyAssetsURLs = false
|
||||||
|
footerBelowFold = false
|
||||||
|
loading = "lazy"
|
||||||
|
breakpoint = "md"
|
||||||
[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.katex]
|
||||||
|
state = "defer"
|
||||||
[modules.fontawesome]
|
[modules.fontawesome]
|
||||||
inline = true
|
inline = true
|
||||||
debug = true
|
debug = true
|
||||||
@@ -34,14 +41,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 +112,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 +127,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
|
||||||
|
46
exampleSite/config/postcss.config.js
Normal file
46
exampleSite/config/postcss.config.js
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
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/_nav.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/_modal.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>}}
|
|
||||||
|
@@ -20,7 +20,7 @@ As an example, the following shortcode displays the full text of an abbreviation
|
|||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
<!-- markdownlint-disable MD037 -->
|
||||||
{{< example lang="hugo" >}}
|
{{< example lang="hugo" >}}
|
||||||
{{</* abbr html */>}}
|
{{</* abbr "CI/CD" */>}}
|
||||||
{{< /example >}}
|
{{< /example >}}
|
||||||
<!-- markdownlint-enable MD037 -->
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
@@ -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,15 +294,25 @@ 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" /*/>}}
|
||||||
|
|
||||||
{{< /example >}}
|
{{< /example >}}
|
||||||
<!-- markdownlint-enable MD037 -->
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Mark
|
||||||
|
|
||||||
|
Use the `mark` shortcode to highlight text. The inner content is used as input.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
Use the mark shortcode to {{</* mark >}}highlight{{< /mark */>}} specific text.
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
## Nav
|
## Nav
|
||||||
|
|
||||||
As an example, the following shortcode displays a tab group with vertically aligned pills.
|
As an example, the following shortcode displays a tab group with vertically aligned pills.
|
||||||
@@ -355,6 +366,26 @@ Loading...
|
|||||||
{{< /example>}}
|
{{< /example>}}
|
||||||
<!-- markdownlint-enable MD037 -->
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Sub
|
||||||
|
|
||||||
|
As an example, the following shortcode displays subscript text.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example >}}
|
||||||
|
H{{</* sub 2 */>}}O is a liquid.
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Sup
|
||||||
|
|
||||||
|
As an example, the following shortcode displays superscript text.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example >}}
|
||||||
|
2{{</* sup 10 */>}} is 1024.
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
## Timeline
|
## Timeline
|
||||||
|
|
||||||
As an example, the following shortcode displays a timeline with the file `data/timeline.en.yml` as data.
|
As an example, the following shortcode displays a timeline with the file `data/timeline.en.yml` as data.
|
||||||
|
@@ -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,9 +1,10 @@
|
|||||||
---
|
---
|
||||||
author: Mark Dumay
|
author: Mark Dumay
|
||||||
title: Fourth post
|
title: Fourth post (excluded from search)
|
||||||
date: 2023-01-01
|
date: 2023-01-01
|
||||||
description: This is my fourth blog post.
|
description: This is my fourth blog post. It is excluded from the search index.
|
||||||
tags: ["blog"]
|
tags: ["blog"]
|
||||||
|
searchExclude: true
|
||||||
thumbnail:
|
thumbnail:
|
||||||
url: img/flowers.jpg
|
url: img/flowers.jpg
|
||||||
author: Arvee Marie
|
author: Arvee Marie
|
||||||
|
@@ -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.
|
|
||||||
|
432
exampleSite/content/fr/blog/bootstrap-elements.md
Normal file
432
exampleSite/content/fr/blog/bootstrap-elements.md
Normal file
@@ -0,0 +1,432 @@
|
|||||||
|
---
|
||||||
|
author: Mark Dumay
|
||||||
|
title: Éléments Bootstrap
|
||||||
|
slug: elements-bootstrap
|
||||||
|
date: 2023-08-12
|
||||||
|
description: Utilisez des shortcodes pour ajouter facilement des éléments Bootstrap courants.
|
||||||
|
tags: ["bootstrap", "shortcode"]
|
||||||
|
thumbnail:
|
||||||
|
url: img/boots.jpg
|
||||||
|
author: Nathan Dumlao
|
||||||
|
authorURL: https://unsplash.com/@nate_dumlao
|
||||||
|
origin: Unsplash
|
||||||
|
originURL: https://unsplash.com/photos/QLPWQvHvmII
|
||||||
|
---
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche un accordéon avec trois éléments, dont le premier élément est déplié.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* accordion */>}}
|
||||||
|
{{</* accordion-item header="Élément d'accordéon #1" show="true" */>}}
|
||||||
|
Il s'agit du contenu du corps du premier élément de l'accordéon. Il prend en charge le contenu HTML, s'il est activé dans le moteur de rendu goldmark. L'élément est affiché en ajoutant la valeur `show` à l'argument `class`.
|
||||||
|
{{</* /accordion-item */>}}
|
||||||
|
{{</* accordion-item header="Élément d'accordéon #2" */>}}
|
||||||
|
Il s'agit du contenu du corps du deuxième élément de l'accordéon.
|
||||||
|
{{</* /accordion-item */>}}
|
||||||
|
{{</* accordion-item header="Élément d'accordéon #3" */>}}
|
||||||
|
Il s'agit du contenu du corps du troisième élément de l'accordéon.
|
||||||
|
{{</* /accordion-item */>}}
|
||||||
|
{{</* /accordion */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Alerte
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche une alerte simple.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* alert color="danger" dismissible="true" */>}}
|
||||||
|
Une simple alerte de danger — vérifiez-la !
|
||||||
|
{{</* /alert */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Badge
|
||||||
|
|
||||||
|
Utilisez le shortcode "badge" pour afficher un badge avec un en-tête.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example >}}
|
||||||
|
En-tête 1 {{</* badge title="Nouveau" */>}}
|
||||||
|
{.h1}
|
||||||
|
|
||||||
|
En-tête 2 {{</* badge title="Nouveau" */>}}
|
||||||
|
{.h2}
|
||||||
|
|
||||||
|
En-tête 3 {{</* badge title="Nouveau" */>}}
|
||||||
|
{.h3}
|
||||||
|
|
||||||
|
En-tête 4 {{</* badge title="Nouveau" */>}}
|
||||||
|
{.h4}
|
||||||
|
|
||||||
|
En-tête 5 {{</* badge title="Nouveau" */>}}
|
||||||
|
{.h5}
|
||||||
|
|
||||||
|
En-tête 6 {{</* badge title="Nouveau" */>}}
|
||||||
|
{.h6}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Fil d'Ariane
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche un fil d'Ariane pour la page du blog.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* breadcrumb path="blog" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Bouton
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche une infobulle pour un bouton sombre avec un badge.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* button color="secondary" tooltip="Cliquez sur la boîte de réception pour voir vos messages non lus." href="#!" badge="99+" */>}}
|
||||||
|
Boîte de réception
|
||||||
|
{{</* /button */>}}
|
||||||
|
{{< /example>}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Groupe de boutons
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche un groupe de trois boutons.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* button-group aria-label="Basic example" */>}}
|
||||||
|
{{</* button color="primary" href="#!" */>}}Gauche{{</* /button */>}}
|
||||||
|
{{</* button color="primary" href="#!" */>}}Millieu{{</* /button */>}}
|
||||||
|
{{</* button color="primary" href="#!" */>}}Droite{{</* /button */>}}
|
||||||
|
{{</* /button-group */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Carte
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche une carte empilée qui renvoie à la page [à propos]({{< ref "about" >}}). Elle inclut un en-tête personnalisé.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* card path="about" padding="3" class="col-6 mx-auto" color="body-tertiary" header="publication" footer="none" /*/>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Groupe de cartes
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche un groupe de cartes avec trois éléments.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* card-group padding="3" gutter="3" */>}}
|
||||||
|
{{</* card title="Framework Bootstrap" icon="fab bootstrap" */>}}
|
||||||
|
Créez des sites rapides et réactifs avec Bootstrap 5. Personnalisez facilement votre site
|
||||||
|
avec les fichiers source Sass.
|
||||||
|
{{</* /card */>}}
|
||||||
|
{{</* card title="Recherche en texte intégral" icon="fas magnifying-glass" */>}}
|
||||||
|
Recherchez votre site avec FlexSearch, une bibliothèque de recherche en texte intégral
|
||||||
|
avec zéro dépendances.
|
||||||
|
{{</* /card */>}}
|
||||||
|
{{</* card title="Outils de développement" icon="fas code" */>}}
|
||||||
|
Utilisez Node Package Manager pour automatiser le processus de construction et suivre
|
||||||
|
les dépendances.
|
||||||
|
{{</* /card */>}}
|
||||||
|
{{</* /card-group */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Carrousel
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche un carrousel centré avec trois slides, un rapport hauteur/largeur de 16:9 et une largeur relative de 67 % sur les grands écrans.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* carousel ratio="16x9" class="col-sm-12 col-lg-8 mx-auto" */>}}
|
||||||
|
{{</* img src="img/coffee.jpg" caption="slide 1" */>}}
|
||||||
|
{{</* img src="img/phone.jpg" caption="slide 2" */>}}
|
||||||
|
{{</* img src="img/dunes.jpg" caption="slide 3" */>}}
|
||||||
|
{{</* /carousel */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Réduire
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche un bouton qui, lorsqu'il est cliqué, déclenche l'apparition ou la disparition d'un panneau.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* button collapse="collapse-1" */>}}
|
||||||
|
Déclencher le panneau
|
||||||
|
{{</* /button */>}}
|
||||||
|
|
||||||
|
{{</* collapse id="collapse-1" class="p-3 border rounded bg-primary-subtle" */>}}
|
||||||
|
Un contenu de remplacement destiné au composant de repliement. Ce panneau est initialement masqué, mais il
|
||||||
|
sera révélé lorsque l'utilisateur active le déclencheur correspondant.
|
||||||
|
{{</* /collapse */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Invite de commandes
|
||||||
|
|
||||||
|
Utilisez le shortcode `command` pour générer un bloc avec un invite de commandes bash par défaut.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* command */>}}
|
||||||
|
export MY_VAR=123
|
||||||
|
{{</* /command */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
Spécifiez `user` et `host` pour ajouter le contexte de l'utilisateur à l'invite. De plus, utilisez `(out)` pour spécifier une ligne de sortie et utilisez `\` pour indiquer une continuation de ligne.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* command user="user" host="localhost" */>}}
|
||||||
|
export MY_VAR=123
|
||||||
|
echo "hello"
|
||||||
|
(out)hello
|
||||||
|
echo one \
|
||||||
|
two \
|
||||||
|
three
|
||||||
|
(out)one two three
|
||||||
|
echo "goodbye"
|
||||||
|
(out)goodbye
|
||||||
|
{{</* /command */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
Utilisez le shortcode `docs` pour afficher le contenu d'un fichier `js`, `scss` ou `toml` :
|
||||||
|
|
||||||
|
{{< docs name="theme-colors" file="config/_default/params.toml" >}}
|
||||||
|
|
||||||
|
## Exemple
|
||||||
|
|
||||||
|
Utilisez le shortcode `example` pour afficher un exemple de code et pour afficher un aperçu de la même entrée.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* command */>}}
|
||||||
|
export MY_VAR=123
|
||||||
|
{{</* /command */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Fichier
|
||||||
|
|
||||||
|
Utilisez le shortcode `file` pour afficher et mettre en évidence le contenu complet d'un fichier d'entrée donné.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* file path="./config/_default/languages.toml" id="file-collapse-1" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Icon
|
||||||
|
|
||||||
|
À titre d'exemple, les shortcodes suivants affichent une coche carrée, un logo de marque et une coche circulaire.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* fa square-check */>}}
|
||||||
|
{{</* fab linkedin */>}}
|
||||||
|
{{</* fas circle-check */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Image
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche une image avec des coins arrondis et un ratio d'aspect de 21:9.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* image src="img/flowers.jpg" ratio="21x9" caption="Légende de l'image" class="rounded" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche une image vectorielle classique.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* image src="/img/logo_icon.svg" class="col-sm-6 col-lg-4" wrapper="text-center" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche une image vectorielle avec une référence de symbole.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* image src="/img/logo_var.svg#logo" class="col-sm-6 col-lg-4" wrapper="text-center" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Lien
|
||||||
|
|
||||||
|
À titre d'exemple, les shortcodes suivants rendent des liens dans différents formats.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
|
||||||
|
- {{</* link hinode >}}Lien nommé avec les paramètres par défaut{{< /link */>}}
|
||||||
|
- {{</* link name=hinode cue=false tab=false >}}Lien nommé s'ouvrant dans l'onglet actuel sans icône{{< /link */>}}
|
||||||
|
- {{</* link name=hinode cue=true tab=true >}}Lien nommé s'ouvrant dans un nouvel onglet avec icône{{< /link */>}}
|
||||||
|
- {{</* link hinode /*/>}}
|
||||||
|
- {{</* link href="https://developer.mozilla.org" >}}Lien externe{{< /link */>}}
|
||||||
|
- {{</* link "./projects/another-project" >}}Lien interne avec titre{{< /link */>}}
|
||||||
|
- {{</* link url="projects/another-project" /*/>}}
|
||||||
|
- {{</* link url="/projects/another-project" /*/>}}
|
||||||
|
- {{</* link url="../projects/another-project" case=false /*/>}}
|
||||||
|
- {{</* link "about" /*/>}}
|
||||||
|
- {{</* link "/en/about/" /*/>}}
|
||||||
|
- {{</* link "/en/about" >}}About (Anglais){{< /link */>}}
|
||||||
|
- {{</* link "#image" /*/>}}
|
||||||
|
- {{</* link "components/#map" /*/>}}
|
||||||
|
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- 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
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche un groupe d'onglets avec des onglets alignés verticalement.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* nav type="pills" vertical="true" */>}}
|
||||||
|
{{</* nav-item header="Élément de navigation #1" show="true" */>}}
|
||||||
|
Voici le contenu de navigation du premier élément. Il prend en charge le contenu HTML, s'il est
|
||||||
|
activé dans le moteur de rendu Goldmark. L'élément est affiché en ajoutant la valeur `show` à l'argument `class`.
|
||||||
|
{{</* /nav-item */>}}
|
||||||
|
{{</* nav-item header="Élément de navigation #2" */>}}
|
||||||
|
Voici le contenu de navigation du deuxième élément.
|
||||||
|
{{</* /nav-item */>}}
|
||||||
|
{{</* nav-item header="Élément de navigation #3" */>}}
|
||||||
|
Voici le contenu de navigation du troisième élément.
|
||||||
|
{{</* /nav-item */>}}
|
||||||
|
{{</* /nav */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Barre de navigation
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche un en-tête de navigation clair.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* navbar id="navbar-sample" path="blog" color="primary" size="md" search="false" menus="sample" title="Marque" mode="false" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Publication
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche un bouton de publication par défaut.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* release version="v0.14.1" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Indicateur de chargement
|
||||||
|
|
||||||
|
À titre d'exemple, le raccourci suivant affiche un indicateur de chargement centré.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* spinner color="info" class="text-center" */>}}
|
||||||
|
Chargement...
|
||||||
|
{{</* /spinner */>}}
|
||||||
|
{{< /example>}}
|
||||||
|
<!-- 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
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche une chronologie avec le fichier `data/timeline-fr.yml` en tant que données.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* timeline data="timeline-fr" background="dark" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Notification
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche un bouton qui, lorsqu'il est cliqué, déclenche le message de notification.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* button toast="toast-example-1" */>}}
|
||||||
|
Affiche la notification #1
|
||||||
|
{{</* /button */>}}
|
||||||
|
|
||||||
|
{{</* button toast="toast-example-2" */>}}
|
||||||
|
Affiche la notification #1
|
||||||
|
{{</* /button */>}}
|
||||||
|
|
||||||
|
{{</* toast id="toast-example-1" header="Premier titre" */>}}
|
||||||
|
Ceci est le premier message de notification. Il prend en charge le `markdown`.
|
||||||
|
{{</* /toast */>}}
|
||||||
|
|
||||||
|
{{</* toast id="toast-example-2" header="Deuxième titre" */>}}
|
||||||
|
Ceci est le deuxième message de notification. Il prend en charge le `markdown`.
|
||||||
|
{{</* /toast */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Infobulle
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche une infobulle pour un lien hypertexte coloré.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* tooltip color="primary" title="Légende de l'infobulle" href="#!" */>}}Démonstration{{</* /tooltip */>}} d'une infobulle
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
50
exampleSite/content/fr/blog/components.md
Normal file
50
exampleSite/content/fr/blog/components.md
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
---
|
||||||
|
author: Mark Dumay
|
||||||
|
title: Composents
|
||||||
|
slug: composents
|
||||||
|
date: 2023-07-21
|
||||||
|
description: Utilisez des shortcodes pour ajouter des composants prédéfinis alimentés par des bibliothèques externes.
|
||||||
|
tags: ["bootstrap", "shortcode"]
|
||||||
|
thumbnail:
|
||||||
|
url: img/puzzle.jpg
|
||||||
|
author: Ryoji Iwata
|
||||||
|
authorURL: https://unsplash.com/@ryoji__iwata
|
||||||
|
origin: Unsplash
|
||||||
|
originURL: https://unsplash.com/photos/5siQcvSxCP8
|
||||||
|
modules: ["katex", "leaflet", "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.
|
||||||
|
|
||||||
|
## 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)
|
||||||
|
|
||||||
|
À titre d'exemple, le markdown suivant affiche deux formules en utilisant la bibliothèque de composition typographique KaTeX.
|
||||||
|
|
||||||
|
{{< example lang="markdown" >}}
|
||||||
|
Voici une formule en ligne $-b \pm \sqrt{b^2 - 4ac} \over 2a$.
|
||||||
|
|
||||||
|
Il s'agit d'une formule non en ligne:
|
||||||
|
|
||||||
|
$$x = a_0 + \frac{1}{a_1 + \frac{1}{a_2 + \frac{1}{a_3 + a_4}}}$$
|
||||||
|
$$\forall x \in X, \quad \exists y \leq \epsilon$$
|
||||||
|
{{< /example >}}
|
||||||
|
|
||||||
|
## Map
|
||||||
|
|
||||||
|
À titre d'exemple, le shortcode suivant affiche une carte interactive de la ville d'Amsterdam.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* map lat=52.377 long=4.90 zoom=13 popup="Gare centrale d'Amsterdam" popup-lat=52.378062 popup-long=4.900562 */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
@@ -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.
|
|
||||||
|
@@ -6,3 +6,6 @@
|
|||||||
|
|
||||||
- id: svg
|
- id: svg
|
||||||
long: "Scalable Vector Graphics"
|
long: "Scalable Vector Graphics"
|
||||||
|
|
||||||
|
- id: ci/cd
|
||||||
|
long: "Continuous Integration/Continuous Deployment"
|
35
exampleSite/data/timeline-fr.yml
Normal file
35
exampleSite/data/timeline-fr.yml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# This file holds all menu entries for the docs sidebar
|
||||||
|
|
||||||
|
- title: Lancement de produit
|
||||||
|
icon: fas rocket
|
||||||
|
color: primary
|
||||||
|
date: 2023-07-01
|
||||||
|
url: https://github.com/gethinode/hinode/releases/tag/v0.15.2
|
||||||
|
content:
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
||||||
|
|
||||||
|
- title: Prise en charge I18N
|
||||||
|
icon: fas globe
|
||||||
|
color: success
|
||||||
|
date: 2023-05-06
|
||||||
|
url: v0.14.0
|
||||||
|
content:
|
||||||
|
Lorem ipsum dolor sit amet.
|
||||||
|
|
||||||
|
- title: Nouvelle fonctionnalité
|
||||||
|
icon: fas house
|
||||||
|
color: warning
|
||||||
|
date: 2023-02-04
|
||||||
|
url: v0.8.1
|
||||||
|
content:
|
||||||
|
Cupiditate ducimus officiis quod!
|
||||||
|
|
||||||
|
- title: Version bêta
|
||||||
|
icon: fas heart
|
||||||
|
color: info
|
||||||
|
date: 2022-11-30
|
||||||
|
# url: v0.1
|
||||||
|
content:
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
|
@@ -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,69 @@
|
|||||||
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-flexsearch v1.7.0 h1:VFTf6iUyT9b47jTDAxh8nVHU1eUBrdxlykaC90lTfqk=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.7.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.7.1 h1:f4rjKkhleDVzqwUmwP1xZdhjru5VQ9g0MRDz0G6oLyY=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.7.1/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-fontawesome v1.5.1 h1:C7goQY4HrEua/lpjC++laydNKBuYo1+307ngn5tyXeM=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.5.1/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.6.1 h1:iqOgDGdw7Bs4hnzjF/8JsUn10omyKQZTglLqNenT1K0=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.6.1/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.7.3 h1:YzRCYSasVRIcImVmTJYjqNJ+KmyNWfm/bMgtM0slvzs=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.7.3/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-katex v1.0.5 h1:AVhcTINYory0ygChQERf8PcyJkbT1oqhmLRF6ESnWOY=
|
||||||
|
github.com/gethinode/mod-katex v1.0.5/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=
|
||||||
|
@@ -22,6 +22,7 @@
|
|||||||
"input",
|
"input",
|
||||||
"li",
|
"li",
|
||||||
"link",
|
"link",
|
||||||
|
"mark",
|
||||||
"meta",
|
"meta",
|
||||||
"nav",
|
"nav",
|
||||||
"nil",
|
"nil",
|
||||||
@@ -34,9 +35,17 @@
|
|||||||
"small",
|
"small",
|
||||||
"span",
|
"span",
|
||||||
"strong",
|
"strong",
|
||||||
|
"sub",
|
||||||
|
"sup",
|
||||||
"svg",
|
"svg",
|
||||||
|
"table",
|
||||||
|
"tbody",
|
||||||
|
"td",
|
||||||
|
"th",
|
||||||
|
"thead",
|
||||||
"time",
|
"time",
|
||||||
"title",
|
"title",
|
||||||
|
"tr",
|
||||||
"ul",
|
"ul",
|
||||||
"use"
|
"use"
|
||||||
],
|
],
|
||||||
@@ -51,21 +60,21 @@
|
|||||||
"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-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",
|
||||||
@@ -91,7 +100,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",
|
||||||
@@ -114,13 +125,16 @@
|
|||||||
"col-6",
|
"col-6",
|
||||||
"col-8",
|
"col-8",
|
||||||
"col-9",
|
"col-9",
|
||||||
|
"col-auto",
|
||||||
"col-lg-2",
|
"col-lg-2",
|
||||||
"col-lg-4",
|
"col-lg-4",
|
||||||
"col-lg-8",
|
"col-lg-8",
|
||||||
"col-md-10",
|
"col-md-10",
|
||||||
"col-md-2",
|
"col-md-2",
|
||||||
|
"col-md-3",
|
||||||
"col-md-4",
|
"col-md-4",
|
||||||
"col-md-8",
|
"col-md-8",
|
||||||
|
"col-md-9",
|
||||||
"col-md-auto",
|
"col-md-auto",
|
||||||
"col-sm-12",
|
"col-sm-12",
|
||||||
"col-sm-3",
|
"col-sm-3",
|
||||||
@@ -130,6 +144,7 @@
|
|||||||
"container",
|
"container",
|
||||||
"container-fluid",
|
"container-fluid",
|
||||||
"container-xxl",
|
"container-xxl",
|
||||||
|
"custom",
|
||||||
"d-block",
|
"d-block",
|
||||||
"d-flex",
|
"d-flex",
|
||||||
"d-grid",
|
"d-grid",
|
||||||
@@ -160,6 +175,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",
|
||||||
@@ -193,25 +209,23 @@
|
|||||||
"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",
|
||||||
"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",
|
||||||
@@ -240,11 +254,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",
|
||||||
@@ -262,10 +277,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",
|
||||||
@@ -276,18 +293,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",
|
||||||
@@ -295,7 +311,10 @@
|
|||||||
"p-4",
|
"p-4",
|
||||||
"pb-2",
|
"pb-2",
|
||||||
"pb-3",
|
"pb-3",
|
||||||
|
"pb-4",
|
||||||
"pb-5",
|
"pb-5",
|
||||||
|
"pb-md-0",
|
||||||
|
"pe-1",
|
||||||
"pe-3",
|
"pe-3",
|
||||||
"position-absolute",
|
"position-absolute",
|
||||||
"position-fixed",
|
"position-fixed",
|
||||||
@@ -305,8 +324,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",
|
||||||
@@ -324,15 +343,17 @@
|
|||||||
"row",
|
"row",
|
||||||
"row-cols-1",
|
"row-cols-1",
|
||||||
"row-cols-2",
|
"row-cols-2",
|
||||||
|
"row-cols-lg-3",
|
||||||
|
"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",
|
||||||
"shadow",
|
"shadow",
|
||||||
"show",
|
"show",
|
||||||
|
"sidebar-overflow",
|
||||||
"slide",
|
"slide",
|
||||||
"small",
|
"small",
|
||||||
"spinner-border",
|
"spinner-border",
|
||||||
@@ -344,6 +365,8 @@
|
|||||||
"syntax-highlight",
|
"syntax-highlight",
|
||||||
"tab-content",
|
"tab-content",
|
||||||
"tab-pane",
|
"tab-pane",
|
||||||
|
"table",
|
||||||
|
"table-responsive",
|
||||||
"tag-link",
|
"tag-link",
|
||||||
"text-bg-body",
|
"text-bg-body",
|
||||||
"text-bg-body-tertiary",
|
"text-bg-body-tertiary",
|
||||||
@@ -359,10 +382,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",
|
||||||
@@ -413,10 +438,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",
|
||||||
@@ -425,20 +456,36 @@
|
|||||||
"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",
|
||||||
"nav",
|
"nav",
|
||||||
"nav-0",
|
"nav-0",
|
||||||
"nav-0-0",
|
"nav-0-0",
|
||||||
@@ -450,8 +497,17 @@
|
|||||||
"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",
|
||||||
|
"sup",
|
||||||
"timeline",
|
"timeline",
|
||||||
"toast",
|
"toast",
|
||||||
"toast-container",
|
"toast-container",
|
||||||
|
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
14
go.mod
14
go.mod
@@ -3,9 +3,13 @@ module github.com/gethinode/hinode
|
|||||||
go 1.19
|
go 1.19
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/gethinode/mod-bootstrap v1.1.1 // indirect
|
github.com/airbnb/lottie-web v5.12.2+incompatible // indirect
|
||||||
github.com/gethinode/mod-flexsearch v1.4.0 // indirect
|
github.com/gethinode/mod-bootstrap v1.2.2 // indirect
|
||||||
github.com/gethinode/mod-fontawesome v1.2.5 // indirect
|
github.com/gethinode/mod-flexsearch v1.7.1 // indirect
|
||||||
github.com/gethinode/mod-katex v1.0.2 // indirect
|
github.com/gethinode/mod-fontawesome v1.7.3 // indirect
|
||||||
github.com/gethinode/mod-leaflet v0.3.4 // indirect
|
github.com/gethinode/mod-katex v1.0.5 // indirect
|
||||||
|
github.com/gethinode/mod-leaflet v0.3.5 // indirect
|
||||||
|
github.com/gethinode/mod-lottie v1.3.0 // indirect
|
||||||
|
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3 // indirect
|
||||||
|
github.com/twbs/bootstrap v5.3.2+incompatible // indirect
|
||||||
)
|
)
|
||||||
|
58
go.sum
58
go.sum
@@ -1,9 +1,17 @@
|
|||||||
|
github.com/airbnb/lottie-web v5.12.2+incompatible h1:Ldogtlhiucf7mMsgisyxSBY0qunV44+lpa9Icy2KoQc=
|
||||||
|
github.com/airbnb/lottie-web v5.12.2+incompatible/go.mod h1:nTss557UK9FGnp8QYlCMO29tjUHwbdAHG/DprbGfHGE=
|
||||||
github.com/gethinode/mod-bootstrap v1.0.1 h1:NDZar+UEL42YHCvzzO+jVgqkZU5INA12BpjX3y6U4I4=
|
github.com/gethinode/mod-bootstrap v1.0.1 h1:NDZar+UEL42YHCvzzO+jVgqkZU5INA12BpjX3y6U4I4=
|
||||||
github.com/gethinode/mod-bootstrap v1.0.1/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
github.com/gethinode/mod-bootstrap v1.0.1/go.mod h1:DcpPc2cNaXUPGEvhD7npuEEPA7573NvakTlrwFbyjr8=
|
||||||
github.com/gethinode/mod-bootstrap v1.1.0 h1:BbalsW8kmFhv+J+dcc41TGcjIlM/p69AB0h0oGhAXIU=
|
github.com/gethinode/mod-bootstrap v1.1.0 h1:BbalsW8kmFhv+J+dcc41TGcjIlM/p69AB0h0oGhAXIU=
|
||||||
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 +30,16 @@ 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-flexsearch v1.7.0 h1:VFTf6iUyT9b47jTDAxh8nVHU1eUBrdxlykaC90lTfqk=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.7.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.7.1 h1:f4rjKkhleDVzqwUmwP1xZdhjru5VQ9g0MRDz0G6oLyY=
|
||||||
|
github.com/gethinode/mod-flexsearch v1.7.1/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 +56,34 @@ 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-fontawesome v1.5.1 h1:C7goQY4HrEua/lpjC++laydNKBuYo1+307ngn5tyXeM=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.5.1/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.6.1 h1:iqOgDGdw7Bs4hnzjF/8JsUn10omyKQZTglLqNenT1K0=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.6.1/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.7.3 h1:YzRCYSasVRIcImVmTJYjqNJ+KmyNWfm/bMgtM0slvzs=
|
||||||
|
github.com/gethinode/mod-fontawesome v1.7.3/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-katex v1.0.5 h1:AVhcTINYory0ygChQERf8PcyJkbT1oqhmLRF6ESnWOY=
|
||||||
|
github.com/gethinode/mod-katex v1.0.5/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 +92,21 @@ 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=
|
||||||
|
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3 h1:H/qVR5O4BXjRjD+5PZB+r4ug2BSJ2Of4RtwOntd+OKo=
|
||||||
|
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
|
||||||
|
github.com/twbs/bootstrap v5.3.2+incompatible h1:tuiO5acc6xnZUR77Sbi5aKWXxjYxbmsSbJwYrhAKoQQ=
|
||||||
|
github.com/twbs/bootstrap v5.3.2+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=
|
||||||
|
@@ -8,7 +8,6 @@
|
|||||||
"footer",
|
"footer",
|
||||||
"form",
|
"form",
|
||||||
"head",
|
"head",
|
||||||
"hr",
|
|
||||||
"html",
|
"html",
|
||||||
"img",
|
"img",
|
||||||
"input",
|
"input",
|
||||||
@@ -16,6 +15,7 @@
|
|||||||
"link",
|
"link",
|
||||||
"meta",
|
"meta",
|
||||||
"nav",
|
"nav",
|
||||||
|
"ol",
|
||||||
"p",
|
"p",
|
||||||
"path",
|
"path",
|
||||||
"script",
|
"script",
|
||||||
@@ -28,45 +28,40 @@
|
|||||||
],
|
],
|
||||||
"classes": [
|
"classes": [
|
||||||
"active",
|
"active",
|
||||||
"align-content-center",
|
|
||||||
"align-items-center",
|
"align-items-center",
|
||||||
"align-self-center",
|
"align-self-center",
|
||||||
|
"align-self-end",
|
||||||
"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",
|
||||||
"col",
|
"col",
|
||||||
"col-12",
|
"col-12",
|
||||||
"col-lg-2",
|
"col-6",
|
||||||
"col-lg-4",
|
|
||||||
"col-md-2",
|
"col-md-2",
|
||||||
|
"col-md-3",
|
||||||
"col-md-4",
|
"col-md-4",
|
||||||
"col-md-8",
|
"col-md-8",
|
||||||
"col-md-auto",
|
"col-md-9",
|
||||||
"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",
|
||||||
@@ -88,27 +83,27 @@
|
|||||||
"fa-sun",
|
"fa-sun",
|
||||||
"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",
|
||||||
"fw-30",
|
"fs-5",
|
||||||
"fw-bold",
|
"fw-bold",
|
||||||
"h-100",
|
"hstack",
|
||||||
"img-fluid",
|
"img-fluid",
|
||||||
"img-wrap",
|
"img-wrap",
|
||||||
"invisible",
|
"invisible",
|
||||||
"is-search",
|
"is-search",
|
||||||
"justify-content-center",
|
"justify-content-center",
|
||||||
|
"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-4",
|
|
||||||
"me-auto",
|
"me-auto",
|
||||||
"middle-bar",
|
"middle-bar",
|
||||||
"min-vh-100",
|
"min-vh-100",
|
||||||
@@ -117,43 +112,44 @@
|
|||||||
"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-5",
|
|
||||||
"py-md-1",
|
|
||||||
"rounded",
|
"rounded",
|
||||||
"row",
|
"row",
|
||||||
"row-cols-1",
|
"row-cols-1",
|
||||||
|
"row-cols-2",
|
||||||
|
"row-cols-md-2",
|
||||||
"row-cols-sm-3",
|
"row-cols-sm-3",
|
||||||
"row-cols-sm-4",
|
|
||||||
"search",
|
"search",
|
||||||
"search-input",
|
"search-input",
|
||||||
"search-suggestions",
|
"search-suggestions",
|
||||||
@@ -162,8 +158,10 @@
|
|||||||
"switch-mode-collapsed",
|
"switch-mode-collapsed",
|
||||||
"text-center",
|
"text-center",
|
||||||
"text-decoration-none",
|
"text-decoration-none",
|
||||||
|
"text-muted",
|
||||||
"text-secondary",
|
"text-secondary",
|
||||||
"text-sm-start",
|
"text-sm-start",
|
||||||
|
"text-start",
|
||||||
"theme-icon",
|
"theme-icon",
|
||||||
"theme-icon-active",
|
"theme-icon-active",
|
||||||
"toast",
|
"toast",
|
||||||
@@ -171,9 +169,7 @@
|
|||||||
"toast-container",
|
"toast-container",
|
||||||
"toast-header",
|
"toast-header",
|
||||||
"toggler-icon",
|
"toggler-icon",
|
||||||
"top-bar",
|
"top-bar"
|
||||||
"vr",
|
|
||||||
"w-100"
|
|
||||||
],
|
],
|
||||||
"ids": [
|
"ids": [
|
||||||
"-theme",
|
"-theme",
|
||||||
|
@@ -30,9 +30,9 @@
|
|||||||
- id: shareSystem
|
- id: shareSystem
|
||||||
translation: "Betriebssystem"
|
translation: "Betriebssystem"
|
||||||
- id: copyToClipboard
|
- id: copyToClipboard
|
||||||
translation: "In Zwischenablage kopieren"
|
translation: "In die Zwischenablage kopieren"
|
||||||
- id: copiedToClipboard
|
- id: copiedToClipboard
|
||||||
translation: "Der Text befindet sich in die Zwischenablage"
|
translation: "befindet sich in der Zwischenablage"
|
||||||
- id: link
|
- id: link
|
||||||
translation: "Link zur Webseite"
|
translation: "Link zur Webseite"
|
||||||
- id: code
|
- id: code
|
||||||
@@ -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
|
||||||
|
34
i18n/en.yaml
34
i18n/en.yaml
@@ -25,6 +25,20 @@
|
|||||||
translation: "Articles"
|
translation: "Articles"
|
||||||
- id: more
|
- id: more
|
||||||
translation: "More {{ . }}"
|
translation: "More {{ . }}"
|
||||||
|
- id: emptyList
|
||||||
|
translation: "No articles found"
|
||||||
|
- id: emptyTags
|
||||||
|
translation: "No tags found"
|
||||||
|
|
||||||
|
# Languages
|
||||||
|
- id: lang_de
|
||||||
|
translation: "German"
|
||||||
|
- id: lang_en
|
||||||
|
translation: "English"
|
||||||
|
- id: lang_nl
|
||||||
|
translation: "Dutch"
|
||||||
|
- id: lang_fr
|
||||||
|
translation: "French"
|
||||||
|
|
||||||
# Sharing
|
# Sharing
|
||||||
- id: shareLink
|
- id: shareLink
|
||||||
@@ -39,6 +53,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,12 +83,16 @@
|
|||||||
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
|
||||||
translation: "On this page"
|
translation: "On this page"
|
||||||
- id: seeAlso
|
- id: seeAlso
|
||||||
translation: "See also"
|
translation: "See also"
|
||||||
|
- id: sectionMenu
|
||||||
|
translation: "Select a topic"
|
||||||
|
|
||||||
# Sidebar
|
# Sidebar
|
||||||
- id: toggleSidebar
|
- id: toggleSidebar
|
||||||
@@ -113,3 +133,17 @@
|
|||||||
translation: "Show"
|
translation: "Show"
|
||||||
- id: comments
|
- id: comments
|
||||||
translation: "Comments"
|
translation: "Comments"
|
||||||
|
|
||||||
|
# Arguments
|
||||||
|
- id: name
|
||||||
|
translation: "Name"
|
||||||
|
- id: type
|
||||||
|
translation: "Type"
|
||||||
|
- id: required
|
||||||
|
translation: "Required"
|
||||||
|
- id: default
|
||||||
|
translation: "Default"
|
||||||
|
- id: comment
|
||||||
|
translation: "Comment"
|
||||||
|
- id: supportedValues
|
||||||
|
translation: "Supported values"
|
||||||
|
@@ -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
|
||||||
|
35
i18n/nl.yaml
35
i18n/nl.yaml
@@ -23,6 +23,20 @@
|
|||||||
translation: "Artikelen"
|
translation: "Artikelen"
|
||||||
- id: more
|
- id: more
|
||||||
translation: "Meer {{ . }}"
|
translation: "Meer {{ . }}"
|
||||||
|
- id: emptyList
|
||||||
|
translation: "Geen artikelen gevonden"
|
||||||
|
- id: emptyTags
|
||||||
|
translation: "Geen tags gevonden"
|
||||||
|
|
||||||
|
# Languages
|
||||||
|
- id: lang_de
|
||||||
|
translation: "Duits"
|
||||||
|
- id: lang_en
|
||||||
|
translation: "Engels"
|
||||||
|
- id: lang_nl
|
||||||
|
translation: "Nederlands"
|
||||||
|
- id: lang_fr
|
||||||
|
translation: "Frans"
|
||||||
|
|
||||||
# Sharing
|
# Sharing
|
||||||
- id: shareLink
|
- id: shareLink
|
||||||
@@ -37,6 +51,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,12 +81,16 @@
|
|||||||
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
|
||||||
translation: "Inhoudsopgave"
|
translation: "Inhoudsopgave"
|
||||||
- id: seeAlso
|
- id: seeAlso
|
||||||
translation: "Zie ook"
|
translation: "Zie ook"
|
||||||
|
- id: sectionMenu
|
||||||
|
translation: "Selecteer een onderwerp"
|
||||||
|
|
||||||
# Sidebar
|
# Sidebar
|
||||||
- id: toggleSidebar
|
- id: toggleSidebar
|
||||||
@@ -111,3 +131,18 @@
|
|||||||
translation: "Tonen"
|
translation: "Tonen"
|
||||||
- id: comments
|
- id: comments
|
||||||
translation: "Reacties"
|
translation: "Reacties"
|
||||||
|
|
||||||
|
|
||||||
|
# Arguments
|
||||||
|
- id: name
|
||||||
|
translation: "Naam"
|
||||||
|
- id: type
|
||||||
|
translation: "Type"
|
||||||
|
- id: required
|
||||||
|
translation: "Verplicht"
|
||||||
|
- id: default
|
||||||
|
translation: "Standaardwaarde"
|
||||||
|
- id: comment
|
||||||
|
translation: "Toelichting"
|
||||||
|
- id: supportedValues
|
||||||
|
translation: "Toegestane waarden"
|
||||||
|
135
i18n/zh-hans.yaml
Normal file
135
i18n/zh-hans.yaml
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
# Single pages
|
||||||
|
- id: postedOnDate
|
||||||
|
translation: "发布于 {{ . }}"
|
||||||
|
- id: lastModified
|
||||||
|
translation: "最后修改于 {{ . }}"
|
||||||
|
- id: read
|
||||||
|
translation: "阅读"
|
||||||
|
- id: minutesShort
|
||||||
|
translation: "分钟"
|
||||||
|
- id: words
|
||||||
|
translation: "字"
|
||||||
|
- id: photoFull
|
||||||
|
translation: "照片由 %s 于 %s 拍摄"
|
||||||
|
- id: photoShort
|
||||||
|
translation: "照片由 {{ . }} 拍摄"
|
||||||
|
- id: photoOn
|
||||||
|
translation: "于"
|
||||||
|
- id: draft
|
||||||
|
translation: "草稿"
|
||||||
|
|
||||||
|
# List pages
|
||||||
|
- id: article
|
||||||
|
translation: "文章"
|
||||||
|
- id: articles
|
||||||
|
translation: "文章"
|
||||||
|
- id: more
|
||||||
|
translation: "更多 {{ . }}"
|
||||||
|
- id: emptyList
|
||||||
|
translation: "没有找到文章"
|
||||||
|
- id: emptyTags
|
||||||
|
translation: "没有找到标签"
|
||||||
|
|
||||||
|
# Languages
|
||||||
|
- id: lang_de
|
||||||
|
translation: "German"
|
||||||
|
- id: lang_en
|
||||||
|
translation: "English"
|
||||||
|
- id: lang_nl
|
||||||
|
translation: "Dutch"
|
||||||
|
- id: lang_fr
|
||||||
|
translation: "French"
|
||||||
|
|
||||||
|
# Sharing
|
||||||
|
- id: shareLink
|
||||||
|
translation: "分享至 {{ . }}"
|
||||||
|
- id: shareSystem
|
||||||
|
translation: "系统"
|
||||||
|
- id: copyToClipboard
|
||||||
|
translation: "复制到剪贴板"
|
||||||
|
- id: copiedToClipboard
|
||||||
|
translation: "已复制到剪贴板"
|
||||||
|
- id: link
|
||||||
|
translation: "链接"
|
||||||
|
- id: code
|
||||||
|
translation: "代码"
|
||||||
|
- id: download
|
||||||
|
translation: "下载文章"
|
||||||
|
|
||||||
|
# Pagination
|
||||||
|
- id: paginationNav
|
||||||
|
translation: "页面导航"
|
||||||
|
- id: paginationPrevious
|
||||||
|
translation: "上一页"
|
||||||
|
- id: paginationNext
|
||||||
|
translation: "下一页"
|
||||||
|
- id: paginationFirst
|
||||||
|
translation: "第一页"
|
||||||
|
- id: paginationLast
|
||||||
|
translation: "最后一页"
|
||||||
|
|
||||||
|
# Navigation
|
||||||
|
- id: colorMode
|
||||||
|
translation: "切换主题"
|
||||||
|
- id: colorLight
|
||||||
|
translation: "亮色"
|
||||||
|
- id: colorDark
|
||||||
|
translation: "暗色"
|
||||||
|
- id: colorAuto
|
||||||
|
translation: "自动"
|
||||||
|
- id: toggleMainNav
|
||||||
|
translation: "切换主导航"
|
||||||
|
- id: home
|
||||||
|
translation: "首页"
|
||||||
|
- id: languageSwitcherLabel
|
||||||
|
translation: "语言"
|
||||||
|
- id: close
|
||||||
|
translation: "关闭"
|
||||||
|
|
||||||
|
# Table of contents
|
||||||
|
- id: toc
|
||||||
|
translation: "本页目录"
|
||||||
|
- id: seeAlso
|
||||||
|
translation: "参见"
|
||||||
|
- id: sectionMenu
|
||||||
|
translation: "选择一个主题"
|
||||||
|
|
||||||
|
# Sidebar
|
||||||
|
- id: toggleSidebar
|
||||||
|
translation: "切换侧边栏导航"
|
||||||
|
|
||||||
|
# Feature
|
||||||
|
- id: addedFeature
|
||||||
|
translation: "新增于 {{ . }}"
|
||||||
|
- id: deprecatedFeature
|
||||||
|
translation: "已弃用于 {{ . }}"
|
||||||
|
|
||||||
|
# Versioning
|
||||||
|
- id: latest
|
||||||
|
translation: "最新"
|
||||||
|
- id: allVersions
|
||||||
|
translation: "所有版本"
|
||||||
|
- id: newerVersionAlert
|
||||||
|
translation: "有一个更新版本的 {{ . }}!"
|
||||||
|
|
||||||
|
# 404 page
|
||||||
|
- id: pageNotFound
|
||||||
|
translation: "您访问的页面不存在或发生了其他错误。请返回我们的{{ . }}。"
|
||||||
|
- id: pageNotFoundTitle
|
||||||
|
translation: "页面未找到"
|
||||||
|
- id: pageNotFoundHome
|
||||||
|
translation: "首页"
|
||||||
|
|
||||||
|
# Footer
|
||||||
|
- id: copyright
|
||||||
|
translation: "Copyright"
|
||||||
|
- id: rights
|
||||||
|
translation: "版权所有"
|
||||||
|
- id: poweredBy
|
||||||
|
translation: "由 {{ . }} 提供支持。"
|
||||||
|
|
||||||
|
# Comments
|
||||||
|
- id: show
|
||||||
|
translation: "显示"
|
||||||
|
- id: comments
|
||||||
|
translation: "评论"
|
135
i18n/zh-hant.yaml
Normal file
135
i18n/zh-hant.yaml
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
# Single pages
|
||||||
|
- id: postedOnDate
|
||||||
|
translation: "發佈於 {{ . }}"
|
||||||
|
- id: lastModified
|
||||||
|
translation: "最後修改於 {{ . }}"
|
||||||
|
- id: read
|
||||||
|
translation: "閱讀"
|
||||||
|
- id: minutesShort
|
||||||
|
translation: "分鐘"
|
||||||
|
- id: words
|
||||||
|
translation: "字"
|
||||||
|
- id: photoFull
|
||||||
|
translation: "照片由 %s 於 %s 拍攝"
|
||||||
|
- id: photoShort
|
||||||
|
translation: "照片由 {{ . }} 拍攝"
|
||||||
|
- id: photoOn
|
||||||
|
translation: "於"
|
||||||
|
- id: draft
|
||||||
|
translation: "草稿"
|
||||||
|
|
||||||
|
# List pages
|
||||||
|
- id: article
|
||||||
|
translation: "文章"
|
||||||
|
- id: articles
|
||||||
|
translation: "文章"
|
||||||
|
- id: more
|
||||||
|
translation: "更多 {{ . }}"
|
||||||
|
- id: emptyList
|
||||||
|
translation: "沒有找到文章"
|
||||||
|
- id: emptyTags
|
||||||
|
translation: "沒有找到標籤"
|
||||||
|
|
||||||
|
# Languages
|
||||||
|
- id: lang_de
|
||||||
|
translation: "German"
|
||||||
|
- id: lang_en
|
||||||
|
translation: "English"
|
||||||
|
- id: lang_nl
|
||||||
|
translation: "Dutch"
|
||||||
|
- id: lang_fr
|
||||||
|
translation: "French"
|
||||||
|
|
||||||
|
# Sharing
|
||||||
|
- id: shareLink
|
||||||
|
translation: "分享至 {{ . }}"
|
||||||
|
- id: shareSystem
|
||||||
|
translation: "系統"
|
||||||
|
- id: copyToClipboard
|
||||||
|
translation: "複製到剪貼板"
|
||||||
|
- id: copiedToClipboard
|
||||||
|
translation: "已複製到剪貼板"
|
||||||
|
- id: link
|
||||||
|
translation: "連結"
|
||||||
|
- id: code
|
||||||
|
translation: "程式碼"
|
||||||
|
- id: download
|
||||||
|
translation: "下載文章"
|
||||||
|
|
||||||
|
# Pagination
|
||||||
|
- id: paginationNav
|
||||||
|
translation: "頁面導航"
|
||||||
|
- id: paginationPrevious
|
||||||
|
translation: "上一頁"
|
||||||
|
- id: paginationNext
|
||||||
|
translation: "下一頁"
|
||||||
|
- id: paginationFirst
|
||||||
|
translation: "第一頁"
|
||||||
|
- id: paginationLast
|
||||||
|
translation: "最後一頁"
|
||||||
|
|
||||||
|
# Navigation
|
||||||
|
- id: colorMode
|
||||||
|
translation: "切換主題"
|
||||||
|
- id: colorLight
|
||||||
|
translation: "亮色"
|
||||||
|
- id: colorDark
|
||||||
|
translation: "暗色"
|
||||||
|
- id: colorAuto
|
||||||
|
translation: "自動"
|
||||||
|
- id: toggleMainNav
|
||||||
|
translation: "切換主導航"
|
||||||
|
- id: home
|
||||||
|
translation: "首頁"
|
||||||
|
- id: languageSwitcherLabel
|
||||||
|
translation: "語言"
|
||||||
|
- id: close
|
||||||
|
translation: "關閉"
|
||||||
|
|
||||||
|
# Table of contents
|
||||||
|
- id: toc
|
||||||
|
translation: "本頁目錄"
|
||||||
|
- id: seeAlso
|
||||||
|
translation: "參見"
|
||||||
|
- id: sectionMenu
|
||||||
|
translation: "選擇一個主題"
|
||||||
|
|
||||||
|
# Sidebar
|
||||||
|
- id: toggleSidebar
|
||||||
|
translation: "切換側邊欄導航"
|
||||||
|
|
||||||
|
# Feature
|
||||||
|
- id: addedFeature
|
||||||
|
translation: "新增於 {{ . }}"
|
||||||
|
- id: deprecatedFeature
|
||||||
|
translation: "已棄用於 {{ . }}"
|
||||||
|
|
||||||
|
# Versioning
|
||||||
|
- id: latest
|
||||||
|
translation: "最新"
|
||||||
|
- id: allVersions
|
||||||
|
translation: "所有版本"
|
||||||
|
- id: newerVersionAlert
|
||||||
|
translation: "有一個更新版本的 {{ . }}!"
|
||||||
|
|
||||||
|
# 404 page
|
||||||
|
- id: pageNotFound
|
||||||
|
translation: "您訪問的頁面不存在或發生了其他錯誤。請返回我們的{{ . }}。"
|
||||||
|
- id: pageNotFoundTitle
|
||||||
|
translation: "頁面未找到"
|
||||||
|
- id: pageNotFoundHome
|
||||||
|
translation: "首頁"
|
||||||
|
|
||||||
|
# Footer
|
||||||
|
- id: copyright
|
||||||
|
translation: "Copyright"
|
||||||
|
- id: rights
|
||||||
|
translation: "版權所有"
|
||||||
|
- id: poweredBy
|
||||||
|
translation: "由 {{ . }} 提供支持。"
|
||||||
|
|
||||||
|
# Comments
|
||||||
|
- id: show
|
||||||
|
translation: "顯示"
|
||||||
|
- id: comments
|
||||||
|
translation: "評論"
|
@@ -1,6 +1,7 @@
|
|||||||
{{ 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">
|
||||||
|
<div class="text-center">
|
||||||
<span class="text-secondary fw-bold">
|
<span class="text-secondary fw-bold">
|
||||||
{{ partial "assets/icon.html" (dict "icon" "fa face-frown fa-10x") }}
|
{{ partial "assets/icon.html" (dict "icon" "fa face-frown fa-10x") }}
|
||||||
<p class="display-1 mt-3 fw-bold">404</p>
|
<p class="display-1 mt-3 fw-bold">404</p>
|
||||||
@@ -10,4 +11,5 @@
|
|||||||
<p>{{ T "pageNotFound" $home | safeHTML }}</p>
|
<p>{{ T "pageNotFound" $home | safeHTML }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
@@ -1,88 +1,4 @@
|
|||||||
{{- $section := .Section }}
|
{{- define "partials/optional-scripts.html" -}}
|
||||||
{{- $version := partial "utilities/GetVersion.html" (dict "page" . "base" true) -}}
|
|
||||||
{{- $.Scratch.Set "version" $version -}}
|
|
||||||
{{ with partial "utilities/GetMenu" (dict "page" . "version" $version) }}{{ $.Scratch.Set "sidebar" . }}{{ end }}
|
|
||||||
|
|
||||||
{{- if and site.Params.docs.checkVersion $version -}}
|
|
||||||
{{- if ne $version "latest" -}}
|
|
||||||
{{- if partial "utilities/IsOlder" (dict "current" $version) -}}
|
|
||||||
{{- $.Scratch.Set "pageAlertMsg" (T "newerVersionAlert" site.Title) -}}
|
|
||||||
{{- $.Scratch.Set "pageAlertURL" (or site.Params.docs.latestURL site.baseURL) -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- if and .IsPage (not (in .Site.Params.modules.core "bootstrap")) -}}
|
|
||||||
{{- errorf "Bootstrap is a required module, please add it to 'modules.core' in your site parameters" -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
<!doctype html>
|
|
||||||
<html lang="{{ .Site.Language.Lang }}" class="no-js">
|
|
||||||
<head>
|
|
||||||
{{ block "head" . }}{{ end -}}
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
{{- partial "footer/scripts.html" (dict "filename" "js/critical.bundle.js" "match" "js/critical/**.js" "header" true "page" .) -}}
|
|
||||||
<div class="d-flex flex-column min-vh-100{{ if and .IsHome .Site.Params.home.style }} {{ .Site.Params.home.style }}{{ end }}">
|
|
||||||
<div class="{{ if .Site.Params.navigation.fixed }}mb-4{{ end }}">
|
|
||||||
{{- partial "assets/navbar.html" (dict
|
|
||||||
"page" .
|
|
||||||
"fixed" (string .Site.Params.navigation.fixed)
|
|
||||||
"color" (.Site.Params.navigation.color)
|
|
||||||
"style" (default "light" .Site.Params.navigation.style)
|
|
||||||
"size" (default "md" .Site.Params.navigation.size))
|
|
||||||
-}}
|
|
||||||
</div>
|
|
||||||
{{ if .IsHome -}}
|
|
||||||
{{ 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>
|
|
||||||
{{ if not .Site.Params.main.footerBelowFold }}
|
|
||||||
<div class="">
|
|
||||||
{{- partial "footer/social.html" . -}}
|
|
||||||
{{- partial "footer/footer.html" . -}}
|
|
||||||
</div>
|
|
||||||
{{ end }}
|
|
||||||
{{ end -}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{ if and .IsHome .Site.Params.home.fullCover -}}
|
|
||||||
<div class="">
|
|
||||||
{{ block "main" . }}{{ end -}}
|
|
||||||
</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 }}
|
|
||||||
|
|
||||||
{{- partial "footer/toast-container.html" . -}}
|
|
||||||
{{- partialCached "footer/scripts.html" (dict "header" false "page" . "core" true) }}
|
|
||||||
{{- $modules := site.Params.modules.optional | intersect .Params.modules -}}
|
{{- $modules := site.Params.modules.optional | intersect .Params.modules -}}
|
||||||
{{- range $index, $mod := $modules -}}
|
{{- range $index, $mod := $modules -}}
|
||||||
{{- $filename := printf "js/%s.bundle.js" $mod -}}
|
{{- $filename := printf "js/%s.bundle.js" $mod -}}
|
||||||
@@ -94,7 +10,86 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- partial "footer/scripts.html" (dict "filename" $filename "match" $match "header" false "skipTemplate" $skipTemplate "page" .) }}
|
{{ $state := "" }}
|
||||||
|
{{- with (index site.Params.modules $mod) -}}
|
||||||
|
{{- with index . "state" }}{{ $state = . }}{{ end -}}
|
||||||
{{- 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) -}}
|
||||||
|
{{- $.Scratch.Set "version" $version -}}
|
||||||
|
{{ 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 ne $version "latest" -}}
|
||||||
|
{{- if partial "utilities/IsOlder" (dict "current" $version) -}}
|
||||||
|
{{- $.Scratch.Set "pageAlertMsg" (T "newerVersionAlert" site.Title) -}}
|
||||||
|
{{- $.Scratch.Set "pageAlertURL" (or site.Params.docs.latestURL site.baseURL) -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- /* Validate module configuration */ -}}
|
||||||
|
{{- if and .IsPage (not (in .Site.Params.modules.core "bootstrap")) -}}
|
||||||
|
{{- errorf "Bootstrap is a required module, please add it to 'modules.core' in your site parameters" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $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 -}}
|
||||||
|
|
||||||
|
{{- /* Define main breakpoint */ -}}
|
||||||
|
{{- $.Scratch.Set "breakpoint" (partial "utilities/GetBreakpoint.html") }}
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="{{ .Site.Language.Lang }}" class="no-js">
|
||||||
|
<head>
|
||||||
|
{{ block "head" . }}{{ end -}}
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
{{- 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">
|
||||||
|
<div class="d-flex flex-column {{ if $fullCover }} fullscreen{{ end }}{{ if .IsHome }} {{ .Site.Params.home.style }}{{ end }}">
|
||||||
|
{{- partial "assets/navbar.html" (dict
|
||||||
|
"page" .
|
||||||
|
"fixed" (string site.Params.navigation.fixed)
|
||||||
|
"color" site.Params.navigation.color
|
||||||
|
"style" (default "light" site.Params.navigation.style)
|
||||||
|
"size" (default "md" site.Params.navigation.size))
|
||||||
|
-}}
|
||||||
|
<div class="main-content">
|
||||||
|
{{ block "featured" . }}{{ end -}}
|
||||||
|
</div>
|
||||||
|
{{ if .Site.Params.main.footerBelowFold }}
|
||||||
|
{{ block "main" . }}{{ end -}}
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ if not .Site.Params.main.footerBelowFold }}
|
||||||
|
{{ block "main" . }}{{ end -}}
|
||||||
|
{{- partial "footer/social.html" . -}}
|
||||||
|
{{- partial "footer/footer.html" . -}}
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ if .Site.Params.main.footerBelowFold }}
|
||||||
|
{{- partial "footer/social.html" . -}}
|
||||||
|
{{- partial "footer/footer.html" . -}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{- partial "footer/toast-container.html" . -}}
|
||||||
|
{{- partialCached "footer/scripts.html" (dict "header" false "page" . "core" true) }}
|
||||||
|
{{- partial "partials/optional-scripts.html" . -}}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@@ -1,12 +1,30 @@
|
|||||||
|
{{- define "featured" }}
|
||||||
|
{{ .Render "list/header" }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{- define "main" -}}
|
{{- define "main" -}}
|
||||||
{{- partial "assets/section-list.html" (dict
|
{{- $page := . -}}
|
||||||
"page" .
|
{{- $sections := $.Scratch.Get "sections" -}}
|
||||||
"section" .Type
|
{{- $fullCover := $.Scratch.Get "fullCover" -}}
|
||||||
"home" false
|
{{- $layout := $page.Params.layout -}}
|
||||||
"nested" .Params.Nested
|
|
||||||
"title" (or .Title .Type)
|
<div class="container-xxl p-4 px-xxl-0">
|
||||||
"description" .Description
|
{{- if ne $layout "featured" -}}
|
||||||
"content" .Content
|
{{ if and (not $page.IsHome) site.Params.navigation.breadcrumb }}
|
||||||
"paginate" true)
|
<div>{{ partial "assets/breadcrumb.html" $page }}</div>
|
||||||
-}}
|
{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{ .Render "list/body" }}
|
||||||
|
|
||||||
|
{{ .Render "list/footer" }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{/* Display generated sections */}}
|
||||||
|
{{ range $sections }}
|
||||||
|
{{ .content | safeHTML }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{/* Fill remaining space to push page footer to viewport bottom */}}
|
||||||
|
<div class="container-fluid flex-fill"></div>
|
||||||
{{- end -}}
|
{{- end -}}
|
27
layouts/_default/list/body.html
Normal file
27
layouts/_default/list/body.html
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{{- $sections := $.Scratch.Get "sections" -}}
|
||||||
|
{{- $fullCover := $.Scratch.Get "fullCover" -}}
|
||||||
|
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
|
||||||
|
{{- $layout := .Params.layout -}}
|
||||||
|
|
||||||
|
<div class="row row-cols-1 row-cols-{{ $breakpoint.current }}-2">
|
||||||
|
<div class="col-12 col-{{ $breakpoint.current }}-9">
|
||||||
|
{{ if not .IsHome }}
|
||||||
|
{{ with .Title }}<p id="{{ anchorize . }}" class="display-4 mt-5{{ if and $.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ if (.Params.menu) }}
|
||||||
|
{{- partial "assets/section-menu.html" . -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- $loading := "" -}}
|
||||||
|
{{- if or (eq $layout "featured") .IsHome -}}
|
||||||
|
{{- if $fullCover }}{{ $loading = site.Params.main.loading }}{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{- $content := partial "utilities/ProcessContent" (dict "page" . "raw" .RawContent "loading" $loading) -}}
|
||||||
|
{{- $content | safeHTML -}}
|
||||||
|
{{ if and (and $sections (eq (len $sections) 1)) (not $content) }}
|
||||||
|
<p class="pt-4">{{- T "emptyList" }}.</p>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
<div class="col col-{{ $breakpoint.current }}-3 d-none d-{{ $breakpoint.current }}-block">
|
||||||
|
{{/* Empty in default layout */}}
|
||||||
|
</div>
|
||||||
|
</div>
|
1
layouts/_default/list/footer.html
Normal file
1
layouts/_default/list/footer.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{{/* Adds a custom footer directly below the list body */}}
|
35
layouts/_default/list/header.html
Normal file
35
layouts/_default/list/header.html
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{{- $sections := $.Scratch.Get "sections" -}}
|
||||||
|
{{- $headings := slice }}
|
||||||
|
{{ if .Params.sectionMenu }}
|
||||||
|
{{ range $sections }}
|
||||||
|
{{ $headings = $headings | append .title }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{- $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 := .Params.actions -}}
|
||||||
|
{{- $layout := .Params.layout -}}
|
||||||
|
|
||||||
|
{{ if .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") .IsHome -}}
|
||||||
|
{{- partial "list/featured.html" (dict
|
||||||
|
"page" .
|
||||||
|
"headings" $headings
|
||||||
|
"actions" $actions
|
||||||
|
"orientation" $orientation
|
||||||
|
"width" $width
|
||||||
|
"justify" $justify
|
||||||
|
"align" $align)
|
||||||
|
-}}
|
||||||
|
{{- end -}}
|
@@ -1,118 +1,15 @@
|
|||||||
{{- define "partials/header.html" -}}
|
{{- define "partials/single-main.html" -}}
|
||||||
{{ if site.Params.navigation.breadcrumb }}{{ partial "assets/breadcrumb.html" . }}{{ end -}}
|
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
|
||||||
{{ if in (slice "docs" "minimal") .Layout }}
|
{{ if .Site.Params.navigation.breadcrumb }}{{ partial "assets/breadcrumb.html" . }}{{ end -}}
|
||||||
{{ 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-{{ $breakpoint.current }}-none pb-5">{{ partial "assets/toc-dropdown.html" . }}</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{ .Render "single/body" }}
|
||||||
|
|
||||||
{{ 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 }}
|
|
||||||
|
|
||||||
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent )}}
|
|
||||||
{{ 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" . }}
|
||||||
@@ -122,50 +19,48 @@
|
|||||||
{{ define "main" -}}
|
{{ define "main" -}}
|
||||||
{{- $menu := .Scratch.Get "sidebar" -}}
|
{{- $menu := .Scratch.Get "sidebar" -}}
|
||||||
{{- $version := .Scratch.Get "version" -}}
|
{{- $version := .Scratch.Get "version" -}}
|
||||||
{{- $sidebar := .Site.Params.navigation.sidebar | default true -}}
|
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
|
||||||
{{ 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 := .Render "single/panel-toc" }}
|
||||||
|
|
||||||
|
{{ 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">
|
||||||
<div class="row row-cols-md-2 row-cols-lg-3">
|
{{ if $hasSidebar -}}
|
||||||
<div class="col col-md-3 col-lg-2 d-none pt-5 d-md-block sidebar-overflow sticky-top">
|
<div class="row row-cols-1 row-cols-{{ $breakpoint.current }}-2 row-cols-{{ $breakpoint.next }}-3">
|
||||||
{{ partial "assets/sidebar" (dict "page" . "menu" $menu "version" $version) }}
|
<div class="col col-{{ $breakpoint.next }}-2 d-none d-{{ $breakpoint.next }}-block sidebar-overflow sticky-top pt-5">
|
||||||
|
{{ $sidebar | safeHTML }}
|
||||||
</div>
|
</div>
|
||||||
<div class="col col-md-9 col-lg-8 mb-5 p-4">
|
<div class="col-12 col-{{ $breakpoint.current }}-9 col-{{ $breakpoint.next }}-8 mb-5 p-4">
|
||||||
{{ partial "partials/header.html" . }}
|
{{ partial "partials/single-main.html" . }}
|
||||||
{{ partial "partials/body.html" . }}
|
|
||||||
{{ partial "partials/footer.html" . }}
|
|
||||||
</div>
|
|
||||||
<div class="col col-lg-2 d-none d-lg-block pt-5">
|
|
||||||
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}}
|
|
||||||
{{ partial "assets/toc.html" . -}}
|
|
||||||
{{ end -}}
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col col-{{ $breakpoint.current }}-3 col-{{ $breakpoint.next }}-2 d-none d-{{ $breakpoint.current }}-block pt-5">
|
||||||
|
{{ $toc | safeHTML }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<div class="container-xxl px-3 px-xxl-0">
|
<div class="row row-cols-1 row-cols-{{ $breakpoint.current }}-2">
|
||||||
<div class="row row-cols-1 row-cols-sm-3">
|
<div class="col col-{{ $breakpoint.prev }}-12 col-{{ $breakpoint.current }}-9">
|
||||||
<div class="col col-md-2 d-none d-md-block"></div>
|
{{ partial "partials/single-main.html" . }}
|
||||||
<div class="col col-sm-12 col-md-8">
|
|
||||||
{{ partial "partials/header.html" . }}
|
|
||||||
{{ partial "partials/body.html" . }}
|
|
||||||
{{ partial "partials/footer.html" . }}
|
|
||||||
</div>
|
|
||||||
<div class="col col-md-2 d-none d-md-block">
|
|
||||||
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}}
|
|
||||||
{{ partial "assets/toc.html" . -}}
|
|
||||||
{{ end -}}
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col col-{{ $breakpoint.current }}-3 d-none d-{{ $breakpoint.current }}-block">
|
||||||
|
{{ $toc | safeHTML }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
</div>
|
||||||
{{ end -}}
|
{{ end -}}
|
3
layouts/_default/single/body.html
Normal file
3
layouts/_default/single/body.html
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{{- partial "single/thumbnail.html" (dict "page" . "class" "mb-5") -}}
|
||||||
|
|
||||||
|
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}
|
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>
|
52
layouts/_default/single/header.html
Normal file
52
layouts/_default/single/header.html
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
{{- $metadata := "full" -}}
|
||||||
|
{{ if isset .Params "metadata" }}
|
||||||
|
{{ $metadata = .Params.metadata }}
|
||||||
|
{{ else }}
|
||||||
|
{{- with (index site.Params.pages .Type ) -}}
|
||||||
|
{{ if isset . "metadata" }}{{ $metadata = (index . "metadata") }}{{ end }}
|
||||||
|
{{- end -}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{- $supportedStates := slice "full" "original" "none" -}}
|
||||||
|
{{- if not (in $supportedStates $metadata) -}}
|
||||||
|
{{- errorf "layout [_default/single/header.html] - Invalid value for param 'metadata': %s" $metadata -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
|
||||||
|
{{ if ne $metadata "none" }}
|
||||||
|
{{ $lastmodstr := (partial "utilities/date.html" (dict "date" .Lastmod "format" "long")) -}}
|
||||||
|
{{ $datestr := (partial "utilities/date.html" (dict "date" .Date "format" "long")) -}}
|
||||||
|
<small class="text-body-secondary text-uppercase">
|
||||||
|
{{ $datestr | i18n "postedOnDate" -}}
|
||||||
|
{{ if eq $metadata "full" }}
|
||||||
|
{{ if ne $datestr $lastmodstr -}} ({{ $lastmodstr | i18n "lastModified" }}){{ end }}
|
||||||
|
{{ end }}
|
||||||
|
•
|
||||||
|
{{ .ReadingTime | lang.FormatNumber 0 }} {{ i18n "minutesShort" }} {{ i18n "read" }} •
|
||||||
|
{{ .WordCount | lang.FormatNumber 0 }} {{ i18n "words" }}
|
||||||
|
</small>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{- 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>
|
42
layouts/_default/single/panel-toc.html
Normal file
42
layouts/_default/single/panel-toc.html
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
{{- $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 -}}
|
||||||
|
|
||||||
|
{{- $toc := .Site.Params.navigation.toc -}}
|
||||||
|
{{ if $toc }}
|
||||||
|
{{ if isset .Params "includeToc" }}
|
||||||
|
{{ $toc = .Params.includeToc }}
|
||||||
|
{{ else }}
|
||||||
|
{{- with (index site.Params.pages .Type) -}}
|
||||||
|
{{ if isset . "includetoc" }}
|
||||||
|
{{ $toc = index . "includetoc" }}
|
||||||
|
{{ if ne (printf "%T" $toc) "bool" }}
|
||||||
|
{{ errorf "Expected bool value in site parameters: pages.%s.includeToc" $.Type }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{- end -}}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
<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 }}
|
||||||
|
{{ $title := (T "download" ) }}
|
||||||
|
{{ $lang := strings.TrimPrefix "." (path.Ext (path.BaseName .)) }}
|
||||||
|
{{ if and $lang (ne (string site.LanguageCode) $lang) }}
|
||||||
|
{{ range site.Languages }}
|
||||||
|
{{ if eq .LanguageCode $lang }}
|
||||||
|
{{ $title = printf "%s (%s)" (T "download") (T (printf "lang_%s" .LanguageCode)) }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
<div class="mb-5 text-center">
|
||||||
|
{{ $attr := dict "download" (path.Base .) }}
|
||||||
|
{{ partial "assets/button.html" (dict "href" . "title" $title "color" "primary" "outline" "true" "icon" "fas download" "size" "sm" "attributes" $attr) }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if $toc }}
|
||||||
|
{{ partial "assets/toc.html" (dict "page" . "download" $download) }}
|
||||||
|
{{ end -}}
|
||||||
|
</div>
|
1
layouts/docs/single/body.html
Normal file
1
layouts/docs/single/body.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}
|
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 @@
|
|||||||
|
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}
|
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" -}}
|
||||||
@@ -66,7 +67,7 @@
|
|||||||
{{- with .badge }}{{ $badge = . }}{{ end -}}
|
{{- with .badge }}{{ $badge = . }}{{ end -}}
|
||||||
|
|
||||||
{{- $label := "" -}}
|
{{- $label := "" -}}
|
||||||
{{- with .label }}{{ $label = . }}{{ end -}}
|
{{- if .label }}{{ $label = .label }}{{ else }}{{ $label = $title }}{{ end -}}
|
||||||
|
|
||||||
{{- $tooltip := "" -}}
|
{{- $tooltip := "" -}}
|
||||||
{{- if not (strings.HasSuffix $state "active") -}}
|
{{- if not (strings.HasSuffix $state "active") -}}
|
||||||
@@ -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,8 @@
|
|||||||
|
|
||||||
{{- $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 +161,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 +171,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,9 +31,12 @@
|
|||||||
"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 -}}
|
||||||
|
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
|
||||||
|
|
||||||
{{- if not (in (slice "*hugolib.pageState" "*hugolib.pageForShortcode") (printf "%T" $page)) -}}
|
{{- if not (in (slice "*hugolib.pageState" "*hugolib.pageForShortcode") (printf "%T" $page)) -}}
|
||||||
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'page': %T" $page -}}
|
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'page': %T" $page -}}
|
||||||
@@ -61,7 +67,7 @@
|
|||||||
{{ range $index, $element := $pages }}
|
{{ range $index, $element := $pages }}
|
||||||
{{ $params := dict }}
|
{{ $params := dict }}
|
||||||
<!-- regular page -->
|
<!-- regular page -->
|
||||||
{{- if $element.RelPermalink -}}
|
{{- if and $element.RelPermalink $element.File -}}
|
||||||
{{- $params = merge $params (dict "path" $element.File.Path) -}}
|
{{- $params = merge $params (dict "path" $element.File.Path) -}}
|
||||||
<!-- headless page -->
|
<!-- headless page -->
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
@@ -89,15 +95,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 = printf "row-cols-1 row-cols-%s-1 row-cols-%s-2" $breakpoint.prev $breakpoint.current }}{{ else }}{{ $colGrid = "row-cols-2" }}{{ end -}}
|
||||||
|
{{- else if eq $cols "3" }}{{ if $responsive }}{{ $colGrid = printf "row-cols-1 row-cols-%s-2 row-cols-%s-3" $breakpoint.prev $breakpoint.current }}{{ else }}{{ $colGrid = "row-cols-3" }}{{ end -}}
|
||||||
|
{{- else if eq $cols "4" }}{{ if $responsive }}{{ $colGrid = printf "row-cols-1 row-cols-%s-2 row-cols-%s-4" $breakpoint.prev $breakpoint.current }}{{ else }}{{ $colGrid = "row-cols-4" }}{{ end -}}
|
||||||
|
{{- else if eq $cols "5" }}{{ if $responsive }}{{ $colGrid = printf "row-cols-1 row-cols-%s-3 row-cols-%s-5" $breakpoint.prev $breakpoint.current }}{{ 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 +142,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 +165,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 -}}
|
||||||
@@ -153,7 +187,7 @@
|
|||||||
<div class="pt-3">{{ partial "assets/pagination.html" (dict "page" $page "format" "terse") }}</div>
|
<div class="pt-3">{{ partial "assets/pagination.html" (dict "page" $page "format" "terse") }}</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ if gt $count $max }}
|
{{ if and (gt $count $max) $moreTitle }}
|
||||||
<a class="btn btn-outline-primary" href="{{ $moreURL| safeURL }}" role="button">{{ $moreTitle }}</a>
|
<a class="btn btn-outline-primary" href="{{ $moreURL| safeURL }}" role="button">{{ $moreTitle }}</a>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
@@ -1,27 +1,49 @@
|
|||||||
<!--
|
<!--
|
||||||
Displays a Bootstrap card. Either specify a valid path, or set the arguments title, href, header, description, and
|
Copyright © 2023 The Hinode Team / Mark Dumay. All rights reserved.
|
||||||
thumbnail individually. The latter arguments override any page attributes.
|
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
|
||||||
|
Visit gethinode.com/license for more details.
|
||||||
The shortcode supports the following arguments:
|
|
||||||
"path" Optional path of the page, override with other parameters.
|
|
||||||
"title" Required title of the card.
|
|
||||||
"href" Optional address for the button or hyperlink.
|
|
||||||
"class" Optional class attribute of the card element, e.g. “w-50”.
|
|
||||||
"color": Optional theme color of the card, either "primary", "secondary", "success", "danger",
|
|
||||||
"warning", "info", "light", "dark", "white", "black", "body", or "body-tertiary". By default, no
|
|
||||||
color is specified.
|
|
||||||
"padding": Optional padding of the content, either "0", "1", "2", "3", "4", "5", or "auto" (default).
|
|
||||||
"header" Optional header components of the card, displayed in small caps. Supported values are "full"
|
|
||||||
(default), "publication", "tags", and "none".
|
|
||||||
"footer" Optional footer components of the card, displayed in small caps. Supported values are "full",
|
|
||||||
"publication", "tags", and "none" (default).
|
|
||||||
"description" Optional description of the card.
|
|
||||||
"thumbnail" Optional thumbnail image url, 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",
|
|
||||||
"horizontal-sm" or "none".
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
<!-- Validate and initialize arguments -->
|
||||||
|
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "card" "args" .) }}
|
||||||
|
{{- errorf "partial [assets/card.html] - Invalid arguments" -}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
<!-- Initialize arguments and default values -->
|
||||||
|
{{- $alt := .alt -}}
|
||||||
|
{{- $class := .class -}}
|
||||||
|
{{- $color := .color -}}
|
||||||
|
{{- $description := .description -}}
|
||||||
|
{{- $footer := .footer | default "none" -}}
|
||||||
|
{{- $gutter := .gutter | default "0" -}}
|
||||||
|
{{- $header := .header | default "full" -}}
|
||||||
|
{{- $href := .href -}}
|
||||||
|
{{- $icon := .icon -}}
|
||||||
|
{{- $loading := .loading -}}
|
||||||
|
{{- $orientation := .orientation | default "stacked" -}}
|
||||||
|
{{- $padding := .padding | default "auto" -}}
|
||||||
|
{{- $ratio := .ratio -}}
|
||||||
|
{{- $thumbnail := .thumbnail -}}
|
||||||
|
{{- $title := .title -}}
|
||||||
|
|
||||||
|
<!-- Override arguments -->
|
||||||
|
{{- $page := "" }}
|
||||||
|
{{- if .path }}
|
||||||
|
{{- $page = site.GetPage .path }}
|
||||||
|
{{- if not $page }}
|
||||||
|
{{- errorf "partial [assets/card.html] - Cannot find page: %s" .path -}}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with $page -}}
|
||||||
|
{{- if not $title }}{{ $title = .Title }}{{ end -}}
|
||||||
|
{{- if not $href }}{{ $href = .RelPermalink }}{{ end -}}
|
||||||
|
{{- if not $description }}{{ $description = partial "utilities/GetDescription.html" . }}{{ end -}}
|
||||||
|
{{- if not $thumbnail }}{{ $thumbnail = (or (and (reflect.IsMap .Params.Thumbnail) .Params.Thumbnail.url) .Params.Thumbnail) }}{{ end -}}
|
||||||
|
{{- if not $icon }}{{ $icon = .Params.icon }}{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if eq $orientation "none" }}{{ $thumbnail = "" }}{{ $icon = "" }}{{ end -}}
|
||||||
|
|
||||||
<!-- Inline partial to render the card's body -->
|
<!-- Inline partial to render the card's body -->
|
||||||
{{- define "partials/card-body.html" -}}
|
{{- define "partials/card-body.html" -}}
|
||||||
{{- $title := .title -}}
|
{{- $title := .title -}}
|
||||||
@@ -32,12 +54,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 -}}
|
||||||
@@ -73,76 +95,19 @@
|
|||||||
</small></p>
|
</small></p>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- $page := "" }}
|
<!-- Main code -->
|
||||||
{{- if .path }}
|
{{ if ne $gutter "0" }}<div class="g-{{ $gutter }}">{{ end }}
|
||||||
{{- $page = site.GetPage .path }}
|
|
||||||
{{- if not $page }}
|
|
||||||
{{- errorf "partial [assets/card.html] - Cannot find page: %s" .path -}}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- $title := .title -}}
|
|
||||||
{{- $href := .href -}}
|
|
||||||
{{- $description := .description -}}
|
|
||||||
{{- $thumbnail := .thumbnail -}}
|
|
||||||
{{- $icon := .icon -}}
|
|
||||||
|
|
||||||
{{- $color := "" -}}
|
|
||||||
{{- with .color }}{{ $color = . }}{{ end -}}
|
|
||||||
{{- if $color -}}
|
|
||||||
{{- $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" "body" "body-tertiary" -}}
|
|
||||||
{{- if not (in $supportedColors $color) -}}
|
|
||||||
{{- errorf "partial [assets/card.html] - Invalid value for param 'color': %s" $color -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- $header := "full" -}}
|
|
||||||
{{- with .header }}{{ $header = . }}{{ end -}}
|
|
||||||
{{- $supportedKeywords := slice "full" "publication" "tags" "none" -}}
|
|
||||||
{{- if not (in $supportedKeywords $header) -}}
|
|
||||||
{{- errorf "partial [assets/card.html] - Invalid value for param 'header': %s" $header -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- $footer := "none" -}}
|
|
||||||
{{- with .footer }}{{ $footer = . }}{{ end -}}
|
|
||||||
{{- if not (in $supportedKeywords $footer) -}}
|
|
||||||
{{- errorf "partial [assets/card.html] - Invalid value for param 'footer': %s" $footer -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- with $page -}}
|
|
||||||
{{- if not $title }}{{ $title = .Title }}{{ end -}}
|
|
||||||
{{- if not $href }}{{ $href = .RelPermalink }}{{ end -}}
|
|
||||||
{{- if not $description }}{{ $description = partial "utilities/GetDescription.html" . }}{{ end -}}
|
|
||||||
{{- if not $thumbnail }}{{ $thumbnail = (or (and (reflect.IsMap .Params.Thumbnail) .Params.Thumbnail.url) .Params.Thumbnail) }}{{ end -}}
|
|
||||||
{{- if not $icon }}{{ $icon = .Params.icon }}{{ end -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- $class := .class -}}
|
|
||||||
|
|
||||||
{{- $padding := "auto" -}}
|
|
||||||
{{- with .padding }}{{ $padding = . }}{{ end -}}
|
|
||||||
{{- $supportedPaddings := slice "0" "1" "2" "3" "4" "5" "auto" -}}
|
|
||||||
{{- if not (in $supportedPaddings $padding) -}}
|
|
||||||
{{- errorf "partial [assets/card.html] - Invalid value for param 'padding': %s" $padding -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- $orientation := "stacked" -}}
|
|
||||||
{{- with .orientation }}{{ $orientation = . }}{{ end -}}
|
|
||||||
{{- $supportedOrientations := slice "stacked" "horizontal" "horizontal-sm" "none" -}}
|
|
||||||
{{- if not (in $supportedOrientations $orientation) -}}
|
|
||||||
{{- errorf "partial [assets/card.html] - Invalid value for param 'orientation': %s" $orientation -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- if eq $orientation "none" }}{{ $thumbnail = "" }}{{ $icon = "" }}{{ end -}}
|
|
||||||
|
|
||||||
{{- if hasPrefix $orientation "horizontal" -}}
|
{{- if hasPrefix $orientation "horizontal" -}}
|
||||||
|
<!-- Render horizontal card -->
|
||||||
<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>
|
||||||
@@ -158,12 +123,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
|
<!-- Render stacked / default card -->
|
||||||
<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" $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 }}">
|
||||||
@@ -173,3 +139,5 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{ if ne $gutter "0" }}</div>{{ end }}
|
||||||
|
@@ -5,8 +5,16 @@
|
|||||||
{{- $ratio := .ratio -}}
|
{{- $ratio := .ratio -}}
|
||||||
{{- $portrait := .portrait -}}
|
{{- $portrait := .portrait -}}
|
||||||
|
|
||||||
<div class="carousel-item{{ if $active }} active{{ end }}">
|
{{- $loading := .loading -}}
|
||||||
{{ partial "assets/image.html" (dict "url" $src "ratio" $ratio "page" $page "innerClass" "d-block w-100" "portrait" $portrait) }}
|
{{- $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 }}" {{ if not $active }} fetchpriority="low"{{ end }}>
|
||||||
|
{{ 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,14 @@
|
|||||||
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.
|
||||||
|
"priority": Optional fetch priority of the image, either "high", "low", or "auto" (default). The priority
|
||||||
|
provides a hint to the browser on how it should prioritize the fetch of the image relative to other
|
||||||
|
images. The implementation is experimental and currently only supported by Chrome, Edge, and Opera.
|
||||||
|
(https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/fetchpriority#browser_compatibility).
|
||||||
"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 +48,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 +59,23 @@
|
|||||||
{{- $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" -}}
|
||||||
|
|
||||||
|
{{- $priority := .priority -}}
|
||||||
|
{{- $validPriorities := slice "high" "low" "auto" -}}
|
||||||
|
{{- if $priority -}}
|
||||||
|
{{ if not (in $validPriorities $priority) -}}
|
||||||
|
{{- errorf "partial [assets/image.html] - Invalid value for param 'priority'" -}}
|
||||||
|
{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if eq $priority "auto" }}{{ $priority = "" }}{{ end -}}
|
||||||
|
|
||||||
{{- define "partials/image-portrait.html" -}}
|
{{- define "partials/image-portrait.html" -}}
|
||||||
{{- $dimensions := slice }}
|
{{- $dimensions := slice }}
|
||||||
@@ -68,12 +91,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 +112,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)) -}}
|
||||||
@@ -158,6 +177,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 +185,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,7 +207,9 @@
|
|||||||
{{- $imgset := "" -}}
|
{{- $imgset := "" -}}
|
||||||
{{- $mode := .mode -}}
|
{{- $mode := .mode -}}
|
||||||
{{- $modes := .modes -}}
|
{{- $modes := .modes -}}
|
||||||
|
{{- $lazy := .lazy -}}
|
||||||
{{- $page := .page -}}
|
{{- $page := .page -}}
|
||||||
|
{{- $priority := .priority -}}
|
||||||
{{- $isVector := false -}}
|
{{- $isVector := false -}}
|
||||||
|
|
||||||
{{- $segments := split $url "#" -}}
|
{{- $segments := split $url "#" -}}
|
||||||
@@ -200,8 +223,19 @@
|
|||||||
{{- if hasSuffix $url "svg" -}}
|
{{- if hasSuffix $url "svg" -}}
|
||||||
{{- $fallbackURL = $url -}}
|
{{- $fallbackURL = $url -}}
|
||||||
{{- $isVector = true -}}
|
{{- $isVector = true -}}
|
||||||
|
{{- $res := partial "utilities/GetResource.html" (dict "url" $url "page" $page) -}}
|
||||||
|
{{ if not $res }}
|
||||||
|
{{- if not (fileExists (path.Join "/static" $url)) -}}
|
||||||
|
{{ warnf "Cannot find vector image resource: %q" $url -}}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- $img := partial "utilities/GetImage.html" (dict "url" $url "page" $page) -}}
|
{{- $res := partial "utilities/GetImage.html" (dict "url" $url "page" $page) -}}
|
||||||
|
{{- $img := "" -}}
|
||||||
|
{{ with $res }}
|
||||||
|
{{ $img = $res.resource }}
|
||||||
|
{{ if $res.mirror }}{{ $innerClass = printf "%s mirrorred" $innerClass }}{{ end }}
|
||||||
|
{{ end }}
|
||||||
{{- 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 -}}
|
||||||
@@ -219,18 +253,33 @@
|
|||||||
{{- 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 $priority }}fetchpriority="{{ . }}"{{ 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>
|
||||||
@@ -243,7 +292,21 @@
|
|||||||
{{- 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
|
||||||
|
"priority" $priority
|
||||||
|
"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 +316,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,9 @@
|
|||||||
{{- $thumbnail := .thumbnail -}}
|
{{- $thumbnail := .thumbnail -}}
|
||||||
{{- $style := .style -}}
|
{{- $style := .style -}}
|
||||||
{{- $mode := .mode -}}
|
{{- $mode := .mode -}}
|
||||||
{{- partial "assets/image.html" (dict "url" $thumbnail "outerClass" $style "mode" $mode) -}}
|
{{- $title := .title -}}
|
||||||
|
{{- $loading := .loading -}}
|
||||||
|
{{- partial "assets/image.html" (dict "url" $thumbnail "title" $title "outerClass" $style "mode" $mode "loading" $loading) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- $page := .page -}}
|
{{- $page := .page -}}
|
||||||
@@ -49,6 +51,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 +71,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 "title" $item.Title "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 +88,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 "title" $item.Title "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)) }}
|
||||||
|
@@ -10,6 +10,8 @@
|
|||||||
"body" The body content of the nav-item, supports Markdown and HTML (if enabled).
|
"body" The body content of the nav-item, supports Markdown and HTML (if enabled).
|
||||||
"show" Optional flag to indicate the item should be shown as expanded (only one can be shown at a time).
|
"show" Optional flag to indicate the item should be shown as expanded (only one can be shown at a time).
|
||||||
"disabled" Optional flag to indicate the item should be in a disabled state.
|
"disabled" Optional flag to indicate the item should be in a disabled state.
|
||||||
|
"type" Optional type of the item to render, supports "accordion" as alternative format. Defaults to
|
||||||
|
"tab-pane".
|
||||||
-->
|
-->
|
||||||
|
|
||||||
{{- $id := .id -}}
|
{{- $id := .id -}}
|
||||||
@@ -21,9 +23,33 @@
|
|||||||
{{- $body := .body -}}
|
{{- $body := .body -}}
|
||||||
{{- $show := .show -}}
|
{{- $show := .show -}}
|
||||||
{{- $disabled := .disabled -}}
|
{{- $disabled := .disabled -}}
|
||||||
|
{{- $type := .type -}}
|
||||||
|
{{- $illustration := .illustration -}}
|
||||||
|
|
||||||
<div class="tab-pane{{ if $show }} active {{ if $fade }}show{{ end }}{{ end }} {{ if $fade}}fade{{ end }}{{ with $class }} {{ . }}{{ end }}" id="{{ $parentID }}-{{ $id }}"
|
{{ if eq $type "accordion" }}
|
||||||
|
<div class="accordion-item{{ if $show }} show{{ end }}{{ with $class }} {{ . }}{{ end }}">
|
||||||
|
{{- with $header -}}
|
||||||
|
<h2 class="accordion-header m-0" id="accordion-{{ $parentID }}-heading-{{ $id }}">
|
||||||
|
<button class="accordion-button collapsed {{ if $disabled }} text-secondary{{ end }}" type="button" data-bs-toggle="collapse" data-bs-target="#accordion-{{ $parentID }}-item-{{ $id }}" aria-expanded="false" aria-controls="accordion-{{ $parentID }}-item-{{ $id }}"{{ if $disabled }} disabled{{ end }}>
|
||||||
|
{{ if $illustration }}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-3 col-sm-2 my-auto">{{ $illustration | safeHTML }}</div>
|
||||||
|
<div class="col-9 col-sm-10 fs-6 fs-sm-5 my-auto">{{ . }}</div>
|
||||||
|
</div>
|
||||||
|
{{ else }}
|
||||||
|
{{ . }}
|
||||||
|
{{ end }}
|
||||||
|
</button>
|
||||||
|
</h2>
|
||||||
|
{{- end -}}
|
||||||
|
<div id="accordion-{{ $parentID }}-item-{{ $id }}" class="accordion-collapse collapse{{ with $class }} {{ . }}{{ end }}" aria-labelledby="{{ $parentID }}-heading-{{ $id }}" data-bs-parent="#accordion-{{ $parentID }}">
|
||||||
|
<div class="accordion-body">{{- $body | safeHTML -}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{ else }}
|
||||||
|
<div class="tab-pane{{ if $show }} active {{ if $fade }}show{{ end }}{{ end }} {{ if $fade}}fade{{ end }}{{ with $class }} {{ . }}{{ end }}" id="{{ $parentID }}-{{ $id }}"
|
||||||
role="tabpanel" aria-labelledby="{{ $parentID }}-btn-{{ $id }}" tabindex="0" data-header="{{ $header }}" {{ if $show }}data-show-id="{{ $id }}"{{ end }}
|
role="tabpanel" aria-labelledby="{{ $parentID }}-btn-{{ $id }}" tabindex="0" data-header="{{ $header }}" {{ if $show }}data-show-id="{{ $id }}"{{ end }}
|
||||||
data-has-content="{{ gt (len $body) 0 }}" {{ if $disabled }} data-disabled-id="{{ $id }}"{{ end }}>
|
data-has-content="{{ gt (len $body) 0 }}" {{ if $disabled }} data-disabled-id="{{ $id }}"{{ end }}>
|
||||||
{{ $body }}
|
{{ $body }}
|
||||||
</div>
|
</div>
|
||||||
|
{{ end }}
|
@@ -4,11 +4,12 @@
|
|||||||
"page" Required context of the current page.
|
"page" Required context of the current page.
|
||||||
"list" Required array of pages.
|
"list" Required array of pages.
|
||||||
"title" Optional title of the tab group.
|
"title" Optional title of the tab group.
|
||||||
"type" Optional type of the tab group, either "tabs", "pills" (default), or "underline".
|
"type" Optional type of the tab group, either "tabs", "pills" (default), "underline" or "callout".
|
||||||
"vertical" Optional flag to show vertical tabs instead of horizontal tabs (default).
|
"vertical" Optional flag to show vertical tabs instead of horizontal tabs (default).
|
||||||
"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" -}}
|
||||||
@@ -68,7 +70,7 @@
|
|||||||
{{ $type := "pills" }}
|
{{ $type := "pills" }}
|
||||||
{{ with .type }}
|
{{ with .type }}
|
||||||
{{ $type = . -}}
|
{{ $type = . -}}
|
||||||
{{ $supportedNavTypes := slice "tabs" "pills" "underline" -}}
|
{{ $supportedNavTypes := slice "tabs" "pills" "underline" "callout" -}}
|
||||||
{{ if $type }}
|
{{ if $type }}
|
||||||
{{ if not (in $supportedNavTypes $type) -}}
|
{{ if not (in $supportedNavTypes $type) -}}
|
||||||
{{ errorf "partial [assets/nav.html] - Invalid value for param 'type': %s" $type -}}
|
{{ errorf "partial [assets/nav.html] - Invalid value for param 'type': %s" $type -}}
|
||||||
@@ -76,19 +78,49 @@
|
|||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{ 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">
|
{{- $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">
|
||||||
{{ if $vertical }}<div class="d-flex align-items-start">{{ end }}
|
{{ if $vertical }}<div class="d-flex align-items-start">{{ end }}
|
||||||
|
{{ if eq $type "callout" }}
|
||||||
|
<div class="d-lg-none">
|
||||||
|
<div id="accordion-{{ $id }}" class="accordion mb-3{{ with $class }} {{ . }}{{ end }} nav-callout">
|
||||||
|
{{- range $index, $item := $list -}}
|
||||||
|
{{ partial "assets/nav-item" (dict
|
||||||
|
"id" $index
|
||||||
|
"parentID" $id
|
||||||
|
"fade" false
|
||||||
|
"header" $item.Title
|
||||||
|
"class" $class
|
||||||
|
"body" (or $item.Description $item.Content)
|
||||||
|
"show" false
|
||||||
|
"disabled" false
|
||||||
|
"type" "accordion"
|
||||||
|
"illustration" (partial "utilities/GetIllustration.html" (dict "item" $item "size" "col-12"))
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{ end -}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="d-none d-lg-block">
|
||||||
|
{{ 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>
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="tab-content {{ if eq $type "tabs" }}border border-top-0 p-3{{ else if $vertical }}ms-3{{ else }}mt-3{{ end }}">
|
<div class="tab-content {{ if eq $type "tabs" }}border border-bottom-0 p-3{{ else if $vertical }}ms-3{{ else }}mt-3{{ end }}">
|
||||||
{{ range $index, $item := $list }}
|
{{ range $index, $item := $list }}
|
||||||
{{ $header := $item.Title }}
|
{{ $header := $item.Title }}
|
||||||
{{ $body := $item.Content }}
|
{{ $body := $item.Content }}
|
||||||
@@ -102,12 +134,24 @@
|
|||||||
"color" $color
|
"color" $color
|
||||||
"content" (partial "utilities/GetDescription.html" $item)
|
"content" (partial "utilities/GetDescription.html" $item)
|
||||||
"thumbnail" $thumbnail
|
"thumbnail" $thumbnail
|
||||||
|
"loading" $loading
|
||||||
) -}}
|
) -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
|
{{ $illustration := (partial "utilities/GetIllustration.html" (dict "item" $item)) }}
|
||||||
|
{{ if $illustration }}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12 col-lg-10 order-1 order-lg-0">{{- (or $item.Description $item.Content) -}}</div>
|
||||||
|
<div class="col-12 col-lg-2 order-0 order-lg-1">{{ $illustration | safeHTML }}</div>
|
||||||
|
</div>
|
||||||
|
{{ else }}
|
||||||
{{- (or $item.Description $item.Content) -}}
|
{{- (or $item.Description $item.Content) -}}
|
||||||
|
{{ end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ if eq $type "callout" }}</div>{{ end }}
|
||||||
{{ if $vertical }}</div>{{ end }}
|
{{ if $vertical }}</div>{{ end }}
|
||||||
</div>
|
</div>
|
@@ -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>
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
{{- range $index, $item := $list -}}
|
{{- range $index, $item := $list -}}
|
||||||
{{- $active := eq $item.label $version -}}
|
{{- $active := eq $item.label $version -}}
|
||||||
{{- $disabled := false -}}
|
{{- $disabled := false -}}
|
||||||
{{- if site.IsServer }}
|
{{- if hugo.IsServer }}
|
||||||
{{- $disabled = and $item.redirect (gt (len $item.redirect) 0) -}}
|
{{- $disabled = and $item.redirect (gt (len $item.redirect) 0) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{ if $item.url }}
|
{{ if $item.url }}
|
||||||
@@ -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,36 +224,38 @@
|
|||||||
|
|
||||||
<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 align-items-center">
|
||||||
{{- if $page.Scratch.Get "sidebar" -}}
|
{{- if $page.Scratch.Get "sidebar" -}}
|
||||||
<button class="navbar-toggler fw-30 collapsed p-0 mx-auto" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvass-sidebar" aria-controls="offcanvass-sidebar" aria-label="{{ T "toggleSidebar" }}">
|
<button class="navbar-toggler collapsed p-0 mx-auto" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvass-sidebar" aria-controls="offcanvass-sidebar" aria-label="{{ T "toggleSidebar" }}">
|
||||||
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis fa-fw") -}}
|
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis fa-fw") -}}
|
||||||
</button>
|
</button>
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
<!-- Insert invisible sidebar toggler to center logo correctly on smaller screens -->
|
<!-- Insert invisible sidebar toggler to center logo correctly on smaller screens -->
|
||||||
<button class="navbar-toggler fw-30 collapsed p-0 mx-auto invisible" type="button">
|
<button class="navbar-toggler collapsed p-0 mx-auto invisible" type="button">
|
||||||
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis fa-fw") -}}
|
{{- partial "assets/icon.html" (dict "icon" "fas ellipsis fa-fw") -}}
|
||||||
</button>
|
</button>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</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 -}}
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!-- Insert main navigation toggler -->
|
<!-- Insert main navigation toggler -->
|
||||||
<div class="d-flex fw-30">
|
<div class="d-flex">
|
||||||
<button class="navbar-toggler main-nav-toggler collapsed p-0" type="button" data-bs-toggle="collapse" data-bs-target="#{{ $id }}-collapse"
|
<button class="navbar-toggler main-nav-toggler collapsed p-0" type="button" data-bs-toggle="collapse" data-bs-target="#{{ $id }}-collapse"
|
||||||
aria-controls="{{ $id }}" aria-expanded="false" aria-label="{{ T "toggleMainNav" }}">
|
aria-controls="{{ $id }}" aria-expanded="false" aria-label="{{ T "toggleMainNav" }}">
|
||||||
<span class="toggler-icon top-bar emphasis{{ with $theme }}-{{ . }}{{ end }}"></span>
|
<span class="toggler-icon top-bar emphasis{{ with $theme }}-{{ . }}{{ end }}"></span>
|
||||||
@@ -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 "title" $title "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 "title" $title "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>
|
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
{{- $page := .page }}
|
{{- $page := .page }}
|
||||||
{{- $section := .section }}
|
{{- $section := .section }}
|
||||||
{{- if not $section }}{{ errorf "partial [assets/section-list.html] - Missing value for param 'section'" }}{{ end -}}
|
{{- if not $section }}{{ errorf "partial [assets/section-list.html] - Missing value for param 'section'" }}{{ end -}}
|
||||||
{{- $home := .home }}
|
{{- $home := .home | default false }}
|
||||||
{{ if ne (printf "%T" $home) "bool" }}
|
{{ if ne (printf "%T" $home) "bool" }}
|
||||||
{{ errorf "partial [assets/section-list.html] - Invalid value for param 'home'"}}
|
{{ errorf "partial [assets/section-list.html] - Invalid value for param 'home'"}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
@@ -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,13 +34,17 @@
|
|||||||
{{- $type := "pills" -}}
|
{{- $type := "pills" -}}
|
||||||
{{- $vertical := "false" -}}
|
{{- $vertical := "false" -}}
|
||||||
{{- $width := 100 -}}
|
{{- $width := 100 -}}
|
||||||
|
{{- $ratio := "" -}}
|
||||||
|
{{- $wrap := false -}}
|
||||||
|
{{- $loading := .loading -}}
|
||||||
|
{{- $wrapper := .wrapper | default "p-4 px-xxl-0 pb-5" -}}
|
||||||
|
|
||||||
{{- 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 -}}
|
||||||
{{- with index . "sectionHeader" }}{{ $sectionHeader = . }}{{ end -}}
|
{{- with index . "sectionHeader" }}{{ $sectionHeader = . }}{{ end -}}
|
||||||
{{- with index . "sort" }}{{ $sort = . }}{{ end -}}
|
{{- with index . "sort" }}{{ $sort = . }}{{ end -}}
|
||||||
{{- if (index . "reverse") }}{{ $order = "desc" }}{{ else }}{{ $order = "asc" }}{{ end -}}
|
{{- if (index . "reverse") }}{{ $order = "desc" }}{{ else }}{{ $order = "asc" }}{{ end -}}
|
||||||
{{- if $home }}{{- if (isset . "nested") }}{{ $nested = (index . "nested") }}{{ end -}}{{ end -}}
|
{{- if (isset . "nested") }}{{ $nested = (index . "nested") }}{{ end -}}
|
||||||
{{- if (index . "separator") }}{{ $separator = true }}{{ else }}{{ $separator = false }}{{ end -}}
|
{{- if (index . "separator") }}{{ $separator = true }}{{ else }}{{ $separator = false }}{{ end -}}
|
||||||
{{- with index . "orientation" }}{{ $orientation = . }}{{ end -}}
|
{{- with index . "orientation" }}{{ $orientation = . }}{{ end -}}
|
||||||
{{- with index . "cols" }}{{ $cols = . }}{{ end -}}
|
{{- with index . "cols" }}{{ $cols = . }}{{ end -}}
|
||||||
@@ -54,19 +60,47 @@
|
|||||||
{{- 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 isset $page.Params "nested" }}
|
||||||
|
{{ $nested = $page.Params.nested }}
|
||||||
|
{{ 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" }}
|
||||||
{{ $list = where site.RegularPages "Type" "in" $section }}
|
{{ $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 eq $kind "related" }}
|
||||||
|
{{ if $page.Keywords}}
|
||||||
|
{{ $keywords := keyVals "tags" $page.Keywords }}
|
||||||
|
{{ $opts := dict "namedSlices" (slice $keywords) }}
|
||||||
|
{{ $list = site.RegularPages.Related $opts }}
|
||||||
|
{{ end }}
|
||||||
{{ else if $home }}
|
{{ else if $home }}
|
||||||
{{ $sectionPage := site.GetPage "section" $section }}
|
{{ $sectionPage := site.GetPage "section" $section }}
|
||||||
{{ $list = $sectionPage.RegularPages }}
|
{{ if $nested }}
|
||||||
|
{{ $list = $sectionPage.RegularPagesRecursive }}
|
||||||
|
{{ else }}
|
||||||
|
{{ $list = $sectionPage.Pages }}
|
||||||
|
{{ end }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ $list = $page.RegularPages }}
|
{{ if $nested }}
|
||||||
|
{{ $list = $page.RegularPagesRecursive }}
|
||||||
|
{{ else }}
|
||||||
|
{{ $list = $page.Pages }}
|
||||||
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ $max := (len $list) -}}
|
{{ $max := (len $list) -}}
|
||||||
@@ -83,28 +117,35 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{ if gt $max 0 }}
|
{{ if gt $max 0 }}
|
||||||
{{- if $home -}}
|
{{- if or $home (eq $kind "related") -}}
|
||||||
{{- $paginate = false -}}
|
{{- $paginate = false -}}
|
||||||
{{- $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 {{ $wrapper }}">
|
||||||
{{- partial "assets/section-header.html" $params -}}
|
{{- partial "assets/section-header.html" $params -}}
|
||||||
|
|
||||||
{{ if eq $layout "card" }}
|
{{ if eq $layout "card" }}
|
||||||
@@ -131,6 +172,7 @@
|
|||||||
"type" $type
|
"type" $type
|
||||||
"vertical" $vertical
|
"vertical" $vertical
|
||||||
"width" $width
|
"width" $width
|
||||||
|
"wrap" $wrap
|
||||||
)
|
)
|
||||||
-}}
|
-}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
|
44
layouts/partials/assets/section-menu.html
Normal file
44
layouts/partials/assets/section-menu.html
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
{{- $page := . -}}
|
||||||
|
{{ $items := $page.Parent.Sections }}
|
||||||
|
{{ if not $page.Parent.Section }}
|
||||||
|
{{ $items = $page.Sections }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{- if gt (len $items) 0 }}
|
||||||
|
<div class="d-grid gap-2 mx-auto d-md-none">
|
||||||
|
{{ partial "assets/button.html" (dict
|
||||||
|
"title" (T "sectionMenu")
|
||||||
|
"color" "secondary"
|
||||||
|
"outline" "true"
|
||||||
|
"class" "toc-button"
|
||||||
|
"icon" "fas sort"
|
||||||
|
"justify" "between"
|
||||||
|
"collapse" "toc-collapse"
|
||||||
|
"order" "last")
|
||||||
|
-}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<div class="collapse border bg-body-tertiary rounded p-1 navbar-nav-scroll" id="toc-collapse">
|
||||||
|
<div class="toc toc-panel section-menu text-body p-2 fs-6">
|
||||||
|
{{- range $items }}
|
||||||
|
{{ $active := eq $page.RelPermalink .RelPermalink }}
|
||||||
|
<a class="nav-link{{ if $active }} active{{ end }}" href="{{ .RelPermalink }}">{{ .Title }}</a>
|
||||||
|
{{- end }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<nav class="navbar navbar-expand navbar-services p-0 fs-5 d-none d-md-block">
|
||||||
|
<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 }}
|
@@ -1,12 +1,29 @@
|
|||||||
{{- if .Site.Params.sharing.enabled -}}
|
{{- if .Site.Params.sharing.enabled -}}
|
||||||
{{- if or .Params.sharing (not (isset .Params "sharing")) -}}
|
{{- $sharing := true -}}
|
||||||
|
{{ if isset .Params "sharing" }}
|
||||||
|
{{ $sharing = .Params.sharing }}
|
||||||
|
{{ else }}
|
||||||
|
{{- with (index site.Params.pages .Type ) -}}
|
||||||
|
{{ if isset . "sharing" }}
|
||||||
|
{{ $sharing = (index . "sharing") }}
|
||||||
|
{{ end }}
|
||||||
|
{{- end -}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{- if $sharing -}}
|
||||||
{{- $page := . -}}
|
{{- $page := . -}}
|
||||||
{{- $order := "asc" -}}
|
{{- $order := "asc" -}}
|
||||||
{{- $list := .Site.Params.sharing.providers -}}
|
{{- $list := .Site.Params.sharing.providers -}}
|
||||||
{{- 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">
|
|
||||||
|
{{- $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 -}}
|
||||||
|
|
||||||
|
<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 +38,15 @@
|
|||||||
{{- $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 -}}
|
||||||
|
{{ with $download }}
|
||||||
|
{{ $attr := dict "download" (path.Base .) }}
|
||||||
|
{{ partial "assets/button.html" (dict "href" . "icon" "fas download fa-fw" "class" "btn-social p-0" "attributes" $attr "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
layouts/partials/assets/table.html
Normal file
25
layouts/partials/assets/table.html
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{{ $page := .page }}
|
||||||
|
{{ $input := .input }}
|
||||||
|
{{ $args := .args }}
|
||||||
|
|
||||||
|
{{- $responsiveVals := slice "table-responsive" "table-responsive-none" "table-responsive-sm" "table-responsive-md" "table-responsive-lg" "table-responsive-xl" "table-responsive-xxl" -}}
|
||||||
|
{{- $responsive := intersect $args $responsiveVals -}}
|
||||||
|
{{- $main := complement $responsive $args -}}
|
||||||
|
|
||||||
|
{{- if in $responsive "table-responsive-none" -}}
|
||||||
|
{{- $responsive = "" -}}
|
||||||
|
{{- else if not $responsive -}}
|
||||||
|
{{ $responsive = (slice "table-responsive") -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $input := $input | $page.RenderString }}
|
||||||
|
{{- $input = replace $input "style=\"text-align:left\"" "class=\"text-start\"" -}}
|
||||||
|
{{- $input = replace $input "style=\"text-align:center\"" "class=\"text-center\"" -}}
|
||||||
|
{{- $input = replace $input "style=\"text-align:right\"" "class=\"text-end\"" -}}
|
||||||
|
{{- $class := delimit $main " " -}}
|
||||||
|
{{- $old := "<table>" -}}
|
||||||
|
{{- $new := printf "<table class=\"table %s\">" $class -}}
|
||||||
|
{{ $input := replace $input $old $new -}}
|
||||||
|
{{- with $responsive }}<div class="{{ delimit . " " }}">{{ end -}}
|
||||||
|
{{ $input | safeHTML }}
|
||||||
|
{{- with $responsive }}</div>{{ 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,7 @@
|
|||||||
{{ $items := len (findRE "<li.*?>(.|\n)*?</li>" .TableOfContents) -}}
|
{{- $page := .page -}}
|
||||||
{{ if (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">
|
{{ $items := len (findRE "<li.*?>(.|\n)*?</li>" $page.TableOfContents) -}}
|
||||||
|
{{ if gt $items 1 -}}
|
||||||
<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>
|
|
||||||
{{ 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 -}}
|
||||||
@@ -17,18 +25,18 @@
|
|||||||
{{- $js = $bundle | resources.ExecuteAsTemplate $filename $page -}}
|
{{- $js = $bundle | resources.ExecuteAsTemplate $filename $page -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- if and (not site.IsServer) $header -}}
|
{{- if and (not hugo.IsServer) $header -}}
|
||||||
{{- $pc := site.Config.Privacy.GoogleAnalytics -}}
|
{{- $pc := site.Config.Privacy.GoogleAnalytics -}}
|
||||||
{{- if and (not $pc.Disable) (hasPrefix site.GoogleAnalytics "G-") }}
|
{{- if and (not $pc.Disable) (hasPrefix site.Config.Services.GoogleAnalytics.ID "G-") }}
|
||||||
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.GoogleAnalytics }}"></script>
|
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.Config.Services.GoogleAnalytics.ID }}"></script>
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- 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,16 +7,18 @@
|
|||||||
|
|
||||||
{{ 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="col-12 col-md-8 p-0">
|
||||||
<div class="fs-3 fw-bold">{{ or .Site.Params.footer.socialTitle .Site.Params.social.title }}</div>
|
<div class="fs-3 fw-bold">{{ or .Site.Params.footer.socialTitle .Site.Params.social.title }}</div>
|
||||||
<p>{{ or .Site.Params.footer.socialCaption .Site.Params.social.caption }}</p>
|
<p>{{ or .Site.Params.footer.socialCaption .Site.Params.social.caption }}</p>
|
||||||
{{ end }}
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col text-sm-start text-center col-sm-6 col-md-4">
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col col-6 text-sm-start">
|
||||||
{{ range .Site.Menus.social -}}
|
{{ 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">
|
<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" }}
|
{{ if hasPrefix .Pre "<i" }}
|
||||||
@@ -27,7 +29,7 @@
|
|||||||
</a>
|
</a>
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
</div>
|
</div>
|
||||||
<div class="col col-md-2 d-none d-md-block"></div>
|
</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 -}}
|
||||||
|
@@ -12,8 +12,10 @@
|
|||||||
|
|
||||||
{{- $thumbnail := (or (and (reflect.IsMap .Params.Thumbnail) .Params.Thumbnail.url) .Params.Thumbnail) -}}
|
{{- $thumbnail := (or (and (reflect.IsMap .Params.Thumbnail) .Params.Thumbnail.url) .Params.Thumbnail) -}}
|
||||||
{{ with $thumbnail -}}
|
{{ with $thumbnail -}}
|
||||||
{{ $img := partial "utilities/GetImage.html" (dict "url" .) -}}
|
{{- $res := partial "utilities/GetImage.html" (dict "url" .) -}}
|
||||||
{{ with $img -}}
|
{{- $img := "" -}}
|
||||||
|
{{ with $res }}{{ $img = $res.resource }}{{ end }}
|
||||||
|
{{ with $img -}}
|
||||||
{{ $dim := "1280x640" -}}
|
{{ $dim := "1280x640" -}}
|
||||||
{{ $scaled := (.Fill (printf "%s jpg" $dim)) -}}
|
{{ $scaled := (.Fill (printf "%s jpg" $dim)) -}}
|
||||||
{{- $scaled = $scaled | resources.Copy (replace $img.RelPermalink ".jpg" (printf "-%s.jpg" $dim)) -}}
|
{{- $scaled = $scaled | resources.Copy (replace $img.RelPermalink ".jpg" (printf "-%s.jpg" $dim)) -}}
|
||||||
|
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" -}}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user