mirror of
https://github.com/Wonderfall/hugo-WonderMod.git
synced 2025-04-16 13:43:10 -04:00
Compare commits
679 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
3b0ee00eb0 | ||
![]() |
9780253ed5 | ||
![]() |
5e61be5903 | ||
![]() |
71871d277c | ||
![]() |
73484a80d7 | ||
![]() |
4b45709402 | ||
![]() |
d3368d1bb9 | ||
![]() |
a1cb044262 | ||
![]() |
0989c28a0e | ||
![]() |
fb1c0aeb6f | ||
![]() |
69e5e085ab | ||
![]() |
f8e125c7ee | ||
![]() |
5f624757ae | ||
![]() |
e3ad0aeb70 | ||
![]() |
f51ad49819 | ||
![]() |
ff7443b17f | ||
![]() |
00488d0146 | ||
![]() |
cf62fa3c40 | ||
![]() |
87df659c18 | ||
![]() |
3fb112bc85 | ||
![]() |
102e089bc3 | ||
![]() |
86362ebd72 | ||
![]() |
60984fd136 | ||
![]() |
65c2720ab9 | ||
![]() |
28ec7a407d | ||
![]() |
705ebeb729 | ||
![]() |
6864770ad4 | ||
![]() |
2ecb08a5ba | ||
![]() |
e0fc64c43e | ||
![]() |
b288ede80c | ||
![]() |
65d650fc4d | ||
![]() |
ac444fc0f5 | ||
![]() |
5a99ab779d | ||
![]() |
ba739cfe29 | ||
![]() |
4c50ed8bfa | ||
![]() |
72ab73ffe5 | ||
![]() |
50cafe4b1c | ||
![]() |
7795c90f6f | ||
![]() |
24f3096e33 | ||
![]() |
4bbd551d2b | ||
![]() |
7781c94699 | ||
![]() |
abe49a5ad4 | ||
![]() |
697034ccb7 | ||
![]() |
b4dd5f0b18 | ||
![]() |
efe4cb4516 | ||
![]() |
3a064f5c76 | ||
![]() |
9d4a9e825a | ||
![]() |
eab731707a | ||
![]() |
f7bd1ec07c | ||
![]() |
ac1e041419 | ||
![]() |
69cec7a0ba | ||
![]() |
4230109ff7 | ||
![]() |
1521cc77a2 | ||
![]() |
6f29d35d73 | ||
![]() |
faa73a4ee8 | ||
![]() |
61bf918a0d | ||
![]() |
74d288ff94 | ||
![]() |
750feb9cc9 | ||
![]() |
804a8682f3 | ||
![]() |
c52abfb09b | ||
![]() |
8ac719fb56 | ||
![]() |
3e21361da7 | ||
![]() |
3ad501e45d | ||
![]() |
4ae8c414da | ||
![]() |
60282f60fc | ||
![]() |
ad99ef818a | ||
![]() |
4a924cef54 | ||
![]() |
07759b794f | ||
![]() |
bacb763071 | ||
![]() |
3fd9888f43 | ||
![]() |
d6f911cc05 | ||
![]() |
be5badf317 | ||
![]() |
8d1e45a42a | ||
![]() |
a34784c3ed | ||
![]() |
031e2ba57e | ||
![]() |
5d2c036624 | ||
![]() |
1d151a4a02 | ||
![]() |
a636c9eaee | ||
![]() |
2210bf20b3 | ||
![]() |
d67462d0f3 | ||
![]() |
494d6d5dff | ||
![]() |
b43af19b11 | ||
![]() |
e6b697f365 | ||
![]() |
25e5b4d298 | ||
![]() |
8efba34fa9 | ||
![]() |
35643680d2 | ||
![]() |
a35a33c2e1 | ||
![]() |
4d42965bb5 | ||
![]() |
f5320cd336 | ||
![]() |
7250994280 | ||
![]() |
2347bb9c11 | ||
![]() |
33085a8b23 | ||
![]() |
db75cdc9b8 | ||
![]() |
d47a7d67fa | ||
![]() |
ec01777341 | ||
![]() |
2b5f00640d | ||
![]() |
4152dc75e8 | ||
![]() |
d3d90be8a4 | ||
![]() |
bf0883adb5 | ||
![]() |
5ca2d29537 | ||
![]() |
1bbb071fe7 | ||
![]() |
06ee5f9d38 | ||
![]() |
0350f512ee | ||
![]() |
4bd96d6271 | ||
![]() |
3b83cdc4b5 | ||
![]() |
a2865e01e0 | ||
![]() |
79a6f0174a | ||
![]() |
8c1b8e0647 | ||
![]() |
e44658b9b6 | ||
![]() |
3a0a4811cb | ||
![]() |
ddfea82cc7 | ||
![]() |
1f0f294c85 | ||
![]() |
bbfb6f518d | ||
![]() |
8c40461fc6 | ||
![]() |
275d0e9be7 | ||
![]() |
2761a95697 | ||
![]() |
0cf3f7ae00 | ||
![]() |
178b18e4e7 | ||
![]() |
2009151773 | ||
![]() |
11a52b70cd | ||
![]() |
ddaf94cd3d | ||
![]() |
f625367ff7 | ||
![]() |
9c23a8180a | ||
![]() |
15a122bf7a | ||
![]() |
b27c6b9ef0 | ||
![]() |
39ac1acdaf | ||
![]() |
92c8a84b00 | ||
![]() |
b906338dc8 | ||
![]() |
198a4d74ae | ||
![]() |
fd077de0f4 | ||
![]() |
84f9adfa5f | ||
![]() |
eba92edd83 | ||
![]() |
6f0c88d2b8 | ||
![]() |
7c4aa74069 | ||
![]() |
3e544a3ebd | ||
![]() |
42fa989316 | ||
![]() |
b01e9a8653 | ||
![]() |
18b691c534 | ||
![]() |
4f5eea2395 | ||
![]() |
67efb771bf | ||
![]() |
b43431bd51 | ||
![]() |
2f3c140f80 | ||
![]() |
4e3fbc7770 | ||
![]() |
2989681d12 | ||
![]() |
285c0d61fe | ||
![]() |
56560e3a03 | ||
![]() |
13876beb0a | ||
![]() |
0a140a1a12 | ||
![]() |
0dda1aeaa1 | ||
![]() |
b79f84fff6 | ||
![]() |
d0734456ca | ||
![]() |
b9e4f627cc | ||
![]() |
dfe6ecc550 | ||
![]() |
da4046d4db | ||
![]() |
01fb4fad08 | ||
![]() |
0c9b25a0d5 | ||
![]() |
705ff19890 | ||
![]() |
41f827f1d5 | ||
![]() |
b33b96873f | ||
![]() |
6c8e3ef699 | ||
![]() |
723ac4f5c6 | ||
![]() |
5737f8613c | ||
![]() |
17fd82358d | ||
![]() |
ceea1fb8e4 | ||
![]() |
136e6ed883 | ||
![]() |
30a2cc7a65 | ||
![]() |
0f37c0615e | ||
![]() |
d08880dd9b | ||
![]() |
230360552b | ||
![]() |
09c9be232f | ||
![]() |
78dc2698cb | ||
![]() |
8411411a67 | ||
![]() |
77ffb308c3 | ||
![]() |
ebe7400f54 | ||
![]() |
2528906a38 | ||
![]() |
87ffee9fcf | ||
![]() |
bb6d4647bd | ||
![]() |
450e8867a6 | ||
![]() |
575b0b0e38 | ||
![]() |
c0b7ea5f4b | ||
![]() |
621c9f60fb | ||
![]() |
29fefb4890 | ||
![]() |
179fea63a3 | ||
![]() |
4824f4623d | ||
![]() |
e3c30b4e41 | ||
![]() |
5032b2c4f1 | ||
![]() |
d5b780720d | ||
![]() |
6ebeb20bdb | ||
![]() |
5f280c5df2 | ||
![]() |
1ead1f76e2 | ||
![]() |
36b4cb35a4 | ||
![]() |
9af128a8a6 | ||
![]() |
7683ef1825 | ||
![]() |
0262b5eba0 | ||
![]() |
a94674e6c9 | ||
![]() |
c692695754 | ||
![]() |
181a8c38f3 | ||
![]() |
0ed246d47d | ||
![]() |
c2d047f376 | ||
![]() |
43ac108b03 | ||
![]() |
a4b20f0f4d | ||
![]() |
e1a46046bc | ||
![]() |
57dd5404d3 | ||
![]() |
0c71711332 | ||
![]() |
2b0a52ab25 | ||
![]() |
6aced45a65 | ||
![]() |
2e36f439a4 | ||
![]() |
282ad5b6f5 | ||
![]() |
7b9c836416 | ||
![]() |
e59a43c00d | ||
![]() |
63e929cdad | ||
![]() |
cb9be55c78 | ||
![]() |
b7dbb0ea0e | ||
![]() |
cf5b2d59b2 | ||
![]() |
cd65d698fc | ||
![]() |
4ddcae3120 | ||
![]() |
1478c0bc17 | ||
![]() |
d3084bee79 | ||
![]() |
38af7c47a6 | ||
![]() |
44f5970db2 | ||
![]() |
64c40fe6bd | ||
![]() |
a2e4258f3f | ||
![]() |
1d2ecfedac | ||
![]() |
8671af6e0c | ||
![]() |
e888673bb2 | ||
![]() |
8645e275ad | ||
![]() |
4ef79036c5 | ||
![]() |
c6e9568c12 | ||
![]() |
c0e7be6534 | ||
![]() |
39910dc27f | ||
![]() |
a55b9517dc | ||
![]() |
fc8c8666cf | ||
![]() |
c5d31c778b | ||
![]() |
b297199309 | ||
![]() |
09921bb542 | ||
![]() |
363756ffee | ||
![]() |
1de55c4266 | ||
![]() |
566989abf4 | ||
![]() |
2bb7687a34 | ||
![]() |
f1296bc29d | ||
![]() |
575cc0ca8c | ||
![]() |
975972e041 | ||
![]() |
496b846597 | ||
![]() |
375155061d | ||
![]() |
6a3887f4e0 | ||
![]() |
e83d840126 | ||
![]() |
16293e9578 | ||
![]() |
5a5b0840ed | ||
![]() |
42c3c937a1 | ||
![]() |
80928d9f23 | ||
![]() |
2a1390bef7 | ||
![]() |
53fd4bb857 | ||
![]() |
26315a9e4c | ||
![]() |
912eddde0a | ||
![]() |
15b984bd21 | ||
![]() |
43c810c3e2 | ||
![]() |
06f97458a7 | ||
![]() |
81ddc76efb | ||
![]() |
c9f7c54ae6 | ||
![]() |
530044033e | ||
![]() |
d52bced735 | ||
![]() |
b0ab8ea495 | ||
![]() |
37f359ee21 | ||
![]() |
54a3c60735 | ||
![]() |
587ab16725 | ||
![]() |
0fe857539b | ||
![]() |
72abf7440a | ||
![]() |
c59193fc48 | ||
![]() |
4e2558d93c | ||
![]() |
dbaa17c69a | ||
![]() |
699fc91f1f | ||
![]() |
c876864422 | ||
![]() |
386d845782 | ||
![]() |
0c743b767b | ||
![]() |
3bcafa0be9 | ||
![]() |
76ea33c89c | ||
![]() |
b8c7df1ef9 | ||
![]() |
2c6ae04a02 | ||
![]() |
5f1d92493b | ||
![]() |
d81b87938b | ||
![]() |
1033afcac2 | ||
![]() |
60cbb311b7 | ||
![]() |
170e2c5b3f | ||
![]() |
baa0a71478 | ||
![]() |
4873bd2767 | ||
![]() |
10141e278e | ||
![]() |
38891b9062 | ||
![]() |
a57cb762c3 | ||
![]() |
b7771de64c | ||
![]() |
56af5749b5 | ||
![]() |
7c930ee4ea | ||
![]() |
8c2f997ab3 | ||
![]() |
4e9b04784b | ||
![]() |
8021be2ddb | ||
![]() |
97b373d9ee | ||
![]() |
c437ee1b62 | ||
![]() |
8456ad83ae | ||
![]() |
d76bc91ed0 | ||
![]() |
42a23c96e2 | ||
![]() |
7072a79f71 | ||
![]() |
9a20b2e54c | ||
![]() |
5bc9c5a73b | ||
![]() |
2aad433ae5 | ||
![]() |
7ea01a0ab2 | ||
![]() |
3442d5cb52 | ||
![]() |
b4393b3d6e | ||
![]() |
162d80071f | ||
![]() |
bc99ae777d | ||
![]() |
0eac254d58 | ||
![]() |
ee81fe77ad | ||
![]() |
caa2240f12 | ||
![]() |
6ed6b7aac8 | ||
![]() |
f70debb55a | ||
![]() |
da1de88886 | ||
![]() |
e5ba0272de | ||
![]() |
4970e61c7b | ||
![]() |
dcbe6277bb | ||
![]() |
1214963760 | ||
![]() |
7d67d64bb7 | ||
![]() |
1458d8de67 | ||
![]() |
e44cef81c6 | ||
![]() |
0c4ec163a6 | ||
![]() |
a3ad238f78 | ||
![]() |
81fcd8f9d4 | ||
![]() |
747e2bb760 | ||
![]() |
191c16b0c8 | ||
![]() |
129b5bd063 | ||
![]() |
664299cc7c | ||
![]() |
00ddeb421a | ||
![]() |
09accb9566 | ||
![]() |
f9b796d168 | ||
![]() |
fc87fc3a29 | ||
![]() |
ae4bf201d1 | ||
![]() |
5c26fda276 | ||
![]() |
d35056c664 | ||
![]() |
726894ba29 | ||
![]() |
6b55df1089 | ||
![]() |
b868da3d3c | ||
![]() |
84c30474ca | ||
![]() |
df544469c9 | ||
![]() |
87fbe01124 | ||
![]() |
537ec0038f | ||
![]() |
d2c4270bb2 | ||
![]() |
da69dda48c | ||
![]() |
378b81cb36 | ||
![]() |
63ec83fda4 | ||
![]() |
573e673efa | ||
![]() |
0e3f44ff17 | ||
![]() |
167ca42ce3 | ||
![]() |
a86abf5994 | ||
![]() |
24e5d82ecb | ||
![]() |
20b91ad2aa | ||
![]() |
0c64647138 | ||
![]() |
8357d2b1ff | ||
![]() |
43e1648b3e | ||
![]() |
2f409920e1 | ||
![]() |
3a8df7888e | ||
![]() |
10745dd537 | ||
![]() |
fb0393fa12 | ||
![]() |
ccbe179033 | ||
![]() |
4e6eebe318 | ||
![]() |
87fd91ed6a | ||
![]() |
d136063229 | ||
![]() |
98c17559e9 | ||
![]() |
c3634e6ccd | ||
![]() |
a015ec2efc | ||
![]() |
0430a98e74 | ||
![]() |
c51e027390 | ||
![]() |
791999df38 | ||
![]() |
8c313af0f3 | ||
![]() |
1627fe7d7a | ||
![]() |
bbb35cb6d5 | ||
![]() |
87e9a27630 | ||
![]() |
6c64ad0695 | ||
![]() |
17c4da86b5 | ||
![]() |
f1bc3471a6 | ||
![]() |
c255d148d8 | ||
![]() |
ba48765e2c | ||
![]() |
b756217126 | ||
![]() |
bb7b6f0076 | ||
![]() |
9d7576bd04 | ||
![]() |
427053290d | ||
![]() |
0f4dc88c63 | ||
![]() |
23610de4a0 | ||
![]() |
55fe10e9d3 | ||
![]() |
4878383dd4 | ||
![]() |
196b82645e | ||
![]() |
dae7f2b8a1 | ||
![]() |
635054cd07 | ||
![]() |
a60ececdfb | ||
![]() |
6d6fe2c389 | ||
![]() |
fe94d7f347 | ||
![]() |
54744ba694 | ||
![]() |
0f0e027def | ||
![]() |
fb4988cfb6 | ||
![]() |
0c0c6847e5 | ||
![]() |
2fea5a1062 | ||
![]() |
009d3a2e1d | ||
![]() |
e503367a1a | ||
![]() |
b6af9eddee | ||
![]() |
ddf004b709 | ||
![]() |
a2b3be0169 | ||
![]() |
772f571161 | ||
![]() |
0ca760a9b3 | ||
![]() |
abfdb54c92 | ||
![]() |
f3cac6c09e | ||
![]() |
d3813138d7 | ||
![]() |
cb778d8db4 | ||
![]() |
80ad6ec2a3 | ||
![]() |
306aa9fbfc | ||
![]() |
4b24a94a6a | ||
![]() |
b523192b51 | ||
![]() |
e01b52193a | ||
![]() |
706b5a1c94 | ||
![]() |
ad81825345 | ||
![]() |
24f71d7f15 | ||
![]() |
c353447d8e | ||
![]() |
a982a29e24 | ||
![]() |
766f07fe79 | ||
![]() |
6c0726b418 | ||
![]() |
baa9c39ec9 | ||
![]() |
f8b16702fa | ||
![]() |
e76154d418 | ||
![]() |
e0ed556818 | ||
![]() |
3492e151e5 | ||
![]() |
5e05ed6543 | ||
![]() |
14ebcdecf3 | ||
![]() |
45c4b48e53 | ||
![]() |
b71baa147a | ||
![]() |
e53bfe514a | ||
![]() |
cc99dba7bd | ||
![]() |
33c85c5d56 | ||
![]() |
17d48ce9bb | ||
![]() |
a21094f4a0 | ||
![]() |
a57641a24b | ||
![]() |
6f8edf1ffa | ||
![]() |
034da04180 | ||
![]() |
1a8e14a848 | ||
![]() |
143eb18b75 | ||
![]() |
37afb5f13e | ||
![]() |
43ddff0fde | ||
![]() |
65f84d6f19 | ||
![]() |
e03348c041 | ||
![]() |
7170eda172 | ||
![]() |
084498558c | ||
![]() |
c32e036053 | ||
![]() |
e8076c8f61 | ||
![]() |
f8781e2cc8 | ||
![]() |
ebbeca4ab4 | ||
![]() |
c7b388346b | ||
![]() |
0c28a4ad5a | ||
![]() |
6c79b99de8 | ||
![]() |
f64c44c8d2 | ||
![]() |
624b1d0afb | ||
![]() |
346ae95069 | ||
![]() |
714859b682 | ||
![]() |
2b8e7c0b22 | ||
![]() |
75855b2758 | ||
![]() |
a7e0b2f5a9 | ||
![]() |
cc4fb70336 | ||
![]() |
84e208f98d | ||
![]() |
778ee39137 | ||
![]() |
3c3888f7ad | ||
![]() |
2f06f5e4fa | ||
![]() |
b284ba5799 | ||
![]() |
91a9e1b9bb | ||
![]() |
9257321547 | ||
![]() |
a414d16b86 | ||
![]() |
f1329fe53d | ||
![]() |
698616d9fb | ||
![]() |
e1ea90aa60 | ||
![]() |
cadca8a68a | ||
![]() |
9691c41983 | ||
![]() |
9e99493e69 | ||
![]() |
789b1f824c | ||
![]() |
9c50449ce8 | ||
![]() |
cd03c69e40 | ||
![]() |
471e4caba2 | ||
![]() |
55d9dc26cd | ||
![]() |
f7dbf75d5b | ||
![]() |
bc4d4153dc | ||
![]() |
75375a4337 | ||
![]() |
b6842db0a5 | ||
![]() |
24afe952b2 | ||
![]() |
be1ea53910 | ||
![]() |
fc28fa7493 | ||
![]() |
2c67ae9877 | ||
![]() |
042f4e9254 | ||
![]() |
a8316f0073 | ||
![]() |
3167acd32a | ||
![]() |
f5c5546249 | ||
![]() |
565c36fdb0 | ||
![]() |
0af2e50d89 | ||
![]() |
2c9efe204a | ||
![]() |
757a3094b2 | ||
![]() |
e02df37142 | ||
![]() |
ad79fdaf83 | ||
![]() |
42280d1170 | ||
![]() |
e4a6970186 | ||
![]() |
ec2aa47c44 | ||
![]() |
2b3baf94bb | ||
![]() |
8222f2bd11 | ||
![]() |
704921ccd1 | ||
![]() |
4c51e9e8be | ||
![]() |
ad44cdda0f | ||
![]() |
18ae4e5593 | ||
![]() |
b6a308d331 | ||
![]() |
dd83560010 | ||
![]() |
7a0e1f369c | ||
![]() |
89414d00dc | ||
![]() |
e809aef590 | ||
![]() |
6f397ef591 | ||
![]() |
6a897a9e67 | ||
![]() |
4fd4bc5e20 | ||
![]() |
9d478913ec | ||
![]() |
bd4a118afa | ||
![]() |
3b0997fc42 | ||
![]() |
905640ceef | ||
![]() |
09de369d2f | ||
![]() |
3b5c7faaec | ||
![]() |
946cc1ffe3 | ||
![]() |
5d6de5ecb1 | ||
![]() |
bfb5019cbc | ||
![]() |
d53671786c | ||
![]() |
e000675275 | ||
![]() |
3d88f46f33 | ||
![]() |
b825b7f27c | ||
![]() |
2b7d2dd493 | ||
![]() |
0e9ca244dc | ||
![]() |
c9fa6c7915 | ||
![]() |
e252e761f5 | ||
![]() |
838e607122 | ||
![]() |
4389e03df9 | ||
![]() |
0f994eee95 | ||
![]() |
7c53c14c85 | ||
![]() |
aeaa60d9b6 | ||
![]() |
a36d045214 | ||
![]() |
8933950217 | ||
![]() |
b4933eadd6 | ||
![]() |
6c83df566c | ||
![]() |
bccce36c98 | ||
![]() |
a150c3449a | ||
![]() |
23aeda369c | ||
![]() |
b7f8749cdf | ||
![]() |
d6b2282582 | ||
![]() |
f5417ab6d0 | ||
![]() |
2abc278c69 | ||
![]() |
77ff1e6b45 | ||
![]() |
f9236d92af | ||
![]() |
09aba49bf0 | ||
![]() |
bf79c208ae | ||
![]() |
153740bbac | ||
![]() |
73de54e4bc | ||
![]() |
14c524539b | ||
![]() |
8af7c551ff | ||
![]() |
b7f5dd10f1 | ||
![]() |
d74ad93c18 | ||
![]() |
5e40132673 | ||
![]() |
9c09564590 | ||
![]() |
7352aedb34 | ||
![]() |
11c3230214 | ||
![]() |
db38e156f5 | ||
![]() |
08e58f5f77 | ||
![]() |
91bc0acfa9 | ||
![]() |
f4b900de72 | ||
![]() |
bb2717a3b9 | ||
![]() |
4a4408573e | ||
![]() |
c76233b350 | ||
![]() |
80954de8bd | ||
![]() |
d4b259cd63 | ||
![]() |
28abfba27e | ||
![]() |
f2253b2e83 | ||
![]() |
a9ff9533a0 | ||
![]() |
7a0e742def | ||
![]() |
dc743ae5e2 | ||
![]() |
29797a7464 | ||
![]() |
b5f3debebb | ||
![]() |
0d8cb9fd15 | ||
![]() |
e89e7570cd | ||
![]() |
ad11fe16ed | ||
![]() |
e7e5e8ce6d | ||
![]() |
673f7ccc96 | ||
![]() |
b301d60f03 | ||
![]() |
678b5d82fc | ||
![]() |
aa6be95a12 | ||
![]() |
dbb0e63248 | ||
![]() |
20710d34b9 | ||
![]() |
1f608c8fad | ||
![]() |
d4967f9ebc | ||
![]() |
4cc4604498 | ||
![]() |
361362773c | ||
![]() |
c429d81b18 | ||
![]() |
a276a5dfd1 | ||
![]() |
c9a387ebdb | ||
![]() |
fd06af55fc | ||
![]() |
3c28b8a8b2 | ||
![]() |
2a06c26e9f | ||
![]() |
62477e7d1b | ||
![]() |
f4998a1ab8 | ||
![]() |
66ba0f0ea9 | ||
![]() |
d2f2fa6cc6 | ||
![]() |
b22520630d | ||
![]() |
1775dfccfd | ||
![]() |
0b07dd2a7d | ||
![]() |
cf4fd27e3d | ||
![]() |
2b0619f684 | ||
![]() |
8574c385cd | ||
![]() |
c960b8af04 | ||
![]() |
64e8532a50 | ||
![]() |
f9fbdc9963 | ||
![]() |
b7169d2259 | ||
![]() |
b5d55aee8d | ||
![]() |
77baa3d76e | ||
![]() |
5264c7011e | ||
![]() |
795c06b2cc | ||
![]() |
3064e8cfc5 | ||
![]() |
12b6b132e4 | ||
![]() |
0eed773e6d | ||
![]() |
229df19ec9 | ||
![]() |
55107fcfc2 | ||
![]() |
0a7a540761 | ||
![]() |
b8c29c2e06 | ||
![]() |
b239f42f6b | ||
![]() |
9acbc2c134 | ||
![]() |
0887805caf | ||
![]() |
7392edb1d3 | ||
![]() |
6c7b8cf2f9 | ||
![]() |
b40f30754d | ||
![]() |
c33dabf3a2 | ||
![]() |
a97de0f9a4 | ||
![]() |
70a2b06ac1 | ||
![]() |
1256f353e5 | ||
![]() |
0bd68d242c | ||
![]() |
9ac0f391f6 | ||
![]() |
44bc299ca3 | ||
![]() |
5b9eaac130 | ||
![]() |
bc2b82c370 | ||
![]() |
3e84ff0435 | ||
![]() |
db0e744af3 | ||
![]() |
3e3a7d380e | ||
![]() |
4e9d470fec | ||
![]() |
413034e43b | ||
![]() |
a8123bc688 | ||
![]() |
834feb9adc | ||
![]() |
51c58ad0d5 | ||
![]() |
16213a37e5 | ||
![]() |
684cb2160f | ||
![]() |
3d60370494 | ||
![]() |
21241c212e | ||
![]() |
3e92b5aa29 | ||
![]() |
ea9aa38573 | ||
![]() |
c0ba1ce20d | ||
![]() |
ddbd65b937 | ||
![]() |
a153a7cc6f | ||
![]() |
a41f09bb99 | ||
![]() |
b720e4a523 | ||
![]() |
7db1be3d73 | ||
![]() |
353146891e | ||
![]() |
3826200b7c | ||
![]() |
3edc160c59 | ||
![]() |
db52aa9942 | ||
![]() |
a980d10bfc | ||
![]() |
fb945ba3c1 | ||
![]() |
95e6bf1e13 | ||
![]() |
0a0d756671 | ||
![]() |
23636ab326 | ||
![]() |
306889f68b | ||
![]() |
4a4d0c009c | ||
![]() |
6c4e094c91 | ||
![]() |
a8abbd3545 | ||
![]() |
3ca79f59fe | ||
![]() |
e04e248ae1 | ||
![]() |
f933372c55 | ||
![]() |
46bf0538c9 | ||
![]() |
2c7cffb617 | ||
![]() |
724e73facb | ||
![]() |
82e9b29bf4 | ||
![]() |
fae1c47611 | ||
![]() |
e03bc919bc |
50
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
50
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: "[BUG]"
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
|
||||
## READ BEFORE OPENING ISSUES
|
||||
|
||||
Please fill the template below
|
||||
- **DO NOT** ask for instructions.
|
||||
- Use Discussions section if you need help
|
||||
- See project wiki https://github.com/adityatelange/hugo-PaperMod/wiki
|
||||
- Read FAQs section https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs
|
||||
- Search for previous issues/ pull requests
|
||||
|
||||
-->
|
||||
|
||||
**Describe the bug**
|
||||
<!-- A clear and concise description of what the bug is. -->
|
||||
|
||||
- Device/Os: [e.g. Android 10]
|
||||
- Type: [e.g. Desktop/Mobile]
|
||||
- Browser and version [e.g. Chrome 86.0]:
|
||||
- Hugo Version [ >=0.112.4 expected]:
|
||||
- Theme Version [e.g. v4.0, master, or commit-id ]:
|
||||
|
||||
**Steps to reproduce the behavior:**
|
||||
<!--
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
-->
|
||||
|
||||
**Expected behavior**:
|
||||
<!-- A clear and concise description of what you expected to happen. -->
|
||||
|
||||
**Repo/Source where this issue can be reproduced**:
|
||||
<!-- Please link source code of website where the said issue can be reproduced -->
|
||||
|
||||
**Screenshots**
|
||||
<!-- If applicable, add screenshots to help explain your problem. -->
|
||||
|
||||
**Additional context**
|
||||
<!--Add any other context about the problem here. -->
|
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: PaperMod Discussions
|
||||
url: https://github.com/adityatelange/hugo-PaperMod/discussions
|
||||
about: Please ask and answer questions/doubts here, do not open an issue for questions.
|
7
.github/ISSUE_TEMPLATE/new-blank-issue.md
vendored
Normal file
7
.github/ISSUE_TEMPLATE/new-blank-issue.md
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
name: New Blank Issue
|
||||
about: Anything other than bug report
|
||||
title: ""
|
||||
labels: ""
|
||||
assignees: ""
|
||||
---
|
44
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
44
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
<!--
|
||||
|
||||
## READ BEFORE OPENING A PR
|
||||
|
||||
Thank you for contributing to hugo-PaperMod!
|
||||
Please fill out the following questions to make it easier for us to review your
|
||||
changes. You do not need to check all the boxes below.
|
||||
|
||||
**NOTE**: PaperMod does not have any external dependencies fetched from 3rd party
|
||||
CDN servers. However we do have custom Head/Footer extender templates which you can use
|
||||
to add those to your website.
|
||||
https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#custom-head--footer
|
||||
|
||||
-->
|
||||
|
||||
|
||||
**What does this PR change? What problem does it solve?**
|
||||
|
||||
<!--
|
||||
Describe the changes and their purpose here, as detailed as and if needed.
|
||||
|
||||
Please do not add 2 unrelated changes in a single PR as it is difficult to track/revert those in future.
|
||||
-->
|
||||
|
||||
|
||||
**Was the change discussed in an issue or in the Discussions before?**
|
||||
|
||||
<!--
|
||||
Link issues and relevant Discussions posts here.
|
||||
|
||||
If this PR resolves an issue on GitHub, use "Closes #1234" so that the issue
|
||||
is closed automatically when this PR is merged.
|
||||
-->
|
||||
|
||||
|
||||
## PR Checklist
|
||||
|
||||
- [ ] This change adds/updates translations and I have used the [template present here](https://github.com/adityatelange/hugo-PaperMod/wiki/Translations#want-to-add-your-language-).
|
||||
- [ ] I have enabled [maintainer edits for this PR](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork).
|
||||
- [ ] I have verified that the code works as described/as intended.
|
||||
- [ ] This change adds a Social Icon which has a permissive license to use it.
|
||||
- [ ] This change **does not** include any CDN resources/links.
|
||||
- [ ] This change **does not** include any unrelated scripts such as bash and python scripts.
|
||||
- [ ] This change updates the overridden internal templates from HUGO's repository.
|
BIN
.github/assets/web-capture.jpeg
vendored
Normal file
BIN
.github/assets/web-capture.jpeg
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 74 KiB |
17
.github/stale.yml
vendored
Normal file
17
.github/stale.yml
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
# Number of days of inactivity before an issue becomes stale
|
||||
daysUntilStale: 7
|
||||
# Number of days of inactivity before a stale issue is closed
|
||||
daysUntilClose: 3
|
||||
# Issues with these labels will never be considered stale
|
||||
exemptLabels:
|
||||
- pinned
|
||||
- keep
|
||||
# Label to use when marking an issue as stale
|
||||
staleLabel: stale
|
||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||
markComment: >
|
||||
This issue has been automatically marked as stale because it has not had
|
||||
recent activity. It will be closed if no further activity occurs. Thank you
|
||||
for your contributions.
|
||||
# Comment to post when closing a stale issue. Set to `false` to disable
|
||||
closeComment: false
|
82
.github/workflows/gh-pages.yml
vendored
82
.github/workflows/gh-pages.yml
vendored
@ -1,42 +1,80 @@
|
||||
name: Build GH-Pages
|
||||
name: Deploy Hugo PaperMod Demo to Pages
|
||||
|
||||
on:
|
||||
push:
|
||||
paths-ignore:
|
||||
- 'images/**'
|
||||
- 'LICENSE'
|
||||
- 'README.md'
|
||||
- "images/**"
|
||||
- "LICENSE"
|
||||
- "README.md"
|
||||
branches:
|
||||
- master
|
||||
- exampleSite
|
||||
workflow_dispatch:
|
||||
# manual run
|
||||
inputs:
|
||||
hugoVersion:
|
||||
description: "Hugo Version"
|
||||
required: false
|
||||
default: "0.112.4"
|
||||
|
||||
# Allow one concurrent deployment
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: true
|
||||
|
||||
# Default to bash
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
# Build job
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
HUGO_VERSION: "0.112.4"
|
||||
steps:
|
||||
- name: Git checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Check version
|
||||
if: ${{ github.event.inputs.hugoVersion }}
|
||||
run: export HUGO_VERSION="${{ github.event.inputs.hugoVersion }}"
|
||||
- name: Install Hugo CLI
|
||||
run: |
|
||||
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_linux-amd64.deb \
|
||||
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: exampleSite
|
||||
|
||||
- name: Setup Pages
|
||||
id: pages
|
||||
uses: actions/configure-pages@v3
|
||||
- name: Get Theme
|
||||
run: git submodule update --init --recursive
|
||||
|
||||
- name: Update theme to Latest commit
|
||||
run: git submodule update --remote --merge
|
||||
|
||||
- name: Setup hugo
|
||||
uses: peaceiris/actions-hugo@v2
|
||||
- name: Build with Hugo
|
||||
run: |
|
||||
hugo \
|
||||
--buildDrafts --gc --verbose \
|
||||
--baseURL ${{ steps.pages.outputs.base_url }}
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v2
|
||||
with:
|
||||
hugo-version: 'latest'
|
||||
|
||||
- name: Build
|
||||
run: hugo --buildDrafts --gc --verbose --minify
|
||||
|
||||
- name: Deploy
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.TOKEN }}
|
||||
publish_dir: ./public
|
||||
path: ./public
|
||||
# Deployment job
|
||||
deploy:
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v2
|
||||
|
3
LICENSE
3
LICENSE
@ -1,6 +1,7 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020 nanxiaobei, adityatelange
|
||||
Copyright (c) 2020 nanxiaobei and adityatelange
|
||||
Copyright (c) 2021-2023 adityatelange
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
5
Makefile
Normal file
5
Makefile
Normal file
@ -0,0 +1,5 @@
|
||||
run-example:
|
||||
cd exampleSite && hugo server -D --gc -p 13131
|
||||
|
||||
chroma-css:
|
||||
hugo gen chromastyles --style=dracula > assets/css/common/chroma.css
|
95
README.md
Executable file → Normal file
95
README.md
Executable file → Normal file
@ -1,76 +1,41 @@
|
||||

