mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 10:04:22 +00:00
Compare commits
1803 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
31cf9eb577 | ||
![]() |
9a8ebd3558 | ||
![]() |
148c587283 | ||
![]() |
7c9c4cbabb | ||
![]() |
20f14934c2 | ||
![]() |
840e67d12d | ||
![]() |
8ef57a265e | ||
![]() |
8677357450 | ||
![]() |
79ac2dae4f | ||
![]() |
20cad07a0b | ||
![]() |
2c97af2fef | ||
![]() |
95ded6296c | ||
![]() |
3b46095821 | ||
![]() |
1bf4e74e56 | ||
![]() |
9b75b46c49 | ||
![]() |
107077f5ec | ||
![]() |
528b70bfa2 | ||
![]() |
75ab4625b1 | ||
![]() |
bac3054ec2 | ||
![]() |
d63fd5f212 | ||
![]() |
c8b9df7ae5 | ||
![]() |
12daa88f39 | ||
![]() |
c5d895388b | ||
![]() |
5678d2cab5 | ||
![]() |
99d939a3a0 | ||
![]() |
c9a87e8514 | ||
![]() |
af08829f7d | ||
![]() |
28a59a4eac | ||
![]() |
727387931c | ||
![]() |
13a085099c | ||
![]() |
473f390ee6 | ||
![]() |
65cfc0933a | ||
![]() |
321e7f6df5 | ||
![]() |
dda623f040 | ||
![]() |
80d1147d08 | ||
![]() |
b28abcd6f2 | ||
![]() |
93885492d7 | ||
![]() |
ed5daa780d | ||
![]() |
00501edadd | ||
![]() |
fdb1472f9e | ||
![]() |
b176fbd365 | ||
![]() |
f2b0e49aa9 | ||
![]() |
5b8df68db5 | ||
![]() |
fce4b7dde9 | ||
![]() |
ba43672bf6 | ||
![]() |
1b93485064 | ||
![]() |
8d9f12d676 | ||
![]() |
1a89aa39c2 | ||
![]() |
6b60188702 | ||
![]() |
5e410040cc | ||
![]() |
b00f39f850 | ||
![]() |
7e396c5a4d | ||
![]() |
4d43f0bb9b | ||
![]() |
3512bb9dfe | ||
![]() |
7dde897e41 | ||
![]() |
f2cad0fe88 | ||
![]() |
eed2d8f68d | ||
![]() |
d1aebe2fbe | ||
![]() |
013614b149 | ||
![]() |
d55446d5cc | ||
![]() |
80a225e814 | ||
![]() |
c7e63308c5 | ||
![]() |
7bc712b5f3 | ||
![]() |
cf95a84f2a | ||
![]() |
b1e35836f9 | ||
![]() |
a794ab5c52 | ||
![]() |
8fd7d9cde9 | ||
![]() |
93f2f04bae | ||
![]() |
b2a8d78c73 | ||
![]() |
025afc37d4 | ||
![]() |
be5ca21019 | ||
![]() |
69584215b8 | ||
![]() |
e6cef96a03 | ||
![]() |
a6d4a71500 | ||
![]() |
388d8a7e27 | ||
![]() |
9df1b1b981 | ||
![]() |
82d426c14b | ||
![]() |
a2c5073a3d | ||
![]() |
11077b9178 | ||
![]() |
6e8011f111 | ||
![]() |
c6e23b58c5 | ||
![]() |
3267f1165e | ||
![]() |
e46d4764fd | ||
![]() |
2fb4829f68 | ||
![]() |
6009c45e5a | ||
![]() |
69505a1dca | ||
![]() |
c195d903c7 | ||
![]() |
07c1422bbb | ||
![]() |
6be688515d | ||
![]() |
5d83f12b35 | ||
![]() |
008c6a099a | ||
![]() |
125b72177c | ||
![]() |
75054731f4 | ||
![]() |
d36ce74eae | ||
![]() |
2433fa8a66 | ||
![]() |
adbff26d18 | ||
![]() |
bdcdeb9b55 | ||
![]() |
0636708dac | ||
![]() |
eb65b94ef4 | ||
![]() |
01b51f6ef1 | ||
![]() |
89b81cf1b8 | ||
![]() |
54396f4dc0 | ||
![]() |
0660a4c6e9 | ||
![]() |
cba7768e39 | ||
![]() |
a040ab42c3 | ||
![]() |
fa6c01a380 | ||
![]() |
ed6c415bb2 | ||
![]() |
59c71d9bb2 | ||
![]() |
7dde1b3bb7 | ||
![]() |
1d994fa1fe | ||
![]() |
5a9191fea5 | ||
![]() |
790b3ac3d2 | ||
![]() |
f298dd2979 | ||
![]() |
df7a7e2d3d | ||
![]() |
e28ca112de | ||
![]() |
a34dc0f4a0 | ||
![]() |
3eb682b0d9 | ||
![]() |
d824ab39dd | ||
![]() |
5d27d602d2 | ||
![]() |
66f3fd227b | ||
![]() |
e8f38fc73c | ||
![]() |
6f5756f3bf | ||
![]() |
a56b1d6614 | ||
![]() |
967492de76 | ||
![]() |
2b876fbb2e | ||
![]() |
8a0b0df3ff | ||
![]() |
20f4e959d6 | ||
![]() |
a46317f1d2 | ||
![]() |
d264c9154e | ||
![]() |
96dacd5838 | ||
![]() |
5a6f58a96d | ||
![]() |
05e57ff255 | ||
![]() |
cd32208639 | ||
![]() |
ecfd56f2f8 | ||
![]() |
4bfba0c633 | ||
![]() |
02251b0b03 | ||
![]() |
cf486aa9c7 | ||
![]() |
1dafc6a881 | ||
![]() |
4c70245e4f | ||
![]() |
b2a79c2732 | ||
![]() |
8ad9f92752 | ||
![]() |
3cf45385db | ||
![]() |
83c697a7ae | ||
![]() |
6b62c2c701 | ||
![]() |
428e10bc5a | ||
![]() |
6deeeaf9d9 | ||
![]() |
2c191482ab | ||
![]() |
cc934652cc | ||
![]() |
7641184189 | ||
![]() |
fae0dff78b | ||
![]() |
d0b7922ebb | ||
![]() |
6433ba14aa | ||
![]() |
bf8cbee305 | ||
![]() |
af24d3ed3d | ||
![]() |
942323218c | ||
![]() |
d1baf26c08 | ||
![]() |
8aa288d9aa | ||
![]() |
9c71856e49 | ||
![]() |
9300a794b1 | ||
![]() |
6d57058d9e | ||
![]() |
b6e5b24514 | ||
![]() |
f1d99aa191 | ||
![]() |
5597ad8c7d | ||
![]() |
cce1a68c0b | ||
![]() |
b3116d0c86 | ||
![]() |
0540f4f0ae | ||
![]() |
172fbcfbfb | ||
![]() |
2cfb171f9e | ||
![]() |
d1e589f60c | ||
![]() |
e866263fd0 | ||
![]() |
f749f7311c | ||
![]() |
29f0caf070 | ||
![]() |
b3a16435f8 | ||
![]() |
2a17b0faa1 | ||
![]() |
b29206df52 | ||
![]() |
88210f6f0f | ||
![]() |
571353a1f0 | ||
![]() |
22a2b3e308 | ||
![]() |
c91642cbb8 | ||
![]() |
12f334292a | ||
![]() |
9394ae46e8 | ||
![]() |
aa82875644 | ||
![]() |
6245c70de5 | ||
![]() |
51a85ac675 | ||
![]() |
a9d62233b4 | ||
![]() |
b9ff083fee | ||
![]() |
a8efa359f9 | ||
![]() |
0be27d429a | ||
![]() |
e6de1f6d5c | ||
![]() |
7db1b24358 | ||
![]() |
7b68f9b26c | ||
![]() |
9c0427be0d | ||
![]() |
da32ba604a | ||
![]() |
011c83bfc9 | ||
![]() |
5bc0364110 | ||
![]() |
b4e09ac819 | ||
![]() |
baa8b31078 | ||
![]() |
54c3afaa31 | ||
![]() |
00bc00d877 | ||
![]() |
9f03167c1e | ||
![]() |
b7add5ed8d | ||
![]() |
d78df1cd0a | ||
![]() |
b231f486b0 | ||
![]() |
0601a8583f | ||
![]() |
d9190b121f | ||
![]() |
d568cdadf1 | ||
![]() |
c17d98e073 | ||
![]() |
7d3a878c56 | ||
![]() |
f7d5605d2d | ||
![]() |
306a94261b | ||
![]() |
484dc39338 | ||
![]() |
dca9b3a1da | ||
![]() |
f11f9f0d71 | ||
![]() |
e10d41cb76 | ||
![]() |
b929b8e12a | ||
![]() |
f4d8ab82f1 | ||
![]() |
7aa17ef998 | ||
![]() |
aa2da9a398 | ||
![]() |
d920da77f2 | ||
![]() |
5920c352bd | ||
![]() |
934ea784cc | ||
![]() |
2577c24b08 | ||
![]() |
da74fc8a93 | ||
![]() |
1a2b4a1b02 | ||
![]() |
da7dfc58ef | ||
![]() |
c14b8279b6 | ||
![]() |
ebf5c7e0ac | ||
![]() |
86aa6a2041 | ||
![]() |
f0f7f13293 | ||
![]() |
d71a0af48d | ||
![]() |
2037a93c84 | ||
![]() |
40cdde008d | ||
![]() |
fad037d8f8 | ||
![]() |
b4a973dbf7 | ||
![]() |
ffc19cd7ce | ||
![]() |
68a7f37439 | ||
![]() |
a5a73fd188 | ||
![]() |
f030fa8140 | ||
![]() |
f2fefdaa9e | ||
![]() |
1a585304f3 | ||
![]() |
05e1f58c1a | ||
![]() |
dda87bb14f | ||
![]() |
2bce17eb46 | ||
![]() |
5356483d71 | ||
![]() |
a465c23cb3 | ||
![]() |
26c2519c8b | ||
![]() |
8ee63e6a8b | ||
![]() |
c71895ffcf | ||
![]() |
e52ae48f28 | ||
![]() |
340f591c09 | ||
![]() |
e873fed3f2 | ||
![]() |
b60dc747c6 | ||
![]() |
996d31ca5b | ||
![]() |
6bbe0a166d | ||
![]() |
48d500776a | ||
![]() |
4e3cfb2e86 | ||
![]() |
5361d1d182 | ||
![]() |
4a0d0aa896 | ||
![]() |
cab639f687 | ||
![]() |
2c4a905d36 | ||
![]() |
3119cf064b | ||
![]() |
a3b678e88b | ||
![]() |
e03b82a0d1 | ||
![]() |
546186670d | ||
![]() |
b02e9f864c | ||
![]() |
f7ba0acf96 | ||
![]() |
214856b97f | ||
![]() |
5410a0dc5f | ||
![]() |
a1049bce2c | ||
![]() |
660f2bce9f | ||
![]() |
065c0a0ab2 | ||
![]() |
61cb0c50da | ||
![]() |
c897cd3860 | ||
![]() |
184ccea8c2 | ||
![]() |
d5b8e6af8b | ||
![]() |
ff120808ad | ||
![]() |
ceaa91b511 | ||
![]() |
1f0ba55904 | ||
![]() |
37a97bf2a5 | ||
![]() |
109ccc1599 | ||
![]() |
cbdf348bd1 | ||
![]() |
d17079951c | ||
![]() |
a69402a205 | ||
![]() |
2b4472d9fe | ||
![]() |
6e9b54a5ff | ||
![]() |
10e3e5358e | ||
![]() |
3ff8eb8f14 | ||
![]() |
e4fa0716aa | ||
![]() |
fd3522eb54 | ||
![]() |
80d7c3e9cb | ||
![]() |
0df7bedbab | ||
![]() |
51cdae471f | ||
![]() |
ce79ef402e | ||
![]() |
d63c838799 | ||
![]() |
e209704acf | ||
![]() |
01d19609c4 | ||
![]() |
ee3bdfc9a0 | ||
![]() |
a0db71d3ff | ||
![]() |
fc40ee55c3 | ||
![]() |
2f61fcabf2 | ||
![]() |
9d30a98ff3 | ||
![]() |
b3c0b7a4e8 | ||
![]() |
3705aea23d | ||
![]() |
5a7f215604 | ||
![]() |
2608545104 | ||
![]() |
a78361ec9f | ||
![]() |
9b79092328 | ||
![]() |
41198b04be | ||
![]() |
c4684f0073 | ||
![]() |
063cabc610 | ||
![]() |
72304ff12e | ||
![]() |
d7e0aacd9a | ||
![]() |
3add028519 | ||
![]() |
1ef26ef98b | ||
![]() |
5d56f2bd01 | ||
![]() |
71c57b277b | ||
![]() |
38afd31cff | ||
![]() |
7a460ca0de | ||
![]() |
f3d5fef59d | ||
![]() |
10f1519c33 | ||
![]() |
aecb6d45ff | ||
![]() |
1c763939b9 | ||
![]() |
fbabf9c02c | ||
![]() |
d584761891 | ||
![]() |
65e85e5991 | ||
![]() |
ae665652ca | ||
![]() |
d5c494d510 | ||
![]() |
4760d5562a | ||
![]() |
455af2d04a | ||
![]() |
e13adaa5ca | ||
![]() |
cae4d7702d | ||
![]() |
ed6001f1bc | ||
![]() |
18e1b4032a | ||
![]() |
67b7871464 | ||
![]() |
1be67ff695 | ||
![]() |
8f3a4a425d | ||
![]() |
166010a3a1 | ||
![]() |
dd6f54cbbe | ||
![]() |
bc50cce9bb | ||
![]() |
100d1d9aa4 | ||
![]() |
56d5191734 | ||
![]() |
81e0a8ee80 | ||
![]() |
7af4a9c0f4 | ||
![]() |
769faa5877 | ||
![]() |
c1510e8dfe | ||
![]() |
632a29ed35 | ||
![]() |
04cf43eaf9 | ||
![]() |
34a25d9034 | ||
![]() |
7841145c72 | ||
![]() |
156ef8cb1f | ||
![]() |
3936dab5cf | ||
![]() |
aa5118a2ec | ||
![]() |
e8ff6841b2 | ||
![]() |
78d3fc96b3 | ||
![]() |
f4054126b3 | ||
![]() |
380363663c | ||
![]() |
3bb8b54286 | ||
![]() |
92975614b8 | ||
![]() |
f7a769d894 | ||
![]() |
4d8648720d | ||
![]() |
e9bbb411c0 | ||
![]() |
fcc6866980 | ||
![]() |
ce7e613017 | ||
![]() |
eb4f49c62b | ||
![]() |
084b8c30ad | ||
![]() |
a11085eb4b | ||
![]() |
f27b426089 | ||
![]() |
ddc2a16c68 | ||
![]() |
343a4856c3 | ||
![]() |
ba47834a9f | ||
![]() |
ebcf0633f1 | ||
![]() |
54307f7daa | ||
![]() |
f7903cec97 | ||
![]() |
78362323ed | ||
![]() |
8463bfa73b | ||
![]() |
cd3dd2ce9c | ||
![]() |
9966439c14 | ||
![]() |
59aca5c4c9 | ||
![]() |
edc3d911b9 | ||
![]() |
65c20e3708 | ||
![]() |
2eda22473d | ||
![]() |
1bff1e4aa8 | ||
![]() |
c099bfdb8f | ||
![]() |
527d206612 | ||
![]() |
6633ba5938 | ||
![]() |
fda61c1809 | ||
![]() |
50d6cc2c78 | ||
![]() |
2406fb759d | ||
![]() |
a5e599f3e4 | ||
![]() |
febe070629 | ||
![]() |
d1ef5772ed | ||
![]() |
3c9fc55fb1 | ||
![]() |
b7581d5a08 | ||
![]() |
1fc30d0012 | ||
![]() |
a7ae848186 | ||
![]() |
03c5d625b0 | ||
![]() |
59bb699df3 | ||
![]() |
985bf47a07 | ||
![]() |
2b172f9248 | ||
![]() |
b5ce9eefe8 | ||
![]() |
7c581836c5 | ||
![]() |
89d804caa6 | ||
![]() |
74f0fe3188 | ||
![]() |
3e4b543c38 | ||
![]() |
38bcc60fd1 | ||
![]() |
5250b62739 | ||
![]() |
1b33f198f0 | ||
![]() |
9d59c0ba0d | ||
![]() |
22bfb75c82 | ||
![]() |
2b9a0aa085 | ||
![]() |
d36c70b98e | ||
![]() |
941c0f4954 | ||
![]() |
94867de265 | ||
![]() |
02d4aafd10 | ||
![]() |
fcb64b9e77 | ||
![]() |
ed764e14f5 | ||
![]() |
0b20d24918 | ||
![]() |
00ef30b768 | ||
![]() |
cb6402ac92 | ||
![]() |
89758426a9 | ||
![]() |
d48c6ab314 | ||
![]() |
aa5e6c6189 | ||
![]() |
5bf7712307 | ||
![]() |
ddb847c974 | ||
![]() |
9e52107dbf | ||
![]() |
e1011919a5 | ||
![]() |
7c3aed4822 | ||
![]() |
dbe2c6bb59 | ||
![]() |
9e644185f2 | ||
![]() |
9a12ce32d3 | ||
![]() |
66d6a89431 | ||
![]() |
b7a605ea9c | ||
![]() |
a2b1cca1ab | ||
![]() |
b8cd3dbee6 | ||
![]() |
fe46126e19 | ||
![]() |
a439623119 | ||
![]() |
86713488b4 | ||
![]() |
fbaa5bcfa7 | ||
![]() |
23deaf6df3 | ||
![]() |
4db9c6fde8 | ||
![]() |
67ad2fe076 | ||
![]() |
00e169512c | ||
![]() |
3171f065eb | ||
![]() |
5dcb44b2d0 | ||
![]() |
b54c415f39 | ||
![]() |
7ecc818ca1 | ||
![]() |
85fdf28bdc | ||
![]() |
1c1f4be1f9 | ||
![]() |
e4f949f67b | ||
![]() |
2fe3c69a2d | ||
![]() |
08b3725307 | ||
![]() |
664fb87e4e | ||
![]() |
9bf90dfa98 | ||
![]() |
867f684b6a | ||
![]() |
3bcb2138c1 | ||
![]() |
693c2be098 | ||
![]() |
da63bcb4eb | ||
![]() |
564a62e780 | ||
![]() |
01e4837669 | ||
![]() |
0a2a1a8b1a | ||
![]() |
154ddfe1cc | ||
![]() |
14786383ec | ||
![]() |
e5aae017a6 | ||
![]() |
68ceb8c71e | ||
![]() |
dcd94a7137 | ||
![]() |
1e75a3675e | ||
![]() |
6c301e2512 | ||
![]() |
59c06c7f02 | ||
![]() |
85aad4c431 | ||
![]() |
ade4df79ed | ||
![]() |
ec12b41293 | ||
![]() |
7216c88e0b | ||
![]() |
fac87c69e2 | ||
![]() |
62d4fdeb32 | ||
![]() |
91da0c7d0d | ||
![]() |
b116c2582f | ||
![]() |
276307fb5c | ||
![]() |
54ae613298 | ||
![]() |
a22040f4e3 | ||
![]() |
630cc55361 | ||
![]() |
2aacace6ad | ||
![]() |
91714727c3 | ||
![]() |
8e21f36619 | ||
![]() |
baa88ca957 | ||
![]() |
1874fc9b47 | ||
![]() |
6c9543d05a | ||
![]() |
a614c35f05 | ||
![]() |
0d7bc8e7d8 | ||
![]() |
39b3d500d0 | ||
![]() |
03200f3828 | ||
![]() |
044a5eadcd | ||
![]() |
e924bd96ec | ||
![]() |
e234240e74 | ||
![]() |
33473b0db1 | ||
![]() |
cfad29f9d4 | ||
![]() |
7ffdbea3ec | ||
![]() |
2c2fb4d305 | ||
![]() |
709172c506 | ||
![]() |
8727ee50ee | ||
![]() |
04d4d20ba6 | ||
![]() |
e77ea9358e | ||
![]() |
6263dc0649 | ||
![]() |
52eccfc384 | ||
![]() |
13085416e2 | ||
![]() |
f7efa99fc3 | ||
![]() |
32d6b8844a | ||
![]() |
1c4287a3ed | ||
![]() |
354fa85f38 | ||
![]() |
78fb0760f3 | ||
![]() |
dfdda4d27f | ||
![]() |
6d8f90bdce | ||
![]() |
3e531da29c | ||
![]() |
6065ebb6b4 | ||
![]() |
75373935f1 | ||
![]() |
1d5784a4d1 | ||
![]() |
5df94ffe33 | ||
![]() |
6aeaa8812a | ||
![]() |
b1f8044e02 | ||
![]() |
09fc0991bd | ||
![]() |
a7b70efef0 | ||
![]() |
4c3df8e769 | ||
![]() |
15418f7bdc | ||
![]() |
0a2bc468e5 | ||
![]() |
df8bcff315 | ||
![]() |
56e992ba7a | ||
![]() |
e7a6582229 | ||
![]() |
02946a9c9b | ||
![]() |
a5ca5fcff1 | ||
![]() |
b412c03b72 | ||
![]() |
22678d4ecc | ||
![]() |
d84099e41f | ||
![]() |
853aac57a6 | ||
![]() |
a5bddcb033 | ||
![]() |
3a7178166f | ||
![]() |
3f89bfb444 | ||
![]() |
e5ba3a94a4 | ||
![]() |
dc7af61a3a | ||
![]() |
da560a0275 | ||
![]() |
41cf694792 | ||
![]() |
59f42c0dbd | ||
![]() |
b2302e2e9f | ||
![]() |
8e6c0f8ade | ||
![]() |
ba92505daa | ||
![]() |
e6e93888f6 | ||
![]() |
e92598dc5b | ||
![]() |
697c6a1aae | ||
![]() |
2487001b0d | ||
![]() |
7cd722bcc2 | ||
![]() |
e0b7d7c3bb | ||
![]() |
23470b705d | ||
![]() |
70a624a9f3 | ||
![]() |
bce38385ab | ||
![]() |
8848b126ca | ||
![]() |
45a90fbe9d | ||
![]() |
d2929bf776 | ||
![]() |
3bab1c1250 | ||
![]() |
e59d4696da | ||
![]() |
f44f74f34c | ||
![]() |
22474722ad | ||
![]() |
99df503a90 | ||
![]() |
0df055db8c | ||
![]() |
f73936d056 | ||
![]() |
e1c976e09a | ||
![]() |
21579f7a40 | ||
![]() |
693882aff1 | ||
![]() |
6b42ed0845 | ||
![]() |
ed9373bc7e | ||
![]() |
0d2f5cc553 | ||
![]() |
12f6e9e552 | ||
![]() |
999c7a8fff | ||
![]() |
a5494f4681 | ||
![]() |
404a5500df | ||
![]() |
4442833c1b | ||
![]() |
4cb800d485 | ||
![]() |
f1598c3c4b | ||
![]() |
6b9915a425 | ||
![]() |
59befa908f | ||
![]() |
af68fb24b5 | ||
![]() |
73870663f6 | ||
![]() |
ac48cf6b57 | ||
![]() |
6a5d4a1363 | ||
![]() |
8be3996fb2 | ||
![]() |
bd7d2ffb09 | ||
![]() |
9375248a09 | ||
![]() |
713d1920a3 | ||
![]() |
adc1212cd7 | ||
![]() |
b8803d75fe | ||
![]() |
8006acb8c9 | ||
![]() |
7be7e3b7f0 | ||
![]() |
a6c18c91e5 | ||
![]() |
81c531e2b5 | ||
![]() |
d66910740f | ||
![]() |
3323bf500d | ||
![]() |
3cc34d18e0 | ||
![]() |
aeb050440f | ||
![]() |
a9a6bd0d31 | ||
![]() |
2b921def52 | ||
![]() |
f5a1a97383 | ||
![]() |
c87b96f8f0 | ||
![]() |
1def105bda | ||
![]() |
1d67a30ece | ||
![]() |
1a3d50ca17 | ||
![]() |
ce26722c96 | ||
![]() |
f2aab26b6e | ||
![]() |
10e086594b | ||
![]() |
30ea77182d | ||
![]() |
e899d7d39a | ||
![]() |
3b2e780a20 | ||
![]() |
d443d89616 | ||
![]() |
c981ac45d3 | ||
![]() |
ceabca3a43 | ||
![]() |
99b6fcbc42 | ||
![]() |
dde79bf5d0 | ||
![]() |
ff3e957558 | ||
![]() |
1466c7a927 | ||
![]() |
1a7c18d209 | ||
![]() |
2c8ed7c494 | ||
![]() |
0526b4c5e0 | ||
![]() |
c2f4e6bc48 | ||
![]() |
0cc5fcb33a | ||
![]() |
e461a9564f | ||
![]() |
183879d51c | ||
![]() |
cddae05b53 | ||
![]() |
67d831d898 | ||
![]() |
d726323220 | ||
![]() |
f76fea84cc | ||
![]() |
6ec24e12f7 | ||
![]() |
cf27cce44d | ||
![]() |
6ea22d121f | ||
![]() |
2d7bfaa9dc | ||
![]() |
0e62cc4fec | ||
![]() |
ae0307092f | ||
![]() |
2ebf6fe7fa | ||
![]() |
f9805de74c | ||
![]() |
20b7b6b95c | ||
![]() |
c2beca3504 | ||
![]() |
7414a1badf | ||
![]() |
cd5f7e08c4 | ||
![]() |
fd804fa29a | ||
![]() |
08c310c59e | ||
![]() |
46bde0918f | ||
![]() |
a77c3aa347 | ||
![]() |
d27c04dc64 | ||
![]() |
b0c8326255 | ||
![]() |
99a35a3ffd | ||
![]() |
c5673efea2 | ||
![]() |
c3b48e0033 | ||
![]() |
5aa57dd402 | ||
![]() |
d919d3f068 | ||
![]() |
38ad418005 | ||
![]() |
ba50786118 | ||
![]() |
aee3cb3e03 | ||
![]() |
61430b07e2 | ||
![]() |
5d393598c5 | ||
![]() |
4b0c075b53 | ||
![]() |
2b5b6434da | ||
![]() |
ae0877037a | ||
![]() |
64a12da2e6 | ||
![]() |
6865fa40f7 | ||
![]() |
79632aeed0 | ||
![]() |
6f03f3e5fd | ||
![]() |
df53150972 | ||
![]() |
9282cd630d | ||
![]() |
a3eb2fc7cc | ||
![]() |
4e39d03240 | ||
![]() |
8cadb30179 | ||
![]() |
d2c02ca016 | ||
![]() |
1bbfba32a5 | ||
![]() |
cf59cc3a49 | ||
![]() |
897db61ee2 | ||
![]() |
ac14ac23fb | ||
![]() |
0f1bc34d37 | ||
![]() |
26d318356f | ||
![]() |
9f4a0d35b6 | ||
![]() |
a201be6487 | ||
![]() |
380ebcd1d8 | ||
![]() |
c06499033d | ||
![]() |
0874957993 | ||
![]() |
6019c7412f | ||
![]() |
30c300cabf | ||
![]() |
46f11f02ab | ||
![]() |
71e6029117 | ||
![]() |
5c67da7882 | ||
![]() |
af4f6de4b9 | ||
![]() |
9b173d6c68 | ||
![]() |
2f4fb5230d | ||
![]() |
9144a1fec3 | ||
![]() |
4192af1d46 | ||
![]() |
0e72124cdc | ||
![]() |
8300b9afee | ||
![]() |
5f61e74dfb | ||
![]() |
44b3ccd21e | ||
![]() |
29e54ce7ec | ||
![]() |
f2835209c6 | ||
![]() |
a0a1b8a9c0 | ||
![]() |
83f6ec1cb9 | ||
![]() |
af5b07202e | ||
![]() |
0bcfa59a12 | ||
![]() |
e00095f68d | ||
![]() |
5cbd2a1a82 | ||
![]() |
9b5a45a3f6 | ||
![]() |
325500620a | ||
![]() |
134bfa1a0b | ||
![]() |
df593859fa | ||
![]() |
4204fae5a0 | ||
![]() |
cc12c49143 | ||
![]() |
f09694da70 | ||
![]() |
d923df2156 | ||
![]() |
71d1db456a | ||
![]() |
ec0eaa2faa | ||
![]() |
836cd21df2 | ||
![]() |
7a4c364b49 | ||
![]() |
79f10ba724 | ||
![]() |
d0ea4ecd1b | ||
![]() |
867e448e21 | ||
![]() |
50a07d368f | ||
![]() |
21e2435350 | ||
![]() |
0dab66f24c | ||
![]() |
827595ded2 | ||
![]() |
fda99f18e8 | ||
![]() |
c9b76c9bc4 | ||
![]() |
3e2e2de482 | ||
![]() |
d648873e21 | ||
![]() |
2490b26277 | ||
![]() |
66ccd7a71d | ||
![]() |
4ef440d499 | ||
![]() |
e334dd1d10 | ||
![]() |
c7e62acf9d | ||
![]() |
f44adf92b4 | ||
![]() |
87cd07801d | ||
![]() |
24e96e2724 | ||
![]() |
a5f5a9ff24 | ||
![]() |
dd19b8a236 | ||
![]() |
0a80f40c07 | ||
![]() |
772cc97a8b | ||
![]() |
ce7f1d6c26 | ||
![]() |
a41994fc0f | ||
![]() |
6e42a729e7 | ||
![]() |
33a634e4fc | ||
![]() |
fc61c52939 | ||
![]() |
5e4ff5b780 | ||
![]() |
2e5903abed | ||
![]() |
62db8f574f | ||
![]() |
d44ee41268 | ||
![]() |
6baadfef75 | ||
![]() |
fbec6a9b35 | ||
![]() |
197d9359dd | ||
![]() |
fa083e0bde | ||
![]() |
1cf427fddd | ||
![]() |
819e9e89dc | ||
![]() |
900632c5f5 | ||
![]() |
dc66a4334f | ||
![]() |
badbe334df | ||
![]() |
fa334d6e84 | ||
![]() |
9580d4e72e | ||
![]() |
252257be8b | ||
![]() |
04c253995f | ||
![]() |
8c007fd627 | ||
![]() |
afcd59e1a4 | ||
![]() |
bba0ecad63 | ||
![]() |
c1058ac665 | ||
![]() |
b891fcdc4f | ||
![]() |
3bea9dfc8f | ||
![]() |
4d99d7dfc4 | ||
![]() |
373b8eddeb | ||
![]() |
d463d1feb3 | ||
![]() |
48a96a8d79 | ||
![]() |
0e1128aba3 | ||
![]() |
c3be4957ba | ||
![]() |
3618aadf74 | ||
![]() |
74a8c36c74 | ||
![]() |
49aa52b36f | ||
![]() |
ee95a05b48 | ||
![]() |
134e544718 | ||
![]() |
306a767686 | ||
![]() |
47ca9d303a | ||
![]() |
6fc68fe540 | ||
![]() |
9195bd7f4e | ||
![]() |
4ef503e07f | ||
![]() |
4711139513 | ||
![]() |
fc56508b91 | ||
![]() |
232c78364f | ||
![]() |
d85e16f1fa | ||
![]() |
562b386cb5 | ||
![]() |
daab751299 | ||
![]() |
9e82ff8de5 | ||
![]() |
52b2c23565 | ||
![]() |
617fd688db | ||
![]() |
2cf7fff3ba | ||
![]() |
a34d3fde1f | ||
![]() |
be054a723e | ||
![]() |
fc43f6a52e | ||
![]() |
195d3cb69b | ||
![]() |
92c69b6011 | ||
![]() |
ea78805587 | ||
![]() |
76e90ea321 | ||
![]() |
b300758aa5 | ||
![]() |
68c44c55d4 | ||
![]() |
228a89f61d | ||
![]() |
2645453de2 | ||
![]() |
5ce069a4c0 | ||
![]() |
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 | ||
![]() |
860b12a63a | ||
![]() |
50708e2f89 | ||
![]() |
ad24e44041 | ||
![]() |
ad143b87c9 | ||
![]() |
f17914a3ef | ||
![]() |
3feeff793e | ||
![]() |
d9152fa8ea | ||
![]() |
77e3698b04 | ||
![]() |
d6366618fd | ||
![]() |
fe603eca70 | ||
![]() |
7904caa902 | ||
![]() |
f4dcb16d24 | ||
![]() |
cce017c646 | ||
![]() |
148615d4b6 | ||
![]() |
6db24d27c8 | ||
![]() |
f5ada35478 | ||
![]() |
d229c84c91 | ||
![]() |
7de46e9d46 | ||
![]() |
76b32c9138 | ||
![]() |
24148c053d | ||
![]() |
23cb30b31c | ||
![]() |
6c9e2dd0ab | ||
![]() |
a9db8747c1 | ||
![]() |
492d3f1a2a | ||
![]() |
fb6ce16433 | ||
![]() |
046a1acfb3 | ||
![]() |
f2ae017562 | ||
![]() |
0de916f4b7 | ||
![]() |
ddc19e40ef | ||
![]() |
9f437c0576 | ||
![]() |
f27773c9cb | ||
![]() |
d1690611d9 | ||
![]() |
6ba7c07a2c | ||
![]() |
259c502bfc | ||
![]() |
f81762bcdc | ||
![]() |
b27264b381 | ||
![]() |
a1c7f32dc5 | ||
![]() |
9454c07019 | ||
![]() |
6e66a147e7 | ||
![]() |
099c985617 | ||
![]() |
a79a12131b | ||
![]() |
0f82471dab | ||
![]() |
9dd947bbe5 | ||
![]() |
6982e05fac | ||
![]() |
edc30ad0cd | ||
![]() |
b9780c5515 | ||
![]() |
9bb6578c61 | ||
![]() |
f360bbf3c6 | ||
![]() |
b749367999 | ||
![]() |
4bcb83a1a4 | ||
![]() |
97e6ec8f99 | ||
![]() |
023e552157 | ||
![]() |
17973c1090 | ||
![]() |
28b5bd8c58 | ||
![]() |
62f94369c9 | ||
![]() |
c9fc53a546 | ||
![]() |
946f8ca938 | ||
![]() |
ffbeb3ede7 | ||
![]() |
6dd4678339 | ||
![]() |
82090571d6 | ||
![]() |
63bfe64e71 | ||
![]() |
5121f92870 | ||
![]() |
1b95b3a265 | ||
![]() |
e8d926eca8 | ||
![]() |
2076081405 | ||
![]() |
da5b898250 | ||
![]() |
cf2f806820 | ||
![]() |
3ebbea542b | ||
![]() |
cce963aaba | ||
![]() |
4e6156cae0 | ||
![]() |
457f122861 | ||
![]() |
d94b54b90f | ||
![]() |
834ac4744b | ||
![]() |
2716af78be | ||
![]() |
3d37a93336 | ||
![]() |
1d976cb7df | ||
![]() |
4e2a5a39e9 | ||
![]() |
63ef832ab4 | ||
![]() |
f480dfa6b4 | ||
![]() |
bd85cabce9 | ||
![]() |
76a5408bda | ||
![]() |
61537afb93 | ||
![]() |
12417340f2 | ||
![]() |
b7533957b2 | ||
![]() |
15512c9448 | ||
![]() |
f69efa7ec8 | ||
![]() |
f3c392760a | ||
![]() |
d59e6ea87b | ||
![]() |
476d36d41c | ||
![]() |
0ccc0c64f4 | ||
![]() |
c5b4db6141 | ||
![]() |
6d0f917a0e | ||
![]() |
497dbe6bce | ||
![]() |
1da8133e09 | ||
![]() |
b3354a35ad | ||
![]() |
827fe5b5e1 | ||
![]() |
fc98b2d768 | ||
![]() |
dd5c6886cd | ||
![]() |
72f6f5d260 | ||
![]() |
d54fd6abf8 | ||
![]() |
5c75a78a3d | ||
![]() |
653c2b9d4b | ||
![]() |
dba91ad560 | ||
![]() |
108672e9a1 | ||
![]() |
18499d12c5 | ||
![]() |
79e97f0b5b | ||
![]() |
dba7ad3e09 | ||
![]() |
d260ada9ec | ||
![]() |
1503937c48 | ||
![]() |
585f4d7c5c | ||
![]() |
b125085315 | ||
![]() |
ee605fb4eb | ||
![]() |
2e14d200ed | ||
![]() |
de28b1b2e3 | ||
![]() |
467815e8d5 | ||
![]() |
98687a0ec1 | ||
![]() |
bc92818c53 | ||
![]() |
3fd6806549 | ||
![]() |
3f76ed2f59 | ||
![]() |
c4b9f91376 | ||
![]() |
c797a2f7a8 | ||
![]() |
c23ceafddd | ||
![]() |
e0b1b0250c | ||
![]() |
ce54758f36 | ||
![]() |
a80efa9578 | ||
![]() |
04bad29146 | ||
![]() |
8816c0c40e | ||
![]() |
b6c9ce4a9f | ||
![]() |
c8d16104d5 | ||
![]() |
215d125032 | ||
![]() |
ccdf4ab391 | ||
![]() |
8bd7d68d2e | ||
![]() |
03f1df615e | ||
![]() |
86ee2d3d2f | ||
![]() |
9c608b0583 | ||
![]() |
bdc84fb36d | ||
![]() |
4dda37ad3d | ||
![]() |
7559010b83 | ||
![]() |
75644ae046 | ||
![]() |
994ffe5ab5 | ||
![]() |
1dc016a6f8 | ||
![]() |
44e3b31c67 | ||
![]() |
3cbfd60098 | ||
![]() |
fc0715aa97 | ||
![]() |
84fff0fe8b | ||
![]() |
153ef9bf1f | ||
![]() |
bbe8f3a32c | ||
![]() |
eb7c9b5c3c | ||
![]() |
90e73ed010 | ||
![]() |
e613017c13 | ||
![]() |
6404bb84ed | ||
![]() |
55ec9acccf | ||
![]() |
0197b79427 | ||
![]() |
828e531b52 | ||
![]() |
23279d9710 | ||
![]() |
0caf473897 | ||
![]() |
8e68534b28 | ||
![]() |
0f07ccfd3f | ||
![]() |
77fad02da7 | ||
![]() |
7a9cb1b2ca | ||
![]() |
d82ed79989 | ||
![]() |
ff82ded064 | ||
![]() |
78167f2d03 | ||
![]() |
80f2084822 | ||
![]() |
a7d67e993f | ||
![]() |
317eab54f8 | ||
![]() |
cb90ef363b | ||
![]() |
f31309f863 | ||
![]() |
a76a692075 | ||
![]() |
f52f758962 | ||
![]() |
bcc3a7877e | ||
![]() |
7b52da5ce0 | ||
![]() |
e7403bd1a4 | ||
![]() |
2881eb4546 | ||
![]() |
c7cc2269ba | ||
![]() |
014158bc63 | ||
![]() |
8dcccb17ad | ||
![]() |
325a222386 | ||
![]() |
9b4f4229f7 | ||
![]() |
3b719bf145 | ||
![]() |
136d5d2e15 | ||
![]() |
1c10a00089 | ||
![]() |
a8d9401de3 | ||
![]() |
e77fa7dfbc | ||
![]() |
8d3c0cc4ce | ||
![]() |
87e04c8c4b | ||
![]() |
e1f4228c31 | ||
![]() |
4cb4bef579 | ||
![]() |
744a0f7248 | ||
![]() |
a1e48ade96 | ||
![]() |
9a2540cf04 | ||
![]() |
399f525a3f | ||
![]() |
f1c99b0ed7 | ||
![]() |
6e14e50dfd | ||
![]() |
a143f90a37 | ||
![]() |
e60b2ec4a1 | ||
![]() |
0250ef68dd | ||
![]() |
71c9c19480 | ||
![]() |
fe108c2621 | ||
![]() |
aa76036470 | ||
![]() |
1475782fa6 | ||
![]() |
aa201d561d | ||
![]() |
35a8776bae | ||
![]() |
1f000d4b23 | ||
![]() |
fa268f4541 | ||
![]() |
f9c8c85578 | ||
![]() |
f7274cd43d | ||
![]() |
b122c40148 | ||
![]() |
05fa3b795c | ||
![]() |
5f329f9271 | ||
![]() |
22f9b9ee68 | ||
![]() |
3713f73da6 | ||
![]() |
efa4933c77 | ||
![]() |
fc9be4cdcf | ||
![]() |
9060fe20fe | ||
![]() |
b4d60df133 | ||
![]() |
09d7904654 | ||
![]() |
a7d35b7b06 | ||
![]() |
f22cffcfc4 | ||
![]() |
b6ae910514 | ||
![]() |
4486dcc814 | ||
![]() |
1452109194 | ||
![]() |
512f39ed8a | ||
![]() |
39c6f922fe | ||
![]() |
e8ccd62987 | ||
![]() |
210237c42f | ||
![]() |
daa2295cea | ||
![]() |
e6d5c16f12 | ||
![]() |
e0dea81ef5 | ||
![]() |
2889f8e8b1 | ||
![]() |
ac6d3504be | ||
![]() |
fdaf7de75e | ||
![]() |
185b8b5f40 | ||
![]() |
603590e95b | ||
![]() |
9cf7825384 | ||
![]() |
d50814ab08 | ||
![]() |
97d77d0dfc | ||
![]() |
4ec4cf28de | ||
![]() |
89f869a55e | ||
![]() |
aaecdb93f8 | ||
![]() |
24ce0ed262 | ||
![]() |
70e2532434 | ||
![]() |
828e0266fc | ||
![]() |
21d7117ca1 | ||
![]() |
13d4be8086 | ||
![]() |
862f0bb95b | ||
![]() |
2d7e32369c | ||
![]() |
ac37e4269c | ||
![]() |
5287ab023a | ||
![]() |
92d1b20678 | ||
![]() |
7b08b0b0ac | ||
![]() |
7047b9c5f5 | ||
![]() |
6c9cb40f1e | ||
![]() |
74901ecbf5 | ||
![]() |
598018feb7 | ||
![]() |
ca6a2bed82 | ||
![]() |
41cabcffd0 | ||
![]() |
3424565e95 | ||
![]() |
7b037bae46 | ||
![]() |
6d257e1aca | ||
![]() |
a3c288fb1d | ||
![]() |
3d33aa41da | ||
![]() |
4ba0104dc8 | ||
![]() |
3ab1d6b123 | ||
![]() |
5cca744f10 | ||
![]() |
c56d35b153 | ||
![]() |
b9df91cad8 | ||
![]() |
d05204a61b | ||
![]() |
c5376ea8c6 | ||
![]() |
ccfb4a8f82 | ||
![]() |
b99a9168bd | ||
![]() |
26fe455cc3 | ||
![]() |
eb66a24177 | ||
![]() |
5610ed67e5 | ||
![]() |
73f14989d8 | ||
![]() |
dc4ca0e862 | ||
![]() |
40b47bc782 | ||
![]() |
1a1c998f3f | ||
![]() |
f5c44ab79f | ||
![]() |
3da6951801 | ||
![]() |
f80241548a | ||
![]() |
65793ef70e | ||
![]() |
754da19c7c | ||
![]() |
73dc16f469 | ||
![]() |
91be9969e4 | ||
![]() |
792d7417b5 | ||
![]() |
ee0a50c4c2 | ||
![]() |
13554854d9 | ||
![]() |
1bdfc42d9e | ||
![]() |
f0ddacabe9 | ||
![]() |
de76908ad9 | ||
![]() |
8f2b4d7a36 | ||
![]() |
1e137fa213 | ||
![]() |
3035caddce | ||
![]() |
a2fc2ddb4c | ||
![]() |
838e73c380 | ||
![]() |
d57a646a27 | ||
![]() |
e27d760123 | ||
![]() |
f74cd1a1e6 | ||
![]() |
c226700c6d | ||
![]() |
c3ca11b05d | ||
![]() |
164d86e5b0 | ||
![]() |
61e692f5ac | ||
![]() |
47d68f7710 | ||
![]() |
6dd6f3bc45 | ||
![]() |
b229d70fab | ||
![]() |
c4d8eb5eea | ||
![]() |
ac6ebc6b57 | ||
![]() |
2a2d564a13 | ||
![]() |
a29c903a95 | ||
![]() |
7b54eb5cdf | ||
![]() |
7e6d2b40a3 | ||
![]() |
b0f0418207 | ||
![]() |
98d7611236 | ||
![]() |
2119b05429 | ||
![]() |
dd15e0eb37 | ||
![]() |
9e1f79a3b5 | ||
![]() |
65be02a837 | ||
![]() |
2a3cab631d | ||
![]() |
e6605764bc | ||
![]() |
9fbccab1b5 | ||
![]() |
6f6908f30b | ||
![]() |
1cf5fad731 | ||
![]() |
75dc930abb | ||
![]() |
8d0adf5a28 | ||
![]() |
7a981950f5 | ||
![]() |
da1c738671 | ||
![]() |
8fbdd27e1c | ||
![]() |
631cd979b0 | ||
![]() |
de9c00a6ec | ||
![]() |
4de1b7dce7 | ||
![]() |
e0f464dc7d | ||
![]() |
5b91945824 | ||
![]() |
e7bdd81136 | ||
![]() |
dbd1b731bc | ||
![]() |
097f041765 | ||
![]() |
f283e329a7 | ||
![]() |
ffbc775446 | ||
![]() |
fedb652e1e | ||
![]() |
503a7f7410 | ||
![]() |
a693508e24 | ||
![]() |
3ba3f13005 | ||
![]() |
66f5904893 | ||
![]() |
27848998d5 | ||
![]() |
e2e9bb421f | ||
![]() |
5e32ac2a04 | ||
![]() |
efbaa6ce4f | ||
![]() |
60821fc0c3 | ||
![]() |
e25edd77b0 | ||
![]() |
2ac190723e | ||
![]() |
775a4a4b2a | ||
![]() |
84d6758b7a | ||
![]() |
1031fbd660 | ||
![]() |
80d43bed2d | ||
![]() |
094ba86f47 | ||
![]() |
244911614d | ||
![]() |
f9eedc7835 | ||
![]() |
cbfb33faf0 | ||
![]() |
2d9e89d40a | ||
![]() |
266b3978fc | ||
![]() |
d2bfd1c48f | ||
![]() |
633da32df5 | ||
![]() |
ea2c28f3fd | ||
![]() |
f66b519f51 | ||
![]() |
6bfb558f73 | ||
![]() |
f0a894091c | ||
![]() |
3bc14eb232 | ||
![]() |
e428666750 | ||
![]() |
2301ea8df6 | ||
![]() |
e9434b327a | ||
![]() |
3b1d5d838e | ||
![]() |
4e5ea23b66 | ||
![]() |
3ad19673a4 | ||
![]() |
bb58394a43 | ||
![]() |
f574888563 | ||
![]() |
7339c262b5 | ||
![]() |
51f9d204b9 | ||
![]() |
3d082a51a3 | ||
![]() |
db6b6238c5 | ||
![]() |
6011e5637a | ||
![]() |
855bf85be6 | ||
![]() |
ec37884f7a | ||
![]() |
057720bca8 | ||
![]() |
e3d607bd25 | ||
![]() |
a9e3a5ecbb | ||
![]() |
f9a3edbf30 | ||
![]() |
c199aa0902 | ||
![]() |
dfafdbb8af | ||
![]() |
c4d8507638 | ||
![]() |
44d5cfa4de | ||
![]() |
5aa3cfb80f | ||
![]() |
22b83dbcf9 |
42
.github/ISSUE_TEMPLATE/bug_report.md
vendored
42
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -7,31 +7,55 @@ assignees: ''
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Describe the bug**
|
<!---
|
||||||
|
Please use the discussion forum (https://github.com/gethinode/hinode/discussions) for questions and troubleshooting. We prefer to use GitHub issues for verified bugs and vetted enhancements.
|
||||||
|
|
||||||
|
When submitting a bug, please include the exact steps to reproduce the issue. Ideally, use a minimal repo created with the Hinode installation steps for either Hugo or npm (https://gethinode.com/docs/getting-started/introduction/#installation). Add any additional commands and configuration adjustments from there on.
|
||||||
|
-->
|
||||||
|
|
||||||
|
## Describe the bug
|
||||||
|
|
||||||
A clear and concise description of what the bug is.
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
**To reproduce**
|
## To reproduce
|
||||||
|
|
||||||
Steps to reproduce the behavior:
|
Steps to reproduce the behavior:
|
||||||
1. Go to '...'
|
1. Go to '...'
|
||||||
2. Click on '....'
|
2. Click on '....'
|
||||||
3. Scroll down to '....'
|
3. Scroll down to '....'
|
||||||
4. See error
|
4. See error
|
||||||
|
|
||||||
**Expected behavior**
|
Alternatively, include the commands from your terminal as bash script.
|
||||||
A clear and concise description of what you expected to happen.
|
|
||||||
|
## Expected behavior
|
||||||
|
|
||||||
|
If applicable, a clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
## Log file
|
||||||
|
|
||||||
**Log file**
|
|
||||||
If applicable, add a copy of Hugo's log messages.
|
If applicable, add a copy of Hugo's log messages.
|
||||||
|
|
||||||
**Screenshots**
|
## Screenshots
|
||||||
|
|
||||||
If applicable, add screenshots to help explain your problem.
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
**Environment (please complete the following information):**
|
## Host environment
|
||||||
|
|
||||||
|
Please complete the following information where applicable.
|
||||||
|
|
||||||
- Hinode version: [e.g. v0.11.3]
|
- Hinode version: [e.g. v0.11.3]
|
||||||
- Host OS: [e.g. macOS Ventura 13.3]
|
- Host OS: [e.g. macOS Ventura 13.3]
|
||||||
- Node version: [e.g. node v18.15.0]
|
- Node version: [e.g. node v18.15.0]
|
||||||
- Hugo version: [e.g. hugo v0.109.0-47b12b83e636224e5e601813ff3e6790c191e371+extended darwin/amd64 BuildDate=2022-12-23T10:38:11Z VendorInfo=gohugoio]
|
|
||||||
- Browser: [e.g. Google Chrome Version 108.0.5359.124 (Official Build) (arm64)]
|
- Browser: [e.g. Google Chrome Version 108.0.5359.124 (Official Build) (arm64)]
|
||||||
|
|
||||||
**Additional context**
|
## Hugo environment
|
||||||
|
|
||||||
|
Copy the output of `hugo env` or `npm run env` here.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
[env output]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Additional context
|
||||||
|
|
||||||
Add any other context about the problem here.
|
Add any other context about the problem here.
|
||||||
|
14
.github/ISSUE_TEMPLATE/feature_request.md
vendored
14
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -7,14 +7,18 @@ assignees: ''
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Is your feature request related to a problem? Please describe.**
|
## Problem or enhancement idea
|
||||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
||||||
|
A clear and concise description of what the problem is. E.g. I'm always frustrated when ... Or else, the enhancement idea to further improve Hinode.
|
||||||
|
|
||||||
|
## Proposed solution
|
||||||
|
|
||||||
**Describe the solution you'd like**
|
|
||||||
A clear and concise description of what you want to happen.
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
**Describe alternatives you've considered**
|
## Alternatives
|
||||||
|
|
||||||
A clear and concise description of any alternative solutions or features you've considered.
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
**Additional context**
|
## Additional context
|
||||||
|
|
||||||
Add any other context or screenshots about the feature request here.
|
Add any other context or screenshots about the feature request here.
|
||||||
|
6
.github/dependabot.yml
vendored
6
.github/dependabot.yml
vendored
@@ -3,7 +3,13 @@
|
|||||||
|
|
||||||
version: 2
|
version: 2
|
||||||
updates:
|
updates:
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
|
open-pull-requests-limit: 10
|
||||||
- package-ecosystem: "npm"
|
- package-ecosystem: "npm"
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "daily"
|
interval: "daily"
|
||||||
|
versioning-strategy: increase
|
||||||
|
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
|
||||||
|
17
.github/workflows/auto-merge.yml
vendored
17
.github/workflows/auto-merge.yml
vendored
@@ -13,30 +13,27 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Dependabot metadata
|
- name: Dependabot metadata
|
||||||
id: metadata
|
id: metadata
|
||||||
uses: dependabot/fetch-metadata@v1
|
uses: dependabot/fetch-metadata@v2
|
||||||
with:
|
with:
|
||||||
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
|
||||||
- name: Enable auto-merge for Dependabot PRs
|
- name: Enable auto-merge for Dependabot PRs
|
||||||
run: gh pr merge --auto --merge "$PR_URL"
|
run: gh pr merge --auto --merge "$PR_URL"
|
||||||
env:
|
env:
|
||||||
PR_URL: ${{github.event.pull_request.html_url}}
|
PR_URL: ${{github.event.pull_request.html_url}}
|
||||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||||
|
|
||||||
- name: Approve patch and minor updates
|
- name: Approve patch and minor updates
|
||||||
if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-patch' || steps.dependabot-metadata.outputs.update-type == 'version-update:semver-minor'}}
|
if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-patch' || steps.dependabot-metadata.outputs.update-type == 'version-update:semver-minor'}}
|
||||||
run: gh pr review $PR_URL --approve -b "I'm **approving** this pull request because **it includes a patch or minor update**"
|
run: gh pr review $PR_URL --approve -b "I'm **approving** this pull request because **it includes a patch or minor update**"
|
||||||
env:
|
env:
|
||||||
PR_URL: ${{github.event.pull_request.html_url}}
|
PR_URL: ${{github.event.pull_request.html_url}}
|
||||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||||
- name: Approve major updates of development dependencies
|
|
||||||
if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-major' && steps.dependabot-metadata.outputs.dependency-type == 'direct:development'}}
|
- name: Comment on major updates of any dependencies
|
||||||
run: gh pr review $PR_URL --approve -b "I'm **approving** this pull request because **it includes a major update of a dependency used only in development**"
|
if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-major'}}
|
||||||
env:
|
|
||||||
PR_URL: ${{github.event.pull_request.html_url}}
|
|
||||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
|
||||||
- name: Comment on major updates of non-development dependencies
|
|
||||||
if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-major' && steps.dependabot-metadata.outputs.dependency-type == 'direct:production'}}
|
|
||||||
run: |
|
run: |
|
||||||
gh pr comment $PR_URL --body "I'm **not approving** this PR because **it includes a major update of a dependency used in production**"
|
gh pr comment $PR_URL --body "I'm **not approving** this PR because **it includes a major update of a dependency**"
|
||||||
gh pr edit $PR_URL --add-label "requires-manual-qa"
|
gh pr edit $PR_URL --add-label "requires-manual-qa"
|
||||||
env:
|
env:
|
||||||
PR_URL: ${{github.event.pull_request.html_url}}
|
PR_URL: ${{github.event.pull_request.html_url}}
|
||||||
|
28
.github/workflows/build.yml
vendored
28
.github/workflows/build.yml
vendored
@@ -1,28 +0,0 @@
|
|||||||
name: build
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- v*
|
|
||||||
branches: [ main ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ main ]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
os: [macos-latest, windows-latest, ubuntu-latest]
|
|
||||||
node-version: [16.x, 18.x, 20.x]
|
|
||||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: ${{ matrix.node-version }}
|
|
||||||
cache: 'npm'
|
|
||||||
- run: npm ci
|
|
||||||
- run: npm run build
|
|
105
.github/workflows/lint-build.yml
vendored
Normal file
105
.github/workflows/lint-build.yml
vendored
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
name: Lint & build
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- v*
|
||||||
|
branches: [ main ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ main ]
|
||||||
|
|
||||||
|
env:
|
||||||
|
CACHE_KEY: 'hugo-hinode'
|
||||||
|
CACHE_PATH_DEBIAN: '/tmp/hugo_cache_runner'
|
||||||
|
CACHE_PATH_WIN: '~\AppData\Local\hugo_cache'
|
||||||
|
CACHE_PATH_MAC: '/Users/runner/Library/Caches/hugo_cache'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check out repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: lts/*
|
||||||
|
cache: 'npm'
|
||||||
|
cache-dependency-path: '**/package-lock.json'
|
||||||
|
|
||||||
|
# [24/AUG/23] Adjusted from npm ci to prevent EBADPLATFORM error due to fsevents
|
||||||
|
- name: Install npm
|
||||||
|
run: npm i
|
||||||
|
|
||||||
|
- name: Lint the source files
|
||||||
|
run: npm run lint
|
||||||
|
|
||||||
|
build:
|
||||||
|
needs: lint
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [macos-latest, windows-latest, ubuntu-latest]
|
||||||
|
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||||
|
node-version: [18.x, 20.x]
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check out repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: ">1.0.0"
|
||||||
|
|
||||||
|
- name: Set up Node.js ${{ matrix.node-version }}
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: ${{ matrix.node-version }}
|
||||||
|
cache: 'npm'
|
||||||
|
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
|
||||||
|
- name: Perform clean install of npm
|
||||||
|
run: |
|
||||||
|
if [ "$RUNNER_OS" == "macOS" ]; then
|
||||||
|
npm ci
|
||||||
|
else
|
||||||
|
npm i
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
# Cache Hugo cachedir and resourcedir (configured in config/ci/hugo.toml) for each OS
|
||||||
|
# No additional cache invalidation is needed, Hugo uses checksums itself
|
||||||
|
- name: Use Hugo cache
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: ${{ runner.os == 'Windows' && env.CACHE_PATH_WIN || runner.os == 'macOS' && env.CACHE_PATH_MAC || env.CACHE_PATH_DEBIAN }}
|
||||||
|
key: ${{ runner.os }}-${{ env.CACHE_KEY }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-${{ env.CACHE_KEY }}
|
||||||
|
|
||||||
|
- name: Display environment
|
||||||
|
run: npm run env
|
||||||
|
|
||||||
|
- name: Build main site
|
||||||
|
run: npm run build:cache
|
||||||
|
|
||||||
|
# The example site is to be published to demo.gethinode.com
|
||||||
|
- name: Build example site
|
||||||
|
run: npm run build:example:ci
|
28
.github/workflows/lint.yml
vendored
28
.github/workflows/lint.yml
vendored
@@ -1,28 +0,0 @@
|
|||||||
name: lint
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- v*
|
|
||||||
branches: [ main ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ main ]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
node-version: [16.x, 18.x, 20.x]
|
|
||||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: ${{ matrix.node-version }}
|
|
||||||
cache: 'npm'
|
|
||||||
- run: npm ci --ignore-scripts
|
|
||||||
- run: npm run lint
|
|
62
.github/workflows/mod-update.yml
vendored
Normal file
62
.github/workflows/mod-update.yml
vendored
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
name: Update Hugo dependencies
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 3 * * *' # run daily at 03:00 AM
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-mod:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: lts/*
|
||||||
|
cache: 'npm'
|
||||||
|
cache-dependency-path: '**/package-lock.json'
|
||||||
|
|
||||||
|
# [26/AUG/23] Adjusted from npm ci to prevent EBADPLATFORM error due to fsevents
|
||||||
|
- name: Install npm
|
||||||
|
run: npm i
|
||||||
|
|
||||||
|
- name: Update Hugo module dependencies
|
||||||
|
id: mod-updates
|
||||||
|
run: |
|
||||||
|
MOD_OUTPUT=$(npm run mod:update 2>&1)
|
||||||
|
echo "$MOD_OUTPUT"
|
||||||
|
MOD_UPDATES=$(echo "$MOD_OUTPUT" | grep '^go: upgraded' | sed 's/go: / - /' | sort -u)
|
||||||
|
echo 'MOD_UPDATES<<EOF' >> $GITHUB_OUTPUT
|
||||||
|
echo "$MOD_UPDATES" >> "$GITHUB_OUTPUT"
|
||||||
|
echo 'EOF' >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Create Pull Request
|
||||||
|
uses: gethinode-actions/create-pull-request@v6
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.HUGO_MOD_PR }}
|
||||||
|
commit-message: 'fix: update Hugo module dependencies'
|
||||||
|
committer: GitHub <noreply@github.com>
|
||||||
|
branch: hugo-mod-dependencies
|
||||||
|
delete-branch: true
|
||||||
|
title: 'Update Hugo module dependencies'
|
||||||
|
body: |
|
||||||
|
This PR is auto-generated by [create-pull-request][1].
|
||||||
|
|
||||||
|
Changes to go.mod:
|
||||||
|
|
||||||
|
${{ steps.mod-updates.outputs.MOD_UPDATES }}
|
||||||
|
|
||||||
|
[1]: https://github.com/peter-evans/create-pull-request
|
||||||
|
labels: dependencies
|
||||||
|
add-paths: |
|
||||||
|
go.mod
|
||||||
|
go.sum
|
||||||
|
**/go.mod
|
||||||
|
**/go.sum
|
54
.github/workflows/npm-publish.yml
vendored
54
.github/workflows/npm-publish.yml
vendored
@@ -1,35 +1,41 @@
|
|||||||
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
|
# This workflow will run tests using node and then publish a package to npmjs.org when a release is created
|
||||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
|
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
|
||||||
|
name: Publish package to npmjs
|
||||||
name: Node.js Package
|
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
branches: [ main ]
|
|
||||||
release:
|
release:
|
||||||
types: [created]
|
types: [published]
|
||||||
|
|
||||||
|
env:
|
||||||
|
REGISTRY_URL: 'https://registry.npmjs.org/'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
strategy:
|
||||||
steps:
|
matrix:
|
||||||
- uses: actions/checkout@v3
|
os: [ubuntu-latest]
|
||||||
- uses: actions/setup-node@v3
|
node-version: [20.x]
|
||||||
with:
|
|
||||||
node-version: 16
|
runs-on: ${{ matrix.os }}
|
||||||
- run: npm ci
|
|
||||||
- run: npm test
|
|
||||||
|
|
||||||
publish-npm:
|
|
||||||
needs: build
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- name: Checkout repository
|
||||||
- uses: actions/setup-node@v3
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup .npmrc file to publish to npm
|
||||||
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 16
|
node-version: ${{ matrix.node-version }}
|
||||||
registry-url: https://registry.npmjs.org/
|
registry-url: ${{ env.REGISTRY_URL }}
|
||||||
- run: npm ci
|
cache: 'npm'
|
||||||
- run: npm publish
|
cache-dependency-path: '**/package-lock.json'
|
||||||
|
|
||||||
|
# [27/AUG/23] Adjusted from npm ci to prevent EBADPLATFORM error due to fsevents
|
||||||
|
- name: Install npm
|
||||||
|
run: npm i
|
||||||
|
|
||||||
|
- name: Publish package to npm
|
||||||
|
run: npm publish
|
||||||
env:
|
env:
|
||||||
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
|
37
.github/workflows/update.yml
vendored
37
.github/workflows/update.yml
vendored
@@ -1,37 +0,0 @@
|
|||||||
name: Update Hugo Dependencies
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
schedule:
|
|
||||||
- cron: '0 3 * * *' # run daily at 03:00 AM
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
pull-requests: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
update-dep:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
- name: Set up Node.js
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: "lts/*"
|
|
||||||
- name: Install dependencies
|
|
||||||
run: npm ci
|
|
||||||
- name: Update Hugo module dependencies
|
|
||||||
run: npm run mod:update
|
|
||||||
- name: Create Pull Request
|
|
||||||
uses: peter-evans/create-pull-request@v5
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.HUGO_MOD_PR }}
|
|
||||||
commit-message: 'fix: update Hugo module dependencies'
|
|
||||||
branch: hugo-mod-dependencies
|
|
||||||
delete-branch: true
|
|
||||||
title: 'Update Hugo module dependencies'
|
|
||||||
body: >
|
|
||||||
This PR is auto-generated by
|
|
||||||
[create-pull-request](https://github.com/peter-evans/create-pull-request).
|
|
||||||
labels: dependencies
|
|
5
.gitignore
vendored
5
.gitignore
vendored
@@ -1,8 +1,7 @@
|
|||||||
/_vendor
|
/_vendor
|
||||||
/public
|
public/
|
||||||
resources/
|
resources/
|
||||||
node_modules/
|
node_modules/
|
||||||
|
|
||||||
.DS_store
|
.DS_store
|
||||||
.hugo_build.lock
|
.hugo_build.lock
|
||||||
hugo_stats.json
|
|
@@ -4,10 +4,11 @@
|
|||||||
"MD013": false,
|
"MD013": false,
|
||||||
"MD024": false,
|
"MD024": false,
|
||||||
"MD026": false,
|
"MD026": false,
|
||||||
"MD033": false,
|
|
||||||
"MD034": false,
|
"MD034": false,
|
||||||
"MD051": false,
|
"MD051": false,
|
||||||
"MD053": false
|
"MD053": false,
|
||||||
|
"MD055": false,
|
||||||
|
"MD056": false
|
||||||
},
|
},
|
||||||
"ignores": ["node_modules", "CHANGELOG.md"]
|
"ignores": ["node_modules", "CHANGELOG.md"]
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
assets/scss/common/_variables.scss
|
assets/scss/common/_variables.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/hotfix
|
|
||||||
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
|
||||||
|
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2023 Mark Dumay
|
Copyright (c) 2024 Mark Dumay
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
99
README.md
99
README.md
@@ -1,5 +1,6 @@
|
|||||||
# Hugo Theme Hinode
|
# Hugo Theme Hinode
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD033 -->
|
||||||
<!-- Tagline -->
|
<!-- Tagline -->
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<b>A clean documentation and blog theme for your Hugo site based on Bootstrap 5</b>
|
<b>A clean documentation and blog theme for your Hugo site based on Bootstrap 5</b>
|
||||||
@@ -8,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>
|
||||||
|
|
||||||
@@ -47,6 +48,7 @@
|
|||||||
<a href="#donate">Donate</a> •
|
<a href="#donate">Donate</a> •
|
||||||
<a href="#license">License</a>
|
<a href="#license">License</a>
|
||||||
</p>
|
</p>
|
||||||
|
<!-- markdownlint-enable MD033 -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
|
|
||||||
@@ -56,54 +58,51 @@
|
|||||||
- [PageSpeed Insights][pagespeed]
|
- [PageSpeed Insights][pagespeed]
|
||||||
- [Mozilla Observatory][observatory]
|
- [Mozilla Observatory][observatory]
|
||||||
|
|
||||||
Hinode is a clean documentation and blog theme for [Hugo][hugo], an open-source static site generator. Based on the [Bootstrap 5][bootstrap] framework, the rendered site is fast, secure, and responsive. Hinode uses [FlexSearch][flexsearch] to enable full text search across your site. Finally, the theme supports [Node Package Manager][npm] to automate the build process and to keep track of dependencies.
|
Hinode is a clean documentation and blog theme for [Hugo][hugo], an open-source static site generator. Based on the [Bootstrap 5][bootstrap] framework, the rendered site is fast, secure, and responsive. Hinode uses [FlexSearch][flexsearch] to enable full text search across your site. Finally, the theme supports [Node Package Manager][npm] (npm) to automate the build process and to keep track of dependencies.
|
||||||
|
|
||||||
Additional features include:
|
|
||||||
|
|
||||||
- Flexible configuration of Hugo modules
|
|
||||||
- Switching between light mode and dark mode
|
|
||||||
- Support for multiple languages
|
|
||||||
- Reusable Bootstrap components through configurable shortcodes and partials
|
|
||||||
- Embedded comments through light-weight integration with GitHub via [utteranc.es][utterances]
|
|
||||||
- Integrated sidebar navigation for content-heavy sections, such as documentation pages
|
|
||||||
- Reponsive image handling for multiple screen sizes and resolutions
|
|
||||||
- Optimized search results, scoring 100 points for SEO on [PageSpeed Insights][pagespeed]
|
|
||||||
- Secure by default, scoring A+ on [Mozilla Observatory test][observatory]
|
|
||||||
|
|
||||||
Detailed information about Hinode is available on the [official website][website].
|
Detailed information about Hinode is available on the [official website][website].
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
Hinode requires Git, Node.js and npm for local development and testing. Download the Git binary from the [official website][git_download]. Next, download and install [Node.js][nodejs] (it includes npm) for your platform.
|
Hinode is a [Hugo theme that uses modules][hugo_modules] to install and maintain various components. It can be installed using either Hugo or npm. If you would like to take advantage of automation, the npm approach is recommended. Refer to the [Hinode template][repository_template] for installation instructions with npm.
|
||||||
|
|
||||||
|
The installation instructions in this readme install Hinode as a regular Hugo theme. Hinode requires the following software to be installed on your local machine.
|
||||||
|
|
||||||
|
- [Go binary][golang_download]
|
||||||
|
- [Hugo][hugo_download] (extended version)
|
||||||
|
|
||||||
|
[Git][git_download] is recommended, but is not a strict requirement.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD033 -->
|
||||||
|
<details>
|
||||||
|
<summary>Installation notes for Windows</summary>
|
||||||
|
|
||||||
|
The installation for Windows requires PowerShell v7. Download it from the Microsoft Store as needed. Check your current version with the command `$PSVersionTable`.
|
||||||
|
</details>
|
||||||
|
<!-- markdownlint-enable MD033 -->
|
||||||
|
|
||||||
Start a new Hinode project in three steps:
|
Start a new Hinode project in three steps:
|
||||||
|
|
||||||
1. Create a new site
|
1. **Create a new site**
|
||||||
|
|
||||||
Hinode is available as a [template][repository_template], and a [main repository][repository]. The template [npm][npm] to link to the latest available version of Hinode. Unless you plan to customize a lot, it is recommended to use the template:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/gethinode/template.git my-hinode-site && cd my-hinode-site
|
hugo new site my-hinode-site && cd my-hinode-site
|
||||||
```
|
```
|
||||||
|
|
||||||
Use the main theme if you intend to customize the base code:
|
2. **Initialize the module system**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/gethinode/hinode.git my-hinode-site && cd my-hinode-site
|
hugo mod init example.com/my-hinode-site
|
||||||
|
echo "[[module.imports]]" >> hugo.toml
|
||||||
|
echo "path = 'github.com/gethinode/hinode'" >> hugo.toml
|
||||||
```
|
```
|
||||||
|
|
||||||
1. Install dependencies
|
3. **Start a development server**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm install
|
hugo server
|
||||||
```
|
|
||||||
|
|
||||||
1. Start development server
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run start
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
@@ -123,11 +122,13 @@ Hinode is inspired by the following themes:
|
|||||||
|
|
||||||
## Donate
|
## Donate
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD033 -->
|
||||||
<a href="https://www.buymeacoffee.com/markdumay" target="_blank" rel="noopener noreferrer"><img src="https://cdn.buymeacoffee.com/buttons/lato-orange.png" alt="Buy Me A Coffee" style="height: 51px !important;width: 217px !important;"></a>
|
<a href="https://www.buymeacoffee.com/markdumay" target="_blank" rel="noopener noreferrer"><img src="https://cdn.buymeacoffee.com/buttons/lato-orange.png" alt="Buy Me A Coffee" style="height: 51px !important;width: 217px !important;"></a>
|
||||||
|
<!-- markdownlint-enable MD033 -->
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
The `hinode` and `template` codebase is released under the [MIT license][license]. The documentation (including the "README" and `docs` codebase) is licensed under the Creative Commons [(CC BY-NC 4.0)][cc-by-nc-4.0] license.
|
The `hinode`, `docs`, and `template` codebase is released under the [MIT license][license]. The documentation of Hinode is licensed under the Creative Commons [(CC BY-NC 4.0)][cc-by-nc-4.0] license. This includes all files within the repository's `/content` and `/exampleSite/content` folders and their children, as well as the "README" in the repository root. This applies to all public repositories maintained by `gethinode` on GitHub, including the `gethinode/hinode`, `gethinode/template`, and `gethinode/docs` repositories, unless specified otherwise.
|
||||||
|
|
||||||
<!-- MARKDOWN PUBLIC LINKS -->
|
<!-- MARKDOWN PUBLIC LINKS -->
|
||||||
[blist]: https://github.com/apvarun/blist-hugo-theme
|
[blist]: https://github.com/apvarun/blist-hugo-theme
|
||||||
@@ -137,16 +138,18 @@ The `hinode` and `template` codebase is released under the [MIT license][license
|
|||||||
[flexsearch]: https://github.com/nextapps-de/flexsearch
|
[flexsearch]: https://github.com/nextapps-de/flexsearch
|
||||||
[git_download]: https://git-scm.com
|
[git_download]: https://git-scm.com
|
||||||
[hugo]: https://gohugo.io
|
[hugo]: https://gohugo.io
|
||||||
|
[hugo_download]: https://gohugo.io/installation
|
||||||
|
[hugo_modules]: https://gohugo.io/hugo-modules/
|
||||||
[netlify]: https://www.netlify.com
|
[netlify]: https://www.netlify.com
|
||||||
[nodejs]: https://nodejs.org
|
[nodejs]: https://nodejs.org
|
||||||
[npm]: https://www.npmjs.com
|
[npm]: https://www.npmjs.com
|
||||||
[observatory]: https://observatory.mozilla.org/analyze/demo.gethinode.com
|
[observatory]: https://observatory.mozilla.org/analyze/demo.gethinode.com
|
||||||
[pagespeed]: https://pagespeed.web.dev/report?url=https%3A%2F%2Fdemo.gethinode.com%2F
|
[pagespeed]: https://pagespeed.web.dev/report?url=https%3A%2F%2Fdemo.gethinode.com%2F
|
||||||
[utterances]: https://utteranc.es
|
|
||||||
|
|
||||||
<!-- MARKDOWN MAINTAINED LINKS -->
|
<!-- MARKDOWN MAINTAINED LINKS -->
|
||||||
[contribute]: https://gethinode.com/contribute
|
[contribute]: https://gethinode.com/contribute
|
||||||
[getstarted]: https://gethinode.com/docs
|
[getstarted]: https://gethinode.com/docs
|
||||||
|
[golang_download]: https://go.dev/dl/
|
||||||
[demo]: https://demo.gethinode.com/
|
[demo]: https://demo.gethinode.com/
|
||||||
[license]: https://github.com/gethinode/hinode/blob/main/LICENSE
|
[license]: https://github.com/gethinode/hinode/blob/main/LICENSE
|
||||||
[repository]: https://github.com/gethinode/hinode.git
|
[repository]: https://github.com/gethinode/hinode.git
|
||||||
|
@@ -1,2 +1,16 @@
|
|||||||
+++
|
---
|
||||||
+++
|
# author:
|
||||||
|
title: {{ replace .Name "-" " " | title }}
|
||||||
|
date: {{ .Date }}
|
||||||
|
draft: true
|
||||||
|
# layout:
|
||||||
|
# description:
|
||||||
|
# tags:
|
||||||
|
# icon:
|
||||||
|
# thumbnail:
|
||||||
|
# url:
|
||||||
|
# author:
|
||||||
|
# authorURL:
|
||||||
|
# origin:
|
||||||
|
# originURL:
|
||||||
|
---
|
||||||
|
BIN
assets/img/creator-1x1.jpg
Normal file
BIN
assets/img/creator-1x1.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.5 MiB |
@@ -1,69 +1,21 @@
|
|||||||
// Adapted from https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/google_analytics.html
|
// Adapted from https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/google_analytics.html
|
||||||
|
|
||||||
{{- define "__ga_js_set_doNotTrack" -}}{{/* This is also used in the async version. */}}
|
{{ if and (not hugo.IsServer) (not site.Config.Privacy.GoogleAnalytics.Disable) }}
|
||||||
{{- $pc := .Site.Config.Privacy.GoogleAnalytics -}}
|
{{ with site.Config.Services.GoogleAnalytics.ID }}
|
||||||
{{- if not $pc.RespectDoNotTrack -}}
|
{{ if strings.HasPrefix (lower .) "ua-" }}
|
||||||
|
{{ warnf "Google Analytics 4 (GA4) replaced Google Universal Analytics (UA) effective 1 July 2023. See https://support.google.com/analytics/answer/11583528. Create a GA4 property and data stream, then replace the Google Analytics ID in your site configuration with the new value." }}
|
||||||
|
{{ else }}
|
||||||
var doNotTrack = false;
|
var doNotTrack = false;
|
||||||
{{- else -}}
|
if ({{ site.Config.Privacy.GoogleAnalytics.RespectDoNotTrack }}) {
|
||||||
var dnt = (navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack);
|
var dnt = (navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack);
|
||||||
var doNotTrack = (dnt == "1" || dnt == "yes");
|
var doNotTrack = (dnt == "1" || dnt == "yes");
|
||||||
{{- end -}}
|
}
|
||||||
{{- end -}}
|
if (!doNotTrack) {
|
||||||
|
window.dataLayer = window.dataLayer || [];
|
||||||
{{- $pc := .Site.Config.Privacy.GoogleAnalytics -}}
|
function gtag(){dataLayer.push(arguments);}
|
||||||
{{- if (and (not .Site.IsServer) (not $pc.Disable)) -}}
|
gtag('js', new Date());
|
||||||
{{ with .Site.GoogleAnalytics -}}
|
gtag('config', '{{ . }}');
|
||||||
{{ if hasPrefix . "G-"}}
|
}
|
||||||
{{ template "__ga_js_set_doNotTrack" $ }}
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
if (!doNotTrack) {
|
{{ end }}
|
||||||
window.dataLayer = window.dataLayer || [];
|
|
||||||
|
|
||||||
function gtag() {
|
|
||||||
dataLayer.push(arguments);
|
|
||||||
}
|
|
||||||
|
|
||||||
gtag('js', new Date());
|
|
||||||
gtag('config', '{{ . }}', { 'anonymize_ip': {{- $pc.AnonymizeIP -}} });
|
|
||||||
}
|
|
||||||
|
|
||||||
{{ else if hasPrefix . "UA-" }}
|
|
||||||
{{ template "__ga_js_set_doNotTrack" $ }}
|
|
||||||
|
|
||||||
if (!doNotTrack) {
|
|
||||||
(function(i, s, o, g, r, a, m) {
|
|
||||||
i['GoogleAnalyticsObject'] = r;
|
|
||||||
i[r] = i[r] || function() {
|
|
||||||
(i[r].q = i[r].q || []).push(arguments)
|
|
||||||
}, i[r].l = 1 * new Date();
|
|
||||||
a = s.createElement(o),
|
|
||||||
m = s.getElementsByTagName(o)[0];
|
|
||||||
a.async = 1;
|
|
||||||
a.src = g;
|
|
||||||
m.parentNode.insertBefore(a, m)
|
|
||||||
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
|
|
||||||
|
|
||||||
{{- if $pc.UseSessionStorage }}
|
|
||||||
if (window.sessionStorage) {
|
|
||||||
var GA_SESSION_STORAGE_KEY = 'ga:clientId';
|
|
||||||
ga('create', '{{ . }}', {
|
|
||||||
'storage': 'none',
|
|
||||||
'clientId': sessionStorage.getItem(GA_SESSION_STORAGE_KEY)
|
|
||||||
});
|
|
||||||
|
|
||||||
ga(function(tracker) {
|
|
||||||
sessionStorage.setItem(GA_SESSION_STORAGE_KEY, tracker.get('clientId'));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
{{ else }}
|
|
||||||
ga('create', '{{ . }}', 'auto');
|
|
||||||
{{ end -}}
|
|
||||||
{{ if $pc.AnonymizeIP }}
|
|
||||||
ga('set', 'anonymizeIp', true);
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
ga('send', 'pageview');
|
|
||||||
}
|
|
||||||
{{- end }}
|
|
||||||
{{ end -}}
|
|
||||||
{{- end }}
|
|
@@ -15,6 +15,7 @@ const addCopyButtons = (clipboard) => {
|
|||||||
const button = document.createElement('button')
|
const button = document.createElement('button')
|
||||||
button.className = 'clipboard-button'
|
button.className = 'clipboard-button'
|
||||||
button.setAttribute('data-toast-target', 'toast-copied-code-message')
|
button.setAttribute('data-toast-target', 'toast-copied-code-message')
|
||||||
|
button.setAttribute('aria-label', '{{ T "copyToClipboard" }}')
|
||||||
button.type = 'button'
|
button.type = 'button'
|
||||||
button.innerHTML = svgCopy
|
button.innerHTML = svgCopy
|
||||||
button.addEventListener('click', () => {
|
button.addEventListener('click', () => {
|
||||||
|
@@ -9,45 +9,49 @@
|
|||||||
(() => {
|
(() => {
|
||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
|
const supportedThemes = ['auto', 'dark', 'light'];
|
||||||
|
|
||||||
|
// retrieves the currently stored theme from local storage (cookie)
|
||||||
const storedTheme = localStorage.getItem('theme')
|
const storedTheme = localStorage.getItem('theme')
|
||||||
|
|
||||||
const getPreferredTheme = () => {
|
// retrieves the theme preferred by the client, defaults to light
|
||||||
if (storedTheme) {
|
function getPreferredTheme() {
|
||||||
return storedTheme
|
|
||||||
}
|
|
||||||
|
|
||||||
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'
|
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'
|
||||||
}
|
}
|
||||||
|
|
||||||
const setTheme = function (theme) {
|
// retrieves the current theme, either from local storage or client's preferences
|
||||||
if (theme === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
function getTheme() {
|
||||||
document.documentElement.setAttribute('data-bs-theme', 'dark')
|
if (storedTheme) {
|
||||||
|
return storedTheme
|
||||||
} else {
|
} else {
|
||||||
document.documentElement.setAttribute('data-bs-theme', theme)
|
const preference = getPreferredTheme()
|
||||||
|
localStorage.setItem('theme', preference)
|
||||||
|
return preference
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setTheme(getPreferredTheme())
|
// applies and stores requested theme
|
||||||
|
function setTheme(theme) {
|
||||||
const showActiveTheme = theme => {
|
if (!supportedThemes.includes(theme)) {
|
||||||
const activeSelectors = document.querySelectorAll('.theme-icon-active')
|
theme = 'auto'
|
||||||
const activeButtons = document.querySelectorAll(`[data-bs-theme-value="${theme}"]`)
|
|
||||||
if (activeButtons.length > 0) {
|
|
||||||
const activeIcon = activeButtons[0].querySelector('span')
|
|
||||||
|
|
||||||
document.querySelectorAll('[data-bs-theme-value]').forEach(element => {
|
|
||||||
element.classList.remove('active')
|
|
||||||
})
|
|
||||||
|
|
||||||
for (let i = 0; i < activeSelectors.length; ++i) {
|
|
||||||
activeSelectors[i].className = activeIcon.className
|
|
||||||
activeSelectors[i].className = activeSelectors[i].className.replace('theme-icon', 'theme-icon-active')
|
|
||||||
}
|
|
||||||
|
|
||||||
for (let i = 0; i < activeButtons.length; ++i) {
|
|
||||||
activeButtons[i].classList.add('active')
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
localStorage.setItem('theme', theme)
|
||||||
|
|
||||||
|
if (theme === 'auto') {
|
||||||
|
document.documentElement.setAttribute('data-bs-theme', (getPreferredTheme()))
|
||||||
|
} else {
|
||||||
|
document.documentElement.setAttribute('data-bs-theme', theme)
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll('.navbar-mode-selector').forEach(chk => {
|
||||||
|
chk.checked = (document.documentElement.getAttribute('data-bs-theme') === 'light')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// alternates the currently active theme
|
||||||
|
function toggleTheme() {
|
||||||
|
const target = document.documentElement.getAttribute('data-bs-theme') === 'dark' ? 'light' : 'dark'
|
||||||
|
setTheme(target)
|
||||||
}
|
}
|
||||||
|
|
||||||
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
|
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
|
||||||
@@ -57,18 +61,32 @@
|
|||||||
})
|
})
|
||||||
|
|
||||||
window.addEventListener('DOMContentLoaded', () => {
|
window.addEventListener('DOMContentLoaded', () => {
|
||||||
showActiveTheme(getPreferredTheme())
|
setTheme(getTheme())
|
||||||
|
const light = (document.documentElement.getAttribute('data-bs-theme') === 'light')
|
||||||
|
|
||||||
document.querySelectorAll('[data-bs-theme-value]')
|
document.querySelectorAll('.ball').forEach(ball => {
|
||||||
.forEach(toggle => {
|
ball.classList.add('notransition');
|
||||||
toggle.addEventListener('click', () => {
|
})
|
||||||
const theme = toggle.getAttribute('data-bs-theme-value')
|
|
||||||
localStorage.setItem('theme', theme)
|
document.querySelectorAll('.navbar-mode-selector').forEach(chk => {
|
||||||
setTheme(theme)
|
chk.checked = light
|
||||||
showActiveTheme(theme)
|
chk.addEventListener('change', function () {
|
||||||
})
|
toggleTheme()
|
||||||
})
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
document.querySelectorAll('.ball').forEach(ball => {
|
||||||
|
ball.offsetHeight; // flush css changes
|
||||||
|
ball.classList.remove('notransition');
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
window.addEventListener('load', () => {
|
||||||
|
const light = (document.documentElement.getAttribute('data-bs-theme') === 'light')
|
||||||
|
document.querySelectorAll('.navbar-mode-selector').forEach(chk => {
|
||||||
|
chk.checked = light
|
||||||
|
})
|
||||||
|
});
|
||||||
})()
|
})()
|
||||||
|
|
||||||
{{- end -}}
|
{{- end -}}
|
@@ -1,26 +1,64 @@
|
|||||||
const navbar = document.querySelector('.navbar')
|
const navbar = document.querySelector('.navbar')
|
||||||
const toggler = document.getElementById('main-nav-toggler')
|
const togglers = document.querySelectorAll('.main-nav-toggler')
|
||||||
const modeSelectors = document.querySelectorAll('.switch-mode-collapsed')
|
const modeSelectors = document.querySelectorAll('.switch-mode-collapsed')
|
||||||
|
const colorsBG = ['body', 'secondary', 'tertiary']
|
||||||
|
|
||||||
|
function updateNavbar () {
|
||||||
|
if (window.scrollY > 75) {
|
||||||
|
navbar.classList.add('nav-active')
|
||||||
|
const storedTheme = localStorage.getItem('theme')
|
||||||
|
navbar.setAttribute('data-bs-theme', storedTheme)
|
||||||
|
} else {
|
||||||
|
navbar.classList.remove('nav-active')
|
||||||
|
const defaultTheme = navbar.getAttribute('data-bs-overlay')
|
||||||
|
navbar.setAttribute('data-bs-theme', defaultTheme)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((navbar !== null) && (window.performance.getEntriesByType)) {
|
||||||
|
if (window.performance.getEntriesByType('navigation')[0].type === 'reload') {
|
||||||
|
updateNavbar()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (navbar !== null && togglers !== null) {
|
||||||
|
// observe state changes to the site's color mode
|
||||||
|
const html = document.querySelector('html')
|
||||||
|
const config = {
|
||||||
|
attributes: true,
|
||||||
|
attributeFilter: ['data-bs-theme']
|
||||||
|
}
|
||||||
|
const Observer = new MutationObserver((mutationrecords) => {
|
||||||
|
updateNavbar()
|
||||||
|
})
|
||||||
|
Observer.observe(html, config)
|
||||||
|
|
||||||
|
// initialize background color
|
||||||
|
const color = (navbar.getAttribute('data-navbar-color') || 'body')
|
||||||
|
const bg = colorsBG.includes(color) ? `var(--bs-${color}-bg)` : `var(--bs-navbar-color-${color})`
|
||||||
|
navbar.style.setProperty('--bs-navbar-expanded-color', bg)
|
||||||
|
|
||||||
if (navbar !== null && toggler !== null) {
|
|
||||||
// set the navbar background color to opaque when scrolling past a breakpoint
|
// set the navbar background color to opaque when scrolling past a breakpoint
|
||||||
window.onscroll = () => {
|
window.onscroll = () => {
|
||||||
if (window.scrollY > 75) {
|
updateNavbar()
|
||||||
navbar.classList.add('nav-active')
|
|
||||||
} else {
|
|
||||||
navbar.classList.remove('nav-active')
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// set the navbar background color to opaque when expanded
|
// set the navbar background color to opaque when expanded
|
||||||
toggler.onclick = () => {
|
for (let i = 0; i < togglers.length; ++i) {
|
||||||
navbar.classList.toggle('navbar-expanded')
|
togglers[i].onclick = () => {
|
||||||
|
navbar.classList.toggle('navbar-expanded')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// invoke the navbar toggler for each mode switcher to collapse the main menu afterwards
|
// invoke the navbar toggler for each mode switcher to collapse the main menu afterwards
|
||||||
for (let i = 0; i < modeSelectors.length; ++i) {
|
for (let i = 0; i < modeSelectors.length; ++i) {
|
||||||
modeSelectors[i].onclick = () => {
|
modeSelectors[i].onclick = () => {
|
||||||
toggler.click()
|
for (let j = 0; j < togglers.length; ++j) {
|
||||||
|
const toggler = togglers[j]
|
||||||
|
if (toggler.getAttribute('aria-expanded') === 'true') {
|
||||||
|
toggler.click()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
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/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 placeholders
|
||||||
|
@import "theme/base.scss";
|
||||||
|
@import "theme/theme.scss";
|
||||||
|
|
||||||
|
// Import Bootstrap utilities API (mounted by core Bootstrap module)
|
||||||
|
@import "modules/bootstrap/utilities/api";
|
@@ -3,21 +3,28 @@
|
|||||||
|
|
||||||
// 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)
|
||||||
@import "bootstrap.scss";
|
@import "bootstrap.scss";
|
||||||
|
|
||||||
|
// Include dark mode overrides
|
||||||
|
@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";
|
||||||
@import "components/command.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/navbar.scss";
|
||||||
@import "components/img.scss";
|
@import "components/img.scss";
|
||||||
@import "components/pagination.scss";
|
@import "components/pagination.scss";
|
||||||
@@ -25,9 +32,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";
|
||||||
@@ -36,17 +44,13 @@
|
|||||||
@import "helpers/colored-links.scss";
|
@import "helpers/colored-links.scss";
|
||||||
@import "helpers/display.scss";
|
@import "helpers/display.scss";
|
||||||
|
|
||||||
// TODO: include fonts with following statement in Dart Sass
|
|
||||||
// @if $import-fonts {
|
|
||||||
// @include meta.load-css(theme/fonts);
|
|
||||||
// }
|
|
||||||
|
|
||||||
{{ if (not (hasPrefix (lower site.Params.style.themeFontPath) "http")) }}
|
{{ if (not (hasPrefix (lower site.Params.style.themeFontPath) "http")) }}
|
||||||
@import "theme/fonts.scss";
|
@import "theme/fonts.scss";
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
// Import theme placeholder
|
// Import theme placeholders
|
||||||
|
@import "theme/base.scss";
|
||||||
@import "theme/theme.scss";
|
@import "theme/theme.scss";
|
||||||
|
|
||||||
// Import Bootstrap utilities API (mounted by core Bootstrap module)
|
// Import Bootstrap utilities API (mounted by core Bootstrap module)
|
||||||
@import "modules/bootstrap/utilities/api";
|
@import "modules/bootstrap/utilities/api";
|
||||||
|
@@ -1,25 +1,25 @@
|
|||||||
// scss-docs-start icons
|
// scss-docs-start icons
|
||||||
$form-check-input-checked-bg-image: url("/icons/form-check-input-checked-bg-image.svg") !default;
|
$form-check-input-checked-bg-image: url("#{$base-url}icons/form-check-input-checked-bg-image.svg") !default;
|
||||||
$form-check-radio-checked-bg-image: url("/icons/form-check-radio-checked-bg-image.svg") !default;
|
$form-check-radio-checked-bg-image: url("#{$base-url}icons/form-check-radio-checked-bg-image.svg") !default;
|
||||||
$form-check-input-indeterminate-bg-image: url("/icons/form-check-input-indeterminate-bg-image.svg") !default;
|
$form-check-input-indeterminate-bg-image: url("#{$base-url}icons/form-check-input-indeterminate-bg-image.svg") !default;
|
||||||
$form-switch-bg-image: url("/icons/form-switch-bg-image.svg") !default;
|
$form-switch-bg-image: url("#{$base-url}icons/form-switch-bg-image.svg") !default;
|
||||||
$form-switch-bg-image-dark: url("/icons/form-switch-bg-image-dark.svg") !default;
|
$form-switch-bg-image-dark: url("#{$base-url}icons/form-switch-bg-image-dark.svg") !default;
|
||||||
$form-switch-focus-bg-image: url("/icons/form-switch-focus-bg-image.svg") !default;
|
$form-switch-focus-bg-image: url("#{$base-url}icons/form-switch-focus-bg-image.svg") !default;
|
||||||
$form-switch-checked-bg-image: url("/icons/form-switch-checked-bg-image.svg") !default;
|
$form-switch-checked-bg-image: url("#{$base-url}icons/form-switch-checked-bg-image.svg") !default;
|
||||||
$form-select-indicator: url("/icons/form-select-indicator.svg") !default;
|
$form-select-indicator: url("#{$base-url}icons/form-select-indicator.svg") !default;
|
||||||
$form-select-indicator-dark: url("/icons/form-select-indicator-dark.svg") !default;
|
$form-select-indicator-dark: url("#{$base-url}icons/form-select-indicator-dark.svg") !default;
|
||||||
$form-feedback-icon-valid: url("/icons/form-feedback-icon-valid.svg") !default;
|
$form-feedback-icon-valid: url("#{$base-url}icons/form-feedback-icon-valid.svg") !default;
|
||||||
$form-feedback-icon-invalid: url("/icons/form-feedback-icon-invalid.svg") !default;
|
$form-feedback-icon-invalid: url("#{$base-url}icons/form-feedback-icon-invalid.svg") !default;
|
||||||
$navbar-light-toggler-icon-bg: url("/icons/navbar-light-toggler-icon-bg.svg") !default;
|
$navbar-light-toggler-icon-bg: url("#{$base-url}icons/navbar-light-toggler-icon-bg.svg") !default;
|
||||||
$navbar-dark-toggler-icon-bg: url("/icons/navbar-dark-toggler-icon-bg.svg") !default;
|
$navbar-dark-toggler-icon-bg: url("#{$base-url}icons/navbar-dark-toggler-icon-bg.svg") !default;
|
||||||
$accordion-button-icon: url("/icons/accordion-button-icon.svg") !default;
|
$accordion-button-icon: url("#{$base-url}icons/accordion-button-icon.svg") !default;
|
||||||
$accordion-button-icon-dark: url("/icons/accordion-button-icon-dark.svg") !default;
|
$accordion-button-icon-dark: url("#{$base-url}icons/accordion-button-icon-dark.svg") !default;
|
||||||
$accordion-button-active-icon: url("/icons/accordion-button-active-icon.svg") !default;
|
$accordion-button-active-icon: url("#{$base-url}icons/accordion-button-active-icon.svg") !default;
|
||||||
$accordion-button-active-icon-dark: url("/icons/accordion-button-active-icon-dark.svg") !default;
|
$accordion-button-active-icon-dark: url("#{$base-url}icons/accordion-button-active-icon-dark.svg") !default;
|
||||||
$carousel-control-prev-icon-bg: url("/icons/carousel-control-prev-icon-bg.svg") !default;
|
$carousel-control-prev-icon-bg: url("#{$base-url}icons/carousel-control-prev-icon-bg.svg") !default;
|
||||||
$carousel-control-next-icon-bg: url("/icons/carousel-control-next-icon-bg.svg") !default;
|
$carousel-control-next-icon-bg: url("#{$base-url}icons/carousel-control-next-icon-bg.svg") !default;
|
||||||
$btn-close-bg: url("/icons/btn-close-bg.svg") !default;
|
$btn-close-bg: url("#{$base-url}icons/btn-close-bg.svg") !default;
|
||||||
$btn-toggle: url("/icons/btn-toggle.svg") !default;
|
$btn-toggle: url("#{$base-url}icons/btn-toggle.svg") !default;
|
||||||
$btn-toggle-dark: url("/icons/btn-toggle-dark.svg") !default;
|
$btn-toggle-dark: url("#{$base-url}icons/btn-toggle-dark.svg") !default;
|
||||||
|
|
||||||
// scss-docs-end icons
|
// scss-docs-end icons
|
||||||
|
@@ -1,3 +1,9 @@
|
|||||||
|
@if $enable-dark-mode {
|
||||||
|
body {
|
||||||
|
transition: background-color 0.5s, color 0.5s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Remove underline from all links
|
// Remove underline from all links
|
||||||
//
|
//
|
||||||
@@ -15,6 +21,34 @@ a:active {
|
|||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.fullcover {
|
||||||
|
--navbar-height: #{$navbar-height};
|
||||||
|
|
||||||
|
min-height: calc(100vh - var(--navbar-height));
|
||||||
|
}
|
||||||
|
|
||||||
|
.fullscreen {
|
||||||
|
--overlay-offset: #{$overlay-offset};
|
||||||
|
|
||||||
|
min-height: calc(100vh - var(--overlay-offset));
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-content {
|
||||||
|
margin-top: var(--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: "✓ ";
|
||||||
}
|
}
|
||||||
|
101
assets/scss/common/_variables-dark.scss
Normal file
101
assets/scss/common/_variables-dark.scss
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
@if $enable-dark-mode {
|
||||||
|
@include color-mode(dark) {
|
||||||
|
--bs-primary: #{$primary-text-emphasis-dark};
|
||||||
|
--bs-secondary: #{$secondary-text-emphasis-dark};
|
||||||
|
--bs-primary-dark: #{$primary-bg-subtle-dark};
|
||||||
|
--bs-primary-bg-subtle: #{$primary-bg-subtle-dark};
|
||||||
|
--bg-primary-subtle: rgba(var(--bs-primary-rgb), var(--bs-link-opacity, 0.1));
|
||||||
|
|
||||||
|
.bg-primary-subtle {
|
||||||
|
background-color: var(--bg-primary-subtle) if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
.accordion-button {
|
||||||
|
background-color: var(--bg-primary-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-check-input:checked {
|
||||||
|
background-color: var(--bs-primary);
|
||||||
|
border-color: var(--bs-primary); }
|
||||||
|
|
||||||
|
.form-check-input[type="checkbox"]:indeterminate {
|
||||||
|
background-color: var(--bs-primary);
|
||||||
|
border-color: var(--bs-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-range::-webkit-slider-thumb {
|
||||||
|
background-color: var(--bs-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-range::-moz-range-thumb {
|
||||||
|
background-color: var(--bs-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.alert-primary {
|
||||||
|
--bs-alert-bg: var(--bg-primary-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-outline-primary {
|
||||||
|
--bs-btn-color: var(--bs-primary);
|
||||||
|
--bs-btn-border-color: var(--bs-primary);
|
||||||
|
--bs-btn-hover-bg: var(--bs-primary);
|
||||||
|
--bs-btn-hover-border-color: var(--bs-primary);
|
||||||
|
--bs-btn-active-bg: var(--bs-primary);
|
||||||
|
--bs-btn-active-border-color: var(--bs-primary);
|
||||||
|
--bs-btn-disabled-color: var(--bs-primary);
|
||||||
|
--bs-btn-disabled-border-color: var(--bs-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-outline-secondary {
|
||||||
|
--bs-btn-color: var(--bs-secondary);
|
||||||
|
--bs-btn-border-color: var(--bs-secondary);
|
||||||
|
--bs-btn-hover-bg: var(--bs-secondary);
|
||||||
|
--bs-btn-hover-border-color: var(--bs-secondary);
|
||||||
|
--bs-btn-active-bg: var(--bs-secondary);
|
||||||
|
--bs-btn-active-border-color: var(--bs-secondary);
|
||||||
|
--bs-btn-disabled-color: var(--bs-secondary);
|
||||||
|
--bs-btn-disabled-border-color: var(--bs-secondary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.link-primary {
|
||||||
|
color: var(--bs-primary) if($enable-important-utilities, !important, null);
|
||||||
|
text-decoration-color: var(--bs-primary) if($enable-important-utilities, !important, null);
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
color: var(--bs-primary-dark) if($enable-important-utilities, !important, null);
|
||||||
|
text-decoration-color: var(--bs-primary-dark) if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination {
|
||||||
|
--bs-pagination-color: var(--bs-body-bg);
|
||||||
|
--bs-pagination-bg: var(--bs-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress,
|
||||||
|
.progress-stacked {
|
||||||
|
--bs-progress-bar-bg: var(--bs-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-group {
|
||||||
|
--bs-list-group-active-bg: var(--bs-primary);
|
||||||
|
--bs-list-group-active-border-color: var(--bs-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.clipboard-button:hover {
|
||||||
|
color: var(--bs-primary); }
|
||||||
|
|
||||||
|
.clipboard-button:hover > svg {
|
||||||
|
fill: var(--bs-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggler-icon {
|
||||||
|
background-color: var(--bs-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.heading:hover .anchor {
|
||||||
|
color: var(--bs-primary);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
52
assets/scss/common/_variables-dart.scss
Normal file
52
assets/scss/common/_variables-dart.scss
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
// 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;
|
||||||
|
|
||||||
|
$base-url: h.$base-url;
|
||||||
|
|
||||||
|
$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;
|
||||||
|
$navbar-offset-xs: h.$navbar-offset-xs;
|
||||||
|
$navbar-size: h.$navbar-size;
|
||||||
|
$overlay-offset: h.$overlay-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);
|
@@ -2,14 +2,14 @@
|
|||||||
$enable-negative-margins: true;
|
$enable-negative-margins: true;
|
||||||
$enable-important-utilities: true !default;
|
$enable-important-utilities: true !default;
|
||||||
|
|
||||||
// Font awesome variables overrides for theme
|
|
||||||
$fa-font-path: "../fonts";
|
|
||||||
|
|
||||||
// Remove the border from the focused navigation toggler
|
// Remove the border from the focused navigation toggler
|
||||||
$navbar-toggler-focus-width: 0 !default;
|
$navbar-toggler-focus-width: 0 !default;
|
||||||
|
|
||||||
|
$base-url: $base-url;
|
||||||
|
|
||||||
// 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;
|
||||||
@@ -25,6 +25,20 @@ 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
|
||||||
|
$primary-text-emphasis-dark: mix(white, $primary, $dark-mode-tint) !default;
|
||||||
|
$secondary-text-emphasis-dark: mix(white, $secondary, $dark-mode-tint) !default;
|
||||||
|
$link-color-dark: mix(white, $primary, $dark-mode-tint) !default;
|
||||||
|
$primary-bg-subtle-dark: mix(black, $primary, $dark-mode-shade) !default;
|
||||||
|
$primary-border-subtle-dark: mix(black, $primary, $dark-mode-shade / 2) !default;
|
||||||
|
// 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;
|
||||||
|
}
|
||||||
|
}
|
@@ -1,3 +1,18 @@
|
|||||||
.alert-no-decoration {
|
.alert code {
|
||||||
--bs-alert-border-radius: none;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* stylelint-disable declaration-block-no-redundant-longhand-properties */
|
||||||
|
.alert a {
|
||||||
|
color: inherit;
|
||||||
|
|
||||||
|
&:link,
|
||||||
|
&:visited,
|
||||||
|
&:hover,
|
||||||
|
&:active {
|
||||||
|
text-decoration-line: underline;
|
||||||
|
text-decoration-style: dotted;
|
||||||
|
text-decoration-color: var(--bs-body);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* stylelint-enable declaration-block-no-redundant-longhand-properties */
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
// scss-docs-start breadcrumb
|
// scss-docs-start breadcrumb
|
||||||
.breadcrumb {
|
.breadcrumb {
|
||||||
padding-top: 0.3 * $navbar-offset;
|
padding-top: calc(0.3 * var(--navbar-offset));
|
||||||
}
|
}
|
||||||
|
|
||||||
// scss-docs-end breadcrumb
|
// scss-docs-end breadcrumb
|
||||||
|
@@ -8,6 +8,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.btn-social {
|
.btn-social {
|
||||||
|
background-color: transparent;
|
||||||
|
|
||||||
--bs-btn-bg: transparent;
|
--bs-btn-bg: transparent;
|
||||||
--bs-btn-border-width: none;
|
--bs-btn-border-width: none;
|
||||||
--bs-btn-color: var(--bs-secondary);
|
--bs-btn-color: var(--bs-secondary);
|
||||||
@@ -23,5 +25,23 @@
|
|||||||
.btn-social:active,
|
.btn-social:active,
|
||||||
.btn-social.active,
|
.btn-social.active,
|
||||||
.open > .dropdown-toggle.btn-primary {
|
.open > .dropdown-toggle.btn-primary {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-link {
|
||||||
|
--bs-btn-padding-x: 0;
|
||||||
|
}
|
@@ -1,6 +1,10 @@
|
|||||||
// add zoom animation with opacity change on card img hover
|
// add zoom animation with opacity change on card img hover
|
||||||
// source: https://stackoverflow.com/a/43816376
|
// source: https://stackoverflow.com/a/43816376
|
||||||
|
|
||||||
|
.card-img-bg {
|
||||||
|
background-color: var(--#{$prefix}secondary-bg);
|
||||||
|
}
|
||||||
|
|
||||||
.card-img-wrap {
|
.card-img-wrap {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
position: relative;
|
position: relative;
|
||||||
@@ -15,6 +19,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 +56,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 {
|
||||||
@@ -56,18 +68,32 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-zoom card-body-link,
|
.card-zoom .card-body-link {
|
||||||
.card-body-link {
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
color: shade-color($primary, $link-shade-percentage) if($enable-important-utilities, !important, null);
|
color: shade-color($primary, $link-shade-percentage) if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@if $enable-dark-mode {
|
||||||
|
@include color-mode(dark) {
|
||||||
|
.card-zoom .card-body-link {
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
color: $primary-bg-subtle-dark if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// stylelint-enable annotation-no-unknown
|
// stylelint-enable annotation-no-unknown
|
||||||
|
|
||||||
// make tag-link clickable on top of the stretched-link.
|
// make tag-link and card-button clickable on top of the stretched-link.
|
||||||
.card .tag-link {
|
.card .tag-link, .card .card-button {
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.card-button-link {
|
||||||
|
text-decoration: underline if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
@@ -1,20 +0,0 @@
|
|||||||
.utterances {
|
|
||||||
position: relative;
|
|
||||||
box-sizing: border-box;
|
|
||||||
width: 100%;
|
|
||||||
max-width: 760px;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.utterances-frame {
|
|
||||||
color-scheme: light;
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
width: 1px;
|
|
||||||
min-width: 100%;
|
|
||||||
max-width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
border: 0;
|
|
||||||
}
|
|
3
assets/scss/components/_feature.scss
Normal file
3
assets/scss/components/_feature.scss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.feature {
|
||||||
|
margin-top: calc(0.3 * var(--navbar-offset));
|
||||||
|
}
|
30
assets/scss/components/_footer.scss
Normal file
30
assets/scss/components/_footer.scss
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
.footer {
|
||||||
|
// background-color: $gray-800 if($enable-important-utilities, !important, null);
|
||||||
|
color: var(--bs-secondary) if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
.link-bg-footer {
|
||||||
|
color: var(--bs-secondary) if($enable-important-utilities, !important, null);
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
color: var(--bs-tertiary-color) if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $enable-dark-mode {
|
||||||
|
@include color-mode(dark) {
|
||||||
|
.footer {
|
||||||
|
color: $gray-500 if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
.link-bg-footer {
|
||||||
|
color: $gray-500 if($enable-important-utilities, !important, null);
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
color: $gray-400 if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -14,3 +14,16 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mirrorred {
|
||||||
|
-webkit-transform: scaleX(-1);
|
||||||
|
transform: scaleX(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.background-img {
|
||||||
|
--overlay-offset: #{$overlay-offset};
|
||||||
|
|
||||||
|
height: calc(100vh - var(--overlay-offset));
|
||||||
|
width: 100vw;
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
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);
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -1,20 +1,48 @@
|
|||||||
// stylelint-disable annotation-no-unknown
|
// stylelint-disable annotation-no-unknown
|
||||||
|
|
||||||
// Source: https://jsfiddle.net/njhgr40m/
|
// Source: https://jsfiddle.net/njhgr40m/
|
||||||
|
|
||||||
.navbar {
|
.navbar {
|
||||||
|
--bs-navbar-expanded-color: var(--bs-body-bg);
|
||||||
|
--bs-navbar-toggler-color: var(--bs-navbar-hover-color);
|
||||||
|
|
||||||
transition: 0.5s ease-in-out;
|
transition: 0.5s ease-in-out;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
|
|
||||||
|
@each $state, $val in $theme-colors {
|
||||||
|
--bs-navbar-color-#{$state}: #{$val};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-active, .navbar-expanded {
|
.nav-active, .navbar-expanded {
|
||||||
background-color: var(--bs-body-bg);
|
background-color: var(--bs-navbar-expanded-color);
|
||||||
|
border-bottom: 1px solid var(--bs-secondary-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-link {
|
||||||
|
margin: 0 .15rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-contrast .nav-link.active, .navbar-contrast .nav-link.show, .navbar-contrast .nav-link:hover {
|
||||||
|
border-bottom: solid 1px var(--bs-navbar-hover-color);
|
||||||
|
margin-bottom: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-contrast {
|
||||||
|
--bs-navbar-color: white !important;
|
||||||
|
--bs-navbar-hover-color: white !important;
|
||||||
|
--bs-navbar-disabled-color: white !important;
|
||||||
|
--bs-navbar-active-color: white !important;
|
||||||
|
--bs-navbar-toggler-color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-expanded {
|
.navbar-expanded {
|
||||||
box-shadow: $box-shadow-sm;
|
box-shadow: $box-shadow-sm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.nav-item .vr {
|
||||||
|
color: var(--bs-navbar-color);
|
||||||
|
}
|
||||||
|
|
||||||
/* Remove border from toggler */
|
/* Remove border from toggler */
|
||||||
.navbar-toggler {
|
.navbar-toggler {
|
||||||
border: 0 if($enable-important-utilities, !important, null);
|
border: 0 if($enable-important-utilities, !important, null);
|
||||||
@@ -36,7 +64,6 @@
|
|||||||
.toggler-icon {
|
.toggler-icon {
|
||||||
width: 30px;
|
width: 30px;
|
||||||
height: 3px;
|
height: 3px;
|
||||||
background-color: $primary;
|
|
||||||
display: block;
|
display: block;
|
||||||
transition: all 0.2s;
|
transition: all 0.2s;
|
||||||
}
|
}
|
||||||
@@ -82,19 +109,186 @@
|
|||||||
|
|
||||||
/* Color of Toggler when collapsed */
|
/* Color of Toggler when collapsed */
|
||||||
.navbar-toggler.collapsed .toggler-icon {
|
.navbar-toggler.collapsed .toggler-icon {
|
||||||
background-color: #777;
|
background-color: var(--bs-navbar-toggler-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.emphasis {
|
.emphasis, .emphasis-dark, .emphasis-light {
|
||||||
background-color: $black if($enable-important-utilities, !important, null);
|
background-color: var(--bs-navbar-toggler-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
@if $enable-dark-mode {
|
@include color-mode(dark) {
|
||||||
@include color-mode(dark) {
|
.emphasis {
|
||||||
.emphasis {
|
background-color: $white if($enable-important-utilities, !important, null);
|
||||||
background-color: $white if($enable-important-utilities, !important, null);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// stylelint-enable annotation-no-unknown
|
// stylelint-enable annotation-no-unknown
|
||||||
|
|
||||||
|
.navbar .dropdown-divider-bg {
|
||||||
|
color: var(--#{$prefix}navbar-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--dropdown-horizontal-bg: var(--#{$prefix}light);
|
||||||
|
--navbar-offset: #{$navbar-offset-xs};
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-title {
|
||||||
|
display: inline-block;
|
||||||
|
white-space: normal;
|
||||||
|
text-align: center !important;
|
||||||
|
vertical-align: middle;
|
||||||
|
padding: 0 $spacer;
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-container {
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(#{$navbar-size}) {
|
||||||
|
:root {
|
||||||
|
--navbar-offset: #{$navbar-offset};
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-container {
|
||||||
|
width: auto !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-title {
|
||||||
|
text-align: initial !important;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
margin-right: var(--bs-navbar-brand-margin-end);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// adapted from https://www.codeply.com/p/UsTEwDkzNp#
|
||||||
|
.checkbox {
|
||||||
|
opacity: 0;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mode-switch {
|
||||||
|
--#{$prefix}mode-switch-width: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mode-switch .label {
|
||||||
|
border-color: var(--#{$prefix}border-color);
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 1px;
|
||||||
|
border-radius: var(--#{$prefix}mode-switch-width);
|
||||||
|
cursor: pointer;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 5px;
|
||||||
|
position: relative;
|
||||||
|
height: calc(1px + var(--#{$prefix}mode-switch-width) / 2);
|
||||||
|
width: var(--#{$prefix}mode-switch-width);
|
||||||
|
transform: scale(0.9);
|
||||||
|
}
|
||||||
|
|
||||||
|
.notransition {
|
||||||
|
-webkit-transition: none !important;
|
||||||
|
-moz-transition: none !important;
|
||||||
|
-o-transition: none !important;
|
||||||
|
transition: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mode-switch .label .ball {
|
||||||
|
background-color: var(--#{$prefix}secondary-bg);
|
||||||
|
border-radius: 50%;
|
||||||
|
position: absolute;
|
||||||
|
top: 2px;
|
||||||
|
left: 2px;
|
||||||
|
height: calc((var(--#{$prefix}mode-switch-width) / 2) - 5px);
|
||||||
|
width: calc((var(--#{$prefix}mode-switch-width) / 2) - 5px);
|
||||||
|
transition: transform 0.2s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mode-switch .checkbox:checked + .label .ball {
|
||||||
|
transform: translateX(calc((var(--#{$prefix}mode-switch-width) / 2) - 1px));
|
||||||
|
}
|
||||||
|
|
||||||
|
.mode-switch .fa-moon {
|
||||||
|
color: $yellow;
|
||||||
|
transform: scale(0.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
.mode-switch .fa-sun {
|
||||||
|
color: var(--#{$prefix}bs-body-color);
|
||||||
|
transform: scale(0.8);
|
||||||
|
}
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
.pagination {
|
.pagination {
|
||||||
--bs-pagination-bg: var(--bs-primary-bg-subtle);
|
--bs-pagination-bg: var(--bs-primary-bg-subtle);
|
||||||
|
--bs-pagination-color: var(--bs-body-color);
|
||||||
--bs-pagination-border-color: none;
|
--bs-pagination-border-color: none;
|
||||||
--bs-pagination-hover-color: var(--bs-pagination-active-color);
|
--bs-pagination-hover-color: var(--bs-pagination-active-color);
|
||||||
--bs-pagination-hover-bg: var(--bs-pagination-active-bg);
|
--bs-pagination-hover-bg: var(--bs-pagination-active-bg);
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
// scss-docs-start sidebar
|
// scss-docs-start sidebar
|
||||||
.sidebar {
|
.sidebar {
|
||||||
top: $navbar-offset;
|
top: var(--navbar-offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-overflow {
|
.sidebar-overflow {
|
||||||
top: $navbar-offset;
|
top: var(--navbar-offset);
|
||||||
max-height: 90vh;
|
max-height: 90vh;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
@@ -69,24 +69,25 @@
|
|||||||
@if $enable-dark-mode {
|
@if $enable-dark-mode {
|
||||||
@include color-mode(dark) {
|
@include color-mode(dark) {
|
||||||
.sidebar-item {
|
.sidebar-item {
|
||||||
color: var(--bs-tertiary-color);
|
color: var(--bs-body-color);
|
||||||
margin-left: 0 !important;
|
margin-left: 0 !important;
|
||||||
padding-left: 0.85rem !important;
|
padding-left: 0.85rem !important;
|
||||||
|
|
||||||
&.active,
|
&.active,
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
color: var(--bs-secondary-color);
|
color: white !important;
|
||||||
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-toggle {
|
.btn-toggle {
|
||||||
color: var(--bs-tertiary-color);
|
color: var(--bs-body-color);
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
color: $secondary;
|
color: white !important;
|
||||||
background-color: tint-color($primary, 90%);
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
@@ -105,8 +106,8 @@
|
|||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
color: $secondary;
|
color: white !important;
|
||||||
background-color: tint-color($primary, 90%);
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.active {
|
&.active {
|
||||||
|
@@ -6,9 +6,9 @@
|
|||||||
/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
|
/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
|
||||||
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
||||||
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
|
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
|
||||||
/* LineHighlight */ .chroma .hl { background-color: #b8b800 }
|
/* LineHighlight */ .chroma .hl { background-color: #373700 }
|
||||||
/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #64686c }
|
/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #64686c }
|
||||||
/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #6e7681 }
|
/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #999fa8 }
|
||||||
/* Line */ .chroma .line { display: flex; }
|
/* Line */ .chroma .line { display: flex; }
|
||||||
/* Keyword */ .chroma .k { color: #ff7b72 }
|
/* Keyword */ .chroma .k { color: #ff7b72 }
|
||||||
/* KeywordConstant */ .chroma .kc { color: #79c0ff }
|
/* KeywordConstant */ .chroma .kc { color: #79c0ff }
|
||||||
@@ -18,8 +18,8 @@
|
|||||||
/* KeywordReserved */ .chroma .kr { color: #ff7b72 }
|
/* KeywordReserved */ .chroma .kr { color: #ff7b72 }
|
||||||
/* KeywordType */ .chroma .kt { color: #ff7b72 }
|
/* KeywordType */ .chroma .kt { color: #ff7b72 }
|
||||||
/* Name */ .chroma .n { }
|
/* Name */ .chroma .n { }
|
||||||
/* NameAttribute */ .chroma .na { }
|
/* NameAttribute */ .chroma .na { color: #00cccc }
|
||||||
/* NameBuiltin */ .chroma .nb { }
|
/* NameBuiltin */ .chroma .nb { color: #00a2d8 }
|
||||||
/* NameBuiltinPseudo */ .chroma .bp { }
|
/* NameBuiltinPseudo */ .chroma .bp { }
|
||||||
/* NameClass */ .chroma .nc { color: #f0883e; font-weight: bold }
|
/* NameClass */ .chroma .nc { color: #f0883e; font-weight: bold }
|
||||||
/* NameConstant */ .chroma .no { color: #79c0ff; font-weight: bold }
|
/* NameConstant */ .chroma .no { color: #79c0ff; font-weight: bold }
|
||||||
@@ -64,23 +64,23 @@
|
|||||||
/* Operator */ .chroma .o { color: #ff7b72; font-weight: bold }
|
/* Operator */ .chroma .o { color: #ff7b72; font-weight: bold }
|
||||||
/* OperatorWord */ .chroma .ow { color: #ff7b72; font-weight: bold }
|
/* OperatorWord */ .chroma .ow { color: #ff7b72; font-weight: bold }
|
||||||
/* Punctuation */ .chroma .p { }
|
/* Punctuation */ .chroma .p { }
|
||||||
/* Comment */ .chroma .c { color: #8b949e; font-style: italic }
|
/* Comment */ .chroma .c { color: #979fa8; font-style: italic }
|
||||||
/* CommentHashbang */ .chroma .ch { color: #8b949e; font-style: italic }
|
/* CommentHashbang */ .chroma .ch { color: #979fa8; font-style: italic }
|
||||||
/* CommentMultiline */ .chroma .cm { color: #8b949e; font-style: italic }
|
/* CommentMultiline */ .chroma .cm { color: #979fa8; font-style: italic }
|
||||||
/* CommentSingle */ .chroma .c1 { color: #8b949e; font-style: italic }
|
/* CommentSingle */ .chroma .c1 { color: #979fa8; font-style: italic }
|
||||||
/* CommentSpecial */ .chroma .cs { color: #8b949e; font-weight: bold; font-style: italic }
|
/* CommentSpecial */ .chroma .cs { color: #979fa8; font-weight: bold; font-style: italic }
|
||||||
/* CommentPreproc */ .chroma .cp { color: #8b949e; font-weight: bold; font-style: italic }
|
/* CommentPreproc */ .chroma .cp { color: #979fa8; font-weight: bold; font-style: italic }
|
||||||
/* CommentPreprocFile */ .chroma .cpf { color: #8b949e; font-weight: bold; font-style: italic }
|
/* CommentPreprocFile */ .chroma .cpf { color: #979fa8; font-weight: bold; font-style: italic }
|
||||||
/* Generic */ .chroma .g { }
|
/* Generic */ .chroma .g { }
|
||||||
/* GenericDeleted */ .chroma .gd { color: #ffa198; background-color: #490202 }
|
/* GenericDeleted */ .chroma .gd { color: #ffa198; background-color: #490202 }
|
||||||
/* GenericEmph */ .chroma .ge { font-style: italic }
|
/* GenericEmph */ .chroma .ge { font-style: italic }
|
||||||
/* GenericError */ .chroma .gr { color: #ffa198 }
|
/* GenericError */ .chroma .gr { color: #ffa198 }
|
||||||
/* GenericHeading */ .chroma .gh { color: #79c0ff; font-weight: bold }
|
/* GenericHeading */ .chroma .gh { color: #79c0ff; font-weight: bold }
|
||||||
/* GenericInserted */ .chroma .gi { color: #56d364; background-color: #0f5323 }
|
/* GenericInserted */ .chroma .gi { color: #56d364; background-color: #0f5323 }
|
||||||
/* GenericOutput */ .chroma .go { color: #8b949e }
|
/* GenericOutput */ .chroma .go { color: #979fa8 }
|
||||||
/* GenericPrompt */ .chroma .gp { color: #8b949e }
|
/* GenericPrompt */ .chroma .gp { color: #979fa8 }
|
||||||
/* GenericStrong */ .chroma .gs { font-weight: bold }
|
/* GenericStrong */ .chroma .gs { font-weight: bold }
|
||||||
/* GenericSubheading */ .chroma .gu { color: #79c0ff }
|
/* GenericSubheading */ .chroma .gu { color: #79c0ff }
|
||||||
/* GenericTraceback */ .chroma .gt { color: #ff7b72 }
|
/* GenericTraceback */ .chroma .gt { color: #ff7b72 }
|
||||||
/* GenericUnderline */ .chroma .gl { text-decoration: underline }
|
/* GenericUnderline */ .chroma .gl { text-decoration: underline }
|
||||||
/* TextWhitespace */ .chroma .w { color: #6e7681 }
|
/* TextWhitespace */ .chroma .w { color: #999fa8 }
|
||||||
|
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
|
@@ -19,7 +19,7 @@
|
|||||||
/* KeywordType */ .chroma .kt { color: #445588; font-weight: bold }
|
/* KeywordType */ .chroma .kt { color: #445588; font-weight: bold }
|
||||||
/* Name */ .chroma .n { }
|
/* Name */ .chroma .n { }
|
||||||
/* NameAttribute */ .chroma .na { color: #008080 }
|
/* NameAttribute */ .chroma .na { color: #008080 }
|
||||||
/* NameBuiltin */ .chroma .nb { color: #0086b3 }
|
/* NameBuiltin */ .chroma .nb { color: #006b8f }
|
||||||
/* NameBuiltinPseudo */ .chroma .bp { color: #999999 }
|
/* NameBuiltinPseudo */ .chroma .bp { color: #999999 }
|
||||||
/* NameClass */ .chroma .nc { color: #445588; font-weight: bold }
|
/* NameClass */ .chroma .nc { color: #445588; font-weight: bold }
|
||||||
/* NameConstant */ .chroma .no { color: #008080 }
|
/* NameConstant */ .chroma .no { color: #008080 }
|
||||||
@@ -54,20 +54,20 @@
|
|||||||
/* LiteralStringRegex */ .chroma .sr { color: #009926 }
|
/* LiteralStringRegex */ .chroma .sr { color: #009926 }
|
||||||
/* LiteralStringSingle */ .chroma .s1 { color: #dd1144 }
|
/* LiteralStringSingle */ .chroma .s1 { color: #dd1144 }
|
||||||
/* LiteralStringSymbol */ .chroma .ss { color: #990073 }
|
/* LiteralStringSymbol */ .chroma .ss { color: #990073 }
|
||||||
/* LiteralNumber */ .chroma .m { color: #009999 }
|
/* LiteralNumber */ .chroma .m { color: #007a7a }
|
||||||
/* LiteralNumberBin */ .chroma .mb { color: #009999 }
|
/* LiteralNumberBin */ .chroma .mb { color: #007a7a }
|
||||||
/* LiteralNumberFloat */ .chroma .mf { color: #009999 }
|
/* LiteralNumberFloat */ .chroma .mf { color: #007a7a }
|
||||||
/* LiteralNumberHex */ .chroma .mh { color: #009999 }
|
/* LiteralNumberHex */ .chroma .mh { color: #007a7a }
|
||||||
/* LiteralNumberInteger */ .chroma .mi { color: #009999 }
|
/* LiteralNumberInteger */ .chroma .mi { color: #007a7a }
|
||||||
/* LiteralNumberIntegerLong */ .chroma .il { color: #009999 }
|
/* LiteralNumberIntegerLong */ .chroma .il { color: #007a7a }
|
||||||
/* LiteralNumberOct */ .chroma .mo { color: #009999 }
|
/* LiteralNumberOct */ .chroma .mo { color: #007a7a }
|
||||||
/* Operator */ .chroma .o { color: #000000; font-weight: bold }
|
/* Operator */ .chroma .o { color: #000000; font-weight: bold }
|
||||||
/* OperatorWord */ .chroma .ow { color: #000000; font-weight: bold }
|
/* OperatorWord */ .chroma .ow { color: #000000; font-weight: bold }
|
||||||
/* Punctuation */ .chroma .p { }
|
/* Punctuation */ .chroma .p { }
|
||||||
/* Comment */ .chroma .c { color: #999988; font-style: italic }
|
/* Comment */ .chroma .c { color: #6d6d5d; font-style: italic }
|
||||||
/* CommentHashbang */ .chroma .ch { color: #999988; font-style: italic }
|
/* CommentHashbang */ .chroma .ch { color: #6d6d5d; font-style: italic }
|
||||||
/* CommentMultiline */ .chroma .cm { color: #999988; font-style: italic }
|
/* CommentMultiline */ .chroma .cm { color: #6d6d5d; font-style: italic }
|
||||||
/* CommentSingle */ .chroma .c1 { color: #999988; font-style: italic }
|
/* CommentSingle */ .chroma .c1 { color: #6d6d5d; font-style: italic }
|
||||||
/* CommentSpecial */ .chroma .cs { color: #999999; font-weight: bold; font-style: italic }
|
/* CommentSpecial */ .chroma .cs { color: #999999; font-weight: bold; font-style: italic }
|
||||||
/* CommentPreproc */ .chroma .cp { color: #999999; font-weight: bold; font-style: italic }
|
/* CommentPreproc */ .chroma .cp { color: #999999; font-weight: bold; font-style: italic }
|
||||||
/* CommentPreprocFile */ .chroma .cpf { color: #999999; font-weight: bold; font-style: italic }
|
/* CommentPreprocFile */ .chroma .cpf { color: #999999; font-weight: bold; font-style: italic }
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
// stylelint-disable annotation-no-unknown
|
// stylelint-disable annotation-no-unknown
|
||||||
@import "components/syntax-light";
|
@import "syntax-light";
|
||||||
|
|
||||||
.bg,
|
.bg,
|
||||||
.chroma,
|
.chroma,
|
||||||
@@ -8,18 +8,22 @@
|
|||||||
background-color: transparent if($enable-important-utilities, !important, null);
|
background-color: transparent if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.chroma {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chroma code {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
.syntax-highlight {
|
.syntax-highlight {
|
||||||
background-color: var(--bs-light) if($enable-important-utilities, !important, null);
|
background-color: var(--bs-light) if($enable-important-utilities, !important, null);
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.preview-background {
|
|
||||||
background-color: var(--bs-dark-bg-subtle) if($enable-important-utilities, !important, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
@if $enable-dark-mode {
|
@if $enable-dark-mode {
|
||||||
[data-bs-theme="dark"] {
|
[data-bs-theme="dark"] {
|
||||||
@import "components/syntax-dark"; // stylelint-disable-line no-invalid-position-at-import-rule
|
@import "syntax-dark"; // stylelint-disable-line no-invalid-position-at-import-rule
|
||||||
|
|
||||||
.bg,
|
.bg,
|
||||||
.chroma,
|
.chroma,
|
||||||
@@ -34,7 +38,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.bg,
|
.bg,
|
||||||
.chroma {
|
.chroma,
|
||||||
|
.chroma .ge,
|
||||||
|
.chroma .gl,
|
||||||
|
.chroma .gs {
|
||||||
color: #c9d1d9 if($enable-important-utilities, !important, null);
|
color: #c9d1d9 if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -14,11 +14,7 @@ $semi-circle-border: 0.2rem;
|
|||||||
.timeline-#{$state} {
|
.timeline-#{$state} {
|
||||||
--timeline-highlight: var(--#{$prefix}#{$state});
|
--timeline-highlight: var(--#{$prefix}#{$state});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
.timeline-bg-#{$state} {
|
|
||||||
--timeline-connector-bg: var(--#{$prefix}#{$state}-bg-subtle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// scss-docs-end timeline
|
// scss-docs-end timeline
|
||||||
|
|
||||||
@@ -27,10 +23,16 @@ $semi-circle-border: 0.2rem;
|
|||||||
}
|
}
|
||||||
|
|
||||||
.timeline-sm {
|
.timeline-sm {
|
||||||
--timeline-icon-radius: calc(#{$semi-circle-radius} / 2);
|
--timeline-icon-radius: calc(#{$semi-circle-radius} / 2.4);
|
||||||
--timeline-offset: 25%
|
--timeline-offset: 25%
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(sm) {
|
||||||
|
.timeline-sm {
|
||||||
|
--timeline-icon-radius: calc(#{$semi-circle-radius} / 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.timeline::before, .timeline-sm::before {
|
.timeline::before, .timeline-sm::before {
|
||||||
content: "";
|
content: "";
|
||||||
width: 2 * $semi-circle-border;
|
width: 2 * $semi-circle-border;
|
||||||
|
@@ -48,6 +48,13 @@
|
|||||||
font: inherit;
|
font: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#toc-collapse {
|
||||||
|
border-color: var(--bs-secondary-color) !important;
|
||||||
|
border-radius: 0 0 var(--bs-border-radius) var(--bs-border-radius) !important;
|
||||||
|
margin-top: -1.5rem;
|
||||||
|
padding-top: 1.5rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
.toc-button {
|
.toc-button {
|
||||||
--bs-btn-hover-color: var(--bs-primary);
|
--bs-btn-hover-color: var(--bs-primary);
|
||||||
--bs-btn-hover-bg: var(--bs-body-bg);
|
--bs-btn-hover-bg: var(--bs-body-bg);
|
||||||
@@ -56,6 +63,8 @@
|
|||||||
--bs-btn-active-bg: var(--bs-body-bg);
|
--bs-btn-active-bg: var(--bs-body-bg);
|
||||||
--bs-btn-active-border-color: var(--bs-primary);
|
--bs-btn-active-border-color: var(--bs-primary);
|
||||||
|
|
||||||
|
background-color: var(--#{$prefix}body-bg) !important;
|
||||||
|
|
||||||
&.active,
|
&.active,
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
@@ -65,3 +74,32 @@
|
|||||||
outline: none;
|
outline: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@if $enable-dark-mode {
|
||||||
|
[data-bs-theme="dark"] {
|
||||||
|
.toc-button {
|
||||||
|
--bs-btn-color: var(--bs-body-color);
|
||||||
|
--bs-btn-border-color: var(--bs-body-color);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#toc-collapse {
|
||||||
|
border-color: var(--bs-body-color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toc nav a {
|
||||||
|
color: var(--bs-body-color);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.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;
|
@@ -5,7 +5,7 @@
|
|||||||
// stylelint-disable annotation-no-unknown
|
// stylelint-disable annotation-no-unknown
|
||||||
|
|
||||||
// scss-docs-start display-color
|
// scss-docs-start display-color
|
||||||
.d-none-light {
|
.d-none-light, .d-none-inline-light {
|
||||||
display: none if($enable-important-utilities, !important, null);
|
display: none if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -13,13 +13,21 @@
|
|||||||
display: block if($enable-important-utilities, !important, null);
|
display: block if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.d-none-inline-dark {
|
||||||
|
display: inline if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
|
||||||
@if $enable-dark-mode {
|
@if $enable-dark-mode {
|
||||||
@include color-mode(dark) {
|
@include color-mode(dark) {
|
||||||
.d-none-light {
|
.d-none-light {
|
||||||
display: block if($enable-important-utilities, !important, null);
|
display: block if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
.d-none-dark {
|
.d-none-inline-light {
|
||||||
|
display: inline if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
.d-none-dark, .d-none-inline-dark {
|
||||||
display: none if($enable-important-utilities, !important, null);
|
display: none if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -3,30 +3,34 @@
|
|||||||
//
|
//
|
||||||
h1 {
|
h1 {
|
||||||
margin-top: $spacer * 2.5;
|
margin-top: $spacer * 2.5;
|
||||||
scroll-margin-top: $navbar-offset;
|
scroll-margin-top: var(--navbar-offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
h2 {
|
h2 {
|
||||||
margin-top: $spacer * 2;
|
margin-top: $spacer * 2;
|
||||||
scroll-margin-top: $navbar-offset;
|
scroll-margin-top: var(--navbar-offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
h3 {
|
h3 {
|
||||||
margin-top: $spacer * 1.75;
|
margin-top: $spacer * 1.75;
|
||||||
scroll-margin-top: $navbar-offset;
|
scroll-margin-top: var(--navbar-offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
h4 {
|
h4 {
|
||||||
margin-top: $spacer * 1.5;
|
margin-top: $spacer * 1.5;
|
||||||
scroll-margin-top: $navbar-offset;
|
scroll-margin-top: var(--navbar-offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
h5 {
|
h5 {
|
||||||
margin-top: $spacer * 1.25;
|
margin-top: $spacer * 1.25;
|
||||||
scroll-margin-top: $navbar-offset;
|
scroll-margin-top: var(--navbar-offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
h6 {
|
h6 {
|
||||||
margin-top: $spacer;
|
margin-top: $spacer;
|
||||||
scroll-margin-top: $navbar-offset;
|
scroll-margin-top: var(--navbar-offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
|
||||||
|
scroll-margin-top: var(--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
|
2
assets/scss/theme/base.scss
Normal file
2
assets/scss/theme/base.scss
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
// Placeholder for themes extending the core Hinode theme
|
||||||
|
// The file is included last in the build pipeline, but prior to theme.scss
|
@@ -1,17 +1,17 @@
|
|||||||
# toml-docs-start main
|
# toml-docs-start main
|
||||||
title = "Hinode"
|
title = "Hinode"
|
||||||
copyright = "Copyright © 2023 Mark Dumay."
|
copyright = "Copyright © 2024 Mark Dumay."
|
||||||
paginate = 9
|
paginate = 9
|
||||||
enableGitInfo = true
|
enableGitInfo = true
|
||||||
# toml-docs-end main
|
# toml-docs-end main
|
||||||
|
|
||||||
# additional settings
|
# additional settings
|
||||||
googleAnalytics = "G-T85PPZ36GN"
|
baseURL = "https://example.com/"
|
||||||
baseURL = "https://demo.gethinode.com/"
|
|
||||||
canonifyURLs = false
|
canonifyURLs = false
|
||||||
enableEmoji = true
|
enableEmoji = true
|
||||||
enableRobotsTXT = true
|
enableRobotsTXT = true
|
||||||
enableInlineShortcodes = true
|
enableInlineShortcodes = true
|
||||||
|
summaryLength = 20
|
||||||
|
|
||||||
# prevent build failures when using Hugo's Instagram shortcode due to deprecated Instagram API.
|
# prevent build failures when using Hugo's Instagram shortcode due to deprecated Instagram API.
|
||||||
# See https://github.com/gohugoio/hugo/issues/7228#issuecomment-714490456
|
# See https://github.com/gohugoio/hugo/issues/7228#issuecomment-714490456
|
||||||
@@ -24,7 +24,7 @@ timeout = "180s"
|
|||||||
# toml-docs-start language
|
# toml-docs-start language
|
||||||
languageCode = "en-us"
|
languageCode = "en-us"
|
||||||
defaultContentLanguage = "en"
|
defaultContentLanguage = "en"
|
||||||
defaultContentLanguageInSubdir = true
|
defaultContentLanguageInSubdir = false
|
||||||
# toml-docs-end language
|
# toml-docs-end language
|
||||||
|
|
||||||
# toml-docs-start redirect
|
# toml-docs-start redirect
|
||||||
@@ -72,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]
|
||||||
@@ -82,10 +84,18 @@ home = ["HTML", "RSS", "REDIR"]
|
|||||||
permalinkable = false
|
permalinkable = false
|
||||||
name = "xml"
|
name = "xml"
|
||||||
|
|
||||||
|
[minify]
|
||||||
|
[minify.tdewolff.js]
|
||||||
|
keepVarNames = true
|
||||||
|
precision = 0
|
||||||
|
version = 2022
|
||||||
|
[minify.tdewolff.html]
|
||||||
|
keepWhitespace = true
|
||||||
|
|
||||||
[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"
|
||||||
@@ -93,6 +103,12 @@ home = ["HTML", "RSS", "REDIR"]
|
|||||||
[[module.mounts]]
|
[[module.mounts]]
|
||||||
source = "assets"
|
source = "assets"
|
||||||
target = "assets"
|
target = "assets"
|
||||||
|
[[module.mounts]]
|
||||||
|
source = "content"
|
||||||
|
target = "content"
|
||||||
|
[[module.mounts]]
|
||||||
|
source = "data"
|
||||||
|
target = "data"
|
||||||
[[module.mounts]]
|
[[module.mounts]]
|
||||||
source = "i18n"
|
source = "i18n"
|
||||||
target = "i18n"
|
target = "i18n"
|
||||||
@@ -116,4 +132,8 @@ 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"
|
||||||
|
[[module.imports]]
|
||||||
|
path = "github.com/gethinode/mod-utils/v2"
|
||||||
# toml-docs-end modules
|
# toml-docs-end modules
|
||||||
|
@@ -1,31 +1,15 @@
|
|||||||
# toml-docs-start lang-main
|
# toml-docs-start lang-main
|
||||||
[en]
|
[en]
|
||||||
languageName = "English"
|
languageName = "English"
|
||||||
contentDir = "content/en"
|
contentDir = "content"
|
||||||
weight = 1
|
weight = 1
|
||||||
# toml-docs-end lang-main
|
# toml-docs-end lang-main
|
||||||
# toml-docs-start lang-param
|
# toml-docs-start lang-param
|
||||||
[en.params.head]
|
[en.params.head]
|
||||||
tagline = "A Hugo Theme"
|
tagline = "A Hugo Theme"
|
||||||
[en.params.feature]
|
[en.params.social]
|
||||||
link = "about"
|
title = "Follow me"
|
||||||
caption = "About"
|
caption = "I work on everything coding and tweet developer memes"
|
||||||
[en.params.footer]
|
[en.params.footer]
|
||||||
license = "Licensed under Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank' rel='noopener noreferrer'>CC BY-NC-SA 4.0</a>)."
|
# license = "Licensed under Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank' rel='noopener noreferrer'>CC BY-NC-SA 4.0</a>)."
|
||||||
socialTitle = "Follow me"
|
|
||||||
socialCaption = "I work on everything coding and tweet developer memes"
|
|
||||||
# toml-docs-end lang-param
|
# toml-docs-end lang-param
|
||||||
|
|
||||||
[nl]
|
|
||||||
languageName = "Nederlands"
|
|
||||||
contentDir = "content/nl"
|
|
||||||
weight = 2
|
|
||||||
[nl.params.head]
|
|
||||||
tagline = "Een Hugo Thema"
|
|
||||||
[nl.params.feature]
|
|
||||||
link = "over-mij"
|
|
||||||
caption = "Over mij"
|
|
||||||
[nl.params.footer]
|
|
||||||
license = "Gelicenseerd onder Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank' rel='noopener noreferrer'>CC BY-NC-SA 4.0</a>)."
|
|
||||||
socialTitle = "Volg mij"
|
|
||||||
socialCaption = "Ik doe aan programmeren en tweet memes"
|
|
@@ -31,5 +31,5 @@ defaultMarkdownHandler = "goldmark"
|
|||||||
block = true
|
block = true
|
||||||
[goldmark.renderer]
|
[goldmark.renderer]
|
||||||
hardWraps = false
|
hardWraps = false
|
||||||
unsafe = true
|
unsafe = false
|
||||||
xhtml = false
|
xhtml = false
|
@@ -1,34 +1,12 @@
|
|||||||
[[main]]
|
[[main]]
|
||||||
name = "About"
|
name = "Home"
|
||||||
pageRef = "/about/"
|
pageRef = "/"
|
||||||
weight = 10
|
weight = 10
|
||||||
|
|
||||||
[[main]]
|
|
||||||
name = "Blog"
|
|
||||||
pageRef = "/blog/"
|
|
||||||
weight = 20
|
|
||||||
|
|
||||||
[[main]]
|
|
||||||
name = "Projects"
|
|
||||||
pageRef = "/projects/"
|
|
||||||
weight = 30
|
|
||||||
|
|
||||||
[[main]]
|
|
||||||
name = "Sample project"
|
|
||||||
pageRef = "/projects/sample-project/"
|
|
||||||
parent = "Projects"
|
|
||||||
weight = 1
|
|
||||||
|
|
||||||
[[main]]
|
|
||||||
name = "Another project"
|
|
||||||
pageRef = "/projects/another-project/"
|
|
||||||
parent = "Projects"
|
|
||||||
weight = 2
|
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Tags"
|
name = "Tags"
|
||||||
pageRef = "/tags/"
|
pageRef = "/tags"
|
||||||
weight = 40
|
weight = 20
|
||||||
|
|
||||||
[[social]]
|
[[social]]
|
||||||
name = "LinkedIn"
|
name = "LinkedIn"
|
||||||
|
@@ -5,27 +5,32 @@
|
|||||||
enableDarkMode = true
|
enableDarkMode = true
|
||||||
modes = ["light", "dark"]
|
modes = ["light", "dark"]
|
||||||
canonifyAssetsURLs = false
|
canonifyAssetsURLs = false
|
||||||
|
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 images
|
||||||
[modules]
|
[images]
|
||||||
core = ["bootstrap", "flexsearch", "fontawesome"]
|
[images.cloudinary]
|
||||||
optional = ["leaflet", "katex"]
|
host = "cloudinary"
|
||||||
excludeSCSS = ["bootstrap"]
|
[images.imagekit]
|
||||||
disableTemplate = ["katex"]
|
host = "imagekit"
|
||||||
[modules.fontawesome]
|
[images.imgix]
|
||||||
inline = true
|
host = "imgix"
|
||||||
debug = true
|
# toml-docs-end images
|
||||||
skipMissing = false
|
|
||||||
# toml-docs-end modules
|
|
||||||
|
|
||||||
# toml-docs-start debugging
|
# toml-docs-start debugging
|
||||||
[debugging]
|
[debugging]
|
||||||
showJS = false
|
showJS = false
|
||||||
showSCSS = false
|
showSCSS = false
|
||||||
|
purgeHTMLComments = false
|
||||||
# toml-docs-end debugging
|
# toml-docs-end debugging
|
||||||
|
|
||||||
# toml-docs-start docs
|
# toml-docs-start docs
|
||||||
@@ -37,11 +42,15 @@
|
|||||||
|
|
||||||
# toml-docs-start home
|
# toml-docs-start home
|
||||||
[home]
|
[home]
|
||||||
sections = ["blog", "projects"]
|
# sections = ["posts"]
|
||||||
featurePhoto = "/img/sunrise.jpg" # source: https://unsplash.com/photos/ZX6BPboJrYk
|
|
||||||
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
|
||||||
@@ -50,11 +59,16 @@
|
|||||||
logo = "/img/logo_icon.svg"
|
logo = "/img/logo_icon.svg"
|
||||||
color = "body"
|
color = "body"
|
||||||
fixed = true
|
fixed = true
|
||||||
offset = "3.8em"
|
overlay = false
|
||||||
|
overlayMode = "dark"
|
||||||
|
horizontal = false
|
||||||
|
offset = "5.5rem"
|
||||||
search = true
|
search = true
|
||||||
|
searchModal = false
|
||||||
breadcrumb = true
|
breadcrumb = true
|
||||||
toc = true
|
toc = true
|
||||||
sidebar = true
|
sidebar = true
|
||||||
|
size = "md"
|
||||||
# toml-docs-end navigation
|
# toml-docs-end navigation
|
||||||
|
|
||||||
# toml-docs-start messages
|
# toml-docs-start messages
|
||||||
@@ -78,7 +92,7 @@
|
|||||||
[[sharing.providers]]
|
[[sharing.providers]]
|
||||||
name = "Twitter"
|
name = "Twitter"
|
||||||
url = "https://twitter.com/home?status={url}"
|
url = "https://twitter.com/home?status={url}"
|
||||||
icon = "fab twitter"
|
icon = "fab x-twitter"
|
||||||
weight = 20
|
weight = 20
|
||||||
|
|
||||||
[[sharing.providers]]
|
[[sharing.providers]]
|
||||||
@@ -102,37 +116,21 @@
|
|||||||
# toml-docs-end sharing
|
# toml-docs-end sharing
|
||||||
|
|
||||||
# toml-docs-start sections
|
# toml-docs-start sections
|
||||||
[sections]
|
# [sections]
|
||||||
[sections.blog]
|
# [sections.posts]
|
||||||
title = "Blog"
|
# title = "Posts"
|
||||||
sort = "date"
|
# sort = "date"
|
||||||
reverse = true
|
# reverse = true
|
||||||
nested = true
|
# nested = true
|
||||||
cols = 3
|
# cols = 3
|
||||||
color = ""
|
# color = ""
|
||||||
padding = "0"
|
# padding = "0"
|
||||||
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]
|
|
||||||
title = "Projects"
|
|
||||||
layout = "card"
|
|
||||||
sort = "title"
|
|
||||||
reverse = false
|
|
||||||
nested = true
|
|
||||||
cols = 1
|
|
||||||
background = "body-tertiary"
|
|
||||||
color = "body"
|
|
||||||
padding = "3"
|
|
||||||
header = "none"
|
|
||||||
footer = "tags"
|
|
||||||
orientation = "horizontal"
|
|
||||||
style = "border-1 card-emphasize"
|
|
||||||
homepage = 3
|
|
||||||
separator = false
|
|
||||||
# toml-docs-end sections
|
# toml-docs-end sections
|
||||||
|
|
||||||
[favicon]
|
[favicon]
|
||||||
@@ -151,10 +149,14 @@
|
|||||||
dark = "#212529"
|
dark = "#212529"
|
||||||
# toml-docs-end theme-colors
|
# toml-docs-end theme-colors
|
||||||
themeOpacity = "10"
|
themeOpacity = "10"
|
||||||
|
darkModeShade = "20%"
|
||||||
|
darkModeTint = "40%"
|
||||||
# toml-docs-start font
|
# toml-docs-start font
|
||||||
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
|
||||||
|
themeFontPreload = "/fonts/inter-v12-latin-regular.woff2"
|
||||||
|
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
|
||||||
@@ -186,21 +188,5 @@
|
|||||||
images = ["logo.png"]
|
images = ["logo.png"]
|
||||||
locale = "en_US"
|
locale = "en_US"
|
||||||
|
|
||||||
[comments]
|
|
||||||
enabled = false
|
|
||||||
repo = "" # Replace with your repository.
|
|
||||||
#issueTerm = "pathname" # pathname, url, title, og:title
|
|
||||||
#label = "comment"
|
|
||||||
# By default, light and dark mode correspond to github-light and github-dark, respectively.
|
|
||||||
# Optional values: github-light, github-dark, preferred-color-scheme, github-dark-orange, icy-dark, dark-blue, photon-dark.
|
|
||||||
#theme = ""
|
|
||||||
|
|
||||||
[links]
|
[links]
|
||||||
bs_badge_heading = "https://getbootstrap.com/docs/5.2/components/badge/#headings"
|
hinode = "https://gethinode.com"
|
||||||
hinode_docs = "https://gethinode.com/docs"
|
|
||||||
hugo_imaging = "https://gohugo.io/content-management/image-processing/#imaging-configuration"
|
|
||||||
mozilla_image = "https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images"
|
|
||||||
observatory = "https://observatory.mozilla.org/analyze/demo.gethinode.com"
|
|
||||||
pagespeed = "https://pagespeed.web.dev/report?url=https%3A%2F%2Fdemo.gethinode.com%2F"
|
|
||||||
utterances = "https://utteranc.es"
|
|
||||||
|
|
||||||
|
@@ -7,16 +7,15 @@ for = '/**'
|
|||||||
X-XSS-Protection = "1; mode=block"
|
X-XSS-Protection = "1; mode=block"
|
||||||
Content-Security-Policy = """\
|
Content-Security-Policy = """\
|
||||||
default-src 'self'; \
|
default-src 'self'; \
|
||||||
script-src 'self' \
|
script-src 'self' https://*.google-analytics.com https://*.googletagmanager.com; \
|
||||||
https://utteranc.es/client.js https://*.google-analytics.com https://*.googletagmanager.com; \
|
style-src 'self' https://fonts.googleapis.com https://www.youtube.com; \
|
||||||
style-src 'self' https://utteranc.es https://fonts.googleapis.com https://www.youtube.com; \
|
|
||||||
object-src 'none'; \
|
object-src 'none'; \
|
||||||
base-uri 'self'; \
|
base-uri 'self'; \
|
||||||
connect-src 'self'
|
connect-src 'self'
|
||||||
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
|
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
|
||||||
font-src 'self' https://fonts.gstatic.com; \
|
font-src 'self' https://fonts.gstatic.com; \
|
||||||
frame-src 'self' https://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com; \
|
frame-src 'self' https://www.youtube-nocookie.com https://www.youtube.com; \
|
||||||
img-src 'self' data: https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \
|
img-src 'self' data: https://*.imgix.net https://*.imagekit.io https://*.cloudinary.com https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \
|
||||||
manifest-src 'self'; \
|
manifest-src 'self'; \
|
||||||
media-src 'self' \
|
media-src 'self' \
|
||||||
"""
|
"""
|
||||||
|
23
config/ci/hugo.toml
Normal file
23
config/ci/hugo.toml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# cachedir default on POSIX: '/tmp/hugo_cache_runner'
|
||||||
|
# cachedir default on Windows: '~\AppData\Local\hugo_cache'
|
||||||
|
# cachedir default on macOS: '/Users/runner/Library/Caches/hugo_cache'
|
||||||
|
|
||||||
|
[caches]
|
||||||
|
[caches.assets]
|
||||||
|
dir = ':cacheDir/resources/_gen' # map to cacheDir instead of resourceDir to utilize GitHub action/cache
|
||||||
|
maxAge = -1
|
||||||
|
[caches.getcsv]
|
||||||
|
dir = ':cacheDir/:project'
|
||||||
|
maxAge = -1
|
||||||
|
[caches.getjson]
|
||||||
|
dir = ':cacheDir/:project'
|
||||||
|
maxAge = -1
|
||||||
|
[caches.getresource]
|
||||||
|
dir = ':cacheDir/:project'
|
||||||
|
maxAge = -1
|
||||||
|
[caches.images]
|
||||||
|
dir = ':cacheDir/resources/_gen' # map to cacheDir instead of resourceDir to utilize GitHub action/cache
|
||||||
|
maxAge = -1
|
||||||
|
[caches.modules]
|
||||||
|
dir = ':cacheDir/modules'
|
||||||
|
maxAge = -1
|
@@ -14,11 +14,14 @@ 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/components/_video.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 +29,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',
|
||||||
|
15
content/_index.md
Normal file
15
content/_index.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
title: Welcome to Hinode!
|
||||||
|
description: A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
||||||
|
thumbnail:
|
||||||
|
url: /img/sunrise.jpg
|
||||||
|
author: Harris Vo
|
||||||
|
authorURL: https://unsplash.com/@hoanvokim
|
||||||
|
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
||||||
|
originName: Unsplash
|
||||||
|
actions:
|
||||||
|
get-started:
|
||||||
|
url: "https://gethinode.com/docs"
|
||||||
|
title: "Get started"
|
||||||
|
icon: "fas book-open"
|
||||||
|
---
|
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
author: Mark Dumay
|
|
||||||
title: Welcome to Hinode!
|
|
||||||
---
|
|
||||||
|
|
||||||
A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
|
@@ -1,43 +0,0 @@
|
|||||||
---
|
|
||||||
title: About
|
|
||||||
description: Hinode is a clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
|
||||||
date: 2022-04-11
|
|
||||||
updated: 2023-08-02
|
|
||||||
showComments: false
|
|
||||||
---
|
|
||||||
|
|
||||||
<p class="text-center"><svg class="img-fluid w-50"><use href="/img/logo_var.svg#logo"></use></svg></p>
|
|
||||||
|
|
||||||
<section class="section section-sm mt-5 mb-5">
|
|
||||||
<div class="container-fluid">
|
|
||||||
<div class="row justify-content-center text-center">
|
|
||||||
<div class="col-lg-4">
|
|
||||||
{{< icon fab bootstrap fa-2xl >}}
|
|
||||||
<h2 class="h4">Bootstrap framework</h2>
|
|
||||||
<p>Build fast, responsive sites with Bootstrap 5. Easily customize your site with the source Sass files.</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-4">
|
|
||||||
{{< icon fas magnifying-glass fa-2xl >}}
|
|
||||||
<h2 class="h4">Full text search</h2>
|
|
||||||
<p>Search your site with FlexSearch, a full-text search library with zero dependencies.</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-4">
|
|
||||||
{{< icon fas code fa-2xl >}}
|
|
||||||
<h2 class="h4">Development tools</h2>
|
|
||||||
<p>Use Node Package Manager to automate the build process and to keep track of dependencies.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
Additional features include:
|
|
||||||
|
|
||||||
* Switching between light mode and dark mode
|
|
||||||
* Support for multiple languages
|
|
||||||
* Reusable Bootstrap components through configurable shortcodes and partials
|
|
||||||
* Versioned documentation, including sidebar navigation and version switcher
|
|
||||||
* Embedded comments through light-weight integration with GitHub via [utteranc.es]({{< param "links.utterances" >}})
|
|
||||||
* Reponsive image handling for multiple screen sizes and resolutions
|
|
||||||
* Optimized search results, scoring 100 points for SEO on [PageSpeed Insights]({{< param "links.pagespeed" >}})
|
|
||||||
* Secure by default, scoring A+ on [Mozilla Observatory test]({{< param "links.observatory" >}})
|
|
||||||
{.tickmark}
|
|
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
author: Mark Dumay
|
|
||||||
title: Welkom bij Hinode!
|
|
||||||
---
|
|
||||||
|
|
||||||
Een documentatie en blog thema voor Hugo gebaseerd op Bootstrap 5.
|
|
@@ -1,50 +0,0 @@
|
|||||||
---
|
|
||||||
slug: over-mij
|
|
||||||
title: Over mij
|
|
||||||
description: Een blog en documentatie thema voor Hugo gebaseerd op Bootstrap 5.
|
|
||||||
date: 2023-02-17
|
|
||||||
updated: 2023-08-02
|
|
||||||
showComments: false
|
|
||||||
---
|
|
||||||
|
|
||||||
<p class="text-center"><svg class="img-fluid w-50"><use href="/img/logo_var.svg#logo"></use></svg></p>
|
|
||||||
|
|
||||||
<section class="section section-sm mt-5">
|
|
||||||
<div class="container-fluid">
|
|
||||||
<div class="row justify-content-center text-center">
|
|
||||||
<div class="row justify-content-center text-center">
|
|
||||||
<div class="col-lg-4">
|
|
||||||
{{< icon fab bootstrap fa-2xl >}}
|
|
||||||
<h2 class="h4">Bootstrap raamwerk</h2>
|
|
||||||
<p>Bouw snelle websites geschikt voor mobiele en desktop schermen met Bootstrap 5. Pas de site eenvoudig aan met bronbestanden in Sass.</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-4">
|
|
||||||
{{< icon fas magnifying-glass fa-2xl >}}
|
|
||||||
<h2 class="h4">Volledig doorzoekbaar</h2>
|
|
||||||
<p>Doorzoek je site met FlexSearch, een software bibliotheek zonder afhankelijkheden.</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-4">
|
|
||||||
{{< icon fas code fa-2xl >}}
|
|
||||||
<h2 class="h4">Ontwikkelgereedschap</h2>
|
|
||||||
<p>Gebruik Node Package Manager om het bouwproces inclusief versiebeheer volledig te automatiseren.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
Overige functies:
|
|
||||||
|
|
||||||
* Omschakelen tussen donkere en lichte modus
|
|
||||||
* Ondersteuning voor meerdere talen
|
|
||||||
* Herbruikbare Bootstrap componenten via shortcodes en partials
|
|
||||||
* Versiebeheer van documentatiepagina's, inclusief secundaire navigatie en selectie van versies
|
|
||||||
* Integreren van commentaar via [utteranc.es]({{< param "links.utterances" >}})
|
|
||||||
* Optimalisering van foto's voor meerdere schermafmetingen en resoluties
|
|
||||||
* Optimale zoekresultaten, met 100 punten voor SEO volgens [PageSpeed Insights]({{< param "links.pagespeed" >}})
|
|
||||||
* Veilige communicatie, met een score van A+ volgens [Mozilla Observatory]({{< param "links.observatory" >}})
|
|
||||||
{.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.
|
|
@@ -1,291 +0,0 @@
|
|||||||
---
|
|
||||||
author: Mark Dumay
|
|
||||||
title: Bootstrap elementen
|
|
||||||
slug: bootstrap-elementen
|
|
||||||
date: 2023-02-17
|
|
||||||
description: Gebruik shortcodes om eenvoudig Bootstrap elementen toe te voegen.
|
|
||||||
tags: ["bootstrap", "shortcode"]
|
|
||||||
thumbnail: img/boots.jpg
|
|
||||||
photoCredits: <a href="https://unsplash.com/@nate_dumlao">Nathan Dumlao</a>
|
|
||||||
photoSource: <a href="https://unsplash.com/photos/QLPWQvHvmII">Unsplash</a>
|
|
||||||
---
|
|
||||||
|
|
||||||
Hinode beschikt over meerdere shortcodes om eenvoudig Bootstrap elementen toe te voegen aan je website. De [officiële documentatie]({{< param "links.hinode_docs" >}}) bevat meer details.
|
|
||||||
|
|
||||||
## Accordion
|
|
||||||
|
|
||||||
De volgende shortcode toont een accordion met drie elementen, waarvan de eerste is uitgeklapt.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* accordion */>}}
|
|
||||||
{{</* accordion-item header="Accordion Item #1" show="true" */>}}
|
|
||||||
Dit is de inhoud van het eerste element met ondersteuning voor HTML. De waarde <code>show</code>
|
|
||||||
voor het argument <code>class</code> geeft aan dat het element uitgeklapt moet worden.
|
|
||||||
{{</* /accordion-item */>}}
|
|
||||||
{{</* accordion-item header="Accordion Item #2" */>}}
|
|
||||||
Dit is de inhoud van het tweede element. Het ondersteunt ook HTML.
|
|
||||||
{{</* /accordion-item */>}}
|
|
||||||
{{</* accordion-item header="Accordion Item #3" */>}}
|
|
||||||
Dit is de inhoud van het derde element.
|
|
||||||
{{</* /accordion-item */>}}
|
|
||||||
{{</* /accordion */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Alert
|
|
||||||
|
|
||||||
De volgende shortcode toont een waarschuwing.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* alert color="danger" dismissible="true" */>}}
|
|
||||||
Een eenvoudige waarschuwing
|
|
||||||
{{</* /alert */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Badge
|
|
||||||
|
|
||||||
Gebruik HTML code om een label toe te voegen aan een titel. De Bootstrap [documentatie]({{< param "links.bs_badge_heading" >}}) beschrijft meer opties.
|
|
||||||
|
|
||||||
{{< example >}}
|
|
||||||
<h1>Voorbeeldtekst met grootte één <span class="badge bg-secondary">Nieuw</span></h1>
|
|
||||||
<h2>Voorbeeldtekst met grootte twee <span class="badge bg-secondary">Nieuw</span></h2>
|
|
||||||
<h3>Voorbeeldtekst met grootte drie <span class="badge bg-secondary">Nieuw</span></h3>
|
|
||||||
<h4>Voorbeeldtekst met grootte vier <span class="badge bg-secondary">Nieuw</span></h4>
|
|
||||||
<h5>Voorbeeldtekst met grootte vijf <span class="badge bg-secondary">Nieuw</span></h5>
|
|
||||||
<h6>Voorbeeldtekst met grootte zes <span class="badge bg-secondary">Nieuw</span></h6>
|
|
||||||
{{< /example >}}
|
|
||||||
|
|
||||||
## Breadcrumb
|
|
||||||
|
|
||||||
De volgende shortcode toont het navigatiepad voor de blog pagina.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* breadcrumb path="blog" */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Button
|
|
||||||
|
|
||||||
De volgende shortcode toont een knop met een label en een aanwijzing.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* button color="secondary" tooltip="Toon je ongelezen berichten" href="#!" badge="99+" */>}}
|
|
||||||
Inbox
|
|
||||||
{{</* /button */>}}
|
|
||||||
{{< /example>}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Button group
|
|
||||||
|
|
||||||
De volgende shortcode toont een groep van drie knoppen.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* button-group aria-label="Basic example" */>}}
|
|
||||||
{{</* button color="primary" href="#!" */>}}Links{{</* /button */>}}
|
|
||||||
{{</* button color="primary" href="#!" */>}}Midden{{</* /button */>}}
|
|
||||||
{{</* button color="primary" href="#!" */>}}Rechts{{</* /button */>}}
|
|
||||||
{{</* /button-group */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Card
|
|
||||||
|
|
||||||
De volgende shortcode toont een kaart dat linkt naar de [over mij]({{< ref "about" >}}) pagina. De kaart bevat een titel.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* card path="about" padding="3" class="w-50" color="body-tertiary" header="publication" footer="none" */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Carousel
|
|
||||||
|
|
||||||
De volgende shortcode toont een carousel met drie pagina's, in een verhouding van 16x9 voor een breedte van 67% op grotere schermen.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* carousel ratio="16x9" class="col-sm-12 col-lg-8 mx-auto" */>}}
|
|
||||||
{{</* img src="img/coffee.jpg" caption="pagina 1" */>}}
|
|
||||||
{{</* img src="img/phone.jpg" caption="pagina 2" */>}}
|
|
||||||
{{</* img src="img/dunes.jpg" caption="pagina 3" */>}}
|
|
||||||
{{</* /carousel */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Collapse
|
|
||||||
|
|
||||||
De volgende shortcode toont een knop die een informatiepaneel toont of verbergt.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* button collapse="collapse-1" */>}}
|
|
||||||
Trigger panel
|
|
||||||
{{</* /button */>}}
|
|
||||||
|
|
||||||
{{</* collapse id="collapse-1" class="p-3 border rounded" */>}}
|
|
||||||
Dit is een voorbeeldtekst. Het informatiepaneel is <i>standaard verborgen </i> maar wordt getoond als
|
|
||||||
de gebruiker op de bijbehorende knop drukt.
|
|
||||||
{{</* /collapse */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Command prompt
|
|
||||||
|
|
||||||
De volgende shortcode toont een prompt voor bash.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* command */>}}
|
|
||||||
export MY_VAR=123
|
|
||||||
{{</* /command */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
Voeg `user` en `host` om de gebruikerscontext op te geven. Als aanvulling, `(out)` definieert een outputregel en `\` is een markering die aangeeft dat de regel doorgaat op de volgende regel.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* command user="user" host="localhost" */>}}
|
|
||||||
export MY_VAR=123
|
|
||||||
echo "hello"
|
|
||||||
(out)hello
|
|
||||||
echo one \
|
|
||||||
two \
|
|
||||||
three
|
|
||||||
(out)one two three
|
|
||||||
echo "goodbye"
|
|
||||||
(out)goodbye
|
|
||||||
{{</* /command */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Docs
|
|
||||||
|
|
||||||
Gebruik de volgende shortcode om de inhoud van een `toml` of `scss` bestand te tonen.
|
|
||||||
|
|
||||||
{{< docs name="theme-colors" file="config/_default/params.toml" >}}
|
|
||||||
|
|
||||||
## Icon
|
|
||||||
|
|
||||||
De volgende shortcodes tonen drie verschillende iconen:
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* fa square-check */>}}
|
|
||||||
{{</* fab linkedin */>}}
|
|
||||||
{{</* fas circle-check */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Image
|
|
||||||
|
|
||||||
De volgende shortcode toont een plaatje met afgeronde hoeken en een 21x9 verhouding.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* image src="img/flowers.jpg" ratio="21x9" caption="Onderschrift" class="rounded" */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Nav
|
|
||||||
|
|
||||||
De volgende shortcode toont een groep met verticale tabbladen.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* nav type="pills" vertical="true" */>}}
|
|
||||||
{{</* nav-item header="Nav Item #1" show="true" */>}}
|
|
||||||
Dit is de inhoud van het eerste element met ondersteuning voor HTML. De waarde <code>show</code>
|
|
||||||
voor het argument <code>class</code> geeft aan dat het element uitgeklapt moet worden.
|
|
||||||
{{</* /nav-item */>}}
|
|
||||||
{{</* nav-item header="Nav Item #2" */>}}
|
|
||||||
Dit is de inhoud van het tweede element. Het ondersteunt ook HTML.
|
|
||||||
{{</* /nav-item */>}}
|
|
||||||
{{</* nav-item header="Nav Item #3" */>}}
|
|
||||||
Dit is de inhoud van het derde element.
|
|
||||||
{{</* /nav-item */>}}
|
|
||||||
{{</* /nav */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Navbar
|
|
||||||
|
|
||||||
De volgende shortcode toont een navigatiemenu.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* navbar path="about" color="primary" size="md" search="false" menus="sample" title="Brand" mode="false" */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Release
|
|
||||||
|
|
||||||
De volgende shortcode toont een knop voor een nieuwe release.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* release version="v0.14.1" */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Spinner
|
|
||||||
|
|
||||||
De volgende shortcode toont een ronddraaiende cirkel.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* spinner color="info" class="text-center" */>}}
|
|
||||||
Loading...
|
|
||||||
{{</* /spinner */>}}
|
|
||||||
{{< /example>}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Timeline
|
|
||||||
|
|
||||||
De volgende shortcode toont een tijdslijn met het bestand `data/timeline-nl.yml` als input.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* timeline data="timeline-nl" */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Toast
|
|
||||||
|
|
||||||
De volgende shortcode toont een knop die een bericht laat verschijnen op het scherm.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* button toast="toast-example-1" */>}}
|
|
||||||
Toon bericht 1
|
|
||||||
{{</* /button */>}}
|
|
||||||
|
|
||||||
{{</* button toast="toast-example-2" */>}}
|
|
||||||
Toon bericht 2
|
|
||||||
{{</* /button */>}}
|
|
||||||
|
|
||||||
{{</* toast id="toast-example-1" header="Eerste titel" */>}}
|
|
||||||
Dit is het eerste bericht.
|
|
||||||
{{</* /toast */>}}
|
|
||||||
|
|
||||||
{{</* toast id="toast-example-2" header="Tweede titel" */>}}
|
|
||||||
Dit is het tweede bericht.
|
|
||||||
{{</* /toast */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Tooltip
|
|
||||||
|
|
||||||
De volgende shortcode toont een uitleg voor een gekleurde link.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* tooltip color="primary" title="Tooltip" href="#!" */>}}Tooltip{{</* /tooltip */>}} demonstratie
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
@@ -1,37 +0,0 @@
|
|||||||
---
|
|
||||||
author: Mark Dumay
|
|
||||||
title: Componenten
|
|
||||||
slug: componenten
|
|
||||||
date: 2023-07-21
|
|
||||||
description: Gebruik shortcodes om voorgedefiniëerde componenten toe te voegen die gebruikmaken van externe libraries.
|
|
||||||
tags: ["bootstrap", "shortcode"]
|
|
||||||
thumbnail: img/puzzle.jpg
|
|
||||||
photoCredits: <a href="https://unsplash.com/@ryoji__iwata">Ryoji Iwata</a>
|
|
||||||
photoSource: <a href="https://unsplash.com/photos/5siQcvSxCP8">Unsplash</a>
|
|
||||||
modules: ["katex", "leaflet"]
|
|
||||||
---
|
|
||||||
|
|
||||||
Hinode biedt meerdere shortcodes aan bovenop de gebruikelijke [Bootstrap elementen]({{< relref "bootstrap-elements" >}}). Zie de [officiële documentatie]({{< param "links.hinode_docs" >}}) voor meer details.
|
|
||||||
|
|
||||||
## Formule (KaTeX)
|
|
||||||
|
|
||||||
De volgende markdown code genereert twee wiskundige formules met behulp van KaTeX.
|
|
||||||
|
|
||||||
{{< example lang="markdown" >}}
|
|
||||||
Dit is een inline $-b \pm \sqrt{b^2 - 4ac} \over 2a$ formule
|
|
||||||
|
|
||||||
Dit is geen inline formule:
|
|
||||||
|
|
||||||
$$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
|
|
||||||
|
|
||||||
De volgende shortcode toont een interactieve kaart van Amsterdam.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* map lat=52.377 long=4.90 zoom=13 popup="Amsterdam CS" popup-lat=52.378062 popup-long=4.900562 */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
48
data/dimensions.yml
Normal file
48
data/dimensions.yml
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
- ratio: 4x3
|
||||||
|
dimensions:
|
||||||
|
- 576x432
|
||||||
|
- 768x576
|
||||||
|
- 992x744
|
||||||
|
- 1200x900
|
||||||
|
- 1400x1050
|
||||||
|
- 2800x2100
|
||||||
|
- ratio: 3x2
|
||||||
|
dimensions:
|
||||||
|
- 576x384
|
||||||
|
- 768x512
|
||||||
|
- 992x661
|
||||||
|
- 1200x800
|
||||||
|
- 1400x933
|
||||||
|
- 2800x1867
|
||||||
|
- ratio: 1x1
|
||||||
|
dimensions:
|
||||||
|
- 576x576
|
||||||
|
- 768x768
|
||||||
|
- 992x992
|
||||||
|
- 1200x1200
|
||||||
|
- 1400x1400
|
||||||
|
- 2800x2800
|
||||||
|
- ratio: 16x9
|
||||||
|
dimensions:
|
||||||
|
- 576x324
|
||||||
|
- 768x432
|
||||||
|
- 992x558
|
||||||
|
- 1200x675
|
||||||
|
- 1400x788
|
||||||
|
- 2800x1575
|
||||||
|
- ratio: 21x9
|
||||||
|
dimensions:
|
||||||
|
- 576x247
|
||||||
|
- 768x329
|
||||||
|
- 992x425
|
||||||
|
- 1200x514
|
||||||
|
- 1400x600
|
||||||
|
- 2800x1200
|
||||||
|
- ratio: auto
|
||||||
|
dimensions:
|
||||||
|
- 576
|
||||||
|
- 768
|
||||||
|
- 992
|
||||||
|
- 1200
|
||||||
|
- 1400
|
||||||
|
- 2800
|
35
data/structures/abbr.yml
Normal file
35
data/structures/abbr.yml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
comment: >-
|
||||||
|
Creates an HTML element that shows the long form of an abbrevitation. The
|
||||||
|
abbreviation data is centrally stored in a data file. By default, the
|
||||||
|
shortcode uses `abbr.yaml` with translation support.
|
||||||
|
|
||||||
|
The data file is expected to store key-value pairs, where `id` is the
|
||||||
|
lower-case abbrevation and `long` its long form. The following example
|
||||||
|
illustrates this using YML:
|
||||||
|
|
||||||
|
- id: css
|
||||||
|
long: `Cascading Style Sheets`
|
||||||
|
arguments:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
position: 0
|
||||||
|
optional: false
|
||||||
|
comment: >-
|
||||||
|
Case-insensitive key of the abbreviation. In shorthand notation, this is
|
||||||
|
the first (and only) matched argument. Non-alphanumeric keys must be quoted.
|
||||||
|
data:
|
||||||
|
type: string
|
||||||
|
default: abbr.yaml
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Filename of the abbrevation input. You can omit the file extension. The
|
||||||
|
file should reside in the `data` folder. The data supports language
|
||||||
|
extensions. For example, `abbr.en.yaml` refers to the English translation
|
||||||
|
of the abbrevation data. The filename `abbr.yaml` is used when no suitable
|
||||||
|
translation is found.
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Class attribute of the abbr element. For example, specify `initialism` for
|
||||||
|
a slightly smaller font size.
|
19
data/structures/accordion-item.yml
Normal file
19
data/structures/accordion-item.yml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
comment: >-
|
||||||
|
Defines an individual accordion item.
|
||||||
|
arguments:
|
||||||
|
header:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: Header of the accordion item.
|
||||||
|
show:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: Flag to indicate an item should be shown as collapsed.
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the accordion item.
|
||||||
|
body:
|
||||||
|
optional: false
|
||||||
|
comment: Content of the accordion item.
|
||||||
|
group: shortcode
|
18
data/structures/accordion.yml
Normal file
18
data/structures/accordion.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
comment: >-
|
||||||
|
Use the accordion to show a group of vertically collapsing and expanding
|
||||||
|
items. Add accordion-item inner elements for each accordion item.
|
||||||
|
arguments:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
ID of the accordion, defaults to `accordion-n` with a sequential number n.
|
||||||
|
always-open:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Flag to make accordion items stay open when another item is opened.
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the accordion, e.g. `w-50`.
|
46
data/structures/alert.yml
Normal file
46
data/structures/alert.yml
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
comment: >-
|
||||||
|
Use the alert shortcode to display a contextual feedback message. The inner
|
||||||
|
content is used as alert text.
|
||||||
|
arguments:
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the alert element.
|
||||||
|
color:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: danger
|
||||||
|
comment: Theme color of the alert.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- primary
|
||||||
|
- secondary
|
||||||
|
- success
|
||||||
|
- danger
|
||||||
|
- warning
|
||||||
|
- info
|
||||||
|
- light
|
||||||
|
- dark
|
||||||
|
- white
|
||||||
|
- black
|
||||||
|
dismissible:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: false
|
||||||
|
comment: Flag to indicate the alert is dismissible.
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Font Awesome icon to include.
|
||||||
|
type:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
comment: Type of the alert, generates an alert with related color and icon.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- danger
|
||||||
|
- info
|
||||||
|
body:
|
||||||
|
optional: false
|
||||||
|
comment: Alert text.
|
||||||
|
group: shortcode
|
27
data/structures/args.yml
Normal file
27
data/structures/args.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
comment: >-
|
||||||
|
Generates a markdown table of structured arguments. The argument definitions are
|
||||||
|
expected to be defined in a data file identified by a provided structure name.
|
||||||
|
arguments:
|
||||||
|
structure:
|
||||||
|
type: string
|
||||||
|
position: 0
|
||||||
|
optional: false
|
||||||
|
comment: >-
|
||||||
|
Name of the data file that contains argument definitions. Supported data
|
||||||
|
formats include JSON, TOML, YAML, and XML. You can omit the file
|
||||||
|
extension. The file should reside in the `data/structures` folder.
|
||||||
|
group:
|
||||||
|
type: string
|
||||||
|
position: 1
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Name of the group filter. This is typically used when a shortcode and
|
||||||
|
partial have common arguments. The group filter binds a specific argument
|
||||||
|
to a particular group. By default, an argument belongs to all groups.
|
||||||
|
parent:
|
||||||
|
type: bool
|
||||||
|
position: 2
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Flag to filter only arguments that have a parent attribute (either
|
||||||
|
`cascade` or `merge`).
|
27
data/structures/badge.yml
Normal file
27
data/structures/badge.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
comment: Use the badge shortcode to enrich headings.
|
||||||
|
arguments:
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: Title of the badge.
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the badge element.
|
||||||
|
color:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: secondary
|
||||||
|
comment: Theme color of the element.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- primary
|
||||||
|
- secondary
|
||||||
|
- success
|
||||||
|
- danger
|
||||||
|
- warning
|
||||||
|
- info
|
||||||
|
- light
|
||||||
|
- dark
|
||||||
|
- white
|
||||||
|
- black
|
16
data/structures/breadcrumb.yml
Normal file
16
data/structures/breadcrumb.yml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
comment: Displays a breadcrumb for a specific page.
|
||||||
|
arguments:
|
||||||
|
page:
|
||||||
|
type:
|
||||||
|
- '*hugolib.pageState'
|
||||||
|
- '*hugolib.pageForShortcode'
|
||||||
|
optional: false
|
||||||
|
comment: Page to display the breadcrumb for.
|
||||||
|
group: partial
|
||||||
|
path:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Path of the page to display the breadcrumb for.
|
||||||
|
group: shortcode
|
||||||
|
|
||||||
|
|
15
data/structures/button-group.yml
Normal file
15
data/structures/button-group.yml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
comment: >-
|
||||||
|
Displays a group of buttons. Add inner <button> elements for each button.
|
||||||
|
arguments:
|
||||||
|
label:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Assistive label for the button group.
|
||||||
|
aria-label:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Alias for label.
|
||||||
|
body:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: Inner <button> elements for each button.
|
190
data/structures/button.yml
Normal file
190
data/structures/button.yml
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
comment: >-
|
||||||
|
Display a button with a hyperlink.
|
||||||
|
arguments:
|
||||||
|
title:
|
||||||
|
type:
|
||||||
|
- string
|
||||||
|
- template.HTML
|
||||||
|
optional: true
|
||||||
|
comment: Title of the button, required unless icon is set.
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the button element, e.g. `p-5`.
|
||||||
|
color:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: primary
|
||||||
|
comment: Theme color of the element.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- primary
|
||||||
|
- secondary
|
||||||
|
- success
|
||||||
|
- danger
|
||||||
|
- warning
|
||||||
|
- info
|
||||||
|
- light
|
||||||
|
- dark
|
||||||
|
- white
|
||||||
|
- black
|
||||||
|
href:
|
||||||
|
type:
|
||||||
|
- string
|
||||||
|
- template.URL
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Address for the button or hyperlink. Automatically assigned when using
|
||||||
|
collapse.
|
||||||
|
relref:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Name of the page to link to. Replaces `href` with a relative link if set.
|
||||||
|
group: shortcode
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Identifier of the button, to be used in the DOM.
|
||||||
|
state:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: enabled
|
||||||
|
comment: State of the button.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- enabled
|
||||||
|
- disabled
|
||||||
|
- active
|
||||||
|
- inactive
|
||||||
|
size:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: md
|
||||||
|
comment: Size of the button.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- sm
|
||||||
|
- md
|
||||||
|
- lg
|
||||||
|
outline:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: false
|
||||||
|
comment: Flag indicating the button should be outlined.
|
||||||
|
badge:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Positioned badge to display on top of the button.
|
||||||
|
label:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Assistive label for the button or badge. The label is applied
|
||||||
|
to the badge instead of the button when a badge has been defined.
|
||||||
|
The default value of the button's assistive label is its title.
|
||||||
|
aria-label:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Alias for label.
|
||||||
|
group: shortcode
|
||||||
|
tooltip:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Text to display in a tooltip. Cannot be used together with
|
||||||
|
collapse. Ignored for active/inactive buttons.
|
||||||
|
collapse:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Panel to collapse. Cannot be used together with tooltip. Ignored for
|
||||||
|
active/inactive buttons.
|
||||||
|
type:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: button
|
||||||
|
comment: Type of the element.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- link
|
||||||
|
- button
|
||||||
|
placement:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: top
|
||||||
|
comment: Position of the tooltip.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- top
|
||||||
|
- bottom
|
||||||
|
- left
|
||||||
|
- right
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Font Awesome icon class attribute, required unless title is set. An
|
||||||
|
example value is `fas sort`.
|
||||||
|
order:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: last
|
||||||
|
comment: Order of the icon
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- first
|
||||||
|
- last
|
||||||
|
justify:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: center
|
||||||
|
comment: Justification of the button title and icon.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- start
|
||||||
|
- end
|
||||||
|
- center
|
||||||
|
- between
|
||||||
|
- around
|
||||||
|
- evenly
|
||||||
|
toast:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Identifier (ID) of the toast to display when the button is clicked.
|
||||||
|
clipboard:
|
||||||
|
type:
|
||||||
|
- string
|
||||||
|
- template.URL
|
||||||
|
optional: true
|
||||||
|
comment: Text to be copied to the clipboard when the button is clicked.
|
||||||
|
cue:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Flag to indicate if an external link should show a visual cue, defaults
|
||||||
|
to the setting `main.externalLinks.cue` in the site's parameters.
|
||||||
|
tab:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Flag to indicate if an external link should open in a new tab, defaults
|
||||||
|
to setting `main.externalLinks.tab` in the site's parameters.
|
||||||
|
attributes:
|
||||||
|
type: map[string]interface {}
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Dictionary of key-value pairs added as custom attributes to the button
|
||||||
|
element ('<a>').
|
||||||
|
group: partial
|
||||||
|
spacing:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: true
|
||||||
|
comment: >-
|
||||||
|
Flag to add spacing to the inline button.
|
||||||
|
wrapper:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Element class of the button wrapper.
|
||||||
|
group: shortcode
|
120
data/structures/card-group.yml
Normal file
120
data/structures/card-group.yml
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
comment: >-
|
||||||
|
Displays a grid of Bootstrap cards with 1 to 5 columns. The cards are rendered
|
||||||
|
using a provided list of pages. Cards on the same row are aligned to each
|
||||||
|
other. The grid renders pages up to a provided maximum amount. The remaining
|
||||||
|
items are accessible via either a paginator or button to a list page (default
|
||||||
|
behavior). Be aware a page can only contain one paginator at a time.
|
||||||
|
arguments:
|
||||||
|
page:
|
||||||
|
type:
|
||||||
|
- '*hugolib.pageState'
|
||||||
|
- '*hugolib.pageForShortcode'
|
||||||
|
optional: true
|
||||||
|
comment: Context of the current page.
|
||||||
|
group: partial
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Title of the card group.
|
||||||
|
gutter:
|
||||||
|
type: int
|
||||||
|
optional: true
|
||||||
|
default: 4
|
||||||
|
comment: Gutter between columns in a group.
|
||||||
|
options:
|
||||||
|
min: 0
|
||||||
|
max: 5
|
||||||
|
release: v0.19.0
|
||||||
|
list:
|
||||||
|
type:
|
||||||
|
- 'page.Pages'
|
||||||
|
- 'resource.Resources'
|
||||||
|
- '[]map[string]interface {}'
|
||||||
|
optional: true
|
||||||
|
comment: Array of pages or structured content to be rendered as cards.
|
||||||
|
group: partial
|
||||||
|
cards:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: String of rendered cards.
|
||||||
|
group: partial
|
||||||
|
max:
|
||||||
|
type: int
|
||||||
|
optional: true
|
||||||
|
comment: Maximum number of cards to display.
|
||||||
|
group: partial
|
||||||
|
options:
|
||||||
|
min: 1
|
||||||
|
cols:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: "3"
|
||||||
|
comment: Number of grid columns.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- "1"
|
||||||
|
- "2"
|
||||||
|
- "3"
|
||||||
|
- "4"
|
||||||
|
- "5"
|
||||||
|
- "auto"
|
||||||
|
release: v0.19.0
|
||||||
|
paginate:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Flag indicating if pagination should be added to the card group, if the
|
||||||
|
list exceeds the maximum number of cards to display.
|
||||||
|
group: partial
|
||||||
|
pagination:
|
||||||
|
type: int
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Number of elements per page in pagination, overrides site settings.
|
||||||
|
group: partial
|
||||||
|
options:
|
||||||
|
min: 1
|
||||||
|
release: v0.23.12
|
||||||
|
href:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Address for the button or hyperlink. If set, a button is added if the
|
||||||
|
list exceeds the maximum number of cards to display.
|
||||||
|
group: partial
|
||||||
|
hrefTitle:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Title of the button or hyperlink as companion to href.
|
||||||
|
group: partial
|
||||||
|
separator:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Flag to indicate a horizontal line should be added between items on small screens.
|
||||||
|
wrapper:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Class attributes of the wrapper element, e.g. `p-4 px-xxl-0`.
|
||||||
|
responsive:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Flag indicating if the number of columns should be responsive, defaults to `true`.
|
||||||
|
buttonType:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: button
|
||||||
|
release: v0.23.18
|
||||||
|
comment: Type of the button elements.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- link
|
||||||
|
- button
|
||||||
|
hook:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Render hook for the card partial.
|
||||||
|
group: partial
|
237
data/structures/card.yml
Normal file
237
data/structures/card.yml
Normal file
@@ -0,0 +1,237 @@
|
|||||||
|
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, replaces the title of the referenced page (if any).
|
||||||
|
path:
|
||||||
|
type: path
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Path of the page that the card reference to. If omitted, specify the
|
||||||
|
title, icon, thumbnail, and description (inner content) as needed.
|
||||||
|
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
|
||||||
|
parent: cascade
|
||||||
|
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
|
||||||
|
parent: cascade
|
||||||
|
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.
|
||||||
|
align:
|
||||||
|
type: select
|
||||||
|
parent: cascade
|
||||||
|
optional: true
|
||||||
|
default: start
|
||||||
|
release: v0.23.0
|
||||||
|
comment: Icon alignment.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- start
|
||||||
|
- end
|
||||||
|
- center
|
||||||
|
style:
|
||||||
|
type: string
|
||||||
|
parent: cascade
|
||||||
|
optional: true
|
||||||
|
release: v0.23.0
|
||||||
|
comment: Icon style.
|
||||||
|
orientation:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: stacked
|
||||||
|
parent: cascade
|
||||||
|
comment: Placement of the thumbnail or icon.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- stacked
|
||||||
|
- horizontal
|
||||||
|
- horizontal-sm
|
||||||
|
- none
|
||||||
|
subtle:
|
||||||
|
type: bool
|
||||||
|
parent: cascade
|
||||||
|
optional: true
|
||||||
|
release: v0.23.0
|
||||||
|
comment: Apply subtle background colors.
|
||||||
|
button:
|
||||||
|
type: bool
|
||||||
|
parent: cascade
|
||||||
|
optional: true
|
||||||
|
release: v0.23.0
|
||||||
|
comment: >-
|
||||||
|
Flag indicating the cards should include a button that links to the provided address.
|
||||||
|
buttonLabel:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
release: v0.23.2
|
||||||
|
comment: >-
|
||||||
|
Label of the link button, defaults to the card title.
|
||||||
|
buttonType:
|
||||||
|
type: select
|
||||||
|
parent: cascade
|
||||||
|
optional: true
|
||||||
|
default: button
|
||||||
|
comment: Type of the button element.
|
||||||
|
release: v0.23.18
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- link
|
||||||
|
- button
|
||||||
|
hook:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Render hook for the image partial.
|
||||||
|
group: partial
|
||||||
|
sizes:
|
||||||
|
type: string
|
||||||
|
default: 100vw
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
One or more strings separated by commas, indicating the source sizes of an
|
||||||
|
image set.
|
||||||
|
group: partial
|
||||||
|
body:
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Description of the card.
|
||||||
|
group: shortcode
|
59
data/structures/carousel-item.yml
Normal file
59
data/structures/carousel-item.yml
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
comment: Renders a carousel item with a responsive image.
|
||||||
|
arguments:
|
||||||
|
page:
|
||||||
|
type:
|
||||||
|
- '*hugolib.pageState'
|
||||||
|
- '*hugolib.pageForShortcode'
|
||||||
|
optional: false
|
||||||
|
comment: Context of the current page.
|
||||||
|
group: partial
|
||||||
|
src:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: Path or url of the image, e.g. `img/example.jpg`.
|
||||||
|
ratio:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Ratio of the image. If set, the image is resized and cropped to match the
|
||||||
|
ratio. Else the original aspect ratio of the image is kept.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- 1x1
|
||||||
|
- 3x2
|
||||||
|
- 4x3
|
||||||
|
- 16x9
|
||||||
|
- 21x9
|
||||||
|
group: partial
|
||||||
|
portrait:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: false
|
||||||
|
comment: >-
|
||||||
|
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.
|
||||||
|
group: partial
|
||||||
|
loading:
|
||||||
|
type: select
|
||||||
|
default: eager
|
||||||
|
optional: true
|
||||||
|
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 pagefold.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- eager
|
||||||
|
- lazy
|
||||||
|
caption:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Carousel slide caption.
|
||||||
|
active:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Sets the current carousel item as active (only one item at a time). By
|
||||||
|
default, the first slide is made active.
|
39
data/structures/carousel.yml
Normal file
39
data/structures/carousel.yml
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
comment: >-
|
||||||
|
Displays a carousel of several responsive images (see the image shortcode for
|
||||||
|
more details). Add inner `img` elements to define individual image slides.
|
||||||
|
arguments:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
ID of the carousel, defaults to `carousel-n` with a sequential number `n`.
|
||||||
|
ratio:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Ratio of the images. If set, the images are resized and cropped to match the
|
||||||
|
ratio. Else the original aspect ratio of the image is kept.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- 1x1
|
||||||
|
- 3x2
|
||||||
|
- 4x3
|
||||||
|
- 16x9
|
||||||
|
- 21x9
|
||||||
|
portrait:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: false
|
||||||
|
comment: >-
|
||||||
|
Flag to adjust the ratio from landscape to portrait. The images themselves
|
||||||
|
are not rotated, only the crop area is adjusted. Not applicable to vector
|
||||||
|
graphics.
|
||||||
|
release: v0.18.3
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the carousel element, e.g. `w-75`.
|
||||||
|
body:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: Inner `img` elements that define the individual image slides.
|
15
data/structures/collapse.yml
Normal file
15
data/structures/collapse.yml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
comment: Defines a hidden panel that can be reveiled by a trigger.
|
||||||
|
arguments:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: >-
|
||||||
|
ID of the collapse element, e.g. `collapse-1`.
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the inner panel element, e.g. `p-3`.
|
||||||
|
body:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: Inner <img> elements that define the individual image slides.
|
40
data/structures/command.yml
Normal file
40
data/structures/command.yml
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
comment: >-
|
||||||
|
Generates terminal output for either `bash`, `powershell`, or `sql` shell
|
||||||
|
languages.
|
||||||
|
arguments:
|
||||||
|
user:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: User to add to the prompt, e.g. `user`.
|
||||||
|
host:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Host to add to the prompt, e.g. `localhost`.
|
||||||
|
prompt:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Prompt override, e.g. `PS C:\Users\User>`.
|
||||||
|
shell:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: bash
|
||||||
|
comment: Type of shell.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- bash
|
||||||
|
- powershell
|
||||||
|
- sql
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the command element.
|
||||||
|
body:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: >-
|
||||||
|
The shell commands and their output. Start a line with `(out)` to specify
|
||||||
|
an output line. Use the following line continuation characters for each
|
||||||
|
supported language:
|
||||||
|
- bash: backslash symbol
|
||||||
|
- PowerShell: backtick symbol
|
||||||
|
- sql: `(con)` line suffix
|
44
data/structures/docs.yml
Normal file
44
data/structures/docs.yml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
comment: >-
|
||||||
|
Capture a code snippet from a `toml` or `scss` input file. The shortcode scans for named markers in a local file:
|
||||||
|
- For `.toml` files, use `# toml-docs-start` and `# toml-docs-end` followed by the snippet name
|
||||||
|
- For `.scss` files, use `// scss-docs-start` and `// scss-docs-end` followed by the snippet name
|
||||||
|
|
||||||
|
The snippet between the two markers is then rendered using syntax highlighting.
|
||||||
|
arguments:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: >-
|
||||||
|
Name of the code snippet, used to identify the relevant section of the
|
||||||
|
input file.
|
||||||
|
file:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: >-
|
||||||
|
Path of the input file. The path is relative to the `basePath` defined in
|
||||||
|
the `docs` section of the site's parameters. If the file starts with `./`,
|
||||||
|
the path of the repository is used as base path instead.
|
||||||
|
show:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: true
|
||||||
|
comment: >-
|
||||||
|
If unset, shows the panel with the code snippet in collapsed state. By
|
||||||
|
default, the panel is expanded.
|
||||||
|
full:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: true
|
||||||
|
comment: >-
|
||||||
|
If unset, shows the filename only. By default, the entire path (relative
|
||||||
|
to the base path) is shown.
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
ID of the collapse panel holding the code snippet, defaults to
|
||||||
|
`docs-collapse-n` with a sequential number `n` starting at `1`.
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the tab control that wraps the docs element.
|
33
data/structures/example.yml
Normal file
33
data/structures/example.yml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
comment: >-
|
||||||
|
Display a code example and render a preview of the same input. The shortcode
|
||||||
|
accepts the languages supported by Hugo's highlight function.
|
||||||
|
arguments:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Identifier of the element’s container.
|
||||||
|
lang:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
default: markdown
|
||||||
|
comment: >-
|
||||||
|
Language used to display the code. Use `hugo` to process Hugo (escaped)
|
||||||
|
shortcodes.
|
||||||
|
show_markup:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: true
|
||||||
|
comment: Indicates if the markup should be output in the HTML.
|
||||||
|
show_preview:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: true
|
||||||
|
comment: Indicates if the preview should be output in the HTML.
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attributes of the element's container.
|
||||||
|
body:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: The example input.
|
40
data/structures/file.yml
Normal file
40
data/structures/file.yml
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
comment: >-
|
||||||
|
Print the full content of any given file supported by the Chroma syntax
|
||||||
|
highlighter.
|
||||||
|
arguments:
|
||||||
|
path:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: >-
|
||||||
|
Path of the input file. The path is relative to the `basePath` defined in
|
||||||
|
the `docs` section of the site's parameters. If the file starts with `./`,
|
||||||
|
the path of the repository is used as base path instead.
|
||||||
|
lang:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Language to be used by the syntax highlighter. If not set, the
|
||||||
|
language is derived from the file extension.
|
||||||
|
show:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
If unset, shows the panel with the code in collapsed state. By default,
|
||||||
|
the panel is expanded.
|
||||||
|
full:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: true
|
||||||
|
comment: >-
|
||||||
|
If unset, shows the filename only. By default, the entire path (relative
|
||||||
|
to the base path) is shown.
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Identifier of the collapse panel, defaults to `file-collapse-n` with a
|
||||||
|
sequential number `n` starting at 1.
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the tab control that wraps the file element.
|
29
data/structures/image-adapter-rewrite.yml
Normal file
29
data/structures/image-adapter-rewrite.yml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
comment: >-
|
||||||
|
Rewrites an origin URL to a target URL as supported by a CDN image adapter.
|
||||||
|
arguments:
|
||||||
|
account:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Account name of the origin server.
|
||||||
|
container:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Container name of the origin server.
|
||||||
|
host:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Host of an URL. For example, the host of the URL
|
||||||
|
'https://example.com/first/second/third.webp' equals 'example.com'.
|
||||||
|
dir:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
All but the last element of an URL extension. For example, the dir of the
|
||||||
|
URL 'https://example.com/first/second/third.webp' equals '/first/second/'.
|
||||||
|
file:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: >-
|
||||||
|
The last element of an URL extension. For example, the file of the
|
||||||
|
URL 'https://example.com/first/second/third.webp' equals 'third.webp'.
|
62
data/structures/image-adapter.yml
Normal file
62
data/structures/image-adapter.yml
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
comment: >-
|
||||||
|
Defines the interface to be implemented by a CDN image adapter.
|
||||||
|
arguments:
|
||||||
|
host:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Host of an URL. For example, the host of the URL
|
||||||
|
'https://example.com/first/second/third.webp' equals 'example.com'.
|
||||||
|
dir:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
All but the last element of an URL extension. For example, the dir of the
|
||||||
|
URL 'https://example.com/first/second/third.webp' equals '/first/second/'.
|
||||||
|
file:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: >-
|
||||||
|
The last element of an URL extension. For example, the file of the
|
||||||
|
URL 'https://example.com/first/second/third.webp' equals 'third.webp'.
|
||||||
|
absoluteURL:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
default: false
|
||||||
|
comment: >-
|
||||||
|
Defines if a local image should use absolute instead of relative paths.
|
||||||
|
img:
|
||||||
|
type: "*resources.resourceAdapter"
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Image resource to process. Must be set when handling local images.
|
||||||
|
format:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Image format; leave empty for an auto format (if supported) or default
|
||||||
|
format (usually jpg).
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- png
|
||||||
|
- jpg
|
||||||
|
- gif
|
||||||
|
- tiff
|
||||||
|
- bmp
|
||||||
|
- webp
|
||||||
|
transform:
|
||||||
|
type: select
|
||||||
|
optional: false
|
||||||
|
comment: Image transformation.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- fill
|
||||||
|
- fit
|
||||||
|
height:
|
||||||
|
type: int
|
||||||
|
optional: false
|
||||||
|
comment: Height of the image in pixels.
|
||||||
|
width:
|
||||||
|
type: int
|
||||||
|
optional: false
|
||||||
|
comment: Width of the image in pixels.
|
140
data/structures/image.yml
Normal file
140
data/structures/image.yml
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
comment: >-
|
||||||
|
Render a local or remote image with responsive image sizing. Images are
|
||||||
|
resized using default media breakpoints and are converted to webp format. The
|
||||||
|
image is processed using the quality setting specified in the [imaging]
|
||||||
|
section of the main config file (defaults to 75). A fallback image is provided
|
||||||
|
for older browsers. The image is wrapped in a figure if a caption is provided,
|
||||||
|
else the image is wrapped in a div with a ratio constraint.
|
||||||
|
|
||||||
|
If the url starts with `http`, the image is retrieved from an external
|
||||||
|
location. Else, the url is matched with a page resource and site asset (in
|
||||||
|
that order). The path of a remote image is rewritten to ensure processed files
|
||||||
|
are stored in the final '/img' folder.
|
||||||
|
|
||||||
|
The partial supports the following bitmap image formats: `png`, `jpeg`, `gif`,
|
||||||
|
`tiff`, `bmp`, and `webp`. Vector graphics of type `svg` are supported too,
|
||||||
|
although these images do no support additional processing. This means the
|
||||||
|
arguments `ratio` and `portrait` have no effect for vector images. Vector
|
||||||
|
graphics support an optional anchor `#` in their url to denote a symbol
|
||||||
|
reference.
|
||||||
|
arguments:
|
||||||
|
url:
|
||||||
|
type:
|
||||||
|
- string
|
||||||
|
- template.URL
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Path or url of the image, e.g. `img/example.jpg`. Images with multiple
|
||||||
|
color modes are expected to have a basename that ends with either `-dark`
|
||||||
|
or `-light`.
|
||||||
|
src:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
position: 0
|
||||||
|
comment: Alias for url.
|
||||||
|
group: shortcode
|
||||||
|
page:
|
||||||
|
type:
|
||||||
|
- '*hugolib.pageState'
|
||||||
|
- '*hugolib.pageForShortcode'
|
||||||
|
optional: true
|
||||||
|
comment: Page context, used to match page resources.
|
||||||
|
group: partial
|
||||||
|
mode:
|
||||||
|
type: bool
|
||||||
|
default: false
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Flag indicating if the image should support color modes. If set, the
|
||||||
|
shortcode searches for images that having a matching color-mode suffix
|
||||||
|
such as `-light` or `-dark`.
|
||||||
|
ratio:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Ratio of the image. If set, the image is resized and cropped to match the
|
||||||
|
ratio. Else the original aspect ratio of the image is kept. Not applicable
|
||||||
|
to vector graphics.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- 1x1
|
||||||
|
- 3x2
|
||||||
|
- 4x3
|
||||||
|
- 16x9
|
||||||
|
- 21x9
|
||||||
|
portrait:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: false
|
||||||
|
comment: >-
|
||||||
|
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.
|
||||||
|
release: v0.18.3
|
||||||
|
loading:
|
||||||
|
type: select
|
||||||
|
default: eager
|
||||||
|
optional: true
|
||||||
|
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 pagefold.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- eager
|
||||||
|
- lazy
|
||||||
|
release: v0.21.0
|
||||||
|
priority:
|
||||||
|
type: select
|
||||||
|
default: auto
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Fetch priority of the image. The priority provides a hint to the browser
|
||||||
|
on how it should prioritize the fetching of the image relative to other
|
||||||
|
images. The implementation is experimental and currently only supported by
|
||||||
|
Chrome, Edge, and Opera.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- high
|
||||||
|
- low
|
||||||
|
- auto
|
||||||
|
group: partial
|
||||||
|
sizes:
|
||||||
|
type: string
|
||||||
|
default: 100vw
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
One or more strings separated by commas, indicating the source sizes of an
|
||||||
|
image set.
|
||||||
|
group: partial
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Alternate text of the image.
|
||||||
|
caption:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Figure caption.
|
||||||
|
wrapper:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attributes of the wrapper element, e.g. `mx-auto`.
|
||||||
|
release: v0.18.3
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the inner img element, e.g. `rounded`.
|
||||||
|
figclass:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the figure caption, e.g. `px-4`.
|
||||||
|
release: v0.23.0
|
||||||
|
plain:
|
||||||
|
type: bool
|
||||||
|
default: false
|
||||||
|
optional: true
|
||||||
|
comment:
|
||||||
|
Flag to indicate if the image should render a plain image instead of an
|
||||||
|
image set. When set, no transformations are applied to the image.
|
||||||
|
release: v0.24.0
|
30
data/structures/kbd.yml
Normal file
30
data/structures/kbd.yml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
comment: Adds a keyboard input element.
|
||||||
|
arguments:
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
position: 0
|
||||||
|
comment: >-
|
||||||
|
Title of the keyboard input. In shorthand notation, this is the first (and
|
||||||
|
only) matched argument.
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the keyboard input element.
|
||||||
|
color:
|
||||||
|
type: select
|
||||||
|
default: secondary
|
||||||
|
optional: true
|
||||||
|
comment: Theme color of the element.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- primary
|
||||||
|
- secondary
|
||||||
|
- success
|
||||||
|
- danger
|
||||||
|
- warning
|
||||||
|
- info
|
||||||
|
- light
|
||||||
|
- dark
|
||||||
|
- white
|
||||||
|
- black
|
80
data/structures/link.yml
Normal file
80
data/structures/link.yml
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
comment: >-
|
||||||
|
Generates a link for a given named link or url. The shortcode supports a
|
||||||
|
single unnamed parameter, or various named parameters. The unnamed parameter
|
||||||
|
is recognized as a url if it starts with `http`, else it is treated as either
|
||||||
|
a named link or internal reference (in that order). Any inner text is rendered
|
||||||
|
as the link title, otherwise it uses the host name (for external links), link
|
||||||
|
title (for internal links), or anchor name (for any local references
|
||||||
|
containing a `#`).
|
||||||
|
arguments:
|
||||||
|
page:
|
||||||
|
type:
|
||||||
|
- '*hugolib.pageState'
|
||||||
|
- '*hugolib.pageForShortcode'
|
||||||
|
optional: false
|
||||||
|
group: partial
|
||||||
|
comment: Context of the current page.
|
||||||
|
destination:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
group: partial
|
||||||
|
comment: >-
|
||||||
|
Target destination.
|
||||||
|
href:
|
||||||
|
type: string
|
||||||
|
position: 0
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Reference to either an external link (if it starts with `http`), a named
|
||||||
|
link (if it can be found in `params.links`), or internal reference.
|
||||||
|
Both external and internal references may include an anchor `#`.
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Alias of href.
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Alias of href.
|
||||||
|
cue:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Flag to indicate if an external link should show a visual cue, defaults to
|
||||||
|
setting `main.externalLinks.cue` in the site's parameters.
|
||||||
|
tab:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Flag to indicate if an external link should open in a new tab, defaults to
|
||||||
|
setting `main.externalLinks.tab` in the site's parameters.
|
||||||
|
case:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: true
|
||||||
|
comment: >-
|
||||||
|
Flag to indicate if the retrieved title (e.g. no inner text is provided)
|
||||||
|
of an internal link should use its original case. If false, the title is
|
||||||
|
set to lower case.
|
||||||
|
external:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: false
|
||||||
|
comment: >-
|
||||||
|
Flag to indicate if a link that contains baseURL host should be forced as external.
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the anchor element.
|
||||||
|
text:
|
||||||
|
type:
|
||||||
|
- string
|
||||||
|
- template.HTML
|
||||||
|
optional: true
|
||||||
|
group: partial
|
||||||
|
comment: Link title.
|
||||||
|
body:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
group: shortcode
|
||||||
|
comment: Link title.
|
55
data/structures/list.yml
Normal file
55
data/structures/list.yml
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
comment: >-
|
||||||
|
Displays a list of items with a thumbnail alternating between left and right
|
||||||
|
alignment.
|
||||||
|
arguments:
|
||||||
|
page:
|
||||||
|
type:
|
||||||
|
- '*hugolib.pageState'
|
||||||
|
- '*hugolib.pageForShortcode'
|
||||||
|
optional: false
|
||||||
|
comment: Required context of the current page.
|
||||||
|
group: partial
|
||||||
|
list:
|
||||||
|
type:
|
||||||
|
- 'page.Pages'
|
||||||
|
- 'resource.Resources'
|
||||||
|
optional: false
|
||||||
|
comment: Required array of pages.
|
||||||
|
group: partial
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Optional title of the card group.
|
||||||
|
loading:
|
||||||
|
type: select
|
||||||
|
default: eager
|
||||||
|
optional: true
|
||||||
|
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 pagefold.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- eager
|
||||||
|
- lazy
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the tab element, e.g. “w-50”.
|
||||||
|
color:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Theme color of the element.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- primary
|
||||||
|
- secondary
|
||||||
|
- success
|
||||||
|
- danger
|
||||||
|
- warning
|
||||||
|
- info
|
||||||
|
- light
|
||||||
|
- dark
|
||||||
|
- body
|
27
data/structures/mark.yml
Normal file
27
data/structures/mark.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
comment: Highlights text by applying a background color.
|
||||||
|
arguments:
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the highlight element.
|
||||||
|
color:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Theme color of the highlight. By default, the highlight uses the color of
|
||||||
|
the HTML mark function (usually yellow).
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- primary
|
||||||
|
- secondary
|
||||||
|
- success
|
||||||
|
- danger
|
||||||
|
- warning
|
||||||
|
- info
|
||||||
|
- light
|
||||||
|
- dark
|
||||||
|
- white
|
||||||
|
- black
|
||||||
|
body:
|
||||||
|
optional: false
|
||||||
|
comment: Text to be marked.
|
62
data/structures/nav-item.yml
Normal file
62
data/structures/nav-item.yml
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
comment: >-
|
||||||
|
Defines an individual item.
|
||||||
|
arguments:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Identification of the item.
|
||||||
|
group: partial
|
||||||
|
parentID:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: Identification of the parent (e.g. nav control).
|
||||||
|
group: partial
|
||||||
|
header:
|
||||||
|
type: string
|
||||||
|
optional: false
|
||||||
|
comment: Header of the item.
|
||||||
|
show:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Flag to indicate if the item should be shown. Only one can be shown at a
|
||||||
|
time.
|
||||||
|
disabled:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: Flag to indicate the item should be in a disabled state.
|
||||||
|
fade:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: Flag to make the tab pane fade in.
|
||||||
|
parent: cascade
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the item.
|
||||||
|
body:
|
||||||
|
type:
|
||||||
|
- string
|
||||||
|
- template.HTML
|
||||||
|
optional: true
|
||||||
|
comment: The body content of the item, supports Markdown and HTML (if enabled).
|
||||||
|
group: partial
|
||||||
|
item_type:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
comment: Type of the item to render.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- accordion
|
||||||
|
- tab-pane
|
||||||
|
group: partial
|
||||||
|
illustration:
|
||||||
|
type:
|
||||||
|
- string
|
||||||
|
- template.HTML
|
||||||
|
optional: true
|
||||||
|
group: partial
|
||||||
|
body:
|
||||||
|
optional: false
|
||||||
|
comment: Content of the item.
|
||||||
|
group: shortcode
|
83
data/structures/nav.yml
Normal file
83
data/structures/nav.yml
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
comment: >-
|
||||||
|
Displays a tab group of multiple items. Add nav-item inner elements for each
|
||||||
|
tab pane.
|
||||||
|
arguments:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Identifier of the tab group, uses a generated sequence if not specified.
|
||||||
|
page:
|
||||||
|
type:
|
||||||
|
- '*hugolib.pageState'
|
||||||
|
- '*hugolib.pageForShortcode'
|
||||||
|
optional: false
|
||||||
|
comment: Context of the current page.
|
||||||
|
group: partial
|
||||||
|
list:
|
||||||
|
type:
|
||||||
|
- page.Pages
|
||||||
|
- resource.Resources
|
||||||
|
- '[]map[string]interface {}'
|
||||||
|
optional: true
|
||||||
|
comment: Array of pages to be rendered as nav items.
|
||||||
|
group: partial
|
||||||
|
type:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
comment: Type of the tab group.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- tabs
|
||||||
|
- pills
|
||||||
|
- underline
|
||||||
|
- callout
|
||||||
|
vertical:
|
||||||
|
type: bool
|
||||||
|
default: false
|
||||||
|
optional: true
|
||||||
|
comment: Flag to show vertical tabs instead of horizontal tabs.
|
||||||
|
wrap:
|
||||||
|
type: bool
|
||||||
|
default: false
|
||||||
|
optional: true
|
||||||
|
comment: Flag to enable word wrapping of tab titles.
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the tab group, e.g. `nav-fill`.
|
||||||
|
pane:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: none
|
||||||
|
comment: Style of the panes.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- none
|
||||||
|
- persona
|
||||||
|
group: partial
|
||||||
|
width:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: "100"
|
||||||
|
comment: Responsive width of the tab group.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- "50"
|
||||||
|
- "100"
|
||||||
|
group: partial
|
||||||
|
loading:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: eager
|
||||||
|
parent: cascade
|
||||||
|
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
|
34
data/structures/navbar-item.yml
Normal file
34
data/structures/navbar-item.yml
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
comment: >-
|
||||||
|
Defines an individual item of the navigation bar.
|
||||||
|
arguments:
|
||||||
|
page:
|
||||||
|
type:
|
||||||
|
- '*hugolib.pageState'
|
||||||
|
- '*hugolib.pageForShortcode'
|
||||||
|
optional: false
|
||||||
|
comment: Context of the current page.
|
||||||
|
group: partial
|
||||||
|
menu:
|
||||||
|
type: '*navigation.MenuEntry'
|
||||||
|
optional: false
|
||||||
|
comment: Menu data to use for the navbar item.
|
||||||
|
parent:
|
||||||
|
type: '*navigation.MenuEntry'
|
||||||
|
optional: true
|
||||||
|
comment: Parent of the current navbar item.
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the item.
|
||||||
|
cue:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Flag to indicate if an external link should show a visual cue, defaults
|
||||||
|
to the setting `main.externalLinks.cue` in the site's parameters.
|
||||||
|
tab:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Flag to indicate if an external link should open in a new tab, defaults
|
||||||
|
to setting `main.externalLinks.tab` in the site's parameters.
|
129
data/structures/navbar.yml
Normal file
129
data/structures/navbar.yml
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
comment: >-
|
||||||
|
Displays a navigation header with a toggler. The menu items are derived from
|
||||||
|
the site's configuration. Nested items are supported at one-level depth. The
|
||||||
|
navigation bar includes a search area and a language switcher if applicable.
|
||||||
|
arguments:
|
||||||
|
page:
|
||||||
|
type:
|
||||||
|
- '*hugolib.pageState'
|
||||||
|
- '*hugolib.pageForShortcode'
|
||||||
|
optional: false
|
||||||
|
comment: Context of the current page.
|
||||||
|
group: partial
|
||||||
|
path:
|
||||||
|
type: path
|
||||||
|
optional: false
|
||||||
|
comment: Path of the active page.
|
||||||
|
group: shortcode
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Brand title, displayed when the logo is not set. Defaults to the site's
|
||||||
|
title.
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: Class attribute of the navbar container.
|
||||||
|
color:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Background theme color of the navbar. Set the color to `body` or
|
||||||
|
`body-tertiary` for the navbar to respond to color mode changes (e.g.
|
||||||
|
switching between dark and light). The navigation bar is transparent when
|
||||||
|
no color is set, but is set to the body color when scrolling to enhance
|
||||||
|
the contrast.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- primary
|
||||||
|
- secondary
|
||||||
|
- success
|
||||||
|
- danger
|
||||||
|
- warning
|
||||||
|
- info
|
||||||
|
- light
|
||||||
|
- dark
|
||||||
|
- white
|
||||||
|
- black
|
||||||
|
- body
|
||||||
|
- body-tertiary
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Identification of the navbar, defaults to `navbar-0`. The id is used by
|
||||||
|
several child elements, including a color mode switcher, version switcher,
|
||||||
|
and collapse panel.
|
||||||
|
menus:
|
||||||
|
type: string
|
||||||
|
optional: true
|
||||||
|
default: main
|
||||||
|
comment: Name of the menu configuration.
|
||||||
|
size:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
comment: Breakpoint of the navbar toggler.
|
||||||
|
default: md
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- xs
|
||||||
|
- sm
|
||||||
|
- md
|
||||||
|
- lg
|
||||||
|
- xl
|
||||||
|
style:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: light
|
||||||
|
comment: Style of the navbar.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- light
|
||||||
|
- dark
|
||||||
|
group: partial
|
||||||
|
mode:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: true
|
||||||
|
comment: >-
|
||||||
|
Flag to include a color mode switcher, defaults to `true` when dark mode
|
||||||
|
is enabled.
|
||||||
|
search:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: true
|
||||||
|
comment: Flag to include a search input.
|
||||||
|
fixed:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: false
|
||||||
|
comment: Flag to indicate the navbar should stick to the top.
|
||||||
|
group: partial
|
||||||
|
overlay:
|
||||||
|
type: bool
|
||||||
|
optional: true
|
||||||
|
default: false
|
||||||
|
comment: >-
|
||||||
|
Flag to indicate if the navbar should render as an overlay on the current
|
||||||
|
page.
|
||||||
|
group: partial
|
||||||
|
release: v0.22.6
|
||||||
|
overlayMode:
|
||||||
|
type: select
|
||||||
|
optional: true
|
||||||
|
default: dark
|
||||||
|
comment: Color mode of the overlay.
|
||||||
|
options:
|
||||||
|
values:
|
||||||
|
- light
|
||||||
|
- dark
|
||||||
|
- none
|
||||||
|
group: partial
|
||||||
|
release: v0.23.0
|
||||||
|
logo:
|
||||||
|
type: path
|
||||||
|
optional: true
|
||||||
|
comment: >-
|
||||||
|
Address of the logo image, defaults to the parameter `logo` set in the
|
||||||
|
`main` section of the site's parameter configuration.
|
14
data/structures/page-alert.yml
Normal file
14
data/structures/page-alert.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
comment: >-
|
||||||
|
Adds a dismissible alert message to the top of the page, above the main menu.
|
||||||
|
The alert uses the following scratch variables:
|
||||||
|
- pageAlertMsg
|
||||||
|
- pageAlertURL
|
||||||
|
- version
|
||||||
|
arguments:
|
||||||
|
page:
|
||||||
|
type:
|
||||||
|
- '*hugolib.pageState'
|
||||||
|
- '*hugolib.pageForShortcode'
|
||||||
|
optional: false
|
||||||
|
comment: Context of the current page.
|
||||||
|
group: partial
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user