mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 18:14:28 +00:00
Compare commits
1230 Commits
v0.9.2
...
v0.19.0-be
Author | SHA1 | Date | |
---|---|---|---|
![]() |
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 | ||
![]() |
0a88ae04b9 | ||
![]() |
bf068977a6 | ||
![]() |
5dfc99efa0 | ||
![]() |
84f09f0dcb | ||
![]() |
65d9635f61 | ||
![]() |
452bd92029 | ||
![]() |
87fc26e289 | ||
![]() |
aad1335523 | ||
![]() |
a216b26857 | ||
![]() |
2c121c6cde | ||
![]() |
2bc4ff0233 | ||
![]() |
a76c80ba17 | ||
![]() |
6580955770 | ||
![]() |
38d6c01983 | ||
![]() |
af2ba38a86 | ||
![]() |
0242d388b5 | ||
![]() |
5a78dda34f | ||
![]() |
8564e3e2fc | ||
![]() |
913c6ad158 | ||
![]() |
5e676ee5fa | ||
![]() |
f1b4e556c4 | ||
![]() |
9856b670e6 | ||
![]() |
88ff187891 | ||
![]() |
5c54291eb8 | ||
![]() |
2a862034aa | ||
![]() |
56e0713582 | ||
![]() |
23a3f7ef71 | ||
![]() |
3418ac8d1d | ||
![]() |
c645024474 | ||
![]() |
f35c66c0ae | ||
![]() |
f479764542 | ||
![]() |
ab7cc04821 | ||
![]() |
6dd208f671 | ||
![]() |
833e438a23 | ||
![]() |
9d829b6d94 | ||
![]() |
0f42fae2c4 | ||
![]() |
a2f7749aa2 | ||
![]() |
ba87ccd4a5 | ||
![]() |
1c68399313 | ||
![]() |
30714ef6da | ||
![]() |
1ef92a0928 | ||
![]() |
8331a6ce7c | ||
![]() |
fd34766ffb | ||
![]() |
78573f8e51 | ||
![]() |
4a0cc8bc88 | ||
![]() |
8fd6f2af4e | ||
![]() |
0191e14a69 | ||
![]() |
1f8fb26278 | ||
![]() |
50548237c6 | ||
![]() |
7f35cf45ef | ||
![]() |
528f84c8c6 | ||
![]() |
33ab75ed84 | ||
![]() |
3010136585 | ||
![]() |
676a28c322 | ||
![]() |
a04ec4d73e | ||
![]() |
fcc93788a9 | ||
![]() |
f949a785a1 | ||
![]() |
becba931bc | ||
![]() |
03e3c5b3ee | ||
![]() |
311aa3b957 | ||
![]() |
62db3eb9db | ||
![]() |
56ea9eec47 | ||
![]() |
b845e210b7 | ||
![]() |
e8bba05213 | ||
![]() |
74d0d625c6 | ||
![]() |
9d98a3568c | ||
![]() |
dc55571f7a | ||
![]() |
b7ab9d5690 | ||
![]() |
5d20be19a8 | ||
![]() |
ecae077e2d | ||
![]() |
132c316ff0 | ||
![]() |
a3b9081b4d | ||
![]() |
8a689a95de | ||
![]() |
9bd04a5b2a | ||
![]() |
8dc884f846 | ||
![]() |
4cb558440b | ||
![]() |
0d78918aa4 | ||
![]() |
ba7ab907ef | ||
![]() |
af557ac054 | ||
![]() |
9ada0eee80 | ||
![]() |
ae3e20b596 | ||
![]() |
c49e6f14c1 | ||
![]() |
b4f6b1aa3d | ||
![]() |
962549f2ae | ||
![]() |
28601323c4 | ||
![]() |
a11ee72174 | ||
![]() |
8e91440261 | ||
![]() |
19879c4ecc | ||
![]() |
810dfef311 | ||
![]() |
c42fcefa73 | ||
![]() |
a3c417e378 | ||
![]() |
2bee381906 | ||
![]() |
244a3f7496 | ||
![]() |
563b526cea | ||
![]() |
fa7fad67b5 | ||
![]() |
966906778d | ||
![]() |
135128a5f9 | ||
![]() |
25663974ce | ||
![]() |
af5643f98f | ||
![]() |
743126d9b9 | ||
![]() |
b0187e3a75 | ||
![]() |
c7613ab7a8 | ||
![]() |
2a6a119762 | ||
![]() |
b556f4f4ec | ||
![]() |
9fa95da778 | ||
![]() |
3a07b36447 | ||
![]() |
ca5ed02bf9 | ||
![]() |
d19321af56 | ||
![]() |
142e21d792 | ||
![]() |
4c00655584 | ||
![]() |
38a2b9ff72 | ||
![]() |
efe8837eb3 | ||
![]() |
130e95ace5 | ||
![]() |
e6e38ac7c3 | ||
![]() |
3c0a6079af | ||
![]() |
4ae09056d3 | ||
![]() |
c20f367894 | ||
![]() |
4e41b5d233 | ||
![]() |
b78e9bd154 | ||
![]() |
5caaeae073 | ||
![]() |
df99d74a30 | ||
![]() |
976c541b03 | ||
![]() |
853a2f0ddd | ||
![]() |
e7b6216e4e | ||
![]() |
5f3e3fca43 | ||
![]() |
3e2340a14a | ||
![]() |
52f9dc5016 | ||
![]() |
542bf1103e | ||
![]() |
04d1d24c7b | ||
![]() |
398028858e | ||
![]() |
8658d02264 | ||
![]() |
6adb066773 | ||
![]() |
b68a632b63 | ||
![]() |
20d9de6c0f | ||
![]() |
51a26c4be8 | ||
![]() |
ef136b33da | ||
![]() |
04262c00d2 | ||
![]() |
bc17718fb8 | ||
![]() |
bd277e420c | ||
![]() |
69e196f8c2 | ||
![]() |
6663d8de58 | ||
![]() |
99d457a091 | ||
![]() |
4b1a72d1c0 | ||
![]() |
02875e731f | ||
![]() |
50664248ca | ||
![]() |
b3491cdadb | ||
![]() |
fe822cccaf | ||
![]() |
c0bcb96275 | ||
![]() |
cb09aba813 | ||
![]() |
fac6581dc9 | ||
![]() |
3ef2392913 | ||
![]() |
8531bf988f | ||
![]() |
bb2d3e7eeb | ||
![]() |
7892bd6afe | ||
![]() |
733b8b6dc8 | ||
![]() |
b5fb0d3ea8 | ||
![]() |
31e3fdc534 | ||
![]() |
641f2ee1d1 | ||
![]() |
951f595d29 | ||
![]() |
cab4338b23 | ||
![]() |
0921b1467e | ||
![]() |
23a1f2fed9 | ||
![]() |
1acc1a5264 | ||
![]() |
3c60c2c512 | ||
![]() |
9d3ac01de2 | ||
![]() |
09973c5a23 | ||
![]() |
2ed01bb499 | ||
![]() |
bca302323a | ||
![]() |
ac0152640b | ||
![]() |
5e15eb5dae | ||
![]() |
c1515325a8 | ||
![]() |
6fbec8dbac | ||
![]() |
6e20600893 | ||
![]() |
de7fb8927f | ||
![]() |
c14e45ac49 | ||
![]() |
32fd291194 | ||
![]() |
b45d0155ea | ||
![]() |
0530b2ea1e | ||
![]() |
8678741f72 | ||
![]() |
8c4e11b99f | ||
![]() |
00818cb91f | ||
![]() |
b3469d277c | ||
![]() |
3627059227 | ||
![]() |
4f92886b21 | ||
![]() |
0c2f951b81 | ||
![]() |
300efb780c | ||
![]() |
42a4fc4618 | ||
![]() |
683ffff1b2 | ||
![]() |
7738c06b6c | ||
![]() |
9aca661574 | ||
![]() |
3d5440fa3d | ||
![]() |
4854d238b7 | ||
![]() |
898764eb12 | ||
![]() |
40e66bba8a | ||
![]() |
a543db250f | ||
![]() |
8d6b34716f | ||
![]() |
ea89e1c8b5 | ||
![]() |
fb6d47c33e | ||
![]() |
dc71f43faf | ||
![]() |
78df40873f | ||
![]() |
43f996acc3 | ||
![]() |
dd51fbd542 | ||
![]() |
49df936f3b | ||
![]() |
b6643f12dd | ||
![]() |
2de996242a | ||
![]() |
3b8611ebd0 | ||
![]() |
3274c7453e | ||
![]() |
ff622c8080 | ||
![]() |
455e77b3e9 | ||
![]() |
22c85f7997 | ||
![]() |
d8799fabb5 | ||
![]() |
8ae01a2ce1 | ||
![]() |
d9d3054f22 | ||
![]() |
0bf25f7acd | ||
![]() |
d5c228d43c | ||
![]() |
96886e20d7 | ||
![]() |
171259fb29 | ||
![]() |
a706936849 | ||
![]() |
f538f3b772 | ||
![]() |
a848fccec8 | ||
![]() |
69352dd60a | ||
![]() |
e1c8641d41 | ||
![]() |
deb8dfb3cb | ||
![]() |
0dcd3f02c9 | ||
![]() |
d3105436a3 | ||
![]() |
38c982f7f4 | ||
![]() |
9c19327e19 | ||
![]() |
a9f2d56dd6 | ||
![]() |
434e02e7f5 | ||
![]() |
7e44d71ecb | ||
![]() |
be8c6d539b | ||
![]() |
3db2b1f734 | ||
![]() |
6802524aac | ||
![]() |
71cdad17d3 | ||
![]() |
626b82a619 | ||
![]() |
fbb60a0622 | ||
![]() |
a0684a8a49 | ||
![]() |
55516602e5 | ||
![]() |
fcab852216 | ||
![]() |
cb714201bc | ||
![]() |
c8de62f46b | ||
![]() |
53ab00357e | ||
![]() |
0cc246a79a | ||
![]() |
21541b9f80 | ||
![]() |
e3d4339730 | ||
![]() |
710efd0caa | ||
![]() |
493ff64be0 | ||
![]() |
f2e35074c2 | ||
![]() |
7597710980 | ||
![]() |
c44340ef9e | ||
![]() |
8dfe0cb9d4 | ||
![]() |
fdb8287951 | ||
![]() |
f4f9b7c754 | ||
![]() |
4bb5ba728a | ||
![]() |
bdb8c43fb9 | ||
![]() |
63e51006ed | ||
![]() |
37b623e48c | ||
![]() |
27019594ca | ||
![]() |
d4ee11b7a5 | ||
![]() |
009314943b | ||
![]() |
826b5f58d8 | ||
![]() |
f6fb80d690 | ||
![]() |
8ed98bc5b4 | ||
![]() |
0cc3775370 | ||
![]() |
7be81f4393 | ||
![]() |
869f696a67 | ||
![]() |
c6d942b350 | ||
![]() |
18275acc80 | ||
![]() |
a85540f8de | ||
![]() |
3c93828d4f | ||
![]() |
8ca629978f | ||
![]() |
d99d416838 | ||
![]() |
b58a69b2ad | ||
![]() |
49d7736e1a | ||
![]() |
04531b6158 | ||
![]() |
b7fb9fb05b | ||
![]() |
4a78bd9e6b | ||
![]() |
4d0007a26b | ||
![]() |
ac7e564857 | ||
![]() |
f804ab747c | ||
![]() |
cfd292ddff | ||
![]() |
d4b0c379e2 | ||
![]() |
60ebd5fd41 | ||
![]() |
19a4398c90 | ||
![]() |
841c2e397f | ||
![]() |
3f42d781ec | ||
![]() |
dd9fcc6cbd | ||
![]() |
70aed1ed63 | ||
![]() |
1c635c814c | ||
![]() |
ff1c8ff056 | ||
![]() |
44c70f4036 | ||
![]() |
28f13f8385 | ||
![]() |
849d481cd6 | ||
![]() |
a0987e33a9 | ||
![]() |
f5dae5caa2 | ||
![]() |
d640ed1f8e | ||
![]() |
0c46c0080e | ||
![]() |
7319a3f9e3 | ||
![]() |
2e6ba557c8 | ||
![]() |
1d24b8ff0e | ||
![]() |
df307be37c | ||
![]() |
5d09963bb5 | ||
![]() |
8ce05d0c41 | ||
![]() |
5e03d80944 | ||
![]() |
65bdc8bb32 | ||
![]() |
558eed95ef | ||
![]() |
a17ed9b14a | ||
![]() |
06c5a97e3b | ||
![]() |
269d7c6bcf | ||
![]() |
fc2a43b8b9 | ||
![]() |
9c14411a3b | ||
![]() |
529e402267 | ||
![]() |
4a8ecaad19 | ||
![]() |
d13013189c | ||
![]() |
b21b412f16 | ||
![]() |
b3ad43768c | ||
![]() |
9ea9a6c616 | ||
![]() |
188129f19b | ||
![]() |
8a83f7345a | ||
![]() |
65cd47b1db | ||
![]() |
7e7cc41603 | ||
![]() |
7318d3cacb | ||
![]() |
ff928d035a | ||
![]() |
9341a98ab7 | ||
![]() |
206558e21e | ||
![]() |
8ecf38befc | ||
![]() |
afb3bbff9d | ||
![]() |
a7f871f954 | ||
![]() |
5d368ecaaa | ||
![]() |
2e40bd6be0 | ||
![]() |
21ae80d491 | ||
![]() |
6292be190e | ||
![]() |
a7c5c613c2 | ||
![]() |
480981d867 | ||
![]() |
abfa80d5a2 | ||
![]() |
08531514d3 | ||
![]() |
d4c321fee4 | ||
![]() |
b125be2e7d | ||
![]() |
f075eb12ee | ||
![]() |
c30dd39ce2 | ||
![]() |
ad7cd18893 | ||
![]() |
cdc3accff3 | ||
![]() |
5916a89979 | ||
![]() |
dbc253cbf2 | ||
![]() |
1fd8989ad3 | ||
![]() |
0a401775ff | ||
![]() |
3534d6daec | ||
![]() |
ada5ac3d5c | ||
![]() |
1630eabff8 | ||
![]() |
4a492d2de5 | ||
![]() |
20a492d9d9 | ||
![]() |
179132964f | ||
![]() |
4768d6791f | ||
![]() |
c8e2d3410c | ||
![]() |
8d53c762d7 | ||
![]() |
22d2e41601 | ||
![]() |
b462c31916 | ||
![]() |
dbb5b4be69 | ||
![]() |
4f288ec5dd | ||
![]() |
8fb47e27af | ||
![]() |
a0d2063738 | ||
![]() |
c17986bb49 | ||
![]() |
bafd522530 | ||
![]() |
930e151365 | ||
![]() |
6687e09d68 | ||
![]() |
86ec79d08a | ||
![]() |
afb42a188c | ||
![]() |
c303e97eb0 | ||
![]() |
1ad2a4c617 | ||
![]() |
2bf15ca8b2 | ||
![]() |
e00ab2a2fd | ||
![]() |
98c422a6d4 | ||
![]() |
527060e219 | ||
![]() |
b5c81cd121 | ||
![]() |
9fbe81a668 | ||
![]() |
cf4ed131aa | ||
![]() |
15a9eb2c5c | ||
![]() |
3271fcc97e | ||
![]() |
0752b4cfbf | ||
![]() |
965845137c | ||
![]() |
8f83138cbc | ||
![]() |
86d726d10c | ||
![]() |
2860edd1bd | ||
![]() |
d802df87ef | ||
![]() |
808b3a5694 | ||
![]() |
cde8495583 | ||
![]() |
c2aaff81cf | ||
![]() |
5421839028 | ||
![]() |
a74466e281 | ||
![]() |
454c659e44 | ||
![]() |
2de384497e | ||
![]() |
ca41d9adb4 | ||
![]() |
a633e4eea0 | ||
![]() |
a341e916b9 | ||
![]() |
a3d289843f | ||
![]() |
8700e18ad9 | ||
![]() |
8936dafac6 | ||
![]() |
4d1c7d46eb | ||
![]() |
bffe6425da | ||
![]() |
3e1c3a2c9c | ||
![]() |
df83103718 | ||
![]() |
e54417bc02 | ||
![]() |
61f2b82221 | ||
![]() |
2689107e5a | ||
![]() |
d20d053232 | ||
![]() |
35fb72d408 | ||
![]() |
18cee3cac6 | ||
![]() |
192021fbb3 | ||
![]() |
a3c5d36584 | ||
![]() |
42d169bbc0 | ||
![]() |
3b4b3a65b6 | ||
![]() |
32ee66bf90 | ||
![]() |
6b8ff44fb0 | ||
![]() |
70cc8946b0 | ||
![]() |
eab0cfa6ab | ||
![]() |
1580898f1a | ||
![]() |
530fb03d29 | ||
![]() |
3e5261bd36 | ||
![]() |
e2d409baed | ||
![]() |
d009874ece | ||
![]() |
f8adffc131 | ||
![]() |
68a3a3be30 | ||
![]() |
c077c8b53b | ||
![]() |
6a0c6af296 | ||
![]() |
2bf16b0e59 | ||
![]() |
e56cc645e2 | ||
![]() |
8c361a8417 | ||
![]() |
65e9e57c9e | ||
![]() |
ffa4473d25 | ||
![]() |
6c5fe6f208 | ||
![]() |
60efecf946 | ||
![]() |
70fdf7c4f0 | ||
![]() |
ee4bb45368 | ||
![]() |
a08695d97e | ||
![]() |
1abeabcacd | ||
![]() |
16b2c8b058 | ||
![]() |
f8eab705fb | ||
![]() |
13b8421893 | ||
![]() |
6324a90d77 | ||
![]() |
faccca732b | ||
![]() |
04736fd8f1 | ||
![]() |
9c4378e5af | ||
![]() |
0574627010 | ||
![]() |
9e668775db | ||
![]() |
cefd152430 | ||
![]() |
48d2002d1c | ||
![]() |
259f0f321c | ||
![]() |
d24cb8ccb3 | ||
![]() |
96226e2d8a | ||
![]() |
27857b7fd5 | ||
![]() |
9a67f7bd4f | ||
![]() |
e15cd08bea | ||
![]() |
dd817bc5ce | ||
![]() |
4b4c9d1711 | ||
![]() |
38e68ac757 | ||
![]() |
c14d3868bb | ||
![]() |
067c244770 | ||
![]() |
d76d275ddb | ||
![]() |
1803759b6b | ||
![]() |
2833cfc15a | ||
![]() |
0a174def75 | ||
![]() |
7a7d3a93f9 | ||
![]() |
c1afe32344 | ||
![]() |
749dab16ca | ||
![]() |
264012eefb | ||
![]() |
fda4efa72b | ||
![]() |
6a0bdf0f61 | ||
![]() |
1a09879bea | ||
![]() |
81cc8fe02f | ||
![]() |
ef3d79f875 | ||
![]() |
c66bb79ac5 | ||
![]() |
c5c5695541 | ||
![]() |
a3343c29dc | ||
![]() |
50a697c1fb | ||
![]() |
6cf7a410f4 | ||
![]() |
bdade82dea | ||
![]() |
38aac9507e | ||
![]() |
0eec1da639 | ||
![]() |
1e8bc5f11d | ||
![]() |
56f467e02c | ||
![]() |
83049db4bc | ||
![]() |
78599c8f76 | ||
![]() |
fc6e916fca | ||
![]() |
a0febc31ee | ||
![]() |
800c82dba5 | ||
![]() |
8b59f3b6f7 | ||
![]() |
9795e04a9b | ||
![]() |
6381cb3519 | ||
![]() |
01927f22b6 | ||
![]() |
da75210771 | ||
![]() |
b47bf99744 | ||
![]() |
2a4ba34c51 | ||
![]() |
fc07cec664 | ||
![]() |
538a1d2de3 | ||
![]() |
6dda374b73 | ||
![]() |
e53a333ebf | ||
![]() |
5ed8c28bee | ||
![]() |
fa47b7d93e | ||
![]() |
f1693c8cf0 | ||
![]() |
740fd91038 | ||
![]() |
9a0dba5ee4 | ||
![]() |
e4b7b252b3 | ||
![]() |
569562cf24 | ||
![]() |
60b53f2fa9 | ||
![]() |
3e5f23cf89 | ||
![]() |
c7b16cf2f4 | ||
![]() |
191d6e3d94 | ||
![]() |
9dd7bf64e1 | ||
![]() |
580675f8b1 | ||
![]() |
b2b43d550b | ||
![]() |
f79317b317 | ||
![]() |
3d7bcc4356 | ||
![]() |
a7256ff270 | ||
![]() |
8ffc6dbd59 | ||
![]() |
5bb0cf07e6 | ||
![]() |
37e9e70c55 | ||
![]() |
b4ddc8c58d | ||
![]() |
a7c4be508d | ||
![]() |
0988e07106 | ||
![]() |
7dcbfe8373 | ||
![]() |
fdebbccfa1 | ||
![]() |
7d1cd93e87 | ||
![]() |
3a056829c5 | ||
![]() |
0ee0febc15 | ||
![]() |
ac081a3084 | ||
![]() |
9d07b5da5a | ||
![]() |
67f1708691 | ||
![]() |
c5e5ec0f21 | ||
![]() |
d461333738 | ||
![]() |
32c422a2a8 | ||
![]() |
b66660b557 | ||
![]() |
be95c3cd68 | ||
![]() |
74aa32e595 | ||
![]() |
4c305b38a5 | ||
![]() |
63c609c1d3 | ||
![]() |
d7424d26eb | ||
![]() |
1f66740c19 | ||
![]() |
cb032b4fb8 | ||
![]() |
3889382e19 | ||
![]() |
86addfd6dd | ||
![]() |
9110fb5ab4 | ||
![]() |
fad4cdbfd2 | ||
![]() |
c403d422d9 | ||
![]() |
0ecfa72864 | ||
![]() |
62af498414 | ||
![]() |
ee37599ded | ||
![]() |
9a4c7c7776 | ||
![]() |
c05eeb015c | ||
![]() |
d9f898a2e1 | ||
![]() |
36f31a57ae | ||
![]() |
17b3bbaf80 | ||
![]() |
26bc4ebb00 | ||
![]() |
d13d80af2f | ||
![]() |
64abaf8d1e | ||
![]() |
ffc9c47b45 | ||
![]() |
092630b030 | ||
![]() |
2ec60a8b71 | ||
![]() |
9af871fee7 | ||
![]() |
883ab3f7a0 | ||
![]() |
d6a49ccb90 | ||
![]() |
fdc58d52e9 | ||
![]() |
97a829dfff | ||
![]() |
c7fbc548bb | ||
![]() |
794510861c | ||
![]() |
da7c70c444 | ||
![]() |
1571decb8e | ||
![]() |
835d3e615e | ||
![]() |
393aea46e1 | ||
![]() |
f3347e871e | ||
![]() |
9d751abbf0 | ||
![]() |
ccfc674019 | ||
![]() |
45aa488e37 | ||
![]() |
5d96fdb3db | ||
![]() |
c2faf0d4f6 | ||
![]() |
1e8d94e1fb | ||
![]() |
3a6edbf2a2 | ||
![]() |
a52154b531 | ||
![]() |
a27d25737f | ||
![]() |
e810df9177 | ||
![]() |
d4dc5d8693 | ||
![]() |
878258796b | ||
![]() |
0397b66d05 | ||
![]() |
5ef32bed6d | ||
![]() |
bbdd8b6c62 | ||
![]() |
67a1d58178 | ||
![]() |
1bede70fae | ||
![]() |
156dbfd3a9 | ||
![]() |
c2a2ffd06d | ||
![]() |
6aeb1ae617 | ||
![]() |
9fe02aa39b | ||
![]() |
f6f65ef7f3 | ||
![]() |
8b8a6b5b36 | ||
![]() |
9fabcbaf13 | ||
![]() |
18ad1ebc93 | ||
![]() |
f4cde441a0 | ||
![]() |
1baea7f63d | ||
![]() |
89b7aa24e9 | ||
![]() |
2ebbf5a370 | ||
![]() |
595e562814 | ||
![]() |
2bf64805dc | ||
![]() |
0576f78240 | ||
![]() |
0f06571e50 | ||
![]() |
bb834c9c15 | ||
![]() |
f000d95533 | ||
![]() |
d3738657a3 | ||
![]() |
d2655290b4 | ||
![]() |
97fd864129 | ||
![]() |
44d2f3699f | ||
![]() |
7bc7621996 | ||
![]() |
19b6a7817d | ||
![]() |
eddfe93e6e | ||
![]() |
a5b3b61e23 | ||
![]() |
6586370d75 | ||
![]() |
c1de0a4604 | ||
![]() |
e71908e2a8 | ||
![]() |
053b63a580 | ||
![]() |
276b2e7ab5 | ||
![]() |
db5cadb2ac | ||
![]() |
a6669030d8 | ||
![]() |
8cbd2db6fa | ||
![]() |
b09b411b10 | ||
![]() |
b4414c9ecb | ||
![]() |
e6a4d9a643 | ||
![]() |
4c4bce6e1e | ||
![]() |
5c6c934499 | ||
![]() |
f163c870cd | ||
![]() |
b6035d2aa8 | ||
![]() |
2eed95a45d | ||
![]() |
9019ea8d3c | ||
![]() |
bd88950647 | ||
![]() |
7b2d88d9d7 | ||
![]() |
c6cc6e03eb | ||
![]() |
afc023d580 | ||
![]() |
d3a15b5b1e | ||
![]() |
d928f6d4fd | ||
![]() |
f2559c243f | ||
![]() |
0e073465ae | ||
![]() |
f5dafb50a8 | ||
![]() |
671cd1f0f2 | ||
![]() |
e15052db22 | ||
![]() |
6be2bb28f8 | ||
![]() |
31e4161258 | ||
![]() |
44d018fa7c | ||
![]() |
3a49d0ca73 | ||
![]() |
c5ac3bbd3c | ||
![]() |
6fe0df9466 | ||
![]() |
2fc134503c | ||
![]() |
f11e98367b | ||
![]() |
0ad4875ee2 | ||
![]() |
a227a01407 | ||
![]() |
a8c8546c23 | ||
![]() |
0aa2a0427b | ||
![]() |
3047f8e937 | ||
![]() |
d144bd328c | ||
![]() |
8815642bea | ||
![]() |
cb862374fd | ||
![]() |
60265ce7e8 | ||
![]() |
eec1c0954a | ||
![]() |
8aa0556298 | ||
![]() |
c92c1686cd | ||
![]() |
f2509b07af | ||
![]() |
4b606deafd | ||
![]() |
d9f805d4a4 | ||
![]() |
a62bea018b | ||
![]() |
2596f2d7ee | ||
![]() |
2bcd955402 | ||
![]() |
511ad2cb4c | ||
![]() |
b87a91f6df | ||
![]() |
11b8bb4c69 | ||
![]() |
84fab6b8a8 | ||
![]() |
656770352a | ||
![]() |
1dadce3f92 | ||
![]() |
8d428d3b51 | ||
![]() |
8de8204f0e | ||
![]() |
e5d2ece0b7 | ||
![]() |
01159ceea2 | ||
![]() |
d6357b70ae | ||
![]() |
eb000e9f81 | ||
![]() |
efe9c2e06e | ||
![]() |
4c41cbcafb | ||
![]() |
1910af163d | ||
![]() |
cba1566ba1 | ||
![]() |
69abe3ec0c | ||
![]() |
9961d8e364 | ||
![]() |
7b1f81cd9a | ||
![]() |
1dd91da4f5 | ||
![]() |
624d89118d | ||
![]() |
ddab72c463 | ||
![]() |
c95ccd22eb | ||
![]() |
ced7196084 | ||
![]() |
9c726191de | ||
![]() |
93a6fab67f | ||
![]() |
923ff12915 | ||
![]() |
aaa299ef1d | ||
![]() |
e93bfcce8e | ||
![]() |
d3847186b7 | ||
![]() |
ac956333d4 | ||
![]() |
08ab28bfea | ||
![]() |
18d4548b8d | ||
![]() |
38f4fe796b | ||
![]() |
04e4c37f3e | ||
![]() |
c4695dd771 | ||
![]() |
cb75b6c777 | ||
![]() |
827fcd9d4d | ||
![]() |
21f1678de4 | ||
![]() |
f0cfd49983 | ||
![]() |
61fb294dfd | ||
![]() |
7e1843febe | ||
![]() |
7ed4693f40 | ||
![]() |
6c08d5eda1 | ||
![]() |
79e1b0aae1 | ||
![]() |
f3225ff139 | ||
![]() |
f0389f83b7 | ||
![]() |
d8271aa83a | ||
![]() |
c523f2b890 | ||
![]() |
6a32015d08 | ||
![]() |
e576737ff1 | ||
![]() |
08fa4d8c89 | ||
![]() |
7086700562 | ||
![]() |
a8fbdad172 | ||
![]() |
d374f50b66 | ||
![]() |
f0210348c6 | ||
![]() |
d66b093281 | ||
![]() |
bda9550c16 | ||
![]() |
36a4d93321 | ||
![]() |
26aeec106a | ||
![]() |
d419bb8f67 | ||
![]() |
b840ce6cf4 | ||
![]() |
816b7ca920 | ||
![]() |
3534141678 | ||
![]() |
7125033baa | ||
![]() |
042fa303be | ||
![]() |
5bd83f8255 | ||
![]() |
f0d18dc909 | ||
![]() |
128f9d6071 | ||
![]() |
f0be69daf5 | ||
![]() |
d21bc1fe42 | ||
![]() |
6da61c23db | ||
![]() |
454efc5915 | ||
![]() |
aa139ec51a | ||
![]() |
a7844486bf | ||
![]() |
221dc23a05 | ||
![]() |
92d97f7091 | ||
![]() |
51b31cb98a | ||
![]() |
2935b60404 | ||
![]() |
fc74085a7f | ||
![]() |
cd6b7332ab | ||
![]() |
ef952f73f8 | ||
![]() |
4a3a6d5395 | ||
![]() |
b4186265ef | ||
![]() |
ac5ae9aeb8 | ||
![]() |
d15eced48c | ||
![]() |
7a66470b67 | ||
![]() |
1b772f8a18 | ||
![]() |
29c49350a2 | ||
![]() |
6f0e767610 | ||
![]() |
013937d60f | ||
![]() |
dc99a35258 | ||
![]() |
3b4c4cb02f | ||
![]() |
56929c918a | ||
![]() |
696ccbf64b | ||
![]() |
2e5028a612 | ||
![]() |
89ecf07f23 | ||
![]() |
ea9295da62 | ||
![]() |
b6b5230cc3 | ||
![]() |
b65110fdcc | ||
![]() |
6d3dc7b590 | ||
![]() |
7bb479194b | ||
![]() |
73c1cf8a59 | ||
![]() |
20ce3580c7 | ||
![]() |
2f733a709d | ||
![]() |
96b1eaaa04 | ||
![]() |
f0200f77dc | ||
![]() |
4ab462750c | ||
![]() |
597ea2fa2b | ||
![]() |
82b8228277 | ||
![]() |
6a025f80c4 | ||
![]() |
99d4d79537 | ||
![]() |
e1d1526b10 | ||
![]() |
8808c10402 | ||
![]() |
87f1733a49 | ||
![]() |
0da862db93 | ||
![]() |
2bdcce58a7 | ||
![]() |
e81456021e | ||
![]() |
2815cda0ed | ||
![]() |
bad3a6fd4b | ||
![]() |
53a779ca78 | ||
![]() |
f559ae17fd | ||
![]() |
3bf1cd9ef7 | ||
![]() |
1596b40689 | ||
![]() |
1506281000 | ||
![]() |
a0a550d070 | ||
![]() |
0fe6e477a4 | ||
![]() |
a8618e1da3 | ||
![]() |
e724130159 |
@@ -1,4 +1,6 @@
|
|||||||
assets/js/color.js
|
assets/js/critical/color.js
|
||||||
|
assets/js/analytics.js
|
||||||
assets/js/flexsearch.js
|
assets/js/flexsearch.js
|
||||||
|
assets/js/sharing.js
|
||||||
assets/js/vendor
|
assets/js/vendor
|
||||||
node_modules
|
node_modules
|
||||||
|
5
.github/ISSUE_TEMPLATE/bug_report.md
vendored
5
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -27,8 +27,9 @@ If applicable, add a copy of Hugo's log messages.
|
|||||||
If applicable, add screenshots to help explain your problem.
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
**Environment (please complete the following information):**
|
**Environment (please complete the following information):**
|
||||||
- Host OS: [e.g. macOS Ventura 13.0]
|
- Hinode version: [e.g. v0.11.3]
|
||||||
- Node version: [e.g. node v18.10.0]
|
- Host OS: [e.g. macOS Ventura 13.3]
|
||||||
|
- 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]
|
- 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)]
|
||||||
|
|
||||||
|
1
.github/dependabot.yml
vendored
1
.github/dependabot.yml
vendored
@@ -7,3 +7,4 @@ updates:
|
|||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "daily"
|
interval: "daily"
|
||||||
|
versioning-strategy: increase
|
||||||
|
27
.github/release.yml
vendored
Normal file
27
.github/release.yml
vendored
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
changelog:
|
||||||
|
exclude:
|
||||||
|
labels:
|
||||||
|
- skip-changelog
|
||||||
|
categories:
|
||||||
|
- title: ❗ Breaking Changes
|
||||||
|
labels:
|
||||||
|
- Semver-Major
|
||||||
|
- breaking-change
|
||||||
|
- title: 🚀 Highlights
|
||||||
|
labels:
|
||||||
|
- release-highlight
|
||||||
|
- title: 🎉 New Features
|
||||||
|
labels:
|
||||||
|
- Semver-Minor
|
||||||
|
- enhancement
|
||||||
|
- title: 🐛 Bug fixes
|
||||||
|
labels:
|
||||||
|
- fix
|
||||||
|
- bugfix
|
||||||
|
- bug
|
||||||
|
- title: 📦 Dependencies
|
||||||
|
labels:
|
||||||
|
- dependencies
|
||||||
|
- title: 🧰 Other Changes
|
||||||
|
labels:
|
||||||
|
- "*"
|
40
.github/workflows/auto-merge.yml
vendored
Normal file
40
.github/workflows/auto-merge.yml
vendored
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# Source: https://nicolasiensen.github.io/2022-07-23-automating-dependency-updates-with-dependabot-github-auto-merge-and-github-actions/
|
||||||
|
name: Dependabot auto-merge
|
||||||
|
on: pull_request_target
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
pull-requests: write
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
review-dependabot-pr:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' }}
|
||||||
|
steps:
|
||||||
|
- name: Dependabot metadata
|
||||||
|
id: metadata
|
||||||
|
uses: dependabot/fetch-metadata@v1
|
||||||
|
with:
|
||||||
|
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
|
||||||
|
- name: Enable auto-merge for Dependabot PRs
|
||||||
|
run: gh pr merge --auto --merge "$PR_URL"
|
||||||
|
env:
|
||||||
|
PR_URL: ${{github.event.pull_request.html_url}}
|
||||||
|
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||||
|
|
||||||
|
- 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'}}
|
||||||
|
run: gh pr review $PR_URL --approve -b "I'm **approving** this pull request because **it includes a patch or minor update**"
|
||||||
|
env:
|
||||||
|
PR_URL: ${{github.event.pull_request.html_url}}
|
||||||
|
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||||
|
|
||||||
|
- name: Comment on major updates of any dependencies
|
||||||
|
if: ${{steps.dependabot-metadata.outputs.update-type == 'version-update:semver-major'}}
|
||||||
|
run: |
|
||||||
|
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"
|
||||||
|
env:
|
||||||
|
PR_URL: ${{github.event.pull_request.html_url}}
|
||||||
|
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
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: [14.x, 16.x, 18.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
|
|
86
.github/workflows/lint-build.yml
vendored
Normal file
86
.github/workflows/lint-build.yml
vendored
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
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@v3
|
||||||
|
|
||||||
|
- name: Set up Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
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: [16.x, 18.x, 20.x]
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check out repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up Node.js ${{ matrix.node-version }}
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: ${{ matrix.node-version }}
|
||||||
|
cache: 'npm'
|
||||||
|
cache-dependency-path: '**/package-lock.json'
|
||||||
|
|
||||||
|
# [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@v3
|
||||||
|
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: 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: [14.x, 16.x, 18.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@v3
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
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@v5
|
||||||
|
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@v3
|
||||||
|
|
||||||
|
- name: Setup .npmrc file to publish to npm
|
||||||
|
uses: actions/setup-node@v3
|
||||||
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 }}
|
||||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,4 +1,5 @@
|
|||||||
/public
|
/_vendor
|
||||||
|
public/
|
||||||
resources/
|
resources/
|
||||||
node_modules/
|
node_modules/
|
||||||
|
|
||||||
|
@@ -4,7 +4,6 @@
|
|||||||
"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
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
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/app.scss
|
assets/scss/app.scss
|
||||||
node_modules
|
node_modules
|
||||||
|
@@ -2,10 +2,7 @@
|
|||||||
"extends": "stylelint-config-standard-scss",
|
"extends": "stylelint-config-standard-scss",
|
||||||
"rules": {
|
"rules": {
|
||||||
"no-empty-source": null,
|
"no-empty-source": null,
|
||||||
"indentation": 4,
|
|
||||||
"string-quotes": "double",
|
|
||||||
"scss/comment-no-empty": null,
|
"scss/comment-no-empty": null,
|
||||||
"max-line-length": null,
|
|
||||||
"scss/at-extend-no-missing-placeholder": null,
|
"scss/at-extend-no-missing-placeholder": null,
|
||||||
"scss/dollar-variable-colon-space-after": null,
|
"scss/dollar-variable-colon-space-after": null,
|
||||||
"scss/dollar-variable-empty-line-before": null,
|
"scss/dollar-variable-empty-line-before": null,
|
||||||
|
76
README.md
76
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>
|
||||||
@@ -9,25 +10,31 @@
|
|||||||
<!-- Badges -->
|
<!-- Badges -->
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://gohugo.io" alt="Hugo website">
|
<a href="https://gohugo.io" alt="Hugo website">
|
||||||
<img src="https://img.shields.io/badge/generator-hugo-brightgreen" />
|
<img src="https://img.shields.io/badge/generator-hugo-brightgreen">
|
||||||
|
</a>
|
||||||
|
<a href="https://gethinode.com" alt="Hinode theme">
|
||||||
|
<img src="https://img.shields.io/badge/theme-hinode-blue">
|
||||||
|
</a>
|
||||||
|
<a href="https://www.npmjs.com/package/%40gethinode/hinode" alt="npm package">
|
||||||
|
<img src="https://img.shields.io/npm/v/%40gethinode/hinode">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://app.netlify.com/sites/gethinode-demo/deploys" alt="Netlify Status">
|
<a href="https://app.netlify.com/sites/gethinode-demo/deploys" alt="Netlify Status">
|
||||||
<img src="https://img.shields.io/netlify/0ad42e3e-fdfa-4d37-8e26-58badd429a67" />
|
<img src="https://img.shields.io/netlify/0ad42e3e-fdfa-4d37-8e26-58badd429a67">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://stats.uptimerobot.com/xyGVYhLJmV" alt="UptimeRobot Status">
|
<a href="https://stats.uptimerobot.com/xyGVYhLJmV" alt="UptimeRobot Status">
|
||||||
<img src="https://img.shields.io/uptimerobot/status/m791334689-73d9dfc82030f4f955b2d6bb" />
|
<img src="https://img.shields.io/uptimerobot/status/m791334689-73d9dfc82030f4f955b2d6bb">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/gethinode/hinode/commits/main" alt="Last commit">
|
<a href="https://github.com/gethinode/hinode/commits/main" alt="Last commit">
|
||||||
<img src="https://img.shields.io/github/last-commit/gethinode/hinode.svg" />
|
<img src="https://img.shields.io/github/last-commit/gethinode/hinode.svg">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/gethinode/hinode/issues" alt="Issues">
|
<a href="https://github.com/gethinode/hinode/issues" alt="Issues">
|
||||||
<img src="https://img.shields.io/github/issues/gethinode/hinode.svg" />
|
<img src="https://img.shields.io/github/issues/gethinode/hinode.svg">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/gethinode/hinode/pulls" alt="Pulls">
|
<a href="https://github.com/gethinode/hinode/pulls" alt="Pulls">
|
||||||
<img src="https://img.shields.io/github/issues-pr-raw/gethinode/hinode.svg" />
|
<img src="https://img.shields.io/github/issues-pr-raw/gethinode/hinode.svg">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/gethinode/hinode/blob/main/LICENSE" alt="License">
|
<a href="https://github.com/gethinode/hinode/blob/main/LICENSE" alt="License">
|
||||||
<img src="https://img.shields.io/github/license/gethinode/hinode" />
|
<img src="https://img.shields.io/github/license/gethinode/hinode">
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -41,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
|
||||||
|
|
||||||
@@ -50,53 +58,42 @@
|
|||||||
- [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 uses [Node Package Manager][npm] to automate the build process and to keep track of dependencies.
|
Hinode is a clean documentation and blog theme for [Hugo][hugo], an open-source static site generator. Based on the [Bootstrap 5][bootstrap] framework, the rendered site is fast, secure, and responsive. Hinode uses [FlexSearch][flexsearch] to enable full text search across your site. Finally, the theme supports [Node Package Manager][npm] (npm) to automate the build process and to keep track of dependencies.
|
||||||
|
|
||||||
Additional features include:
|
|
||||||
|
|
||||||
- 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][nodejs] (extended version)
|
||||||
|
|
||||||
|
[Git][git_download] is recommended, but is not a strict requirement.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
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 [child theme][repository_child], and a [main theme][repository]. The child theme uses [npm][npm] to link to the latest available version of Hinode. Unless you plan to customize a lot, it is recommended to use the child theme:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/gethinode/child.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:
|
1. **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]]\npath = 'github.com/gethinode/hinode'" >> hugo.toml
|
||||||
```
|
```
|
||||||
|
|
||||||
1. Install dependencies
|
1. **Start a development server**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm install
|
hugo server
|
||||||
```
|
|
||||||
|
|
||||||
1. Start development server
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run start
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
@@ -116,11 +113,13 @@ Hinode is inspired by the following themes:
|
|||||||
|
|
||||||
## Donate
|
## Donate
|
||||||
|
|
||||||
<a href="https://www.buymeacoffee.com/markdumay" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/lato-orange.png" alt="Buy Me A Coffee" style="height: 51px !important;width: 217px !important;"></a>
|
<!-- 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>
|
||||||
|
<!-- markdownlint-enable MD033 -->
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
The `hinode` and `child` 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
|
||||||
@@ -130,6 +129,8 @@ The `hinode` and `child` 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
|
||||||
@@ -140,8 +141,9 @@ The `hinode` and `child` codebase is released under the [MIT license][license].
|
|||||||
<!-- 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
|
||||||
[repository_child]: https://github.com/gethinode/child.git
|
[repository_template]: https://github.com/gethinode/template.git
|
||||||
[website]: https://gethinode.com/
|
[website]: https://gethinode.com/
|
||||||
|
@@ -1,2 +1,16 @@
|
|||||||
+++
|
---
|
||||||
+++
|
# author:
|
||||||
|
title: {{ replace .Name "-" " " | title }}
|
||||||
|
date: {{ .Date }}
|
||||||
|
draft: true
|
||||||
|
# layout:
|
||||||
|
# description:
|
||||||
|
# tags:
|
||||||
|
# icon:
|
||||||
|
# thumbnail:
|
||||||
|
# url:
|
||||||
|
# author:
|
||||||
|
# authorURL:
|
||||||
|
# origin:
|
||||||
|
# originURL:
|
||||||
|
---
|
||||||
|
BIN
assets/img/puzzle.jpg
Normal file
BIN
assets/img/puzzle.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 152 KiB |
14
assets/js/alert.js
Normal file
14
assets/js/alert.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
const alert = document.getElementById('page-alert')
|
||||||
|
const closeBtn = document.getElementById('page-alert-btn-close')
|
||||||
|
if (alert !== null && closeBtn !== null) {
|
||||||
|
const version = alert.getAttribute('data-page-alert-version') || 'unknown'
|
||||||
|
const hideAlert = sessionStorage.getItem(`page-alert-${version}`) !== null
|
||||||
|
if (hideAlert) {
|
||||||
|
alert.classList.add('d-none')
|
||||||
|
}
|
||||||
|
|
||||||
|
closeBtn.addEventListener('click', () => {
|
||||||
|
sessionStorage.setItem(`page-alert-${version}`, 'seen')
|
||||||
|
alert.classList.add('d-none')
|
||||||
|
})
|
||||||
|
}
|
69
assets/js/analytics.js
Normal file
69
assets/js/analytics.js
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
// 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. */}}
|
||||||
|
{{- $pc := .Site.Config.Privacy.GoogleAnalytics -}}
|
||||||
|
{{- if not $pc.RespectDoNotTrack -}}
|
||||||
|
var doNotTrack = false;
|
||||||
|
{{- else -}}
|
||||||
|
var dnt = (navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack);
|
||||||
|
var doNotTrack = (dnt == "1" || dnt == "yes");
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- $pc := .Site.Config.Privacy.GoogleAnalytics -}}
|
||||||
|
{{- if (and (not .Site.IsServer) (not $pc.Disable)) -}}
|
||||||
|
{{ with .Site.GoogleAnalytics -}}
|
||||||
|
{{ if hasPrefix . "G-"}}
|
||||||
|
{{ template "__ga_js_set_doNotTrack" $ }}
|
||||||
|
|
||||||
|
if (!doNotTrack) {
|
||||||
|
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 }}
|
18
assets/js/animation.js
Normal file
18
assets/js/animation.js
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
function reveal () {
|
||||||
|
const reveals = document.querySelectorAll('.reveal')
|
||||||
|
|
||||||
|
for (let i = 0; i < reveals.length; i++) {
|
||||||
|
const windowHeight = window.innerHeight
|
||||||
|
const elementTop = reveals[i].getBoundingClientRect().top
|
||||||
|
const elementVisible = 150
|
||||||
|
|
||||||
|
if (elementTop < windowHeight - elementVisible) {
|
||||||
|
reveals[i].classList.add('active')
|
||||||
|
reveals[i].classList.remove('reveal')
|
||||||
|
} else {
|
||||||
|
reveals[i].classList.remove('active')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener('scroll', reveal)
|
@@ -14,10 +14,13 @@ const addCopyButtons = (clipboard) => {
|
|||||||
// 2. Create a button that will trigger a copy operation
|
// 2. Create a button that will trigger a copy operation
|
||||||
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('aria-label', '{{ T "copyToClipboard" }}')
|
||||||
button.type = 'button'
|
button.type = 'button'
|
||||||
button.innerHTML = svgCopy
|
button.innerHTML = svgCopy
|
||||||
button.addEventListener('click', () => {
|
button.addEventListener('click', () => {
|
||||||
clipboard.writeText(codeBlock.innerText).then(
|
const text = codeBlock.innerText.split('\n').filter(Boolean).join('\n')
|
||||||
|
clipboard.writeText(text).then(
|
||||||
() => {
|
() => {
|
||||||
button.blur()
|
button.blur()
|
||||||
button.innerHTML = svgCheck
|
button.innerHTML = svgCheck
|
||||||
@@ -36,3 +39,10 @@ const addCopyButtons = (clipboard) => {
|
|||||||
if (navigator && navigator.clipboard) {
|
if (navigator && navigator.clipboard) {
|
||||||
addCopyButtons(navigator.clipboard)
|
addCopyButtons(navigator.clipboard)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll('[data-clipboard]').forEach(trigger => {
|
||||||
|
const text = trigger.getAttribute('data-clipboard')
|
||||||
|
trigger.addEventListener('click', () => {
|
||||||
|
navigator.clipboard.writeText(text)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
@@ -1,11 +1,11 @@
|
|||||||
|
{{- if site.Params.main.enableDarkMode -}}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Color mode toggler for Bootstrap's docs (https://getbootstrap.com/)
|
* Color mode toggler for Bootstrap's docs (https://getbootstrap.com/)
|
||||||
* Copyright 2011-2022 The Bootstrap Authors
|
* Copyright 2011-2022 The Bootstrap Authors
|
||||||
* Licensed under the Creative Commons Attribution 3.0 Unported License.
|
* Licensed under the Creative Commons Attribution 3.0 Unported License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
{{ if site.Params.main.enableDarkMode }}
|
|
||||||
|
|
||||||
(() => {
|
(() => {
|
||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
@@ -30,17 +30,23 @@
|
|||||||
setTheme(getPreferredTheme())
|
setTheme(getPreferredTheme())
|
||||||
|
|
||||||
const showActiveTheme = theme => {
|
const showActiveTheme = theme => {
|
||||||
const activeSelector = document.querySelector('.theme-icon-active')
|
const activeSelectors = document.querySelectorAll('.theme-icon-active')
|
||||||
const activeButton = document.querySelector(`[data-bs-theme-value="${theme}"]`)
|
const activeButtons = document.querySelectorAll(`[data-bs-theme-value="${theme}"]`)
|
||||||
const activeIcon = activeButton.querySelector('i')
|
if (activeButtons.length > 0) {
|
||||||
|
const activeIcon = activeButtons[0].querySelector('span')
|
||||||
|
|
||||||
document.querySelectorAll('[data-bs-theme-value]').forEach(element => {
|
document.querySelectorAll('[data-bs-theme-value]').forEach(element => {
|
||||||
element.classList.remove('active')
|
element.classList.remove('active')
|
||||||
})
|
})
|
||||||
|
|
||||||
activeSelector.className = activeIcon.className
|
for (let i = 0; i < activeSelectors.length; ++i) {
|
||||||
activeSelector.className = activeSelector.className.replace('theme-icon', 'theme-icon-active')
|
activeSelectors[i].innerHTML = activeIcon.innerHTML
|
||||||
activeButton.classList.add('active')
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < activeButtons.length; ++i) {
|
||||||
|
activeButtons[i].classList.add('active')
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
|
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
|
||||||
@@ -64,4 +70,4 @@
|
|||||||
})
|
})
|
||||||
})()
|
})()
|
||||||
|
|
||||||
{{ end }}
|
{{- end -}}
|
@@ -1,161 +0,0 @@
|
|||||||
/*
|
|
||||||
Source:
|
|
||||||
- https://raw.githubusercontent.com/h-enk/doks/master/assets/js/index.js
|
|
||||||
*/
|
|
||||||
|
|
||||||
var suggestions = document.getElementById('suggestions');
|
|
||||||
var search = document.getElementById('search');
|
|
||||||
|
|
||||||
if (search !== null) {
|
|
||||||
document.addEventListener('keydown', inputFocus);
|
|
||||||
}
|
|
||||||
|
|
||||||
function inputFocus(e) {
|
|
||||||
if (e.ctrlKey && e.key === '/' ) {
|
|
||||||
e.preventDefault();
|
|
||||||
search.focus();
|
|
||||||
}
|
|
||||||
if (e.key === 'Escape' ) {
|
|
||||||
search.blur();
|
|
||||||
suggestions.classList.add('d-none');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
document.addEventListener('click', function(event) {
|
|
||||||
|
|
||||||
var isClickInsideElement = suggestions.contains(event.target);
|
|
||||||
|
|
||||||
if (!isClickInsideElement) {
|
|
||||||
suggestions.classList.add('d-none');
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
/*
|
|
||||||
Source:
|
|
||||||
- https://dev.to/shubhamprakash/trap-focus-using-javascript-6a3
|
|
||||||
*/
|
|
||||||
|
|
||||||
document.addEventListener('keydown',suggestionFocus);
|
|
||||||
|
|
||||||
function suggestionFocus(e) {
|
|
||||||
const suggestionsHidden = suggestions.classList.contains('d-none');
|
|
||||||
if (suggestionsHidden) return;
|
|
||||||
|
|
||||||
const focusableSuggestions= [...suggestions.querySelectorAll('a')];
|
|
||||||
if (focusableSuggestions.length === 0) return;
|
|
||||||
|
|
||||||
const index = focusableSuggestions.indexOf(document.activeElement);
|
|
||||||
|
|
||||||
if (e.key === "ArrowUp") {
|
|
||||||
e.preventDefault();
|
|
||||||
const nextIndex = index > 0 ? index - 1 : 0;
|
|
||||||
focusableSuggestions[nextIndex].focus();
|
|
||||||
}
|
|
||||||
else if (e.key === "ArrowDown") {
|
|
||||||
e.preventDefault();
|
|
||||||
const nextIndex= index + 1 < focusableSuggestions.length ? index + 1 : index;
|
|
||||||
focusableSuggestions[nextIndex].focus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Source:
|
|
||||||
- https://github.com/nextapps-de/flexsearch#index-documents-field-search
|
|
||||||
- https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html
|
|
||||||
*/
|
|
||||||
|
|
||||||
(function(){
|
|
||||||
|
|
||||||
var index = new FlexSearch.Document({
|
|
||||||
tokenize: "forward",
|
|
||||||
cache: 100,
|
|
||||||
document: {
|
|
||||||
id: "id",
|
|
||||||
tag: "tag",
|
|
||||||
store: ["href", "title", "description"],
|
|
||||||
index: ["title", "description", "content"]
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// https://discourse.gohugo.io/t/range-length-or-last-element/3803/2
|
|
||||||
// Note: uses .Site.AllPages as .Site.RegularPages only returns content for the current language
|
|
||||||
// pages without a title (such as browserconfig.xml) are excluded
|
|
||||||
{{ $list := where (where .Site.AllPages "Kind" "in" "page") "Title" "!=" "" }}
|
|
||||||
{{ $len := (len $list) -}}
|
|
||||||
|
|
||||||
index.add(
|
|
||||||
{{ range $index, $element := $list -}}
|
|
||||||
{
|
|
||||||
id: {{ $index }},
|
|
||||||
tag: "{{ .Lang }}",
|
|
||||||
href: "{{ .RelPermalink }}",
|
|
||||||
title: {{ .Title | jsonify }},
|
|
||||||
{{ with .Description -}}
|
|
||||||
description: {{ . | jsonify }},
|
|
||||||
{{ else -}}
|
|
||||||
description: {{ .Summary | plainify | jsonify }},
|
|
||||||
{{ end -}}
|
|
||||||
content: {{ .Plain | jsonify }}
|
|
||||||
})
|
|
||||||
{{ if ne (add $index 1) $len -}}
|
|
||||||
.add(
|
|
||||||
{{ end -}}
|
|
||||||
{{ end -}}
|
|
||||||
;
|
|
||||||
|
|
||||||
search.addEventListener('input', show_results, true);
|
|
||||||
|
|
||||||
function show_results(){
|
|
||||||
const maxResult = 5;
|
|
||||||
var searchQuery = this.value;
|
|
||||||
// filter the results for the currently tagged language
|
|
||||||
const lang = document.documentElement.lang;
|
|
||||||
var results = index.search(searchQuery, { index: ['title', 'description', 'content'], limit: maxResult, tag: lang, enrich: true });
|
|
||||||
|
|
||||||
// flatten results since index.search() returns results for each indexed field
|
|
||||||
const flatResults = new Map(); // keyed by href to dedupe results
|
|
||||||
for (const result of results.flatMap(r => r.result)) {
|
|
||||||
if (flatResults.has(result.doc.href)) continue;
|
|
||||||
flatResults.set(result.doc.href, result.doc);
|
|
||||||
}
|
|
||||||
|
|
||||||
suggestions.innerHTML = "";
|
|
||||||
suggestions.classList.remove('d-none');
|
|
||||||
|
|
||||||
// inform user that no results were found
|
|
||||||
if (flatResults.size === 0 && searchQuery) {
|
|
||||||
const noResultsMessage = document.createElement('div')
|
|
||||||
noResultsMessage.innerHTML = `{{ T "ui_no_results" }} "<strong>${searchQuery}</strong>"`
|
|
||||||
noResultsMessage.classList.add("suggestion__no-results");
|
|
||||||
suggestions.appendChild(noResultsMessage);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// construct a list of suggestions
|
|
||||||
for(const [href, doc] of flatResults) {
|
|
||||||
const entry = document.createElement('div');
|
|
||||||
suggestions.appendChild(entry);
|
|
||||||
|
|
||||||
const a = document.createElement('a');
|
|
||||||
a.href = href;
|
|
||||||
entry.appendChild(a);
|
|
||||||
|
|
||||||
const title = document.createElement('span');
|
|
||||||
title.classList.add('text-start');
|
|
||||||
title.textContent = doc.title;
|
|
||||||
title.classList.add("suggestion__title");
|
|
||||||
a.appendChild(title);
|
|
||||||
|
|
||||||
const description = document.createElement('span');
|
|
||||||
description.textContent = doc.description;
|
|
||||||
description.classList.add("suggestion__description");
|
|
||||||
a.appendChild(description);
|
|
||||||
|
|
||||||
suggestions.appendChild(entry);
|
|
||||||
|
|
||||||
if(suggestions.childElementCount == maxResult) break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}());
|
|
||||||
|
|
20
assets/js/menu.js
Normal file
20
assets/js/menu.js
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
const url = new URL(window.location.href)
|
||||||
|
const menu = url.searchParams.get('menu')
|
||||||
|
const child = url.searchParams.get('child')
|
||||||
|
const menuItems = document.querySelectorAll('[data-nav="main"]')
|
||||||
|
|
||||||
|
if (menu !== null) {
|
||||||
|
menuItems.forEach(element => {
|
||||||
|
element.classList.remove('active')
|
||||||
|
})
|
||||||
|
|
||||||
|
const targetMainItems = document.querySelectorAll(`[data-nav-main="${menu}"]:not([data-nav-child])`)
|
||||||
|
targetMainItems.forEach(element => {
|
||||||
|
element.classList.add('active')
|
||||||
|
})
|
||||||
|
|
||||||
|
const targetChildItems = document.querySelectorAll(`[data-nav-main="${menu}"][data-nav-child="${child}"]`)
|
||||||
|
targetChildItems.forEach(element => {
|
||||||
|
element.classList.add('active')
|
||||||
|
})
|
||||||
|
}
|
@@ -1,16 +1,33 @@
|
|||||||
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')
|
||||||
|
|
||||||
// set the navbar background color to opaque when scrolling past a breakpoint
|
if (navbar !== null && togglers !== null) {
|
||||||
window.onscroll = () => {
|
// set the navbar background color to opaque when scrolling past a breakpoint
|
||||||
if (window.scrollY > 75) {
|
window.onscroll = () => {
|
||||||
navbar.classList.add('nav-active')
|
if (window.scrollY > 75) {
|
||||||
} else {
|
navbar.classList.add('nav-active')
|
||||||
navbar.classList.remove('nav-active')
|
} else {
|
||||||
|
navbar.classList.remove('nav-active')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// set the navbar background color to opaque when expanded
|
||||||
|
for (let i = 0; i < togglers.length; ++i) {
|
||||||
|
togglers[i].onclick = () => {
|
||||||
|
navbar.classList.toggle('navbar-expanded')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// invoke the navbar toggler for each mode switcher to collapse the main menu afterwards
|
||||||
|
for (let i = 0; i < modeSelectors.length; ++i) {
|
||||||
|
modeSelectors[i].onclick = () => {
|
||||||
|
for (let j = 0; j < togglers.length; ++j) {
|
||||||
|
const toggler = togglers[j]
|
||||||
|
if (toggler.getAttribute('aria-expanded') === 'true') {
|
||||||
|
toggler.click()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// set the navbar background color to opaque when expanded
|
|
||||||
toggler.onclick = () => {
|
|
||||||
navbar.classList.toggle('navbar-expanded')
|
|
||||||
}
|
|
||||||
|
0
assets/js/optional/.gitkeep
Normal file
0
assets/js/optional/.gitkeep
Normal file
36
assets/js/sharing.js
Normal file
36
assets/js/sharing.js
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{{- if site.Params.sharing.webshare -}}
|
||||||
|
|
||||||
|
// Adapted from: https://dev.to/j471n/how-to-share-anything-from-your-website-by-web-share-api-1h5g
|
||||||
|
|
||||||
|
// function for Web Share API
|
||||||
|
function webShareAPI (title, description, link) {
|
||||||
|
navigator
|
||||||
|
.share({
|
||||||
|
title,
|
||||||
|
text: description,
|
||||||
|
url: link
|
||||||
|
})
|
||||||
|
.then(() => console.log('Successful share'))
|
||||||
|
.catch((error) => console.log('Error sharing', error))
|
||||||
|
}
|
||||||
|
|
||||||
|
const shareBtn = document.getElementById('btn-webshare')
|
||||||
|
|
||||||
|
if (shareBtn !== null) {
|
||||||
|
if (navigator.share) {
|
||||||
|
const title = shareBtn.getAttribute('data-sharing-title')
|
||||||
|
const description = shareBtn.getAttribute('data-sharing-description')
|
||||||
|
const url = shareBtn.getAttribute('data-sharing-url')
|
||||||
|
|
||||||
|
// show button if it supports webShareAPI
|
||||||
|
shareBtn.style.display = 'block'
|
||||||
|
shareBtn.addEventListener('click', () =>
|
||||||
|
webShareAPI(title, description, url)
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
// hide button if host does not support Web Share API
|
||||||
|
shareBtn.style.display = 'none'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{{- end -}}
|
@@ -1,10 +1,24 @@
|
|||||||
// Bootstrap toast example: https://getbootstrap.com/docs/5.2/components/toasts/
|
// Script to move all embedded toast messages into a container with id 'toast-container'. The container ensures multiple
|
||||||
const toastTrigger = document.getElementById('toastButton')
|
// toast messages are stacked properly. The script targets all elements specified by a 'data-toast-target' and ensures
|
||||||
const toastLiveExample = document.getElementById('toastMessage')
|
// the click event of the origin is linked as well.
|
||||||
if (toastTrigger) {
|
|
||||||
toastTrigger.addEventListener('click', () => {
|
const container = document.getElementById('toast-container')
|
||||||
// eslint-disable-next-line no-undef
|
if (container !== null) {
|
||||||
const toast = new bootstrap.Toast(toastLiveExample)
|
// process all data-toast-target elements
|
||||||
toast.show()
|
document.querySelectorAll('[data-toast-target]').forEach(trigger => {
|
||||||
|
const target = document.getElementById(trigger.getAttribute('data-toast-target'))
|
||||||
|
if (target !== null) {
|
||||||
|
// move the element to the toast containr
|
||||||
|
container.appendChild(target)
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
const toast = bootstrap.Toast.getOrCreateInstance(target)
|
||||||
|
if (toast !== null) {
|
||||||
|
// associate the click event of the origin with the toast element
|
||||||
|
trigger.addEventListener('click', () => {
|
||||||
|
toast.show()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@@ -1,97 +1,39 @@
|
|||||||
// Define template variables
|
// Define template variables
|
||||||
// TODO: optimize, see https://discourse.gohugo.io/t/initialize-sass-variables-from-hugo-templates/42053
|
@import "hugo:vars";
|
||||||
// requires installation of dart-sass, no cross-platform installation available yet
|
|
||||||
$themeFont: {{ site.Params.style.themeFont | default "Inter" }};
|
|
||||||
$primary: {{ site.Params.style.primary | default "#007bff" }};
|
|
||||||
$secondary: {{ site.Params.style.secondary | default "#6c757d" }};
|
|
||||||
$success: {{ site.Params.style.success | default "#198754" }};
|
|
||||||
$info: {{ site.Params.style.info | default "#0dcaf0" }};
|
|
||||||
$warning: {{ site.Params.style.warning | default "#ffc107" }};
|
|
||||||
$danger: {{ site.Params.style.danger | default "#dc3545" }};
|
|
||||||
$light: {{ site.Params.style.light | default "#f8f9fa" }};
|
|
||||||
$dark: {{ site.Params.style.dark | default "#212529" }};
|
|
||||||
$navbar-offset: {{ if site.Params.navigation.fixed }}{{ site.Params.navigation.offset | default "4em" }}{{ else }}0em{{ end }};
|
|
||||||
$enable-dark-mode: {{ site.Params.main.enableDarkMode | default true }} !default;
|
|
||||||
|
|
||||||
// Include default variable overrides
|
// Include default variable overrides
|
||||||
@import "common/variables.scss";
|
@import "common/variables.scss";
|
||||||
@import "common/icons.scss";
|
@import "common/icons.scss";
|
||||||
|
|
||||||
// Import Bootstrap banner and functions
|
// Import Bootstrap configuration (mounted by core Bootstrap module)
|
||||||
@import "bootstrap/scss/mixins/banner";
|
@import "bootstrap.scss";
|
||||||
@include bsBanner("");
|
|
||||||
@import "bootstrap/scss/functions";
|
|
||||||
|
|
||||||
// Import Bootstrap configuration
|
// Include dark mode overrides
|
||||||
@import "hotfix/variables";
|
@import "common/variables-dark.scss";
|
||||||
@import "hotfix/variables-dark.scss";
|
|
||||||
@import "hotfix/maps";
|
|
||||||
@import "bootstrap/scss/mixins";
|
|
||||||
@import "bootstrap/scss/utilities";
|
|
||||||
|
|
||||||
// Import Bootstrap layout & components
|
|
||||||
@import "hotfix/root";
|
|
||||||
@import "bootstrap/scss/reboot";
|
|
||||||
@import "bootstrap/scss/type";
|
|
||||||
@import "bootstrap/scss/images";
|
|
||||||
@import "bootstrap/scss/containers";
|
|
||||||
@import "bootstrap/scss/grid";
|
|
||||||
@import "bootstrap/scss/tables";
|
|
||||||
@import "bootstrap/scss/forms";
|
|
||||||
@import "bootstrap/scss/buttons";
|
|
||||||
@import "bootstrap/scss/transitions";
|
|
||||||
@import "bootstrap/scss/dropdown";
|
|
||||||
@import "bootstrap/scss/button-group";
|
|
||||||
@import "bootstrap/scss/nav";
|
|
||||||
@import "bootstrap/scss/navbar";
|
|
||||||
@import "bootstrap/scss/card";
|
|
||||||
@import "bootstrap/scss/accordion";
|
|
||||||
@import "bootstrap/scss/breadcrumb";
|
|
||||||
@import "bootstrap/scss/pagination";
|
|
||||||
@import "bootstrap/scss/badge";
|
|
||||||
@import "bootstrap/scss/alert";
|
|
||||||
@import "bootstrap/scss/progress";
|
|
||||||
@import "bootstrap/scss/list-group";
|
|
||||||
@import "bootstrap/scss/close";
|
|
||||||
@import "bootstrap/scss/toasts";
|
|
||||||
@import "bootstrap/scss/modal";
|
|
||||||
@import "bootstrap/scss/tooltip";
|
|
||||||
@import "bootstrap/scss/popover";
|
|
||||||
@import "bootstrap/scss/carousel";
|
|
||||||
@import "bootstrap/scss/spinners";
|
|
||||||
@import "bootstrap/scss/offcanvas";
|
|
||||||
@import "bootstrap/scss/placeholders";
|
|
||||||
|
|
||||||
// Import Bootstrap helpers
|
|
||||||
@import "bootstrap/scss/helpers";
|
|
||||||
|
|
||||||
// Import Bootstrap utilities
|
|
||||||
@import "bootstrap/scss/utilities/api";
|
|
||||||
|
|
||||||
// Import Font Awesome
|
|
||||||
// scss-docs-start awesome
|
|
||||||
@import "@fortawesome/fontawesome-free/scss/fontawesome";
|
|
||||||
@import "@fortawesome/fontawesome-free/scss/regular";
|
|
||||||
@import "@fortawesome/fontawesome-free/scss/solid";
|
|
||||||
@import "@fortawesome/fontawesome-free/scss/brands";
|
|
||||||
// scss-docs-end awesome
|
|
||||||
|
|
||||||
// Import Hinode theme styles
|
// Import Hinode theme styles
|
||||||
|
@import "components/alert.scss";
|
||||||
@import "components/blockquote.scss";
|
@import "components/blockquote.scss";
|
||||||
|
@import "components/breadcrumb.scss";
|
||||||
@import "components/buttons.scss";
|
@import "components/buttons.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/comments.scss";
|
||||||
|
@import "components/feature.scss";
|
||||||
|
@import "components/footer.scss";
|
||||||
@import "components/navbar.scss";
|
@import "components/navbar.scss";
|
||||||
@import "components/img.scss";
|
@import "components/img.scss";
|
||||||
|
@import "components/pagination.scss";
|
||||||
|
@import "components/persona.scss";
|
||||||
@import "components/popover.scss";
|
@import "components/popover.scss";
|
||||||
@import "components/search.scss";
|
|
||||||
@import "components/sidebar.scss";
|
@import "components/sidebar.scss";
|
||||||
@import "components/syntax.scss";
|
@import "components/syntax.scss";
|
||||||
|
@import "components/timeline.scss";
|
||||||
@import "components/toc.scss";
|
@import "components/toc.scss";
|
||||||
@import "components/vimeo.scss";
|
@import "components/vimeo.scss";
|
||||||
|
@import "common/animation.scss";
|
||||||
@import "common/styles.scss";
|
@import "common/styles.scss";
|
||||||
@import "layouts/reboot.scss";
|
@import "layouts/reboot.scss";
|
||||||
@import "layouts/type.scss";
|
@import "layouts/type.scss";
|
||||||
@@ -99,5 +41,17 @@ $enable-dark-mode: {{ site.Params.main.enableDarkMode | default tru
|
|||||||
@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")) }}
|
||||||
|
@import "theme/fonts.scss";
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
// Import theme placeholder
|
// Import theme placeholder
|
||||||
@import "theme.scss";
|
@import "theme/theme.scss";
|
||||||
|
|
||||||
|
// Import Bootstrap utilities API (mounted by core Bootstrap module)
|
||||||
|
@import "modules/bootstrap/utilities/api";
|
||||||
|
99
assets/scss/common/_animation.scss
Normal file
99
assets/scss/common/_animation.scss
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
.rotate-5 {
|
||||||
|
transform: rotate(5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rotate-n5 {
|
||||||
|
transform: rotate(-5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-reduced-motion: no-preference) {
|
||||||
|
.reveal {
|
||||||
|
position: relative;
|
||||||
|
opacity: 0;
|
||||||
|
animation-iteration-count: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal.active {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.active.fade-bottom {
|
||||||
|
animation: fade-bottom 1s ease-in;
|
||||||
|
}
|
||||||
|
|
||||||
|
.active.fade-bottom-5 {
|
||||||
|
animation: fade-bottom-5 1s ease-in;
|
||||||
|
}
|
||||||
|
|
||||||
|
.active.fade-bottom-n5 {
|
||||||
|
animation: fade-bottom-n5 1s ease-in;
|
||||||
|
}
|
||||||
|
|
||||||
|
.active.fade-left {
|
||||||
|
animation: fade-left 1s ease-in;
|
||||||
|
}
|
||||||
|
|
||||||
|
.active.fade-right {
|
||||||
|
animation: fade-right 1s ease-in;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fade-bottom {
|
||||||
|
0% {
|
||||||
|
transform: translateY(50px);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: translateY(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fade-bottom-5 {
|
||||||
|
0% {
|
||||||
|
transform: translateY(50px) rotate(5deg);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: translateY(0) rotate(5deg);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fade-bottom-n5 {
|
||||||
|
0% {
|
||||||
|
transform: translateY(50px) rotate(-5deg);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: translateY(0) rotate(-5deg);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fade-left {
|
||||||
|
0% {
|
||||||
|
transform: translateX(-100px);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: translateX(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fade-right {
|
||||||
|
0% {
|
||||||
|
transform: translateX(100px);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: translateX(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -25,3 +25,4 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// scss-docs-end export
|
// scss-docs-end export
|
||||||
|
// stylelint-enable selector-pseudo-class-no-unknown
|
||||||
|
@@ -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("/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("/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("/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("/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("/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("/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("/icons/form-switch-checked-bg-image.svg") !default;
|
||||||
$form-select-indicator: url("icons/form-select-indicator.svg") !default;
|
$form-select-indicator: url("/icons/form-select-indicator.svg") !default;
|
||||||
$form-select-indicator-dark: url("icons/form-select-indicator-dark.svg") !default;
|
$form-select-indicator-dark: 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("/icons/form-feedback-icon-valid.svg") !default;
|
||||||
$form-feedback-icon-invalid: url("icons/form-feedback-icon-invalid.svg") !default;
|
$form-feedback-icon-invalid: 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("/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("/icons/navbar-dark-toggler-icon-bg.svg") !default;
|
||||||
$accordion-button-icon: url("icons/accordion-button-icon.svg") !default;
|
$accordion-button-icon: url("/icons/accordion-button-icon.svg") !default;
|
||||||
$accordion-button-icon-dark: url("icons/accordion-button-icon-dark.svg") !default;
|
$accordion-button-icon-dark: 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("/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("/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("/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("/icons/carousel-control-next-icon-bg.svg") !default;
|
||||||
$btn-close-bg: url("icons/btn-close-bg.svg") !default;
|
$btn-close-bg: url("/icons/btn-close-bg.svg") !default;
|
||||||
$btn-toggle: url("icons/btn-toggle.svg") !default;
|
$btn-toggle: url("/icons/btn-toggle.svg") !default;
|
||||||
$btn-toggle-dark: url("icons/btn-toggle-dark.svg") !default;
|
$btn-toggle-dark: url("/icons/btn-toggle-dark.svg") !default;
|
||||||
|
|
||||||
// scss-docs-end icons
|
// scss-docs-end icons
|
||||||
|
@@ -18,3 +18,132 @@ a:active {
|
|||||||
.tickmark li::marker {
|
.tickmark li::marker {
|
||||||
content: "✓ ";
|
content: "✓ ";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.anchor
|
||||||
|
{
|
||||||
|
color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.heading:hover .anchor
|
||||||
|
{
|
||||||
|
transition: 0.25s ease-in-out;
|
||||||
|
color: $primary;
|
||||||
|
}
|
||||||
|
|
||||||
|
$utilities: map-merge(
|
||||||
|
$utilities,
|
||||||
|
(
|
||||||
|
"padding-start-wide": (
|
||||||
|
property: padding-left,
|
||||||
|
responsive: true,
|
||||||
|
class: psw,
|
||||||
|
values: (
|
||||||
|
0: 0,
|
||||||
|
1: 1.5 * $spacer,
|
||||||
|
2: 3 * $spacer,
|
||||||
|
3: 6 * $spacer,
|
||||||
|
4: 9 * $spacer,
|
||||||
|
5: 12 * $spacer,
|
||||||
|
)
|
||||||
|
),
|
||||||
|
"padding-top-wide": (
|
||||||
|
property: padding-top,
|
||||||
|
responsive: true,
|
||||||
|
class: ptw,
|
||||||
|
values: (
|
||||||
|
0: 0,
|
||||||
|
1: 1.5 * $spacer,
|
||||||
|
2: 3 * $spacer,
|
||||||
|
3: 6 * $spacer,
|
||||||
|
4: 9 * $spacer,
|
||||||
|
5: 12 * $spacer,
|
||||||
|
)
|
||||||
|
),
|
||||||
|
"font-size": map-merge(
|
||||||
|
map-get($utilities, "font-size"),
|
||||||
|
( responsive: true ),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
@media screen and (orientation: portrait) {
|
||||||
|
.min-vh-custom {
|
||||||
|
min-height: 25vh !important
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (orientation: landscape) {
|
||||||
|
.min-vh-custom {
|
||||||
|
min-height: 50vh !important
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--nav-height: 90px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(sm) {
|
||||||
|
.ratio-section {
|
||||||
|
min-height: calc(min(100vh, 576px) - var(--nav-height));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(md) {
|
||||||
|
.ratio-section {
|
||||||
|
min-height: calc(min(100vh, 768px) - var(--nav-height));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(lg) {
|
||||||
|
.ratio-section {
|
||||||
|
min-height: calc(min(100vh, 992px) - var(--nav-height));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(xl) {
|
||||||
|
.ratio-section {
|
||||||
|
min-height: calc(min(100vh, 1200px) - var(--nav-height));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(xxl) {
|
||||||
|
.ratio-section {
|
||||||
|
min-height: calc(min(100vh, 1400px) - var(--nav-height));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$utilities: map-merge(
|
||||||
|
$utilities,
|
||||||
|
(
|
||||||
|
"padding-start-wide": (
|
||||||
|
property: padding-left,
|
||||||
|
responsive: true,
|
||||||
|
class: psw,
|
||||||
|
values: (
|
||||||
|
0: 0,
|
||||||
|
1: 1.5 * $spacer,
|
||||||
|
2: 3 * $spacer,
|
||||||
|
3: 6 * $spacer,
|
||||||
|
4: 9 * $spacer,
|
||||||
|
5: 12 * $spacer,
|
||||||
|
)
|
||||||
|
),
|
||||||
|
"padding-top-wide": (
|
||||||
|
property: padding-top,
|
||||||
|
responsive: true,
|
||||||
|
class: ptw,
|
||||||
|
values: (
|
||||||
|
0: 0,
|
||||||
|
1: 1.5 * $spacer,
|
||||||
|
2: 3 * $spacer,
|
||||||
|
3: 6 * $spacer,
|
||||||
|
4: 9 * $spacer,
|
||||||
|
5: 12 * $spacer,
|
||||||
|
)
|
||||||
|
),
|
||||||
|
"font-size": map-merge(
|
||||||
|
map-get($utilities, "font-size"),
|
||||||
|
( responsive: true ),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -1,14 +1,12 @@
|
|||||||
// Bootstrap variables overrides for theme
|
// Bootstrap variables overrides for theme
|
||||||
$enable-negative-margins: true;
|
$enable-negative-margins: true;
|
||||||
|
$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;
|
||||||
|
|
||||||
// scss-docs-start font
|
// scss-docs-start font
|
||||||
$font-family-sans-serif: $themeFont, 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;
|
||||||
$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;
|
||||||
@@ -17,7 +15,7 @@ $font-weight-bold: 600 !default;
|
|||||||
$font-weight-bolder: bolder !default;
|
$font-weight-bolder: bolder !default;
|
||||||
|
|
||||||
strong {
|
strong {
|
||||||
font-weight: 600 !important;
|
font-weight: 600 if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
// scss-docs-end font
|
// scss-docs-end font
|
||||||
|
|
||||||
@@ -27,3 +25,11 @@ $btn-toggle-color: $black !default;
|
|||||||
$carousel-dark-indicator-active-bg: #ffffff !default;
|
$carousel-dark-indicator-active-bg: #ffffff !default;
|
||||||
$carousel-dark-caption-color: #ffffff !default;
|
$carousel-dark-caption-color: #ffffff !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
|
18
assets/scss/components/_alert.scss
Normal file
18
assets/scss/components/_alert.scss
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
.alert code {
|
||||||
|
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 */
|
6
assets/scss/components/_breadcrumb.scss
Normal file
6
assets/scss/components/_breadcrumb.scss
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
// scss-docs-start breadcrumb
|
||||||
|
.breadcrumb {
|
||||||
|
padding-top: 0.3 * $navbar-offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
// scss-docs-end breadcrumb
|
@@ -4,5 +4,27 @@
|
|||||||
.btn-primary:active,
|
.btn-primary:active,
|
||||||
.btn-primary.active,
|
.btn-primary.active,
|
||||||
.open > .dropdown-toggle.btn-primary {
|
.open > .dropdown-toggle.btn-primary {
|
||||||
color: #fff !important;
|
color: #fff if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-social {
|
||||||
|
background-color: transparent;
|
||||||
|
|
||||||
|
--bs-btn-bg: transparent;
|
||||||
|
--bs-btn-border-width: none;
|
||||||
|
--bs-btn-color: var(--bs-secondary);
|
||||||
|
--bs-btn-border-color: none;
|
||||||
|
--bs-btn-hover-bg: none;
|
||||||
|
--bs-btn-hover-border-color: none;
|
||||||
|
--bs-btn-active-bg: none;
|
||||||
|
--bs-btn-active-border-color: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-social:hover,
|
||||||
|
.btn-social:focus,
|
||||||
|
.btn-social:active,
|
||||||
|
.btn-social.active,
|
||||||
|
.open > .dropdown-toggle.btn-primary {
|
||||||
|
background-color: transparent;
|
||||||
|
color: var(--bs-primary) if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,3 @@
|
|||||||
// stylelint-disable annotation-no-unknown
|
|
||||||
|
|
||||||
// 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
|
||||||
|
|
||||||
@@ -8,16 +6,8 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-img-wrap::after {
|
.card-zoom {
|
||||||
content: "";
|
cursor: pointer;
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
background: rgba(255, 255, 255, 0.3);
|
|
||||||
opacity: 0;
|
|
||||||
transition: opacity 0.25s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-img-wrap img {
|
.card-img-wrap img {
|
||||||
@@ -25,11 +15,21 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-img-wrap:hover img {
|
.card-zoom::after .card-img-wrap img {
|
||||||
transform: scale(1.1);
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
background: rgba(255, 255, 255, 0.3);
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity 0.25s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-img-wrap:hover::after {
|
.card-zoom:hover .card-img-wrap img {
|
||||||
|
transform: scale(1.1);
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-zoom:hover::after .card-img-wrap img {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,29 +43,43 @@
|
|||||||
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.06);
|
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.06);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// stylelint-disable annotation-no-unknown
|
||||||
.card-body-link {
|
.card-body-link {
|
||||||
color: $body-color if($enable-important-utilities, !important, null);
|
color: $body-color if($enable-important-utilities, !important, null);
|
||||||
|
|
||||||
@if $link-shade-percentage != 0 {
|
|
||||||
&:hover,
|
|
||||||
&:focus {
|
|
||||||
color: tint-color($body-color, $link-shade-percentage) if($enable-important-utilities, !important, null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@if $enable-dark-mode {
|
@if $enable-dark-mode {
|
||||||
@include color-mode(dark) {
|
@include color-mode(dark) {
|
||||||
.card-body-link {
|
.card-body-link {
|
||||||
color: $gray-500 if($enable-important-utilities, !important, null);
|
color: $gray-500 if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@if $link-shade-percentage != 0 {
|
.card-zoom card-body-link,
|
||||||
&:hover,
|
.card-body-link {
|
||||||
&:focus {
|
&:hover,
|
||||||
color: shade-color($gray-500, $link-shade-percentage) if($enable-important-utilities, !important, null);
|
&:focus {
|
||||||
}
|
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,
|
||||||
|
.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.
|
||||||
|
.card .tag-link {
|
||||||
|
z-index: 2;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
3
assets/scss/components/_feature.scss
Normal file
3
assets/scss/components/_feature.scss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.feature {
|
||||||
|
margin-top: 0.3 * $navbar-offset;
|
||||||
|
}
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -4,31 +4,54 @@
|
|||||||
|
|
||||||
.navbar {
|
.navbar {
|
||||||
transition: 0.5s ease-in-out;
|
transition: 0.5s ease-in-out;
|
||||||
background-color: none;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-active, .navbar-expanded {
|
.nav-active, .navbar-expanded {
|
||||||
background-color: var(--bs-body-bg);
|
background-color: var(--bs-body-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;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-expanded {
|
||||||
|
box-shadow: $box-shadow-sm;
|
||||||
|
}
|
||||||
|
|
||||||
/* Remove border from toggler */
|
/* Remove border from toggler */
|
||||||
.navbar-toggler {
|
.navbar-toggler {
|
||||||
border: 0 !important;
|
border: 0 if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-toggler:focus,
|
.navbar-toggler:focus,
|
||||||
.navbar-toggler:active,
|
.navbar-toggler:active,
|
||||||
.navbar-toggler-icon:focus {
|
.navbar-toggler-icon:focus {
|
||||||
outline: none !important;
|
outline: none if($enable-important-utilities, !important, null);
|
||||||
box-shadow: none !important;
|
box-shadow: none if($enable-important-utilities, !important, null);
|
||||||
border: 0 !important;
|
border: 0 if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
.fw-30 {
|
||||||
|
width: 30px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Lines of the Toggler */
|
/* Lines of the Toggler */
|
||||||
.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;
|
||||||
}
|
}
|
||||||
@@ -77,15 +100,21 @@
|
|||||||
background-color: #777;
|
background-color: #777;
|
||||||
}
|
}
|
||||||
|
|
||||||
.emphasis {
|
.emphasis-light {
|
||||||
background-color: $black if($enable-important-utilities, !important, null);
|
background-color: $black if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@if $enable-dark-mode {
|
.emphasis-dark {
|
||||||
@include color-mode(dark) {
|
background-color: $white if($enable-important-utilities, !important, null);
|
||||||
.emphasis {
|
}
|
||||||
background-color: $white if($enable-important-utilities, !important, null);
|
|
||||||
}
|
.emphasis, {
|
||||||
|
background-color: $black if($enable-important-utilities, !important, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@include color-mode(dark) {
|
||||||
|
.emphasis {
|
||||||
|
background-color: $white if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
12
assets/scss/components/_pagination.scss
Normal file
12
assets/scss/components/_pagination.scss
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
.pagination {
|
||||||
|
--bs-pagination-bg: var(--bs-primary-bg-subtle);
|
||||||
|
--bs-pagination-color: var(--bs-body-color);
|
||||||
|
--bs-pagination-border-color: none;
|
||||||
|
--bs-pagination-hover-color: var(--bs-pagination-active-color);
|
||||||
|
--bs-pagination-hover-bg: var(--bs-pagination-active-bg);
|
||||||
|
--bs-pagination-hover-border-color: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .page-item {
|
||||||
|
margin: 0.4rem;
|
||||||
|
}
|
3
assets/scss/components/_persona.scss
Normal file
3
assets/scss/components/_persona.scss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.persona {
|
||||||
|
min-height: 320px !important
|
||||||
|
}
|
@@ -1,117 +0,0 @@
|
|||||||
// Adapted from https://github.com/h-enk/doks
|
|
||||||
|
|
||||||
@include media-breakpoint-up(md) {
|
|
||||||
.search {
|
|
||||||
max-width: 20rem;
|
|
||||||
margin-top: 0.125rem;
|
|
||||||
margin-bottom: 0.125rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-control.is-search {
|
|
||||||
padding-right: 4rem;
|
|
||||||
border: 1px solid transparent;
|
|
||||||
background: var(--bs-tertiary-bg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-control.is-search:focus {
|
|
||||||
border: 1px solid $primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search::after {
|
|
||||||
position: absolute;
|
|
||||||
top: 0.4625rem;
|
|
||||||
right: 0.5375rem;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
height: 1.5rem;
|
|
||||||
padding-right: 0.3125rem;
|
|
||||||
padding-left: 0.3125rem;
|
|
||||||
font-size: $font-size-base * 0.75;
|
|
||||||
color: var(--bs-secondary-color);
|
|
||||||
content: "Ctrl + /";
|
|
||||||
border: 1px solid var(--bs-border-color);
|
|
||||||
border-radius: 0.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-form {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
#suggestions {
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
margin-top: 0.5rem;
|
|
||||||
width: calc(100vw - 3rem);
|
|
||||||
z-index: $zindex-dropdown;
|
|
||||||
}
|
|
||||||
|
|
||||||
#suggestions a,
|
|
||||||
.suggestion__no-results {
|
|
||||||
padding: 0.75rem;
|
|
||||||
margin: 0 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
#suggestions a {
|
|
||||||
display: block;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#suggestions a:focus {
|
|
||||||
background-color: var(--bs-tertiary-bg);
|
|
||||||
outline: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#suggestions div:not(:first-child) {
|
|
||||||
border-top: 1px dashed var(--bs-border-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
#suggestions div:first-child {
|
|
||||||
margin-top: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
#suggestions div:last-child {
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
#suggestions a:hover {
|
|
||||||
background-color: var(--bs-tertiary-bg);
|
|
||||||
}
|
|
||||||
|
|
||||||
#suggestions span {
|
|
||||||
display: flex;
|
|
||||||
font-size: $font-size-base;
|
|
||||||
}
|
|
||||||
|
|
||||||
.suggestion__title {
|
|
||||||
font-weight: $headings-font-weight;
|
|
||||||
}
|
|
||||||
|
|
||||||
.suggestion__description,
|
|
||||||
.suggestion__no-results {
|
|
||||||
color: var(--bs-secondary-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
@include media-breakpoint-up(sm) {
|
|
||||||
#suggestions {
|
|
||||||
width: 31.125rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
#suggestions a {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.suggestion__title {
|
|
||||||
width: 9rem;
|
|
||||||
padding-right: 1rem;
|
|
||||||
border-right: 1px solid var(--bs-border-color);
|
|
||||||
display: inline-block;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.suggestion__description {
|
|
||||||
width: 19rem;
|
|
||||||
padding-left: 1rem;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -3,8 +3,23 @@
|
|||||||
top: $navbar-offset;
|
top: $navbar-offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sidebar-overflow {
|
||||||
|
top: $navbar-offset;
|
||||||
|
max-height: 90vh;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
.sidebar-item {
|
.sidebar-item {
|
||||||
color: black;
|
color: rgba(0, 0, 0, 0.65);
|
||||||
|
margin-left: 0 !important;
|
||||||
|
padding-left: 0.85rem !important;
|
||||||
|
display: inline-block;
|
||||||
|
|
||||||
|
&.active,
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-toggle {
|
.btn-toggle {
|
||||||
@@ -54,16 +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;
|
||||||
|
padding-left: 0.85rem !important;
|
||||||
|
|
||||||
|
&.active,
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
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 {
|
||||||
@@ -82,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: #ffffcc }
|
/* LineHighlight */ .chroma .hl { background-color: #373700 }
|
||||||
/* LineNumbersTable */ .chroma .lnt { white-space: pre; 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; 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 }
|
||||||
|
@@ -7,8 +7,8 @@
|
|||||||
/* 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: #ffffcc }
|
/* LineHighlight */ .chroma .hl { background-color: #ffffcc }
|
||||||
/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||||
/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||||
/* Line */ .chroma .line { display: flex; }
|
/* Line */ .chroma .line { display: flex; }
|
||||||
/* Keyword */ .chroma .k { color: #000000; font-weight: bold }
|
/* Keyword */ .chroma .k { color: #000000; font-weight: bold }
|
||||||
/* KeywordConstant */ .chroma .kc { color: #000000; font-weight: bold }
|
/* KeywordConstant */ .chroma .kc { color: #000000; font-weight: bold }
|
||||||
@@ -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 }
|
||||||
|
@@ -8,12 +8,17 @@
|
|||||||
background-color: transparent if($enable-important-utilities, !important, null);
|
background-color: transparent if($enable-important-utilities, !important, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
.syntax-highlight {
|
.chroma {
|
||||||
background-color: var(--bs-light) if($enable-important-utilities, !important, null);
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
.preview-background {
|
.chroma code {
|
||||||
background-color: var(--bs-secondary-bg) if($enable-important-utilities, !important, null);
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.syntax-highlight {
|
||||||
|
background-color: var(--bs-light) if($enable-important-utilities, !important, null);
|
||||||
|
overflow-x: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@if $enable-dark-mode {
|
@if $enable-dark-mode {
|
||||||
@@ -29,10 +34,14 @@
|
|||||||
|
|
||||||
.syntax-highlight {
|
.syntax-highlight {
|
||||||
background-color: var(--bs-tertiary-bg) if($enable-important-utilities, !important, null);
|
background-color: var(--bs-tertiary-bg) if($enable-important-utilities, !important, null);
|
||||||
|
overflow-x: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
167
assets/scss/components/_timeline.scss
Normal file
167
assets/scss/components/_timeline.scss
Normal file
@@ -0,0 +1,167 @@
|
|||||||
|
// scss-docs-start timeline
|
||||||
|
$connector-radius: 0.8rem;
|
||||||
|
$semi-circle-radius: 8rem;
|
||||||
|
$semi-circle-border: 0.2rem;
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--timeline-highlight: var(--bs-primary);
|
||||||
|
--timeline-icon-radius: #{$semi-circle-radius};
|
||||||
|
--timeline-offset: 50%;
|
||||||
|
--timeline-connector-bg: var(--bs-body-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $state in map-keys($theme-colors) {
|
||||||
|
.timeline-#{$state} {
|
||||||
|
--timeline-highlight: var(--#{$prefix}#{$state});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// scss-docs-end timeline
|
||||||
|
|
||||||
|
.timeline, .timeline-sm {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-sm {
|
||||||
|
--timeline-icon-radius: calc(#{$semi-circle-radius} / 2.4);
|
||||||
|
--timeline-offset: 25%
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(sm) {
|
||||||
|
.timeline-sm {
|
||||||
|
--timeline-icon-radius: calc(#{$semi-circle-radius} / 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline::before, .timeline-sm::before {
|
||||||
|
content: "";
|
||||||
|
width: 2 * $semi-circle-border;
|
||||||
|
margin: 0 auto;
|
||||||
|
background: var(--bs-body-color);
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-sm::before {
|
||||||
|
margin: 0 calc(var(--timeline-offset) - #{$semi-circle-border});
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-semi-circle-start, .timeline-semi-circle-end {
|
||||||
|
width: var(--timeline-icon-radius);
|
||||||
|
height: var(--timeline-icon-radius);
|
||||||
|
border-radius: 100%;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-semi-circle-start {
|
||||||
|
left: -$semi-circle-border;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-semi-circle-end {
|
||||||
|
left: $semi-circle-border;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-semi-circle-start::before {
|
||||||
|
content: "";
|
||||||
|
width: var(--timeline-icon-radius);
|
||||||
|
height: var(--timeline-icon-radius);
|
||||||
|
border-radius: 100%;
|
||||||
|
border: $semi-circle-border solid;
|
||||||
|
position: absolute;
|
||||||
|
border-color: transparent var(--timeline-highlight) var(--timeline-highlight) var(--timeline-highlight);
|
||||||
|
transform: rotate(-90deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-semi-circle-start::after {
|
||||||
|
content: "";
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: var(--timeline-icon-radius);
|
||||||
|
height: var(--timeline-icon-radius);
|
||||||
|
border-radius: 100%;
|
||||||
|
border: $semi-circle-border solid;
|
||||||
|
position: absolute;
|
||||||
|
border-color: var(--timeline-highlight) var(--timeline-highlight) var(--timeline-highlight) transparent;
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-semi-circle-end::before {
|
||||||
|
content: "";
|
||||||
|
width: var(--timeline-icon-radius);
|
||||||
|
height: var(--timeline-icon-radius);
|
||||||
|
border-radius: 100%;
|
||||||
|
border: $semi-circle-border solid;
|
||||||
|
position: absolute;
|
||||||
|
border-color: transparent var(--timeline-highlight) var(--timeline-highlight) var(--timeline-highlight);
|
||||||
|
transform: rotate(-225deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-semi-circle-end::after {
|
||||||
|
content: "";
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: var(--timeline-icon-radius);
|
||||||
|
height: var(--timeline-icon-radius);
|
||||||
|
border-radius: 100%;
|
||||||
|
border: $semi-circle-border solid;
|
||||||
|
position: absolute;
|
||||||
|
border-color: var(--timeline-highlight) var(--timeline-highlight) var(--timeline-highlight) transparent;
|
||||||
|
transform: rotate(-180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-description-text-start {
|
||||||
|
border-bottom: $semi-circle-border solid var(--timeline-highlight);
|
||||||
|
margin-right: 2 * $connector-radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-description-text-end {
|
||||||
|
border-bottom: $semi-circle-border solid var(--timeline-highlight);
|
||||||
|
margin-left: 2 * $connector-radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-panel-start, .timeline-panel-end, .timeline-connector-start, .timeline-connector-end {
|
||||||
|
top: calc(var(--timeline-icon-radius) / 2);
|
||||||
|
position: relative;
|
||||||
|
width: calc(var(--timeline-icon-radius) / 2);
|
||||||
|
height: calc($semi-circle-border + var(--timeline-icon-radius) / 2);
|
||||||
|
border: $semi-circle-border solid var(--timeline-highlight);
|
||||||
|
border-bottom: none;
|
||||||
|
border-right: none;
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-panel-start {
|
||||||
|
top: 50%;
|
||||||
|
right: 50%;
|
||||||
|
position: absolute;
|
||||||
|
width: calc(var(--timeline-icon-radius) * 2);
|
||||||
|
width: 2 * $connector-radius;
|
||||||
|
height: 50%;
|
||||||
|
border-top: $semi-circle-border solid var(--timeline-highlight);
|
||||||
|
border-left: $semi-circle-border solid var(--timeline-highlight);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-panel-end {
|
||||||
|
top: 50%;
|
||||||
|
position: absolute;
|
||||||
|
width: calc(var(--timeline-icon-radius) * 2);
|
||||||
|
width: 2 * $connector-radius;
|
||||||
|
height: 50%;
|
||||||
|
border-top: $semi-circle-border solid var(--timeline-highlight);
|
||||||
|
border-right: $semi-circle-border solid var(--timeline-highlight);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-dot::after {
|
||||||
|
display: inline-block;
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: var(--timeline-offset);
|
||||||
|
margin: (-$connector-radius) 0 0 (-$connector-radius);
|
||||||
|
width: 2 * $connector-radius;
|
||||||
|
height: 2 * $connector-radius;
|
||||||
|
border-radius: 100%;
|
||||||
|
border: ($semi-circle-border * 1.5) solid var(--timeline-connector-bg);
|
||||||
|
color: var(--timeline-highlight);
|
||||||
|
background: var(--timeline-highlight);
|
||||||
|
}
|
@@ -1,20 +1,21 @@
|
|||||||
//
|
//
|
||||||
// Table of contents sidebar
|
// Table of contents sidebar & drop-down panel
|
||||||
//
|
//
|
||||||
// scss-docs-start toc
|
// scss-docs-start toc
|
||||||
.toc {
|
.toc-sidebar {
|
||||||
grid-area: toc;
|
grid-area: toc;
|
||||||
right: 0;
|
right: 0;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
height: calc(100vh - 7rem);
|
height: calc(100vh - 5rem);
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
top: $navbar-offset;
|
top: 5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
// scss-docs-end toc
|
// scss-docs-end toc
|
||||||
|
|
||||||
.toc nav {
|
.toc nav {
|
||||||
font-size: 0.875rem;
|
font-size: 0.875rem;
|
||||||
|
margin-bottom: -0.875rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.toc nav ul {
|
.toc nav ul {
|
||||||
@@ -33,6 +34,10 @@
|
|||||||
|
|
||||||
.toc nav a {
|
.toc nav a {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: var(--bs-primary);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.toc nav a:not(:hover) {
|
.toc nav a:not(:hover) {
|
||||||
@@ -42,3 +47,46 @@
|
|||||||
.toc nav a code {
|
.toc nav a code {
|
||||||
font: inherit;
|
font: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#toc-collapse {
|
||||||
|
border-color: var(--bs-secondary-color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toc-button {
|
||||||
|
--bs-btn-hover-color: var(--bs-primary);
|
||||||
|
--bs-btn-hover-bg: var(--bs-body-bg);
|
||||||
|
--bs-btn-hover-border-color: var(--bs-primary);
|
||||||
|
--bs-btn-active-color: var(--bs-primary);
|
||||||
|
--bs-btn-active-bg: var(--bs-body-bg);
|
||||||
|
--bs-btn-active-border-color: var(--bs-primary);
|
||||||
|
|
||||||
|
&.active,
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
color: var(--bs-primary);
|
||||||
|
border-color: var(--bs-primary);
|
||||||
|
box-shadow: 0 0 0 4px var(--bs-primary-border-subtle);
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
#toc-collapse {
|
||||||
|
border-color: var(--bs-body-color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toc nav a {
|
||||||
|
color: var(--bs-body-color);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -1,19 +1,37 @@
|
|||||||
// stylelint-disable function-name-case
|
|
||||||
|
|
||||||
// scss-docs-start colored-links
|
// scss-docs-start colored-links
|
||||||
@each $color, $value in $theme-colors {
|
$custom-colors: (
|
||||||
$contrast-color: color-contrast($value);
|
"primary": "light",
|
||||||
$color-rgb: to-rgb($value);
|
"secondary": "light",
|
||||||
|
"success": "light",
|
||||||
|
"danger": "light",
|
||||||
|
"dark": "light",
|
||||||
|
"black": "light",
|
||||||
|
"info": "dark",
|
||||||
|
"warning": "dark",
|
||||||
|
"light": "dark",
|
||||||
|
"white": "dark",
|
||||||
|
"body": "adaptive",
|
||||||
|
"body-tertiary": "adaptive"
|
||||||
|
);
|
||||||
|
|
||||||
|
@each $color, $value in $custom-colors {
|
||||||
|
$main-color: var(--bs-body-color);
|
||||||
|
$emphasize-color: var(--bs-secondary-color);
|
||||||
|
|
||||||
|
@if $value == "light" {
|
||||||
|
$main-color: $white;
|
||||||
|
$emphasize-color: shade-color($main-color, $link-shade-percentage);
|
||||||
|
} @else if $value == "dark" {
|
||||||
|
$main-color: $black;
|
||||||
|
$emphasize-color: tint-color($main-color, $link-shade-percentage);
|
||||||
|
}
|
||||||
|
|
||||||
.link-bg-#{$color} {
|
.link-bg-#{$color} {
|
||||||
color: $contrast-color !important; // stylelint-disable-line declaration-no-important
|
color: $main-color if($enable-important-utilities, !important, null);
|
||||||
background-color: RGBA($color-rgb, var(--#{$prefix}bg-opacity, 1)) if($enable-important-utilities, !important, null); // stylelint-disable-line annotation-no-unknown
|
|
||||||
|
|
||||||
@if $link-shade-percentage != 0 {
|
&:hover,
|
||||||
&:hover,
|
&:focus {
|
||||||
&:focus {
|
color: $emphasize-color if($enable-important-utilities, !important, null);
|
||||||
color: if($contrast-color == $color-contrast-light, shade-color($contrast-color, $link-shade-percentage), tint-color($contrast-color, $link-shade-percentage)) !important; // stylelint-disable-line declaration-no-important
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,176 +0,0 @@
|
|||||||
// Copied from https://github.com/twbs/bootstrap/commit/15744ee1d04bcca03155c3bb37ee7e65a7b011c6
|
|
||||||
//
|
|
||||||
// Re-assigned maps
|
|
||||||
//
|
|
||||||
// Placed here so that others can override the default Sass maps and see automatic updates to utilities and more.
|
|
||||||
|
|
||||||
// scss-docs-start theme-colors-rgb
|
|
||||||
$theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value") !default;
|
|
||||||
// scss-docs-end theme-colors-rgb
|
|
||||||
|
|
||||||
// scss-docs-start theme-text-map
|
|
||||||
$theme-colors-text: (
|
|
||||||
"primary": $primary-text-emphasis,
|
|
||||||
"secondary": $secondary-text-emphasis,
|
|
||||||
"success": $success-text-emphasis,
|
|
||||||
"info": $info-text-emphasis,
|
|
||||||
"warning": $warning-text-emphasis,
|
|
||||||
"danger": $danger-text-emphasis,
|
|
||||||
"light": $light-text-emphasis,
|
|
||||||
"dark": $dark-text-emphasis,
|
|
||||||
) !default;
|
|
||||||
// scss-docs-end theme-text-map
|
|
||||||
|
|
||||||
// scss-docs-start theme-bg-subtle-map
|
|
||||||
$theme-colors-bg-subtle: (
|
|
||||||
"primary": $primary-bg-subtle,
|
|
||||||
"secondary": $secondary-bg-subtle,
|
|
||||||
"success": $success-bg-subtle,
|
|
||||||
"info": $info-bg-subtle,
|
|
||||||
"warning": $warning-bg-subtle,
|
|
||||||
"danger": $danger-bg-subtle,
|
|
||||||
"light": $light-bg-subtle,
|
|
||||||
"dark": $dark-bg-subtle,
|
|
||||||
) !default;
|
|
||||||
// scss-docs-end theme-bg-subtle-map
|
|
||||||
|
|
||||||
// scss-docs-start theme-border-subtle-map
|
|
||||||
$theme-colors-border-subtle: (
|
|
||||||
"primary": $primary-border-subtle,
|
|
||||||
"secondary": $secondary-border-subtle,
|
|
||||||
"success": $success-border-subtle,
|
|
||||||
"info": $info-border-subtle,
|
|
||||||
"warning": $warning-border-subtle,
|
|
||||||
"danger": $danger-border-subtle,
|
|
||||||
"light": $light-border-subtle,
|
|
||||||
"dark": $dark-border-subtle,
|
|
||||||
) !default;
|
|
||||||
// scss-docs-end theme-border-subtle-map
|
|
||||||
|
|
||||||
$theme-colors-text-dark: null !default;
|
|
||||||
$theme-colors-bg-subtle-dark: null !default;
|
|
||||||
$theme-colors-border-subtle-dark: null !default;
|
|
||||||
|
|
||||||
@if $enable-dark-mode {
|
|
||||||
// scss-docs-start theme-text-dark-map
|
|
||||||
$theme-colors-text-dark: (
|
|
||||||
"primary": $primary-text-emphasis-dark,
|
|
||||||
"secondary": $secondary-text-emphasis-dark,
|
|
||||||
"success": $success-text-emphasis-dark,
|
|
||||||
"info": $info-text-emphasis-dark,
|
|
||||||
"warning": $warning-text-emphasis-dark,
|
|
||||||
"danger": $danger-text-emphasis-dark,
|
|
||||||
"light": $light-text-emphasis-dark,
|
|
||||||
"dark": $dark-text-emphasis-dark,
|
|
||||||
) !default;
|
|
||||||
// scss-docs-end theme-text-dark-map
|
|
||||||
|
|
||||||
// scss-docs-start theme-bg-subtle-dark-map
|
|
||||||
$theme-colors-bg-subtle-dark: (
|
|
||||||
"primary": $primary-bg-subtle-dark,
|
|
||||||
"secondary": $secondary-bg-subtle-dark,
|
|
||||||
"success": $success-bg-subtle-dark,
|
|
||||||
"info": $info-bg-subtle-dark,
|
|
||||||
"warning": $warning-bg-subtle-dark,
|
|
||||||
"danger": $danger-bg-subtle-dark,
|
|
||||||
"light": $light-bg-subtle-dark,
|
|
||||||
"dark": $dark-bg-subtle-dark,
|
|
||||||
) !default;
|
|
||||||
// scss-docs-end theme-bg-subtle-dark-map
|
|
||||||
|
|
||||||
// scss-docs-start theme-border-subtle-dark-map
|
|
||||||
$theme-colors-border-subtle-dark: (
|
|
||||||
"primary": $primary-border-subtle-dark,
|
|
||||||
"secondary": $secondary-border-subtle-dark,
|
|
||||||
"success": $success-border-subtle-dark,
|
|
||||||
"info": $info-border-subtle-dark,
|
|
||||||
"warning": $warning-border-subtle-dark,
|
|
||||||
"danger": $danger-border-subtle-dark,
|
|
||||||
"light": $light-border-subtle-dark,
|
|
||||||
"dark": $dark-border-subtle-dark,
|
|
||||||
) !default;
|
|
||||||
// scss-docs-end theme-border-subtle-dark-map
|
|
||||||
}
|
|
||||||
|
|
||||||
// Utilities maps
|
|
||||||
//
|
|
||||||
// Extends the default `$theme-colors` maps to help create our utilities.
|
|
||||||
|
|
||||||
// Come v6, we'll de-dupe these variables. Until then, for backward compatibility, we keep them to reassign.
|
|
||||||
// scss-docs-start utilities-colors
|
|
||||||
$utilities-colors: $theme-colors-rgb !default;
|
|
||||||
// scss-docs-end utilities-colors
|
|
||||||
|
|
||||||
// scss-docs-start utilities-text-colors
|
|
||||||
$utilities-text: map-merge(
|
|
||||||
$utilities-colors,
|
|
||||||
(
|
|
||||||
"black": to-rgb($black),
|
|
||||||
"white": to-rgb($white),
|
|
||||||
"body": to-rgb($body-color)
|
|
||||||
)
|
|
||||||
) !default;
|
|
||||||
$utilities-text-colors: map-loop($utilities-text, rgba-css-var, "$key", "text") !default;
|
|
||||||
|
|
||||||
$utilities-text-emphasis-colors: (
|
|
||||||
"primary-emphasis": var(--#{$prefix}primary-text-emphasis),
|
|
||||||
"secondary-emphasis": var(--#{$prefix}secondary-text-emphasis),
|
|
||||||
"success-emphasis": var(--#{$prefix}success-text-emphasis),
|
|
||||||
"info-emphasis": var(--#{$prefix}info-text-emphasis),
|
|
||||||
"warning-emphasis": var(--#{$prefix}warning-text-emphasis),
|
|
||||||
"danger-emphasis": var(--#{$prefix}danger-text-emphasis),
|
|
||||||
"light-emphasis": var(--#{$prefix}light-text-emphasis),
|
|
||||||
"dark-emphasis": var(--#{$prefix}dark-text-emphasis)
|
|
||||||
) !default;
|
|
||||||
// scss-docs-end utilities-text-colors
|
|
||||||
|
|
||||||
// scss-docs-start utilities-bg-colors
|
|
||||||
$utilities-bg: map-merge(
|
|
||||||
$utilities-colors,
|
|
||||||
(
|
|
||||||
"black": to-rgb($black),
|
|
||||||
"white": to-rgb($white),
|
|
||||||
"body": to-rgb($body-bg)
|
|
||||||
)
|
|
||||||
) !default;
|
|
||||||
$utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, "$key", "bg") !default;
|
|
||||||
|
|
||||||
$utilities-bg-subtle: (
|
|
||||||
"primary-subtle": var(--#{$prefix}primary-bg-subtle),
|
|
||||||
"secondary-subtle": var(--#{$prefix}secondary-bg-subtle),
|
|
||||||
"success-subtle": var(--#{$prefix}success-bg-subtle),
|
|
||||||
"info-subtle": var(--#{$prefix}info-bg-subtle),
|
|
||||||
"warning-subtle": var(--#{$prefix}warning-bg-subtle),
|
|
||||||
"danger-subtle": var(--#{$prefix}danger-bg-subtle),
|
|
||||||
"light-subtle": var(--#{$prefix}light-bg-subtle),
|
|
||||||
"dark-subtle": var(--#{$prefix}dark-bg-subtle)
|
|
||||||
) !default;
|
|
||||||
// scss-docs-end utilities-bg-colors
|
|
||||||
|
|
||||||
// scss-docs-start utilities-border-colors
|
|
||||||
$utilities-border: map-merge(
|
|
||||||
$utilities-colors,
|
|
||||||
(
|
|
||||||
"black": to-rgb($black),
|
|
||||||
"white": to-rgb($white)
|
|
||||||
)
|
|
||||||
) !default;
|
|
||||||
$utilities-border-colors: map-loop($utilities-border, rgba-css-var, "$key", "border") !default;
|
|
||||||
|
|
||||||
$utilities-border-subtle: (
|
|
||||||
"primary-subtle": var(--#{$prefix}primary-border-subtle),
|
|
||||||
"secondary-subtle": var(--#{$prefix}secondary-border-subtle),
|
|
||||||
"success-subtle": var(--#{$prefix}success-border-subtle),
|
|
||||||
"info-subtle": var(--#{$prefix}info-border-subtle),
|
|
||||||
"warning-subtle": var(--#{$prefix}warning-border-subtle),
|
|
||||||
"danger-subtle": var(--#{$prefix}danger-border-subtle),
|
|
||||||
"light-subtle": var(--#{$prefix}light-border-subtle),
|
|
||||||
"dark-subtle": var(--#{$prefix}dark-border-subtle)
|
|
||||||
) !default;
|
|
||||||
// scss-docs-end utilities-border-colors
|
|
||||||
|
|
||||||
$utilities-links-underline: map-loop($utilities-colors, rgba-css-var, "$key", "link-underline") !default;
|
|
||||||
|
|
||||||
$negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;
|
|
||||||
|
|
||||||
$gutters: $spacers !default;
|
|
@@ -1,180 +0,0 @@
|
|||||||
// Copied from https://github.com/twbs/bootstrap/commit/15744ee1d04bcca03155c3bb37ee7e65a7b011c6
|
|
||||||
|
|
||||||
:root,
|
|
||||||
[data-bs-theme="light"] {
|
|
||||||
// Note: Custom variable values only support SassScript inside `#{}`.
|
|
||||||
|
|
||||||
// Colors
|
|
||||||
//
|
|
||||||
// Generate palettes for full colors, grays, and theme colors.
|
|
||||||
|
|
||||||
@each $color, $value in $colors {
|
|
||||||
--#{$prefix}#{$color}: #{$value};
|
|
||||||
}
|
|
||||||
|
|
||||||
@each $color, $value in $grays {
|
|
||||||
--#{$prefix}gray-#{$color}: #{$value};
|
|
||||||
}
|
|
||||||
|
|
||||||
@each $color, $value in $theme-colors {
|
|
||||||
--#{$prefix}#{$color}: #{$value};
|
|
||||||
}
|
|
||||||
|
|
||||||
@each $color, $value in $theme-colors-rgb {
|
|
||||||
--#{$prefix}#{$color}-rgb: #{$value};
|
|
||||||
}
|
|
||||||
|
|
||||||
@each $color, $value in $theme-colors-text {
|
|
||||||
--#{$prefix}#{$color}-text-emphasis: #{$value};
|
|
||||||
}
|
|
||||||
|
|
||||||
@each $color, $value in $theme-colors-bg-subtle {
|
|
||||||
--#{$prefix}#{$color}-bg-subtle: #{$value};
|
|
||||||
}
|
|
||||||
|
|
||||||
@each $color, $value in $theme-colors-border-subtle {
|
|
||||||
--#{$prefix}#{$color}-border-subtle: #{$value};
|
|
||||||
}
|
|
||||||
|
|
||||||
--#{$prefix}white-rgb: #{to-rgb($white)};
|
|
||||||
--#{$prefix}black-rgb: #{to-rgb($black)};
|
|
||||||
|
|
||||||
// Fonts
|
|
||||||
|
|
||||||
// Note: Use `inspect` for lists so that quoted items keep the quotes.
|
|
||||||
// See https://github.com/sass/sass/issues/2383#issuecomment-336349172
|
|
||||||
--#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};
|
|
||||||
--#{$prefix}font-monospace: #{inspect($font-family-monospace)};
|
|
||||||
--#{$prefix}gradient: #{$gradient};
|
|
||||||
|
|
||||||
// Root and body
|
|
||||||
// scss-docs-start root-body-variables
|
|
||||||
@if $font-size-root != null {
|
|
||||||
--#{$prefix}root-font-size: #{$font-size-root};
|
|
||||||
}
|
|
||||||
--#{$prefix}body-font-family: #{inspect($font-family-base)};
|
|
||||||
@include rfs($font-size-base, --#{$prefix}body-font-size);
|
|
||||||
--#{$prefix}body-font-weight: #{$font-weight-base};
|
|
||||||
--#{$prefix}body-line-height: #{$line-height-base};
|
|
||||||
@if $body-text-align != null {
|
|
||||||
--#{$prefix}body-text-align: #{$body-text-align};
|
|
||||||
}
|
|
||||||
|
|
||||||
--#{$prefix}body-color: #{$body-color};
|
|
||||||
--#{$prefix}body-color-rgb: #{to-rgb($body-color)};
|
|
||||||
--#{$prefix}body-bg: #{$body-bg};
|
|
||||||
--#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};
|
|
||||||
|
|
||||||
--#{$prefix}emphasis-color: #{$body-emphasis-color};
|
|
||||||
--#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};
|
|
||||||
|
|
||||||
--#{$prefix}secondary-color: #{$body-secondary-color};
|
|
||||||
--#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};
|
|
||||||
--#{$prefix}secondary-bg: #{$body-secondary-bg};
|
|
||||||
--#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};
|
|
||||||
|
|
||||||
--#{$prefix}tertiary-color: #{$body-tertiary-color};
|
|
||||||
--#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};
|
|
||||||
--#{$prefix}tertiary-bg: #{$body-tertiary-bg};
|
|
||||||
--#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};
|
|
||||||
// scss-docs-end root-body-variables
|
|
||||||
|
|
||||||
@if $headings-color != null {
|
|
||||||
--#{$prefix}heading-color: #{$headings-color};
|
|
||||||
}
|
|
||||||
|
|
||||||
--#{$prefix}link-color: #{$link-color};
|
|
||||||
--#{$prefix}link-color-rgb: #{to-rgb($link-color)};
|
|
||||||
--#{$prefix}link-decoration: #{$link-decoration};
|
|
||||||
|
|
||||||
--#{$prefix}link-hover-color: #{$link-hover-color};
|
|
||||||
--#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};
|
|
||||||
|
|
||||||
@if $link-hover-decoration != null {
|
|
||||||
--#{$prefix}link-hover-decoration: #{$link-hover-decoration};
|
|
||||||
}
|
|
||||||
|
|
||||||
--#{$prefix}code-color: #{$code-color};
|
|
||||||
--#{$prefix}highlight-bg: #{$mark-bg};
|
|
||||||
|
|
||||||
// scss-docs-start root-border-var
|
|
||||||
--#{$prefix}border-width: #{$border-width};
|
|
||||||
--#{$prefix}border-style: #{$border-style};
|
|
||||||
--#{$prefix}border-color: #{$border-color};
|
|
||||||
--#{$prefix}border-color-translucent: #{$border-color-translucent};
|
|
||||||
|
|
||||||
--#{$prefix}border-radius: #{$border-radius};
|
|
||||||
--#{$prefix}border-radius-sm: #{$border-radius-sm};
|
|
||||||
--#{$prefix}border-radius-lg: #{$border-radius-lg};
|
|
||||||
--#{$prefix}border-radius-xl: #{$border-radius-xl};
|
|
||||||
--#{$prefix}border-radius-xxl: #{$border-radius-xxl};
|
|
||||||
--#{$prefix}border-radius-2xl: var(--#{$prefix}border-radius-xxl); // Deprecated in v5.3.0 for consistency
|
|
||||||
--#{$prefix}border-radius-pill: #{$border-radius-pill};
|
|
||||||
// scss-docs-end root-border-var
|
|
||||||
|
|
||||||
--#{$prefix}box-shadow: #{$box-shadow};
|
|
||||||
--#{$prefix}box-shadow-sm: #{$box-shadow-sm};
|
|
||||||
--#{$prefix}box-shadow-lg: #{$box-shadow-lg};
|
|
||||||
--#{$prefix}box-shadow-inset: #{$box-shadow-inset};
|
|
||||||
|
|
||||||
// Focus styles
|
|
||||||
// scss-docs-start root-focus-variables
|
|
||||||
--#{$prefix}focus-ring-width: #{$focus-ring-width};
|
|
||||||
--#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};
|
|
||||||
--#{$prefix}focus-ring-color: #{$focus-ring-color};
|
|
||||||
// By default, there is no `--bs-focus-ring-x`, `--bs-focus-ring-y`, or `--bs-focus-ring-blur`, but we provide CSS variables with fallbacks to initial `0` values
|
|
||||||
--#{$prefix}focus-ring-box-shadow: var(--#{$prefix}focus-ring-x, 0) var(--#{$prefix}focus-ring-y, 0) var(--#{$prefix}focus-ring-blur, 0) var(--#{$prefix}focus-ring-width) var(--#{$prefix}focus-ring-color);
|
|
||||||
// scss-docs-end root-focus-variables
|
|
||||||
}
|
|
||||||
|
|
||||||
@if $enable-dark-mode {
|
|
||||||
@include color-mode(dark, true) {
|
|
||||||
color-scheme: dark;
|
|
||||||
|
|
||||||
// scss-docs-start root-dark-mode-vars
|
|
||||||
--#{$prefix}body-color: #{$body-color-dark};
|
|
||||||
--#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};
|
|
||||||
--#{$prefix}body-bg: #{$body-bg-dark};
|
|
||||||
--#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};
|
|
||||||
|
|
||||||
--#{$prefix}emphasis-color: #{$body-emphasis-color-dark};
|
|
||||||
--#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};
|
|
||||||
|
|
||||||
--#{$prefix}secondary-color: #{$body-secondary-color-dark};
|
|
||||||
--#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};
|
|
||||||
--#{$prefix}secondary-bg: #{$body-secondary-bg-dark};
|
|
||||||
--#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};
|
|
||||||
|
|
||||||
--#{$prefix}tertiary-color: #{$body-tertiary-color-dark};
|
|
||||||
--#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};
|
|
||||||
--#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};
|
|
||||||
--#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};
|
|
||||||
|
|
||||||
@each $color, $value in $theme-colors-text-dark {
|
|
||||||
--#{$prefix}#{$color}-text-emphasis: #{$value};
|
|
||||||
}
|
|
||||||
|
|
||||||
@each $color, $value in $theme-colors-bg-subtle-dark {
|
|
||||||
--#{$prefix}#{$color}-bg-subtle: #{$value};
|
|
||||||
}
|
|
||||||
|
|
||||||
@each $color, $value in $theme-colors-border-subtle-dark {
|
|
||||||
--#{$prefix}#{$color}-border-subtle: #{$value};
|
|
||||||
}
|
|
||||||
|
|
||||||
@if $headings-color-dark != null {
|
|
||||||
--#{$prefix}heading-color: #{$headings-color-dark};
|
|
||||||
}
|
|
||||||
|
|
||||||
--#{$prefix}link-color: #{$link-color-dark};
|
|
||||||
--#{$prefix}link-hover-color: #{$link-hover-color-dark};
|
|
||||||
--#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};
|
|
||||||
--#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};
|
|
||||||
|
|
||||||
--#{$prefix}code-color: #{$code-color-dark};
|
|
||||||
|
|
||||||
--#{$prefix}border-color: #{$border-color-dark};
|
|
||||||
--#{$prefix}border-color-translucent: #{$border-color-translucent-dark};
|
|
||||||
// scss-docs-end root-dark-mode-vars
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,77 +0,0 @@
|
|||||||
// Copied from https://github.com/twbs/bootstrap/pull/37953
|
|
||||||
|
|
||||||
// Dark color mode variables
|
|
||||||
//
|
|
||||||
// Custom variables for the `[data-bs-theme="dark"]` theme. Use this as a starting point for your own custom color modes by creating a new theme-specific file like `_variables-dark.scss` and adding the variables you need.
|
|
||||||
|
|
||||||
//
|
|
||||||
// Global colors
|
|
||||||
//
|
|
||||||
|
|
||||||
// scss-docs-start sass-dark-mode-vars
|
|
||||||
// scss-docs-start theme-text-dark-variables
|
|
||||||
$primary-text-emphasis-dark: tint-color($primary, 40%) !default;
|
|
||||||
$secondary-text-emphasis-dark: tint-color($secondary, 40%) !default;
|
|
||||||
$success-text-emphasis-dark: tint-color($success, 40%) !default;
|
|
||||||
$info-text-emphasis-dark: tint-color($info, 40%) !default;
|
|
||||||
$warning-text-emphasis-dark: tint-color($warning, 40%) !default;
|
|
||||||
$danger-text-emphasis-dark: tint-color($danger, 40%) !default;
|
|
||||||
$light-text-emphasis-dark: $gray-100 !default;
|
|
||||||
$dark-text-emphasis-dark: $gray-300 !default;
|
|
||||||
// scss-docs-end theme-text-dark-variables
|
|
||||||
|
|
||||||
// scss-docs-start theme-bg-subtle-dark-variables
|
|
||||||
$primary-bg-subtle-dark: shade-color($primary, 80%) !default;
|
|
||||||
$secondary-bg-subtle-dark: shade-color($secondary, 80%) !default;
|
|
||||||
$success-bg-subtle-dark: shade-color($success, 80%) !default;
|
|
||||||
$info-bg-subtle-dark: shade-color($info, 80%) !default;
|
|
||||||
$warning-bg-subtle-dark: shade-color($warning, 80%) !default;
|
|
||||||
$danger-bg-subtle-dark: shade-color($danger, 80%) !default;
|
|
||||||
$light-bg-subtle-dark: $gray-800 !default;
|
|
||||||
$dark-bg-subtle-dark: mix($gray-800, $black) !default;
|
|
||||||
// scss-docs-end theme-bg-subtle-dark-variables
|
|
||||||
|
|
||||||
// scss-docs-start theme-border-subtle-dark-variables
|
|
||||||
$primary-border-subtle-dark: shade-color($primary, 40%) !default;
|
|
||||||
$secondary-border-subtle-dark: shade-color($secondary, 40%) !default;
|
|
||||||
$success-border-subtle-dark: shade-color($success, 40%) !default;
|
|
||||||
$info-border-subtle-dark: shade-color($info, 40%) !default;
|
|
||||||
$warning-border-subtle-dark: shade-color($warning, 40%) !default;
|
|
||||||
$danger-border-subtle-dark: shade-color($danger, 40%) !default;
|
|
||||||
$light-border-subtle-dark: $gray-700 !default;
|
|
||||||
$dark-border-subtle-dark: $gray-800 !default;
|
|
||||||
// scss-docs-end theme-border-subtle-dark-variables
|
|
||||||
|
|
||||||
$body-color-dark: $gray-500 !default;
|
|
||||||
$body-bg-dark: $gray-900 !default;
|
|
||||||
$body-secondary-color-dark: rgba($body-color-dark, .75) !default;
|
|
||||||
$body-secondary-bg-dark: $gray-800 !default;
|
|
||||||
$body-tertiary-color-dark: rgba($body-color-dark, .5) !default;
|
|
||||||
$body-tertiary-bg-dark: mix($gray-800, $gray-900, 50%) !default;
|
|
||||||
$body-emphasis-color-dark: $white !default;
|
|
||||||
$border-color-dark: $gray-700 !default;
|
|
||||||
$border-color-translucent-dark: rgba($white, .15) !default;
|
|
||||||
$headings-color-dark: null !default;
|
|
||||||
$link-color-dark: tint-color($primary, 40%) !default;
|
|
||||||
$link-hover-color-dark: shift-color($link-color-dark, -$link-shade-percentage) !default;
|
|
||||||
$code-color-dark: tint-color($code-color, 40%) !default;
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Forms
|
|
||||||
//
|
|
||||||
|
|
||||||
$form-select-indicator-color-dark: $body-color-dark !default;
|
|
||||||
$form-select-indicator-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#{$form-select-indicator-color-dark}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>") !default;
|
|
||||||
|
|
||||||
$form-switch-color-dark: rgba($white, .25) !default;
|
|
||||||
$form-switch-bg-image-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-color-dark}'/></svg>") !default;
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Accordion
|
|
||||||
//
|
|
||||||
|
|
||||||
$accordion-button-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$primary-text-emphasis-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
|
|
||||||
$accordion-button-active-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$primary-text-emphasis-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
|
|
||||||
// scss-docs-end sass-dark-mode-vars
|
|
File diff suppressed because it is too large
Load Diff
62
assets/scss/theme/fonts.scss
Normal file
62
assets/scss/theme/fonts.scss
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
/*!
|
||||||
|
* Copyright (c) 2016-2020 The Inter Project Authors.
|
||||||
|
* "Inter" is trademark of Rasmus Andersson.
|
||||||
|
* https://github.com/rsms/inter
|
||||||
|
|
||||||
|
* This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
* This license is copied below, and is also available with a FAQ at:
|
||||||
|
* http://scripts.sil.org/OFL
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* inter-200 - latin */
|
||||||
|
@font-face {
|
||||||
|
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 200;
|
||||||
|
src: url('../fonts/inter-v12-latin-200.eot'); /* IE9 Compat Modes */
|
||||||
|
src: url('../fonts/inter-v12-latin-200.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||||
|
url('../fonts/inter-v12-latin-200.woff2') format('woff2'), /* Super Modern Browsers */
|
||||||
|
url('../fonts/inter-v12-latin-200.woff') format('woff'), /* Modern Browsers */
|
||||||
|
url('../fonts/inter-v12-latin-200.ttf') format('truetype'), /* Safari, Android, iOS */
|
||||||
|
url('../fonts/inter-v12-latin-200.svg#Inter') format('svg'); /* Legacy iOS */
|
||||||
|
}
|
||||||
|
/* inter-300 - latin */
|
||||||
|
@font-face {
|
||||||
|
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 300;
|
||||||
|
src: url('../fonts/inter-v12-latin-300.eot'); /* IE9 Compat Modes */
|
||||||
|
src: url('../fonts/inter-v12-latin-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||||
|
url('../fonts/inter-v12-latin-300.woff2') format('woff2'), /* Super Modern Browsers */
|
||||||
|
url('../fonts/inter-v12-latin-300.woff') format('woff'), /* Modern Browsers */
|
||||||
|
url('../fonts/inter-v12-latin-300.ttf') format('truetype'), /* Safari, Android, iOS */
|
||||||
|
url('../fonts/inter-v12-latin-300.svg#Inter') format('svg'); /* Legacy iOS */
|
||||||
|
}
|
||||||
|
/* inter-regular - latin */
|
||||||
|
@font-face {
|
||||||
|
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
src: url('../fonts/inter-v12-latin-regular.eot'); /* IE9 Compat Modes */
|
||||||
|
src: url('../fonts/inter-v12-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||||
|
url('../fonts/inter-v12-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
|
||||||
|
url('../fonts/inter-v12-latin-regular.woff') format('woff'), /* Modern Browsers */
|
||||||
|
url('../fonts/inter-v12-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
|
||||||
|
url('../fonts/inter-v12-latin-regular.svg#Inter') format('svg'); /* Legacy iOS */
|
||||||
|
}
|
||||||
|
/* inter-600 - latin */
|
||||||
|
@font-face {
|
||||||
|
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 600;
|
||||||
|
src: url('../fonts/inter-v12-latin-600.eot'); /* IE9 Compat Modes */
|
||||||
|
src: url('../fonts/inter-v12-latin-600.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||||
|
url('../fonts/inter-v12-latin-600.woff2') format('woff2'), /* Super Modern Browsers */
|
||||||
|
url('../fonts/inter-v12-latin-600.woff') format('woff'), /* Modern Browsers */
|
||||||
|
url('../fonts/inter-v12-latin-600.ttf') format('truetype'), /* Safari, Android, iOS */
|
||||||
|
url('../fonts/inter-v12-latin-600.svg#Inter') format('svg'); /* Legacy iOS */
|
||||||
|
}
|
@@ -1,25 +0,0 @@
|
|||||||
---
|
|
||||||
label: Blog post
|
|
||||||
hide_body: false
|
|
||||||
fields:
|
|
||||||
- type: text
|
|
||||||
name: author
|
|
||||||
label: author
|
|
||||||
- type: text
|
|
||||||
name: title
|
|
||||||
label: title
|
|
||||||
- type: text
|
|
||||||
name: description
|
|
||||||
label: description
|
|
||||||
- type: list
|
|
||||||
name: tags
|
|
||||||
label: tags
|
|
||||||
- type: datetime
|
|
||||||
name: date
|
|
||||||
label: date
|
|
||||||
- type: file
|
|
||||||
name: thumbnail
|
|
||||||
label: thumbnail
|
|
||||||
- type: textarea
|
|
||||||
name: credits
|
|
||||||
label: credits
|
|
@@ -1,25 +0,0 @@
|
|||||||
---
|
|
||||||
label: Project
|
|
||||||
hide_body: false
|
|
||||||
fields:
|
|
||||||
- type: text
|
|
||||||
name: author
|
|
||||||
label: author
|
|
||||||
- type: text
|
|
||||||
name: title
|
|
||||||
label: title
|
|
||||||
- type: datetime
|
|
||||||
name: date
|
|
||||||
label: date
|
|
||||||
- type: text
|
|
||||||
name: description
|
|
||||||
label: description
|
|
||||||
- type: list
|
|
||||||
name: tags
|
|
||||||
label: tags
|
|
||||||
- type: file
|
|
||||||
name: thumbnail
|
|
||||||
label: thumbnail
|
|
||||||
- type: textarea
|
|
||||||
name: credits
|
|
||||||
label: credits
|
|
@@ -1,40 +0,0 @@
|
|||||||
---
|
|
||||||
new_page_extension: md
|
|
||||||
auto_deploy: false
|
|
||||||
admin_path:
|
|
||||||
webhook_url:
|
|
||||||
sections:
|
|
||||||
- type: directory
|
|
||||||
path: content/en/blog
|
|
||||||
label: Blog
|
|
||||||
create: all
|
|
||||||
match: "**/*"
|
|
||||||
templates:
|
|
||||||
- blog-post
|
|
||||||
- type: directory
|
|
||||||
path: content/en/projects
|
|
||||||
label: Projects
|
|
||||||
create: all
|
|
||||||
match: "**/*"
|
|
||||||
templates:
|
|
||||||
- project
|
|
||||||
- type: document
|
|
||||||
path: content/en/about.md
|
|
||||||
label: About
|
|
||||||
upload_dir: assets/img
|
|
||||||
public_path: "/img"
|
|
||||||
front_matter_path: ''
|
|
||||||
use_front_matter_path: false
|
|
||||||
file_template: ":filename:"
|
|
||||||
build:
|
|
||||||
preview_env:
|
|
||||||
- HUGO_ENV=staging
|
|
||||||
- HUGO_VERSION=0.92.2
|
|
||||||
- HUGO_ENABLEGITINFO=true
|
|
||||||
preview_output_directory: public
|
|
||||||
install_dependencies_command: npm install
|
|
||||||
preview_docker_image: forestryio/hugo:node16
|
|
||||||
mount_path: "/srv"
|
|
||||||
working_dir: "/srv"
|
|
||||||
instant_preview_command: npm run start
|
|
||||||
version: 0.81.0
|
|
123
config/_default/hugo.toml
Normal file
123
config/_default/hugo.toml
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
# toml-docs-start main
|
||||||
|
title = "Hinode"
|
||||||
|
copyright = "Copyright © 2023 Mark Dumay."
|
||||||
|
paginate = 9
|
||||||
|
enableGitInfo = true
|
||||||
|
# toml-docs-end main
|
||||||
|
|
||||||
|
# additional settings
|
||||||
|
# googleAnalytics = "G-xxxxxxxxxx"
|
||||||
|
baseURL = "https://example.com/"
|
||||||
|
canonifyURLs = false
|
||||||
|
enableEmoji = true
|
||||||
|
enableRobotsTXT = true
|
||||||
|
enableInlineShortcodes = true
|
||||||
|
summaryLength = 20
|
||||||
|
|
||||||
|
# prevent build failures when using Hugo's Instagram shortcode due to deprecated Instagram API.
|
||||||
|
# See https://github.com/gohugoio/hugo/issues/7228#issuecomment-714490456
|
||||||
|
ignoreErrors = ["error-remote-getjson"]
|
||||||
|
|
||||||
|
# toml-docs-start timeout
|
||||||
|
timeout = "180s"
|
||||||
|
# toml-docs-end timeout
|
||||||
|
|
||||||
|
# toml-docs-start language
|
||||||
|
languageCode = "en-us"
|
||||||
|
defaultContentLanguage = "en"
|
||||||
|
defaultContentLanguageInSubdir = false
|
||||||
|
# toml-docs-end language
|
||||||
|
|
||||||
|
# toml-docs-start redirect
|
||||||
|
[outputFormats.REDIR]
|
||||||
|
mediaType = "text/netlify"
|
||||||
|
baseName = "_redirects"
|
||||||
|
isPlainText = true
|
||||||
|
notAlternative = true
|
||||||
|
|
||||||
|
[mediaTypes."text/netlify"]
|
||||||
|
delimiter = ""
|
||||||
|
|
||||||
|
[outputs]
|
||||||
|
home = ["HTML", "RSS", "REDIR"]
|
||||||
|
# toml-docs-end redirect
|
||||||
|
|
||||||
|
# toml-docs-start build
|
||||||
|
[build]
|
||||||
|
writeStats = true
|
||||||
|
# toml-docs-end build
|
||||||
|
|
||||||
|
[taxonomies]
|
||||||
|
tag = 'tags'
|
||||||
|
|
||||||
|
[privacy]
|
||||||
|
[privacy.vimeo]
|
||||||
|
disabled = false
|
||||||
|
simple = true
|
||||||
|
|
||||||
|
[privacy.twitter]
|
||||||
|
disabled = false
|
||||||
|
enableDNT = true
|
||||||
|
simple = true
|
||||||
|
|
||||||
|
[privacy.instagram]
|
||||||
|
disabled = false
|
||||||
|
simple = true
|
||||||
|
|
||||||
|
[privacy.youtube]
|
||||||
|
disabled = false
|
||||||
|
privacyEnhanced = true
|
||||||
|
|
||||||
|
[services]
|
||||||
|
[services.instagram]
|
||||||
|
disableInlineCSS = true
|
||||||
|
[services.twitter]
|
||||||
|
disableInlineCSS = true
|
||||||
|
|
||||||
|
[outputFormats]
|
||||||
|
[outputFormats.XML]
|
||||||
|
isPlainText = false
|
||||||
|
mediaType = "application/xml"
|
||||||
|
isHtml = false
|
||||||
|
noUgly = true
|
||||||
|
permalinkable = false
|
||||||
|
name = "xml"
|
||||||
|
|
||||||
|
[module]
|
||||||
|
[module.hugoVersion]
|
||||||
|
extended = true
|
||||||
|
min = "0.110.0"
|
||||||
|
max = ""
|
||||||
|
[[module.mounts]]
|
||||||
|
source = "archetypes"
|
||||||
|
target = "archetypes"
|
||||||
|
[[module.mounts]]
|
||||||
|
source = "assets"
|
||||||
|
target = "assets"
|
||||||
|
[[module.mounts]]
|
||||||
|
source = "content"
|
||||||
|
target = "content"
|
||||||
|
[[module.mounts]]
|
||||||
|
source = "i18n"
|
||||||
|
target = "i18n"
|
||||||
|
[[module.mounts]]
|
||||||
|
source = "layouts"
|
||||||
|
target = "layouts"
|
||||||
|
[[module.mounts]]
|
||||||
|
source = "static"
|
||||||
|
target = "static"
|
||||||
|
[[module.mounts]]
|
||||||
|
source = "netlify.toml"
|
||||||
|
target = "assets/config/netlify.toml"
|
||||||
|
# toml-docs-start modules
|
||||||
|
[[module.imports]]
|
||||||
|
path = "github.com/gethinode/mod-bootstrap"
|
||||||
|
[[module.imports]]
|
||||||
|
path = "github.com/gethinode/mod-flexsearch"
|
||||||
|
[[module.imports]]
|
||||||
|
path = "github.com/gethinode/mod-fontawesome"
|
||||||
|
[[module.imports]]
|
||||||
|
path = "github.com/gethinode/mod-katex"
|
||||||
|
[[module.imports]]
|
||||||
|
path = "github.com/gethinode/mod-leaflet"
|
||||||
|
# toml-docs-end modules
|
@@ -1,31 +1,15 @@
|
|||||||
# toml-docs-start lang-main
|
# 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 = "/en/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'>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 = "/nl/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'>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,73 +1,51 @@
|
|||||||
[[main]]
|
[[main]]
|
||||||
name = "About"
|
name = "Home"
|
||||||
url = "/about/"
|
pageRef = "/"
|
||||||
weight = 10
|
weight = 10
|
||||||
|
|
||||||
[[main]]
|
|
||||||
name = "Blog"
|
|
||||||
url = "/blog/"
|
|
||||||
weight = 20
|
|
||||||
|
|
||||||
[[main]]
|
|
||||||
name = "Projects"
|
|
||||||
url = "/projects/"
|
|
||||||
weight = 30
|
|
||||||
|
|
||||||
[[main]]
|
|
||||||
name = "Sample project"
|
|
||||||
url = "/en/projects/sample-project/"
|
|
||||||
parent = "Projects"
|
|
||||||
weight = 1
|
|
||||||
|
|
||||||
[[main]]
|
|
||||||
name = "Another project"
|
|
||||||
url = "/en/projects/another-project/"
|
|
||||||
parent = "Projects"
|
|
||||||
weight = 2
|
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Tags"
|
name = "Tags"
|
||||||
url = "/tags/"
|
pageRef = "/tags"
|
||||||
weight = 40
|
weight = 20
|
||||||
|
|
||||||
[[social]]
|
[[social]]
|
||||||
name = "LinkedIn"
|
name = "LinkedIn"
|
||||||
pre = "<i class=\"fab fa-linkedin fa-2x\"></i>"
|
pre = "fab linkedin"
|
||||||
url = "https://linkedin.com/"
|
url = "https://linkedin.com/"
|
||||||
weight = 10
|
weight = 10
|
||||||
|
|
||||||
[[social]]
|
[[social]]
|
||||||
name = "GitHub"
|
name = "GitHub"
|
||||||
pre = "<i class=\"fab fa-github fa-2x\"></i>"
|
pre = "fab fa-github"
|
||||||
url = "https://github.com/"
|
url = "https://github.com/"
|
||||||
weight = 20
|
weight = 20
|
||||||
|
|
||||||
[[social]]
|
[[social]]
|
||||||
name = "Medium"
|
name = "Medium"
|
||||||
pre = "<i class=\"fab fa-medium fa-2x\"></i>"
|
pre = "fab medium"
|
||||||
url = "https://medium.com/"
|
url = "https://medium.com/"
|
||||||
weight = 30
|
weight = 30
|
||||||
|
|
||||||
# toml-docs-start sample-navigation
|
# toml-docs-start sample-navigation
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Blog"
|
name = "Blog"
|
||||||
url = "/blog/"
|
pageRef = "/blog/"
|
||||||
weight = 10
|
weight = 10
|
||||||
|
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Projects"
|
name = "Projects"
|
||||||
url = "/projects/"
|
pageRef = "/projects/"
|
||||||
weight = 20
|
weight = 20
|
||||||
|
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Sample project"
|
name = "Sample project"
|
||||||
url = "/en/projects/sample-project/"
|
pageRef = "/projects/sample-project/"
|
||||||
parent = "Projects"
|
parent = "Projects"
|
||||||
weight = 1
|
weight = 1
|
||||||
|
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Another project"
|
name = "Another project"
|
||||||
url = "/en/projects/another-project/"
|
pageRef = "/projects/another-project/"
|
||||||
parent = "Projects"
|
parent = "Projects"
|
||||||
weight = 2
|
weight = 2
|
||||||
# toml-docs-end sample-navigation
|
# toml-docs-end sample-navigation
|
@@ -3,61 +3,123 @@
|
|||||||
separator = "-"
|
separator = "-"
|
||||||
description = "Hinode is a clean documentation and blog theme for your Hugo site based on Bootstrap 5."
|
description = "Hinode is a clean documentation and blog theme for your Hugo site based on Bootstrap 5."
|
||||||
enableDarkMode = true
|
enableDarkMode = true
|
||||||
|
modes = ["light", "dark"]
|
||||||
|
canonifyAssetsURLs = false
|
||||||
|
endorse = true
|
||||||
|
[main.externalLinks]
|
||||||
|
cue = false
|
||||||
|
tab = false
|
||||||
# toml-docs-end main
|
# toml-docs-end main
|
||||||
|
|
||||||
|
# toml-docs-start modules
|
||||||
|
[modules]
|
||||||
|
core = ["bootstrap", "flexsearch", "fontawesome"]
|
||||||
|
optional = ["leaflet", "katex"]
|
||||||
|
excludeSCSS = ["bootstrap"]
|
||||||
|
disableTemplate = ["katex"]
|
||||||
|
[modules.fontawesome]
|
||||||
|
inline = true
|
||||||
|
debug = true
|
||||||
|
skipMissing = false
|
||||||
|
# toml-docs-end modules
|
||||||
|
|
||||||
|
# toml-docs-start debugging
|
||||||
|
[debugging]
|
||||||
|
showJS = false
|
||||||
|
showSCSS = false
|
||||||
|
purgeHTMLComments = false
|
||||||
|
# toml-docs-end debugging
|
||||||
|
|
||||||
# toml-docs-start docs
|
# toml-docs-start docs
|
||||||
[docs]
|
[docs]
|
||||||
version = "0.8"
|
github = "https://github.com/gethinode/hinode"
|
||||||
basePath = ""
|
release = "https://github.com/gethinode/hinode/releases/tag/"
|
||||||
|
checkVersion = false
|
||||||
# toml-docs-end docs
|
# toml-docs-end docs
|
||||||
|
|
||||||
# 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
|
||||||
style = ""
|
style = ""
|
||||||
# toml-docs-end home
|
# toml-docs-end home
|
||||||
|
|
||||||
# toml-docs-start navigation
|
# toml-docs-start navigation
|
||||||
[navigation]
|
[navigation]
|
||||||
|
anchor = true
|
||||||
logo = "/img/logo_icon.svg"
|
logo = "/img/logo_icon.svg"
|
||||||
color = "body"
|
color = "body"
|
||||||
fixed = true
|
fixed = true
|
||||||
offset = "4em"
|
offset = "3.8em"
|
||||||
search = true
|
search = true
|
||||||
breadcrumb = false
|
breadcrumb = true
|
||||||
toc = true
|
toc = true
|
||||||
sidebar = true
|
sidebar = true
|
||||||
|
size = "md"
|
||||||
# toml-docs-end navigation
|
# toml-docs-end navigation
|
||||||
|
|
||||||
# toml-docs-start list
|
# toml-docs-start messages
|
||||||
[list]
|
[messages]
|
||||||
[blog]
|
placement = "bottom-right"
|
||||||
title = "Blog"
|
# toml-docs-end messages
|
||||||
sort = "date"
|
|
||||||
reverse = false
|
# toml-docs-start sharing
|
||||||
cols = 3
|
[sharing]
|
||||||
color = ""
|
enabled = true
|
||||||
padding = "0"
|
sort = "weight"
|
||||||
header = "full"
|
reverse = false
|
||||||
footer = "none"
|
webshare = true
|
||||||
orientation = "stacked"
|
|
||||||
style = "border-0"
|
[[sharing.providers]]
|
||||||
homepage = 3
|
name = "LinkedIn"
|
||||||
[projects]
|
url = "https://www.linkedin.com/sharing/share-offsite/?url={url}"
|
||||||
title = "Projects"
|
icon = "fab linkedin"
|
||||||
sort = "title"
|
weight = 10
|
||||||
reverse = false
|
|
||||||
cols = 1
|
[[sharing.providers]]
|
||||||
color = ""
|
name = "Twitter"
|
||||||
padding = "3"
|
url = "https://twitter.com/home?status={url}"
|
||||||
header = "none"
|
icon = "fab x-twitter"
|
||||||
footer = "tags"
|
weight = 20
|
||||||
orientation = "none"
|
|
||||||
style = "border-1 card-emphasize"
|
[[sharing.providers]]
|
||||||
homepage = 3
|
name = "Facebook"
|
||||||
# toml-docs-end list
|
url = "https://www.facebook.com/sharer.php?u={url}"
|
||||||
|
icon = "fab facebook"
|
||||||
|
weight = 30
|
||||||
|
|
||||||
|
[[sharing.providers]]
|
||||||
|
name = "WhatsApp"
|
||||||
|
url = "whatsapp://send?text={title}%20{url}"
|
||||||
|
icon = "fab whatsapp"
|
||||||
|
weight = 40
|
||||||
|
|
||||||
|
[[sharing.providers]]
|
||||||
|
name = "email"
|
||||||
|
url = "{url}"
|
||||||
|
icon = "fas link"
|
||||||
|
weight = 50
|
||||||
|
clipboard = true
|
||||||
|
# toml-docs-end sharing
|
||||||
|
|
||||||
|
# toml-docs-start sections
|
||||||
|
# [sections]
|
||||||
|
# [sections.posts]
|
||||||
|
# title = "Posts"
|
||||||
|
# sort = "date"
|
||||||
|
# reverse = true
|
||||||
|
# nested = true
|
||||||
|
# cols = 3
|
||||||
|
# color = ""
|
||||||
|
# padding = "0"
|
||||||
|
# header = "full"
|
||||||
|
# footer = "none"
|
||||||
|
# orientation = "stacked"
|
||||||
|
# style = "border-0 card-zoom"
|
||||||
|
# homepage = 3
|
||||||
|
# separator = true
|
||||||
|
# toml-docs-end sections
|
||||||
|
|
||||||
[favicon]
|
[favicon]
|
||||||
logo = "img/favicon.png"
|
logo = "img/favicon.png"
|
||||||
@@ -65,7 +127,7 @@
|
|||||||
|
|
||||||
# toml-docs-start theme-colors
|
# toml-docs-start theme-colors
|
||||||
[style]
|
[style]
|
||||||
primary = "#D43900"
|
primary = "#d43900"
|
||||||
secondary = "#6c757d"
|
secondary = "#6c757d"
|
||||||
success = "#198754"
|
success = "#198754"
|
||||||
info = "#0dcaf0"
|
info = "#0dcaf0"
|
||||||
@@ -75,10 +137,16 @@
|
|||||||
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"
|
# themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" # external path
|
||||||
|
themeFontPath = "/fonts" # local path
|
||||||
# toml-docs-end font
|
# toml-docs-end font
|
||||||
|
# toml-docs-start build
|
||||||
|
purge = false
|
||||||
|
# toml-docs-end build
|
||||||
|
|
||||||
[schema]
|
[schema]
|
||||||
type = "Organization"
|
type = "Organization"
|
||||||
@@ -116,11 +184,4 @@
|
|||||||
#theme = ""
|
#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"
|
|
||||||
|
|
||||||
|
@@ -8,14 +8,15 @@ for = '/**'
|
|||||||
Content-Security-Policy = """\
|
Content-Security-Policy = """\
|
||||||
default-src 'self'; \
|
default-src 'self'; \
|
||||||
script-src 'self' \
|
script-src 'self' \
|
||||||
https://utteranc.es/client.js; \
|
https://utteranc.es/client.js https://*.google-analytics.com https://*.googletagmanager.com; \
|
||||||
style-src 'self' https://utteranc.es https://fonts.googleapis.com https://www.youtube.com; \
|
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; \
|
||||||
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://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com; \
|
||||||
img-src 'self' https://i.vimeocdn.com https://i.ytimg.com; \
|
img-src 'self' data: https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \
|
||||||
manifest-src 'self'; \
|
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
|
@@ -1,47 +1,43 @@
|
|||||||
const autoprefixer = require('autoprefixer');
|
const autoprefixer = require('autoprefixer')({})
|
||||||
const purgecss = require('@fullhuman/postcss-purgecss');
|
const cssnano = require('cssnano')({
|
||||||
const whitelister = require('purgecss-whitelister');
|
preset: 'advanced'
|
||||||
|
})
|
||||||
|
const whitelister = require('purgecss-whitelister')
|
||||||
|
const purgecss = require('@fullhuman/postcss-purgecss')({
|
||||||
|
content: ['./hugo_stats.json'],
|
||||||
|
defaultExtractor: (content) => {
|
||||||
|
const els = JSON.parse(content).htmlElements
|
||||||
|
return [...(els.tags || []), ...(els.classes || []), ...(els.ids || [])]
|
||||||
|
},
|
||||||
|
dynamicAttributes: ['data-bs-theme'],
|
||||||
|
safelist: [
|
||||||
|
...whitelister([
|
||||||
|
'./assets/scss/components/_clipboard.scss',
|
||||||
|
'./assets/scss/components/_command.scss',
|
||||||
|
'./assets/scss/components/_navbar.scss',
|
||||||
|
'./assets/scss/components/_search.scss',
|
||||||
|
'./assets/scss/components/_syntax.scss',
|
||||||
|
'./assets/scss/components/_syntax-dark.scss',
|
||||||
|
'./assets/scss/components/_syntax-light.scss',
|
||||||
|
'./assets/scss/theme/fonts.scss',
|
||||||
|
'./assets/scss/theme/theme.scss',
|
||||||
|
'./_vendor/github.com/gethinode/mod-flexsearch/assets/scss/modules/flexsearch/flexsearch.scss',
|
||||||
|
'./_vendor/github.com/gethinode/mod-katex/dist/katex.scss',
|
||||||
|
'./_vendor/github.com/gethinode/mod-leaflet/dist/leaflet.scss',
|
||||||
|
'./_vendor/github.com/twbs/bootstrap/scss/_carousel.scss',
|
||||||
|
'./_vendor/github.com/twbs/bootstrap/scss/_dropdown.scss',
|
||||||
|
'./_vendor/github.com/twbs/bootstrap/scss/_reboot.scss',
|
||||||
|
'./_vendor/github.com/twbs/bootstrap/scss/_tooltip.scss',
|
||||||
|
'./_vendor/github.com/twbs/bootstrap/scss/_transitions.scss',
|
||||||
|
'./_vendor/github.com/twbs/bootstrap/scss/_utilities.scss'
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
plugins: [
|
plugins: [
|
||||||
autoprefixer(),
|
autoprefixer,
|
||||||
purgecss({
|
cssnano,
|
||||||
content: [
|
purgecss
|
||||||
'./layouts/**/*.html',
|
]
|
||||||
'./content/**/*.md',
|
|
||||||
],
|
|
||||||
safelist: [
|
|
||||||
/lazyloaded/,
|
|
||||||
/table/,
|
|
||||||
/thead/,
|
|
||||||
/tbody/,
|
|
||||||
/tr/,
|
|
||||||
/th/,
|
|
||||||
/td/,
|
|
||||||
/h5/,
|
|
||||||
/alert-link/,
|
|
||||||
/container-xxl/,
|
|
||||||
/container-fluid/,
|
|
||||||
/^bg-opacity-\d+/,
|
|
||||||
/svg.*/,
|
|
||||||
/fa.*/,
|
|
||||||
/ratio.*/,
|
|
||||||
/suggestion.*/,
|
|
||||||
...whitelister([
|
|
||||||
'./assets/scss/components/_blockquote.scss',
|
|
||||||
'./assets/scss/components/_buttons.scss',
|
|
||||||
'./assets/scss/components/_card.scss',
|
|
||||||
'./assets/scss/components/_clipboard.scss',
|
|
||||||
'./assets/scss/components/_img.scss',
|
|
||||||
'./assets/scss/components/_navbar.scss',
|
|
||||||
'./assets/scss/components/_search.scss',
|
|
||||||
'./assets/scss/components/_syntax.scss',
|
|
||||||
'./assets/scss/layouts/_reboot.scss',
|
|
||||||
'./assets/scss/layouts/type.scss',
|
|
||||||
'./node_modules/bootstrap/scss/_dropdown.scss',
|
|
||||||
'./node_modules/bootstrap/scss/_utilities.scss',
|
|
||||||
]),
|
|
||||||
],
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
}
|
}
|
||||||
|
@@ -1 +0,0 @@
|
|||||||
canonifyURLs = false
|
|
13
content/_index.md
Normal file
13
content/_index.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
title: Welcome to Hinode!
|
||||||
|
thumbnail:
|
||||||
|
url: /img/sunrise.jpg
|
||||||
|
author: Harris Vo
|
||||||
|
authorURL: https://unsplash.com/@hoanvokim
|
||||||
|
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
||||||
|
originName: Unsplash
|
||||||
|
---
|
||||||
|
|
||||||
|
A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
||||||
|
|
||||||
|
{{< button href="https://gethinode.com/docs" icon="fas book-open" order="first" >}}Get Started{{< /button>}}
|
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
author: Mark Dumay
|
|
||||||
title: Welcome to Hinode!
|
|
||||||
---
|
|
||||||
|
|
||||||
A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
|
@@ -1,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-02-11
|
|
||||||
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">
|
|
||||||
<i class="fa-brands fa-bootstrap fa-2xl"></i>
|
|
||||||
<h2 class="h4">Bootstrap framework</h2>
|
|
||||||
<p>Build fast, responsive sites with Bootstrap 5. Easily customize your site with the source Sass files.</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-4">
|
|
||||||
<i class="fa-solid fa-magnifying-glass fa-2xl"></i>
|
|
||||||
<h2 class="h4">Full text search</h2>
|
|
||||||
<p>Search your site with FlexSearch, a full-text search library with zero dependencies.</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-4">
|
|
||||||
<i class="fa-solid fa-code fa-2xl"></i>
|
|
||||||
<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
|
|
||||||
* Embedded comments through light-weight integration with GitHub via [utteranc.es]({{< param "links.utterances" >}})
|
|
||||||
* Integrated sidebar navigation for content-heavy sections, such as documentation pages
|
|
||||||
* Reponsive image handling for multiple screen sizes and resolutions
|
|
||||||
* Optimized search results, scoring 100 points for SEO on [PageSpeed Insights]({{< param "links.pagespeed" >}})
|
|
||||||
* Secure by default, scoring A+ on [Mozilla Observatory test]({{< param "links.observatory" >}})
|
|
||||||
{.tickmark}
|
|
@@ -1,243 +0,0 @@
|
|||||||
---
|
|
||||||
author: Mark Dumay
|
|
||||||
title: Bootstrap elements
|
|
||||||
date: 2023-02-17
|
|
||||||
description: Use shortcodes to add common Bootstrap elements with ease.
|
|
||||||
tags: ["bootstrap", "shortcode"]
|
|
||||||
thumbnail: img/boots.jpg
|
|
||||||
photoCredits: <a href="https://unsplash.com/@nate_dumlao">Nathan Dumlao</a>
|
|
||||||
photoSource: <a href="https://unsplash.com/photos/QLPWQvHvmII">Unsplash</a>
|
|
||||||
---
|
|
||||||
|
|
||||||
Hinode provides several shortcodes that wrap common Bootstrap components. Refer to the [official documentation]({{< param "links.hinode_docs" >}}) for more details.
|
|
||||||
|
|
||||||
## Accordion
|
|
||||||
|
|
||||||
As an example, the following shortcode displays an accordion with three elements, of which the first element is expanded.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* accordion */>}}
|
|
||||||
{{</* accordion-item header="Accordion Item #1" show="true" */>}}
|
|
||||||
This is the first item's accordion body. It supports HTML content. The item is shown by adding the value
|
|
||||||
<code>show</code> to the <code>class</code> argument.
|
|
||||||
{{</* /accordion-item */>}}
|
|
||||||
{{</* accordion-item header="Accordion Item #2" */>}}
|
|
||||||
This is the second item's accordion body. It supports HTML content too.
|
|
||||||
{{</* /accordion-item */>}}
|
|
||||||
{{</* accordion-item header="Accordion Item #3" */>}}
|
|
||||||
This is the third item's accordion body.
|
|
||||||
{{</* /accordion-item */>}}
|
|
||||||
{{</* /accordion */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Alert
|
|
||||||
|
|
||||||
As an example, the following shortcode displays a simple alert.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* alert color="danger" dismissible="true" */>}}
|
|
||||||
A simple danger alert—check it out!
|
|
||||||
{{</* /alert */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Badge
|
|
||||||
|
|
||||||
Use HTML code to display a badge for a heading. See the Bootstrap [documentation]({{< param "links.bs_badge_heading" >}}) for more options.
|
|
||||||
|
|
||||||
{{< example >}}
|
|
||||||
<h1>Example heading of size one <span class="badge bg-secondary">New</span></h1>
|
|
||||||
<h2>Example heading of size two <span class="badge bg-secondary">New</span></h2>
|
|
||||||
<h3>Example heading of size three <span class="badge bg-secondary">New</span></h3>
|
|
||||||
<h4>Example heading of size four <span class="badge bg-secondary">New</span></h4>
|
|
||||||
<h5>Example heading of size five <span class="badge bg-secondary">New</span></h5>
|
|
||||||
<h6>Example heading of size six <span class="badge bg-secondary">New</span></h6>
|
|
||||||
{{< /example >}}
|
|
||||||
|
|
||||||
## Breadcrumb
|
|
||||||
|
|
||||||
As an example, the following shortcode displays a breadcrumb for the blog page.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* breadcrumb path="blog" */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Button
|
|
||||||
|
|
||||||
As an example, the following shortcode displays a tooltip for a dark button with a badge.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* button color="secondary" tooltip="Click on the inbox to view your unread messages" href="#" badge="99+" */>}}
|
|
||||||
Inbox
|
|
||||||
{{</* /button */>}}
|
|
||||||
{{< /example>}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Button group
|
|
||||||
|
|
||||||
As an example, the following shortcode displays a group of three buttons.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* button-group aria-label="Basic example" */>}}
|
|
||||||
{{</* button color="primary" href="#" */>}}Left{{</* /button */>}}
|
|
||||||
{{</* button color="primary" href="#" */>}}Middle{{</* /button */>}}
|
|
||||||
{{</* button color="primary" href="#" */>}}Right{{</* /button */>}}
|
|
||||||
{{</* /button-group */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Card
|
|
||||||
|
|
||||||
As an example, the following shortcode displays a stacked card with icon that links to the [about]({{< ref "about" >}}) page. It includes a custom header.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* card path="about" padding="3" class="w-50" color="light" header="publication" footer="none" */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Carousel
|
|
||||||
|
|
||||||
As an example, the following shortcode displays a centered carousel with three slides, 16x9 aspect ratio, and a relative width of 67% on large screens.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* carousel ratio="16x9" class="col-sm-12 col-lg-8 mx-auto" */>}}
|
|
||||||
{{</* img src="img/coffee.jpg" caption="slide 1" */>}}
|
|
||||||
{{</* img src="img/phone.jpg" caption="slide 2" */>}}
|
|
||||||
{{</* img src="img/dunes.jpg" caption="slide 3" */>}}
|
|
||||||
{{</* /carousel */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Collapse
|
|
||||||
|
|
||||||
As an example, the following shortcode displays a button that, when clicked, triggers a panel to appear or disappear.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* button collapse="collapse-1" */>}}
|
|
||||||
Trigger panel
|
|
||||||
{{</* /button */>}}
|
|
||||||
|
|
||||||
{{</* collapse id="collapse-1" class="p-3 border rounded" */>}}
|
|
||||||
Some placeholder content for the collapse component. This panel is <i>hidden by default</i> but
|
|
||||||
revealed when the user activates the relevant trigger.
|
|
||||||
{{</* /collapse */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Command prompt
|
|
||||||
|
|
||||||
Use the `command` shortcode to generate a block with a default bash command prompt.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* command */>}}
|
|
||||||
export MY_VAR=123
|
|
||||||
{{</* /command */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
Specify `user` and `host` to add the user context to the prompt. In addition, use `(out)` to specify an output line and use `\` to denote a line continuation.
|
|
||||||
|
|
||||||
<!-- 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
|
|
||||||
|
|
||||||
Use the `docs` shortcode to display the content of a `toml` or `scss` file:
|
|
||||||
|
|
||||||
{{< docs name="theme-colors" file="config/_default/params.toml" >}}
|
|
||||||
|
|
||||||
## Icon
|
|
||||||
|
|
||||||
As an example, the following shortcodes show a square check, a brand logo, and a circle check.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* fa square-check */>}}
|
|
||||||
{{</* fab linkedin */>}}
|
|
||||||
{{</* fas circle-check */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Image
|
|
||||||
|
|
||||||
As an example, the following shortcode displays an image with rounded corners and a 21x9 aspect ratio.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* image src="img/flowers.jpg" ratio="21x9" caption="Figure caption" class="rounded" */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Navbar
|
|
||||||
|
|
||||||
As an example, the following shortcode displays a light navigation header.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* navbar path="about" color="primary" size="sm" search="false" menus="sample" title="Brand" */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Spinner
|
|
||||||
|
|
||||||
As an example, the following shortcode displays a centered spinner.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* spinner color="info" class="text-center" */>}}
|
|
||||||
Loading...
|
|
||||||
{{</* /spinner */>}}
|
|
||||||
{{< /example>}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Toast
|
|
||||||
|
|
||||||
As an example, the following shortcode displays a button that, when clicked, triggers the toast message.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* button id="toastButton" */>}}
|
|
||||||
Show toast
|
|
||||||
{{</* /button */>}}
|
|
||||||
|
|
||||||
{{</* toast header="Custom title" */>}}
|
|
||||||
This is a toast message.
|
|
||||||
{{</* /toast */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Tooltip
|
|
||||||
|
|
||||||
As an example, the following shortcode displays a tooltip for a colored hyperlink.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* tooltip color="primary" title="Tooltip" href="#" */>}}
|
|
||||||
Tooltip demonstration
|
|
||||||
{{</* /tooltip */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
author: Mark Dumay
|
|
||||||
title: Welkom bij Hinode!
|
|
||||||
---
|
|
||||||
|
|
||||||
Een documentatie en blog thema voor Hugo gebaseerd op Bootstrap 5.
|
|
@@ -1,49 +0,0 @@
|
|||||||
---
|
|
||||||
slug: over-mij
|
|
||||||
title: Over mij
|
|
||||||
description: Een blog en documentatie thema voor Hugo gebaseerd op Bootstrap 5.
|
|
||||||
date: 2023-02-17
|
|
||||||
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">
|
|
||||||
<i class="fa-brands fa-bootstrap fa-2xl"></i>
|
|
||||||
<h2 class="h4">Bootstrap raamwerk</h2>
|
|
||||||
<p>Bouw snelle websites geschikt voor mobiele en desktop schermen met Bootstrap 5. Pas de site eenvoudig aan met bronbestanden in Sass.</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-4">
|
|
||||||
<i class="fa-solid fa-magnifying-glass fa-2xl"></i>
|
|
||||||
<h2 class="h4">Volledig doorzoekbaar</h2>
|
|
||||||
<p>Doorzoek je site met FlexSearch, een software bibliotheek zonder afhankelijkheden.</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-4">
|
|
||||||
<i class="fa-solid fa-code fa-2xl"></i>
|
|
||||||
<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
|
|
||||||
* Integreren van commentaar via [utteranc.es]({{< param "links.utterances" >}})
|
|
||||||
* Secundaire navigatie voor bijvoorbeeld documentatie
|
|
||||||
* Optimalisering van foto's voor meerdere schermafmetingen en resoluties
|
|
||||||
* Optimale zoekresultaten, met 100 punten voor SEO volgens [PageSpeed Insights]({{< param "links.pagespeed" >}})
|
|
||||||
* Veilige communicatie, met een score van A+ volgens [Mozilla Observatory]({{< param "links.observatory" >}})
|
|
||||||
{.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,243 +0,0 @@
|
|||||||
---
|
|
||||||
author: Mark Dumay
|
|
||||||
title: 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 met een icoon 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="light" 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 -->
|
|
||||||
|
|
||||||
## Navbar
|
|
||||||
|
|
||||||
De volgende shortcode toont een navigatiemenu.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* navbar path="about" color="primary" size="sm" search="false" menus="sample" title="Brand" */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Spinner
|
|
||||||
|
|
||||||
De volgende shortcode toont een ronddraaiende cirkel.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* spinner color="info" class="text-center" */>}}
|
|
||||||
Loading...
|
|
||||||
{{</* /spinner */>}}
|
|
||||||
{{< /example>}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
||||||
|
|
||||||
## Toast
|
|
||||||
|
|
||||||
De volgende shortcode toont een knop die een bericht laat verschijnen op het scherm.
|
|
||||||
|
|
||||||
<!-- markdownlint-disable MD037 -->
|
|
||||||
{{< example lang="hugo" >}}
|
|
||||||
{{</* button id="toastButton" */>}}
|
|
||||||
Toon bericht
|
|
||||||
{{</* /button */>}}
|
|
||||||
|
|
||||||
{{</* toast header="Titel" */>}}
|
|
||||||
Dit is een 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 demonstration
|
|
||||||
{{</* /tooltip */>}}
|
|
||||||
{{< /example >}}
|
|
||||||
<!-- markdownlint-enable MD037 -->
|
|
@@ -1,11 +1,11 @@
|
|||||||
# toml-docs-start main
|
resourcedir = '../resources/'
|
||||||
title = "Hinode"
|
title = "Hinode"
|
||||||
copyright = "Copyright © 2023 Mark Dumay."
|
copyright = "Copyright © 2023 Mark Dumay."
|
||||||
paginate = 9
|
paginate = 9
|
||||||
enableGitInfo = true
|
enableGitInfo = true
|
||||||
# toml-docs-end main
|
|
||||||
|
|
||||||
# additional settings
|
# additional settings
|
||||||
|
googleAnalytics = "G-T85PPZ36GN"
|
||||||
baseURL = "https://demo.gethinode.com/"
|
baseURL = "https://demo.gethinode.com/"
|
||||||
canonifyURLs = false
|
canonifyURLs = false
|
||||||
enableEmoji = true
|
enableEmoji = true
|
||||||
@@ -16,16 +16,27 @@ enableInlineShortcodes = true
|
|||||||
# See https://github.com/gohugoio/hugo/issues/7228#issuecomment-714490456
|
# See https://github.com/gohugoio/hugo/issues/7228#issuecomment-714490456
|
||||||
ignoreErrors = ["error-remote-getjson"]
|
ignoreErrors = ["error-remote-getjson"]
|
||||||
|
|
||||||
# toml-docs-start build
|
timeout = "180s"
|
||||||
timeout = "60s"
|
|
||||||
# toml-docs-end build
|
|
||||||
|
|
||||||
# toml-docs-start language
|
|
||||||
languageCode = "en-us"
|
languageCode = "en-us"
|
||||||
defaultContentLanguage = "en"
|
defaultContentLanguage = "en"
|
||||||
defaultContentLanguageInSubdir = true
|
defaultContentLanguageInSubdir = true
|
||||||
# toml-docs-end language
|
|
||||||
|
|
||||||
|
[outputFormats.REDIR]
|
||||||
|
mediaType = "text/netlify"
|
||||||
|
baseName = "_redirects"
|
||||||
|
isPlainText = true
|
||||||
|
notAlternative = true
|
||||||
|
|
||||||
|
[mediaTypes."text/netlify"]
|
||||||
|
delimiter = ""
|
||||||
|
|
||||||
|
[outputs]
|
||||||
|
home = ["HTML", "RSS", "REDIR"]
|
||||||
|
|
||||||
|
[build]
|
||||||
|
writeStats = true
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tag = 'tags'
|
tag = 'tags'
|
||||||
|
|
||||||
@@ -63,23 +74,6 @@ defaultContentLanguageInSubdir = true
|
|||||||
name = "xml"
|
name = "xml"
|
||||||
|
|
||||||
[module]
|
[module]
|
||||||
[module.hugoVersion]
|
replacements = 'github.com/gethinode/hinode -> ../..'
|
||||||
extended = true
|
[[module.imports]]
|
||||||
min = "0.81.0"
|
path = "github.com/gethinode/hinode"
|
||||||
max = ""
|
|
||||||
[[module.mounts]]
|
|
||||||
source = "assets"
|
|
||||||
target = "assets"
|
|
||||||
[[module.mounts]]
|
|
||||||
source = "static"
|
|
||||||
target = "static"
|
|
||||||
# toml-docs-start javascript
|
|
||||||
[[module.mounts]]
|
|
||||||
source = "node_modules/bootstrap/dist/js"
|
|
||||||
target = "assets/js/vendor/bootstrap"
|
|
||||||
includeFiles = "*.bundle.js"
|
|
||||||
[[module.mounts]]
|
|
||||||
source = "node_modules/flexsearch/dist"
|
|
||||||
target = "assets/js/vendor/flexsearch"
|
|
||||||
includeFiles = "*.bundle.js"
|
|
||||||
# toml-docs-end javascript
|
|
53
exampleSite/config/_default/languages.toml
Normal file
53
exampleSite/config/_default/languages.toml
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
# toml-docs-start lang-main
|
||||||
|
[en]
|
||||||
|
languageName = "English"
|
||||||
|
contentDir = "content/en"
|
||||||
|
weight = 1
|
||||||
|
# toml-docs-end lang-main
|
||||||
|
# toml-docs-start lang-param
|
||||||
|
[en.params.head]
|
||||||
|
tagline = "A Hugo Theme"
|
||||||
|
[en.params.social]
|
||||||
|
title = "Follow me"
|
||||||
|
caption = "I work on everything coding and tweet developer memes"
|
||||||
|
[en.params.footer]
|
||||||
|
# license = "Licensed under Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank' rel='noopener noreferrer'>CC BY-NC-SA 4.0</a>)."
|
||||||
|
# toml-docs-end lang-param
|
||||||
|
[en.params.sections.blog]
|
||||||
|
reference = "More Posts"
|
||||||
|
[en.params.sections.projects]
|
||||||
|
reference = "More Projects"
|
||||||
|
|
||||||
|
[nl]
|
||||||
|
languageName = "Nederlands"
|
||||||
|
contentDir = "content/nl"
|
||||||
|
weight = 2
|
||||||
|
[nl.params.head]
|
||||||
|
tagline = "Een Hugo Thema"
|
||||||
|
[nl.params.social]
|
||||||
|
title = "Volg mij"
|
||||||
|
caption = "Ik doe aan programmeren en tweet memes"
|
||||||
|
[nl.params.footer]
|
||||||
|
# license = "Gelicenseerd onder Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank' rel='noopener noreferrer'>CC BY-NC-SA 4.0</a>)."
|
||||||
|
[nl.params.sections.blog]
|
||||||
|
reference = "Meer artikelen"
|
||||||
|
[nl.params.sections.projects]
|
||||||
|
title = "Projecten"
|
||||||
|
reference = "Meer projecten"
|
||||||
|
|
||||||
|
[fr]
|
||||||
|
languageName = "Français"
|
||||||
|
contentDir = "content/fr"
|
||||||
|
weight = 2
|
||||||
|
[fr.params.head]
|
||||||
|
tagline = "Un thème Hugo"
|
||||||
|
[fr.params.social]
|
||||||
|
title = "Suivez-moi"
|
||||||
|
caption = "Je code et je tweet des mèmes de développeurs."
|
||||||
|
[fr.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>)."
|
||||||
|
[fr.params.sections.blog]
|
||||||
|
reference = "Plus d'articles"
|
||||||
|
[fr.params.sections.projects]
|
||||||
|
title = "Projets"
|
||||||
|
reference = "Plus de projets"
|
35
exampleSite/config/_default/markup.toml
Normal file
35
exampleSite/config/_default/markup.toml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
defaultMarkdownHandler = "goldmark"
|
||||||
|
|
||||||
|
[highlight]
|
||||||
|
anchorLineNos = false
|
||||||
|
codeFences = true
|
||||||
|
guessSyntax = true
|
||||||
|
hl_Lines = ""
|
||||||
|
lineAnchors = ""
|
||||||
|
lineNoStart = 1
|
||||||
|
lineNos = false
|
||||||
|
lineNumbersInTable = false
|
||||||
|
noClasses = false
|
||||||
|
tabWidth = 2
|
||||||
|
## Update the 'create:syntax' command in package.json to modify the style
|
||||||
|
## The first two lines have been modified to remove the background color
|
||||||
|
# style = "monokailight"
|
||||||
|
|
||||||
|
[goldmark]
|
||||||
|
[goldmark.extensions]
|
||||||
|
definitionList = true
|
||||||
|
footnote = true
|
||||||
|
linkify = true
|
||||||
|
strikethrough = true
|
||||||
|
table = true
|
||||||
|
taskList = true
|
||||||
|
typographer = true
|
||||||
|
[goldmark.parser]
|
||||||
|
autoHeadingID = true
|
||||||
|
autoHeadingIDType = 'github'
|
||||||
|
[goldmark.parser.attribute]
|
||||||
|
block = true
|
||||||
|
[goldmark.renderer]
|
||||||
|
hardWraps = false
|
||||||
|
unsafe = false
|
||||||
|
xhtml = false
|
73
exampleSite/config/_default/menus/menus.en.toml
Normal file
73
exampleSite/config/_default/menus/menus.en.toml
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
[[main]]
|
||||||
|
name = "About"
|
||||||
|
pageRef = "/about/"
|
||||||
|
weight = 10
|
||||||
|
|
||||||
|
[[main]]
|
||||||
|
name = "Blog"
|
||||||
|
pageRef = "/blog/"
|
||||||
|
weight = 20
|
||||||
|
|
||||||
|
[[main]]
|
||||||
|
name = "Projects"
|
||||||
|
pageRef = "/projects/"
|
||||||
|
weight = 30
|
||||||
|
|
||||||
|
[[main]]
|
||||||
|
name = "Sample project"
|
||||||
|
pageRef = "/projects/sample-project/"
|
||||||
|
parent = "Projects"
|
||||||
|
weight = 1
|
||||||
|
|
||||||
|
[[main]]
|
||||||
|
name = "Another project"
|
||||||
|
pageRef = "/projects/another-project/"
|
||||||
|
parent = "Projects"
|
||||||
|
weight = 2
|
||||||
|
|
||||||
|
[[main]]
|
||||||
|
name = "Tags"
|
||||||
|
pageRef = "/tags/"
|
||||||
|
weight = 40
|
||||||
|
|
||||||
|
[[social]]
|
||||||
|
name = "LinkedIn"
|
||||||
|
pre = "fab linkedin"
|
||||||
|
url = "https://linkedin.com/"
|
||||||
|
weight = 10
|
||||||
|
|
||||||
|
[[social]]
|
||||||
|
name = "GitHub"
|
||||||
|
pre = "fab fa-github"
|
||||||
|
url = "https://github.com/"
|
||||||
|
weight = 20
|
||||||
|
|
||||||
|
[[social]]
|
||||||
|
name = "Medium"
|
||||||
|
pre = "fab medium"
|
||||||
|
url = "https://medium.com/"
|
||||||
|
weight = 30
|
||||||
|
|
||||||
|
# toml-docs-start sample-navigation
|
||||||
|
[[sample]]
|
||||||
|
name = "Blog"
|
||||||
|
pageRef = "/blog/"
|
||||||
|
weight = 10
|
||||||
|
|
||||||
|
[[sample]]
|
||||||
|
name = "Projects"
|
||||||
|
pageRef = "/projects/"
|
||||||
|
weight = 20
|
||||||
|
|
||||||
|
[[sample]]
|
||||||
|
name = "Sample project"
|
||||||
|
pageRef = "/projects/sample-project/"
|
||||||
|
parent = "Projects"
|
||||||
|
weight = 1
|
||||||
|
|
||||||
|
[[sample]]
|
||||||
|
name = "Another project"
|
||||||
|
pageRef = "/projects/another-project/"
|
||||||
|
parent = "Projects"
|
||||||
|
weight = 2
|
||||||
|
# toml-docs-end sample-navigation
|
73
exampleSite/config/_default/menus/menus.fr.toml
Normal file
73
exampleSite/config/_default/menus/menus.fr.toml
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
[[main]]
|
||||||
|
name = "À propos"
|
||||||
|
pageRef = "/a-propos/"
|
||||||
|
weight = 10
|
||||||
|
|
||||||
|
[[main]]
|
||||||
|
name = "Blog"
|
||||||
|
pageRef = "/blog/"
|
||||||
|
weight = 20
|
||||||
|
|
||||||
|
[[main]]
|
||||||
|
name = "Projets"
|
||||||
|
pageRef = "/projets/"
|
||||||
|
weight = 30
|
||||||
|
|
||||||
|
[[main]]
|
||||||
|
name = "Exemple de projet"
|
||||||
|
pageRef = "/projets/exemple-de-projet/"
|
||||||
|
parent = "Projets"
|
||||||
|
weight = 1
|
||||||
|
|
||||||
|
[[main]]
|
||||||
|
name = "Autre projet"
|
||||||
|
pageRef = "/projets/autre-projet/"
|
||||||
|
parent = "Projets"
|
||||||
|
weight = 2
|
||||||
|
|
||||||
|
[[main]]
|
||||||
|
name = "Tags"
|
||||||
|
pageRef = "/tags/"
|
||||||
|
weight = 40
|
||||||
|
|
||||||
|
[[social]]
|
||||||
|
name = "LinkedIn"
|
||||||
|
pre = "fab linkedin"
|
||||||
|
url = "https://linkedin.com/"
|
||||||
|
weight = 10
|
||||||
|
|
||||||
|
[[social]]
|
||||||
|
name = "GitHub"
|
||||||
|
pre = "fab fa-github"
|
||||||
|
url = "https://github.com/"
|
||||||
|
weight = 20
|
||||||
|
|
||||||
|
[[social]]
|
||||||
|
name = "Medium"
|
||||||
|
pre = "fab medium"
|
||||||
|
url = "https://medium.com/"
|
||||||
|
weight = 30
|
||||||
|
|
||||||
|
# toml-docs-start sample-navigation
|
||||||
|
[[sample]]
|
||||||
|
name = "Blog"
|
||||||
|
pageRef = "/blog/"
|
||||||
|
weight = 10
|
||||||
|
|
||||||
|
[[sample]]
|
||||||
|
name = "Projets"
|
||||||
|
pageRef = "/projets/"
|
||||||
|
weight = 20
|
||||||
|
|
||||||
|
[[sample]]
|
||||||
|
name = "Exemple de projet"
|
||||||
|
pageRef = "/projets/exemple-de-projet/"
|
||||||
|
parent = "Projets"
|
||||||
|
weight = 1
|
||||||
|
|
||||||
|
[[sample]]
|
||||||
|
name = "Autre projet"
|
||||||
|
pageRef = "/projets/autre-projet/"
|
||||||
|
parent = "Projets"
|
||||||
|
weight = 2
|
||||||
|
# toml-docs-end sample-navigation
|
@@ -1,73 +1,73 @@
|
|||||||
[[main]]
|
[[main]]
|
||||||
name = "Over mij"
|
name = "Over mij"
|
||||||
url = "/over-mij/"
|
pageRef = "/over-mij/"
|
||||||
weight = 10
|
weight = 10
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Blog"
|
name = "Blog"
|
||||||
url = "/blog/"
|
pageRef = "/blog/"
|
||||||
weight = 20
|
weight = 20
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Projecten"
|
name = "Projecten"
|
||||||
url = "/projecten/"
|
pageRef = "/projecten/"
|
||||||
weight = 30
|
weight = 30
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Voorbeeldproject"
|
name = "Voorbeeldproject"
|
||||||
url = "/nl/projecten/voorbeeldproject/"
|
pageRef = "/projecten/voorbeeldproject/"
|
||||||
parent = "Projecten"
|
parent = "Projecten"
|
||||||
weight = 1
|
weight = 1
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Ander project"
|
name = "Ander project"
|
||||||
url = "/nl/projecten/ander-project/"
|
pageRef = "/projecten/ander-project/"
|
||||||
parent = "Projecten"
|
parent = "Projecten"
|
||||||
weight = 2
|
weight = 2
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Tags"
|
name = "Tags"
|
||||||
url = "/tags/"
|
pageRef = "/tags/"
|
||||||
weight = 40
|
weight = 40
|
||||||
|
|
||||||
[[social]]
|
[[social]]
|
||||||
name = "LinkedIn"
|
name = "LinkedIn"
|
||||||
pre = "<i class=\"fab fa-linkedin fa-2x\"></i>"
|
pre = "fab linkedin"
|
||||||
url = "https://linkedin.com/"
|
url = "https://linkedin.com/"
|
||||||
weight = 10
|
weight = 10
|
||||||
|
|
||||||
[[social]]
|
[[social]]
|
||||||
name = "GitHub"
|
name = "GitHub"
|
||||||
pre = "<i class=\"fab fa-github fa-2x\"></i>"
|
pre = "fab github"
|
||||||
url = "https://github.com/"
|
url = "https://github.com/"
|
||||||
weight = 20
|
weight = 20
|
||||||
|
|
||||||
[[social]]
|
[[social]]
|
||||||
name = "Medium"
|
name = "Medium"
|
||||||
pre = "<i class=\"fab fa-medium fa-2x\"></i>"
|
pre = "fab medium"
|
||||||
url = "https://medium.com/"
|
url = "https://medium.com/"
|
||||||
weight = 30
|
weight = 30
|
||||||
|
|
||||||
# toml-docs-start sample-navigation
|
# toml-docs-start sample-navigation
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Blog"
|
name = "Blog"
|
||||||
url = "/blog/"
|
pageRef = "/blog/"
|
||||||
weight = 10
|
weight = 10
|
||||||
|
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Projecten"
|
name = "Projecten"
|
||||||
url = "/projecten/"
|
pageRef = "/projecten/"
|
||||||
weight = 20
|
weight = 20
|
||||||
|
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Voorbeeldproject"
|
name = "Voorbeeldproject"
|
||||||
url = "/nl/projecten/voorbeeldproject/"
|
pageRef = "/projecten/voorbeeldproject/"
|
||||||
parent = "Projecten"
|
parent = "Projecten"
|
||||||
weight = 1
|
weight = 1
|
||||||
|
|
||||||
[[sample]]
|
[[sample]]
|
||||||
name = "Ander project"
|
name = "Ander project"
|
||||||
url = "/nl/projecten/ander-project/"
|
pageRef = "/projecten/ander-project/"
|
||||||
parent = "Projecten"
|
parent = "Projecten"
|
||||||
weight = 2
|
weight = 2
|
||||||
# toml-docs-end sample-navigation
|
# toml-docs-end sample-navigation
|
187
exampleSite/config/_default/params.toml
Normal file
187
exampleSite/config/_default/params.toml
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
[main]
|
||||||
|
separator = "-"
|
||||||
|
description = "Hinode is a clean documentation and blog theme for your Hugo site based on Bootstrap 5."
|
||||||
|
enableDarkMode = true
|
||||||
|
modes = ["light", "dark"]
|
||||||
|
canonifyAssetsURLs = false
|
||||||
|
[main.externalLinks]
|
||||||
|
cue = true
|
||||||
|
tab = true
|
||||||
|
|
||||||
|
[modules]
|
||||||
|
core = ["bootstrap", "flexsearch", "fontawesome"]
|
||||||
|
optional = ["leaflet", "katex"]
|
||||||
|
excludeSCSS = ["bootstrap"]
|
||||||
|
disableTemplate = ["katex"]
|
||||||
|
[modules.fontawesome]
|
||||||
|
inline = true
|
||||||
|
debug = true
|
||||||
|
skipMissing = false
|
||||||
|
|
||||||
|
[debugging]
|
||||||
|
showJS = false
|
||||||
|
showSCSS = false
|
||||||
|
purgeHTMLComments = true # prevents a Goldmark warning when processing HTML comments (as used by markdownlint)
|
||||||
|
|
||||||
|
[docs]
|
||||||
|
basePath = "/" # TODO: replace
|
||||||
|
github = "https://github.com/gethinode/hinode"
|
||||||
|
release = "https://github.com/gethinode/hinode/releases/tag/"
|
||||||
|
checkVersion = false
|
||||||
|
|
||||||
|
[home]
|
||||||
|
sections = ["blog", "projects"]
|
||||||
|
fullCover = false
|
||||||
|
centerHeadline = false
|
||||||
|
style = ""
|
||||||
|
|
||||||
|
[navigation]
|
||||||
|
anchor = true
|
||||||
|
logo = "/img/logo_icon.svg"
|
||||||
|
color = "body"
|
||||||
|
fixed = true
|
||||||
|
offset = "3.8em"
|
||||||
|
search = true
|
||||||
|
breadcrumb = true
|
||||||
|
toc = true
|
||||||
|
sidebar = true
|
||||||
|
size = "md"
|
||||||
|
|
||||||
|
[messages]
|
||||||
|
placement = "bottom-right"
|
||||||
|
|
||||||
|
[sharing]
|
||||||
|
enabled = true
|
||||||
|
sort = "weight"
|
||||||
|
reverse = false
|
||||||
|
webshare = true
|
||||||
|
|
||||||
|
[[sharing.providers]]
|
||||||
|
name = "LinkedIn"
|
||||||
|
url = "https://www.linkedin.com/sharing/share-offsite/?url={url}"
|
||||||
|
icon = "fab linkedin"
|
||||||
|
weight = 10
|
||||||
|
|
||||||
|
[[sharing.providers]]
|
||||||
|
name = "Twitter"
|
||||||
|
url = "https://twitter.com/home?status={url}"
|
||||||
|
icon = "fab x-twitter"
|
||||||
|
weight = 20
|
||||||
|
|
||||||
|
[[sharing.providers]]
|
||||||
|
name = "Facebook"
|
||||||
|
url = "https://www.facebook.com/sharer.php?u={url}"
|
||||||
|
icon = "fab facebook"
|
||||||
|
weight = 30
|
||||||
|
|
||||||
|
[[sharing.providers]]
|
||||||
|
name = "WhatsApp"
|
||||||
|
url = "whatsapp://send?text={title}%20{url}"
|
||||||
|
icon = "fab whatsapp"
|
||||||
|
weight = 40
|
||||||
|
|
||||||
|
[[sharing.providers]]
|
||||||
|
name = "email"
|
||||||
|
url = "{url}"
|
||||||
|
icon = "fas link"
|
||||||
|
weight = 50
|
||||||
|
clipboard = true
|
||||||
|
|
||||||
|
[sections]
|
||||||
|
[sections.blog]
|
||||||
|
title = "Blog"
|
||||||
|
sort = "date"
|
||||||
|
reverse = true
|
||||||
|
cols = 3
|
||||||
|
color = ""
|
||||||
|
padding = "0"
|
||||||
|
header = "full"
|
||||||
|
footer = "none"
|
||||||
|
orientation = "stacked"
|
||||||
|
style = "border-0 card-zoom"
|
||||||
|
homepage = 3
|
||||||
|
separator = true
|
||||||
|
[sections.projects]
|
||||||
|
title = "Projects"
|
||||||
|
layout = "card"
|
||||||
|
sort = "title"
|
||||||
|
reverse = false
|
||||||
|
nested = true
|
||||||
|
cols = 1
|
||||||
|
background = "body-tertiary"
|
||||||
|
color = "body"
|
||||||
|
padding = "3"
|
||||||
|
header = "none"
|
||||||
|
footer = "tags"
|
||||||
|
orientation = "horizontal"
|
||||||
|
style = "border-1 card-emphasize"
|
||||||
|
homepage = 3
|
||||||
|
separator = false
|
||||||
|
|
||||||
|
[favicon]
|
||||||
|
logo = "img/favicon.png"
|
||||||
|
sizes = [16, 32, 48]
|
||||||
|
|
||||||
|
# toml-docs-start theme-colors
|
||||||
|
[style]
|
||||||
|
primary = "#d43900"
|
||||||
|
secondary = "#6c757d"
|
||||||
|
success = "#198754"
|
||||||
|
info = "#0dcaf0"
|
||||||
|
warning = "#ffc107"
|
||||||
|
danger = "#dc3545"
|
||||||
|
light = "#f8f9fa"
|
||||||
|
dark = "#212529"
|
||||||
|
themeOpacity = "10"
|
||||||
|
darkModeShade = "20%"
|
||||||
|
darkModeTint = "40%"
|
||||||
|
themeFont = "Inter"
|
||||||
|
# themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap" # external path
|
||||||
|
themeFontPath = "/fonts" # local path
|
||||||
|
purge = true
|
||||||
|
# toml-docs-end theme-colors
|
||||||
|
|
||||||
|
[schema]
|
||||||
|
type = "Organization"
|
||||||
|
name = "Hinode"
|
||||||
|
locale = "en-US"
|
||||||
|
# twitter = "https://twitter.com/gethinode"
|
||||||
|
# linkedIn = ""
|
||||||
|
github = "https://github.com/gethinode/hinode"
|
||||||
|
section = "blog"
|
||||||
|
[author]
|
||||||
|
name = "Mark Dumay"
|
||||||
|
# twitter = "https://twitter.com/markdumay"
|
||||||
|
linkedin = "https://www.linkedin.com/in/markdumay/"
|
||||||
|
github = "https://github.com/markdumay"
|
||||||
|
[logo]
|
||||||
|
url = "img/logo512x512.png"
|
||||||
|
width = 512
|
||||||
|
height = 512
|
||||||
|
[image]
|
||||||
|
url = "img/logo1280x640.png"
|
||||||
|
width = 1280
|
||||||
|
height = 640
|
||||||
|
|
||||||
|
[opengraph]
|
||||||
|
images = ["logo.png"]
|
||||||
|
locale = "en_US"
|
||||||
|
|
||||||
|
[comments]
|
||||||
|
enabled = false
|
||||||
|
repo = "" # Replace with your repository.
|
||||||
|
#issueTerm = "pathname" # pathname, url, title, og:title
|
||||||
|
#label = "comment"
|
||||||
|
# By default, light and dark mode correspond to github-light and github-dark, respectively.
|
||||||
|
# Optional values: github-light, github-dark, preferred-color-scheme, github-dark-orange, icy-dark, dark-blue, photon-dark.
|
||||||
|
#theme = ""
|
||||||
|
|
||||||
|
[links]
|
||||||
|
bs_badge_heading = "https://getbootstrap.com/docs/5.3/components/badge/#headings"
|
||||||
|
hinode_docs = "https://gethinode.com"
|
||||||
|
hugo_imaging = "https://gohugo.io/content-management/image-processing/#imaging-configuration"
|
||||||
|
mozilla_image = "https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images"
|
||||||
|
observatory = "https://observatory.mozilla.org/analyze/demo.gethinode.com"
|
||||||
|
pagespeed = "https://pagespeed.web.dev/report?url=https%3A%2F%2Fdemo.gethinode.com%2F"
|
||||||
|
utterances = "https://utteranc.es"
|
||||||
|
hinode = "https://gethinode.com"
|
43
exampleSite/config/_default/server.toml
Normal file
43
exampleSite/config/_default/server.toml
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
# toml-docs-start server-config
|
||||||
|
[[headers]]
|
||||||
|
for = '/**'
|
||||||
|
[headers.values]
|
||||||
|
Strict-Transport-Security = "max-age=31536000; includeSubDomains; preload"
|
||||||
|
X-Content-Type-Options = "nosniff"
|
||||||
|
X-XSS-Protection = "1; mode=block"
|
||||||
|
Content-Security-Policy = """\
|
||||||
|
default-src 'self'; \
|
||||||
|
script-src 'self' \
|
||||||
|
https://utteranc.es/client.js https://*.google-analytics.com https://*.googletagmanager.com; \
|
||||||
|
style-src 'self' https://utteranc.es https://fonts.googleapis.com https://www.youtube.com; \
|
||||||
|
object-src 'none'; \
|
||||||
|
base-uri 'self'; \
|
||||||
|
connect-src 'self'
|
||||||
|
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
|
||||||
|
font-src 'self' https://fonts.gstatic.com; \
|
||||||
|
frame-src 'self' https://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com; \
|
||||||
|
img-src 'self' data: https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \
|
||||||
|
manifest-src 'self'; \
|
||||||
|
media-src 'self' \
|
||||||
|
"""
|
||||||
|
X-Frame-Options = "SAMEORIGIN"
|
||||||
|
Referrer-Policy = "strict-origin"
|
||||||
|
Permissions-Policy = """\
|
||||||
|
geolocation=(), \
|
||||||
|
midi=(), \
|
||||||
|
sync-xhr=(), \
|
||||||
|
microphone=(), \
|
||||||
|
camera=(), \
|
||||||
|
magnetometer=(), \
|
||||||
|
gyroscope=(), \
|
||||||
|
fullscreen=(), \
|
||||||
|
payment=() \
|
||||||
|
"""
|
||||||
|
cache-control = """\
|
||||||
|
max-age=0, \
|
||||||
|
no-cache, \
|
||||||
|
no-store, \
|
||||||
|
must-revalidate \
|
||||||
|
"""
|
||||||
|
Access-Control-Allow-Origin = "*"
|
||||||
|
# toml-docs-end server-config
|
22
exampleSite/config/ci/hugo.toml
Normal file
22
exampleSite/config/ci/hugo.toml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# cachedir default on POSIX: '/tmp/hugo_cache_runner'
|
||||||
|
# cachedir default on Windows: '~\AppData\Local\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
exampleSite/content/en/_index.md
Normal file
14
exampleSite/content/en/_index.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
author: Mark Dumay
|
||||||
|
title: Welcome to Hinode!
|
||||||
|
thumbnail:
|
||||||
|
url: /img/sunrise.jpg
|
||||||
|
author: Harris Vo
|
||||||
|
authorURL: https://unsplash.com/@hoanvokim
|
||||||
|
origin: https://unsplash.com/photos/ZX6BPboJrYk
|
||||||
|
originName: Unsplash
|
||||||
|
---
|
||||||
|
|
||||||
|
A clean documentation and blog theme for your Hugo site based on Bootstrap 5.
|
||||||
|
|
||||||
|
{{< button href="about" >}}About{{< /button>}}
|
33
exampleSite/content/en/about.md
Normal file
33
exampleSite/content/en/about.md
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
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
|
||||||
|
---
|
||||||
|
|
||||||
|
{{< image src="/img/logo_var.svg#logo" class="img-fluid w-50" wrapper="text-center" >}}
|
||||||
|
|
||||||
|
{{< card-group class="text-center border-0" padding="3" >}}
|
||||||
|
{{< card title="Bootstrap framework" icon="fab bootstrap" >}}
|
||||||
|
Build fast, responsive sites with Bootstrap 5. Easily customize your site with the source Sass files.
|
||||||
|
{{< /card >}}
|
||||||
|
{{< card title="Full text search" icon="fas magnifying-glass" >}}
|
||||||
|
Search your site with FlexSearch, a full-text search library with zero dependencies.
|
||||||
|
{{< /card >}}
|
||||||
|
{{< card title="Development tools" icon="fas code" >}}
|
||||||
|
Use Node Package Manager to automate the build process and to keep track of dependencies.
|
||||||
|
{{< /card >}}
|
||||||
|
{{< /card-group >}}
|
||||||
|
|
||||||
|
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}
|
5
exampleSite/content/en/blog/_index.md
Normal file
5
exampleSite/content/en/blog/_index.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
author: Mark Dumay
|
||||||
|
title: Blog
|
||||||
|
nested: true
|
||||||
|
---
|
430
exampleSite/content/en/blog/bootstrap-elements.md
Normal file
430
exampleSite/content/en/blog/bootstrap-elements.md
Normal file
@@ -0,0 +1,430 @@
|
|||||||
|
---
|
||||||
|
author: Mark Dumay
|
||||||
|
title: Bootstrap elements
|
||||||
|
date: 2023-08-12
|
||||||
|
description: Use shortcodes to add common Bootstrap elements with ease.
|
||||||
|
tags: ["bootstrap", "shortcode"]
|
||||||
|
thumbnail:
|
||||||
|
url: img/boots.jpg
|
||||||
|
author: Nathan Dumlao
|
||||||
|
authorURL: https://unsplash.com/@nate_dumlao
|
||||||
|
origin: Unsplash
|
||||||
|
originURL: https://unsplash.com/photos/QLPWQvHvmII
|
||||||
|
---
|
||||||
|
|
||||||
|
Hinode provides several shortcodes that wrap common Bootstrap components. Refer to the [official documentation]({{< param "links.hinode_docs" >}}) for more details.
|
||||||
|
|
||||||
|
## Abbr
|
||||||
|
|
||||||
|
As an example, the following shortcode displays the full text of an abbreviation on hover.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* abbr "CI/CD" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Accordion
|
||||||
|
|
||||||
|
As an example, the following shortcode displays an accordion with three elements, of which the first element is expanded.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* accordion */>}}
|
||||||
|
{{</* accordion-item header="Accordion Item #1" show="true" */>}}
|
||||||
|
This is the first item's accordion body. It supports HTML content, if enabled in the goldmark
|
||||||
|
renderer. The item is shown by adding the value `show` to the `class` argument.
|
||||||
|
{{</* /accordion-item */>}}
|
||||||
|
{{</* accordion-item header="Accordion Item #2" */>}}
|
||||||
|
This is the second item's accordion body.
|
||||||
|
{{</* /accordion-item */>}}
|
||||||
|
{{</* accordion-item header="Accordion Item #3" */>}}
|
||||||
|
This is the third item's accordion body.
|
||||||
|
{{</* /accordion-item */>}}
|
||||||
|
{{</* /accordion */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Alert
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a simple alert.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* alert color="danger" dismissible="true" */>}}
|
||||||
|
A simple danger alert—check it out!
|
||||||
|
{{</* /alert */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Badge
|
||||||
|
|
||||||
|
Use the badge shortcode to display a badge for a heading.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example >}}
|
||||||
|
Heading 1 {{</* badge title="New" */>}}
|
||||||
|
{.h1}
|
||||||
|
|
||||||
|
Heading 2 {{</* badge title="New" */>}}
|
||||||
|
{.h2}
|
||||||
|
|
||||||
|
Heading 3 {{</* badge title="New" */>}}
|
||||||
|
{.h3}
|
||||||
|
|
||||||
|
Heading 4 {{</* badge title="New" */>}}
|
||||||
|
{.h4}
|
||||||
|
|
||||||
|
Heading 5 {{</* badge title="New" */>}}
|
||||||
|
{.h5}
|
||||||
|
|
||||||
|
Heading 6 {{</* badge title="New" */>}}
|
||||||
|
{.h6}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Breadcrumb
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a breadcrumb for the blog page.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* breadcrumb path="blog" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Button
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a tooltip for a dark button with a badge.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* button color="secondary" tooltip="Click on the inbox to view your unread messages" href="#!" badge="99+" */>}}
|
||||||
|
Inbox
|
||||||
|
{{</* /button */>}}
|
||||||
|
{{< /example>}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Button group
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a group of three buttons.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* button-group aria-label="Basic example" */>}}
|
||||||
|
{{</* button color="primary" href="#!" */>}}Left{{</* /button */>}}
|
||||||
|
{{</* button color="primary" href="#!" */>}}Middle{{</* /button */>}}
|
||||||
|
{{</* button color="primary" href="#!" */>}}Right{{</* /button */>}}
|
||||||
|
{{</* /button-group */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Card
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a stacked card that links to the [about]({{< ref "about" >}}) page. It includes a custom header.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* card path="about" padding="3" class="col-6 mx-auto" color="body-tertiary" header="publication" footer="none" /*/>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Card group
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a card group of three elements.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* card-group padding="3" */>}}
|
||||||
|
{{</* card title="Bootstrap framework" icon="fab bootstrap" */>}}
|
||||||
|
Build fast, responsive sites with Bootstrap 5. Easily customize your site with the source
|
||||||
|
Sass files.
|
||||||
|
{{</* /card */>}}
|
||||||
|
{{</* card title="Full text search" icon="fas magnifying-glass" */>}}
|
||||||
|
Search your site with FlexSearch, a full-text search library with zero dependencies.
|
||||||
|
{{</* /card */>}}
|
||||||
|
{{</* card title="Development tools" icon="fas code" */>}}
|
||||||
|
Use Node Package Manager to automate the build process and to keep track of dependencies.
|
||||||
|
{{</* /card */>}}
|
||||||
|
{{</* /card-group */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Carousel
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a centered carousel with three slides, 16x9 aspect ratio, and a relative width of 67% on large screens.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* carousel ratio="16x9" class="col-sm-12 col-lg-8 mx-auto" */>}}
|
||||||
|
{{</* img src="img/coffee.jpg" caption="slide 1" */>}}
|
||||||
|
{{</* img src="img/phone.jpg" caption="slide 2" */>}}
|
||||||
|
{{</* img src="img/dunes.jpg" caption="slide 3" */>}}
|
||||||
|
{{</* /carousel */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Collapse
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a button that, when clicked, triggers a panel to appear or disappear.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* button collapse="collapse-1" */>}}
|
||||||
|
Trigger panel
|
||||||
|
{{</* /button */>}}
|
||||||
|
|
||||||
|
{{</* collapse id="collapse-1" class="p-3 border rounded bg-primary-subtle" */>}}
|
||||||
|
Some placeholder content for the collapse component. This panel is *hidden by default* but
|
||||||
|
revealed when the user activates the relevant trigger.
|
||||||
|
{{</* /collapse */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Command prompt
|
||||||
|
|
||||||
|
Use the `command` shortcode to generate a block with a default bash command prompt.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* command */>}}
|
||||||
|
export MY_VAR=123
|
||||||
|
{{</* /command */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
Specify `user` and `host` to add the user context to the prompt. In addition, use `(out)` to specify an output line and use `\` to denote a line continuation.
|
||||||
|
|
||||||
|
<!-- 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
|
||||||
|
|
||||||
|
Use the `docs` shortcode to display the content of a `js`, `scss` or `toml` file:
|
||||||
|
|
||||||
|
{{< docs name="theme-colors" file="config/_default/params.toml" >}}
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
Use the `example` shortcode to display a code example and to render a preview of the same input.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* command */>}}
|
||||||
|
export MY_VAR=123
|
||||||
|
{{</* /command */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## File
|
||||||
|
|
||||||
|
Use the `file` shortcode to print and highlight the full content of a given input file.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* file path="./config/_default/languages.toml" id="file-collapse-1" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Icon
|
||||||
|
|
||||||
|
As an example, the following shortcodes show a square check, a brand logo, and a circle check.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* fa square-check */>}}
|
||||||
|
{{</* fab linkedin */>}}
|
||||||
|
{{</* fas circle-check */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Image
|
||||||
|
|
||||||
|
As an example, the following shortcode displays an image with rounded corners and a 21x9 aspect ratio.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* image src="img/flowers.jpg" ratio="21x9" caption="Figure caption" class="rounded" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a regular vector image.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* image src="/img/logo_icon.svg" class="col-sm-6 col-lg-4" wrapper="text-center" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a vector image with a symbol reference.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* image src="/img/logo_var.svg#logo" class="col-sm-6 col-lg-4" wrapper="text-center" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Link
|
||||||
|
|
||||||
|
As an example, the following shortcodes render links in different formats.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
|
||||||
|
- {{</* link hinode >}}Named link with default settings{{< /link */>}}
|
||||||
|
- {{</* link name=hinode cue=false tab=false >}}Named link opening in current tab w/o icon{{< /link */>}}
|
||||||
|
- {{</* link name=hinode cue=true tab=true >}}Named link opening in new tab with icon{{< /link */>}}
|
||||||
|
- {{</* link hinode /*/>}}
|
||||||
|
- {{</* link href="https://developer.mozilla.org" >}}External link{{< /link */>}}
|
||||||
|
- {{</* link "./projects/another-project" >}}Internal link with title{{< /link */>}}
|
||||||
|
- {{</* link url="projects/another-project" /*/>}}
|
||||||
|
- {{</* link url="/projects/another-project" /*/>}}
|
||||||
|
- {{</* link url="../projects/another-project" case=false /*/>}}
|
||||||
|
- {{</* link "/about/" /*/>}}
|
||||||
|
- {{</* link "/fr/about/" /*/>}}
|
||||||
|
- {{</* link "/fr/about" >}}About (French){{< /link */>}}
|
||||||
|
- {{</* link "#image" /*/>}}
|
||||||
|
- {{</* link "components/#map" /*/>}}
|
||||||
|
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Mark
|
||||||
|
|
||||||
|
Use the `mark` shortcode to highlight text. The inner content is used as input.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
Use the mark shortcode to {{</* mark >}}highlight{{< /mark */>}} specific text.
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Nav
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a tab group with vertically aligned pills.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* nav type="pills" vertical="true" */>}}
|
||||||
|
{{</* nav-item header="Nav Item #1" show="true" */>}}
|
||||||
|
This is the first item's nav body. It supports HTML content, if enabled in the goldmark
|
||||||
|
renderer. The item is shown by adding the value `show` to the `class` argument.
|
||||||
|
{{</* /nav-item */>}}
|
||||||
|
{{</* nav-item header="Nav Item #2" */>}}
|
||||||
|
This is the second item's nav body.
|
||||||
|
{{</* /nav-item */>}}
|
||||||
|
{{</* nav-item header="Nav Item #3" */>}}
|
||||||
|
This is the third item's nav body.
|
||||||
|
{{</* /nav-item */>}}
|
||||||
|
{{</* /nav */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Navbar
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a light navigation header.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* navbar id="navbar-sample" path="blog" color="primary" size="md" search="false" menus="sample" title="Brand" mode="false" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Release
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a default release button.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* release version="v0.14.1" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Spinner
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a centered spinner.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* spinner color="info" class="text-center" */>}}
|
||||||
|
Loading...
|
||||||
|
{{</* /spinner */>}}
|
||||||
|
{{< /example>}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Sub
|
||||||
|
|
||||||
|
As an example, the following shortcode displays subscript text.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example >}}
|
||||||
|
H{{</* sub 2 */>}}O is a liquid.
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Sup
|
||||||
|
|
||||||
|
As an example, the following shortcode displays superscript text.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example >}}
|
||||||
|
2{{</* sup 10 */>}} is 1024.
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Timeline
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a timeline with the file `data/timeline.en.yml` as data.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* timeline data="timeline" background="dark" */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Toast
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a button that, when clicked, triggers the toast message.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* button toast="toast-example-1" */>}}
|
||||||
|
Show toast 1
|
||||||
|
{{</* /button */>}}
|
||||||
|
|
||||||
|
{{</* button toast="toast-example-2" */>}}
|
||||||
|
Show toast 2
|
||||||
|
{{</* /button */>}}
|
||||||
|
|
||||||
|
{{</* toast id="toast-example-1" header="First title" */>}}
|
||||||
|
This is the first toast message. It supports `markdown.`
|
||||||
|
{{</* /toast */>}}
|
||||||
|
|
||||||
|
{{</* toast id="toast-example-2" header="Second title" */>}}
|
||||||
|
This is the second toast message. It supports `markdown.`
|
||||||
|
{{</* /toast */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
||||||
|
|
||||||
|
## Tooltip
|
||||||
|
|
||||||
|
As an example, the following shortcode displays a tooltip for a colored hyperlink.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* tooltip color="primary" title="Tooltip caption" href="#!" */>}}Tooltip{{</* /tooltip */>}} demonstration
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
39
exampleSite/content/en/blog/components.md
Normal file
39
exampleSite/content/en/blog/components.md
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
author: Mark Dumay
|
||||||
|
title: Components
|
||||||
|
date: 2023-07-21
|
||||||
|
description: Use shortcodes to add predefined components powered by external libraries.
|
||||||
|
tags: ["bootstrap", "shortcode"]
|
||||||
|
thumbnail:
|
||||||
|
url: img/puzzle.jpg
|
||||||
|
author: Ryoji Iwata
|
||||||
|
authorURL: https://unsplash.com/@ryoji__iwata
|
||||||
|
origin: Unsplash
|
||||||
|
originURL: https://unsplash.com/photos/5siQcvSxCP8
|
||||||
|
modules: ["katex", "leaflet"]
|
||||||
|
---
|
||||||
|
|
||||||
|
Hinode provides several shortcodes on top of the common [Bootstrap elements]({{< relref "bootstrap-elements" >}}). Refer to the [official documentation]({{< param "links.hinode_docs" >}}) for more details.
|
||||||
|
|
||||||
|
## Formula (KaTeX)
|
||||||
|
|
||||||
|
As an example, the following markdown renders two formulas using the KaTeX typesetting library.
|
||||||
|
|
||||||
|
{{< example lang="markdown" >}}
|
||||||
|
This is an inline $-b \pm \sqrt{b^2 - 4ac} \over 2a$ formula
|
||||||
|
|
||||||
|
This is not an inline formula:
|
||||||
|
|
||||||
|
$$x = a_0 + \frac{1}{a_1 + \frac{1}{a_2 + \frac{1}{a_3 + a_4}}}$$
|
||||||
|
$$\forall x \in X, \quad \exists y \leq \epsilon$$
|
||||||
|
{{< /example >}}
|
||||||
|
|
||||||
|
## Map
|
||||||
|
|
||||||
|
As an example, the following shortcode displays an interactive map of the city of Amsterdam.
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD037 -->
|
||||||
|
{{< example lang="hugo" >}}
|
||||||
|
{{</* map lat=52.377 long=4.90 zoom=13 popup="Amsterdam Central Station" popup-lat=52.378062 popup-long=4.900562 */>}}
|
||||||
|
{{< /example >}}
|
||||||
|
<!-- markdownlint-enable MD037 -->
|
@@ -4,9 +4,12 @@ title: First post
|
|||||||
date: 2022-10-01
|
date: 2022-10-01
|
||||||
description: This is my first blog post.
|
description: This is my first blog post.
|
||||||
tags: ["blog"]
|
tags: ["blog"]
|
||||||
thumbnail: img/notepad.jpg
|
thumbnail:
|
||||||
photoCredits: <a href="https://unsplash.com/@frederickjmedina">Frederick Medina</a>
|
url: img/notepad.jpg
|
||||||
photoSource: <a href="https://unsplash.com/photos/PdfRE-xB--s">Unsplash</a>
|
author: Frederick Medina
|
||||||
|
authorURL: https://unsplash.com/@frederickjmedina
|
||||||
|
origin: Unsplash
|
||||||
|
originURL: https://unsplash.com/photos/PdfRE-xB--s
|
||||||
---
|
---
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate, ante in luctus congue, leo risus semper justo, vel consequat sapien lectus quis ipsum. In imperdiet urna justo. Nulla vel pellentesque ipsum. Cras congue feugiat dolor ac aliquam. Pellentesque eget dui venenatis, ultrices urna ac, vehicula nibh. Curabitur est lectus, dapibus eu vehicula non, malesuada et dui. Nam enim nulla, egestas et nunc non, elementum aliquet justo. Mauris euismod mauris sapien, eget vestibulum odio dictum sit amet. Morbi nisl elit, placerat at auctor in, finibus ac neque. Curabitur placerat feugiat risus non vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque quis cursus est, nec posuere libero.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vulputate, ante in luctus congue, leo risus semper justo, vel consequat sapien lectus quis ipsum. In imperdiet urna justo. Nulla vel pellentesque ipsum. Cras congue feugiat dolor ac aliquam. Pellentesque eget dui venenatis, ultrices urna ac, vehicula nibh. Curabitur est lectus, dapibus eu vehicula non, malesuada et dui. Nam enim nulla, egestas et nunc non, elementum aliquet justo. Mauris euismod mauris sapien, eget vestibulum odio dictum sit amet. Morbi nisl elit, placerat at auctor in, finibus ac neque. Curabitur placerat feugiat risus non vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque quis cursus est, nec posuere libero.
|
@@ -4,9 +4,12 @@ title: Fourth post
|
|||||||
date: 2023-01-01
|
date: 2023-01-01
|
||||||
description: This is my fourth blog post.
|
description: This is my fourth blog post.
|
||||||
tags: ["blog"]
|
tags: ["blog"]
|
||||||
thumbnail: img/flowers.jpg # https://picsum.photos/id/106/2592/1728
|
thumbnail:
|
||||||
photoCredits: <a href="https://unsplash.com/@flutterhappy">Arvee Marie</a>
|
url: img/flowers.jpg
|
||||||
photoSource: <a href="https://unsplash.com/photos/YnfGtpt2gf4">Unsplash</a>
|
author: Arvee Marie
|
||||||
|
authorURL: https://unsplash.com/@flutterhappy
|
||||||
|
origin: Unsplash
|
||||||
|
originURL: https://unsplash.com/photos/YnfGtpt2gf4
|
||||||
---
|
---
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam finibus libero in felis accumsan, vitae imperdiet metus vehicula. Quisque nec dignissim purus. In id dui porta sapien posuere viverra nec vel nisi. Sed varius tincidunt lectus, quis sagittis felis interdum id. Proin purus odio, ultrices auctor libero convallis, volutpat gravida turpis. Ut commodo metus orci, quis sagittis lectus rhoncus non. Nulla et lectus tortor. Suspendisse quam felis, molestie non odio quis, consequat venenatis orci. Etiam sed turpis sit amet elit scelerisque imperdiet. Sed suscipit felis non nibh suscipit egestas. Nulla sodales libero non rhoncus consequat. Nunc in elit at est cursus congue ut ac velit. Cras luctus libero augue, id semper sapien volutpat ultrices.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam finibus libero in felis accumsan, vitae imperdiet metus vehicula. Quisque nec dignissim purus. In id dui porta sapien posuere viverra nec vel nisi. Sed varius tincidunt lectus, quis sagittis felis interdum id. Proin purus odio, ultrices auctor libero convallis, volutpat gravida turpis. Ut commodo metus orci, quis sagittis lectus rhoncus non. Nulla et lectus tortor. Suspendisse quam felis, molestie non odio quis, consequat venenatis orci. Etiam sed turpis sit amet elit scelerisque imperdiet. Sed suscipit felis non nibh suscipit egestas. Nulla sodales libero non rhoncus consequat. Nunc in elit at est cursus congue ut ac velit. Cras luctus libero augue, id semper sapien volutpat ultrices.
|
@@ -4,9 +4,12 @@ title: Second post
|
|||||||
date: 2022-11-01
|
date: 2022-11-01
|
||||||
description: This is my second blog post.
|
description: This is my second blog post.
|
||||||
tags: ["blog"]
|
tags: ["blog"]
|
||||||
thumbnail: img/phone.jpg # https://picsum.photos/id/160/3200/2119
|
thumbnail:
|
||||||
photoCredits: <a href="https://unsplash.com/@thomweerd">Thom</a>
|
url: img/phone.jpg
|
||||||
photoSource: <a href="https://unsplash.com/photos/Zdcq3iKly6g">Unsplash</a>
|
author: Thom
|
||||||
|
authorURL: https://unsplash.com/@thomweerd
|
||||||
|
origin: Unsplash
|
||||||
|
originURL: https://unsplash.com/photos/Zdcq3iKly6g
|
||||||
---
|
---
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non sollicitudin sapien. Ut porttitor lectus eu tempor ultricies. Sed semper tincidunt nibh pellentesque condimentum. Vivamus dictum sem eu rhoncus semper. Vestibulum convallis congue tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Mauris magna urna, egestas sit amet ligula quis, viverra semper arcu. Praesent laoreet nunc vitae nulla posuere facilisis.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non sollicitudin sapien. Ut porttitor lectus eu tempor ultricies. Sed semper tincidunt nibh pellentesque condimentum. Vivamus dictum sem eu rhoncus semper. Vestibulum convallis congue tincidunt. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Mauris magna urna, egestas sit amet ligula quis, viverra semper arcu. Praesent laoreet nunc vitae nulla posuere facilisis.
|
@@ -4,9 +4,12 @@ title: Third post
|
|||||||
date: 2022-12-01
|
date: 2022-12-01
|
||||||
description: This is my third blog post.
|
description: This is my third blog post.
|
||||||
tags: ["blog"]
|
tags: ["blog"]
|
||||||
thumbnail: https://picsum.photos/id/184/4288/2848.jpg
|
thumbnail:
|
||||||
photoCredits: <a href="https://unsplash.com/@timdegroot">Tim de Groot</a>
|
url: https://picsum.photos/id/184/4288/2848.jpg
|
||||||
photoSource: <a href="https://unsplash.com/photos/yNGQ830uFB4">Unsplash</a>
|
author: Tim de Groot
|
||||||
|
authorURL: https://unsplash.com/@timdegroot
|
||||||
|
origin: Unsplash
|
||||||
|
originURL: https://unsplash.com/photos/yNGQ830uFB4
|
||||||
---
|
---
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent id scelerisque ligula. Vestibulum eu lorem tortor. Suspendisse tristique ultrices mauris, non maximus lorem faucibus in. Suspendisse sagittis eleifend dapibus. Curabitur dignissim luctus sapien eu consequat. Proin congue dui vel ipsum bibendum varius. Pellentesque cursus nisi metus, egestas eleifend ipsum sollicitudin vitae. Sed vitae erat elementum, semper turpis sed, molestie nulla.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent id scelerisque ligula. Vestibulum eu lorem tortor. Suspendisse tristique ultrices mauris, non maximus lorem faucibus in. Suspendisse sagittis eleifend dapibus. Curabitur dignissim luctus sapien eu consequat. Proin congue dui vel ipsum bibendum varius. Pellentesque cursus nisi metus, egestas eleifend ipsum sollicitudin vitae. Sed vitae erat elementum, semper turpis sed, molestie nulla.
|
@@ -3,4 +3,4 @@ draft: false
|
|||||||
outputs:
|
outputs:
|
||||||
- xml
|
- xml
|
||||||
url: browserconfig.xml
|
url: browserconfig.xml
|
||||||
---
|
---
|
@@ -4,9 +4,7 @@ title: Another project
|
|||||||
date: 2021-07-15
|
date: 2021-07-15
|
||||||
description: Another project.
|
description: Another project.
|
||||||
tags: ["javascript", "golang"]
|
tags: ["javascript", "golang"]
|
||||||
thumbnail: img/coffee.jpg # https://picsum.photos/id/1060/5598/3732
|
icon: fas rocket
|
||||||
photoCredits: <a href="https://unsplash.com/@kfred">Karl Fredrickson</a>
|
|
||||||
photoSource: <a href="https://unsplash.com/photos/TYIzeCiZ_60">Unsplash</a>
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Vivamus iaculis metus sed magna porta tincidunt. Aliquam molestie eget orci eu elementum. Integer pellentesque dolor sit amet suscipit maximus. Duis consequat, massa vitae volutpat rhoncus, erat augue venenatis velit, a auctor leo nulla nec turpis. Nunc ut libero sapien. Vivamus aliquam ultrices vestibulum. Sed sit amet vestibulum dolor, ut vehicula diam. Sed felis purus, feugiat vitae vulputate quis, sodales vitae dui. Pellentesque volutpat fringilla sapien varius condimentum. Integer odio massa, pharetra at bibendum vitae, aliquam nec erat.
|
Vivamus iaculis metus sed magna porta tincidunt. Aliquam molestie eget orci eu elementum. Integer pellentesque dolor sit amet suscipit maximus. Duis consequat, massa vitae volutpat rhoncus, erat augue venenatis velit, a auctor leo nulla nec turpis. Nunc ut libero sapien. Vivamus aliquam ultrices vestibulum. Sed sit amet vestibulum dolor, ut vehicula diam. Sed felis purus, feugiat vitae vulputate quis, sodales vitae dui. Pellentesque volutpat fringilla sapien varius condimentum. Integer odio massa, pharetra at bibendum vitae, aliquam nec erat.
|
@@ -4,9 +4,7 @@ title: Sample project
|
|||||||
date: 2021-07-15
|
date: 2021-07-15
|
||||||
description: A sample project.
|
description: A sample project.
|
||||||
tags: ["html", "css"]
|
tags: ["html", "css"]
|
||||||
thumbnail: img/laptop.jpg # https://picsum.photos/id/0/5616/3744
|
icon: fab docker
|
||||||
photoCredits: <a href="https://unsplash.com/@alejandroescamilla">Alejandro Escamilla</a>
|
|
||||||
photoSource: <a href="https://unsplash.com/photos/yC-Yzbqy7PY">Unsplash</a>
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user