|
||||

|
||||
[](https://themes.gohugo.io/hugo-papermod/)
|
||||
[](https://sonarcloud.io/dashboard?id=adityatelange_hugo-PaperMod)
|
||||

|
||||
|
||||
# hugo-PaperMod | [Demo](https://adityatelange.github.io/hugo-PaperMod/)
|
||||
|
||||
☄️ Fast | ☁️ Fluent | 🌙 Smooth | 📱 Responsive
|
||||
|
||||
Hugo PaperMod is a theme based on [hugo-paper](https://github.com/nanxiaobei/hugo-paper).
|
||||
|
||||
The goal of this project is add more Features and customization to the og theme.
|
||||
|
||||
The [demo site](https://adityatelange.github.io/hugo-PaperMod/) includes a lot of documentation about Installation, Features with few more stuff. Make sure you visit it, to get the awesome hands-on experience and get known about the features ...
|
||||
|
||||
ExampleSite can be found here: [exampleSite](https://github.com/adityatelange/hugo-PaperMod/tree/exampleSite). Demo is built up with exampleSite as source.
|
||||
|
||||
---
|
||||
## WonderMod (PaperMod fork - theme for Hugo)
|
||||
|
||||
<p align="center">
|
||||
<kbd><img width=600px src="https://i.ibb.co/GvspqCX/HomeInfo.png" alt="HomeInfo" /></kbd>
|
||||
<kbd><img width=153px src="https://i.ibb.co/LNgGcrt/mobileview.png" alt="HomeInfo" /></kbd>
|
||||
<img src="https://raw.githubusercontent.com/wonderfall/hugo-WonderMod/master/.github/assets/web-capture.jpeg" title="WonderMod" alt="WonderMod image">
|
||||
</p>
|
||||
|
||||
---
|
||||
### What is this?
|
||||
WonderMod is a fork of a theme for [Hugo](https://gohugo.io/) called [PaperMod](https://github.com/adityatelange/hugo-PaperMod) (made by adityatelange), which is based on [Paper](https://github.com/nanxiaobei/hugo-paper/). Since PaperMod isn't interested in a few changes such as **removing inline JavaScript**, which I personally require to harden my websites, I decided to maintain my own fork (I didn't want to keep overwriting a bunch of files as a fork workflow is much cleaner). Don't expect a ton of changes, and unless you know me, you probably don't want to use WonderMod.
|
||||
|
||||
## Install
|
||||
When implementing new features, I try to do as much as I can with pure CSS code instead of adding new JavaScript code. I'd like to keep the JavaScript part minimal and that's why WonderMod should be totally usable when disabling JavaScript. WonderMod is also designed with strong CSP headers in mind: no inline JavaScript or style, no calls to third-parties.
|
||||
|
||||
Read this post For More Details => [hugo-PaperMod - Installation](https://adityatelange.github.io/hugo-PaperMod/posts/papermod/papermod-installation/)
|
||||
**This fork is regularly synced with upstream changes from [PaperMod](https://github.com/adityatelange/hugo-PaperMod).** A merging workflow was chosen since rebasing WonderMod's changes every time could be less efficient. As such, commit history is a bit messy, but upstream changes will be merged on a best effort basis.
|
||||
|
||||
---
|
||||
### Main changes
|
||||
Current "main" changes are as follows:
|
||||
- Remove inline JavaScript
|
||||
- Improved YouTube shortcode
|
||||
- Built-in Chroma instead of client-side syntax highlighting with HLJS
|
||||
- Responsive Table of Contents with side display support
|
||||
- Responsive "hamburger" menu for mobile
|
||||
- Simple reading progress bar
|
||||
- Refactored RSS template (proper Atom feed)
|
||||
- Bunch of CSS and other changes
|
||||
|
||||
## Features/Mods
|
||||
### Credits
|
||||
Additional credits:
|
||||
- [PaperModX](https://github.com/reorx/hugo-PaperModX/) by reorx
|
||||
|
||||
- Uses Hugo's asset generator with pipelining, fingerprinting, bundling and minification by default.
|
||||
- 3 Modes:
|
||||
- Regular Mode.
|
||||
- [Home-Info Mode.](https://adityatelange.github.io/hugo-PaperMod/posts/papermod/papermod-features/#home-info-mode)
|
||||
- [Profile Mode.](https://adityatelange.github.io/hugo-PaperMod/posts/papermod/papermod-features/#profile-mode)
|
||||
- Table of Content Generation (newer implementation).
|
||||
- Archive of posts
|
||||
- Social-Media Share buttons on post.
|
||||
- Menu location indicator.
|
||||
- Multilingual support.
|
||||
- Cover image for each post
|
||||
- Light/Dark theme ( automatic theme switch a/c to browser theme)
|
||||
- No webpack, nodejs and other depedencies required to edit the theme :)
|
||||
### Configure
|
||||
Most of the installation process and settings are shared with the original PaperMod, so check out [their documentation](https://github.com/adityatelange/hugo-PaperMod/wiki/Installation). One noticeable difference though is that in order to enable syntax highlighting, you have to add this to your `config.yml` :
|
||||
|
||||
Read this post For More Details => [hugo-PaperMod - Features](https://adityatelange.github.io/hugo-PaperMod/posts/papermod/papermod-features/)
|
||||
```
|
||||
markup:
|
||||
highlight:
|
||||
style: dracula
|
||||
noClasses: false
|
||||
guessSyntax: true
|
||||
```
|
||||
|
||||
Release ChangeLog has info about stuff added: [Releases](https://github.com/adityatelange/hugo-PaperMod/releases)
|
||||
|
||||
---
|
||||
|
||||
## Social-Icons
|
||||
|
||||
Read this post For More Details => [Social-Icons](https://adityatelange.github.io/hugo-PaperMod/posts/papermod/papermod-icons/)
|
||||
|
||||
---
|
||||
|
||||
## LightHouse Report
|
||||
|
||||
<kbd><a href="https://lighthouse-dot-webdotdevsite.appspot.com//lh/html?url=https%3A%2F%2Fadityatelange.github.io%2Fhugo-PaperMod%2F"><img src="https://i.ibb.co/y6RwCzb/lighthouse.png" alt="LightHouse" /></a></kbd>
|
||||
|
||||
---
|
||||
|
||||
## Found a bug?
|
||||
|
||||
If you spot any bugs, please use [Issue Tracker](https://github.com/adityatelange/hugo-PaperMod/issues) and/or
|
||||
create a new [Pull Request](https://github.com/adityatelange/hugo-PaperMod/pulls) to fix the issue.
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
See [Hugo documentation](https://gohugo.io/getting-started/configuration-markup#highlight) for more options.
|
||||
*Note: for some reason, the `guessSyntax` doesn't actually work but is required. Please make your code fences explicit for the time being.*
|
||||
|
63
assets/css/an-old-hope.min.css
vendored
63
assets/css/an-old-hope.min.css
vendored
@ -1,63 +0,0 @@
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #b6b18b
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-selector-class,
|
||||
.hljs-selector-id,
|
||||
.hljs-tag,
|
||||
.hljs-template-variable,
|
||||
.hljs-variable {
|
||||
color: #eb3c54
|
||||
}
|
||||
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-link,
|
||||
.hljs-literal,
|
||||
.hljs-meta,
|
||||
.hljs-number,
|
||||
.hljs-params,
|
||||
.hljs-type {
|
||||
color: #e7ce56
|
||||
}
|
||||
|
||||
.hljs-attribute {
|
||||
color: #ee7c2b
|
||||
}
|
||||
|
||||
.hljs-addition,
|
||||
.hljs-bullet,
|
||||
.hljs-string,
|
||||
.hljs-symbol {
|
||||
color: #4fb4d7
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-title {
|
||||
color: #78bb65
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #b45ea4
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #1c1d21;
|
||||
color: #c0c5ce;
|
||||
padding: .5em
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: 700
|
||||
}
|
@ -1,5 +1,3 @@
|
||||
/* 404
|
||||
-------------------------------------------------- */
|
||||
.not-found {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
@ -10,4 +8,4 @@
|
||||
height: 80%;
|
||||
font-size: 160px;
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
@ -1,5 +1,3 @@
|
||||
/* Archive
|
||||
-------------------------------------------------- */
|
||||
.archive-posts {
|
||||
width: 100%;
|
||||
font-size: 16px;
|
||||
@ -39,22 +37,8 @@
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.archive-count,
|
||||
.archive-meta {
|
||||
color: var(--secondary);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.archive-count {
|
||||
color: var(--secondary);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
@media (max-width: 800px) {
|
||||
.archive-month {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.archive-year {
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
82
assets/css/common/chroma.css
Normal file
82
assets/css/common/chroma.css
Normal file
@ -0,0 +1,82 @@
|
||||
/* Background */ .chroma { color: #f8f8f2; background-color: #282a36 }
|
||||
/* Other */ .chroma .x { }
|
||||
/* Error */ .chroma .err { }
|
||||
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
||||
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 20px; border: 0; width: auto; overflow: auto; display: block; }
|
||||
/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc }
|
||||
/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||
/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
|
||||
/* Keyword */ .chroma .k { color: #ff79c6 }
|
||||
/* KeywordConstant */ .chroma .kc { color: #ff79c6 }
|
||||
/* KeywordDeclaration */ .chroma .kd { color: #8be9fd; font-style: italic }
|
||||
/* KeywordNamespace */ .chroma .kn { color: #ff79c6 }
|
||||
/* KeywordPseudo */ .chroma .kp { color: #ff79c6 }
|
||||
/* KeywordReserved */ .chroma .kr { color: #ff79c6 }
|
||||
/* KeywordType */ .chroma .kt { color: #8be9fd }
|
||||
/* Name */ .chroma .n { }
|
||||
/* NameAttribute */ .chroma .na { color: #50fa7b }
|
||||
/* NameBuiltin */ .chroma .nb { color: #8be9fd; font-style: italic }
|
||||
/* NameBuiltinPseudo */ .chroma .bp { }
|
||||
/* NameClass */ .chroma .nc { color: #50fa7b }
|
||||
/* NameConstant */ .chroma .no { }
|
||||
/* NameDecorator */ .chroma .nd { }
|
||||
/* NameEntity */ .chroma .ni { }
|
||||
/* NameException */ .chroma .ne { }
|
||||
/* NameFunction */ .chroma .nf { color: #50fa7b }
|
||||
/* NameFunctionMagic */ .chroma .fm { }
|
||||
/* NameLabel */ .chroma .nl { color: #8be9fd; font-style: italic }
|
||||
/* NameNamespace */ .chroma .nn { }
|
||||
/* NameOther */ .chroma .nx { }
|
||||
/* NameProperty */ .chroma .py { }
|
||||
/* NameTag */ .chroma .nt { color: #ff79c6 }
|
||||
/* NameVariable */ .chroma .nv { color: #8be9fd; font-style: italic }
|
||||
/* NameVariableClass */ .chroma .vc { color: #8be9fd; font-style: italic }
|
||||
/* NameVariableGlobal */ .chroma .vg { color: #8be9fd; font-style: italic }
|
||||
/* NameVariableInstance */ .chroma .vi { color: #8be9fd; font-style: italic }
|
||||
/* NameVariableMagic */ .chroma .vm { }
|
||||
/* Literal */ .chroma .l { }
|
||||
/* LiteralDate */ .chroma .ld { }
|
||||
/* LiteralString */ .chroma .s { color: #f1fa8c }
|
||||
/* LiteralStringAffix */ .chroma .sa { color: #f1fa8c }
|
||||
/* LiteralStringBacktick */ .chroma .sb { color: #f1fa8c }
|
||||
/* LiteralStringChar */ .chroma .sc { color: #f1fa8c }
|
||||
/* LiteralStringDelimiter */ .chroma .dl { color: #f1fa8c }
|
||||
/* LiteralStringDoc */ .chroma .sd { color: #f1fa8c }
|
||||
/* LiteralStringDouble */ .chroma .s2 { color: #f1fa8c }
|
||||
/* LiteralStringEscape */ .chroma .se { color: #f1fa8c }
|
||||
/* LiteralStringHeredoc */ .chroma .sh { color: #f1fa8c }
|
||||
/* LiteralStringInterpol */ .chroma .si { color: #f1fa8c }
|
||||
/* LiteralStringOther */ .chroma .sx { color: #f1fa8c }
|
||||
/* LiteralStringRegex */ .chroma .sr { color: #f1fa8c }
|
||||
/* LiteralStringSingle */ .chroma .s1 { color: #f1fa8c }
|
||||
/* LiteralStringSymbol */ .chroma .ss { color: #f1fa8c }
|
||||
/* LiteralNumber */ .chroma .m { color: #bd93f9 }
|
||||
/* LiteralNumberBin */ .chroma .mb { color: #bd93f9 }
|
||||
/* LiteralNumberFloat */ .chroma .mf { color: #bd93f9 }
|
||||
/* LiteralNumberHex */ .chroma .mh { color: #bd93f9 }
|
||||
/* LiteralNumberInteger */ .chroma .mi { color: #bd93f9 }
|
||||
/* LiteralNumberIntegerLong */ .chroma .il { color: #bd93f9 }
|
||||
/* LiteralNumberOct */ .chroma .mo { color: #bd93f9 }
|
||||
/* Operator */ .chroma .o { color: #ff79c6 }
|
||||
/* OperatorWord */ .chroma .ow { color: #ff79c6 }
|
||||
/* Punctuation */ .chroma .p { }
|
||||
/* Comment */ .chroma .c { color: #6272a4 }
|
||||
/* CommentHashbang */ .chroma .ch { color: #6272a4 }
|
||||
/* CommentMultiline */ .chroma .cm { color: #6272a4 }
|
||||
/* CommentSingle */ .chroma .c1 { color: #6272a4 }
|
||||
/* CommentSpecial */ .chroma .cs { color: #6272a4 }
|
||||
/* CommentPreproc */ .chroma .cp { color: #ff79c6 }
|
||||
/* CommentPreprocFile */ .chroma .cpf { color: #ff79c6 }
|
||||
/* Generic */ .chroma .g { }
|
||||
/* GenericDeleted */ .chroma .gd { color: #ff5555 }
|
||||
/* GenericEmph */ .chroma .ge { text-decoration: underline }
|
||||
/* GenericError */ .chroma .gr { }
|
||||
/* GenericHeading */ .chroma .gh { font-weight: bold }
|
||||
/* GenericInserted */ .chroma .gi { color: #50fa7b; font-weight: bold }
|
||||
/* GenericOutput */ .chroma .go { color: #44475a }
|
||||
/* GenericPrompt */ .chroma .gp { }
|
||||
/* GenericStrong */ .chroma .gs { }
|
||||
/* GenericSubheading */ .chroma .gu { font-weight: bold }
|
||||
/* GenericTraceback */ .chroma .gt { }
|
||||
/* GenericUnderline */ .chroma .gl { text-decoration: underline }
|
||||
/* TextWhitespace */ .chroma .w { }
|
@ -1,18 +1,24 @@
|
||||
/* Footer
|
||||
-------------------------------------------------- */
|
||||
.footer,
|
||||
.top-link {
|
||||
font-size: 12px;
|
||||
color: var(--secondary);
|
||||
}
|
||||
|
||||
.footer {
|
||||
max-width: calc(var(--main-width) + var(--gap) * 2);
|
||||
margin: auto;
|
||||
padding: calc((var(--footer-height) - (var(--gap)) - 10px) / 2) var(--gap);
|
||||
color: var(--secondary);
|
||||
font-size: 12px;
|
||||
padding: calc((var(--footer-height) - var(--gap)) / 2) var(--gap);
|
||||
text-align: center;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.footer span {
|
||||
margin-left: 1px;
|
||||
margin-right: 1px;
|
||||
margin-inline-start: 1px;
|
||||
margin-inline-end: 1px;
|
||||
}
|
||||
|
||||
.footer span:last-child {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.footer a {
|
||||
@ -21,14 +27,11 @@
|
||||
}
|
||||
|
||||
.footer a:hover {
|
||||
color: var(--primary);
|
||||
border-bottom: 1px solid var(--primary);
|
||||
}
|
||||
|
||||
.top-link {
|
||||
font-size: 12px;
|
||||
visibility: hidden;
|
||||
opacity: 0;
|
||||
position: fixed;
|
||||
bottom: 60px;
|
||||
right: 30px;
|
||||
@ -37,14 +40,21 @@
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
padding: 12px;
|
||||
color: var(--secondary);
|
||||
border-radius: 64px;
|
||||
fill: currentColor;
|
||||
fill-opacity: 80%;
|
||||
transition: visibility 0.5s,
|
||||
opacity 0.8s linear;
|
||||
transition: visibility 0.5s, opacity 0.8s linear;
|
||||
}
|
||||
|
||||
.top-link,
|
||||
.top-link svg {
|
||||
filter: drop-shadow(0px 0px 0px var(--theme));
|
||||
}
|
||||
|
||||
.footer a:hover,
|
||||
.top-link:hover {
|
||||
color: var(--primary);
|
||||
}
|
||||
}
|
||||
|
||||
.top-link:focus,
|
||||
#theme-toggle:focus {
|
||||
outline: 0;
|
||||
}
|
182
assets/css/common/header.css
Normal file
182
assets/css/common/header.css
Normal file
@ -0,0 +1,182 @@
|
||||
.nav {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
max-width: calc(var(--nav-width) + var(--gap) * 2);
|
||||
margin-inline-start: auto;
|
||||
margin-inline-end: auto;
|
||||
line-height: var(--header-height);
|
||||
}
|
||||
|
||||
.nav a {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.logo,
|
||||
#menu {
|
||||
display: flex;
|
||||
margin: auto var(--gap);
|
||||
}
|
||||
|
||||
.logo {
|
||||
flex-wrap: inherit;
|
||||
}
|
||||
|
||||
.logo a {
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.logo a img, .logo a svg {
|
||||
display: inline;
|
||||
vertical-align: middle;
|
||||
pointer-events: none;
|
||||
transform: translate(0, -10%);
|
||||
border-radius: 6px;
|
||||
margin-inline-end: 8px;
|
||||
}
|
||||
|
||||
button#theme-toggle {
|
||||
font-size: 26px;
|
||||
margin: auto 4px;
|
||||
}
|
||||
|
||||
body.dark #moon {
|
||||
vertical-align: middle;
|
||||
display: none;
|
||||
}
|
||||
|
||||
body:not(.dark) #sun {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#menu {
|
||||
list-style: none;
|
||||
word-break: keep-all;
|
||||
overflow-x: auto;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#menu li + li {
|
||||
margin-inline-start: var(--gap);
|
||||
}
|
||||
|
||||
#hamburger-input {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#hamburger-menu {
|
||||
display: none;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
margin: auto;
|
||||
margin-right: 13px;
|
||||
margin-left: 13px;
|
||||
background: linear-gradient(
|
||||
var(--primary), var(--primary) 20%,
|
||||
#ffffff00 20%, #ffffff00 40%,
|
||||
var(--primary) 40%, var(--primary) 60%,
|
||||
#ffffff00 60%, #ffffff00 80%,
|
||||
var(--primary) 80%, var(--primary) 100%
|
||||
);
|
||||
z-index: 10001;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 900px) {
|
||||
#menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#hamburger-menu {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#hamburger-input:checked ~ #hamburger-menu {
|
||||
background: none;
|
||||
}
|
||||
|
||||
#hamburger-input:checked ~ #hamburger-menu:after {
|
||||
content: "\00d7";
|
||||
position: fixed;
|
||||
font-size: 28px;
|
||||
line-height: 0;
|
||||
top: 28px;
|
||||
}
|
||||
|
||||
#hamburger-input:checked ~ .overlay {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
#hamburger-input:checked ~ #menu {
|
||||
display: block;
|
||||
width: 80%;
|
||||
margin: auto;
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-right: -50%;
|
||||
transform: translate(-50%, -50%);
|
||||
z-index: 10002;
|
||||
}
|
||||
|
||||
#menu li {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#menu li + li {
|
||||
margin-inline-start: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
visibility: hidden;
|
||||
overflow: hidden;
|
||||
background: var(--theme);
|
||||
z-index: 10000;
|
||||
}
|
||||
|
||||
#menu a {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#menu .active {
|
||||
font-weight: 500;
|
||||
border-bottom: 2px solid currentColor;
|
||||
}
|
||||
|
||||
.lang-switch li,
|
||||
.lang-switch ul,
|
||||
.logo-switches {
|
||||
display: inline-flex;
|
||||
margin: auto 4px;
|
||||
}
|
||||
|
||||
.lang-switch {
|
||||
display: flex;
|
||||
flex-wrap: inherit;
|
||||
}
|
||||
|
||||
.lang-switch a {
|
||||
margin: auto 3px;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.logo-switches {
|
||||
flex-wrap: inherit;
|
||||
}
|
||||
|
||||
#progressBar {
|
||||
--scrollAmount: 0%;
|
||||
width: var(--scrollAmount);
|
||||
height: 3px;
|
||||
background-color: #1e8cdb;
|
||||
position: fixed;
|
||||
z-index: 9999;
|
||||
}
|
@ -1,5 +1,3 @@
|
||||
/* Main
|
||||
-------------------------------------------------- */
|
||||
.main {
|
||||
position: relative;
|
||||
min-height: calc(100vh - var(--header-height) - var(--footer-height));
|
||||
@ -8,16 +6,6 @@
|
||||
padding: var(--gap);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 400px) {
|
||||
.main {
|
||||
min-height: calc(100vh - var(--header-height) - var(--footer-height) - 24px);
|
||||
}
|
||||
}
|
||||
|
||||
.page-header {
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.page-header h1 {
|
||||
font-size: 40px;
|
||||
}
|
||||
@ -36,18 +24,43 @@
|
||||
}
|
||||
|
||||
.pagination .next {
|
||||
margin-left: auto;
|
||||
margin-inline-start: auto;
|
||||
}
|
||||
|
||||
.social-icons {
|
||||
padding: 12px 0;
|
||||
}
|
||||
|
||||
.social-icons a:not(:last-of-type) {
|
||||
margin-right: 12px;
|
||||
.social-icons a {
|
||||
display: inline-flex;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.social-icons a svg {
|
||||
height: 26px;
|
||||
width: 26px;
|
||||
}
|
||||
}
|
||||
|
||||
code {
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
div.highlight,
|
||||
pre {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.copy-code {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
right: 4px;
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
background: rgba(78, 78, 78, 0.8);
|
||||
border-radius: var(--radius);
|
||||
padding: 0 5px;
|
||||
font-size: 14px;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
div.highlight:hover .copy-code,
|
||||
pre:hover .copy-code {
|
||||
display: block;
|
||||
}
|
@ -1,20 +1,12 @@
|
||||
/* Post entry
|
||||
-------------------------------------------------- */
|
||||
.first-entry {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
min-height: 320px;
|
||||
min-height: 220px;
|
||||
margin: var(--gap) 0 calc(var(--gap) * 2) 0;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 600px) {
|
||||
.first-entry {
|
||||
min-height: 260px;
|
||||
}
|
||||
}
|
||||
|
||||
.first-entry .entry-header {
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
@ -22,8 +14,9 @@
|
||||
-webkit-line-clamp: 3;
|
||||
}
|
||||
|
||||
.first-entry .entry-header h2 {
|
||||
.first-entry .entry-header h1 {
|
||||
font-size: 34px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.first-entry .entry-content {
|
||||
@ -36,6 +29,10 @@
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.home-info .entry-content {
|
||||
-webkit-line-clamp: unset;
|
||||
}
|
||||
|
||||
.post-entry {
|
||||
position: relative;
|
||||
margin-bottom: var(--gap);
|
||||
@ -43,19 +40,20 @@
|
||||
background: var(--entry);
|
||||
border-radius: var(--radius);
|
||||
transition: transform 0.1s;
|
||||
border: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.post-entry:active {
|
||||
transform: scale(0.96);
|
||||
}
|
||||
|
||||
.tag-entry .entry-content,
|
||||
.tag-entry .entry-footer {
|
||||
.tag-entry .entry-cover {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.entry-header h2 {
|
||||
font-size: 24px;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.entry-content {
|
||||
@ -82,23 +80,26 @@
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.entry-isdraft {
|
||||
display: inline;
|
||||
.entry-hint {
|
||||
color: var(--secondary);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.entry-hint-parent {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.entry-cover {
|
||||
font-size: 14px;
|
||||
margin-bottom: var(--gap);
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
color: var(--secondary);
|
||||
}
|
||||
|
||||
.entry-cover img {
|
||||
border-radius: var(--radius);
|
||||
pointer-events: none;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.entry-cover a {
|
423
assets/css/common/post-single.css
Normal file
423
assets/css/common/post-single.css
Normal file
@ -0,0 +1,423 @@
|
||||
.page-header,
|
||||
.post-header {
|
||||
margin: 24px auto var(--content-gap) auto;
|
||||
}
|
||||
|
||||
.post-title {
|
||||
margin-bottom: 2px;
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
.post-description {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.post-meta,
|
||||
.breadcrumbs {
|
||||
color: var(--secondary);
|
||||
font-size: 14px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.post-meta .i18n_list li {
|
||||
display: inline-flex;
|
||||
list-style: none;
|
||||
margin: auto 3px;
|
||||
box-shadow: 0 1px 0 var(--secondary);
|
||||
}
|
||||
|
||||
.breadcrumbs a {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.post-content {
|
||||
color: var(--content);
|
||||
}
|
||||
|
||||
.post-content h3,
|
||||
.post-content h4,
|
||||
.post-content h5,
|
||||
.post-content h6 {
|
||||
margin: 24px 0 16px;
|
||||
}
|
||||
|
||||
.post-content h1 {
|
||||
margin: 40px auto 32px;
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
.post-content h2 {
|
||||
margin: 32px auto 24px;
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
.post-content h3 {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.post-content h4 {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.post-content h5 {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.post-content h6 {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.post-content a,
|
||||
.toc a:hover {
|
||||
border-bottom: 1px solid var(--primary);
|
||||
}
|
||||
|
||||
.post-content a code {
|
||||
margin: auto 0;
|
||||
border-radius: 0;
|
||||
box-shadow: 0 -1px 0 var(--primary) inset;
|
||||
}
|
||||
|
||||
.post-content del {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
.post-content dl,
|
||||
.post-content ol,
|
||||
.post-content p,
|
||||
.post-content figure,
|
||||
.post-content ul {
|
||||
margin-bottom: var(--content-gap);
|
||||
}
|
||||
|
||||
.post-content ol,
|
||||
.post-content ul {
|
||||
padding-inline-start: 20px;
|
||||
}
|
||||
|
||||
.post-content li {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.post-content li p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.post-content dl {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.post-content dt {
|
||||
width: 25%;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.post-content dd {
|
||||
width: 75%;
|
||||
margin-inline-start: 0;
|
||||
padding-inline-start: 10px;
|
||||
}
|
||||
|
||||
.post-content dd ~ dd,
|
||||
.post-content dt ~ dt {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.post-content table {
|
||||
margin-bottom: var(--content-gap);
|
||||
}
|
||||
|
||||
.post-content table th,
|
||||
.post-content table:not(.highlighttable, .highlight table, .gist .highlight) td {
|
||||
min-width: 80px;
|
||||
padding: 8px 5px;
|
||||
line-height: 1.5;
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.post-content table th {
|
||||
text-align: start;
|
||||
}
|
||||
|
||||
.post-content table:not(.highlighttable) td code:only-child {
|
||||
margin: auto 0;
|
||||
}
|
||||
|
||||
.post-content .highlight table {
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
.post-content .highlight:not(table) {
|
||||
margin: 10px auto;
|
||||
border-radius: var(--radius);
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
.post-content li > .highlight {
|
||||
margin-inline-end: 0;
|
||||
}
|
||||
|
||||
.post-content ul pre {
|
||||
margin-inline-start: calc(var(--gap) * -2);
|
||||
}
|
||||
|
||||
.post-content .highlight pre {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.post-content .highlighttable {
|
||||
table-layout: fixed;
|
||||
}
|
||||
|
||||
.post-content .highlighttable td:first-child {
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
.post-content .highlighttable td .linenodiv {
|
||||
padding-inline-end: 0 !important;
|
||||
}
|
||||
|
||||
.post-content .highlighttable td .highlight,
|
||||
.post-content .highlighttable td .linenodiv pre {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.post-content .highlighttable td .highlight pre code::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* code block */
|
||||
.post-content .chroma {
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
.post-content code {
|
||||
/* inline code */
|
||||
background-color: var(--tertiary);
|
||||
margin: auto 4px;
|
||||
padding: 4px 6px;
|
||||
font-size: 0.78em;
|
||||
line-height: 1.5;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.post-content pre code {
|
||||
/* reset inline code */
|
||||
background-color: unset;
|
||||
display: block;
|
||||
margin: 20px;
|
||||
padding: 10px;
|
||||
overflow-x: auto;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.post-content .chroma code {
|
||||
background-color: inherit;
|
||||
}
|
||||
|
||||
.post-content blockquote {
|
||||
margin: 20px 0;
|
||||
padding: 0 14px;
|
||||
border-inline-start: 3px solid var(--primary);
|
||||
}
|
||||
|
||||
.post-content hr {
|
||||
margin: 30px 0;
|
||||
height: 2px;
|
||||
background: var(--tertiary);
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.post-content iframe {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.post-content img {
|
||||
border-radius: 4px;
|
||||
margin: 1rem 0;
|
||||
}
|
||||
|
||||
.post-content img[src*="#center"] {
|
||||
margin: 1rem auto;
|
||||
}
|
||||
|
||||
.post-content figure.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.post-content figure > figcaption {
|
||||
color: var(--primary);
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin: 8px 0 16px;
|
||||
}
|
||||
|
||||
.post-content figure > figcaption > p {
|
||||
color: var(--secondary);
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.toc {
|
||||
margin: 0 2px 40px 2px;
|
||||
border: 1px solid var(--border);
|
||||
background: var(--tertiary);
|
||||
border-radius: var(--radius);
|
||||
padding: 0.4em;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1400px) {
|
||||
.toc.side {
|
||||
position: fixed;
|
||||
right: 30px;
|
||||
top: 100px;
|
||||
width: 300px;
|
||||
font-size: .9em;
|
||||
max-height: calc(100% - 150px);
|
||||
overflow: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.dark .toc {
|
||||
background: var(--entry);
|
||||
}
|
||||
|
||||
.toc details summary {
|
||||
cursor: pointer;
|
||||
margin-inline-start: 20px;
|
||||
}
|
||||
|
||||
.toc .details {
|
||||
display: inline;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.toc .inner {
|
||||
margin: 0 20px;
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
.toc li ul {
|
||||
margin-inline-start: var(--gap);
|
||||
}
|
||||
|
||||
.toc summary:focus {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.post-footer {
|
||||
margin-top: 56px;
|
||||
}
|
||||
|
||||
.post-footer>* {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.post-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.post-tags li {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.post-tags a,
|
||||
.paginav {
|
||||
border-radius: var(--radius);
|
||||
background: var(--code-bg);
|
||||
border: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.post-tags a {
|
||||
display: block;
|
||||
padding: 0 14px;
|
||||
color: var(--secondary);
|
||||
font-size: 14px;
|
||||
line-height: 34px;
|
||||
background: var(--tertiary);
|
||||
}
|
||||
|
||||
.share-buttons {
|
||||
padding: 10px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
overflow-x: auto;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.share-buttons li,
|
||||
.share-buttons a {
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.share-buttons a:not(:last-of-type) {
|
||||
margin-inline-end: 12px;
|
||||
}
|
||||
|
||||
h1:hover .anchor,
|
||||
h2:hover .anchor,
|
||||
h3:hover .anchor,
|
||||
h4:hover .anchor,
|
||||
h5:hover .anchor,
|
||||
h6:hover .anchor {
|
||||
border-bottom: none;
|
||||
display: inline-flex;
|
||||
color: var(--secondary);
|
||||
margin-inline-start: 8px;
|
||||
font-weight: 500;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.paginav {
|
||||
display: flex;
|
||||
line-height: 30px;
|
||||
border-radius: var(--radius);
|
||||
background: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.paginav a {
|
||||
padding-inline-start: 14px;
|
||||
padding-inline-end: 14px;
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
.paginav .title {
|
||||
letter-spacing: 1px;
|
||||
text-transform: uppercase;
|
||||
font-size: small;
|
||||
color: var(--secondary);
|
||||
}
|
||||
|
||||
.paginav .prev,
|
||||
.paginav .next {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.paginav span:hover:not(.title) {
|
||||
box-shadow: 0 1px 0;
|
||||
}
|
||||
|
||||
.paginav .next {
|
||||
margin-inline-start: auto;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
[dir="rtl"] .paginav .next {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
h1>a>svg {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
img.in-text {
|
||||
display: inline;
|
||||
margin: auto;
|
||||
}
|
43
assets/css/common/profile-mode.css
Normal file
43
assets/css/common/profile-mode.css
Normal file
@ -0,0 +1,43 @@
|
||||
.buttons,
|
||||
.main .profile {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.main .profile {
|
||||
align-items: center;
|
||||
min-height: calc(100vh - var(--header-height) - var(--footer-height) - (var(--gap) * 2));
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.profile .profile_inner {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.profile img {
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.buttons {
|
||||
flex-wrap: wrap;
|
||||
max-width: 400px;
|
||||
}
|
||||
|
||||
.button {
|
||||
background: var(--tertiary);
|
||||
border-radius: var(--radius);
|
||||
margin: 8px;
|
||||
padding: 6px;
|
||||
transition: transform 0.1s;
|
||||
}
|
||||
|
||||
.button-inner {
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
.button:active {
|
||||
transform: scale(0.96);
|
||||
}
|
45
assets/css/common/search.css
Normal file
45
assets/css/common/search.css
Normal file
@ -0,0 +1,45 @@
|
||||
#searchbox input {
|
||||
padding: 4px 10px;
|
||||
width: 100%;
|
||||
color: var(--primary);
|
||||
font-weight: bold;
|
||||
border: 2px solid var(--tertiary);
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
#searchbox input:focus {
|
||||
border-color: var(--secondary);
|
||||
}
|
||||
|
||||
#searchResults li {
|
||||
list-style: none;
|
||||
border-radius: var(--radius);
|
||||
padding: 10px;
|
||||
margin: 10px 0;
|
||||
position: relative;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
#searchResults {
|
||||
margin: 10px 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#searchResults li:active {
|
||||
transition: transform 0.1s;
|
||||
transform: scale(0.98);
|
||||
}
|
||||
|
||||
#searchResults a {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#searchResults .focus {
|
||||
transform: scale(0.98);
|
||||
border: 2px solid var(--tertiary);
|
||||
}
|
@ -12,7 +12,7 @@
|
||||
transition: transform 0.1s;
|
||||
}
|
||||
|
||||
.terms-tags a:hover {
|
||||
.terms-tags a:active {
|
||||
background: var(--tertiary);
|
||||
transform: scale(0.96);
|
||||
}
|
||||
}
|
6
assets/css/core/license.css
Normal file
6
assets/css/core/license.css
Normal file
@ -0,0 +1,6 @@
|
||||
/*
|
||||
PaperMod v7
|
||||
License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
|
||||
Copyright (c) 2020 nanxiaobei and adityatelange
|
||||
Copyright (c) 2021-2023 adityatelange
|
||||
*/
|
@ -1,20 +1,31 @@
|
||||
/* Reset
|
||||
-------------------------------------------------- */
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
::after,
|
||||
::before {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html {
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
overflow-y: scroll;
|
||||
scroll-behavior: smooth;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
a,
|
||||
button,
|
||||
body,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
color: var(--primary);
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell,
|
||||
'Open Sans', 'Helvetica Neue', sans-serif;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
||||
font-size: 18px;
|
||||
line-height: 1.6;
|
||||
word-break: break-word;
|
||||
@ -30,7 +41,8 @@ header,
|
||||
hgroup,
|
||||
main,
|
||||
nav,
|
||||
section {
|
||||
section,
|
||||
table {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@ -40,33 +52,31 @@ h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
color: var(--primary);
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
strong,
|
||||
b {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--primary);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
figure {
|
||||
body,
|
||||
figure,
|
||||
ul {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@ -74,8 +84,7 @@ table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
display: block;
|
||||
overflow-x: scroll;
|
||||
overflow-x: auto;
|
||||
word-break: keep-all;
|
||||
}
|
||||
|
||||
@ -84,24 +93,21 @@ input,
|
||||
textarea {
|
||||
padding: 0;
|
||||
font: inherit;
|
||||
background: transparent;
|
||||
background: 0 0;
|
||||
border: 0;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
button,
|
||||
input[type='button'],
|
||||
input[type='submit'] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
input,
|
||||
textarea {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
button,
|
||||
input[type=button],
|
||||
input[type=submit] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
input:-webkit-autofill,
|
||||
textarea:-webkit-autofill {
|
||||
box-shadow: 0 0 0 50px var(--theme) inset;
|
||||
@ -111,32 +117,3 @@ img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
*::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
height: 6px;
|
||||
}
|
||||
|
||||
*::-webkit-scrollbar-track {
|
||||
background: var(--theme);
|
||||
}
|
||||
|
||||
*::-webkit-scrollbar-thumb {
|
||||
background: var(--tertiary);
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
*::-webkit-scrollbar-thumb:hover {
|
||||
background: var(--secondary);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 800px) {
|
||||
*::-webkit-scrollbar {
|
||||
width: 8px;
|
||||
height: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
*:focus {
|
||||
outline:none;
|
||||
}
|
36
assets/css/core/theme-vars.css
Normal file
36
assets/css/core/theme-vars.css
Normal file
@ -0,0 +1,36 @@
|
||||
:root {
|
||||
--gap: 24px;
|
||||
--content-gap: 20px;
|
||||
--nav-width: 1024px;
|
||||
--main-width: 720px;
|
||||
--header-height: 60px;
|
||||
--footer-height: 60px;
|
||||
--radius: 8px;
|
||||
--theme: #e2e4f2;
|
||||
--entry: #efefff;
|
||||
--primary: rgb(30, 30, 30);
|
||||
--secondary: rgb(108, 108, 108);
|
||||
--tertiary: #c3c5d0;
|
||||
--content: rgb(31, 31, 31);
|
||||
--code-bg: #e2e4f2;
|
||||
--border: rgb(238, 238, 238);
|
||||
}
|
||||
|
||||
.dark {
|
||||
--theme: #1f2125;
|
||||
--entry: #26282e;
|
||||
--primary: rgb(218, 218, 219);
|
||||
--secondary: rgb(155, 156, 157);
|
||||
--tertiary: #3a3c42;
|
||||
--content: rgb(196, 196, 197);
|
||||
--code-bg: rgb(55, 56, 62);
|
||||
--border: none;
|
||||
}
|
||||
|
||||
.list {
|
||||
background: var(--code-bg);
|
||||
}
|
||||
|
||||
.dark.list {
|
||||
background: var(--theme);
|
||||
}
|
55
assets/css/core/zmedia.css
Normal file
55
assets/css/core/zmedia.css
Normal file
@ -0,0 +1,55 @@
|
||||
@media screen and (max-width: 768px) {
|
||||
/* theme-vars */
|
||||
:root {
|
||||
--gap: 14px;
|
||||
}
|
||||
|
||||
/* profile-mode */
|
||||
.profile img {
|
||||
transform: scale(0.85);
|
||||
}
|
||||
|
||||
/* post-entry */
|
||||
.first-entry {
|
||||
min-height: 260px;
|
||||
}
|
||||
|
||||
/* archive */
|
||||
.archive-month {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.archive-year {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
/* footer */
|
||||
.footer {
|
||||
padding: calc((var(--footer-height) - var(--gap) - 10px) / 2) var(--gap);
|
||||
}
|
||||
}
|
||||
|
||||
/* footer */
|
||||
@media screen and (max-width: 900px) {
|
||||
.list .top-link {
|
||||
transform: translateY(-5rem);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 340px) {
|
||||
.share-buttons {
|
||||
justify-content: unset;
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion) {
|
||||
/* terms; profile-mode; post-single; post-entry; post-entry; search; search */
|
||||
.terms-tags a:active,
|
||||
.button:active,
|
||||
.post-entry:active,
|
||||
.top-link,
|
||||
#searchResults .focus,
|
||||
#searchResults li:active {
|
||||
transform: none;
|
||||
}
|
||||
}
|
5
assets/css/extended/blank.css
Normal file
5
assets/css/extended/blank.css
Normal file
@ -0,0 +1,5 @@
|
||||
/*
|
||||
This is just a placeholder blank stylesheet so as to support adding custom styles budled with theme's default styles
|
||||
|
||||
Read https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#bundling-custom-css-with-themes-assets for more info
|
||||
*/
|
16
assets/css/extended/youtube.css
Normal file
16
assets/css/extended/youtube.css
Normal file
@ -0,0 +1,16 @@
|
||||
.youtube-embed-div {
|
||||
position: relative;
|
||||
padding-bottom: 56.25%;
|
||||
margin-bottom: 20px;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.youtube-embed-frame {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: 0;
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
/* Header
|
||||
-------------------------------------------------- */
|
||||
.nav {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
max-width: calc(var(--nav-width) + var(--gap) * 2);
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.nav a {
|
||||
display: block;
|
||||
line-height: var(--header-height);
|
||||
}
|
||||
|
||||
.logo,
|
||||
.menu {
|
||||
display: flex;
|
||||
margin: auto var(--gap);
|
||||
}
|
||||
|
||||
.logo a {
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.theme-toggle svg{
|
||||
height: 18px;
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
body.dark #moon{
|
||||
vertical-align: middle;
|
||||
display: none;
|
||||
}
|
||||
|
||||
body:not(.dark) #sun {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.menu {
|
||||
list-style: none;
|
||||
word-break: keep-all;
|
||||
overflow-x: auto;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.menu li+li {
|
||||
margin-left: var(--gap);
|
||||
}
|
||||
|
||||
.menu a {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.menu .active {
|
||||
font-weight: 500;
|
||||
border-bottom: 2px solid currentColor;
|
||||
}
|
8
assets/css/includes/noscript.css
Normal file
8
assets/css/includes/noscript.css
Normal file
@ -0,0 +1,8 @@
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#searchInput {
|
||||
display: none;
|
||||
}
|
80
assets/css/includes/scroll-bar.css
Normal file
80
assets/css/includes/scroll-bar.css
Normal file
@ -0,0 +1,80 @@
|
||||
/* from reset */
|
||||
::-webkit-scrollbar-track {
|
||||
background: 0 0;
|
||||
}
|
||||
|
||||
.list:not(.dark)::-webkit-scrollbar-track {
|
||||
background: var(--code-bg);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: var(--tertiary);
|
||||
border: 5px solid var(--theme);
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
.list:not(.dark)::-webkit-scrollbar-thumb {
|
||||
border: 5px solid var(--code-bg);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: var(--secondary);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar:not(.highlighttable, .highlight table, .gist .highlight) {
|
||||
background: var(--theme);
|
||||
}
|
||||
|
||||
/* from post-single */
|
||||
.post-content .highlighttable td .highlight pre code::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.post-content :not(table) ::-webkit-scrollbar-thumb {
|
||||
border: 2px solid var(--hljs-bg);
|
||||
background: rgb(113, 113, 117);
|
||||
}
|
||||
|
||||
.post-content :not(table) ::-webkit-scrollbar-thumb:hover {
|
||||
background: rgb(163, 163, 165);
|
||||
}
|
||||
|
||||
.gist table::-webkit-scrollbar-thumb {
|
||||
border: 2px solid rgb(255, 255, 255);
|
||||
background: rgb(173, 173, 173);
|
||||
}
|
||||
|
||||
.gist table::-webkit-scrollbar-thumb:hover {
|
||||
background: rgb(112, 112, 112);
|
||||
}
|
||||
|
||||
.post-content table::-webkit-scrollbar-thumb {
|
||||
border-width: 2px;
|
||||
}
|
||||
|
||||
/* from zmedia */
|
||||
@media screen and (min-width: 768px) {
|
||||
|
||||
/* reset */
|
||||
::-webkit-scrollbar {
|
||||
width: 19px;
|
||||
height: 11px;
|
||||
}
|
||||
}
|
||||
|
||||
/* side ToC */
|
||||
|
||||
.toc.side::-webkit-scrollbar-thumb {
|
||||
border: none;
|
||||
background: var(--secondary);
|
||||
}
|
||||
|
||||
.toc.side::-webkit-scrollbar {
|
||||
width: 8px;
|
||||
}
|
||||
|
||||
/* code */
|
||||
|
||||
.highlight pre code::-webkit-scrollbar {
|
||||
height: 6px;
|
||||
}
|
@ -1,318 +0,0 @@
|
||||
/* Post single
|
||||
-------------------------------------------------- */
|
||||
.post-header {
|
||||
margin: 24px auto var(--content-gap) auto
|
||||
}
|
||||
|
||||
.post-title {
|
||||
margin-bottom: 2px;
|
||||
font-size: 40px;
|
||||
transform: translateX(-2px);
|
||||
}
|
||||
|
||||
.post-meta {
|
||||
color: var(--secondary);
|
||||
font-size: 14px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.post-meta .i18n_list li {
|
||||
display: inline-flex;
|
||||
list-style: none;
|
||||
margin: auto 3px;
|
||||
box-shadow: 0 1px 0 var(--secondary);
|
||||
}
|
||||
|
||||
.post-content {
|
||||
color: var(--content);
|
||||
}
|
||||
|
||||
.post-content h3,
|
||||
.post-content h4,
|
||||
.post-content h5,
|
||||
.post-content h6 {
|
||||
margin: 24px 0 16px 0;
|
||||
}
|
||||
|
||||
.post-content h1 {
|
||||
margin: 40px auto 32px auto;
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
.post-content h2 {
|
||||
margin: 32px auto 24px auto;
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
.post-content h3 {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.post-content h4 {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.post-content h5 {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.post-content h6 {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.post-content a {
|
||||
box-shadow: 0 1px 0 var(--primary);
|
||||
}
|
||||
|
||||
.post-content a code {
|
||||
margin: auto 0;
|
||||
border-radius: 0;
|
||||
box-shadow: 0 -1px 0 var(--primary) inset;
|
||||
}
|
||||
|
||||
.post-content del {
|
||||
text-decoration: none;
|
||||
background: linear-gradient(to right, var(--primary) 100%, transparent 0) 0 50% / 1px 1px repeat-x;
|
||||
}
|
||||
|
||||
.post-content p,
|
||||
.post-content ul,
|
||||
.post-content ol,
|
||||
.post-content dl {
|
||||
margin-bottom: var(--content-gap);
|
||||
}
|
||||
|
||||
.post-content ul,
|
||||
.post-content ol {
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.post-content li {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.post-content li p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.post-content dl {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.post-content dt {
|
||||
width: 25%;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.post-content dd {
|
||||
width: 75%;
|
||||
margin-left: 0;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.post-content dt~dt,
|
||||
.post-content dd~dd {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.post-content table {
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.post-content table th,
|
||||
.post-content table:not(.highlighttable) td {
|
||||
min-width: 80px;
|
||||
padding: 12px 8px;
|
||||
line-height: 1.5;
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.post-content table th {
|
||||
font-size: 14px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.post-content table:not(.highlighttable) td code:only-child {
|
||||
margin: auto 0;
|
||||
}
|
||||
|
||||
.post-content .highlight,
|
||||
.post-content pre {
|
||||
margin: auto calc(var(--gap) * -1) 32px calc(var(--gap) * -1);
|
||||
background: var(--hljs-bg) !important;
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
.post-content li>.highlight {
|
||||
margin-right: 0
|
||||
}
|
||||
|
||||
.post-content ul pre {
|
||||
margin-left: calc(var(--gap) * -2);
|
||||
}
|
||||
|
||||
.post-content .highlight pre {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* table */
|
||||
.post-content .highlighttable {
|
||||
table-layout: fixed;
|
||||
}
|
||||
|
||||
.post-content .highlighttable td:first-child {
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
.post-content .highlighttable td .linenodiv {
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
|
||||
.post-content .highlighttable td .linenodiv pre,
|
||||
.post-content .highlighttable td .highlight {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.post-content .highlighttable td .highlight pre code::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* inline */
|
||||
.post-content .highlight span {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
.post-content code {
|
||||
margin: auto 4px;
|
||||
padding: 4px 6px;
|
||||
font-family: Menlo, Monaco, 'Courier New', Courier, monospace;
|
||||
font-size: 0.78em;
|
||||
line-height: 1.5;
|
||||
background: var(--code-bg);
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.post-content pre code {
|
||||
display: block;
|
||||
margin: auto 0;
|
||||
padding: 10px;
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
background: transparent;
|
||||
border-radius: 0;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.post-content blockquote {
|
||||
margin: 0 calc(var(--gap) * -1);
|
||||
padding: 0 32px;
|
||||
border-left: 2px solid var(--primary);
|
||||
}
|
||||
|
||||
.post-content hr {
|
||||
margin: 30px calc(var(--gap) * -1);
|
||||
height: 2px;
|
||||
background: var(--tertiary);
|
||||
border-top: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.post-content iframe {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.post-content img {
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.toc {
|
||||
margin-bottom: 40px;
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius);
|
||||
padding: .5em;
|
||||
}
|
||||
|
||||
.toc details summary {
|
||||
cursor: zoom-in;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.toc details[open] summary {
|
||||
cursor: zoom-out;
|
||||
}
|
||||
|
||||
.toc .details {
|
||||
display: inline;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.toc blockquote {
|
||||
margin: 0 20px;
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
.toc li ul {
|
||||
margin-left: var(--gap);
|
||||
}
|
||||
|
||||
.post-footer {
|
||||
margin-top: 56px;
|
||||
}
|
||||
|
||||
.post-tags li {
|
||||
display: inline-block;
|
||||
margin-right: 3px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.post-tags a {
|
||||
display: block;
|
||||
padding-left: 14px;
|
||||
padding-right: 14px;
|
||||
color: var(--secondary);
|
||||
font-size: 14px;
|
||||
line-height: 34px;
|
||||
background: var(--code-bg);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.post-tags a:hover {
|
||||
background: var(--border);
|
||||
}
|
||||
|
||||
.share-buttons {
|
||||
margin-top: var(--gap);
|
||||
border: 1px solid var(--tertiary);
|
||||
padding: var(--radius);
|
||||
border-radius: var(--radius);
|
||||
display: flex;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.share-buttons a {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.share-buttons a:not(:last-of-type) {
|
||||
margin-right: 12px;
|
||||
}
|
||||
|
||||
.share-buttons a svg {
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
fill: currentColor;
|
||||
transition: transform 0.1s;
|
||||
}
|
||||
|
||||
.share-buttons svg:hover {
|
||||
transform: scale(0.96);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 600px) {
|
||||
.post-content blockquote {
|
||||
margin: 0 calc(var(--gap) * -1);
|
||||
padding: 0 21px;
|
||||
}
|
||||
}
|
@ -1,62 +0,0 @@
|
||||
.main {
|
||||
text-align: center;
|
||||
display: table;
|
||||
}
|
||||
|
||||
.main>.profile {
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.main>.profile>.profile_inner {
|
||||
transform: translate(0, -10%);
|
||||
}
|
||||
|
||||
.profile_inner h1 {
|
||||
padding: 12px 0;
|
||||
}
|
||||
|
||||
.profile_inner span {
|
||||
padding: 10px 0;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
img {
|
||||
display: inline-table;
|
||||
width: 180px;
|
||||
border-radius: 50%;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 600px) {
|
||||
img {
|
||||
width: 150px;
|
||||
}
|
||||
.main>.profile>.profile_inner {
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.buttons {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
max-width: 400px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.button {
|
||||
background: var(--tertiary);
|
||||
border-radius: var(--radius);
|
||||
margin: 8px;
|
||||
padding: 6px;
|
||||
transition: transform 0.1s;
|
||||
}
|
||||
|
||||
.button-inner {
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
.button:active {
|
||||
transform: scale(0.96);
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
/* Theme
|
||||
-------------------------------------------------- */
|
||||
:root {
|
||||
--gap: 24px;
|
||||
--content-gap: 20px;
|
||||
--nav-width: 1024px;
|
||||
--main-width: 720px;
|
||||
--header-height: 60px;
|
||||
--footer-height: 60px;
|
||||
--radius: 8px;
|
||||
|
||||
--theme: #fff;
|
||||
--entry: #fff;
|
||||
--primary: rgba(0, 0, 0, 0.88);
|
||||
--secondary: rgba(0, 0, 0, 0.56);
|
||||
--tertiary: rgba(0, 0, 0, 0.16);
|
||||
--content: rgba(0, 0, 0, 0.88);
|
||||
|
||||
--hljs-bg: #1c1d21;
|
||||
--code-bg: #f5f5f5;
|
||||
--border: #eee;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 600px) {
|
||||
:root {
|
||||
--gap: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
.dark {
|
||||
--theme: #1d1e20;
|
||||
--entry: #2e2e33;
|
||||
--primary: rgba(255, 255, 255, 0.84);
|
||||
--secondary: rgba(255, 255, 255, 0.56);
|
||||
--tertiary: rgba(255, 255, 255, 0.16);
|
||||
--content: rgba(255, 255, 255, 0.64);
|
||||
|
||||
--hljs-bg: #2e2e33;
|
||||
--code-bg: #37383e;
|
||||
--border: #5b5d67;
|
||||
}
|
||||
|
||||
.list {
|
||||
background: var(--code-bg);
|
||||
}
|
||||
|
||||
.dark.list {
|
||||
background: var(--theme);
|
||||
}
|
152
assets/js/fastsearch.js
Normal file
152
assets/js/fastsearch.js
Normal file
@ -0,0 +1,152 @@
|
||||
import * as params from '@params';
|
||||
|
||||
let fuse; // holds our search engine
|
||||
let resList = document.getElementById('searchResults');
|
||||
let sInput = document.getElementById('searchInput');
|
||||
let first, last, current_elem = null
|
||||
let resultsAvailable = false;
|
||||
|
||||
// load our search index
|
||||
window.onload = function () {
|
||||
let xhr = new XMLHttpRequest();
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState === 4) {
|
||||
if (xhr.status === 200) {
|
||||
let data = JSON.parse(xhr.responseText);
|
||||
if (data) {
|
||||
// fuse.js options; check fuse.js website for details
|
||||
let options = {
|
||||
distance: 100,
|
||||
threshold: 0.4,
|
||||
ignoreLocation: true,
|
||||
keys: [
|
||||
'title',
|
||||
'permalink',
|
||||
'summary',
|
||||
'content'
|
||||
]
|
||||
};
|
||||
if (params.fuseOpts) {
|
||||
options = {
|
||||
isCaseSensitive: params.fuseOpts.iscasesensitive ?? false,
|
||||
includeScore: params.fuseOpts.includescore ?? false,
|
||||
includeMatches: params.fuseOpts.includematches ?? false,
|
||||
minMatchCharLength: params.fuseOpts.minmatchcharlength ?? 1,
|
||||
shouldSort: params.fuseOpts.shouldsort ?? true,
|
||||
findAllMatches: params.fuseOpts.findallmatches ?? false,
|
||||
keys: params.fuseOpts.keys ?? ['title', 'permalink', 'summary', 'content'],
|
||||
location: params.fuseOpts.location ?? 0,
|
||||
threshold: params.fuseOpts.threshold ?? 0.4,
|
||||
distance: params.fuseOpts.distance ?? 100,
|
||||
ignoreLocation: params.fuseOpts.ignorelocation ?? true
|
||||
}
|
||||
}
|
||||
fuse = new Fuse(data, options); // build the index from the json file
|
||||
}
|
||||
} else {
|
||||
console.log(xhr.responseText);
|
||||
}
|
||||
}
|
||||
};
|
||||
xhr.open('GET', "../index.json");
|
||||
xhr.send();
|
||||
}
|
||||
|
||||
function activeToggle(ae) {
|
||||
document.querySelectorAll('.focus').forEach(function (element) {
|
||||
// rm focus class
|
||||
element.classList.remove("focus")
|
||||
});
|
||||
if (ae) {
|
||||
ae.focus()
|
||||
document.activeElement = current_elem = ae;
|
||||
ae.parentElement.classList.add("focus")
|
||||
} else {
|
||||
document.activeElement.parentElement.classList.add("focus")
|
||||
}
|
||||
}
|
||||
|
||||
function reset() {
|
||||
resultsAvailable = false;
|
||||
resList.innerHTML = sInput.value = ''; // clear inputbox and searchResults
|
||||
sInput.focus(); // shift focus to input box
|
||||
}
|
||||
|
||||
// execute search as each character is typed
|
||||
sInput.onkeyup = function (e) {
|
||||
// run a search query (for "term") every time a letter is typed
|
||||
// in the search box
|
||||
if (fuse) {
|
||||
let results;
|
||||
if (params.fuseOpts) {
|
||||
results = fuse.search(this.value.trim(), {limit: params.fuseOpts.limit}); // the actual query being run using fuse.js along with options
|
||||
} else {
|
||||
results = fuse.search(this.value.trim()); // the actual query being run using fuse.js
|
||||
}
|
||||
if (results.length !== 0) {
|
||||
// build our html if result exists
|
||||
let resultSet = ''; // our results bucket
|
||||
|
||||
for (let item in results) {
|
||||
resultSet += `<li class="post-entry"><header class="entry-header">${results[item].item.title} »</header>` +
|
||||
`<a href="${results[item].item.permalink}" aria-label="${results[item].item.title}"></a></li>`
|
||||
}
|
||||
|
||||
resList.innerHTML = resultSet;
|
||||
resultsAvailable = true;
|
||||
first = resList.firstChild;
|
||||
last = resList.lastChild;
|
||||
} else {
|
||||
resultsAvailable = false;
|
||||
resList.innerHTML = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sInput.addEventListener('search', function (e) {
|
||||
// clicked on x
|
||||
if (!this.value) reset()
|
||||
})
|
||||
|
||||
// kb bindings
|
||||
document.onkeydown = function (e) {
|
||||
let key = e.key;
|
||||
let ae = document.activeElement;
|
||||
|
||||
let inbox = document.getElementById("searchbox").contains(ae)
|
||||
|
||||
if (ae === sInput) {
|
||||
let elements = document.getElementsByClassName('focus');
|
||||
while (elements.length > 0) {
|
||||
elements[0].classList.remove('focus');
|
||||
}
|
||||
} else if (current_elem) ae = current_elem;
|
||||
|
||||
if (key === "Escape") {
|
||||
reset()
|
||||
} else if (!resultsAvailable || !inbox) {
|
||||
return
|
||||
} else if (key === "ArrowDown") {
|
||||
e.preventDefault();
|
||||
if (ae == sInput) {
|
||||
// if the currently focused element is the search input, focus the <a> of first <li>
|
||||
activeToggle(resList.firstChild.lastChild);
|
||||
} else if (ae.parentElement != last) {
|
||||
// if the currently focused element's parent is last, do nothing
|
||||
// otherwise select the next search result
|
||||
activeToggle(ae.parentElement.nextSibling.lastChild);
|
||||
}
|
||||
} else if (key === "ArrowUp") {
|
||||
e.preventDefault();
|
||||
if (ae.parentElement == first) {
|
||||
// if the currently focused element is first item, go to input box
|
||||
activeToggle(sInput);
|
||||
} else if (ae != sInput) {
|
||||
// if the currently focused element is input box, do nothing
|
||||
// otherwise select the previous search result
|
||||
activeToggle(ae.parentElement.previousSibling.lastChild);
|
||||
}
|
||||
} else if (key === "ArrowRight") {
|
||||
ae.click(); // click on active link
|
||||
}
|
||||
}
|
9
assets/js/fuse.basic.min.js
vendored
Normal file
9
assets/js/fuse.basic.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
44
assets/js/highlight.min.js
vendored
44
assets/js/highlight.min.js
vendored
File diff suppressed because one or more lines are too long
6
assets/js/license.js
Normal file
6
assets/js/license.js
Normal file
@ -0,0 +1,6 @@
|
||||
/*
|
||||
PaperMod v7
|
||||
License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
|
||||
Copyright (c) 2020 nanxiaobei and adityatelange
|
||||
Copyright (c) 2021-2023 adityatelange
|
||||
*/
|
106
assets/js/papermod.js
Normal file
106
assets/js/papermod.js
Normal file
@ -0,0 +1,106 @@
|
||||
import * as params from '@params';
|
||||
|
||||
function scrollToTop() {
|
||||
const topButton = document.getElementById("top-link");
|
||||
|
||||
document.addEventListener('scroll', () => {
|
||||
if (document.body.scrollTop > 600 || document.documentElement.scrollTop > 600) {
|
||||
topButton.style.visibility = "visible";
|
||||
topButton.style.opacity = "1";
|
||||
} else {
|
||||
topButton.style.visibility = "hidden";
|
||||
topButton.style.opacity = "0";
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function themeToggle() {
|
||||
const themeButton = document.getElementById("theme-toggle");
|
||||
|
||||
themeButton.addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function showCodeCopyButtons() {
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
// td containing LineNos
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
// table containing LineNos and code
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
// code blocks not having highlight as parent class
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function openToc() {
|
||||
const toc = document.getElementById("toc");
|
||||
|
||||
if (!toc) return;
|
||||
|
||||
if (window.innerWidth > 1500 && window.innerHeight > 800) {
|
||||
toc.open = true;
|
||||
}
|
||||
}
|
||||
|
||||
function progressBar() {
|
||||
const bar = document.getElementById("progressBar");
|
||||
|
||||
if (!bar) return;
|
||||
|
||||
document.addEventListener('scroll', () => {
|
||||
let scrollPercent = document.documentElement.scrollTop / (document.documentElement.scrollHeight - window.innerHeight) * 100;
|
||||
if (scrollPercent >= 99) { scrollPercent = 0 };
|
||||
bar.style.setProperty("--scrollAmount", scrollPercent + '%');
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
if (params.scrollToTop) scrollToTop();
|
||||
if (params.themeToggle) themeToggle();
|
||||
if (params.showCodeCopyButtons) showCodeCopyButtons();
|
||||
openToc();
|
||||
progressBar();
|
12
assets/js/theme.js
Normal file
12
assets/js/theme.js
Normal file
@ -0,0 +1,12 @@
|
||||
function loadPreferredTheme() {
|
||||
const preferredTheme = localStorage.getItem("pref-theme");
|
||||
const isDarkTheme = document.body.classList.contains("dark");
|
||||
|
||||
if (preferredTheme === "light" && isDarkTheme) {
|
||||
document.body.classList.remove('dark')
|
||||
} else if (preferredTheme === "dark" && !isDarkTheme) {
|
||||
document.body.classList.add('dark')
|
||||
}
|
||||
}
|
||||
|
||||
loadPreferredTheme();
|
28
i18n/ar.yaml
Normal file
28
i18n/ar.yaml
Normal file
@ -0,0 +1,28 @@
|
||||
- id: prev_page
|
||||
translation: "السابق"
|
||||
|
||||
- id: next_page
|
||||
translation: "التالي"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "دقيقة واحدة"
|
||||
two: "دقيقتان"
|
||||
few: "بضع ثوان"
|
||||
zero: "الآن"
|
||||
other: "دقائق {{ .Count }}"
|
||||
|
||||
- id: toc
|
||||
translation: "فهرس المحتوى"
|
||||
|
||||
- id: translations
|
||||
translation: "ترجمات أخرى"
|
||||
|
||||
- id: home
|
||||
translation: "الصفحة الرئيسية"
|
||||
|
||||
- id: code_copied
|
||||
translation: "تم النسخ!"
|
||||
|
||||
- id: code_copy
|
||||
translation: "نسخ الكود"
|
39
i18n/be.yaml
Normal file
39
i18n/be.yaml
Normal file
@ -0,0 +1,39 @@
|
||||
- id: prev_page
|
||||
translation: "Папярэдняя"
|
||||
|
||||
- id: next_page
|
||||
translation: "Наступная"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
zero: "0 хвілін"
|
||||
one: "1 хвіліна"
|
||||
few: "{{ .Count }} хвіліны"
|
||||
many: "{{ .Count }} хвілін"
|
||||
other: "{{ .Count }} хвілін"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
zero: "няма слоў"
|
||||
one: "1 слова"
|
||||
few: "{{ .Count }} слова"
|
||||
many: "{{ .Count }} слоў"
|
||||
other: "{{ .Count }} слова"
|
||||
|
||||
- id: toc
|
||||
translation: "Змест"
|
||||
|
||||
- id: translations
|
||||
translation: "Пераклады"
|
||||
|
||||
- id: home
|
||||
translation: "Галоўная"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Рэдагаваць"
|
||||
|
||||
- id: code_copy
|
||||
translation: "капіяваць"
|
||||
|
||||
- id: code_copied
|
||||
translation: "скапіявана!"
|
16
i18n/bg.yaml
Normal file
16
i18n/bg.yaml
Normal file
@ -0,0 +1,16 @@
|
||||
- id: prev_page
|
||||
translation: "Предишна страница"
|
||||
|
||||
- id: next_page
|
||||
translation: "Следваща страница"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 мин"
|
||||
other: "{{ .Count }} мин"
|
||||
|
||||
- id: toc
|
||||
translation: "Съдържание"
|
||||
|
||||
- id: translations
|
||||
translation: "Преводи"
|
33
i18n/bn.yaml
Normal file
33
i18n/bn.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "পূর্ববর্তী"
|
||||
|
||||
- id: next_page
|
||||
translation: "পরবর্তী"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "১ মিনিট"
|
||||
other: "{{ .Count }} মিনিট"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "১ টি শব্দ"
|
||||
other: "{{ .Count }} টি শব্দ"
|
||||
|
||||
- id: toc
|
||||
translation: "সূচিপত্র"
|
||||
|
||||
- id: translations
|
||||
translation: "অনুবাদসমূহ"
|
||||
|
||||
- id: home
|
||||
translation: "হোম"
|
||||
|
||||
- id: edit_post
|
||||
translation: "সম্পাদনা করুন"
|
||||
|
||||
- id: code_copy
|
||||
translation: "কপি করুন"
|
||||
|
||||
- id: code_copied
|
||||
translation: "কপি হয়েছে!"
|
19
i18n/ca.yaml
Normal file
19
i18n/ca.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
- id: prev_page
|
||||
translation: "Pàgina anterior"
|
||||
|
||||
- id: next_page
|
||||
translation: "Pàgina següent"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: toc
|
||||
translation: "Taula de Continguts"
|
||||
|
||||
- id: translations
|
||||
translation: "Traduccions"
|
||||
|
||||
- id: home
|
||||
translation: "Inici"
|
25
i18n/ckb.yaml
Normal file
25
i18n/ckb.yaml
Normal file
@ -0,0 +1,25 @@
|
||||
- id: prev_page
|
||||
translation: "پەڕەی پێشتر"
|
||||
|
||||
- id: next_page
|
||||
translation: "پەڕەی دواتر"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 خولەک"
|
||||
other: "{{ .Count }} خولەک"
|
||||
|
||||
- id: toc
|
||||
translation: "پێڕست"
|
||||
|
||||
- id: translations
|
||||
translation: "وەرگێڕانەکان"
|
||||
|
||||
- id: home
|
||||
translation: "ماڵەوە"
|
||||
|
||||
- id: code_copy
|
||||
translation: "لەبەری بگرەوە"
|
||||
|
||||
- id: code_copied
|
||||
translation: "لەبەر گیرایەوە!"
|
33
i18n/cs.yaml
Normal file
33
i18n/cs.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Předchozí"
|
||||
|
||||
- id: next_page
|
||||
translation: "Další"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "slovo"
|
||||
other: "{{ .Count }} slov"
|
||||
|
||||
- id: toc
|
||||
translation: "Obsah"
|
||||
|
||||
- id: translations
|
||||
translation: "Překlady"
|
||||
|
||||
- id: home
|
||||
translation: "Domů"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Upravit"
|
||||
|
||||
- id: code_copy
|
||||
translation: "kopírovat"
|
||||
|
||||
- id: code_copied
|
||||
translation: "zkopírováno!"
|
28
i18n/da.yaml
Normal file
28
i18n/da.yaml
Normal file
@ -0,0 +1,28 @@
|
||||
- id: prev_page
|
||||
translation: "Forrige Side"
|
||||
|
||||
- id: next_page
|
||||
translation: "Næste Side"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: toc
|
||||
translation: "Indholdsfortegnelse"
|
||||
|
||||
- id: translations
|
||||
translation: "Oversættelser"
|
||||
|
||||
- id: home
|
||||
translation: "Start"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Rediger"
|
||||
|
||||
- id: code_copy
|
||||
translation: "kopier"
|
||||
|
||||
- id: code_copied
|
||||
translation: "kopieret!"
|
32
i18n/de.yaml
32
i18n/de.yaml
@ -1,5 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Vorherige Seite"
|
||||
translation: "Vorherige"
|
||||
|
||||
- id: next_page
|
||||
translation: "Nächste Seite"
|
||||
translation: "Nächste"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 Minute"
|
||||
other: "{{ .Count }} Minuten"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "Wort"
|
||||
other: "{{ .Count }} Wörter"
|
||||
|
||||
- id: toc
|
||||
translation: "Inhaltsverzeichnis"
|
||||
|
||||
- id: translations
|
||||
translation: "Übersetzungen"
|
||||
|
||||
- id: home
|
||||
translation: "Home"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Bearbeiten"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Kopieren"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Kopiert!"
|
||||
|
33
i18n/el.yaml
Normal file
33
i18n/el.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Προηγούμενο"
|
||||
|
||||
- id: next_page
|
||||
translation: "Επόμενο"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 λεπτό"
|
||||
other: "{{ .Count }} λεπτά"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "λέξη"
|
||||
other: "{{ .Count }} λέξεις"
|
||||
|
||||
- id: toc
|
||||
translation: "Πίνακας Περιεχομένων"
|
||||
|
||||
- id: translations
|
||||
translation: "Μεταφράσεις"
|
||||
|
||||
- id: home
|
||||
translation: "Αρχική"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Επεξεργασία"
|
||||
|
||||
- id: code_copy
|
||||
translation: "αντιγραφή"
|
||||
|
||||
- id: code_copied
|
||||
translation: "αντιγράφηκε!"
|
21
i18n/en.yaml
21
i18n/en.yaml
@ -1,16 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Prev Page"
|
||||
translation: "Prev"
|
||||
|
||||
- id: next_page
|
||||
translation: "Next Page"
|
||||
translation: "Next"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "word"
|
||||
other: "{{ .Count }} words"
|
||||
|
||||
- id: toc
|
||||
translation: "Table of Contents"
|
||||
|
||||
- id: translations
|
||||
translation: "Translations"
|
||||
|
||||
- id: home
|
||||
translation: "Home"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Edit"
|
||||
|
||||
- id: code_copy
|
||||
translation: "copy"
|
||||
|
||||
- id: code_copied
|
||||
translation: "copied!"
|
||||
|
25
i18n/eo.yaml
Normal file
25
i18n/eo.yaml
Normal file
@ -0,0 +1,25 @@
|
||||
- id: prev_page
|
||||
translation: "antaŭa paĝo"
|
||||
|
||||
- id: next_page
|
||||
translation: "sekva paĝo"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: toc
|
||||
translation: "Enhavo"
|
||||
|
||||
- id: translations
|
||||
translation: "tradukoj"
|
||||
|
||||
- id: home
|
||||
translation: "ĉefpaĝo"
|
||||
|
||||
- id: code_copy
|
||||
translation: "kopii"
|
||||
|
||||
- id: code_copied
|
||||
translation: "kopiite!"
|
32
i18n/es.yaml
32
i18n/es.yaml
@ -1,5 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Página anterior"
|
||||
translation: "Anterior"
|
||||
|
||||
- id: next_page
|
||||
translation: "Página siguiente"
|
||||
translation: "Siguiente"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "palabra"
|
||||
other: "{{ .Count }} palabras"
|
||||
|
||||
- id: toc
|
||||
translation: "Tabla de Contenidos"
|
||||
|
||||
- id: translations
|
||||
translation: "Traducciones"
|
||||
|
||||
- id: home
|
||||
translation: "Inicio"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Editar"
|
||||
|
||||
- id: code_copy
|
||||
translation: "copiar"
|
||||
|
||||
- id: code_copied
|
||||
translation: "¡copiado!"
|
||||
|
28
i18n/fa.yaml
Normal file
28
i18n/fa.yaml
Normal file
@ -0,0 +1,28 @@
|
||||
- id: prev_page
|
||||
translation: "صفحه قبلی"
|
||||
|
||||
- id: next_page
|
||||
translation: "صفحه بعدی"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "۱ دقیقه"
|
||||
other: "{{ .Count }} دقیقه"
|
||||
|
||||
- id: toc
|
||||
translation: "فهرست مطالب"
|
||||
|
||||
- id: translations
|
||||
translation: "ترجمه ها"
|
||||
|
||||
- id: home
|
||||
translation: "خانه"
|
||||
|
||||
- id: edit_post
|
||||
translation: "ویرایش"
|
||||
|
||||
- id: code_copy
|
||||
translation: "کپی"
|
||||
|
||||
- id: code_copied
|
||||
translation: "کپی شد!"
|
32
i18n/fr.yaml
32
i18n/fr.yaml
@ -1,5 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Page Précédente"
|
||||
translation: "Précédent"
|
||||
|
||||
- id: next_page
|
||||
translation: "Page Suivante"
|
||||
translation: "Suivant"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "mot"
|
||||
other: "{{ .Count }} mots"
|
||||
|
||||
- id: toc
|
||||
translation: "Table des matières"
|
||||
|
||||
- id: translations
|
||||
translation: "Traductions"
|
||||
|
||||
- id: home
|
||||
translation: "Accueil"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Modifier"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Copier"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Copié !"
|
||||
|
33
i18n/he.yaml
Normal file
33
i18n/he.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "קודם"
|
||||
|
||||
- id: next_page
|
||||
translation: "הבא"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "דקה אחת"
|
||||
other: "דקות {{ .Count }}"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "word"
|
||||
other: "מילים {{ .Count }} "
|
||||
|
||||
- id: toc
|
||||
translation: "תוכן העניינים"
|
||||
|
||||
- id: translations
|
||||
translation: "תרגומים"
|
||||
|
||||
- id: home
|
||||
translation: "בית"
|
||||
|
||||
- id: edit_post
|
||||
translation: "ערוך"
|
||||
|
||||
- id: code_copy
|
||||
translation: "העתק"
|
||||
|
||||
- id: code_copied
|
||||
translation: "!הועתק"
|
@ -1,14 +1,17 @@
|
||||
- id: prev_page
|
||||
translation: "पिछला पृष्ठ"
|
||||
translation: "पिछला"
|
||||
|
||||
- id: next_page
|
||||
translation: "अगला पृष्ठ"
|
||||
translation: "अगला"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "एक मिनट"
|
||||
other: "{{ .Count }} मिनट"
|
||||
|
||||
- id: edit_post
|
||||
translation: "सुधारें"
|
||||
|
||||
- id: toc
|
||||
translation: "विषय - सूची"
|
||||
|
||||
|
33
i18n/hr.yaml
Normal file
33
i18n/hr.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Prethodna stranica"
|
||||
|
||||
- id: next_page
|
||||
translation: "Sljedeća stranica"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 minuta"
|
||||
other: "{{ .Count }} minute"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "riječ"
|
||||
other: "{{ .Count }} riječi"
|
||||
|
||||
- id: toc
|
||||
translation: "Tablica Sadržaja"
|
||||
|
||||
- id: translations
|
||||
translation: "Prijevodi"
|
||||
|
||||
- id: home
|
||||
translation: "Početna stranica"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Promjeni"
|
||||
|
||||
- id: code_copy
|
||||
translation: "kopiraj"
|
||||
|
||||
- id: code_copied
|
||||
translation: "kopirano!"
|
16
i18n/hu.yaml
Normal file
16
i18n/hu.yaml
Normal file
@ -0,0 +1,16 @@
|
||||
- id: prev_page
|
||||
translation: "Előző oldal"
|
||||
|
||||
- id: next_page
|
||||
translation: "Következő oldal"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 perc"
|
||||
other: "{{ .Count }} perc"
|
||||
|
||||
- id: toc
|
||||
translation: "Tartalomjegyzék"
|
||||
|
||||
- id: translations
|
||||
translation: "Fordítások"
|
33
i18n/id.yaml
Normal file
33
i18n/id.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Sebelumnya"
|
||||
|
||||
- id: next_page
|
||||
translation: "Selanjutnya"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 menit"
|
||||
other: "{{ .Count }} menit"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "kata"
|
||||
other: "{{ .Count }} kata"
|
||||
|
||||
- id: toc
|
||||
translation: "Daftar isi"
|
||||
|
||||
- id: translations
|
||||
translation: "Terjemahan"
|
||||
|
||||
- id: home
|
||||
translation: "Beranda"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Sunting"
|
||||
|
||||
- id: code_copy
|
||||
translation: "salin"
|
||||
|
||||
- id: code_copied
|
||||
translation: "disalin!"
|
33
i18n/it.yaml
Normal file
33
i18n/it.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Precedente"
|
||||
|
||||
- id: next_page
|
||||
translation: "Successivo"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 minuto"
|
||||
other: "{{ .Count }} minuti"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "parola"
|
||||
other: "{{ .Count }} parole"
|
||||
|
||||
- id: toc
|
||||
translation: "Indice contenuti"
|
||||
|
||||
- id: translations
|
||||
translation: "Traduzioni"
|
||||
|
||||
- id: home
|
||||
translation: "Home"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Modifica"
|
||||
|
||||
- id: code_copy
|
||||
translation: "copia"
|
||||
|
||||
- id: code_copied
|
||||
translation: "copiato!"
|
32
i18n/ja.yaml
32
i18n/ja.yaml
@ -1,5 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "前のページ"
|
||||
translation: "前へ"
|
||||
|
||||
- id: next_page
|
||||
translation: "次のページ"
|
||||
translation: "次へ"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 分"
|
||||
other: "{{ .Count }} 分"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "文字"
|
||||
other: "{{ .Count }} 文字"
|
||||
|
||||
- id: toc
|
||||
translation: "目次"
|
||||
|
||||
- id: translations
|
||||
translation: "言語"
|
||||
|
||||
- id: home
|
||||
translation: "ホーム"
|
||||
|
||||
- id: edit_post
|
||||
translation: "編集"
|
||||
|
||||
- id: code_copy
|
||||
translation: "コピー"
|
||||
|
||||
- id: code_copied
|
||||
translation: "コピーされました!"
|
||||
|
28
i18n/ko.yaml
28
i18n/ko.yaml
@ -3,3 +3,31 @@
|
||||
|
||||
- id: next_page
|
||||
translation: "다음 페이지"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 분"
|
||||
other: "{{ .Count }} 분"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "단어"
|
||||
other: "{{ .Count }} 단어"
|
||||
|
||||
- id: toc
|
||||
translation: "목차"
|
||||
|
||||
- id: translations
|
||||
translation: "번역"
|
||||
|
||||
- id: home
|
||||
translation: "홈"
|
||||
|
||||
- id: edit_post
|
||||
translation: "편집"
|
||||
|
||||
- id: code_copy
|
||||
translation: "복사"
|
||||
|
||||
- id: code_copied
|
||||
translation: "복사 완료!"
|
||||
|
25
i18n/ku.yaml
Normal file
25
i18n/ku.yaml
Normal file
@ -0,0 +1,25 @@
|
||||
- id: prev_page
|
||||
translation: "Rûpela Paş"
|
||||
|
||||
- id: next_page
|
||||
translation: "Rûpela Pêş"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 xulek"
|
||||
other: "{{ .Count }} xulek"
|
||||
|
||||
- id: toc
|
||||
translation: "Pêrist"
|
||||
|
||||
- id: translations
|
||||
translation: "Wergeran"
|
||||
|
||||
- id: home
|
||||
translation: "Xanî"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Jê bigire"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Hat jêgirtin!"
|
25
i18n/mn.yaml
Normal file
25
i18n/mn.yaml
Normal file
@ -0,0 +1,25 @@
|
||||
- id: prev_page
|
||||
translation: "Ѳмнѳх"
|
||||
|
||||
- id: next_page
|
||||
translation: "Дараах"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 МИН"
|
||||
other: "{{ .Count }} МИН"
|
||||
|
||||
- id: toc
|
||||
translation: "Агуулга"
|
||||
|
||||
- id: translations
|
||||
translation: "Орчуулга"
|
||||
|
||||
- id: home
|
||||
translation: "Нүүр"
|
||||
|
||||
- id: code_copy
|
||||
translation: "хуулах"
|
||||
|
||||
- id: code_copied
|
||||
translation: "хуулсан!"
|
28
i18n/ms.yaml
Normal file
28
i18n/ms.yaml
Normal file
@ -0,0 +1,28 @@
|
||||
- id: prev_page
|
||||
translation: "Halaman Sebelumnya"
|
||||
|
||||
- id: next_page
|
||||
translation: "Halaman Seterusnya"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 minit"
|
||||
other: "{{ .Count }} minit"
|
||||
|
||||
- id: toc
|
||||
translation: "Isi Kandungan"
|
||||
|
||||
- id: translations
|
||||
translation: "Terjemahan"
|
||||
|
||||
- id: home
|
||||
translation: "Home"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Sunting"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Salin"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Disalin!"
|
33
i18n/nl.yaml
Normal file
33
i18n/nl.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Vorige"
|
||||
|
||||
- id: next_page
|
||||
translation: "Volgende"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "woord"
|
||||
other: "{{ .Count }} woorden"
|
||||
|
||||
- id: toc
|
||||
translation: "Inhoudsopgave"
|
||||
|
||||
- id: translations
|
||||
translation: "Vertalingen"
|
||||
|
||||
- id: home
|
||||
translation: "Startpagina"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Bewerk"
|
||||
|
||||
- id: code_copy
|
||||
translation: "kopieer"
|
||||
|
||||
- id: code_copied
|
||||
translation: "gekopieerd!"
|
33
i18n/no.yaml
Normal file
33
i18n/no.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Forrige Side"
|
||||
|
||||
- id: next_page
|
||||
translation: "Neste Side"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "ord"
|
||||
other: "{{ .Count }} ord"
|
||||
|
||||
- id: toc
|
||||
translation: "Innholdsfortegnelse"
|
||||
|
||||
- id: translations
|
||||
translation: "Oversettelser"
|
||||
|
||||
- id: home
|
||||
translation: "Hjem"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Rediger"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Kopier"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Kopiert!"
|
33
i18n/pl.yaml
Normal file
33
i18n/pl.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Poprzednia"
|
||||
|
||||
- id: next_page
|
||||
translation: "Następna"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "słowo"
|
||||
other: "{{ .Count }} słów"
|
||||
|
||||
- id: toc
|
||||
translation: "Spis treści"
|
||||
|
||||
- id: translations
|
||||
translation: "Tłumaczenia"
|
||||
|
||||
- id: home
|
||||
translation: "Strona Główna"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Edytuj"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Kopiuj"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Skopiowano!"
|
33
i18n/pt.yaml
Normal file
33
i18n/pt.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Página Anterior"
|
||||
|
||||
- id: next_page
|
||||
translation: "Próxima Página"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 minuto"
|
||||
other: "{{ .Count }} minutos"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "palavra"
|
||||
other: "{{ .Count }} palavras"
|
||||
|
||||
- id: toc
|
||||
translation: "Conteúdo"
|
||||
|
||||
- id: translations
|
||||
translation: "Traduções"
|
||||
|
||||
- id: home
|
||||
translation: "Início"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Editar"
|
||||
|
||||
- id: code_copy
|
||||
translation: "copiar"
|
||||
|
||||
- id: code_copied
|
||||
translation: "copiado!"
|
33
i18n/ro.yaml
Normal file
33
i18n/ro.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Înapoi"
|
||||
|
||||
- id: next_page
|
||||
translation: "Înainte"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 minut"
|
||||
other: "{{ .Count }} minute"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "cuvânt"
|
||||
other: "{{ .Count }} cuvinte"
|
||||
|
||||
- id: toc
|
||||
translation: "Sumar"
|
||||
|
||||
- id: translations
|
||||
translation: "Traduceri"
|
||||
|
||||
- id: home
|
||||
translation: "Acasă"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Editează"
|
||||
|
||||
- id: code_copy
|
||||
translation: "copiază"
|
||||
|
||||
- id: code_copied
|
||||
translation: "copiat!"
|
38
i18n/ru.yaml
38
i18n/ru.yaml
@ -1,5 +1,39 @@
|
||||
- id: prev_page
|
||||
translation: "Сюда"
|
||||
translation: "Предыдущая"
|
||||
|
||||
- id: next_page
|
||||
translation: "Туда"
|
||||
translation: "Следующая"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
zero: "0 минут"
|
||||
one: "1 минута"
|
||||
few: "{{ .Count }} минуты"
|
||||
many: "{{ .Count }} минут"
|
||||
other: "{{ .Count }} минута"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
zero: "0 слов"
|
||||
one: "1 слово"
|
||||
few: "{{ .Count }} слова"
|
||||
many: "{{ .Count }} слов"
|
||||
other: "{{ .Count }} слово"
|
||||
|
||||
- id: toc
|
||||
translation: "Оглавление"
|
||||
|
||||
- id: translations
|
||||
translation: "Переводы"
|
||||
|
||||
- id: home
|
||||
translation: "Главная"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Редактировать"
|
||||
|
||||
- id: code_copy
|
||||
translation: "копировать"
|
||||
|
||||
- id: code_copied
|
||||
translation: "скопировано!"
|
28
i18n/sv.yaml
Normal file
28
i18n/sv.yaml
Normal file
@ -0,0 +1,28 @@
|
||||
- id: prev_page
|
||||
translation: "Förra Sidan"
|
||||
|
||||
- id: next_page
|
||||
translation: "Nästa Sida"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: toc
|
||||
translation: "Innehållsförteckning"
|
||||
|
||||
- id: translations
|
||||
translation: "Översättningar"
|
||||
|
||||
- id: home
|
||||
translation: "Hem"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Redigera"
|
||||
|
||||
- id: code_copy
|
||||
translation: "kopiera"
|
||||
|
||||
- id: code_copied
|
||||
translation: "kopierad!"
|
33
i18n/sw.yaml
Normal file
33
i18n/sw.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Uliopita"
|
||||
|
||||
- id: next_page
|
||||
translation: "Ujao"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "dakika 1"
|
||||
other: "dakika {{ .Count }}"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "neno"
|
||||
other: "maneno {{ .Count }}"
|
||||
|
||||
- id: toc
|
||||
translation: "Jedwali la Yaliyomo"
|
||||
|
||||
- id: translations
|
||||
translation: "Tafsiri"
|
||||
|
||||
- id: home
|
||||
translation: "Mwanzo"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Hariri"
|
||||
|
||||
- id: code_copy
|
||||
translation: "nakili"
|
||||
|
||||
- id: code_copied
|
||||
translation: "nakiliwa!"
|
33
i18n/th.yaml
Normal file
33
i18n/th.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "ก่อนหน้า"
|
||||
|
||||
- id: next_page
|
||||
translation: "ถัดไป"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 นาที"
|
||||
other: "{{ .Count }} นาที"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "คำ"
|
||||
other: "{{ .Count }} คำ"
|
||||
|
||||
- id: toc
|
||||
translation: "สารบัญ"
|
||||
|
||||
- id: translations
|
||||
translation: "การแปล"
|
||||
|
||||
- id: home
|
||||
translation: "หน้าหลัก"
|
||||
|
||||
- id: edit_post
|
||||
translation: "แก้ไข"
|
||||
|
||||
- id: code_copy
|
||||
translation: "คัดลอก"
|
||||
|
||||
- id: code_copied
|
||||
translation: "คัดลอกแล้ว!"
|
33
i18n/tr.yaml
Normal file
33
i18n/tr.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Önceki"
|
||||
|
||||
- id: next_page
|
||||
translation: "Sonraki"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 dk"
|
||||
other: "{{ .Count }} dk"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "kelime"
|
||||
other: "{{ .Count }} kelime"
|
||||
|
||||
- id: toc
|
||||
translation: "İçindekiler"
|
||||
|
||||
- id: translations
|
||||
translation: "Çeviriler"
|
||||
|
||||
- id: home
|
||||
translation: "Anasayfa"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Düzenle"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Kopyala"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Kopyalandı!"
|
25
i18n/uk.yaml
Normal file
25
i18n/uk.yaml
Normal file
@ -0,0 +1,25 @@
|
||||
- id: prev_page
|
||||
translation: "Попередня"
|
||||
|
||||
- id: next_page
|
||||
translation: "Наступна"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 хвилина"
|
||||
other: "{{ .Count }} хвилин"
|
||||
|
||||
- id: toc
|
||||
translation: "Зміст"
|
||||
|
||||
- id: translations
|
||||
translation: "Переклади"
|
||||
|
||||
- id: home
|
||||
translation: "Головна"
|
||||
|
||||
- id: code_copy
|
||||
translation: "копіювати"
|
||||
|
||||
- id: code_copied
|
||||
translation: "скопійовано!"
|
20
i18n/uz.yaml
Normal file
20
i18n/uz.yaml
Normal file
@ -0,0 +1,20 @@
|
||||
- id: prev_page
|
||||
translation: "Oldingi sahifa"
|
||||
|
||||
- id: next_page
|
||||
translation: "Keyingi sahifa"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "Bir daqiqa"
|
||||
other: "{{ .Count }} daqiqa"
|
||||
|
||||
- id: toc
|
||||
translation: "Mundarija"
|
||||
|
||||
- id: translations
|
||||
translation: "Tarjimalar"
|
||||
|
||||
- id: home
|
||||
translation: "Bosh sahifa"
|
||||
|
33
i18n/vi.yaml
Normal file
33
i18n/vi.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Trang trước"
|
||||
|
||||
- id: next_page
|
||||
translation: "Trang tiếp theo"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 phút"
|
||||
other: "{{ .Count }} phút"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "từ"
|
||||
other: "{{ .Count }} từ"
|
||||
|
||||
- id: toc
|
||||
translation: "Mục lục"
|
||||
|
||||
- id: translations
|
||||
translation: "Bản dịch"
|
||||
|
||||
- id: home
|
||||
translation: "Trang chủ"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Chỉnh sửa"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Sao chép"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Đã sao chép!"
|
33
i18n/zh-tw.yaml
Normal file
33
i18n/zh-tw.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "上一頁"
|
||||
|
||||
- id: next_page
|
||||
translation: "下一頁"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 分鐘"
|
||||
other: "{{ .Count }} 分鐘"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "字"
|
||||
other: "{{ .Count }} 字"
|
||||
|
||||
- id: toc
|
||||
translation: "目錄"
|
||||
|
||||
- id: translations
|
||||
translation: "語言"
|
||||
|
||||
- id: home
|
||||
translation: "首頁"
|
||||
|
||||
- id: edit_post
|
||||
translation: "編輯"
|
||||
|
||||
- id: code_copy
|
||||
translation: "複製"
|
||||
|
||||
- id: code_copied
|
||||
translation: "已複製!"
|
17
i18n/zh.yaml
17
i18n/zh.yaml
@ -9,8 +9,25 @@
|
||||
one : "1 分钟"
|
||||
other: "{{ .Count }} 分钟"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "字"
|
||||
other: "{{ .Count }} 字"
|
||||
|
||||
- id: toc
|
||||
translation: "目录"
|
||||
|
||||
- id: translations
|
||||
translation: "语言"
|
||||
|
||||
- id: home
|
||||
translation: "主页"
|
||||
|
||||
- id: edit_post
|
||||
translation: "编辑"
|
||||
|
||||
- id: code_copy
|
||||
translation: "复制"
|
||||
|
||||
- id: code_copied
|
||||
translation: "已复制!"
|
||||
|
@ -1,3 +1,3 @@
|
||||
{{ define "main" }}
|
||||
{{- define "main" }}
|
||||
<div class="not-found">404</div>
|
||||
{{ end }}{{/* end main */}}
|
||||
{{- end }}{{/* end main */ -}}
|
||||
|
1
layouts/_default/_markup/render-image.html
Normal file
1
layouts/_default/_markup/render-image.html
Normal file
@ -0,0 +1 @@
|
||||
<img loading="lazy" src="{{ .Destination | safeURL }}" alt="{{ .Text }}" {{ with .Title}} title="{{ . }}" {{ end }} />
|
@ -1,10 +1,38 @@
|
||||
{{- define "main" }}
|
||||
|
||||
<header class="page-header">
|
||||
<h1>{{ .Title }}</h1>
|
||||
<h1>
|
||||
{{ .Title }}
|
||||
{{- if (.Param "ShowRssButtonInSectionTermList") }}
|
||||
{{- $rss := (.OutputFormats.Get "rss") }}
|
||||
{{- if (eq .Kind `page`) }}
|
||||
{{- $rss = (.Parent.OutputFormats.Get "rss") }}
|
||||
{{- end }}
|
||||
{{- with $rss }}
|
||||
<a href="{{ .RelPermalink }}" title="RSS" aria-label="RSS">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round" height="23">
|
||||
<path d="M4 11a9 9 0 0 1 9 9" />
|
||||
<path d="M4 4a16 16 0 0 1 16 16" />
|
||||
<circle cx="5" cy="19" r="1" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
{{ .Description }}
|
||||
</div>
|
||||
{{- end }}
|
||||
</header>
|
||||
|
||||
{{- $pages := where site.RegularPages "Type" "in" site.Params.mainSections }}
|
||||
|
||||
{{- if site.Params.ShowAllPagesInArchive }}
|
||||
{{- $pages = site.RegularPages }}
|
||||
{{- end }}
|
||||
|
||||
{{- range $pages.GroupByPublishDate "2006" }}
|
||||
{{- if ne .Key "0001" }}
|
||||
<div class="archive-year">
|
||||
@ -13,20 +41,24 @@
|
||||
</h2>
|
||||
{{- range .Pages.GroupByDate "January" }}
|
||||
<div class="archive-month">
|
||||
<h3 class="archive-month-header">{{- .Key }}<sup class="archive-count"> {{ len .Pages }}</h3>
|
||||
<h3 class="archive-month-header">{{- .Key }}<sup class="archive-count"> {{ len .Pages }}</sup></h3>
|
||||
<div class="archive-posts">
|
||||
{{- range .Pages }}
|
||||
{{- range .Pages }}
|
||||
{{- if eq .Kind "page" }}
|
||||
<div class="archive-entry">
|
||||
<h3 class="archive-entry-title">
|
||||
<h3 class="archive-entry-title entry-hint-parent">
|
||||
{{- .Title | markdownify }}
|
||||
{{- if .Draft }}
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="15" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
{{- end }}
|
||||
</h3>
|
||||
<div class="archive-meta">
|
||||
<time>{{ .Date.Format "January 2, 2006" }}</time>
|
||||
{{- if $.Site.Params.ShowReadingTime }} ·
|
||||
{{- $default_txt := print .ReadingTime " " "min" }}
|
||||
{{- i18n "read_time" .ReadingTime | default $default_txt }}{{ end }}
|
||||
{{- if or .Params.author .Site.Params.author }} · {{- .Params.author | default .Site.Params.author }}{{ end }}
|
||||
{{- partial "post_meta.html" . -}}
|
||||
</div>
|
||||
<a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a>
|
||||
</div>
|
||||
@ -39,4 +71,4 @@
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- end }}{{/* end main */}}
|
||||
{{- end }}{{/* end main */}}
|
||||
|
@ -1,18 +1,27 @@
|
||||
{{- if lt hugo.Version "0.112.4" }}
|
||||
{{- errorf "=> hugo v0.112.4 or greater is required for hugo-PaperMod to build " }}
|
||||
{{- end -}}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ .Site.Language }}">
|
||||
<html lang="{{ site.Language }}" dir="{{ .Language.LanguageDirection | default "auto" }}">
|
||||
|
||||
<head>
|
||||
{{- partial "head.html" . }}
|
||||
</head>
|
||||
|
||||
<body class="{{ if (and (eq .Kind `page` ) (ne .Layout `archives`)) }}single{{ else }}list
|
||||
{{- if .IsHome }} home{{ end }}{{ end }}{{- if eq $.Site.Params.defaultTheme `dark` }} dark{{ end }}" id="top">
|
||||
{{- partialCached "header.html" . .Page}}
|
||||
<body class="
|
||||
{{- if (or (ne .Kind `page` ) (eq .Layout `archives`) (eq .Layout `search`)) -}}
|
||||
{{- print "list" -}}
|
||||
{{- end -}}
|
||||
{{- if eq site.Params.defaultTheme `dark` -}}
|
||||
{{- print " dark" }}
|
||||
{{- end -}}
|
||||
" id="top">
|
||||
{{- partialCached "header.html" . .Page -}}
|
||||
<main class="main">
|
||||
{{- block "main" . }}
|
||||
{{- end }}
|
||||
{{- block "main" . }}{{ end }}
|
||||
</main>
|
||||
{{- partialCached "footer.html" . .Type }}
|
||||
{{ partialCached "footer.html" . .Layout .Kind (.Param "hideFooter") (.Param "ShowCodeCopyButtons") -}}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
|
7
layouts/_default/index.json
Normal file
7
layouts/_default/index.json
Normal file
@ -0,0 +1,7 @@
|
||||
{{- $.Scratch.Add "index" slice -}}
|
||||
{{- range site.RegularPages -}}
|
||||
{{- if and (not .Params.searchHidden) (ne .Layout `archives`) (ne .Layout `search`) }}
|
||||
{{- $.Scratch.Add "index" (dict "title" .Title "content" .Plain "permalink" .Permalink "summary" .Summary) -}}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- $.Scratch.Get "index" | jsonify -}}
|
@ -1,63 +1,94 @@
|
||||
{{- define "main" }}
|
||||
|
||||
{{- if (and .Site.Params.profileMode.enabled .IsHome) }}
|
||||
{{- if (and site.Params.profileMode.enabled .IsHome) }}
|
||||
{{- partial "index_profile.html" . }}
|
||||
{{- else }} {{/* if not profileMode */}}
|
||||
|
||||
{{- if not .IsHome | and .Title }}
|
||||
<header class="page-header">
|
||||
<h1>{{ .Title }}</h1>
|
||||
{{- partial "breadcrumbs.html" . }}
|
||||
<h1>
|
||||
{{ .Title }}
|
||||
{{- if and (or (eq .Kind `term`) (eq .Kind `section`)) (.Param "ShowRssButtonInSectionTermList") }}
|
||||
{{- with .OutputFormats.Get "rss" }}
|
||||
<a href="{{ .RelPermalink }}" title="RSS" aria-label="RSS">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round" height="23">
|
||||
<path d="M4 11a9 9 0 0 1 9 9" />
|
||||
<path d="M4 4a16 16 0 0 1 16 16" />
|
||||
<circle cx="5" cy="19" r="1" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
{{ .Description | markdownify }}
|
||||
</div>
|
||||
{{- end }}
|
||||
</header>
|
||||
{{- end }}
|
||||
|
||||
{{- $pages := .RegularPages }}
|
||||
{{- if .Content }}
|
||||
<div class="post-content">
|
||||
{{- if not (.Param "disableAnchoredHeadings") }}
|
||||
{{- partial "anchored_headings.html" .Content -}}
|
||||
{{- else }}{{ .Content }}{{ end }}
|
||||
</div>
|
||||
{{- end }}
|
||||
|
||||
{{- $pages := union .RegularPages .Sections }}
|
||||
|
||||
{{- if .IsHome }}
|
||||
{{- $pages = where site.RegularPages "Type" "in" site.Params.mainSections }}
|
||||
{{- end}}
|
||||
{{- $pages = where $pages "Params.hiddenInHomeList" "!=" "true" }}
|
||||
{{- end }}
|
||||
|
||||
{{ $paginator := .Paginate $pages }}
|
||||
{{- $paginator := .Paginate $pages }}
|
||||
|
||||
{{- if and .IsHome site.Params.homeInfoParams (eq $paginator.PageNumber 1) }}
|
||||
{{- partial "home_info.html" . }}
|
||||
{{- end }}
|
||||
|
||||
{{- $term := .Data.Term }}
|
||||
{{- range $index, $page := $paginator.Pages }}
|
||||
|
||||
{{- $class := "post-entry" }}
|
||||
{{- if (and $.IsHome (eq $paginator.PageNumber 1) (eq $index 0)) }}
|
||||
{{- if .Site.Params.homeInfoParams | or .Site.Params.disableSpecial1stPost}}
|
||||
{{- partial "home_info.html" . }}
|
||||
{{- else}}
|
||||
|
||||
{{- $user_preferred := or site.Params.disableSpecial1stPost site.Params.homeInfoParams }}
|
||||
{{- if (and $.IsHome (eq $paginator.PageNumber 1) (eq $index 0) (not $user_preferred)) }}
|
||||
{{- $class = "first-entry" }}
|
||||
{{- end }}
|
||||
{{- else if .Data.Term }}
|
||||
{{- else if $term }}
|
||||
{{- $class = "post-entry tag-entry" }}
|
||||
{{- end }}
|
||||
|
||||
<article class="{{ $class }}">
|
||||
{{- if .Params.cover.image }}
|
||||
<figure class="entry-cover">
|
||||
{{- if (or (fileExists (path.Join "static" .Params.cover.image)) (hasPrefix .Params.cover.image "http://") (hasPrefix .Params.cover.image "https://")) }}
|
||||
<img src="{{ .Params.cover.image | absURL }}" alt="{{ .Params.cover.alt | plainify }}">
|
||||
{{- else}}
|
||||
<img src="{{ .Permalink -}} {{- .Params.cover.image }}" alt="{{ .Params.cover.alt | plainify }}">
|
||||
{{- end}}
|
||||
</figure>
|
||||
{{- end }}
|
||||
{{- $isHidden := (.Param "cover.hiddenInList") | default (.Param "cover.hidden") | default false }}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsSingle" false "isHidden" $isHidden) }}
|
||||
<header class="entry-header">
|
||||
<h2>
|
||||
{{ .Title }}
|
||||
{{- if .Draft }}<div class="entry-isdraft"><sup> [draft]</sup></div>{{- end }}
|
||||
<h2 class="entry-hint-parent">
|
||||
{{- .Title }}
|
||||
{{- if .Draft }}
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
{{- end }}
|
||||
</h2>
|
||||
</header>
|
||||
{{- if (ne .Site.Params.hideSummary true)}}
|
||||
<section class="entry-content">
|
||||
<p>{{ .Summary | plainify | htmlUnescape }}...</p>
|
||||
</section>
|
||||
{{- if (ne (.Param "hideSummary") true) }}
|
||||
<div class="entry-content">
|
||||
<p>{{ .Summary | plainify | htmlUnescape }}{{ if .Truncated }}...{{ end }}</p>
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if not (.Param "hideMeta") }}
|
||||
<footer class="entry-footer">
|
||||
<time>{{ .Date.Format "January 2, 2006" }}</time>
|
||||
{{- if $.Site.Params.ShowReadingTime }} ·
|
||||
{{- $default_txt := print .ReadingTime " " "min" }}
|
||||
{{- i18n "read_time" .ReadingTime | default $default_txt }}{{ end }}
|
||||
{{- if or .Params.author .Site.Params.author }} · {{- .Params.author | default .Site.Params.author }}{{ end }}
|
||||
{{- partial "post_meta.html" . -}}
|
||||
</footer>
|
||||
{{- end }}
|
||||
<a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a>
|
||||
</article>
|
||||
{{- end }}
|
||||
@ -66,13 +97,25 @@
|
||||
<footer class="page-footer">
|
||||
<nav class="pagination">
|
||||
{{- if $paginator.HasPrev }}
|
||||
<a class="prev" href="{{ $paginator.Prev.URL }}">« {{ i18n "prev_page" }}</a>
|
||||
<a class="prev" href="{{ $paginator.Prev.URL | absURL }}">
|
||||
« {{ i18n "prev_page" }}
|
||||
{{- if (.Param "ShowPageNums") }}
|
||||
{{- sub $paginator.PageNumber 1 }}/{{ $paginator.TotalPages }}
|
||||
{{- end }}
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- if $paginator.HasNext }}
|
||||
<a class="next" href="{{ $paginator.Next.URL }}">{{ i18n "next_page" }} »</a>
|
||||
<a class="next" href="{{ $paginator.Next.URL | absURL }}">
|
||||
{{- i18n "next_page" }}
|
||||
{{- if (.Param "ShowPageNums") }}
|
||||
{{- add 1 $paginator.PageNumber }}/{{ $paginator.TotalPages }}
|
||||
{{- end }} »
|
||||
</a>
|
||||
{{- end }}
|
||||
</nav>
|
||||
</footer>
|
||||
{{- end }}
|
||||
{{end}}{{/* end profileMode */}}
|
||||
{{- end }}{{- /* end main */ -}}
|
||||
|
||||
{{- end }}{{/* end profileMode */}}
|
||||
|
||||
{{- end }}{{- /* end main */ -}}
|
||||
|
80
layouts/_default/rss.xml
Normal file
80
layouts/_default/rss.xml
Normal file
@ -0,0 +1,80 @@
|
||||
{{- /* Deprecate site.Author.email in favor of site.Params.author.email */}}
|
||||
{{- $authorEmail := "" }}
|
||||
{{- with site.Params.author }}
|
||||
{{- if reflect.IsMap . }}
|
||||
{{- with .email }}
|
||||
{{- $authorEmail = . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- with site.Author.email }}
|
||||
{{- $authorEmail = . }}
|
||||
{{- warnf "The author key in site configuration is deprecated. Use params.author.email instead." }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- /* Deprecate site.Author.name in favor of site.Params.author.name */}}
|
||||
{{- $authorName := "" }}
|
||||
{{- with site.Params.author }}
|
||||
{{- if reflect.IsMap . }}
|
||||
{{- with .name }}
|
||||
{{- $authorName = . }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- $authorName = . }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- with site.Author.name }}
|
||||
{{- $authorName = . }}
|
||||
{{- warnf "The author key in site configuration is deprecated. Use params.author.name instead." }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- $pctx := . }}
|
||||
{{- if .IsHome }}{{ $pctx = site }}{{ end }}
|
||||
{{- $pages := slice }}
|
||||
{{- if or $.IsHome $.IsSection }}
|
||||
{{- $pages = $pctx.RegularPages }}
|
||||
{{- else }}
|
||||
{{- $pages = $pctx.Pages }}
|
||||
{{- end }}
|
||||
{{- $limit := site.Config.Services.RSS.Limit }}
|
||||
{{- if ge $limit 1 }}
|
||||
{{- $pages = $pages | first $limit }}
|
||||
{{- end }}
|
||||
|
||||
{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
|
||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<title>{{ if eq .Title site.Title }}{{ site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ site.Title }}{{ end }}</title>
|
||||
<link rel="alternate" href="{{ (.OutputFormats.Get "HTML").Permalink }}" />
|
||||
<link rel="self" href="{{ (.OutputFormats.Get "RSS").Permalink }}" />
|
||||
<subtitle>Recent content {{ if ne .Title site.Title }}{{ with .Title }}in {{ . }} {{ end }}{{ end }}on {{ site.Title }}</subtitle>
|
||||
<id>{{ .Permalink }}</id>
|
||||
<generator uri="http://gohugo.io" version="{{ hugo.Version }}">Hugo</generator>
|
||||
<language>{{ site.Language.LanguageCode }}</language>
|
||||
<updated>{{ .Date.Format "2006-01-02T15:04:05Z07:00" | safeHTML }}</updated>
|
||||
<author>
|
||||
{{ with $authorName }}<name>{{ . }}</name>{{ end }}
|
||||
{{ with $authorEmail }}<name>{{ . }}</name>{{ end }}
|
||||
</author>
|
||||
{{ with site.Copyright }}<rights>{{ . }}</rights>{{ end }}
|
||||
|
||||
{{- range $pages }}
|
||||
{{- if and (ne .Layout `search`) (ne .Layout `archives`) }}
|
||||
<entry>
|
||||
<title>{{ .Title }}</title>
|
||||
<link rel="alternate" href="{{ .Permalink }}" />
|
||||
<id>{{ .Permalink }}</id>
|
||||
<published>{{ .Date.Format "2006-01-02T15:04:05Z07:00" | safeHTML }}</published>
|
||||
<updated>{{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" | safeHTML }}</updated>
|
||||
<summary type="html">{{ with .Description | html }}{{ . }}{{ else }}{{ .Summary | html }}{{ end -}}</summary>
|
||||
{{- if site.Params.ShowFullTextinRSS }}
|
||||
<content type="html">{{ (printf "<![CDATA[%s]]>" .Content) | safeHTML }}</content>
|
||||
{{- end }}
|
||||
</entry>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
</feed>
|
||||
|
||||
|
32
layouts/_default/search.html
Normal file
32
layouts/_default/search.html
Normal file
@ -0,0 +1,32 @@
|
||||
{{- define "main" }}
|
||||
|
||||
<header class="page-header">
|
||||
<h1>{{- (printf "%s " .Title ) | htmlUnescape -}}
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24" fill="none"
|
||||
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="11" cy="11" r="8"></circle>
|
||||
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
|
||||
</svg>
|
||||
</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
{{ .Description }}
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if not (.Param "hideMeta") }}
|
||||
<div class="post-meta">
|
||||
{{- partial "translation_list.html" . -}}
|
||||
</div>
|
||||
{{- end }}
|
||||
</header>
|
||||
|
||||
<div id="searchbox">
|
||||
<input id="searchInput" autofocus placeholder="{{ .Params.placeholder | default (printf "%s ↵" .Title) }}"
|
||||
aria-label="search" type="search" autocomplete="off" maxlength="64">
|
||||
<ul id="searchResults" aria-label="search results"></ul>
|
||||
<noscript>
|
||||
Enable JavaScript to use the search function.
|
||||
</noscript>
|
||||
</div>
|
||||
|
||||
{{- end }}{{/* end main */}}
|
@ -2,70 +2,67 @@
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<h1 class="post-title">
|
||||
{{ partial "breadcrumbs.html" . }}
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
{{ .Title }}
|
||||
{{- if .Draft }}<div class="entry-isdraft"><sup> [draft]</sup></div>{{- end }}
|
||||
</h1>
|
||||
{{- if .Params.hideMeta }}{{ else }}
|
||||
<div class="post-meta">
|
||||
<time>{{ .Date.Format "January 2, 2006" }}</time>
|
||||
{{- if $.Site.Params.ShowReadingTime -}} ·
|
||||
{{- $default_txt := print .ReadingTime " " "min" }}
|
||||
{{- i18n "read_time" .ReadingTime | default $default_txt }}{{ end }}
|
||||
{{- if or .Params.author .Site.Params.author }} · {{- .Params.author | default .Site.Params.author }}{{ end }}
|
||||
{{- if .IsTranslated -}} |
|
||||
<ul class="i18n_list">
|
||||
{{- i18n "translations" | default "Translations"}}:
|
||||
{{- range .Translations }}
|
||||
<li>
|
||||
<a href="{{ .Permalink }}">{{ .Language.LanguageName }}</a>
|
||||
</li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
{{- if .Draft }}
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="35" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
{{- end }}
|
||||
</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
{{ .Description }}
|
||||
</div>
|
||||
{{- end}}
|
||||
{{- end }}
|
||||
{{- if not (.Param "hideMeta") }}
|
||||
<div class="post-meta">
|
||||
{{- partial "post_meta.html" . -}}
|
||||
{{- partial "translation_list.html" . -}}
|
||||
{{- partial "edit_post.html" . -}}
|
||||
{{- partial "post_canonical.html" . -}}
|
||||
</div>
|
||||
<div class="post-meta">
|
||||
{{- partial "post_lastmod.html" . -}}
|
||||
</div>
|
||||
{{- end }}
|
||||
</header>
|
||||
{{- if .Params.cover.image }}
|
||||
<figure class="entry-cover">
|
||||
{{- if (or (fileExists (path.Join "static" .Params.cover.image)) (hasPrefix .Params.cover.image "http://") (hasPrefix .Params.cover.image "https://")) }}
|
||||
<img src="{{ .Params.cover.image | absURL }}" alt="{{ .Params.cover.alt | plainify }}">
|
||||
{{- else}}
|
||||
<img src="{{ .Permalink -}} {{- .Params.cover.image }}" alt="{{ .Params.cover.alt | plainify }}">
|
||||
{{- end}}
|
||||
<p>{{.Params.cover.caption | markdownify }}</p>
|
||||
</figure>
|
||||
{{- $isHidden := (.Param "cover.hiddenInSingle") | default (.Param "cover.hidden") | default false }}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsSingle" true "isHidden" $isHidden) }}
|
||||
{{- if (.Param "ShowToc") }}
|
||||
{{- partial "toc.html" . }}
|
||||
{{- end }}
|
||||
{{- if .Params.ShowToc }}
|
||||
<div class="toc">
|
||||
<details {{if .Params.TocOpen }} open{{ end }}>
|
||||
<summary>
|
||||
<div class="details">{{- i18n "toc" | default "Table of Contents" }}</div>
|
||||
</summary>
|
||||
<blockquote>
|
||||
{{- partial "toc.html" . }}
|
||||
</blockquote>
|
||||
</details>
|
||||
|
||||
{{- if .Content }}
|
||||
<div class="post-content">
|
||||
{{- if not (.Param "disableAnchoredHeadings") }}
|
||||
{{- partial "anchored_headings.html" .Content -}}
|
||||
{{- else }}{{ .Content }}{{ end }}
|
||||
</div>
|
||||
{{- end }}
|
||||
<div class="post-content">{{ .Content }}</div>
|
||||
|
||||
<footer class="post-footer">
|
||||
{{- if .Params.tags }}
|
||||
{{- $tags := .Language.Params.Taxonomies.tag | default "tags" }}
|
||||
<ul class="post-tags">
|
||||
{{- range .Params.tags }}
|
||||
{{- $href := print (absLangURL "tags/") (urlize .) }}
|
||||
<li><a href="{{ $href }}">{{ . }}</a></li>
|
||||
{{- range ($.GetTerms $tags) }}
|
||||
<li><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
{{- if (.Param "ShowPostNavLinks") }}
|
||||
{{- partial "post_nav_links.html" . }}
|
||||
{{- end }}
|
||||
{{- if (and .Site.Params.ShowShareButtons (ne .Params.disableShare true) ) }}
|
||||
{{- partial "share_icons.html" . }}
|
||||
{{- if (and site.Params.ShowShareButtons (ne .Params.disableShare true)) }}
|
||||
{{- partial "share_icons.html" . -}}
|
||||
{{- end }}
|
||||
</footer>
|
||||
|
||||
{{- if and ($.Site.Params.comments) (ne .Params.comments false) }}
|
||||
{{- if (.Param "comments") }}
|
||||
{{- partial "comments.html" . }}
|
||||
{{- end }}
|
||||
</article>
|
||||
|
||||
{{- end }}{{/* end main */}}
|
||||
{{- end }}{{/* end main */}}
|
||||
|
@ -1,8 +1,13 @@
|
||||
{{ define "main" }}
|
||||
{{- define "main" }}
|
||||
|
||||
{{- if .Title }}
|
||||
<header class="page-header">
|
||||
<h1>{{ .Title }}</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
{{ .Description }}
|
||||
</div>
|
||||
{{- end }}
|
||||
</header>
|
||||
{{- end }}
|
||||
|
||||
@ -11,7 +16,7 @@
|
||||
{{- range $key, $value := .Data.Terms.Alphabetical }}
|
||||
{{- $name := .Name }}
|
||||
{{- $count := .Count }}
|
||||
{{- with $.Site.GetPage (printf "/%s/%s" $type $name) }}
|
||||
{{- with site.GetPage (printf "/%s/%s" $type $name) }}
|
||||
<li>
|
||||
<a href="{{ .Permalink }}">{{ .Name }} <sup><strong><sup>{{ $count }}</sup></strong></sup> </a>
|
||||
</li>
|
||||
@ -19,4 +24,4 @@
|
||||
{{- end }}
|
||||
</ul>
|
||||
|
||||
{{ end }}{{/* end main */}}
|
||||
{{- end }}{{/* end main */ -}}
|
||||
|
2
layouts/partials/anchored_headings.html
Normal file
2
layouts/partials/anchored_headings.html
Normal file
@ -0,0 +1,2 @@
|
||||
{{- /* formats .Content headings by adding an anchor */ -}}
|
||||
{{ . | replaceRE "(<h[1-6] id=\"([^\"]+)\".+)(</h[1-6]+>)" "${1}<a hidden class=\"anchor\" aria-hidden=\"true\" href=\"#${2}\">#</a>${3}" | safeHTML }}
|
9
layouts/partials/author.html
Normal file
9
layouts/partials/author.html
Normal file
@ -0,0 +1,9 @@
|
||||
{{- if or .Params.author site.Params.author }}
|
||||
{{- $author := (.Params.author | default site.Params.author) }}
|
||||
{{- $author_type := (printf "%T" $author) }}
|
||||
{{- if (or (eq $author_type "[]string") (eq $author_type "[]interface {}")) }}
|
||||
{{- (delimit $author ", " ) }}
|
||||
{{- else }}
|
||||
{{- $author }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
19
layouts/partials/breadcrumbs.html
Normal file
19
layouts/partials/breadcrumbs.html
Normal file
@ -0,0 +1,19 @@
|
||||
{{- if (.Param "ShowBreadCrumbs") -}}
|
||||
<div class="breadcrumbs">
|
||||
{{- $url := replace .Parent.Permalink (printf "%s" site.BaseURL) "" }}
|
||||
{{- $lang_url := strings.TrimPrefix (printf "%s/" .Lang) $url -}}
|
||||
|
||||
<a href="{{ "" | absLangURL }}">{{ i18n "home" | default "Home" }}</a>
|
||||
{{- $scratch := newScratch }}
|
||||
{{- range $index, $element := split $lang_url "/" }}
|
||||
|
||||
{{- $scratch.Add "path" (printf "%s/" $element )}}
|
||||
{{- $bc_pg := site.GetPage ($scratch.Get "path") -}}
|
||||
|
||||
{{- if (and ($bc_pg) (gt (len . ) 0))}}
|
||||
{{- print " » " | safeHTML -}}<a href="{{ $bc_pg.Permalink }}">{{ $bc_pg.Name }}</a>
|
||||
{{- end }}
|
||||
|
||||
{{- end -}}
|
||||
</div>
|
||||
{{- end -}}
|
@ -1,5 +1,3 @@
|
||||
<!-- Comments area start -->
|
||||
<!--
|
||||
to add comments read => https://gohugo.io/content-management/comments/
|
||||
-->
|
||||
<!-- Comments area end -->
|
||||
{{- /* Comments area start */ -}}
|
||||
{{- /* to add comments read => https://gohugo.io/content-management/comments/ */ -}}
|
||||
{{- /* Comments area end */ -}}
|
||||
|
43
layouts/partials/cover.html
Normal file
43
layouts/partials/cover.html
Normal file
@ -0,0 +1,43 @@
|
||||
{{- with .cxt}} {{/* Apply proper context from dict */}}
|
||||
{{- if (and .Params.cover.image (not $.isHidden)) }}
|
||||
{{- $alt := (.Params.cover.alt | default .Params.cover.caption | plainify) }}
|
||||
{{- $loading := cond $.IsSingle "eager" "lazy" }}
|
||||
<figure class="entry-cover">
|
||||
{{- $responsiveImages := (.Params.cover.responsiveImages | default site.Params.cover.responsiveImages) | default true }}
|
||||
{{- $addLink := (and site.Params.cover.linkFullImages $.IsSingle) }}
|
||||
{{- $pageBundleCover := (.Resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }}
|
||||
{{- $globalResourcesCover := (resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }}
|
||||
{{- $cover := (or $pageBundleCover $globalResourcesCover)}}
|
||||
{{- if $cover -}}{{/* i.e it is present in page bundle */}}
|
||||
{{- if $addLink }}<a href="{{ (path.Join .RelPermalink .Params.cover.image) | absURL }}"
|
||||
rel="noopener noreferrer">{{ end -}}
|
||||
{{- $sizes := (slice "360" "480" "720" "1080" "1500") }}
|
||||
{{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") -}}
|
||||
{{- if hugo.IsExtended -}}
|
||||
{{- $processableFormats = $processableFormats | append "webp" -}}
|
||||
{{- end -}}
|
||||
{{- $prod := (hugo.IsProduction | or (eq site.Params.env "production")) }}
|
||||
{{- if (and (in $processableFormats $cover.MediaType.SubType) ($responsiveImages) (eq $prod true)) }}
|
||||
<img loading="{{$loading}}" srcset="{{- range $size := $sizes -}}
|
||||
{{- if (ge $cover.Width $size) -}}
|
||||
{{ printf "%s %s" (($cover.Resize (printf "%sx" $size)).Permalink) (printf "%sw ," $size) -}}
|
||||
{{ end }}
|
||||
{{- end -}}{{$cover.Permalink }} {{printf "%dw" ($cover.Width)}}"
|
||||
sizes="(min-width: 768px) 720px, 100vw" src="{{ $cover.Permalink }}" alt="{{ $alt }}"
|
||||
width="{{ $cover.Width }}" height="{{ $cover.Height }}">
|
||||
{{- else }}{{/* Unprocessable image or responsive images disabled */}}
|
||||
<img loading="{{$loading}}" src="{{ (path.Join .RelPermalink .Params.cover.image) | absURL }}" alt="{{ $alt }}">
|
||||
{{- end }}
|
||||
{{- else }}{{/* For absolute urls and external links, no img processing here */}}
|
||||
{{- if $addLink }}<a href="{{ (.Params.cover.image) | absURL }}"
|
||||
rel="noopener noreferrer">{{ end -}}
|
||||
<img loading="{{$loading}}" src="{{ (.Params.cover.image) | absURL }}" alt="{{ $alt }}">
|
||||
{{- end }}
|
||||
{{- if $addLink }}</a>{{ end -}}
|
||||
{{/* Display Caption */}}
|
||||
{{- if $.IsSingle }}
|
||||
{{ with .Params.cover.caption }}<p>{{ . | markdownify }}</p>{{- end }}
|
||||
{{- end }}
|
||||
</figure>
|
||||
{{- end }}{{/* End image */}}
|
||||
{{- end -}}{{/* End context */ -}}
|
8
layouts/partials/edit_post.html
Normal file
8
layouts/partials/edit_post.html
Normal file
@ -0,0 +1,8 @@
|
||||
{{- if and (or .Params.editPost.URL site.Params.editPost.URL) (not (.Param "editPost.disabled")) -}}
|
||||
{{- $fileUrlPath := path.Join .File.Path }}
|
||||
|
||||
{{- if or .Params.author site.Params.author (.Param "ShowReadingTime") (not .Date.IsZero) .IsTranslated }} | {{- end -}}
|
||||
<a href="{{ .Params.editPost.URL | default site.Params.editPost.URL }}{{ if .Params.editPost.appendFilePath | default ( site.Params.editPost.appendFilePath | default false ) }}/{{ $fileUrlPath }}{{ end }}" rel="noopener noreferrer">
|
||||
{{- .Params.editPost.Text | default (site.Params.editPost.Text | default (i18n "edit_post" | default "Edit")) -}}
|
||||
</a>
|
||||
{{- end }}
|
3
layouts/partials/extend_footer.html
Normal file
3
layouts/partials/extend_footer.html
Normal file
@ -0,0 +1,3 @@
|
||||
{{- /* Footer custom content area start */ -}}
|
||||
{{- /* Insert any custom code web-analytics, resources, etc. here */ -}}
|
||||
{{- /* Footer custom content area end */ -}}
|
4
layouts/partials/extend_head.html
Normal file
4
layouts/partials/extend_head.html
Normal file
@ -0,0 +1,4 @@
|
||||
{{- /* Head custom content area start */ -}}
|
||||
{{- /* Insert any custom code (web-analytics, resources, etc.) - it will appear in the <head></head> section of every page. */ -}}
|
||||
{{- /* Can be overwritten by partial with the same name in the global layouts. */ -}}
|
||||
{{- /* Head custom content area end */ -}}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user