mirror of
https://github.com/cotes2020/jekyll-theme-chirpy.git
synced 2025-12-20 22:53:17 +00:00
Compare commits
1257 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7efbed6a24 | ||
|
|
21d74f1183 | ||
|
|
d6d0098379 | ||
|
|
241bb4df78 | ||
|
|
82d8f2db98 | ||
|
|
9882244bd9 | ||
|
|
f243cbd858 | ||
|
|
d420b38329 | ||
|
|
ea2d238bd8 | ||
|
|
5234511a2f | ||
|
|
746a31e125 | ||
|
|
c45e031155 | ||
|
|
4a2b89d0b6 | ||
|
|
2a4fbf6a79 | ||
|
|
84ea68cab0 | ||
|
|
3ed5eb1ee0 | ||
|
|
60836af606 | ||
|
|
739345ac24 | ||
|
|
1a977a87a0 | ||
|
|
d1a5b57e4d | ||
|
|
2b9d379d70 | ||
|
|
bdee5d6b6d | ||
|
|
348f6bff8b | ||
|
|
7a3d624364 | ||
|
|
06f1c6f256 | ||
|
|
4a7f33f7bb | ||
|
|
e077d2911d | ||
|
|
5f2edb0914 | ||
|
|
911206be80 | ||
|
|
18808851a9 | ||
|
|
2bf87e0de7 | ||
|
|
f6d96ab2b8 | ||
|
|
59c55121c7 | ||
|
|
9f174d9088 | ||
|
|
5810bcd1d7 | ||
|
|
897b57bfb4 | ||
|
|
fd83462ea4 | ||
|
|
fa8a2a0ada | ||
|
|
7b7e69a44d | ||
|
|
e6e2984e77 | ||
|
|
d71711d2d3 | ||
|
|
50835b4c71 | ||
|
|
575dc87d83 | ||
|
|
753cd0499d | ||
|
|
b7e9f3ec34 | ||
|
|
42bf39e21c | ||
|
|
45c2a18884 | ||
|
|
3fd3c571b5 | ||
|
|
2574118f40 | ||
|
|
0e2d593b00 | ||
|
|
2bc3172444 | ||
|
|
55659315c6 | ||
|
|
bbd92d11cc | ||
|
|
475d181aac | ||
|
|
f49155f034 | ||
|
|
109725d2dc | ||
|
|
e3b01636ac | ||
|
|
b489da89ca | ||
|
|
2d56597571 | ||
|
|
97004ddc44 | ||
|
|
75ea77d574 | ||
|
|
bf3a34d054 | ||
|
|
5015fdecf3 | ||
|
|
de2dff354a | ||
|
|
3a022bc816 | ||
|
|
9b74070d45 | ||
|
|
af4102476e | ||
|
|
9d9e3bbca3 | ||
|
|
6f2d3ea2bd | ||
|
|
8417927264 | ||
|
|
ca39e15a78 | ||
|
|
e9c920641b | ||
|
|
0a55e1297b | ||
|
|
0465a985dc | ||
|
|
73e171b0fb | ||
|
|
726085c647 | ||
|
|
b97fa93ffd | ||
|
|
13a3c3c906 | ||
|
|
e78f67d354 | ||
|
|
b34661efd7 | ||
|
|
bb589e8d31 | ||
|
|
f079bb7f5b | ||
|
|
ac4b402f97 | ||
|
|
87a12be897 | ||
|
|
0614473893 | ||
|
|
273b389c51 | ||
|
|
204cb44dc3 | ||
|
|
f949bda15b | ||
|
|
b3005f4e1a | ||
|
|
14d3960ca0 | ||
|
|
4da7406dfe | ||
|
|
1a041e0443 | ||
|
|
7ec8425e03 | ||
|
|
52084f85d4 | ||
|
|
5c6df66324 | ||
|
|
3f9f5c79e8 | ||
|
|
aff7566774 | ||
|
|
4237d078fa | ||
|
|
806fa3aa1a | ||
|
|
ec69bea841 | ||
|
|
75a2504fd9 | ||
|
|
8542b57e8b | ||
|
|
ed9bda022d | ||
|
|
25a27056e0 | ||
|
|
a069960439 | ||
|
|
c574166b51 | ||
|
|
ff87349fe7 | ||
|
|
505e314a31 | ||
|
|
41b8f9f519 | ||
|
|
62bcd601fc | ||
|
|
414b8f97ce | ||
|
|
229c2a2e2b | ||
|
|
c4af75389a | ||
|
|
4f86b04a84 | ||
|
|
2a5c184373 | ||
|
|
7b43a83c40 | ||
|
|
f659109de2 | ||
|
|
b39c6b526c | ||
|
|
7819fd0843 | ||
|
|
ba397a21aa | ||
|
|
0d4103d47b | ||
|
|
54e1dbe325 | ||
|
|
37c976499e | ||
|
|
0fd4c0bd0f | ||
|
|
0da2f80dd4 | ||
|
|
e8ef69ad17 | ||
|
|
2eb4267cdd | ||
|
|
e4e76f0a11 | ||
|
|
e07e6d46d7 | ||
|
|
2bbfda79ad | ||
|
|
b0f4ae5eec | ||
|
|
8b0fbf5a83 | ||
|
|
2639f8ed45 | ||
|
|
926d1ca068 | ||
|
|
df8ff546ec | ||
|
|
c075e11a4e | ||
|
|
b6d1992f85 | ||
|
|
74ab6f8adc | ||
|
|
4fe145e980 | ||
|
|
a60e90791d | ||
|
|
fa3257873e | ||
|
|
1682ce9d7c | ||
|
|
29a8bc26bc | ||
|
|
83625644ea | ||
|
|
728094d1ba | ||
|
|
ce2f6f5abe | ||
|
|
c4da99c7ea | ||
|
|
73af59194a | ||
|
|
f6bf6d0864 | ||
|
|
bef2ac085e | ||
|
|
7c9fa68331 | ||
|
|
066c1cd039 | ||
|
|
98850e1e5d | ||
|
|
83eecdabcb | ||
|
|
a51d31c55a | ||
|
|
eb40f51c84 | ||
|
|
3bd881da70 | ||
|
|
aba9468b53 | ||
|
|
de6ec65932 | ||
|
|
c5f15a3af8 | ||
|
|
12ce8f9fa9 | ||
|
|
d81f836b06 | ||
|
|
52f5ee9cd3 | ||
|
|
b3c4d741b2 | ||
|
|
129c4b3fa6 | ||
|
|
fe18011f8a | ||
|
|
25ec7649cd | ||
|
|
ea6268d7a5 | ||
|
|
1967de1f1d | ||
|
|
c283e7782f | ||
|
|
9d97120197 | ||
|
|
016a9baddd | ||
|
|
d9e1d84f08 | ||
|
|
3210c59466 | ||
|
|
83f1c34f92 | ||
|
|
83bbe4ac93 | ||
|
|
6d99f5cc36 | ||
|
|
0c80552d77 | ||
|
|
e38309f3bd | ||
|
|
8cbbcfa26d | ||
|
|
003e7b60c9 | ||
|
|
7c23a4ebc5 | ||
|
|
2a4d67d65c | ||
|
|
414dd132ae | ||
|
|
f0266c1f78 | ||
|
|
7626e4d005 | ||
|
|
34499f0c92 | ||
|
|
aadf9393d5 | ||
|
|
2918da9f29 | ||
|
|
97b8dfeed6 | ||
|
|
ee88cec270 | ||
|
|
8da583d403 | ||
|
|
61fdbcb83a | ||
|
|
aca79c1007 | ||
|
|
fe203417d9 | ||
|
|
e90461aa3c | ||
|
|
6f6e309741 | ||
|
|
42a700aa37 | ||
|
|
7ec31e8948 | ||
|
|
b63b65d743 | ||
|
|
1719d81d00 | ||
|
|
fe7047959e | ||
|
|
d97f95fca0 | ||
|
|
39b81aa4e0 | ||
|
|
387f0ec64a | ||
|
|
c45f399e65 | ||
|
|
8225174cb5 | ||
|
|
8b4f99c87f | ||
|
|
6f97636fb9 | ||
|
|
bf199d779c | ||
|
|
6fec411c18 | ||
|
|
61d9c2247c | ||
|
|
0d9cec6abc | ||
|
|
6e6b6479f5 | ||
|
|
388efb1ae3 | ||
|
|
471e8c4018 | ||
|
|
3cd81e7128 | ||
|
|
b85f6330de | ||
|
|
111b82838d | ||
|
|
e8e4901e34 | ||
|
|
d96b8811a7 | ||
|
|
820ba62e9e | ||
|
|
3c7934abf0 | ||
|
|
02b7bd5095 | ||
|
|
474b4ba681 | ||
|
|
016399a6db | ||
|
|
60229ae334 | ||
|
|
b69d3d7edd | ||
|
|
002f02533d | ||
|
|
968c13ec7d | ||
|
|
4681df7151 | ||
|
|
7e6c667e7a | ||
|
|
09121c1d11 | ||
|
|
fe82cea576 | ||
|
|
1e5c025a1c | ||
|
|
712a9b2240 | ||
|
|
d921b981f7 | ||
|
|
b1453ccb0c | ||
|
|
f517b33960 | ||
|
|
4490ce4107 | ||
|
|
d0cf2a8dd5 | ||
|
|
5c6ec9d06b | ||
|
|
c3a840076e | ||
|
|
a2d01365de | ||
|
|
ecff5630a6 | ||
|
|
909d136b37 | ||
|
|
27f4bf07bc | ||
|
|
5cbaf24bcb | ||
|
|
af8986bf50 | ||
|
|
7a601715df | ||
|
|
3b89bf1df2 | ||
|
|
5df953f6c8 | ||
|
|
2b59326fa8 | ||
|
|
5021678250 | ||
|
|
8bc9d25434 | ||
|
|
0c9558de8a | ||
|
|
54ba8befbe | ||
|
|
4b6722124d | ||
|
|
babb4a0c5a | ||
|
|
511df11546 | ||
|
|
dd339aea2b | ||
|
|
269506b647 | ||
|
|
765af53b77 | ||
|
|
41ed331456 | ||
|
|
9a011e14d6 | ||
|
|
5f628767e0 | ||
|
|
808d3743e5 | ||
|
|
e8d20bf7b0 | ||
|
|
d6d03183ea | ||
|
|
bd374dd383 | ||
|
|
f2d285844e | ||
|
|
98d48f5da4 | ||
|
|
7754a71ff9 | ||
|
|
5ea3d0f496 | ||
|
|
7887b5ab62 | ||
|
|
937b22316a | ||
|
|
8440d42984 | ||
|
|
6fa1777eb0 | ||
|
|
5a191e79af | ||
|
|
72700be7dd | ||
|
|
d7bcb40cde | ||
|
|
09e4ad245b | ||
|
|
09f9305d4c | ||
|
|
7a3d743419 | ||
|
|
d2190c726f | ||
|
|
8e73a91d25 | ||
|
|
8f2b42b1b3 | ||
|
|
e01eb8af14 | ||
|
|
9306c7b39e | ||
|
|
ed6dc539ef | ||
|
|
8de1abda6b | ||
|
|
4b6ccbcbcc | ||
|
|
ab16fdc7fc | ||
|
|
bffaf6374f | ||
|
|
ca41c7ebff | ||
|
|
7651d2851b | ||
|
|
5561cd86b5 | ||
|
|
7fb0ee0bed | ||
|
|
7efd2f8aa2 | ||
|
|
ec98f07aca | ||
|
|
e7426ec67e | ||
|
|
5fc428353c | ||
|
|
9de95bf089 | ||
|
|
fa9879b5f1 | ||
|
|
7fd15a285f | ||
|
|
8734d1c1a3 | ||
|
|
5b5a3865ac | ||
|
|
fe2a3cdf51 | ||
|
|
4e7bf00ee9 | ||
|
|
773d3b1263 | ||
|
|
b0d5956f5a | ||
|
|
e50343b06b | ||
|
|
b3de722778 | ||
|
|
782a930fdf | ||
|
|
da7d7e25b6 | ||
|
|
f6e9a3fccf | ||
|
|
ae2669fedc | ||
|
|
48f14e39ac | ||
|
|
6774e0e1fb | ||
|
|
8134209aa2 | ||
|
|
c0e3e61fa7 | ||
|
|
e107a2e759 | ||
|
|
df8185f887 | ||
|
|
339293d0d7 | ||
|
|
1fd665bf49 | ||
|
|
e48d66e525 | ||
|
|
647eea8dbd | ||
|
|
1c330f403c | ||
|
|
b6a1a4172e | ||
|
|
3c44a1ff71 | ||
|
|
e7dee2a589 | ||
|
|
a6ce765082 | ||
|
|
294e2985c1 | ||
|
|
5de6f17754 | ||
|
|
d96fa5aa0c | ||
|
|
6852ceb280 | ||
|
|
f904e8cd48 | ||
|
|
81b9f7a9ac | ||
|
|
916fbf4a2c | ||
|
|
d9d7848f03 | ||
|
|
70662a0365 | ||
|
|
3432413020 | ||
|
|
fd5df7e1a1 | ||
|
|
65f722fb04 | ||
|
|
1082d041ca | ||
|
|
eac3f9b434 | ||
|
|
304d75c500 | ||
|
|
fb13e3219b | ||
|
|
5511b2883f | ||
|
|
76712c09cd | ||
|
|
80cb0b3717 | ||
|
|
d2fb98b3e5 | ||
|
|
39da11e3f3 | ||
|
|
fec5214b45 | ||
|
|
827f84c7e8 | ||
|
|
3ffd19d81d | ||
|
|
49bb93cc0c | ||
|
|
8bcdd87891 | ||
|
|
7cc36c5287 | ||
|
|
3878815852 | ||
|
|
e55ebadeb2 | ||
|
|
0c5b697fd3 | ||
|
|
f1d9e99bc0 | ||
|
|
b288587c1c | ||
|
|
f35b147b28 | ||
|
|
163c5761e9 | ||
|
|
4023be9bef | ||
|
|
0dcd39d491 | ||
|
|
45c58d8f4c | ||
|
|
e993ac872a | ||
|
|
21c8c2b70d | ||
|
|
43323abdfe | ||
|
|
b78a2d85bd | ||
|
|
940b2810e9 | ||
|
|
b405a58838 | ||
|
|
d792a2f6af | ||
|
|
22d4275f75 | ||
|
|
3fa1bf3054 | ||
|
|
ad137fa294 | ||
|
|
20b7fe3a53 | ||
|
|
5eb329f36c | ||
|
|
378b65a061 | ||
|
|
2fed338ce6 | ||
|
|
232927c47c | ||
|
|
5b97d3fd25 | ||
|
|
856ef11487 | ||
|
|
b0329775fc | ||
|
|
971fe03ec3 | ||
|
|
96af7291ea | ||
|
|
4c45f3788e | ||
|
|
baad801066 | ||
|
|
7f18cdc1fd | ||
|
|
fd0f983bbe | ||
|
|
35cadf969d | ||
|
|
cc6398c104 | ||
|
|
5d6e8c5ef6 | ||
|
|
20caace68a | ||
|
|
ac1731d123 | ||
|
|
106c981bac | ||
|
|
d127183b97 | ||
|
|
54124d5134 | ||
|
|
76a1b6a068 | ||
|
|
91308ae567 | ||
|
|
12f1e6fe89 | ||
|
|
94e81447af | ||
|
|
b7ad538ce2 | ||
|
|
097bb23530 | ||
|
|
2bd6efa95a | ||
|
|
135a16f13e | ||
|
|
6d35f5f8da | ||
|
|
42c44a8bc1 | ||
|
|
138c537010 | ||
|
|
59e955745f | ||
|
|
4f590e2bba | ||
|
|
6900d9f2bc | ||
|
|
30787fc4cf | ||
|
|
5402523ae5 | ||
|
|
156c02a91a | ||
|
|
6ca66366d5 | ||
|
|
0740b857c6 | ||
|
|
58928dbc90 | ||
|
|
0542b5149c | ||
|
|
e68108014a | ||
|
|
efe75adf27 | ||
|
|
3e64400246 | ||
|
|
f581b4395f | ||
|
|
96a16c868e | ||
|
|
67d51d5df2 | ||
|
|
9cefe58993 | ||
|
|
b8d1bcd3de | ||
|
|
a60a4562bf | ||
|
|
03e4f575ba | ||
|
|
b58cab1c07 | ||
|
|
da05d395fb | ||
|
|
f0a2e2f4e1 | ||
|
|
c57238975a | ||
|
|
c2c503f633 | ||
|
|
5607a1755a | ||
|
|
5a575613bb | ||
|
|
00ad357033 | ||
|
|
dd9d5a7207 | ||
|
|
d2bbcb791f | ||
|
|
4c1c8d8b0e | ||
|
|
2103191b2f | ||
|
|
5d85ccb994 | ||
|
|
7fef3fafec | ||
|
|
887859dd32 | ||
|
|
42fe8f5d21 | ||
|
|
171463d76d | ||
|
|
dd264e793c | ||
|
|
004ab6c56a | ||
|
|
3969b28743 | ||
|
|
5f31fbcf72 | ||
|
|
4986db1204 | ||
|
|
508d3c5c6a | ||
|
|
35e013f7fd | ||
|
|
e52dc9551c | ||
|
|
5753118d8b | ||
|
|
5295bbf4f9 | ||
|
|
cfd05d1aa5 | ||
|
|
6c4d0e0def | ||
|
|
15cfa84ddb | ||
|
|
08a993be90 | ||
|
|
2b66ad0441 | ||
|
|
0f6b170e24 | ||
|
|
4df4f7f8db | ||
|
|
09f1ded60c | ||
|
|
70e089c392 | ||
|
|
dc42b6f800 | ||
|
|
3685685b28 | ||
|
|
51688ccc9f | ||
|
|
3db6de0abb | ||
|
|
b27258899b | ||
|
|
cfe9029cd1 | ||
|
|
2c5e67f02b | ||
|
|
7a392510e6 | ||
|
|
85fe258b20 | ||
|
|
55fd119d35 | ||
|
|
fc36f8b66d | ||
|
|
a5d38e7fbc | ||
|
|
a24545ed60 | ||
|
|
66e655f09b | ||
|
|
c3b2151ca0 | ||
|
|
3d8184602b | ||
|
|
c344926886 | ||
|
|
756465d621 | ||
|
|
7b0e9a6803 | ||
|
|
f043123f23 | ||
|
|
ca181422a6 | ||
|
|
4845f6ef14 | ||
|
|
031e878620 | ||
|
|
166c05bcd1 | ||
|
|
0890147423 | ||
|
|
323a888160 | ||
|
|
7788a140f2 | ||
|
|
1b379e3870 | ||
|
|
640bde95c4 | ||
|
|
1a93d5e557 | ||
|
|
b8c3ea221e | ||
|
|
4a2016a9e3 | ||
|
|
a6c73e8f4f | ||
|
|
f8f4dd889e | ||
|
|
96e7cd79af | ||
|
|
22c12a4d34 | ||
|
|
2cef631385 | ||
|
|
9620eddd12 | ||
|
|
dbf86a2309 | ||
|
|
2d02a6415d | ||
|
|
67bd6679b9 | ||
|
|
f2a2792405 | ||
|
|
837d0778b6 | ||
|
|
97ae2bf6c0 | ||
|
|
e7b377cf63 | ||
|
|
b0815b53c0 | ||
|
|
4dd0c6d16f | ||
|
|
57a76097d6 | ||
|
|
22e2367b45 | ||
|
|
b44bf78f10 | ||
|
|
948356d7d6 | ||
|
|
7337fa5f20 | ||
|
|
44acea2f5d | ||
|
|
65a38c8f22 | ||
|
|
b91b6711b0 | ||
|
|
aeb2d57b60 | ||
|
|
2406ce1dc8 | ||
|
|
bec9246823 | ||
|
|
adaefc02e9 | ||
|
|
ee7266ff0d | ||
|
|
cad62feb91 | ||
|
|
b85cb39388 | ||
|
|
4360e2938c | ||
|
|
ecf31ff308 | ||
|
|
37344ef0df | ||
|
|
9e2a4fc8c9 | ||
|
|
fc71289dc8 | ||
|
|
c8fd0d728d | ||
|
|
ef2aa525d5 | ||
|
|
1fe0b2958b | ||
|
|
e466a643d5 | ||
|
|
f7ec9cd24a | ||
|
|
3342abc9e6 | ||
|
|
d47ec035d3 | ||
|
|
a403ffee42 | ||
|
|
d315bf57e7 | ||
|
|
75176522e3 | ||
|
|
ebb3dc940c | ||
|
|
c02c9c6a04 | ||
|
|
3a4316b29b | ||
|
|
f4b2dfe8b4 | ||
|
|
09e8eb4274 | ||
|
|
5ca0966c41 | ||
|
|
d919f833f1 | ||
|
|
df81012e28 | ||
|
|
09742d40dd | ||
|
|
259d0deabc | ||
|
|
cf6c8e9b3a | ||
|
|
c64e587335 | ||
|
|
415f11ecb8 | ||
|
|
5dc830d11e | ||
|
|
7579644e8d | ||
|
|
4cff83268b | ||
|
|
1487ae5284 | ||
|
|
697c584b48 | ||
|
|
089a19bc9e | ||
|
|
007d242e87 | ||
|
|
6447ffaf59 | ||
|
|
790cf30376 | ||
|
|
45adf4aac2 | ||
|
|
b1377ac694 | ||
|
|
cf8dae9454 | ||
|
|
9f5e579596 | ||
|
|
99e468cae5 | ||
|
|
4fde37e879 | ||
|
|
19debc4add | ||
|
|
afcf0bde22 | ||
|
|
36f55f091d | ||
|
|
e2003f2b03 | ||
|
|
563e8085e8 | ||
|
|
902546cf4d | ||
|
|
e06d237eae | ||
|
|
6220d09ffb | ||
|
|
3c91dc1f6f | ||
|
|
6a65f3a7f7 | ||
|
|
57feaa660e | ||
|
|
db9cfc270b | ||
|
|
3caacbee61 | ||
|
|
b518c9d3bc | ||
|
|
1c758cf4a2 | ||
|
|
df3a703988 | ||
|
|
12407bbfc0 | ||
|
|
55fce7574c | ||
|
|
833b6c9d5c | ||
|
|
a34b77969f | ||
|
|
707466b1df | ||
|
|
602e98448d | ||
|
|
0bf7a8f1d9 | ||
|
|
a7361717a6 | ||
|
|
e880448ba5 | ||
|
|
c28b6ce7d1 | ||
|
|
b7cc22983f | ||
|
|
a1551cd740 | ||
|
|
35c4d480ed | ||
|
|
b5c26fed08 | ||
|
|
2dc2175723 | ||
|
|
2f79b8d408 | ||
|
|
cbe6c3fb7b | ||
|
|
bb1188a01a | ||
|
|
406ed520cb | ||
|
|
1d7a134dd5 | ||
|
|
421db9dc92 | ||
|
|
a5b8e7862b | ||
|
|
30d3249782 | ||
|
|
fa15aebbca | ||
|
|
565ad9229c | ||
|
|
3d6304efd8 | ||
|
|
80fd684577 | ||
|
|
80980465d7 | ||
|
|
2858a082a3 | ||
|
|
9b0b7d7772 | ||
|
|
952b1f493b | ||
|
|
a887f1d57d | ||
|
|
945e8d1953 | ||
|
|
a400dc9501 | ||
|
|
6a4169fc03 | ||
|
|
95b4b453e6 | ||
|
|
de14c00570 | ||
|
|
f4d4065b1c | ||
|
|
52f854a2da | ||
|
|
38f20e8119 | ||
|
|
1728d697e6 | ||
|
|
d9863d6a02 | ||
|
|
b460d03c3b | ||
|
|
a053c454e4 | ||
|
|
77c2009658 | ||
|
|
9844b964a8 | ||
|
|
063b2a6651 | ||
|
|
e5df04dd59 | ||
|
|
9e9278ce30 | ||
|
|
30dfc6fb7e | ||
|
|
1ce350e33e | ||
|
|
50c88f7205 | ||
|
|
387fc67102 | ||
|
|
414715fc47 | ||
|
|
1bb54096f4 | ||
|
|
abb548fcee | ||
|
|
ed93fbdfde | ||
|
|
4ad0a76789 | ||
|
|
89b76dc2a0 | ||
|
|
395b24736a | ||
|
|
fa0155de6f | ||
|
|
0bffb276fe | ||
|
|
2417db656c | ||
|
|
e5bf234835 | ||
|
|
2dfdb66e0a | ||
|
|
da9881a47f | ||
|
|
c68a937e01 | ||
|
|
4001ef7cba | ||
|
|
1b16b152df | ||
|
|
e607e5fe86 | ||
|
|
d761d340a8 | ||
|
|
f411ba33d8 | ||
|
|
f722757f6f | ||
|
|
beabb36d7f | ||
|
|
42ff0f2282 | ||
|
|
34631a0c30 | ||
|
|
53b0329e5a | ||
|
|
2877896b9e | ||
|
|
7ef88c8b8f | ||
|
|
2acf14ecf0 | ||
|
|
603705f20e | ||
|
|
0267ad8d40 | ||
|
|
c0b8c089c2 | ||
|
|
a603aac8e8 | ||
|
|
91ed3d4649 | ||
|
|
20454e5a57 | ||
|
|
aadda0347c | ||
|
|
5e9a7b319e | ||
|
|
2537283beb | ||
|
|
7dc7a7efc8 | ||
|
|
39b09b97c0 | ||
|
|
8d164c2e6e | ||
|
|
1a94b1889f | ||
|
|
6d07d4738b | ||
|
|
6e0afcf9e8 | ||
|
|
952927762a | ||
|
|
3c3598e8b1 | ||
|
|
9d9bca5e3b | ||
|
|
03248f5bff | ||
|
|
e2c288a925 | ||
|
|
b80d95dcdd | ||
|
|
72ba1f7849 | ||
|
|
46d80cbf9a | ||
|
|
0213331a16 | ||
|
|
780af9ac5f | ||
|
|
b513c0764d | ||
|
|
57e8c6e594 | ||
|
|
49dc866bd8 | ||
|
|
b7a483680e | ||
|
|
7ecb377c9b | ||
|
|
a83e4c1b30 | ||
|
|
0b29c0321f | ||
|
|
2e76300d04 | ||
|
|
20f2ff4b23 | ||
|
|
899609a291 | ||
|
|
f56852a700 | ||
|
|
c969eaa040 | ||
|
|
ab8cef9174 | ||
|
|
b3ff6c79a6 | ||
|
|
7f8c19d480 | ||
|
|
d52fa88337 | ||
|
|
bea170cff0 | ||
|
|
961ebb545b | ||
|
|
797450174d | ||
|
|
f0a2113a9f | ||
|
|
c98a41317f | ||
|
|
5f1e6e9350 | ||
|
|
65dbea9d3b | ||
|
|
fd97067ec3 | ||
|
|
d5413a954f | ||
|
|
9359d6ef11 | ||
|
|
6d1d440c00 | ||
|
|
08ec6cd3b5 | ||
|
|
3ecb59deb1 | ||
|
|
885ed44646 | ||
|
|
d31e677ca0 | ||
|
|
bf3b539d6d | ||
|
|
ab927e9954 | ||
|
|
d5e08b05ab | ||
|
|
eb247b8886 | ||
|
|
4fa7c6af6e | ||
|
|
2cce0be8af | ||
|
|
cf7d8a45ba | ||
|
|
6d254af55f | ||
|
|
a4dc39f70e | ||
|
|
84bb4d0c4b | ||
|
|
e8296fe2e4 | ||
|
|
6a45d7ccd1 | ||
|
|
5df67616be | ||
|
|
f0ce5ceb71 | ||
|
|
a9acaa669d | ||
|
|
72e8ffafa6 | ||
|
|
52f4012463 | ||
|
|
d5407181a4 | ||
|
|
4ed6988be3 | ||
|
|
3f2d400f16 | ||
|
|
e84331b26a | ||
|
|
efd8d44b12 | ||
|
|
a71659ed27 | ||
|
|
b14e97a92d | ||
|
|
826b7dca1a | ||
|
|
d720d0f66c | ||
|
|
c1b8e28601 | ||
|
|
aa54e901b1 | ||
|
|
a03149cd40 | ||
|
|
588fbbbec7 | ||
|
|
6341752986 | ||
|
|
11bcd7027d | ||
|
|
4a0242e496 | ||
|
|
48e4c7e6d3 | ||
|
|
991f53f8b2 | ||
|
|
7a5ad10bdc | ||
|
|
3b5441a1c2 | ||
|
|
a1fca3706f | ||
|
|
49346fd3c6 | ||
|
|
bff97df3b5 | ||
|
|
dbe4c3d42f | ||
|
|
fad8a23b87 | ||
|
|
834de0f02c | ||
|
|
1ff38722a2 | ||
|
|
1c0cd6b6b0 | ||
|
|
4973a61e39 | ||
|
|
99c12f6cd4 | ||
|
|
042cec33d8 | ||
|
|
8c940dbb96 | ||
|
|
9636612755 | ||
|
|
18f6c6ac4e | ||
|
|
88aa81dfe5 | ||
|
|
1b47c95cf6 | ||
|
|
aa7309c136 | ||
|
|
d162167580 | ||
|
|
6688e27787 | ||
|
|
89751c8e9f | ||
|
|
eae506113b | ||
|
|
3400568b09 | ||
|
|
d2bb423220 | ||
|
|
c6b0a8247b | ||
|
|
8ce8fc780f | ||
|
|
ac2ec585f6 | ||
|
|
338eddb454 | ||
|
|
3573ccb7a3 | ||
|
|
82b3d061af | ||
|
|
fc94a8e36b | ||
|
|
efc8c60b5d | ||
|
|
3e79ad6300 | ||
|
|
273f2e152d | ||
|
|
d0a23c21ee | ||
|
|
89200f3109 | ||
|
|
136773481e | ||
|
|
de7d2fab7c | ||
|
|
1b1fa93cf6 | ||
|
|
7e31ba4103 | ||
|
|
34b7a80a78 | ||
|
|
ba6c7eceec | ||
|
|
5669f792a7 | ||
|
|
f864b5c324 | ||
|
|
c8ff81e79a | ||
|
|
2bcaabdab4 | ||
|
|
4faa595b04 | ||
|
|
d7443aad5d | ||
|
|
b2beaa0f4c | ||
|
|
83a7878043 | ||
|
|
94b99350fc | ||
|
|
6dc9cdfa25 | ||
|
|
fa56ea48c3 | ||
|
|
7d3e25c90d | ||
|
|
6c9ab6e5f8 | ||
|
|
91da99282d | ||
|
|
413a86277b | ||
|
|
1879b94f3d | ||
|
|
7b5f7086b7 | ||
|
|
a8b8a379f6 | ||
|
|
eacad65cbb | ||
|
|
7a87ab4d05 | ||
|
|
c4be7c0cd6 | ||
|
|
c9765e6923 | ||
|
|
5c04d4e45b | ||
|
|
4d969ca0c5 | ||
|
|
4a084eb681 | ||
|
|
adc117972a | ||
|
|
8e84c6b9d6 | ||
|
|
d8a42d9bb4 | ||
|
|
c1b20d8f71 | ||
|
|
08ce9f6c7c | ||
|
|
0b4e40bcdf | ||
|
|
9ae2aee222 | ||
|
|
ec522e5219 | ||
|
|
4ee8f20df2 | ||
|
|
7d7c0da31b | ||
|
|
4343f1a8f8 | ||
|
|
b85980e1e2 | ||
|
|
893db51ff0 | ||
|
|
cbb3bd4be5 | ||
|
|
7ed3bef1b1 | ||
|
|
da9f7b8218 | ||
|
|
0e9104a58f | ||
|
|
b7266aceac | ||
|
|
28f36bee23 | ||
|
|
994b3e32d3 | ||
|
|
75e9feb687 | ||
|
|
ab0e3f6ee4 | ||
|
|
0194bbced9 | ||
|
|
e92cc239c1 | ||
|
|
da976ce088 | ||
|
|
6490b0fcbd | ||
|
|
ef1d05d342 | ||
|
|
e8170f8379 | ||
|
|
93fcf50131 | ||
|
|
66a132c462 | ||
|
|
6e6633c2fc | ||
|
|
594eaf5100 | ||
|
|
940db20c5c | ||
|
|
493e1d934b | ||
|
|
b9104d0f4c | ||
|
|
3c72298563 | ||
|
|
ca2194770c | ||
|
|
08fbd06c63 | ||
|
|
a20fd5bf6f | ||
|
|
7a88347c63 | ||
|
|
813443b206 | ||
|
|
c381353f86 | ||
|
|
aa6c33526a | ||
|
|
081e77d462 | ||
|
|
bca7a2a634 | ||
|
|
505da84a26 | ||
|
|
dfba411d61 | ||
|
|
fa310d3190 | ||
|
|
ef0c9ce770 | ||
|
|
7429ef3539 | ||
|
|
6d4abcc437 | ||
|
|
5bdea71622 | ||
|
|
8e0004146b | ||
|
|
557413cc4c | ||
|
|
6dc6f2a7cf | ||
|
|
8e5d8b8931 | ||
|
|
260a906b11 | ||
|
|
5ffbfaec26 | ||
|
|
b9ffe15ffb | ||
|
|
87ba30a393 | ||
|
|
cb984aa021 | ||
|
|
0225d28fd3 | ||
|
|
aba3d25d7a | ||
|
|
dc88321ed5 | ||
|
|
cc24af11fc | ||
|
|
d70354021c | ||
|
|
d61446fafc | ||
|
|
d0a8d072fd | ||
|
|
9d59461632 | ||
|
|
cea339088b | ||
|
|
07d29ec9bf | ||
|
|
464fa001b2 | ||
|
|
53a98feff3 | ||
|
|
b8ee5a7b0c | ||
|
|
289ce1263d | ||
|
|
63f57fbc12 | ||
|
|
cdaa79cf80 | ||
|
|
d53769e52b | ||
|
|
7de13415e7 | ||
|
|
d196645d88 | ||
|
|
4d2f13c0d7 | ||
|
|
5ed39300cb | ||
|
|
d7d3bc9947 | ||
|
|
cf3943342a | ||
|
|
59deef469d | ||
|
|
bb13b52d44 | ||
|
|
8d4c555638 | ||
|
|
cbf707dc56 | ||
|
|
6335991164 | ||
|
|
5d6014ecee | ||
|
|
13aca77275 | ||
|
|
1172f1646d | ||
|
|
e27825d3eb | ||
|
|
36c4f32b17 | ||
|
|
6a326dc8e0 | ||
|
|
20c14c0207 | ||
|
|
575b5c292a | ||
|
|
479bd72c9d | ||
|
|
f2efae8b01 | ||
|
|
8b2e6d1bf5 | ||
|
|
0250a9c9f4 | ||
|
|
bbfbda7562 | ||
|
|
a33b2d78b0 | ||
|
|
1280f89217 | ||
|
|
83bfd32807 | ||
|
|
4ea320b250 | ||
|
|
8909438267 | ||
|
|
9482249999 | ||
|
|
43d4036941 | ||
|
|
a410600205 | ||
|
|
864119e3cc | ||
|
|
4702244ae8 | ||
|
|
b985965bc9 | ||
|
|
a5b002b2d8 | ||
|
|
270d3ba499 | ||
|
|
1f2ed3db60 | ||
|
|
08354cc4f5 | ||
|
|
ea56a900a0 | ||
|
|
8fa1f3b497 | ||
|
|
10bc44367a | ||
|
|
1889b6b4e0 | ||
|
|
aac29d43e5 | ||
|
|
c340199191 | ||
|
|
c7241ba611 | ||
|
|
d7f351b143 | ||
|
|
62aef9f850 | ||
|
|
7d128769f6 | ||
|
|
8d4c1deb15 | ||
|
|
57a4bfdb82 | ||
|
|
5741aa4e18 | ||
|
|
ad5b614304 | ||
|
|
4f1735aad6 | ||
|
|
38b87cfdd7 | ||
|
|
bf8996fb8b | ||
|
|
2bd99ffd33 | ||
|
|
46a8efb38a | ||
|
|
b9fb716e6a | ||
|
|
154fb04987 | ||
|
|
a95d6d7101 | ||
|
|
c98fd19900 | ||
|
|
3c2675c4a1 | ||
|
|
db5a58638d | ||
|
|
2a2bc1ee65 | ||
|
|
e806a8556b | ||
|
|
049b486f82 | ||
|
|
8f11f91677 | ||
|
|
d314c02a13 | ||
|
|
ea5b6cf1f6 | ||
|
|
cb908bbb2b | ||
|
|
c221a3e0bc | ||
|
|
ddc1149fb5 | ||
|
|
944d0ad724 | ||
|
|
67d962d707 | ||
|
|
04ad7bf432 | ||
|
|
a0f80debb1 | ||
|
|
f932cf0d00 | ||
|
|
8484a34195 | ||
|
|
2cf5a58adf | ||
|
|
6f7ca13507 | ||
|
|
766e597a3b | ||
|
|
d0d1e02763 | ||
|
|
643c8177be | ||
|
|
092ab5bbdb | ||
|
|
e47f73f772 | ||
|
|
2d8854ba74 | ||
|
|
36fab37225 | ||
|
|
13abcd5958 | ||
|
|
9dcab7ac1f | ||
|
|
d78f034f5d | ||
|
|
c473771af4 | ||
|
|
252e33b502 | ||
|
|
232dd36b78 | ||
|
|
2d7df50774 | ||
|
|
31656e8cda | ||
|
|
e96f9051c0 | ||
|
|
cb461df071 | ||
|
|
e439e65258 | ||
|
|
3a449672cb | ||
|
|
7bb861b573 | ||
|
|
f0b4e30363 | ||
|
|
717a501c36 | ||
|
|
3ddf5047b5 | ||
|
|
31ac709e04 | ||
|
|
a1b2c71b89 | ||
|
|
e9c29aa1b5 | ||
|
|
f947c3f3d3 | ||
|
|
78e8ffd7ba | ||
|
|
60a8a2fa41 | ||
|
|
9e14673349 | ||
|
|
10ab9d3364 | ||
|
|
038bccb3ca | ||
|
|
9b35380849 | ||
|
|
a8f8bbaa1c | ||
|
|
188d8ffc69 | ||
|
|
0809e2b132 | ||
|
|
ab0adc36cf | ||
|
|
d4397dff08 | ||
|
|
db06610fd6 | ||
|
|
c242cf8455 | ||
|
|
ad7d8ac1c9 | ||
|
|
adff74b27b | ||
|
|
1c3c22bb68 | ||
|
|
628d4de095 | ||
|
|
48b3df2ea7 | ||
|
|
3b0cf90f5c | ||
|
|
544f72efff | ||
|
|
112091cbf6 | ||
|
|
b04bb847b1 | ||
|
|
a71bade6eb | ||
|
|
6ef97f1fad | ||
|
|
4675d42f90 | ||
|
|
a624b9a472 | ||
|
|
ad48a9ab06 | ||
|
|
18bd1a91ef | ||
|
|
4cff8879ac | ||
|
|
4dd4915bed | ||
|
|
a227ae386d | ||
|
|
32bd36f016 | ||
|
|
aa23becd14 | ||
|
|
b2f0b4cb1b | ||
|
|
209058b84a | ||
|
|
562fcd4fd8 | ||
|
|
22115f3797 | ||
|
|
9f3619e54a | ||
|
|
5b0aaa5403 | ||
|
|
733bb0fbfa | ||
|
|
0d47beba97 | ||
|
|
c0ba181246 | ||
|
|
313c44f238 | ||
|
|
46c2cfe64e | ||
|
|
cc4f18a5a2 | ||
|
|
4491c82b02 | ||
|
|
b9b8dd8cf1 | ||
|
|
9a1eab2635 | ||
|
|
30b013f354 | ||
|
|
4d4e9a063e | ||
|
|
afccb144b1 | ||
|
|
e87ef0d40e | ||
|
|
42e0617bde | ||
|
|
edeb08aa28 | ||
|
|
b0a35de9c6 | ||
|
|
b3e6fc56f7 | ||
|
|
618ae9dcbc | ||
|
|
47e5c3a917 | ||
|
|
f9706411e7 | ||
|
|
b22da94134 | ||
|
|
4476a7d755 | ||
|
|
ea4cd78921 | ||
|
|
752d0330b7 | ||
|
|
fbbd387402 | ||
|
|
bec344f6e9 | ||
|
|
ba47cc0509 | ||
|
|
34d54f9349 | ||
|
|
d1963af964 | ||
|
|
eff2a24f4c | ||
|
|
3caafbd50d | ||
|
|
cb37a1909d | ||
|
|
88eac91909 | ||
|
|
0bb9c47cf9 | ||
|
|
b28724b4d4 | ||
|
|
75c57d1725 | ||
|
|
032f5c7f83 | ||
|
|
75e462a9e9 | ||
|
|
ef3860004e | ||
|
|
032706d27f | ||
|
|
02a269910f | ||
|
|
abdf73fff4 | ||
|
|
be1d1554ea | ||
|
|
a2deea6537 | ||
|
|
1a2767ca24 | ||
|
|
cfb67a1cb9 | ||
|
|
171faafc67 | ||
|
|
db5eb0a18a | ||
|
|
582ea30459 | ||
|
|
064cefd9ff | ||
|
|
a57baf7e2c | ||
|
|
473ab64f74 | ||
|
|
c5783c1289 | ||
|
|
a64d00c1e6 | ||
|
|
7382eaa953 | ||
|
|
bcd394598b | ||
|
|
6d38f643ae | ||
|
|
532e7ad451 | ||
|
|
08d4ce77e2 | ||
|
|
8a46286373 | ||
|
|
8db0e2d238 | ||
|
|
0f5c2b5c9d | ||
|
|
d8e45694bd | ||
|
|
b64598358d | ||
|
|
ac9dc4d9ac | ||
|
|
3f843f010a | ||
|
|
9c3d3fdeed | ||
|
|
8c4b186c52 | ||
|
|
2cc399d015 | ||
|
|
f3295c6d0c | ||
|
|
4685bba313 | ||
|
|
b543f3e19b | ||
|
|
e561dfb9be | ||
|
|
7b3e0f741a | ||
|
|
7cea137bf4 | ||
|
|
8c21272048 | ||
|
|
078dab0299 | ||
|
|
f6d9ea10e2 | ||
|
|
d8a5ed194b | ||
|
|
6f42bbc6e5 | ||
|
|
74921c6570 | ||
|
|
5b27222b86 | ||
|
|
648b199be8 | ||
|
|
ae2b464492 | ||
|
|
1209879bed | ||
|
|
99aadd61c1 | ||
|
|
b30d673367 | ||
|
|
b393e12e30 | ||
|
|
3e8dc979c6 | ||
|
|
00928c90b7 | ||
|
|
caf8dec568 | ||
|
|
2423dbc726 | ||
|
|
23784b3295 | ||
|
|
4e4e71dff2 | ||
|
|
456f04112c | ||
|
|
af6f6a2812 | ||
|
|
230a4f55a4 | ||
|
|
214480613e | ||
|
|
ad992db75f | ||
|
|
a9245494c9 | ||
|
|
1ce1455ce2 | ||
|
|
9f6173231b | ||
|
|
8f0c3659d6 | ||
|
|
da55d34d9b | ||
|
|
91bb726216 | ||
|
|
b4daef2f59 | ||
|
|
d5460c90c5 | ||
|
|
d1e3b7b5ae | ||
|
|
6fa8bbe922 | ||
|
|
e383f80e5e | ||
|
|
78658e9838 | ||
|
|
7fb2988d99 | ||
|
|
073c6a2f61 | ||
|
|
8dde202c3e | ||
|
|
01fe877ebb | ||
|
|
0425b1058f | ||
|
|
3b4ea05cd3 | ||
|
|
259a6624ed | ||
|
|
4f903b3041 | ||
|
|
f3280bc136 | ||
|
|
bc8f8cb132 | ||
|
|
d1371fbb98 | ||
|
|
ec15ec4d8b | ||
|
|
e4875b6318 | ||
|
|
8ec22ddda0 | ||
|
|
d6586ec2e6 | ||
|
|
73d1027acc | ||
|
|
f353c7a97b | ||
|
|
d587ba5d23 | ||
|
|
ce7c576c3a | ||
|
|
b3c493a6de | ||
|
|
4661ec95b9 | ||
|
|
b7ffc43d8d | ||
|
|
6102d79e6e | ||
|
|
021311974f | ||
|
|
ed15a81300 | ||
|
|
232c956b81 | ||
|
|
8e01d90018 | ||
|
|
8b059432d3 | ||
|
|
1d61608c71 | ||
|
|
4c631f6839 | ||
|
|
9935f76530 | ||
|
|
64125e6e42 | ||
|
|
16bb4e4544 | ||
|
|
fd56f5b600 | ||
|
|
a82d3647da | ||
|
|
32d838fede | ||
|
|
840eab9566 | ||
|
|
2ad56cf249 | ||
|
|
f302f798aa | ||
|
|
79c7a5101f | ||
|
|
b43c162903 | ||
|
|
65040ddd90 | ||
|
|
a53afb912f | ||
|
|
cdab915bd9 | ||
|
|
44aba76849 | ||
|
|
f3a9b4b293 | ||
|
|
a4435a45ec | ||
|
|
4390a00604 | ||
|
|
58af2fefce | ||
|
|
7e92a32243 | ||
|
|
7728cc4d3e | ||
|
|
3f11cef46f | ||
|
|
8e67f69297 | ||
|
|
0953cf123c | ||
|
|
a0179b2efe | ||
|
|
b27ae2e436 | ||
|
|
df288e38b9 | ||
|
|
2746c9d96f | ||
|
|
ae98334edd | ||
|
|
c30bfd5649 | ||
|
|
47a32fcce3 | ||
|
|
1f8b81965d | ||
|
|
c53f23df5c | ||
|
|
e67a74c4ec | ||
|
|
c258bbc8d9 | ||
|
|
9bd0b1bdf8 | ||
|
|
e09fd4d6c8 | ||
|
|
b09f5127ad | ||
|
|
3458b9ad82 | ||
|
|
b0d6513b7c | ||
|
|
12bacea674 | ||
|
|
26cd681802 | ||
|
|
6cef0829a8 | ||
|
|
53e01c1778 | ||
|
|
501036cafa | ||
|
|
335b956e13 | ||
|
|
8fcf1e35fc | ||
|
|
ff9663f376 | ||
|
|
b534ab74de | ||
|
|
a22d510b1d | ||
|
|
a812ded9cd | ||
|
|
34836f7703 | ||
|
|
2386fe5bd8 | ||
|
|
1c2be0c243 | ||
|
|
9495596f49 | ||
|
|
a42a5bfab4 | ||
|
|
2ad4dc1b4e | ||
|
|
6ba47c931a | ||
|
|
8591e921e4 | ||
|
|
fa43f92370 | ||
|
|
6aac3f95fe | ||
|
|
3e004d1bf3 | ||
|
|
5bb810875b |
19
.editorconfig
Normal file
19
.editorconfig
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
# Unix-style newlines with a newline ending every file
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
|
||||||
|
[*.{js,css,scss}]
|
||||||
|
quote_type = single
|
||||||
|
|
||||||
|
[*.{yml,yaml}]
|
||||||
|
quote_type = double
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
||||||
16
.gitattributes
vendored
Normal file
16
.gitattributes
vendored
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Set default behavior to automatically normalize line endings.
|
||||||
|
* text=auto
|
||||||
|
|
||||||
|
# Force bash scripts to always use LF line endings so that if a repo is accessed
|
||||||
|
# in Unix via a file share from Windows, the scripts will work.
|
||||||
|
*.sh text eol=lf
|
||||||
|
|
||||||
|
# Force batch scripts to always use CRLF line endings so that if a repo is accessed
|
||||||
|
# in Windows via a file share from Linux, the scripts will work.
|
||||||
|
*.{cmd,[cC][mM][dD]} text eol=crlf
|
||||||
|
*.{bat,[bB][aA][tT]} text eol=crlf
|
||||||
|
|
||||||
|
# Denote all files that are truly binary and should not be modified.
|
||||||
|
*.png binary
|
||||||
|
*.jpg binary
|
||||||
|
*.ico binary
|
||||||
26
.github/DISCUSSION_TEMPLATE/general.yml
vendored
Normal file
26
.github/DISCUSSION_TEMPLATE/general.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Checklist
|
||||||
|
description: Following the guidelines can make you more likely to get responses.
|
||||||
|
options:
|
||||||
|
- label: >-
|
||||||
|
I have read and accepted the
|
||||||
|
[contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
attributes:
|
||||||
|
label: What is the topic?
|
||||||
|
options:
|
||||||
|
- Sharing tips and tricks
|
||||||
|
- Just chatting
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Description
|
||||||
|
description: Please describe in detail what you want to share.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
40
.github/DISCUSSION_TEMPLATE/q-a.yml
vendored
Normal file
40
.github/DISCUSSION_TEMPLATE/q-a.yml
vendored
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Checklist
|
||||||
|
description: Following the guidelines can make you more likely to get responses.
|
||||||
|
options:
|
||||||
|
- label: >-
|
||||||
|
I have read and accepted the
|
||||||
|
[contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: download
|
||||||
|
attributes:
|
||||||
|
label: How did you create the site?
|
||||||
|
options:
|
||||||
|
- Generated from `chirpy-starter`
|
||||||
|
- Built from `jekyll-theme-chirpy`
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Description
|
||||||
|
description: Please describe your need in detail.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Operations you have already tried
|
||||||
|
description: Describe the effort you went through.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Anything else?
|
||||||
|
description: |
|
||||||
|
Links? References? Or logs? Anything that will give us more context about the issue you are encountering!
|
||||||
3
.github/FUNDING.yml
vendored
3
.github/FUNDING.yml
vendored
@@ -1 +1,2 @@
|
|||||||
custom: ['https://www.buymeacoffee.com/6wOkxTo', 'https://cotes.gitee.io/alipay-wechat-donation']
|
ko_fi: coteschung
|
||||||
|
custom: https://sponsor.cotes.page
|
||||||
|
|||||||
64
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
64
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
name: Bug Report
|
||||||
|
description: Create a report to help us improve
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Checklist
|
||||||
|
description: Following the guidelines can make you more likely to get responses.
|
||||||
|
options:
|
||||||
|
- label: >-
|
||||||
|
I have read and accepted the
|
||||||
|
[contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: download
|
||||||
|
attributes:
|
||||||
|
label: How did you create the site?
|
||||||
|
options:
|
||||||
|
- Generated from `chirpy-starter`
|
||||||
|
- Built from `jekyll-theme-chirpy`
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Describe the bug
|
||||||
|
description: A clear and concise description of what the bug is.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Steps To Reproduce
|
||||||
|
description: Steps to reproduce the behavior.
|
||||||
|
placeholder: |
|
||||||
|
1. In this environment...
|
||||||
|
2. With this config...
|
||||||
|
3. Run '...'
|
||||||
|
4. See error...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Expected Behavior
|
||||||
|
description: A concise description of what you expected to happen.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Environment
|
||||||
|
value: |
|
||||||
|
- Ruby: <!-- run `ruby -v` -->
|
||||||
|
- Jekyll: <!-- run `bundle exec jekyll -v` -->
|
||||||
|
- Chirpy: <!-- run `bundle info jekyll-theme-chirpy` -->
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Anything else?
|
||||||
|
description: |
|
||||||
|
Links? References? Or logs? Anything that will give us more context about the issue you are encountering!
|
||||||
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: Ask the community for help
|
||||||
|
url: https://github.com/cotes2020/jekyll-theme-chirpy/discussions
|
||||||
|
about: Please ask and answer questions here.
|
||||||
38
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
38
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
name: Feature Request
|
||||||
|
description: Suggest an idea for this project
|
||||||
|
labels:
|
||||||
|
- enhancement
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Checklist
|
||||||
|
description: Following the guidelines can make you more likely to get responses.
|
||||||
|
options:
|
||||||
|
- label: >-
|
||||||
|
I have read and accepted the
|
||||||
|
[contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Is your feature request related to a problem? Please describe
|
||||||
|
description: A clear and concise description of what the problem is.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Describe the solution you'd like
|
||||||
|
description: A clear and concise description of what you want to happen.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Describe alternatives you've considered
|
||||||
|
description: A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Additional context
|
||||||
|
description: Add any other context or screenshots about the feature request here.
|
||||||
17
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
17
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
## Type of change
|
||||||
|
<!-- Please select the desired item checkbox and change it from `[ ]` to `[x]` and then delete the irrelevant options. -->
|
||||||
|
- [ ] Bug fix (non-breaking change which fixes an issue)
|
||||||
|
- [ ] New feature (non-breaking change which adds functionality)
|
||||||
|
- [ ] Improvement (refactoring and improving code)
|
||||||
|
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
|
||||||
|
- [ ] Documentation update
|
||||||
|
|
||||||
|
## Description
|
||||||
|
<!--
|
||||||
|
Please include a summary of the change and which issue is fixed.
|
||||||
|
Please also include relevant motivation and context.
|
||||||
|
List any dependencies that are required for this change.
|
||||||
|
-->
|
||||||
|
|
||||||
|
## Additional context
|
||||||
|
<!-- e.g. Fixes #(issue) -->
|
||||||
26
.github/dependabot.yml
vendored
Normal file
26
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "bundler"
|
||||||
|
directory: "/"
|
||||||
|
versioning-strategy: increase
|
||||||
|
groups:
|
||||||
|
bundler:
|
||||||
|
dependency-type: "production"
|
||||||
|
schedule:
|
||||||
|
interval: "monthly"
|
||||||
|
- package-ecosystem: "npm"
|
||||||
|
directory: "/"
|
||||||
|
versioning-strategy: increase
|
||||||
|
groups:
|
||||||
|
npm:
|
||||||
|
dependency-type: "development"
|
||||||
|
schedule:
|
||||||
|
interval: "monthly"
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
groups:
|
||||||
|
gh-actions:
|
||||||
|
update-types:
|
||||||
|
- "major"
|
||||||
|
schedule:
|
||||||
|
interval: "monthly"
|
||||||
17
.github/workflows/cd.yml
vendored
Normal file
17
.github/workflows/cd.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
name: CD
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "v[0-9]+.[0-9]+.[0-9]+"
|
||||||
|
branches:
|
||||||
|
- docs
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
launch:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- run: |
|
||||||
|
curl -X POST -H "Accept: application/vnd.github+json" \
|
||||||
|
-H "Authorization: Bearer ${{ secrets.GH_PAT }}" \
|
||||||
|
https://api.github.com/repos/${{ secrets.BUILDER }}/dispatches \
|
||||||
|
-d '{"event_type":"deploy", "client_payload":{"branch": "${{ github.ref_name }}"}}'
|
||||||
45
.github/workflows/ci.yml
vendored
Normal file
45
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
name: "CI"
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches-ignore:
|
||||||
|
- "production"
|
||||||
|
- "docs"
|
||||||
|
paths-ignore:
|
||||||
|
- ".github/**"
|
||||||
|
- "!.github/workflows/ci.yml"
|
||||||
|
- ".gitignore"
|
||||||
|
- "docs/**"
|
||||||
|
- "README.md"
|
||||||
|
- "LICENSE"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "**"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
ruby: ["3.0", "3.1", "3.2"]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # for posts's lastmod
|
||||||
|
|
||||||
|
- name: Setup Ruby
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: ${{ matrix.ruby }}
|
||||||
|
bundler-cache: true
|
||||||
|
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
|
||||||
|
- name: Build Assets
|
||||||
|
run: npm i && npm run build
|
||||||
|
|
||||||
|
- name: Test Site
|
||||||
|
run: bash tools/test
|
||||||
44
.github/workflows/codeql.yml
vendored
Normal file
44
.github/workflows/codeql.yml
vendored
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
name: "CodeQL"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths: ["**.js"]
|
||||||
|
pull_request:
|
||||||
|
paths: ["**.js"]
|
||||||
|
schedule:
|
||||||
|
- cron: "0 0 * * 5"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analyze:
|
||||||
|
name: Analyze
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
actions: read
|
||||||
|
contents: read
|
||||||
|
security-events: write
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
language: ["javascript"]
|
||||||
|
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
# Initializes the CodeQL tools for scanning.
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v3
|
||||||
|
with:
|
||||||
|
languages: "${{ matrix.language }}"
|
||||||
|
|
||||||
|
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
|
||||||
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
|
- name: Autobuild
|
||||||
|
uses: github/codeql-action/autobuild@v3
|
||||||
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v3
|
||||||
|
with:
|
||||||
|
category: "/language:${{ matrix.language }}"
|
||||||
11
.github/workflows/commitlint.yml
vendored
Normal file
11
.github/workflows/commitlint.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
name: Lint Commit Messages
|
||||||
|
on: pull_request
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
commitlint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- uses: wagoid/commitlint-github-action@v5
|
||||||
73
.github/workflows/pages-deploy.yml.hook
vendored
Normal file
73
.github/workflows/pages-deploy.yml.hook
vendored
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
name: "Build and Deploy"
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
paths-ignore:
|
||||||
|
- .gitignore
|
||||||
|
- README.md
|
||||||
|
- LICENSE
|
||||||
|
|
||||||
|
# Allows you to run this workflow manually from the Actions tab
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pages: write
|
||||||
|
id-token: write
|
||||||
|
|
||||||
|
# Allow one concurrent deployment
|
||||||
|
concurrency:
|
||||||
|
group: "pages"
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
# submodules: true
|
||||||
|
# If using the 'assets' git submodule from Chirpy Starter, uncomment above
|
||||||
|
# (See: https://github.com/cotes2020/chirpy-starter/tree/main/assets)
|
||||||
|
|
||||||
|
- name: Setup Pages
|
||||||
|
id: pages
|
||||||
|
uses: actions/configure-pages@v3
|
||||||
|
|
||||||
|
- name: Setup Ruby
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: 3.2
|
||||||
|
bundler-cache: true
|
||||||
|
|
||||||
|
- name: Build site
|
||||||
|
run: bundle exec jekyll b -d "_site${{ steps.pages.outputs.base_path }}"
|
||||||
|
env:
|
||||||
|
JEKYLL_ENV: "production"
|
||||||
|
|
||||||
|
- name: Test site
|
||||||
|
run: |
|
||||||
|
bundle exec htmlproofer _site \
|
||||||
|
\-\-disable-external=true \
|
||||||
|
\-\-ignore-urls "/^http:\/\/127.0.0.1/,/^http:\/\/0.0.0.0/,/^http:\/\/localhost/"
|
||||||
|
|
||||||
|
- name: Upload site artifact
|
||||||
|
uses: actions/upload-pages-artifact@v1
|
||||||
|
with:
|
||||||
|
path: "_site${{ steps.pages.outputs.base_path }}"
|
||||||
|
|
||||||
|
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
|
||||||
32
.github/workflows/stale.yml
vendored
Normal file
32
.github/workflows/stale.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
name: "Close stale issues and PRs"
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 0 * * *" # every day at 00:00 UTC
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
issues: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
env:
|
||||||
|
STALE_LABEL: stale
|
||||||
|
EXEMPT_LABELS: "pending,planning,in progress"
|
||||||
|
MESSAGE: >
|
||||||
|
This conversation 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.
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
stale:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/stale@v9
|
||||||
|
with:
|
||||||
|
days-before-stale: 30
|
||||||
|
days-before-close: 1
|
||||||
|
stale-issue-label: ${{ env.STALE_LABEL }}
|
||||||
|
exempt-issue-labels: ${{ env.EXEMPT_LABELS }}
|
||||||
|
stale-issue-message: ${{ env.MESSAGE }}
|
||||||
|
stale-pr-label: ${{ env.STALE_LABEL }}
|
||||||
|
exempt-pr-labels: ${{ env.EXEMPT_LABELS }}
|
||||||
|
stale-pr-message: ${{ env.MESSAGE }}
|
||||||
25
.github/workflows/style-lint.yml
vendored
Normal file
25
.github/workflows/style-lint.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
name: "Style Lint"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches-ignore:
|
||||||
|
- "production"
|
||||||
|
- "docs"
|
||||||
|
paths:
|
||||||
|
- "_sass/**/*.scss"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "_sass/**/*.scss"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
stylelint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
- run: npm i
|
||||||
|
- run: npm test
|
||||||
29
.gitignore
vendored
29
.gitignore
vendored
@@ -1,11 +1,22 @@
|
|||||||
.*
|
# Bundler cache
|
||||||
*.pyc
|
.bundle
|
||||||
|
vendor
|
||||||
# jekyll debug
|
|
||||||
_site
|
|
||||||
|
|
||||||
# Jeykll Gemfile.lock
|
|
||||||
Gemfile.lock
|
Gemfile.lock
|
||||||
|
|
||||||
# yui-compressor
|
# Jekyll cache
|
||||||
*.jar
|
.jekyll-cache
|
||||||
|
_site
|
||||||
|
|
||||||
|
# RubyGems
|
||||||
|
*.gem
|
||||||
|
|
||||||
|
# NPM dependencies
|
||||||
|
node_modules
|
||||||
|
package-lock.json
|
||||||
|
|
||||||
|
# IDE configurations
|
||||||
|
.idea
|
||||||
|
.vscode
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
assets/js/dist
|
||||||
|
|||||||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[submodule "assets/lib"]
|
||||||
|
path = assets/lib
|
||||||
|
url = https://github.com/cotes2020/chirpy-static-assets.git
|
||||||
4
.husky/commit-msg
Executable file
4
.husky/commit-msg
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
. "$(dirname "$0")/_/husky.sh"
|
||||||
|
|
||||||
|
npx --no -- commitlint -x $(npm root -g)/@commitlint/config-conventional --edit
|
||||||
40
.travis.yml
40
.travis.yml
@@ -1,40 +0,0 @@
|
|||||||
language: ruby
|
|
||||||
rvm: 2.5.3
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
- pyenv global 3.7.1
|
|
||||||
|
|
||||||
install:
|
|
||||||
- pip install --upgrade pip
|
|
||||||
- pip install ruamel.yaml
|
|
||||||
- bundle install --path vendor/bundle --quiet
|
|
||||||
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- libcurl4-openssl-dev # required to avoid SSL error (for htmlproofer)
|
|
||||||
|
|
||||||
script:
|
|
||||||
- bash _scripts/travis/cibuild.sh
|
|
||||||
|
|
||||||
branches:
|
|
||||||
only: master
|
|
||||||
|
|
||||||
git:
|
|
||||||
depth: false # for posts lastmod
|
|
||||||
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- $TRAVIS_BUILD_DIR/vendor/bundle
|
|
||||||
- $TRAVIS_BUILD_DIR/tmp/.htmlproofer
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
email:
|
|
||||||
recipients:
|
|
||||||
- secure: "GdZFhI2fu6MHwHeGkI9AI8NJexfT+cncJKoOTBxrMPywxvfm6HZ1vZTOwLD9mwG4XZUSznruD4NwRiXMBKs/94n8Z2f0QagCp2is/TuQWBVDUn1bowTbx1S7da6I3qTBGyIHvQWySwFgJuK9/uUeHdQF9ojMejESKZWfc6NjlgYie3Us3ax+Lygq6o4x+8+YPqlC/XwEKUUMUpXZT8Yubxg+s1mLwY9zmp2kJwB1snf6u498FPCWtCuQdGc91HEL4McfUfevnkNKttJQFwdE+mFkLoLn1FcXN0WQ8hPVTQvD/5TaCvACuB1oQ4dm4cnnoIRC5iuQntkP2Am7jPLnHLwxHDqB8vLDNxi1phbfGTk89ffY4n5FirF7DiYIn7hDDbDBlE4++9Pv/i7xgLp9+NzAzz25tdcfKZfXujrwE6b/2NbtXer/eWXyi7d6V/qWO6x8m7/IerX2/VrbXyQIgTvIDe2sSAraM77MMIiQ2KS6yhPIfjyCsC1sokFNRqUWut2UkqMFKOmAnSi/jTQY6/t1aOXGHtVRwgjFoyvBTk9F9NElxt3mseK26Mad3yAv5xLqhqHPFZJbVHJ8dP6RQvWwuvMK1uSqobTl+t0qBvvdSbt1/Oc/ubN1T2clObx1faF2luoMFhRtN+H5s7wfEMrO+sJAuSZnAHuDRpDIwCs="
|
|
||||||
on_success: never
|
|
||||||
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer
|
|
||||||
- secure: "QNAqDoDQ+mF/3DFxKbc7fnYa5+FysJTX9Vs4XneH6iH63MS2lNtHfC7uT/M0/sRJaygK9eAdb+RaIeADE7CAMzqP3qdWx7l2N6qWab/kyK9KujUBsvoTGX6lDQTwC2Z+zlr5uUScHfLOhqHh6dbm6glziy2NB4dn9pVBXQrmBn09Rf9LImRT2u2h8gzmdl19hZ9TsW1/ROOb/1Soc3JElGRPrIxKI7ufHLQZt0UzZkYXGejQJwtstEEkRSmhfkJjlASeaeuyOFBvkWXjL1nKPsElwEKsAR+4II98JKA83YVqa9TJT2YSnXeLEFIhYDVSG6RLAMEU4rrITzRYC/hWKBKje4G0PDEM/cpnytk9Xhq+7oUFRmXCq3ZQgTQgzWhzl1kExC8b96hiWmQ+lVCw+Q2BG6+NloEEuOHOM839CTXfiitjRJ8KYUdLgW6IaruaingySBsbh1Vl+Dhu73QZ5H40KLdIH6woLXWAgtxkjpaL6DTeWDO6xMiwDreBa/2CJRT5R1tiG45CurZ+AkQ+yAAfSOEwGtE29oZl0sWeWMwVTaAClc0IJaG1+h8jxIVuQqHvK3fzd5RdlDtShrfCCVvQD0n29wXrdeNEg90F92kvdtmw8XgKc2P/Cl5uNzvVeTbFF3ZIHYpCVV4LW4Hn8clgYu+WUa/w4pVrBSdQOUw="
|
|
||||||
24
404.html
24
404.html
@@ -1,24 +0,0 @@
|
|||||||
---
|
|
||||||
# The 404 page
|
|
||||||
# © 2017-2019 Cotes Chung
|
|
||||||
# MIT License
|
|
||||||
layout: page
|
|
||||||
title: "404: Page not found"
|
|
||||||
|
|
||||||
permalink: /404.html
|
|
||||||
|
|
||||||
redirect_from: # Same as site.blocklist
|
|
||||||
- /norobots/
|
|
||||||
- /assets/
|
|
||||||
- /tabs/
|
|
||||||
- /categories/
|
|
||||||
- /tags/
|
|
||||||
- /posts/
|
|
||||||
|
|
||||||
dynamic_title: true
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="lead">
|
|
||||||
<p>Sorry, we've misplaced that URL or it's pointing to something that doesn't exist. </p>
|
|
||||||
<p><a href="{{ site.baseurl }}/">Head back Home</a> to try finding it again, or search for it on the <a href="{{ site.baseurl }}/tabs/archives">Archives page</a>.</p>
|
|
||||||
</div>
|
|
||||||
28
Gemfile
28
Gemfile
@@ -1,17 +1,23 @@
|
|||||||
source 'https://rubygems.org'
|
# frozen_string_literal: true
|
||||||
|
|
||||||
gem 'jekyll', '>=3.8.6'
|
source "https://rubygems.org"
|
||||||
|
|
||||||
# Official Plugins
|
gemspec
|
||||||
group :jekyll_plugins do
|
|
||||||
gem 'jekyll-paginate'
|
|
||||||
gem 'jekyll-redirect-from'
|
|
||||||
gem 'jekyll-seo-tag'
|
|
||||||
end
|
|
||||||
|
|
||||||
group :test do
|
group :test do
|
||||||
gem 'html-proofer'
|
gem "html-proofer", "~> 4.4"
|
||||||
end
|
end
|
||||||
|
|
||||||
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||||
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
|
# and associated library.
|
||||||
|
platforms :mingw, :x64_mingw, :mswin, :jruby do
|
||||||
|
gem "tzinfo", ">= 1", "< 3"
|
||||||
|
gem "tzinfo-data"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Performance-booster for watching directories on Windows
|
||||||
|
gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]
|
||||||
|
|
||||||
|
# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem
|
||||||
|
# do not have a Java counterpart.
|
||||||
|
gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby]
|
||||||
|
|||||||
216
README.md
216
README.md
@@ -1,161 +1,81 @@
|
|||||||
# Jekyll Theme Chirpy
|
<div align="center">
|
||||||
|
|
||||||
[](https://travis-ci.com/cotes2020/jekyll-theme-chirpy)
|
# Chirpy Jekyll Theme
|
||||||
[](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/LICENSE)
|
|
||||||
[](https://996.icu)
|
|
||||||
|
|
||||||

|
A minimal, responsive, and feature-rich Jekyll theme for technical writing.
|
||||||
|
|
||||||
A minimal, portfolio, sidebar, bootstrap Jekyll theme with responsive web design and focuses on text presentation. Hope you like it! [Live Demo »](https://chirpy.cotes.info)
|
[][gem]
|
||||||
|
[][ci]
|
||||||
|
[][codacy]
|
||||||
|
[][license]
|
||||||
|
[](https://996.icu)
|
||||||
|
|
||||||
|
[**Live Demo** →][demo]
|
||||||
|
|
||||||
|
[][demo]
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
* Posts' Last Modified Date
|
- Dark / Light Theme Mode
|
||||||
* Table of Contents
|
- Localized UI language
|
||||||
* Disqus Comments
|
- Pinned Posts on Home Page
|
||||||
* Syntax highlighting
|
- Hierarchical Categories
|
||||||
* Two Level Categories
|
- Trending Tags
|
||||||
* Search
|
- Table of Contents
|
||||||
* HTML Compress
|
- Last Modified Date
|
||||||
* Atom Feeds
|
- Syntax Highlighting
|
||||||
* Google Analytics
|
- Mathematical Expressions
|
||||||
* GA Pageviews (Advanced)
|
- Mermaid Diagrams & Flowcharts
|
||||||
* SEO Tag
|
- Dark / Light Mode Images
|
||||||
* Performance Optimization
|
- Embed Videos
|
||||||
|
- Disqus / Giscus / Utterances Comments
|
||||||
## Getting Started
|
- Built-in Search
|
||||||
|
- Atom Feeds
|
||||||
### Preparation
|
- PWA
|
||||||
|
- Google Analytics
|
||||||
Follow the [Jekyll Docs](https://jekyllrb.com/docs/installation/) to complete the installtion of basic environment (Ruby, RubyGem, Bundler and Jekyll). In addition, to use the funny script tools, we also need to install [Python](https://www.python.org/downloads/)(version 3.5 or abover) and [ruamel.yaml](https://pypi.org/project/ruamel.yaml/).
|
- SEO & Performance Optimization
|
||||||
|
|
||||||
Next, [fork](https://github.com/cotes2020/jekyll-theme-chirpy/fork) **Chirpy** and then clone your replicated repository locally.
|
|
||||||
|
|
||||||
|
|
||||||
### Install Jekyll Plugins
|
|
||||||
|
|
||||||
Go to root directory of the repository and run the following:
|
|
||||||
|
|
||||||
```terminal
|
|
||||||
$ bundle install
|
|
||||||
```
|
|
||||||
|
|
||||||
`bundle` will install all the dependent Jekyll Plugins listed in file `Gemfile` automatically.
|
|
||||||
|
|
||||||
|
|
||||||
### File Structure
|
|
||||||
|
|
||||||
The main files and related brief introductions are listed below.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
jekyll-theme-chirpy/
|
|
||||||
├── _data
|
|
||||||
├── _includes
|
|
||||||
├── _layouts
|
|
||||||
├── _posts # posts stay here
|
|
||||||
├── _scripts
|
|
||||||
│ └── travis # CI stuff, remove it
|
|
||||||
├── .travis.yml # remove it, too
|
|
||||||
├── assets
|
|
||||||
├── tabs
|
|
||||||
│ └── about.md # the ABOUT page
|
|
||||||
├── .gitignore
|
|
||||||
├── 404.html
|
|
||||||
├── Gemfile
|
|
||||||
├── LICENSE
|
|
||||||
├── README.md
|
|
||||||
├── _config.yml # configuration file
|
|
||||||
├── build.sh # script tool
|
|
||||||
├── run.sh # script tool
|
|
||||||
├── init.sh # script tool
|
|
||||||
├── pv.sh
|
|
||||||
├── feed.xml
|
|
||||||
├── index.html
|
|
||||||
├── robots.txt
|
|
||||||
├── search.json
|
|
||||||
└── sitemap.xml
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
### Configuration
|
|
||||||
|
|
||||||
Customize the variables in file `_config.yml` as needed.
|
|
||||||
|
|
||||||
|
|
||||||
### Atom Feed
|
|
||||||
|
|
||||||
The Atom feed url of your site will be:
|
|
||||||
|
|
||||||
```
|
|
||||||
<SITE_URL>/feed.xml
|
|
||||||
```
|
|
||||||
|
|
||||||
The `SITE_URL` was defined by variable `url` in file `_config.yml`.
|
|
||||||
|
|
||||||
|
|
||||||
### Run Locally
|
|
||||||
|
|
||||||
You may want to preview the site before publishing, so just run the script tool:
|
|
||||||
|
|
||||||
```terminal
|
|
||||||
$ bash run.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
>**Note**: The *Recent Update* list requires the latest git-log date of posts, thus make sure the changes in `_posts` have been committed before running this command.
|
|
||||||
|
|
||||||
Open a brower and visit <http://localhost:4000>.
|
|
||||||
|
|
||||||
Few days later, you may find that the file changes does not refresh in real time by using `run.sh`. Don't worry, the advanced option `-r` (or `--realtime`) will solve this problem, but it requires [**fswatch**](http://emcrisostomo.github.io/fswatch/) to be installed on your machine.
|
|
||||||
|
|
||||||
|
|
||||||
### Deploying to GitHub Pages
|
|
||||||
|
|
||||||
Before the deployment begins, ensure the `url` in `_config.yml` has been set to `https://<username>.github.io`.
|
|
||||||
|
|
||||||
#### Option 1: Built by GitHub Pages
|
|
||||||
|
|
||||||
By deploying your site in this way, you can push the source code to GitHub repository directly.
|
|
||||||
|
|
||||||
> **Note**: If you want to add any third-party Jekyll plugins or custom scripts to your project, please refer to [*Option 2: Build locally*](#option-2-build-locally).
|
|
||||||
|
|
||||||
**1**. Rename your repository as `<username>.github.io`.
|
|
||||||
|
|
||||||
**2**. Commit the changes of your repository, then run the initialization script:
|
|
||||||
|
|
||||||
```console
|
|
||||||
$ bash init.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
It will automatically generates the *Latest Modified Date* and *Categories / Tags* page for the posts.
|
|
||||||
|
|
||||||
**3**. Push the changes to `origin/master` then go to GitHub website and enable GitHub Pages service for the repository `<username>.github.io`.
|
|
||||||
|
|
||||||
**4**. Visit `https://<username>.github.io` and enjoy.
|
|
||||||
|
|
||||||
|
|
||||||
#### Option 2: Build Locally
|
|
||||||
|
|
||||||
For security reasons, GitHub Pages runs on `safe` mode, which means the third-party Jekyll plugins or custom scripts will not work. If you want to use any another third-party Jekyll plugins, **your have to build locally rather than on GitHub Pages**.
|
|
||||||
|
|
||||||
**1**. On GitHub website, create a brand new repository with name `<username>.github.io` and then clone it locally.
|
|
||||||
|
|
||||||
**2**. Build your site by:
|
|
||||||
|
|
||||||
```console
|
|
||||||
$ bash build.sh -d /path/to/<username>.github.io/
|
|
||||||
```
|
|
||||||
|
|
||||||
The build results will be stored in the root directory of `<username>.github.io` and don't forget to push the changes of `<username>.github.io` to branch `master` on GitHub.
|
|
||||||
|
|
||||||
**3**. Go to GitHub website and enable GitHub Pages service for the new repository `<username>.github.io`.
|
|
||||||
|
|
||||||
**4**. Visit `https://<username>.github.io` and enjoy.
|
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
For more information, please see the [tutorial](https://chirpy.cotes.info/categories/tutorial/). In the meanwhile, a copy of the tutorial is also available on the [Wiki](https://github.com/cotes2020/jekyll-theme-chirpy/wiki).
|
To learn how to use, develop, and upgrade the project, please refer to the [Wiki][wiki].
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Contributions (_pull requests_, _issues_, and _discussions_) are what make the open-source community such an amazing place
|
||||||
|
to learn, inspire, and create. Any contributions you make are greatly appreciated.
|
||||||
|
For details, see the "[Contributing Guidelines][contribute-guide]".
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
### Contributors
|
||||||
|
|
||||||
|
Thanks to [all the contributors][contributors] involved in the development of the project!
|
||||||
|
|
||||||
|
[][contributors]
|
||||||
|
<sub> —— Made with [contrib.rocks](https://contrib.rocks)</sub>
|
||||||
|
|
||||||
|
### Third-Party Assets
|
||||||
|
|
||||||
|
This project is built on the [Jekyll][jekyllrb] ecosystem and some [great libraries][lib], and is developed using [VS Code][vscode] as well as tools provided by [JetBrains][jetbrains] under a non-commercial open-source software license.
|
||||||
|
|
||||||
|
The avatar and favicon for the project's website are from [ClipartMAX][clipartmax].
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
This work is published under [MIT](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/LICENSE) License.
|
This project is published under [MIT License][license].
|
||||||
|
|
||||||
|
[gem]: https://rubygems.org/gems/jekyll-theme-chirpy
|
||||||
|
[ci]: https://github.com/cotes2020/jekyll-theme-chirpy/actions/workflows/ci.yml?query=event%3Apush+branch%3Amaster
|
||||||
|
[codacy]: https://app.codacy.com/gh/cotes2020/jekyll-theme-chirpy/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade
|
||||||
|
[license]: https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/LICENSE
|
||||||
|
[jekyllrb]: https://jekyllrb.com/
|
||||||
|
[clipartmax]: https://www.clipartmax.com/middle/m2i8b1m2K9Z5m2K9_ant-clipart-childrens-ant-cute/
|
||||||
|
[demo]: https://cotes2020.github.io/chirpy-demo/
|
||||||
|
[wiki]: https://github.com/cotes2020/jekyll-theme-chirpy/wiki
|
||||||
|
[contribute-guide]: https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md
|
||||||
|
[contributors]: https://github.com/cotes2020/jekyll-theme-chirpy/graphs/contributors
|
||||||
|
[lib]: https://github.com/cotes2020/chirpy-static-assets
|
||||||
|
[vscode]: https://code.visualstudio.com/
|
||||||
|
[jetbrains]: https://www.jetbrains.com/?from=jekyll-theme-chirpy
|
||||||
|
|||||||
240
_config.yml
240
_config.yml
@@ -1,82 +1,129 @@
|
|||||||
# The Site Settings
|
# The Site Configuration
|
||||||
# © 2017-2019 Cotes Chung
|
|
||||||
# MIT licensed
|
|
||||||
|
|
||||||
|
# Import the theme
|
||||||
|
theme: jekyll-theme-chirpy
|
||||||
|
|
||||||
|
# The language of the webpage › http://www.lingoes.net/en/translator/langcode.htm
|
||||||
|
# If it has the same name as one of the files in folder `_data/locales`, the layout language will also be changed,
|
||||||
|
# otherwise, the layout language will use the default value of 'en'.
|
||||||
|
lang: en
|
||||||
|
|
||||||
|
# Change to your timezone › https://kevinnovak.github.io/Time-Zone-Picker
|
||||||
|
timezone: Asia/Shanghai
|
||||||
|
|
||||||
# jekyll-seo-tag settings › https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md
|
# jekyll-seo-tag settings › https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md
|
||||||
#--------------------------
|
# ↓ --------------------------
|
||||||
|
|
||||||
title: Chirpy
|
title: Chirpy # the main title
|
||||||
|
|
||||||
description: 'A text-based Jekyll theme.'
|
tagline: A text-focused Jekyll theme # it will display as the sub-title
|
||||||
|
|
||||||
# Replace with your domain, e.g. 'https://username.github.io'
|
description: >- # used by seo meta and the atom feed
|
||||||
url: 'https://www.example.com'
|
A minimal, responsive and feature-rich Jekyll theme for technical writing.
|
||||||
|
|
||||||
author: your_full_name # change to your full name
|
# Fill in the protocol & hostname for your site.
|
||||||
|
# e.g. 'https://username.github.io', note that it does not end with a '/'.
|
||||||
avatar: /assets/img/sample/avatar.jpg # Support network resources.
|
url: ""
|
||||||
|
|
||||||
github:
|
github:
|
||||||
username: github_username # change to your github username
|
username: github_username # change to your github username
|
||||||
|
|
||||||
twitter:
|
twitter:
|
||||||
username: twitter_username # change to your twitter username
|
username: twitter_username # change to your twitter username
|
||||||
|
|
||||||
social:
|
social:
|
||||||
name: your_full_name # it will shows as the copyright owner in Footer
|
# Change to your full name.
|
||||||
email: example@doamin.com # change to your email address
|
# It will be displayed as the default author of the posts and the copyright owner in the Footer
|
||||||
|
name: your_full_name
|
||||||
|
email: example@domain.com # change to your email address
|
||||||
links:
|
links:
|
||||||
# The first element serves as the copyright owner's link
|
# The first element serves as the copyright owner's link
|
||||||
- https://twitter.com/username # change to your twitter homepage
|
- https://twitter.com/username # change to your twitter homepage
|
||||||
- https://github.com/username # change to your github homepage
|
- https://github.com/username # change to your github homepage
|
||||||
# Uncomment below to add more social links
|
# Uncomment below to add more social links
|
||||||
# - https://www.facebook.com/username
|
# - https://www.facebook.com/username
|
||||||
# - https://www.linkedin.com/in/username
|
# - https://www.linkedin.com/in/username
|
||||||
|
|
||||||
google_site_verification: google_meta_tag_verification # change to your verification string
|
google_site_verification: # fill in to your verification string
|
||||||
|
|
||||||
#--------------------------
|
# ↑ --------------------------
|
||||||
|
# The end of `jekyll-seo-tag` settings
|
||||||
# Change to your timezone › http://www.timezoneconverter.com/cgi-bin/findzone/findzone
|
|
||||||
timezone: Asia/Shanghai
|
|
||||||
|
|
||||||
google_analytics:
|
google_analytics:
|
||||||
# Fill with your Google Analytics ID
|
id: # fill in your Google Analytics ID
|
||||||
id: ''
|
|
||||||
# The Google Analytics pageviews switch.
|
|
||||||
# DO NOT enable it unless you know how to deploy the Google Analytics superProxy.
|
|
||||||
pv: false
|
|
||||||
# superProxy baseURL and URL, only valid when `google_analytics.pv` is set to 'true'
|
|
||||||
proxy_baseurl: ''
|
|
||||||
proxy_url: ''
|
|
||||||
|
|
||||||
|
# Prefer color scheme setting.
|
||||||
|
#
|
||||||
|
# Note: Keep empty will follow the system prefer color by default,
|
||||||
|
# and there will be a toggle to switch the theme between dark and light
|
||||||
|
# on the bottom left of the sidebar.
|
||||||
|
#
|
||||||
|
# Available options:
|
||||||
|
#
|
||||||
|
# light - Use the light color scheme
|
||||||
|
# dark - Use the dark color scheme
|
||||||
|
#
|
||||||
|
theme_mode: # [light|dark]
|
||||||
|
|
||||||
disqus:
|
# The CDN endpoint for images.
|
||||||
shortname: 'disqus' # Change to your Disqus shortname. › https://help.disqus.com/en/articles/1717111-what-s-a-shortname
|
# Notice that once it is assigned, the CDN url
|
||||||
comments: true # boolean type, the global switch for posts comments.
|
# will be added to all image (site avatar & posts' images) paths starting with '/'
|
||||||
|
#
|
||||||
|
# e.g. 'https://cdn.com'
|
||||||
|
img_cdn: "https://chirpy-img.netlify.app"
|
||||||
|
|
||||||
# The year your website was first run.
|
# the avatar on sidebar, support local or CORS resources
|
||||||
first_run: 2019
|
avatar: "/commons/avatar.jpg"
|
||||||
|
|
||||||
# boolean type, global switch for ToC in posts.
|
# The URL of the site-wide social preview image used in SEO `og:image` meta tag.
|
||||||
|
# It can be overridden by a customized `page.image` in front matter.
|
||||||
|
social_preview_image: # string, local or CORS resources
|
||||||
|
|
||||||
|
# boolean type, the global switch for TOC in posts.
|
||||||
toc: true
|
toc: true
|
||||||
|
|
||||||
|
comments:
|
||||||
|
active: # The global switch for posts comments, e.g., 'disqus'. Keep it empty means disable
|
||||||
|
# The active options are as follows:
|
||||||
|
disqus:
|
||||||
|
shortname: # fill with the Disqus shortname. › https://help.disqus.com/en/articles/1717111-what-s-a-shortname
|
||||||
|
# utterances settings › https://utteranc.es/
|
||||||
|
utterances:
|
||||||
|
repo: # <gh-username>/<repo>
|
||||||
|
issue_term: # < url | pathname | title | ...>
|
||||||
|
# Giscus options › https://giscus.app
|
||||||
|
giscus:
|
||||||
|
repo: # <gh-username>/<repo>
|
||||||
|
repo_id:
|
||||||
|
category:
|
||||||
|
category_id:
|
||||||
|
mapping: # optional, default to 'pathname'
|
||||||
|
input_position: # optional, default to 'bottom'
|
||||||
|
lang: # optional, default to the value of `site.lang`
|
||||||
|
reactions_enabled: # optional, default to the value of `1`
|
||||||
|
|
||||||
# if your site type is Project Pages site, change below value to '/projectname'
|
# Self-hosted static assets, optional › https://github.com/cotes2020/chirpy-static-assets
|
||||||
baseurl: ''
|
assets:
|
||||||
|
self_host:
|
||||||
|
enabled: # boolean, keep empty means false
|
||||||
|
# specify the Jekyll environment, empty means both
|
||||||
|
# only works if `assets.self_host.enabled` is 'true'
|
||||||
|
env: # [development|production]
|
||||||
|
|
||||||
|
pwa:
|
||||||
|
enabled: true # the option for PWA feature
|
||||||
|
|
||||||
paginate: 10
|
paginate: 10
|
||||||
|
|
||||||
markdown: kramdown
|
# The base URL of your site
|
||||||
|
baseurl: ""
|
||||||
|
|
||||||
highlighter: rouge
|
# ------------ The following options are not recommended to be modified ------------------
|
||||||
|
|
||||||
kramdown:
|
kramdown:
|
||||||
input: GFM
|
|
||||||
syntax_highlighter: rouge
|
syntax_highlighter: rouge
|
||||||
syntax_highlighter_opts: # Rouge Options › https://github.com/jneen/rouge#full-options
|
syntax_highlighter_opts: # Rouge Options › https://github.com/jneen/rouge#full-options
|
||||||
css_class: 'highlight'
|
css_class: highlight
|
||||||
# default_lang: console
|
# default_lang: console
|
||||||
span:
|
span:
|
||||||
line_numbers: false
|
line_numbers: false
|
||||||
@@ -84,91 +131,68 @@ kramdown:
|
|||||||
line_numbers: true
|
line_numbers: true
|
||||||
start_line: 1
|
start_line: 1
|
||||||
|
|
||||||
permalink: /posts/:title/
|
collections:
|
||||||
|
tabs:
|
||||||
|
output: true
|
||||||
|
sort_by: order
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
-
|
- scope:
|
||||||
scope:
|
path: "" # An empty string here means all files in the project
|
||||||
path: "" # An empty string here means all files in the project
|
|
||||||
type: posts
|
type: posts
|
||||||
values:
|
values:
|
||||||
layout: post
|
layout: post
|
||||||
comments: true # Enable comments in posts.
|
comments: true # Enable comments in posts.
|
||||||
toc: true # Display TOC column in posts.
|
toc: true # Display TOC column in posts.
|
||||||
location: Post
|
# DO NOT modify the following parameter unless you are confident enough
|
||||||
breadcrumb:
|
# to update the code of all other post links in this project.
|
||||||
-
|
permalink: /posts/:title/
|
||||||
label: Posts
|
- scope:
|
||||||
url: /
|
|
||||||
-
|
|
||||||
scope:
|
|
||||||
path: _drafts
|
path: _drafts
|
||||||
values:
|
values:
|
||||||
comments: false
|
comments: false
|
||||||
-
|
- scope:
|
||||||
scope:
|
path: ""
|
||||||
path: tags
|
type: tabs # see `site.collections`
|
||||||
values:
|
|
||||||
location: Tag
|
|
||||||
breadcrumb:
|
|
||||||
-
|
|
||||||
label: Home
|
|
||||||
url: /
|
|
||||||
-
|
|
||||||
label: Tags
|
|
||||||
url: /tabs/tags/
|
|
||||||
-
|
|
||||||
scope:
|
|
||||||
path: categories
|
|
||||||
values:
|
|
||||||
location: Category
|
|
||||||
breadcrumb:
|
|
||||||
-
|
|
||||||
label: Home
|
|
||||||
url: /
|
|
||||||
-
|
|
||||||
label: Categories
|
|
||||||
url: /tabs/categories/
|
|
||||||
-
|
|
||||||
scope:
|
|
||||||
path: tabs
|
|
||||||
values:
|
values:
|
||||||
layout: page
|
layout: page
|
||||||
dynamic_title: true # Hide title in mobile screens.
|
permalink: /:title/
|
||||||
breadcrumb:
|
- scope:
|
||||||
-
|
path: assets/img/favicons
|
||||||
label: Home
|
values:
|
||||||
url: /
|
swcache: true
|
||||||
|
- scope:
|
||||||
|
path: assets/js/dist
|
||||||
|
values:
|
||||||
|
swcache: true
|
||||||
|
|
||||||
sass:
|
sass:
|
||||||
sass_dir: /assets/css
|
|
||||||
style: compressed
|
style: compressed
|
||||||
|
|
||||||
compress_html:
|
compress_html:
|
||||||
clippings: all
|
clippings: all
|
||||||
comments: ["<!-- ", " -->"]
|
comments: all
|
||||||
endings: [html, head, body, dt, dd, rt, rp, optgroup, option, colgroup, caption, thead, tbody, tfoot, tr, td, th]
|
endings: all
|
||||||
profile: false
|
profile: false
|
||||||
blanklines: false
|
blanklines: false
|
||||||
ignore:
|
ignore:
|
||||||
envs: []
|
envs: [development]
|
||||||
|
|
||||||
exclude:
|
exclude:
|
||||||
- vendor/ # Avoid Jekyll mistakenly read the vender directory on Travis-CI's VM .
|
- "*.gem"
|
||||||
- Gemfile.lock
|
- "*.gemspec"
|
||||||
- Gemfile
|
- docs
|
||||||
- run.sh
|
- tools
|
||||||
- build.sh
|
- README.md
|
||||||
- init.sh
|
- LICENSE
|
||||||
- pv.sh
|
- rollup.config.js
|
||||||
|
- package*.json
|
||||||
|
|
||||||
sitemap_exclude: # Sitemap will exclude the following items.
|
jekyll-archives:
|
||||||
- /norobots/
|
enabled: [categories, tags]
|
||||||
- /assets/
|
layouts:
|
||||||
- /tabs/
|
category: category
|
||||||
- /categories/
|
tag: tag
|
||||||
- /tags/
|
permalinks:
|
||||||
- /posts/
|
tag: /tags/:name/
|
||||||
- /404.html
|
category: /categories/:name/
|
||||||
- /redirects.json
|
|
||||||
- /search.json
|
|
||||||
|
|||||||
17
_data/authors.yml
Normal file
17
_data/authors.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
## Template › https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/advanced-usage.md#setting-author-url
|
||||||
|
# -------------------------------------
|
||||||
|
# {author_id}:
|
||||||
|
# name: {full name}
|
||||||
|
# twitter: {twitter_of_author}
|
||||||
|
# url: {homepage_of_author}
|
||||||
|
# -------------------------------------
|
||||||
|
|
||||||
|
cotes:
|
||||||
|
name: Cotes Chung
|
||||||
|
twitter: cotes2020
|
||||||
|
url: https://github.com/cotes2020/
|
||||||
|
|
||||||
|
sille_bille:
|
||||||
|
name: Dinesh Prasanth Moluguwan Krishnamoorthy
|
||||||
|
twitter: dinesh_MKD
|
||||||
|
url: https://github.com/SilleBille/
|
||||||
28
_data/contact.yml
Normal file
28
_data/contact.yml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# The contact options.
|
||||||
|
|
||||||
|
- type: github
|
||||||
|
icon: "fab fa-github"
|
||||||
|
|
||||||
|
- type: twitter
|
||||||
|
icon: "fa-brands fa-x-twitter"
|
||||||
|
|
||||||
|
- type: email
|
||||||
|
icon: "fas fa-envelope"
|
||||||
|
noblank: true # open link in current tab
|
||||||
|
|
||||||
|
- type: rss
|
||||||
|
icon: "fas fa-rss"
|
||||||
|
noblank: true
|
||||||
|
# Uncomment and complete the url below to enable more contact options
|
||||||
|
#
|
||||||
|
# - type: mastodon
|
||||||
|
# icon: 'fab fa-mastodon' # icons powered by <https://fontawesome.com/>
|
||||||
|
# url: '' # Fill with your Mastodon account page, rel="me" will be applied for verification
|
||||||
|
#
|
||||||
|
# - type: linkedin
|
||||||
|
# icon: 'fab fa-linkedin' # icons powered by <https://fontawesome.com/>
|
||||||
|
# url: '' # Fill with your Linkedin homepage
|
||||||
|
#
|
||||||
|
# - type: stack-overflow
|
||||||
|
# icon: 'fab fa-stack-overflow'
|
||||||
|
# url: '' # Fill with your stackoverflow homepage
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
# The label text of site.
|
|
||||||
# © 2017-2019 Cotes Chung
|
|
||||||
# MIT Licensed
|
|
||||||
|
|
||||||
tabs:
|
|
||||||
- { name: "Home", icon: 'fas fa-home' }
|
|
||||||
- { name: "Categories", path: tabs, url: categories, icon: 'fas fa-stream' }
|
|
||||||
- { name: "Tags", path: tabs, url: tags, icon: 'fas fa-tags' }
|
|
||||||
- { name: "Archives", path: tabs, url: archives, icon: 'fas fa-archive'}
|
|
||||||
- { name: "About", path: tabs, url: about, icon: 'fas fa-info'}
|
|
||||||
|
|
||||||
panel:
|
|
||||||
lastmod: "Recent Update"
|
|
||||||
trending_tags: "Trending Tags"
|
|
||||||
toc: "Contents"
|
|
||||||
|
|
||||||
search_hint: "Search" # text show on search bar
|
|
||||||
91
_data/locales/ar.yml
Normal file
91
_data/locales/ar.yml
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: منشور
|
||||||
|
category: فئة
|
||||||
|
tag: وسم
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: الرئيسية
|
||||||
|
categories: الفئات
|
||||||
|
tags: الوسوم
|
||||||
|
archives: الأرشيف
|
||||||
|
about: حول
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: بحث
|
||||||
|
cancel: إلغاء
|
||||||
|
no_results: نأسف! لا يوجد نتائج.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: المحدثة مؤخرا
|
||||||
|
trending_tags: الوسوم الشائعة
|
||||||
|
toc: محتويات
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: هذا المنشور تحت ترخيص :LICENSE_NAME بواسطة المؤلف.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: بعض الحقوق محفوظة.
|
||||||
|
verbose: >-
|
||||||
|
ما لم يذكر خلاف ذلك ، يتم ترخيص منشورات المدونة على هذا الموقع
|
||||||
|
بموجب ترخيص Creative Commons Attribution 4.0 International (CC BY 4.0) من قبل المؤلف.
|
||||||
|
|
||||||
|
meta: باستخدام :PLATFORM السمة :THEME
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: عذرا, الرابط التالي غير صالح أو انه يشير إلى صفحة غير موجودة.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: يتوفر اصدار جديد للمحتوى.
|
||||||
|
update: تحديث
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: بواسطة
|
||||||
|
posted: نشّر
|
||||||
|
updated: حدّث
|
||||||
|
words: كلمات
|
||||||
|
pageview_measure: مشاهدات
|
||||||
|
read_time:
|
||||||
|
unit: دقيقة
|
||||||
|
prompt: قراءة
|
||||||
|
relate_posts: إقرأ المزيد
|
||||||
|
share: شارك
|
||||||
|
button:
|
||||||
|
next: الأجدد
|
||||||
|
previous: الأقدم
|
||||||
|
copy_code:
|
||||||
|
succeed: تم النسخ!
|
||||||
|
share_link:
|
||||||
|
title: أنسخ الرابط
|
||||||
|
succeed: تم نسخ الرابط بنجاح!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%b %e, %Y"
|
||||||
|
dayjs: "ll"
|
||||||
|
archives:
|
||||||
|
strftime: "%b"
|
||||||
|
dayjs: "MMM"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: فئة
|
||||||
|
plural: فئات
|
||||||
|
post_measure:
|
||||||
|
singular: منشور
|
||||||
|
plural: منشورات
|
||||||
81
_data/locales/bg-BG.yml
Normal file
81
_data/locales/bg-BG.yml
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Публикация
|
||||||
|
category: Категория
|
||||||
|
tag: Таг
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Начало
|
||||||
|
categories: Категории
|
||||||
|
tags: Тагове
|
||||||
|
archives: Архив
|
||||||
|
about: За мен
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: търси
|
||||||
|
cancel: Отмени
|
||||||
|
no_results: Упс! Не са намерени резултати.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Наскоро обновени
|
||||||
|
trending_tags: Популярни тагове
|
||||||
|
toc: Съдържание
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Тази публикация е лицензирана под :LICENSE_NAME от автора.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Някои права запазени.
|
||||||
|
verbose: >-
|
||||||
|
Освен ако не е посочено друго, публикациите в блога на този сайт са лицензирани
|
||||||
|
под лиценза Creative Commons Attribution 4.0 (CC BY 4.0) от автора.
|
||||||
|
|
||||||
|
meta: Създадено чрез :PLATFORM и :THEME тема
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Съжалявам, но на този URL адрес няма налично съдържание.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Налична е нова версия на съдържанието.
|
||||||
|
update: Обнови
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Автор
|
||||||
|
posted: Публикувана
|
||||||
|
updated: Обновена
|
||||||
|
words: думи
|
||||||
|
pageview_measure: преглеждания
|
||||||
|
read_time:
|
||||||
|
unit: мин
|
||||||
|
prompt: четиво
|
||||||
|
relate_posts: Още за четене
|
||||||
|
share: Споделете
|
||||||
|
button:
|
||||||
|
next: По-нови
|
||||||
|
previous: По-стари
|
||||||
|
copy_code:
|
||||||
|
succeed: Копирано!
|
||||||
|
share_link:
|
||||||
|
title: Копирай линк
|
||||||
|
succeed: Линкът е копиран успешно!
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: категория
|
||||||
|
plural: категории
|
||||||
|
post_measure:
|
||||||
|
singular: публикация
|
||||||
|
plural: публикации
|
||||||
89
_data/locales/cs-CZ.yml
Normal file
89
_data/locales/cs-CZ.yml
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Příspěvek
|
||||||
|
category: Kategorie
|
||||||
|
tag: Štítek
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Domů
|
||||||
|
categories: Kategorie
|
||||||
|
tags: Štítky
|
||||||
|
archives: Archivy
|
||||||
|
about: O mně
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: hledat
|
||||||
|
cancel: Zrušit
|
||||||
|
no_results: Ups! Žádný výsledek nenalezen.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Nedávno aktualizováno
|
||||||
|
trending_tags: Trendy štítky
|
||||||
|
toc: Obsah
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Tento příspěvek je licencován pod :LICENSE_NAME autorem.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Některá práva vyhrazena.
|
||||||
|
verbose: >-
|
||||||
|
Pokud není uvedeno jinak, jsou příspěvky na tomto webu licencovány
|
||||||
|
pod licencí Creative Commons Attribution 4.0 International (CC BY 4.0) Licence autora.
|
||||||
|
|
||||||
|
meta: Použití :PLATFORM s motivem :THEME
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Omlouváme se, adresu URL jsme špatně umístili nebo odkazuje na něco, co neexistuje.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Je k dispozici nová verze obsahu.
|
||||||
|
update: Aktualizace
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Od
|
||||||
|
posted: Zveřejněno
|
||||||
|
updated: Aktualizováno
|
||||||
|
words: slova
|
||||||
|
pageview_measure: zhlednutí
|
||||||
|
read_time:
|
||||||
|
unit: minut
|
||||||
|
prompt: čtení
|
||||||
|
relate_posts: Další čtení
|
||||||
|
share: Sdílet
|
||||||
|
button:
|
||||||
|
next: Novější
|
||||||
|
previous: Starší
|
||||||
|
copy_code:
|
||||||
|
succeed: Zkopírováno!
|
||||||
|
share_link:
|
||||||
|
title: Kopírovat odkaz
|
||||||
|
succeed: Zkopírováno!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%b %e, %Y"
|
||||||
|
dayjs: "ll"
|
||||||
|
archives:
|
||||||
|
strftime: "%b"
|
||||||
|
dayjs: "MMM"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: kategorie
|
||||||
|
post_measure:
|
||||||
|
singular: příspěvěk
|
||||||
|
plural: příspěvky
|
||||||
87
_data/locales/de-DE.yml
Normal file
87
_data/locales/de-DE.yml
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Eintrag
|
||||||
|
category: Kategorie
|
||||||
|
tag: Tag
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Startseite
|
||||||
|
categories: Kategorien
|
||||||
|
tags: Tags
|
||||||
|
archives: Archiv
|
||||||
|
about: Über
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: Suche
|
||||||
|
cancel: Abbrechen
|
||||||
|
no_results: Ups! Keine Einträge gefunden.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Kürzlich aktualisiert
|
||||||
|
trending_tags: Beliebte Tags
|
||||||
|
toc: Inhalt
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Dieser Eintrag ist vom Autor unter :LICENSE_NAME lizensiert.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Einige Rechte vorbehalten.
|
||||||
|
verbose: >-
|
||||||
|
Alle Einträge auf dieser Seite stehen, soweit nicht anders angegeben, unter der Lizenz Creative Commons Attribution 4.0 (CC BY 4.0).
|
||||||
|
|
||||||
|
meta: Powered by :PLATFORM with :THEME theme
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Entschuldigung, dieser Link verweist auf keine vorhandene Ressource.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Eine neue Version ist verfügbar.
|
||||||
|
update: Neue Version
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Von
|
||||||
|
posted: Veröffentlicht
|
||||||
|
updated: Aktualisiert
|
||||||
|
words: Wörter
|
||||||
|
pageview_measure: Aufrufe
|
||||||
|
read_time:
|
||||||
|
unit: Minuten
|
||||||
|
prompt: Lesezeit
|
||||||
|
relate_posts: Weiterlesen
|
||||||
|
share: Teilen
|
||||||
|
button:
|
||||||
|
next: Nächster Eintrag
|
||||||
|
previous: Eintrag vorher
|
||||||
|
copy_code:
|
||||||
|
succeed: Kopiert!
|
||||||
|
share_link:
|
||||||
|
title: Link kopieren
|
||||||
|
succeed: Link erfolgreich kopiert!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%d.%m.%Y"
|
||||||
|
dayjs: "DD.MM.YYYY"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: Kategorie
|
||||||
|
plural: Kategorien
|
||||||
|
post_measure:
|
||||||
|
singular: Eintrag
|
||||||
|
plural: Einträge
|
||||||
91
_data/locales/el-GR.yml
Normal file
91
_data/locales/el-GR.yml
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Δημοσίευση
|
||||||
|
category: Κατηγορία
|
||||||
|
tag: Ετικέτα
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Home
|
||||||
|
categories: Κατηγορίες
|
||||||
|
tags: Ετικέτες
|
||||||
|
archives: Αρχεία
|
||||||
|
about: Σχετικά
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: αναζήτηση
|
||||||
|
cancel: Ακύρωση
|
||||||
|
no_results: Oops! Κανένα αποτέλεσμα δεν βρέθηκε.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Σχετικά ενημερωμένα
|
||||||
|
trending_tags: Ετικέτες τάσης
|
||||||
|
toc: Περιεχόμενα
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Η δημοσίευση αυτή βρίσκεται υπο την άδεια :LICENSE_NAME Greekforce1821.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Ορισμένα δικαιώματα reserved.
|
||||||
|
verbose: >-
|
||||||
|
Εκτός αλλού ή οπουδήποτε αλλού, τα blog posts σε αυτήν την σελίδα βρίσκονται υπο την άδεια
|
||||||
|
Creative Commons Attribution 4.0 International (CC BY 4.0) του δημιουργού.
|
||||||
|
|
||||||
|
meta: Αξιοποιώντας την :PLATFORM theme :THEME
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Συγνώμη, έχουμε τοποθετήσει λάθος αυτήν την διεύθυνση URL ή υποδεικνύει κάτι που δεν υπάρχει.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Υπάρχει διαθέσιμη μια νέα έκδοση του περιεχομένου.
|
||||||
|
update: Ενημέρωση
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Από
|
||||||
|
posted: Δημοσιεύθηκε
|
||||||
|
updated: Ενημερώθηκε
|
||||||
|
words: λέξεις
|
||||||
|
pageview_measure: προβολές
|
||||||
|
read_time:
|
||||||
|
unit: Λεπτά
|
||||||
|
prompt: διαβάσματος
|
||||||
|
relate_posts: Περισσότερα
|
||||||
|
share: Κοινοποιήστε
|
||||||
|
button:
|
||||||
|
next: Νεότερα
|
||||||
|
previous: Παλαιότερα
|
||||||
|
copy_code:
|
||||||
|
succeed: Αντιγράφθηκε!
|
||||||
|
share_link:
|
||||||
|
title: Αντιγραφή συνδέσμου
|
||||||
|
succeed: Η διεύθυνση αντιγράφθηκε με επιτυχία!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%b %e, %Y"
|
||||||
|
dayjs: "ll"
|
||||||
|
archives:
|
||||||
|
strftime: "%b"
|
||||||
|
dayjs: "MMM"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: Κατηγορία
|
||||||
|
plural: Κατηγορίες
|
||||||
|
post_measure:
|
||||||
|
singular: Δημοσίευση
|
||||||
|
plural: Δημοσιεύσεις
|
||||||
91
_data/locales/en.yml
Normal file
91
_data/locales/en.yml
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Post
|
||||||
|
category: Category
|
||||||
|
tag: Tag
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Home
|
||||||
|
categories: Categories
|
||||||
|
tags: Tags
|
||||||
|
archives: Archives
|
||||||
|
about: About
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: search
|
||||||
|
cancel: Cancel
|
||||||
|
no_results: Oops! No results found.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Recently Updated
|
||||||
|
trending_tags: Trending Tags
|
||||||
|
toc: Contents
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: This post is licensed under :LICENSE_NAME by the author.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Some rights reserved.
|
||||||
|
verbose: >-
|
||||||
|
Except where otherwise noted, the blog posts on this site are licensed
|
||||||
|
under the Creative Commons Attribution 4.0 International (CC BY 4.0) License by the author.
|
||||||
|
|
||||||
|
meta: Using the :THEME theme for :PLATFORM.
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Sorry, we've misplaced that URL or it's pointing to something that doesn't exist.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: A new version of content is available.
|
||||||
|
update: Update
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: By
|
||||||
|
posted: Posted
|
||||||
|
updated: Updated
|
||||||
|
words: words
|
||||||
|
pageview_measure: views
|
||||||
|
read_time:
|
||||||
|
unit: min
|
||||||
|
prompt: read
|
||||||
|
relate_posts: Further Reading
|
||||||
|
share: Share
|
||||||
|
button:
|
||||||
|
next: Newer
|
||||||
|
previous: Older
|
||||||
|
copy_code:
|
||||||
|
succeed: Copied!
|
||||||
|
share_link:
|
||||||
|
title: Copy link
|
||||||
|
succeed: Link copied successfully!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%b %e, %Y"
|
||||||
|
dayjs: "ll"
|
||||||
|
archives:
|
||||||
|
strftime: "%b"
|
||||||
|
dayjs: "MMM"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: category
|
||||||
|
plural: categories
|
||||||
|
post_measure:
|
||||||
|
singular: post
|
||||||
|
plural: posts
|
||||||
77
_data/locales/es-ES.yml
Normal file
77
_data/locales/es-ES.yml
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Entrada
|
||||||
|
category: Categoría
|
||||||
|
tag: Etiqueta
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Inicio
|
||||||
|
categories: Categorías
|
||||||
|
tags: Etiquetas
|
||||||
|
archives: Archivo
|
||||||
|
about: Acerca de
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: Buscar
|
||||||
|
cancel: Cancelar
|
||||||
|
no_results: ¡Oops! No se encuentran resultados.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Actualizado recientemente
|
||||||
|
trending_tags: Etiquetas populares
|
||||||
|
toc: Contenido
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Esta entrada está licenciada bajo :LICENSE_NAME por el autor.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Algunos derechos reservados.
|
||||||
|
verbose: >-
|
||||||
|
Salvo que se indique explícitamente, las entradas de este blog están licenciadas
|
||||||
|
bajo la Creative Commons Attribution 4.0 International (CC BY 4.0) License por el autor.
|
||||||
|
|
||||||
|
meta: Hecho con :PLATFORM usando el tema :THEME
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Lo sentimos, hemos perdido esa URL o apunta a algo que no existe.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Hay una nueva versión de contenido disponible.
|
||||||
|
update: Actualizar
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Por
|
||||||
|
posted: Publicado
|
||||||
|
updated: Actualizado
|
||||||
|
words: palabras
|
||||||
|
pageview_measure: visitas
|
||||||
|
read_time:
|
||||||
|
unit: min
|
||||||
|
prompt: " de lectura"
|
||||||
|
relate_posts: Lecturas adicionales
|
||||||
|
share: Compartir
|
||||||
|
button:
|
||||||
|
next: Nuevo
|
||||||
|
previous: Anterior
|
||||||
|
copy_code:
|
||||||
|
succeed: ¡Copiado!
|
||||||
|
share_link:
|
||||||
|
title: Copiar enlace
|
||||||
|
succeed: ¡Enlace copiado!
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: categorias
|
||||||
|
post_measure: entradas
|
||||||
90
_data/locales/fi-FI.yml
Normal file
90
_data/locales/fi-FI.yml
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Julkaisu
|
||||||
|
category: Kateogoria
|
||||||
|
tag: Tagi
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Koti
|
||||||
|
categories: Kateogoriat
|
||||||
|
tags: Tagit
|
||||||
|
archives: Arkistot
|
||||||
|
about: Minusta
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: etsi
|
||||||
|
cancel: Peruuta
|
||||||
|
no_results: Hups! Ei tuloksia.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Viimeksi päivitetty
|
||||||
|
trending_tags: Trendaavat tagit
|
||||||
|
toc: Sisältö
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Tämä julkaisu on lisenssoitu :LICENSE_NAME julkaisijan toimesta.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Jotkut oikeudet pidätetään.
|
||||||
|
verbose: >-
|
||||||
|
Paitsi jos erikseen mainitaan on kaikki sisältö Creative Commons Attribution 4.0 International (CC BY 4.0) Lisensoitu kirjoittajan toimesta.
|
||||||
|
|
||||||
|
meta: Käytetään :PLATFORM iä Teema :THEME
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Valitettavasti tällä URL-osoitteella ei ole saatavilla sisältöä.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Uusi versio sisällöstä on saatavilla.
|
||||||
|
update: Päivitä
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Kirjoittaja
|
||||||
|
posted: Julkaistu
|
||||||
|
updated: Päivitetty
|
||||||
|
words: sanaa
|
||||||
|
pageview_measure: katselukertoja
|
||||||
|
read_time:
|
||||||
|
unit: minuuttia
|
||||||
|
prompt: lukea
|
||||||
|
relate_posts: Jatka lukemista
|
||||||
|
share: Jaa
|
||||||
|
button:
|
||||||
|
next: Uudempi
|
||||||
|
previous: Vanhempi
|
||||||
|
copy_code:
|
||||||
|
succeed: Kopiotu!
|
||||||
|
share_link:
|
||||||
|
title: Kopioi linkki
|
||||||
|
succeed: Linkki kopioitu onnistuneesti!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%b %e, %Y"
|
||||||
|
dayjs: "ll"
|
||||||
|
archives:
|
||||||
|
strftime: "%b"
|
||||||
|
dayjs: "MMM"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: kategoria
|
||||||
|
plural: kategoriat
|
||||||
|
post_measure:
|
||||||
|
singular: julkaisu
|
||||||
|
plural: julkaisut
|
||||||
77
_data/locales/fr-FR.yml
Normal file
77
_data/locales/fr-FR.yml
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Post
|
||||||
|
category: Catégorie
|
||||||
|
tag: Tag
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Accueil
|
||||||
|
categories: Catégories
|
||||||
|
tags: Tags
|
||||||
|
archives: Archives
|
||||||
|
about: A propos de
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: recherche
|
||||||
|
cancel: Annuler
|
||||||
|
no_results: Oups ! Aucun résultat trouvé.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Récemment mis à jour
|
||||||
|
trending_tags: Tags tendance
|
||||||
|
toc: Contenu
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Cet article est sous licence :LICENSE_NAME par l'auteur.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Certains droits réservés.
|
||||||
|
verbose: >-
|
||||||
|
Sauf mention contraire, les articles de ce site sont publiés sous licence
|
||||||
|
sous la licence Creative Commons Attribution 4.0 International (CC BY 4.0) par l'auteur.
|
||||||
|
|
||||||
|
meta: Propulsé par :PLATFORM avec le thème :THEME
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Désolé, nous avons égaré cette URL ou elle pointe vers quelque chose qui n'existe pas.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Une nouvelle version du contenu est disponible.
|
||||||
|
update: Mise à jour
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Par
|
||||||
|
posted: Posté
|
||||||
|
updated: Mis à jour
|
||||||
|
words: mots
|
||||||
|
pageview_measure: vues
|
||||||
|
read_time:
|
||||||
|
unit: min
|
||||||
|
prompt: lire
|
||||||
|
relate_posts: Autres lectures
|
||||||
|
share: Partager
|
||||||
|
button:
|
||||||
|
next: Plus récent
|
||||||
|
previous: Plus ancien
|
||||||
|
copy_code:
|
||||||
|
succeed: Copié !
|
||||||
|
share_link:
|
||||||
|
title: Copier le lien
|
||||||
|
succeed: Lien copié avec succès !
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: catégories
|
||||||
|
post_measure: posts
|
||||||
79
_data/locales/hu-HU.yml
Normal file
79
_data/locales/hu-HU.yml
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Bejegyzés
|
||||||
|
category: Kategória
|
||||||
|
tag: Címke
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Kezdőlap
|
||||||
|
categories: Kategóriák
|
||||||
|
tags: Címkék
|
||||||
|
archives: Archívum
|
||||||
|
about: Rólam
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: keresés
|
||||||
|
cancel: Mégse
|
||||||
|
no_results: Oops! Nincs találat a keresésre.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Legutóbb frissítve
|
||||||
|
trending_tags: Népszerű Címkék
|
||||||
|
toc: Tartalom
|
||||||
|
links: Blog linkek
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: A bejegyzés :LICENSE_NAME licenccel rendelkezik.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Néhány jog fenntartva.
|
||||||
|
verbose: >-
|
||||||
|
Az oldalon található tartalmak
|
||||||
|
Creative Commons Attribution 4.0 International (CC BY 4.0) licenccel rendelkeznek,
|
||||||
|
hacsak másképp nincs jelezve.
|
||||||
|
|
||||||
|
meta: Készítve :PLATFORM motorral :THEME témával
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Sajnáljuk, az URL-t rosszul helyeztük el, vagy valami nem létezőre mutat.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Elérhető a tartalom új verziója.
|
||||||
|
update: Frissítés
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Szerző
|
||||||
|
posted: Létrehozva
|
||||||
|
updated: Frissítve
|
||||||
|
words: szó
|
||||||
|
pageview_measure: látogató
|
||||||
|
read_time:
|
||||||
|
unit: perc
|
||||||
|
prompt: elolvasni
|
||||||
|
relate_posts: További olvasnivaló
|
||||||
|
share: Megosztás
|
||||||
|
button:
|
||||||
|
next: Újabb
|
||||||
|
previous: Régebbi
|
||||||
|
copy_code:
|
||||||
|
succeed: Másolva!
|
||||||
|
share_link:
|
||||||
|
title: Link másolása
|
||||||
|
succeed: Link sikeresen másolva!
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: kategória
|
||||||
|
post_measure: bejegyzés
|
||||||
77
_data/locales/id-ID.yml
Normal file
77
_data/locales/id-ID.yml
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Postingan
|
||||||
|
category: Kategori
|
||||||
|
tag: Tagar
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Beranda
|
||||||
|
categories: Kategori
|
||||||
|
tags: Tagar
|
||||||
|
archives: Arsip
|
||||||
|
about: Tentang
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: Cari
|
||||||
|
cancel: Batal
|
||||||
|
no_results: Ups! Tidak ada hasil yang ditemukan.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Postingan Terbaru
|
||||||
|
trending_tags: Tagar Terpopuler
|
||||||
|
toc: Konten
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Postingan ini dilisensikan di bawah :LICENSE_NAME oleh penulis.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Sebagian konten dilindungi.
|
||||||
|
verbose: >-
|
||||||
|
Kecuali jika dinyatakan, Postingan blog di situs ini dilisensikan
|
||||||
|
di bawah Lisensi Creative Commons Attribution 4.0 International (CC BY 4.0) oleh penulis.
|
||||||
|
|
||||||
|
meta: Didukung oleh :PLATFORM dengan tema :THEME
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Maaf, kami gagal menemukan URL itu atau memang mengarah ke sesuatu yang tidak ada.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Versi konten baru tersedia.
|
||||||
|
update: Perbarui
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Oleh
|
||||||
|
posted: Diterbitkan
|
||||||
|
updated: Diperbarui
|
||||||
|
words: kata
|
||||||
|
pageview_measure: dilihat
|
||||||
|
read_time:
|
||||||
|
unit: menit
|
||||||
|
prompt: baca
|
||||||
|
relate_posts: Postingan Lainya
|
||||||
|
share: Bagikan
|
||||||
|
button:
|
||||||
|
next: Terbaru
|
||||||
|
previous: Terlama
|
||||||
|
copy_code:
|
||||||
|
succeed: Disalin!
|
||||||
|
share_link:
|
||||||
|
title: Salin tautan
|
||||||
|
succeed: Tautan berhasil disalin!
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: kategori
|
||||||
|
post_measure: Postingan
|
||||||
90
_data/locales/it-IT.yml
Normal file
90
_data/locales/it-IT.yml
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Post
|
||||||
|
category: Categoria
|
||||||
|
tag: Tag
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Pagina principale
|
||||||
|
categories: Categorie
|
||||||
|
tags: Tags
|
||||||
|
archives: Archivio
|
||||||
|
about: Informazioni
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: ricerca
|
||||||
|
cancel: Cancella
|
||||||
|
no_results: Oops! La ricerca non ha fornito risultati.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Aggiornati recentemente
|
||||||
|
trending_tags: Tags più cliccati
|
||||||
|
toc: Contenuti
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Questo post è sotto licenza :LICENSE_NAME a nome dell'autore.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Alcuni diritti riservati.
|
||||||
|
verbose: >-
|
||||||
|
Eccetto quando esplicitamente menzionato, i post di questo blog sono da ritenersi sotto
|
||||||
|
i termini di licenza Creative Commons Attribution 4.0 International (CC BY 4.0).
|
||||||
|
|
||||||
|
meta: Servizio offerto da :PLATFORM con tema :THEME
|
||||||
|
not_found:
|
||||||
|
statment: Ci scusiamo, non è stato possibile trovare l'URL in questione. Potrebbe puntare ad una pagina non esistente.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Nuova versione del contenuto disponibile.
|
||||||
|
update: Aggiornamento
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Da
|
||||||
|
posted: Postato
|
||||||
|
updated: Aggiornato
|
||||||
|
words: parole
|
||||||
|
pageview_measure: visioni
|
||||||
|
read_time:
|
||||||
|
unit: min
|
||||||
|
prompt: lettura
|
||||||
|
relate_posts: Continua a leggere
|
||||||
|
share: Condividi
|
||||||
|
button:
|
||||||
|
next: Più recenti
|
||||||
|
previous: Meno recenti
|
||||||
|
copy_code:
|
||||||
|
succeed: Copiato!
|
||||||
|
share_link:
|
||||||
|
title: Copia link
|
||||||
|
succeed: Link copiato con successo!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%b %e, %Y"
|
||||||
|
dayjs: "ll"
|
||||||
|
archives:
|
||||||
|
strftime: "%b"
|
||||||
|
dayjs: "MMM"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: categoria
|
||||||
|
plural: categorie
|
||||||
|
post_measure:
|
||||||
|
singular: post
|
||||||
|
plural: posts
|
||||||
84
_data/locales/ko-KR.yml
Normal file
84
_data/locales/ko-KR.yml
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: 포스트
|
||||||
|
category: 카테고리
|
||||||
|
tag: 태그
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: 홈
|
||||||
|
categories: 카테고리
|
||||||
|
tags: 태그
|
||||||
|
archives: 아카이브
|
||||||
|
about: 정보
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: 검색
|
||||||
|
cancel: 취소
|
||||||
|
no_results: 검색 결과가 없습니다.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: 최근 업데이트
|
||||||
|
trending_tags: 인기 태그
|
||||||
|
toc: 바로가기
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: 이 기사는 저작권자의 :LICENSE_NAME 라이센스를 따릅니다.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: 일부 권리 보유
|
||||||
|
verbose: >-
|
||||||
|
명시되지 않는 한 이 사이트의 블로그 게시물은 작성자의
|
||||||
|
Creative Commons Attribution 4.0 International(CC BY 4.0) 라이선스에 따라 사용이 허가되었습니다.
|
||||||
|
|
||||||
|
meta: Powered by :PLATFORM with :THEME theme
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: 해당 URL은 존재하지 않습니다.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: 새 버전의 콘텐츠를 사용할 수 있습니다.
|
||||||
|
update: 업데이트
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: By
|
||||||
|
posted: 게시
|
||||||
|
updated: 업데이트
|
||||||
|
words: 단어
|
||||||
|
pageview_measure: 조회
|
||||||
|
read_time:
|
||||||
|
unit: 분
|
||||||
|
prompt: 읽는 시간
|
||||||
|
relate_posts: 관련된 글
|
||||||
|
share: 공유하기
|
||||||
|
button:
|
||||||
|
next: 다음 글
|
||||||
|
previous: 이전 글
|
||||||
|
copy_code:
|
||||||
|
succeed: 복사되었습니다!
|
||||||
|
share_link:
|
||||||
|
title: 링크 복사하기
|
||||||
|
succeed: 링크가 복사되었습니다!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%Y/%m/%d"
|
||||||
|
dayjs: "YYYY/MM/DD"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: 카테고리
|
||||||
|
post_measure: 포스트
|
||||||
77
_data/locales/my-MM.yml
Normal file
77
_data/locales/my-MM.yml
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: ပို့စ်
|
||||||
|
category: ကဏ္ဍ
|
||||||
|
tag: နာမ(တက်ဂ်)
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: အဓိကစာမျက်နှာ
|
||||||
|
categories: ကဏ္ဍများ
|
||||||
|
tags: နာမ(တက်ဂ်)များ
|
||||||
|
archives: မှတ်တမ်းတိုက်
|
||||||
|
about: အကြောင်းအရာ
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: ရှာဖွေမည်
|
||||||
|
cancel: ဖျက်သိမ်းမည်
|
||||||
|
no_results: အိုး! ဘာမှမရှိပါ
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: မကြာသေးမီကမွမ်းမံထားသည်
|
||||||
|
trending_tags: ခေတ်စားနေသည့်တက်ဂ်များ
|
||||||
|
toc: အကြောင်းအရာများ
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: ဤပို့စ်သည်စာရေးသူ၏ :LICENSE_NAME လိုင်စင်ရထားသည်။
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: မူပိုင်ခွင့်အချို့ကို လက်ဝယ်ထားသည်။
|
||||||
|
verbose: >-
|
||||||
|
အခြားမှတ်သားထားချက်များမှလွဲ၍ ဤဆိုက်ရှိ ဘလော့ဂ်ပို့စ်များသည် စာရေးသူ၏
|
||||||
|
Creative Commons Attribution 4.0 International (CC BY 4.0) အောက်တွင် လိုင်စင်ရထားပါသည်။
|
||||||
|
|
||||||
|
meta: Powered by :PLATFORM with :THEME theme
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: ဝမ်းနည်းပါသည်၊ ကျွန်ုပ်တို့သည် အဆိုပါ URL ကို မှားယွင်းစွာ နေရာချထားခြင်း သို့မဟုတ် ၎င်းသည် မရှိသောအရာကို ညွှန်ပြနေပါသည်။
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: အကြောင်းအရာဗားရှင်းအသစ်ကို ရနိုင်ပါပြီ။
|
||||||
|
update: အပ်ဒိတ်
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: ကရေးသားခဲ့သည်။
|
||||||
|
posted: တင်ထားခဲ့သည်။
|
||||||
|
updated: မွမ်းမံထားခဲ့သည်။
|
||||||
|
words: စကားလုံးများ
|
||||||
|
pageview_measure: အမြင်များ
|
||||||
|
read_time:
|
||||||
|
unit: မိနစ်
|
||||||
|
prompt: ဖတ်ပါမည်
|
||||||
|
relate_posts: နောက်ထပ်ဖတ်ရန်
|
||||||
|
share: မျှဝေရန်
|
||||||
|
button:
|
||||||
|
next: အသစ်များ
|
||||||
|
previous: အဟောင်းများ
|
||||||
|
copy_code:
|
||||||
|
succeed: ကူးယူလိုက်ပြီ။
|
||||||
|
share_link:
|
||||||
|
title: လင့်ခ်ကို ကူးယူရန်
|
||||||
|
succeed: လင့်ခ်ကို ကူးယူလိုက်ပြီ။
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: ကဏ္ဍများ
|
||||||
|
post_measure: ပို့စ်များ
|
||||||
77
_data/locales/pt-BR.yml
Normal file
77
_data/locales/pt-BR.yml
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Post
|
||||||
|
category: Categoria
|
||||||
|
tag: Tag
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Home
|
||||||
|
categories: Categorias
|
||||||
|
tags: Tags
|
||||||
|
archives: Arquivos
|
||||||
|
about: Sobre
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: Buscar
|
||||||
|
cancel: Cancelar
|
||||||
|
no_results: Oops! Nenhum resultado encontrado.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Atualizados recentemente
|
||||||
|
trending_tags: Trending Tags
|
||||||
|
toc: Conteúdo
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Esta postagem está licenciada sob :LICENSE_NAME pelo autor.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Alguns direitos reservados.
|
||||||
|
verbose: >-
|
||||||
|
Exceto onde indicado de outra forma, as postagens do blog neste site são licenciadas sob a
|
||||||
|
Creative Commons Attribution 4.0 International (CC BY 4.0) License pelo autor.
|
||||||
|
|
||||||
|
meta: Feito com :PLATFORM usando o tema :THEME
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Desculpe, a página não foi encontrada.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Uma nova versão do conteúdo está disponível.
|
||||||
|
update: atualização
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Por
|
||||||
|
posted: Postado em
|
||||||
|
updated: Atualizado
|
||||||
|
words: palavras
|
||||||
|
pageview_measure: visualizações
|
||||||
|
read_time:
|
||||||
|
unit: min
|
||||||
|
prompt: " de leitura"
|
||||||
|
relate_posts: Leia também
|
||||||
|
share: Compartilhar
|
||||||
|
button:
|
||||||
|
next: Próximo
|
||||||
|
previous: Anterior
|
||||||
|
copy_code:
|
||||||
|
succeed: Copiado!
|
||||||
|
share_link:
|
||||||
|
title: Copie o link
|
||||||
|
succeed: Link copiado com sucesso!
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: categorias
|
||||||
|
post_measure: posts
|
||||||
87
_data/locales/ru-RU.yml
Normal file
87
_data/locales/ru-RU.yml
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Пост
|
||||||
|
category: Категория
|
||||||
|
tag: Тег
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Главная
|
||||||
|
categories: Категории
|
||||||
|
tags: Теги
|
||||||
|
archives: Архив
|
||||||
|
about: О сайте
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: поиск
|
||||||
|
cancel: Отмена
|
||||||
|
no_results: Упс! Ничего не найдено.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Недавно обновлено
|
||||||
|
trending_tags: Популярные теги
|
||||||
|
toc: Содержание
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Авторский пост защищен лицензией :LICENSE_NAME.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Некоторые права защищены.
|
||||||
|
verbose: >-
|
||||||
|
Если не указано иное, авторские посты на этом сайте защищены лицензией Creative Commons Attribution 4.0 International (CC BY 4.0).
|
||||||
|
|
||||||
|
meta: Использует тему :THEME для :PLATFORM
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Извините, мы перепутали URL-адрес или он указывает на что-то несуществующее.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Доступна новая версия контента.
|
||||||
|
update: Обновить
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Автор
|
||||||
|
posted: Опубликовано
|
||||||
|
updated: Обновлено
|
||||||
|
words: слов
|
||||||
|
pageview_measure: просмотров
|
||||||
|
read_time:
|
||||||
|
unit: мин.
|
||||||
|
prompt: чтения
|
||||||
|
relate_posts: Похожие посты
|
||||||
|
share: Поделиться
|
||||||
|
button:
|
||||||
|
next: Следующий пост
|
||||||
|
previous: Предыдущий пост
|
||||||
|
copy_code:
|
||||||
|
succeed: Скопировано!
|
||||||
|
share_link:
|
||||||
|
title: Скопировать ссылку
|
||||||
|
succeed: Ссылка успешно скопирована!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%d.%m.%Y"
|
||||||
|
dayjs: "DD.MM.YYYY"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: категория
|
||||||
|
plural: категории
|
||||||
|
post_measure:
|
||||||
|
singular: пост
|
||||||
|
plural: посты
|
||||||
91
_data/locales/sl-SI.yml
Normal file
91
_data/locales/sl-SI.yml
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Objava #Post
|
||||||
|
category: Kategorija #Category
|
||||||
|
tag: Oznaka #Tag
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Domov #Home
|
||||||
|
categories: Kategorije #Categories
|
||||||
|
tags: Oznake #Tags
|
||||||
|
archives: Arhiv #Archives
|
||||||
|
about: O meni #About
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: išči #search
|
||||||
|
cancel: Prekliči #Cancel
|
||||||
|
no_results: Ups! Vsebina ni bila najdena #Oops! No results found.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Nedavno Posodobljeno #Recently Updated
|
||||||
|
trending_tags: Priljubljene Oznake #Trending Tags
|
||||||
|
toc: Vsebina #Contents
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Ta objava je licencirana pod :LICENCE_NAME s strani avtorja. #This post is licensed under :LICENSE_NAME by the author.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Nekatere pravice pridržane. #Some rights reserved.
|
||||||
|
verbose: >-
|
||||||
|
Razen kjer navedeno drugače, vse objave spletnega dnevnika so licencirane
|
||||||
|
pod Creative Commons Attribution 4.0 International (CC BY 4.0) s strani avtorja.
|
||||||
|
|
||||||
|
meta: Uporabljena :PLATFORM tema :THEME #Using the :PLATFORM theme :THEME
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Oprostite, hiperpovezava je neustrezna ali vsebina ne obstajata. #Sorry, we've misplaced that URL or it's pointing to something that doesn't exist.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Novejša različica vsebine je na voljo. #A new version of content is available.
|
||||||
|
update: Posodobi #Update
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Od #By
|
||||||
|
posted: Objavljeno #Posted
|
||||||
|
updated: Posodobljeno #Updated
|
||||||
|
words: besede #words
|
||||||
|
pageview_measure: ogledi #views
|
||||||
|
read_time:
|
||||||
|
unit: min
|
||||||
|
prompt: beri #read
|
||||||
|
relate_posts: Nadaljnje branje #Further Reading
|
||||||
|
share: Deli #Share
|
||||||
|
button:
|
||||||
|
next: Novejše #Newer
|
||||||
|
previous: Starejše #Older
|
||||||
|
copy_code:
|
||||||
|
succeed: Kopirano! #Copied!
|
||||||
|
share_link:
|
||||||
|
title: Kopiraj povezavo #Copy link
|
||||||
|
succeed: Povezava uspešno kopirana! #Link copied successfully!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%e %b, %Y"
|
||||||
|
dayjs: "ll"
|
||||||
|
archives:
|
||||||
|
strftime: "%b"
|
||||||
|
dayjs: "MMM"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: kategorija #category
|
||||||
|
plural: kategorije #categories
|
||||||
|
post_measure:
|
||||||
|
singular: objava #post
|
||||||
|
plural: objave #posts
|
||||||
91
_data/locales/sv-SE.yml
Normal file
91
_data/locales/sv-SE.yml
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Inlägg #Post
|
||||||
|
category: Kategori #Category
|
||||||
|
tag: Tagga #Tag
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Hem #Home
|
||||||
|
categories: Kategorier #Categories
|
||||||
|
tags: Taggar #Tags
|
||||||
|
archives: Arkiv #Archives
|
||||||
|
about: Om #About
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: sök
|
||||||
|
cancel: Avbryt
|
||||||
|
no_results: Hoppsan! Hittade inga sökträffar.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Senast uppdaterad
|
||||||
|
trending_tags: Trendande taggar
|
||||||
|
toc: Innehåll
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Den här posten är publicerad under licensen :LICENSE_NAME av författaren.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Vissa rättigheter är reserverade.
|
||||||
|
verbose: >-
|
||||||
|
Om inte annat anges är blogginläggen på denna webbplats licensierade
|
||||||
|
under Creative Commons Attribution 4.0 International (CC BY 4.0) av författaren.
|
||||||
|
|
||||||
|
meta: Byggd med :PLATFORM och temat :THEME
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Ursäkta, vi har tappat bort den här webbadressen eller så pekar den på något som inte längre finns.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Det finns en ny version av innehållet.
|
||||||
|
update: Uppdatera sidan
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Av
|
||||||
|
posted: Postad
|
||||||
|
updated: Uppdaterad
|
||||||
|
words: ord
|
||||||
|
pageview_measure: visningar
|
||||||
|
read_time:
|
||||||
|
unit: min
|
||||||
|
prompt: läsning
|
||||||
|
relate_posts: Mer läsning
|
||||||
|
share: Dela
|
||||||
|
button:
|
||||||
|
next: Nyare
|
||||||
|
previous: Äldre
|
||||||
|
copy_code:
|
||||||
|
succeed: Kopierat!
|
||||||
|
share_link:
|
||||||
|
title: Kopiera länk
|
||||||
|
succeed: Länken har kopierats!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%b %e, %Y"
|
||||||
|
dayjs: "ll"
|
||||||
|
archives:
|
||||||
|
strftime: "%b"
|
||||||
|
dayjs: "MMM"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: kategori
|
||||||
|
plural: kategorier
|
||||||
|
post_measure:
|
||||||
|
singular: inlägg
|
||||||
|
plural: inlägg
|
||||||
91
_data/locales/th.yml
Normal file
91
_data/locales/th.yml
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: โพสต์
|
||||||
|
category: หมวดหมู่
|
||||||
|
tag: แท็ก
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: หน้าแรก
|
||||||
|
categories: หมวดหมู่
|
||||||
|
tags: แท็ก
|
||||||
|
archives: คลังเก็บ
|
||||||
|
about: เกี่ยวกับ
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: ค้นหา
|
||||||
|
cancel: ยกเลิก
|
||||||
|
no_results: โอ๊ะ! ไม่พบผลลัพธ์
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: อัปเดตล่าสุด
|
||||||
|
trending_tags: แท็กยอดนิยม
|
||||||
|
toc: เนื้อหา
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: โพสต์นี้อยู่ภายใต้การอนุญาต :LICENSE_NAME โดยผู้เขียน
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: สงวนลิขสิทธิ์เป็นบางส่วน
|
||||||
|
verbose: >-
|
||||||
|
เว้นแต่ว่าจะระบุเป็นอย่างอื่น โพสต์บนเว็บไซต์นี้อยู่ภายใต้
|
||||||
|
สัญญาอนุญาตครีเอทีฟคอมมอนส์แบบ 4.0 นานาชาติ (CC BY 4.0) โดยผู้เขียน
|
||||||
|
|
||||||
|
meta: กำลังใช้ธีมของ :PLATFORM ชื่อ :THEME
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: ขออภัย เราวาง URL นั้นไว้ผิดที่ หรือมันชี้ไปยังสิ่งที่ไม่มีอยู่
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: มีเวอร์ชันใหม่ของเนื้อหา
|
||||||
|
update: อัปเดต
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: โดย
|
||||||
|
posted: โพสต์เมื่อ
|
||||||
|
updated: อัปเดตเมื่อ
|
||||||
|
words: คำ
|
||||||
|
pageview_measure: ครั้ง
|
||||||
|
read_time:
|
||||||
|
unit: นาที
|
||||||
|
prompt: อ่าน
|
||||||
|
relate_posts: อ่านต่อ
|
||||||
|
share: แชร์
|
||||||
|
button:
|
||||||
|
next: ใหม่กว่า
|
||||||
|
previous: เก่ากว่า
|
||||||
|
copy_code:
|
||||||
|
succeed: คัดลอกแล้ว!
|
||||||
|
share_link:
|
||||||
|
title: คัดลอกลิงก์
|
||||||
|
succeed: คัดลอกลิงก์เรียบร้อยแล้ว!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%b %e, %Y"
|
||||||
|
dayjs: "ll"
|
||||||
|
archives:
|
||||||
|
strftime: "%b"
|
||||||
|
dayjs: "MMM"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: หมวดหมู่
|
||||||
|
plural: หมวดหมู่
|
||||||
|
post_measure:
|
||||||
|
singular: โพสต์
|
||||||
|
plural: โพสต์
|
||||||
77
_data/locales/tr-TR.yml
Normal file
77
_data/locales/tr-TR.yml
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Gönderi
|
||||||
|
category: Kategori
|
||||||
|
tag: Etiket
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Ana Sayfa
|
||||||
|
categories: Kategoriler
|
||||||
|
tags: Etiketler
|
||||||
|
archives: Arşiv
|
||||||
|
about: Hakkında
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: Ara...
|
||||||
|
cancel: İptal
|
||||||
|
no_results: Hop! Öyle bir şey bulamadım.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Son Güncellenenler
|
||||||
|
trending_tags: Yükselen Etiketler
|
||||||
|
toc: İçindekiler
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Bu gönderi :LICENSE_NAME lisansı altındadır.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/deed.tr
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Bazı hakları saklıdır.
|
||||||
|
verbose: >-
|
||||||
|
Aksi belirtilmediği sürece, bu sitedeki gönderiler Creative Commons Atıf 4.0 Uluslararası (CC BY 4.0) Lisansı altındadır.
|
||||||
|
Kısaca sayfa linkini vererek değiştirebilir / paylaşabilirsiniz.
|
||||||
|
|
||||||
|
meta: :PLATFORM ve :THEME teması
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Üzgünüz, bu linki yanlış yerleştirdik veya var olmayan bir şeye işaret ediyor.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: İçeriğin yeni bir sürümü mevcut.
|
||||||
|
update: Güncelle
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Yazan
|
||||||
|
posted: Gönderim
|
||||||
|
updated: Güncelleme
|
||||||
|
words: sözcük
|
||||||
|
pageview_measure: görüntülenme
|
||||||
|
read_time:
|
||||||
|
unit: dakikada
|
||||||
|
prompt: okunabilir
|
||||||
|
relate_posts: Benzer Gönderiler
|
||||||
|
share: Paylaş
|
||||||
|
button:
|
||||||
|
next: İleri
|
||||||
|
previous: Geri
|
||||||
|
copy_code:
|
||||||
|
succeed: Kopyalandı.
|
||||||
|
share_link:
|
||||||
|
title: Linki kopyala
|
||||||
|
succeed: Link kopyalandı.
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: kategori
|
||||||
|
post_measure: gönderi
|
||||||
77
_data/locales/uk-UA.yml
Normal file
77
_data/locales/uk-UA.yml
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Публікація
|
||||||
|
category: Категорія
|
||||||
|
tag: Тег
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Домашня сторінка
|
||||||
|
categories: Категорії
|
||||||
|
tags: Теги
|
||||||
|
archives: Архів
|
||||||
|
about: Про сайт
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: пошук
|
||||||
|
cancel: Скасувати
|
||||||
|
no_results: Ох! Нічого не знайдено.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Нещодавно оновлено
|
||||||
|
trending_tags: Популярні теги
|
||||||
|
toc: Зміст
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Публікація захищена ліцензією :LICENSE_NAME.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Деякі права захищено.
|
||||||
|
verbose: >-
|
||||||
|
Публікації на сайті захищено ліцензією Creative Commons Attribution 4.0 International (CC BY 4.0),
|
||||||
|
якщо інше не вказано в тексті.
|
||||||
|
|
||||||
|
meta: Powered by :PLATFORM with :THEME theme
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Вибачте, це посилання вказує на ресурс, що не існує.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Доступна нова версія вмісту.
|
||||||
|
update: Оновлення
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Автор
|
||||||
|
posted: Час публікації
|
||||||
|
updated: Оновлено
|
||||||
|
words: слів
|
||||||
|
pageview_measure: переглядів
|
||||||
|
read_time:
|
||||||
|
unit: хвилин
|
||||||
|
prompt: читання
|
||||||
|
relate_posts: Вас також може зацікавити
|
||||||
|
share: Поділитися
|
||||||
|
button:
|
||||||
|
next: Попередня публікація
|
||||||
|
previous: Наступна публікація
|
||||||
|
copy_code:
|
||||||
|
succeed: Успішно скопійовано!
|
||||||
|
share_link:
|
||||||
|
title: Скопіювати посилання
|
||||||
|
succeed: Посилання успішно скопійовано!
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: категорії
|
||||||
|
post_measure: публікації
|
||||||
76
_data/locales/vi-VN.yml
Normal file
76
_data/locales/vi-VN.yml
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Bài viết
|
||||||
|
category: Danh mục
|
||||||
|
tag: Thẻ
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Trang chủ
|
||||||
|
categories: Các danh mục
|
||||||
|
tags: Các thẻ
|
||||||
|
archives: Lưu trữ
|
||||||
|
about: Giới thiệu
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: tìm kiếm
|
||||||
|
cancel: Hủy
|
||||||
|
no_results: Không có kết quả tìm kiếm.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Mới cập nhật
|
||||||
|
trending_tags: Các thẻ thịnh hành
|
||||||
|
toc: Mục lục
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Bài viết này được cấp phép bởi tác giả theo giấy phép :LICENSE_NAME.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Một số quyền được bảo lưu.
|
||||||
|
verbose: >-
|
||||||
|
Trừ khi có ghi chú khác, các bài viết đăng trên trang này được cấp phép bởi tác giả theo giấy phép Creative Commons Attribution 4.0 International (CC BY 4.0).
|
||||||
|
|
||||||
|
meta: Trang web này được tạo bởi :PLATFORM với chủ đề :THEME
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Xin lỗi, chúng tôi đã đặt nhầm URL hoặc đường dẫn trỏ đến một trang nào đó không tồn tại.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Đã có phiên bản mới của nội dung.
|
||||||
|
update: Cập nhật
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Viết bởi
|
||||||
|
posted: Đăng lúc
|
||||||
|
updated: Cập nhật lúc
|
||||||
|
words: từ
|
||||||
|
pageview_measure: lượt xem
|
||||||
|
read_time:
|
||||||
|
unit: phút
|
||||||
|
prompt: đọc
|
||||||
|
relate_posts: Bài viết liên quan
|
||||||
|
share: Chia sẻ
|
||||||
|
button:
|
||||||
|
next: Mới hơn
|
||||||
|
previous: Cũ hơn
|
||||||
|
copy_code:
|
||||||
|
succeed: Đã sao chép!
|
||||||
|
share_link:
|
||||||
|
title: Sao chép đường dẫn
|
||||||
|
succeed: Đã sao chép đường dẫn thành công!
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: danh mục
|
||||||
|
post_measure: bài viết
|
||||||
83
_data/locales/zh-CN.yml
Normal file
83
_data/locales/zh-CN.yml
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: 文章
|
||||||
|
category: 分类
|
||||||
|
tag: 标签
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: 首页
|
||||||
|
categories: 分类
|
||||||
|
tags: 标签
|
||||||
|
archives: 归档
|
||||||
|
about: 关于
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: 搜索
|
||||||
|
cancel: 取消
|
||||||
|
no_results: 搜索结果为空
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: 最近更新
|
||||||
|
trending_tags: 热门标签
|
||||||
|
toc: 文章内容
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: 本文由作者按照 :LICENSE_NAME 进行授权
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: 保留部分权利。
|
||||||
|
verbose: >-
|
||||||
|
除非另有说明,本网站上的博客文章均由作者按照知识共享署名 4.0 国际 (CC BY 4.0) 许可协议进行授权。
|
||||||
|
|
||||||
|
meta: 本站采用 :PLATFORM 主题 :THEME
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: 抱歉,我们放错了该 URL,或者它指向了不存在的内容。
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: 发现新版本的内容。
|
||||||
|
update: 更新
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: 作者
|
||||||
|
posted: 发表于
|
||||||
|
updated: 更新于
|
||||||
|
words: 字
|
||||||
|
pageview_measure: 次浏览
|
||||||
|
read_time:
|
||||||
|
unit: 分钟
|
||||||
|
prompt: 阅读
|
||||||
|
relate_posts: 相关文章
|
||||||
|
share: 分享
|
||||||
|
button:
|
||||||
|
next: 下一篇
|
||||||
|
previous: 上一篇
|
||||||
|
copy_code:
|
||||||
|
succeed: 已复制!
|
||||||
|
share_link:
|
||||||
|
title: 分享链接
|
||||||
|
succeed: 链接已复制!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%Y/%m/%d"
|
||||||
|
dayjs: "YYYY/MM/DD"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: 个分类
|
||||||
|
post_measure: 篇文章
|
||||||
83
_data/locales/zh-TW.yml
Normal file
83
_data/locales/zh-TW.yml
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: 文章
|
||||||
|
category: 分類
|
||||||
|
tag: 標籤
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: 首頁
|
||||||
|
categories: 分類
|
||||||
|
tags: 標籤
|
||||||
|
archives: 封存
|
||||||
|
about: 關於
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: 搜尋
|
||||||
|
cancel: 取消
|
||||||
|
no_results: 沒有搜尋結果
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: 最近更新
|
||||||
|
trending_tags: 熱門標籤
|
||||||
|
toc: 文章摘要
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: 本文章以 :LICENSE_NAME 授權
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: 保留部份權利。
|
||||||
|
verbose: >-
|
||||||
|
除非另有說明,否則本網誌的文章均由作者按照姓名標示 4.0 國際 (CC BY 4.0) 授權條款進行授權。
|
||||||
|
|
||||||
|
meta: 本網站使用 :PLATFORM 產生,採用 :THEME 主題
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: 抱歉,您可能正在存取一個已被移動的 URL,或者它從未存在。
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: 發現新版本更新。
|
||||||
|
update: 更新
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: 作者
|
||||||
|
posted: 發布於
|
||||||
|
updated: 更新於
|
||||||
|
words: 字
|
||||||
|
pageview_measure: 次瀏覽
|
||||||
|
read_time:
|
||||||
|
unit: 分鐘
|
||||||
|
prompt: 閱讀
|
||||||
|
relate_posts: 相關文章
|
||||||
|
share: 分享
|
||||||
|
button:
|
||||||
|
next: 下一篇
|
||||||
|
previous: 上一篇
|
||||||
|
copy_code:
|
||||||
|
succeed: 已複製!
|
||||||
|
share_link:
|
||||||
|
title: 分享連結
|
||||||
|
succeed: 已複製連結!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%Y/%m/%d"
|
||||||
|
dayjs: "YYYY/MM/DD"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: 個分類
|
||||||
|
post_measure: 篇文章
|
||||||
46
_data/origin/basic.yml
Normal file
46
_data/origin/basic.yml
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# fonts
|
||||||
|
|
||||||
|
webfonts: /assets/lib/fonts/main.css
|
||||||
|
|
||||||
|
# Libraries
|
||||||
|
|
||||||
|
jquery:
|
||||||
|
js: /assets/lib/jquery/jquery.min.js
|
||||||
|
|
||||||
|
bootstrap:
|
||||||
|
css: /assets/lib/bootstrap/bootstrap.min.css
|
||||||
|
js: /assets/lib/bootstrap/bootstrap.bundle.min.js
|
||||||
|
|
||||||
|
toc:
|
||||||
|
css: /assets/lib/tocbot/tocbot.min.css
|
||||||
|
js: /assets/lib/tocbot/tocbot.min.js
|
||||||
|
|
||||||
|
fontawesome:
|
||||||
|
css: /assets/lib/fontawesome-free/css/all.min.css
|
||||||
|
|
||||||
|
search:
|
||||||
|
js: /assets/lib/simple-jekyll-search/simple-jekyll-search.min.js
|
||||||
|
|
||||||
|
mermaid:
|
||||||
|
js: /assets/lib/mermaid/mermaid.min.js
|
||||||
|
|
||||||
|
dayjs:
|
||||||
|
js:
|
||||||
|
common: /assets/lib/dayjs/dayjs.min.js
|
||||||
|
locale: /assets/lib/dayjs/locale/en.min.js
|
||||||
|
relativeTime: /assets/lib/dayjs/plugin/relativeTime.min.js
|
||||||
|
localizedFormat: /assets/lib/dayjs/plugin/localizedFormat.min.js
|
||||||
|
|
||||||
|
magnific-popup:
|
||||||
|
css: /assets/lib/magnific-popup/magnific-popup.css
|
||||||
|
js: /assets/lib/magnific-popup/jquery.magnific-popup.min.js
|
||||||
|
|
||||||
|
lazy-polyfill:
|
||||||
|
css: /assets/lib/loading-attribute-polyfill/loading-attribute-polyfill.min.css
|
||||||
|
js: /assets/lib/loading-attribute-polyfill/loading-attribute-polyfill.umd.min.js
|
||||||
|
|
||||||
|
clipboard:
|
||||||
|
js: /assets/lib/clipboard/clipboard.min.js
|
||||||
|
|
||||||
|
mathjax:
|
||||||
|
js: /assets/lib/mathjax/tex-chtml.js
|
||||||
57
_data/origin/cors.yml
Normal file
57
_data/origin/cors.yml
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# CDNs
|
||||||
|
|
||||||
|
cdns:
|
||||||
|
# Google Fonts
|
||||||
|
- url: https://fonts.googleapis.com
|
||||||
|
- url: https://fonts.gstatic.com
|
||||||
|
args: crossorigin
|
||||||
|
- url: https://fonts.googleapis.com
|
||||||
|
# jsDelivr CDN
|
||||||
|
- url: https://cdn.jsdelivr.net
|
||||||
|
|
||||||
|
# fonts
|
||||||
|
|
||||||
|
webfonts: https://fonts.googleapis.com/css2?family=Lato&family=Source+Sans+Pro:wght@400;600;700;900&display=swap
|
||||||
|
|
||||||
|
# Libraries
|
||||||
|
|
||||||
|
jquery:
|
||||||
|
js: https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js
|
||||||
|
|
||||||
|
bootstrap:
|
||||||
|
css: https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css
|
||||||
|
js: https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js
|
||||||
|
|
||||||
|
toc:
|
||||||
|
css: https://cdn.jsdelivr.net/npm/tocbot@4.25.0/dist/tocbot.min.css
|
||||||
|
js: https://cdn.jsdelivr.net/npm/tocbot@4.25.0/dist/tocbot.min.js
|
||||||
|
|
||||||
|
fontawesome:
|
||||||
|
css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.5.1/css/all.min.css
|
||||||
|
|
||||||
|
search:
|
||||||
|
js: https://cdn.jsdelivr.net/npm/simple-jekyll-search@1.10.0/dest/simple-jekyll-search.min.js
|
||||||
|
|
||||||
|
mermaid:
|
||||||
|
js: https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.min.js
|
||||||
|
|
||||||
|
dayjs:
|
||||||
|
js:
|
||||||
|
common: https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js
|
||||||
|
locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.10/locale/:LOCALE.min.js
|
||||||
|
relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.10/plugin/relativeTime.min.js
|
||||||
|
localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.10/plugin/localizedFormat.min.js
|
||||||
|
|
||||||
|
magnific-popup:
|
||||||
|
css: https://cdn.jsdelivr.net/npm/magnific-popup@1.1.0/dist/magnific-popup.min.css
|
||||||
|
js: https://cdn.jsdelivr.net/npm/magnific-popup@1.1.0/dist/jquery.magnific-popup.min.js
|
||||||
|
|
||||||
|
lazy-polyfill:
|
||||||
|
css: https://cdn.jsdelivr.net/npm/loading-attribute-polyfill@2.1.1/dist/loading-attribute-polyfill.min.css
|
||||||
|
js: https://cdn.jsdelivr.net/npm/loading-attribute-polyfill@2.1.1/dist/loading-attribute-polyfill.umd.min.js
|
||||||
|
|
||||||
|
clipboard:
|
||||||
|
js: https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js
|
||||||
|
|
||||||
|
mathjax:
|
||||||
|
js: https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/tex-chtml.js
|
||||||
38
_data/share.yml
Normal file
38
_data/share.yml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# Sharing options at the bottom of the post.
|
||||||
|
# Icons from <https://fontawesome.com/>
|
||||||
|
|
||||||
|
platforms:
|
||||||
|
- type: Twitter
|
||||||
|
icon: "fa-brands fa-square-x-twitter"
|
||||||
|
link: "https://twitter.com/intent/tweet?text=TITLE&url=URL"
|
||||||
|
|
||||||
|
- type: Facebook
|
||||||
|
icon: "fab fa-facebook-square"
|
||||||
|
link: "https://www.facebook.com/sharer/sharer.php?title=TITLE&u=URL"
|
||||||
|
|
||||||
|
- type: Telegram
|
||||||
|
icon: "fab fa-telegram"
|
||||||
|
link: "https://t.me/share/url?url=URL&text=TITLE"
|
||||||
|
|
||||||
|
# Uncomment below if you need to.
|
||||||
|
#
|
||||||
|
# - type: Linkedin
|
||||||
|
# icon: "fab fa-linkedin"
|
||||||
|
# link: "https://www.linkedin.com/sharing/share-offsite/?url=URL"
|
||||||
|
#
|
||||||
|
# - type: Weibo
|
||||||
|
# icon: "fab fa-weibo"
|
||||||
|
# link: "http://service.weibo.com/share/share.php?title=TITLE&url=URL"
|
||||||
|
#
|
||||||
|
# - type: Mastodon
|
||||||
|
# icon: "fa-brands fa-mastodon"
|
||||||
|
# # See: https://github.com/justinribeiro/share-to-mastodon#properties
|
||||||
|
# instances:
|
||||||
|
# - label: mastodon.social
|
||||||
|
# link: "https://mastodon.social/"
|
||||||
|
# - label: mastodon.online
|
||||||
|
# link: "https://mastodon.online/"
|
||||||
|
# - label: fosstodon.org
|
||||||
|
# link: "https://fosstodon.org/"
|
||||||
|
# - label: photog.social
|
||||||
|
# link: "https://photog.social/"
|
||||||
5
_includes/comments.html
Normal file
5
_includes/comments.html
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<!-- The comments switcher -->
|
||||||
|
{% if page.comments and site.comments.active %}
|
||||||
|
{% capture path %}comments/{{ site.comments.active }}.html{% endcapture %}
|
||||||
|
{% include {{ path }} %}
|
||||||
|
{% endif %}
|
||||||
50
_includes/comments/disqus.html
Normal file
50
_includes/comments/disqus.html
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
<!-- The Disqus lazy loading. -->
|
||||||
|
|
||||||
|
<div id="disqus_thread">
|
||||||
|
<p class="text-center text-muted small">Comments powered by <a href="https://disqus.com/">Disqus</a>.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var disqus_config = function () {
|
||||||
|
this.page.url = '{{ page.url | absolute_url }}';
|
||||||
|
this.page.identifier = '{{ page.url }}';
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Lazy loading */
|
||||||
|
var disqus_observer = new IntersectionObserver(
|
||||||
|
function (entries) {
|
||||||
|
if (entries[0].isIntersecting) {
|
||||||
|
(function () {
|
||||||
|
var d = document,
|
||||||
|
s = d.createElement('script');
|
||||||
|
s.src = 'https://{{ site.comments.disqus.shortname }}.disqus.com/embed.js';
|
||||||
|
s.setAttribute('data-timestamp', +new Date());
|
||||||
|
(d.head || d.body).appendChild(s);
|
||||||
|
})();
|
||||||
|
|
||||||
|
disqus_observer.disconnect();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ threshold: [0] }
|
||||||
|
);
|
||||||
|
|
||||||
|
disqus_observer.observe(document.querySelector('#disqus_thread'));
|
||||||
|
|
||||||
|
/* Auto switch theme */
|
||||||
|
function reloadDisqus() {
|
||||||
|
if (event.source === window && event.data && event.data.direction === ModeToggle.ID) {
|
||||||
|
/* Disqus hasn't been loaded */
|
||||||
|
if (typeof DISQUS === 'undefined') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (document.readyState == 'complete') {
|
||||||
|
DISQUS.reset({ reload: true, config: disqus_config });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (document.querySelector('.mode-toggle')) {
|
||||||
|
window.addEventListener('message', reloadDisqus);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
65
_includes/comments/giscus.html
Normal file
65
_includes/comments/giscus.html
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
<!-- https://giscus.app/ -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
(function () {
|
||||||
|
const origin = 'https://giscus.app';
|
||||||
|
const iframe = 'iframe.giscus-frame';
|
||||||
|
const lightTheme = 'light';
|
||||||
|
const darkTheme = 'dark_dimmed';
|
||||||
|
|
||||||
|
let initTheme = lightTheme;
|
||||||
|
const html = document.documentElement;
|
||||||
|
|
||||||
|
if (
|
||||||
|
(html.hasAttribute('data-mode') &&
|
||||||
|
html.getAttribute('data-mode') === 'dark') ||
|
||||||
|
(!html.hasAttribute('data-mode') &&
|
||||||
|
window.matchMedia('(prefers-color-scheme: dark)').matches)
|
||||||
|
) {
|
||||||
|
initTheme = darkTheme;
|
||||||
|
}
|
||||||
|
|
||||||
|
let giscusAttributes = {
|
||||||
|
src: 'https://giscus.app/client.js',
|
||||||
|
'data-repo': '{{ site.comments.giscus.repo}}',
|
||||||
|
'data-repo-id': '{{ site.comments.giscus.repo_id }}',
|
||||||
|
'data-category': '{{ site.comments.giscus.category }}',
|
||||||
|
'data-category-id': '{{ site.comments.giscus.category_id }}',
|
||||||
|
'data-mapping': '{{ site.comments.giscus.mapping | default: 'pathname' }}',
|
||||||
|
'data-reactions-enabled': '{{ site.comments.giscus.reactions_enabled | default: '1' }}',
|
||||||
|
'data-emit-metadata': '0',
|
||||||
|
'data-theme': initTheme,
|
||||||
|
'data-input-position': '{{ site.comments.giscus.input_position | default: 'bottom' }}',
|
||||||
|
'data-lang': '{{ site.comments.giscus.lang | default: lang }}',
|
||||||
|
'data-loading': 'lazy',
|
||||||
|
crossorigin: 'anonymous',
|
||||||
|
async: ''
|
||||||
|
};
|
||||||
|
|
||||||
|
let giscusScript = document.createElement('script');
|
||||||
|
Object.entries(giscusAttributes).forEach(([key, value]) =>
|
||||||
|
giscusScript.setAttribute(key, value)
|
||||||
|
);
|
||||||
|
document.getElementById('tail-wrapper').appendChild(giscusScript);
|
||||||
|
|
||||||
|
addEventListener('message', (event) => {
|
||||||
|
if (
|
||||||
|
event.source === window &&
|
||||||
|
event.data &&
|
||||||
|
event.data.direction === ModeToggle.ID
|
||||||
|
) {
|
||||||
|
/* global theme mode changed */
|
||||||
|
const mode = event.data.message;
|
||||||
|
const theme = mode === ModeToggle.DARK_MODE ? darkTheme : lightTheme;
|
||||||
|
|
||||||
|
const message = {
|
||||||
|
setConfig: {
|
||||||
|
theme: theme
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const giscus = document.querySelector(iframe).contentWindow;
|
||||||
|
giscus.postMessage({ giscus: message }, origin);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
50
_includes/comments/utterances.html
Normal file
50
_includes/comments/utterances.html
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
<!-- https://utteranc.es/ -->
|
||||||
|
<script
|
||||||
|
src="https://utteranc.es/client.js"
|
||||||
|
repo="{{ site.comments.utterances.repo }}"
|
||||||
|
issue-term="{{ site.comments.utterances.issue_term }}"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
async
|
||||||
|
></script>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
(function () {
|
||||||
|
const origin = 'https://utteranc.es';
|
||||||
|
const iframe = 'iframe.utterances-frame';
|
||||||
|
const lightTheme = 'github-light';
|
||||||
|
const darkTheme = 'github-dark';
|
||||||
|
let initTheme = lightTheme;
|
||||||
|
const html = document.documentElement;
|
||||||
|
|
||||||
|
if (
|
||||||
|
(html.hasAttribute('data-mode') && html.getAttribute('data-mode') === 'dark') ||
|
||||||
|
(!html.hasAttribute('data-mode') && window.matchMedia('(prefers-color-scheme: dark)').matches)
|
||||||
|
) {
|
||||||
|
initTheme = darkTheme;
|
||||||
|
}
|
||||||
|
|
||||||
|
addEventListener('message', (event) => {
|
||||||
|
let theme;
|
||||||
|
|
||||||
|
/* credit to <https://github.com/utterance/utterances/issues/170#issuecomment-594036347> */
|
||||||
|
if (event.origin === origin) {
|
||||||
|
/* page initial */
|
||||||
|
theme = initTheme;
|
||||||
|
} else if (event.source === window && event.data && event.data.direction === ModeToggle.ID) {
|
||||||
|
/* global theme mode changed */
|
||||||
|
const mode = event.data.message;
|
||||||
|
theme = mode === ModeToggle.DARK_MODE ? darkTheme : lightTheme;
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const message = {
|
||||||
|
type: 'set-theme',
|
||||||
|
theme: theme
|
||||||
|
};
|
||||||
|
|
||||||
|
const utterances = document.querySelector(iframe).contentWindow;
|
||||||
|
utterances.postMessage(message, origin);
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
<!--
|
|
||||||
Define the liquid date formats.
|
|
||||||
© 2019 Cotes Chung
|
|
||||||
Published under the MIT License
|
|
||||||
-->
|
|
||||||
|
|
||||||
{% assign TOOLTIP_DATE = "%a, %b %e, %Y, %l:%M %p %z" %}
|
|
||||||
{% assign POST_DATE = "%b %e, %Y" %}
|
|
||||||
20
_includes/datetime.html
Normal file
20
_includes/datetime.html
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<!--
|
||||||
|
Date format snippet
|
||||||
|
See: ${JS_ROOT}/utils/locale-dateime.js
|
||||||
|
-->
|
||||||
|
|
||||||
|
{% assign df_strftime = site.data.locales[include.lang].df.post.strftime | default: '%d/%m/%Y' %}
|
||||||
|
{% assign df_dayjs = site.data.locales[include.lang].df.post.dayjs | default: 'DD/MM/YYYY' %}
|
||||||
|
|
||||||
|
<time
|
||||||
|
{% if include.class %}
|
||||||
|
class="{{ include.class }}"
|
||||||
|
{% endif %}
|
||||||
|
data-ts="{{ include.date | date: '%s' }}"
|
||||||
|
data-df="{{ df_dayjs }}"
|
||||||
|
{% if include.tooltip %}
|
||||||
|
data-bs-toggle="tooltip" data-bs-placement="bottom"
|
||||||
|
{% endif %}
|
||||||
|
>
|
||||||
|
{{ include.date | date: df_strftime }}
|
||||||
|
</time>
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
<!--
|
|
||||||
The Disqus lazy loading.
|
|
||||||
Powered by: https://osvaldas.info/lazy-loading-disqus-comments
|
|
||||||
© 2019 Cotes Chung
|
|
||||||
MIT License
|
|
||||||
-->
|
|
||||||
|
|
||||||
<div id="disqus" class="pt-2 pb-4">
|
|
||||||
<p class="font-italic text-muted small">Comments powered by <a href="https://disqus.com/">Disqus</a>.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="{{ site.baseurl }}/assets/lib/jquery.disqusloader.min.js"></script>
|
|
||||||
<script>
|
|
||||||
var options = {
|
|
||||||
scriptUrl: '//{{ site.disqus.shortname }}.disqus.com/embed.js',
|
|
||||||
|
|
||||||
disqusConfig: function() {
|
|
||||||
this.page.url = '{{ site.url | append: site.baseurl | append: page.url }}';
|
|
||||||
this.page.identifier = '{{ page.url }}';
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
$.disqusLoader('#disqus', options);
|
|
||||||
</script>
|
|
||||||
10
_includes/embed/bilibili.html
Normal file
10
_includes/embed/bilibili.html
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<iframe
|
||||||
|
class="embed-video bilibili"
|
||||||
|
loading="lazy"
|
||||||
|
src="https://player.bilibili.com/player.html?bvid={{ include.id }}"
|
||||||
|
scrolling="no"
|
||||||
|
border="0"
|
||||||
|
frameborder="no"
|
||||||
|
framespacing="0"
|
||||||
|
allowfullscreen="true"
|
||||||
|
></iframe>
|
||||||
8
_includes/embed/twitch.html
Normal file
8
_includes/embed/twitch.html
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<iframe
|
||||||
|
class="embed-video twitch"
|
||||||
|
loading="lazy"
|
||||||
|
src="https://player.twitch.tv/?video={{ include.id }}&parent={{ site.url | split: '://' | last | remove: '/' }}"
|
||||||
|
frameborder="0"
|
||||||
|
allowfullscreen="true"
|
||||||
|
scrolling="no"
|
||||||
|
></iframe>
|
||||||
9
_includes/embed/youtube.html
Normal file
9
_includes/embed/youtube.html
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<iframe
|
||||||
|
class="embed-video youtube"
|
||||||
|
loading="lazy"
|
||||||
|
src="https://www.youtube.com/embed/{{ include.id }}"
|
||||||
|
title="YouTube video player"
|
||||||
|
frameborder="0"
|
||||||
|
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||||
|
allowfullscreen
|
||||||
|
></iframe>
|
||||||
@@ -1,34 +1,17 @@
|
|||||||
<!--
|
<!--
|
||||||
The Favicons for Web, Android, Microsoft, and iOS (iPhone and iPad) Apps
|
The Favicons for Web, Android, Microsoft, and iOS (iPhone and iPad) Apps
|
||||||
Generated by: https://www.favicon-generator.org/
|
Generated by: https://realfavicongenerator.net/
|
||||||
© 2019 Cotes Chung
|
|
||||||
Published under the MIT license
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
{% capture icon_url %}{{ site.baseurl }}/assets/img/favicons{% endcapture %}
|
{% capture favicon_path %}{{ '/assets/img/favicons' | relative_url }}{% endcapture %}
|
||||||
|
|
||||||
<link rel="shortcut icon" href="{{ icon_url }}/favicon.ico" type="image/x-icon">
|
<link rel="apple-touch-icon" sizes="180x180" href="{{ favicon_path }}/apple-touch-icon.png">
|
||||||
<link rel="icon" href="{{ icon_url }}/favicon.ico" type="image/x-icon">
|
<link rel="icon" type="image/png" sizes="32x32" href="{{ favicon_path }}/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="{{ favicon_path }}/favicon-16x16.png">
|
||||||
<link rel="apple-touch-icon" href="{{ icon_url }}/apple-icon.png">
|
<link rel="manifest" href="{{ favicon_path }}/site.webmanifest">
|
||||||
<link rel="apple-touch-icon" href="{{ icon_url }}/apple-icon-precomposed.png">
|
<link rel="shortcut icon" href="{{ favicon_path }}/favicon.ico">
|
||||||
<link rel="apple-touch-icon" sizes="57x57" href="{{ icon_url }}/apple-icon-57x57.png">
|
<meta name="apple-mobile-web-app-title" content="{{ site.title }}">
|
||||||
<link rel="apple-touch-icon" sizes="60x60" href="{{ icon_url }}/apple-icon-60x60.png">
|
<meta name="application-name" content="{{ site.title }}">
|
||||||
<link rel="apple-touch-icon" sizes="72x72" href="{{ icon_url }}/apple-icon-72x72.png">
|
<meta name="msapplication-TileColor" content="#da532c">
|
||||||
<link rel="apple-touch-icon" sizes="76x76" href="{{ icon_url }}/apple-icon-76x76.png">
|
<meta name="msapplication-config" content="{{ favicon_path }}/browserconfig.xml">
|
||||||
<link rel="apple-touch-icon" sizes="114x114" href="{{ icon_url }}/apple-icon-114x114.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="120x120" href="{{ icon_url }}/apple-icon-120x120.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="144x144" href="{{ icon_url }}/apple-icon-144x144.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="152x152" href="{{ icon_url }}/apple-icon-152x152.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="{{ icon_url }}/apple-icon-180x180.png">
|
|
||||||
|
|
||||||
<link rel="icon" type="image/png" sizes="192x192" href="{{ icon_url }}/android-icon-192x192.png">
|
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ icon_url }}/favicon-32x32.png">
|
|
||||||
<link rel="icon" type="image/png" sizes="96x96" href="{{ icon_url }}/favicon-96x96.png">
|
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="{{ icon_url }}/favicon-16x16.png">
|
|
||||||
|
|
||||||
<link rel="manifest" href="{{ icon_url }}/manifest.json">
|
|
||||||
<meta name='msapplication-config' content='{{ icon_url }}/browserconfig.xml'>
|
|
||||||
<meta name="msapplication-TileColor" content="#ffffff">
|
|
||||||
<meta name="msapplication-TileImage" content="{{ icon_url }}/ms-icon-144x144.png">
|
|
||||||
<meta name="theme-color" content="#ffffff">
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
<!--
|
|
||||||
Fixed kramdown code highlight rendering:
|
|
||||||
https://github.com/penibelst/jekyll-compress-html/issues/101
|
|
||||||
https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-188144901
|
|
||||||
-->
|
|
||||||
{% if _content contains '<pre class="highlight">' %}
|
|
||||||
{% assign _content = _content | replace: '<pre class="highlight"><code', '<code' %}
|
|
||||||
{% assign _content = _content | replace: '</code></pre>', '</code>' %}
|
|
||||||
{% endif %}
|
|
||||||
@@ -1,24 +1,36 @@
|
|||||||
<!--
|
<!-- The Footer -->
|
||||||
The Footer
|
|
||||||
© 2017-2019 Cotes Chung
|
|
||||||
MIT License
|
|
||||||
-->
|
|
||||||
|
|
||||||
<footer class="d-flex w-100 justify-content-center">
|
<footer
|
||||||
<div class="d-flex justify-content-between align-items-center">
|
aria-label="Site Info"
|
||||||
<div class="copyright">
|
class="
|
||||||
{% assign first = site.first_run | plus: 0 %}
|
d-flex flex-column justify-content-center text-muted
|
||||||
{% assign last = 'now' | date: "%Y" | plus: 0 %}
|
flex-lg-row justify-content-lg-between align-items-lg-center pb-lg-3
|
||||||
<p class="mb-0">
|
"
|
||||||
© {% if last > first %}{{ first }}-{% endif %}{{-last-}}
|
>
|
||||||
<a href="{{ site.social.links[0] }}" class="ml-1">{{ site.social.name }}</a>.
|
<p>
|
||||||
<br>Powered by <a href="https://jekyllrb.com" target="_blank">Jekyll</a> & <a href="https://github.com/cotes2020/jekyll-theme-chirpy/">Chirpy</a>, hosted on <a href="https://pages.github.com/" target="_blank">GitHub Pages</a>.
|
{{ '©' }}
|
||||||
</p>
|
<time>{{ 'now' | date: '%Y' }}</time>
|
||||||
</div>
|
<a href="{{ site.social.links[0] }}">{{ site.social.name }}</a>.
|
||||||
<div class="license">
|
{% if site.data.locales[include.lang].copyright.brief %}
|
||||||
<p class="mb-0">
|
<span
|
||||||
The blog posts on this site are licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.
|
data-bs-toggle="tooltip"
|
||||||
</p>
|
data-bs-placement="top"
|
||||||
</div>
|
title="{{ site.data.locales[include.lang].copyright.verbose }}"
|
||||||
</div> <!-- div.d-flex -->
|
>
|
||||||
|
{{- site.data.locales[include.lang].copyright.brief -}}
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
{%- capture _platform -%}
|
||||||
|
<a href="https://jekyllrb.com" target="_blank" rel="noopener">Jekyll</a>
|
||||||
|
{%- endcapture -%}
|
||||||
|
|
||||||
|
{%- capture _theme -%}
|
||||||
|
<a href="https://github.com/cotes2020/jekyll-theme-chirpy" target="_blank" rel="noopener">Chirpy</a>
|
||||||
|
{%- endcapture -%}
|
||||||
|
|
||||||
|
{{ site.data.locales[include.lang].meta | replace: ':PLATFORM', _platform | replace: ':THEME', _theme }}
|
||||||
|
</p>
|
||||||
</footer>
|
</footer>
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
<!--
|
<!--
|
||||||
The GA snippet
|
The GA snippet
|
||||||
© 2017-2019 Cotes Chung
|
|
||||||
MIT License
|
|
||||||
-->
|
-->
|
||||||
|
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||||
|
<script defer src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics.id }}"></script>
|
||||||
<script>
|
<script>
|
||||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
document.addEventListener("DOMContentLoaded", function(event) {
|
||||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
window.dataLayer = window.dataLayer || [];
|
||||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
function gtag(){dataLayer.push(arguments);}
|
||||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
|
||||||
|
|
||||||
ga('create', '{{ site.google_analytics.id }}', 'auto');
|
gtag('js', new Date());
|
||||||
ga('send', 'pageview');
|
gtag('config', '{{ site.google_analytics.id }}');
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,111 +1,106 @@
|
|||||||
<!--
|
|
||||||
The Head
|
|
||||||
© 2017-2019 Cotes Chung
|
|
||||||
MIT License
|
|
||||||
-->
|
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>
|
|
||||||
{%- if page.layout == "home" -%}
|
|
||||||
{{- site.title -}}
|
|
||||||
{%- else -%}
|
|
||||||
{{ page.title }} | {{ site.title }}
|
|
||||||
{%- endif -%}
|
|
||||||
</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="theme-color" media="(prefers-color-scheme: light)" content="#f7f7f7">
|
||||||
|
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#1b1b1e">
|
||||||
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||||||
|
<meta
|
||||||
|
name="viewport"
|
||||||
|
content="width=device-width, user-scalable=no initial-scale=1, shrink-to-fit=no, viewport-fit=cover"
|
||||||
|
>
|
||||||
|
|
||||||
{% seo title=false %}
|
{%- capture seo_tags -%}
|
||||||
|
{% seo title=false %}
|
||||||
|
{%- endcapture -%}
|
||||||
|
|
||||||
{% include favicons.html %}
|
<!-- Setup Open Graph image -->
|
||||||
|
|
||||||
<!-- google fonts -->
|
{% if page.image %}
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous">
|
{% assign src = page.image.path | default: page.image %}
|
||||||
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
|
|
||||||
|
|
||||||
<!-- ga -->
|
{% unless src contains '://' %}
|
||||||
{% if jekyll.environment == 'production' %}
|
{%- capture img_url -%}
|
||||||
|
{% include img-url.html src=src img_path=page.img_path %}
|
||||||
|
{%- endcapture -%}
|
||||||
|
|
||||||
|
{%- capture old_url -%}{{ src | absolute_url }}{%- endcapture -%}
|
||||||
|
{%- capture new_url -%}{{ img_url }}{%- endcapture -%}
|
||||||
|
|
||||||
|
{% assign seo_tags = seo_tags | replace: old, new %}
|
||||||
|
{% endunless %}
|
||||||
|
|
||||||
|
{% elsif site.social_preview_image %}
|
||||||
|
{%- capture img_url -%}
|
||||||
|
{% include img-url.html src=site.social_preview_image %}
|
||||||
|
{%- endcapture -%}
|
||||||
|
|
||||||
|
{%- capture og_image -%}
|
||||||
|
<meta property="og:image" content="{{ img_url }}" />
|
||||||
|
{%- endcapture -%}
|
||||||
|
|
||||||
|
{% assign old_meta_clip = '<meta name="twitter:card"' %}
|
||||||
|
{% assign new_meta_clip = og_image | append: old_meta_clip %}
|
||||||
|
{% assign seo_tags = seo_tags | replace: old_meta_clip, new_meta_clip %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{{ seo_tags }}
|
||||||
|
|
||||||
|
<title>
|
||||||
|
{%- unless page.layout == 'home' -%}
|
||||||
|
{{ page.title | append: ' | ' }}
|
||||||
|
{%- endunless -%}
|
||||||
|
{{ site.title }}
|
||||||
|
</title>
|
||||||
|
|
||||||
|
{% include_cached favicons.html %}
|
||||||
|
|
||||||
|
{% if site.resources.ignore_env != jekyll.environment and site.resources.self_hosted %}
|
||||||
|
<link href="{{ site.data.origin[type].webfonts | relative_url }}" rel="stylesheet">
|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
{% for cdn in site.data.origin[type].cdns %}
|
||||||
|
<link rel="preconnect" href="{{ cdn.url }}" {{ cdn.args }}>
|
||||||
|
<link rel="dns-prefetch" href="{{ cdn.url }}" {{ cdn.args }}>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="{{ site.data.origin[type].webfonts | relative_url }}">
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- GA -->
|
||||||
|
{% if jekyll.environment == 'production' and site.google_analytics.id != empty and site.google_analytics.id %}
|
||||||
<link rel="preconnect" href="https://www.google-analytics.com" crossorigin="use-credentials">
|
<link rel="preconnect" href="https://www.google-analytics.com" crossorigin="use-credentials">
|
||||||
<link rel="dns-prefetch" href="https://www.google-analytics.com">
|
<link rel="dns-prefetch" href="https://www.google-analytics.com">
|
||||||
|
|
||||||
<link rel="preconnect" href="https://www.googletagmanager.com" crossorigin="anonymous">
|
<link rel="preconnect" href="https://www.googletagmanager.com" crossorigin="anonymous">
|
||||||
<link rel="dns-prefetch" href="https://www.googletagmanager.com">
|
<link rel="dns-prefetch" href="https://www.googletagmanager.com">
|
||||||
|
|
||||||
{% if site.google_analytics.proxy_baseurl and site.google_analytics.pv %}
|
|
||||||
<link rel="preconnect" href="{{ site.google_analytics.proxy_baseurl }}" crossorigin="use-credentials">
|
|
||||||
<link rel="dns-prefetch" href="{{ site.google_analytics.proxy_baseurl }}">
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<link rel="preconnect" href="cdn.jsdelivr.net">
|
<!-- Bootstrap -->
|
||||||
<link rel="dns-prefetch" href="cdn.jsdelivr.net">
|
<link rel="stylesheet" href="{{ site.data.origin[type].bootstrap.css | relative_url}}">
|
||||||
|
|
||||||
<link rel="stylesheet"
|
<!-- Font Awesome -->
|
||||||
href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css"
|
<link rel="stylesheet" href="{{ site.data.origin[type].fontawesome.css | relative_url }}">
|
||||||
integrity="sha256-LA89z+k9fjgMKQ/kq4OO2Mrf8VltYml/VES+Rg0fh20=" crossorigin="anonymous">
|
|
||||||
|
|
||||||
<link rel="stylesheet"
|
<link rel="stylesheet" href="{{ '/assets/css/:THEME.css' | replace: ':THEME', site.theme | relative_url }}">
|
||||||
href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.11.2/css/all.min.css"
|
|
||||||
integrity="sha256-+N4/V/SbAFiW1MPBCXnfnP9QSN3+Keu+NlB+0ev/YKQ="
|
|
||||||
crossorigin="anonymous">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/main.css">
|
{% if site.toc and page.toc %}
|
||||||
|
<link rel="stylesheet" href="{{ site.data.origin[type].toc.css | relative_url }}">
|
||||||
{% if page.layout == 'home' %}
|
|
||||||
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/home.css">
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if page.title == 'Categories' and page.layout == 'page' %}
|
{% if page.layout == 'post' or page.layout == 'page' or page.layout == 'home' %}
|
||||||
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/categories.css">
|
<link rel="stylesheet" href="{{ site.data.origin[type]['lazy-polyfill'].css | relative_url }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if page.title == 'Tags' and page.layout == 'page' %}
|
{% if page.layout == 'page' or page.layout == 'post' %}
|
||||||
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/tags.css">
|
<!-- Manific Popup -->
|
||||||
|
<link rel="stylesheet" href="{{ site.data.origin[type].magnific-popup.css | relative_url }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if page.layout == 'category' or page.layout == 'tag' %}
|
<!-- JavaScript -->
|
||||||
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/category-tag.css">
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if page.title == 'Archives' and page.layout == 'page' %}
|
{% unless site.theme_mode %}
|
||||||
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/archives.css">
|
{% include mode-toggle.html %}
|
||||||
{% endif %}
|
{% endunless %}
|
||||||
|
|
||||||
{% if page.title == 'About' and page.layout == 'page' %}
|
{% include metadata-hook.html %}
|
||||||
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/syntax.css">
|
</head>
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.min.js"
|
|
||||||
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
window.jQuery || document.write('<script src="{{ site.baseurl }}/assets/lib/jquery-3.4.1.min.js"><\/script>');
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.15.0/dist/umd/popper.min.js"
|
|
||||||
integrity="sha256-fTuUgtT7O2rqoImwjrhDgbXTKUwyxxujIMRIK7TbuNU=" crossorigin="anonymous" async></script>
|
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js"
|
|
||||||
integrity="sha256-5+02zu5UULQkO7w1GIr6vftCgMfFdZcAHeDtFnKZsBs=" crossorigin="anonymous" async></script>
|
|
||||||
|
|
||||||
<script src="{{ site.baseurl }}/assets/js/dist/commons.js" async></script>
|
|
||||||
|
|
||||||
{% if page.layout == 'home' or page.layout == 'post' %}
|
|
||||||
<script src="{{ site.baseurl }}/assets/js/dist/timeago.min.js" async></script>
|
|
||||||
{% if site.google_analytics.pv %}
|
|
||||||
<script src="{{ site.baseurl }}/assets/lib/countUp.min.js" async></script>
|
|
||||||
<script src="{{ site.baseurl }}/assets/js/dist/pageviews.min.js" async></script>
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if page.layout == 'post' %}
|
|
||||||
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/post.css">
|
|
||||||
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/syntax.css">
|
|
||||||
{% if site.toc and page.toc %}
|
|
||||||
<link rel="stylesheet" href="{{ site.baseurl }}/assets/lib/bootstrap-toc-1.0.1/bootstrap-toc.min.css" />
|
|
||||||
<script src="{{ site.baseurl }}/assets/lib/bootstrap-toc-1.0.1/bootstrap-toc.min.js" async></script>
|
|
||||||
<script src="{{ site.baseurl }}/assets/js/dist/toc.min.js" async></script>
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|||||||
24
_includes/img-url.html
Normal file
24
_includes/img-url.html
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{%- comment -%}
|
||||||
|
Generate image final URL based on `site.img_cdn`, `page.img_path`
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
src - basic image path, required
|
||||||
|
img_path - relative path of image, optional
|
||||||
|
|
||||||
|
Return:
|
||||||
|
image URL
|
||||||
|
{%- endcomment -%}
|
||||||
|
|
||||||
|
{% assign url = include.src %}
|
||||||
|
|
||||||
|
{%- if url -%}
|
||||||
|
{%- comment -%} CND URL {%- endcomment -%}
|
||||||
|
{% assign prefix = site.img_cdn | default: '' | relative_url %}
|
||||||
|
|
||||||
|
{%- comment -%} Add page image path prefix {%- endcomment -%}
|
||||||
|
{% assign url = include.img_path | default: '' | append: '/' | append: url %}
|
||||||
|
|
||||||
|
{% assign url = prefix | append: '/' | append: url | replace: '///', '/' | replace: '//', '/' | replace: ':', ':/' %}
|
||||||
|
{%- endif -%}
|
||||||
|
|
||||||
|
{{- url -}}
|
||||||
106
_includes/js-selector.html
Normal file
106
_includes/js-selector.html
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
<!-- JS selector for site. -->
|
||||||
|
|
||||||
|
<!-- commons -->
|
||||||
|
|
||||||
|
{% assign urls = site.data.origin[type].jquery.js
|
||||||
|
| append: ','
|
||||||
|
| append: site.data.origin[type].bootstrap.js
|
||||||
|
| append: ','
|
||||||
|
| append: site.data.origin[type].search.js
|
||||||
|
%}
|
||||||
|
|
||||||
|
<!-- layout specified -->
|
||||||
|
|
||||||
|
{% if page.layout == 'post' or page.layout == 'page' or page.layout == 'home' %}
|
||||||
|
{% assign urls = urls | append: ',' | append: site.data.origin[type]['lazy-polyfill'].js %}
|
||||||
|
|
||||||
|
{% unless page.layout == 'home' %}
|
||||||
|
<!-- image lazy-loading & popup & clipboard -->
|
||||||
|
{% assign urls = urls
|
||||||
|
| append: ','
|
||||||
|
| append: site.data.origin[type]['magnific-popup'].js
|
||||||
|
| append: ','
|
||||||
|
| append: site.data.origin[type].clipboard.js
|
||||||
|
%}
|
||||||
|
{% endunless %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if page.layout == 'home'
|
||||||
|
or page.layout == 'post'
|
||||||
|
or page.layout == 'archives'
|
||||||
|
or page.layout == 'category'
|
||||||
|
or page.layout == 'tag'
|
||||||
|
%}
|
||||||
|
{% assign locale = site.lang | split: '-' | first %}
|
||||||
|
|
||||||
|
{% assign urls = urls
|
||||||
|
| append: ','
|
||||||
|
| append: site.data.origin[type].dayjs.js.common
|
||||||
|
| append: ','
|
||||||
|
| append: site.data.origin[type].dayjs.js.locale
|
||||||
|
| replace: ':LOCALE', locale
|
||||||
|
| append: ','
|
||||||
|
| append: site.data.origin[type].dayjs.js.relativeTime
|
||||||
|
| append: ','
|
||||||
|
| append: site.data.origin[type].dayjs.js.localizedFormat
|
||||||
|
%}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if page.content contains '<h2' or page.content contains '<h3' and site.toc and page.toc %}
|
||||||
|
{% assign urls = urls | append: ',' | append: site.data.origin[type].toc.js %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if page.mermaid %}
|
||||||
|
{% assign urls = urls | append: ',' | append: site.data.origin[type].mermaid.js %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% include jsdelivr-combine.html urls=urls %}
|
||||||
|
|
||||||
|
{% case page.layout %}
|
||||||
|
{% when 'home', 'categories', 'post', 'page' %}
|
||||||
|
{% assign js = page.layout %}
|
||||||
|
{% when 'archives', 'category', 'tag' %}
|
||||||
|
{% assign js = 'misc' %}
|
||||||
|
{% else %}
|
||||||
|
{% assign js = 'commons' %}
|
||||||
|
{% endcase %}
|
||||||
|
|
||||||
|
{% capture script %}/assets/js/dist/{{ js }}.min.js{% endcapture %}
|
||||||
|
<script defer src="{{ script | relative_url }}"></script>
|
||||||
|
|
||||||
|
{% if page.math %}
|
||||||
|
<!-- MathJax -->
|
||||||
|
<script>
|
||||||
|
/* see: <https://docs.mathjax.org/en/latest/options/input/tex.html#tex-options> */
|
||||||
|
MathJax = {
|
||||||
|
tex: {
|
||||||
|
/* start/end delimiter pairs for in-line math */
|
||||||
|
inlineMath: [
|
||||||
|
['$', '$'],
|
||||||
|
['\\(', '\\)']
|
||||||
|
],
|
||||||
|
/* start/end delimiter pairs for display math */
|
||||||
|
displayMath: [
|
||||||
|
['$$', '$$'],
|
||||||
|
['\\[', '\\]']
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
|
||||||
|
<script id="MathJax-script" async src="{{ site.data.origin[type].mathjax.js | relative_url }}"></script>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if jekyll.environment == 'production' %}
|
||||||
|
<!-- PWA -->
|
||||||
|
{% if site.pwa.enabled %}
|
||||||
|
<script defer src="{{ '/app.js' | relative_url }}"></script>
|
||||||
|
{% else %}
|
||||||
|
<script defer src="{{ '/unregister.js' | relative_url }}"></script>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- GA -->
|
||||||
|
{% if site.google_analytics.id != empty and site.google_analytics.id %}
|
||||||
|
{% include google-analytics.html %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
26
_includes/jsdelivr-combine.html
Normal file
26
_includes/jsdelivr-combine.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{% assign urls = include.urls | split: ',' %}
|
||||||
|
|
||||||
|
{% assign combined_urls = nil %}
|
||||||
|
|
||||||
|
{% assign domain = 'https://cdn.jsdelivr.net/' %}
|
||||||
|
|
||||||
|
{% for url in urls %}
|
||||||
|
{% if url contains domain %}
|
||||||
|
{% assign url_snippet = url | slice: domain.size, url.size %}
|
||||||
|
|
||||||
|
{% if combined_urls %}
|
||||||
|
{% assign combined_urls = combined_urls | append: ',' | append: url_snippet %}
|
||||||
|
{% else %}
|
||||||
|
{% assign combined_urls = domain | append: 'combine/' | append: url_snippet %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% elsif url contains '//' %}
|
||||||
|
<script src="{{ url }}"></script>
|
||||||
|
{% else %}
|
||||||
|
<script src="{{ url | relative_url }}"></script>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% if combined_urls %}
|
||||||
|
<script src="{{ combined_urls }}"></script>
|
||||||
|
{% endif %}
|
||||||
8
_includes/lang.html
Normal file
8
_includes/lang.html
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{% comment %}
|
||||||
|
Detect appearance language and return it through variable "lang"
|
||||||
|
{% endcomment %}
|
||||||
|
{% if site.data.locales[site.lang] %}
|
||||||
|
{% assign lang = site.lang %}
|
||||||
|
{% else %}
|
||||||
|
{% assign lang = 'en' %}
|
||||||
|
{% endif %}
|
||||||
70
_includes/language-alias.html
Normal file
70
_includes/language-alias.html
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
{% comment %}
|
||||||
|
|
||||||
|
Convert the alias of the syntax language to the official name
|
||||||
|
|
||||||
|
See: <https://github.com/rouge-ruby/rouge/wiki/List-of-supported-languages-and-lexers>
|
||||||
|
|
||||||
|
{% endcomment %}
|
||||||
|
|
||||||
|
{% assign _lang = include.language | default: '' %}
|
||||||
|
|
||||||
|
{% case _lang %}
|
||||||
|
{% when 'actionscript', 'as', 'as3' %}
|
||||||
|
{{ 'ActionScript' }}
|
||||||
|
{% when 'applescript' %}
|
||||||
|
{{ 'AppleScript' }}
|
||||||
|
{% when 'brightscript', 'bs', 'brs' %}
|
||||||
|
{{ 'BrightScript' }}
|
||||||
|
{% when 'cfscript', 'cfc' %}
|
||||||
|
{{ 'CFScript' }}
|
||||||
|
{% when 'coffeescript', 'coffee', 'coffee-script' %}
|
||||||
|
{{ 'CoffeeScript' }}
|
||||||
|
{% when 'cs', 'csharp' %}
|
||||||
|
{{ 'C#' }}
|
||||||
|
{% when 'erl' %}
|
||||||
|
{{ 'Erlang' }}
|
||||||
|
{% when 'graphql' %}
|
||||||
|
{{ 'GraphQL' }}
|
||||||
|
{% when 'haskell', 'hs' %}
|
||||||
|
{{ 'Haskell' }}
|
||||||
|
{% when 'javascript', 'js' %}
|
||||||
|
{{ 'JavaScript' }}
|
||||||
|
{% when 'make', 'mf', 'gnumake', 'bsdmake' %}
|
||||||
|
{{ 'Makefile' }}
|
||||||
|
{% when 'md', 'mkd' %}
|
||||||
|
{{ 'Markdown' }}
|
||||||
|
{% when 'm' %}
|
||||||
|
{{ 'Matlab' }}
|
||||||
|
{% when 'objective_c', 'objc', 'obj-c', 'obj_c', 'objectivec' %}
|
||||||
|
{{ 'Objective-C' }}
|
||||||
|
{% when 'perl', 'pl' %}
|
||||||
|
{{ 'Perl' }}
|
||||||
|
{% when 'php','php3','php4','php5' %}
|
||||||
|
{{ 'PHP' }}
|
||||||
|
{% when 'py' %}
|
||||||
|
{{ 'Python' }}
|
||||||
|
{% when 'rb' %}
|
||||||
|
{{ 'Ruby' }}
|
||||||
|
{% when 'rs','no_run','ignore','should_panic' %}
|
||||||
|
{{ 'Rust' }}
|
||||||
|
{% when 'bash', 'zsh', 'ksh', 'sh' %}
|
||||||
|
{{ 'Shell' }}
|
||||||
|
{% when 'st', 'squeak' %}
|
||||||
|
{{ 'Smalltalk' }}
|
||||||
|
{% when 'tex'%}
|
||||||
|
{{ 'TeX' }}
|
||||||
|
{% when 'latex' %}
|
||||||
|
{{ 'LaTex' }}
|
||||||
|
{% when 'ts', 'typescript' %}
|
||||||
|
{{ 'TypeScript' }}
|
||||||
|
{% when 'vb', 'visualbasic' %}
|
||||||
|
{{ 'Visual Basic' }}
|
||||||
|
{% when 'vue', 'vuejs' %}
|
||||||
|
{{ 'Vue.js' }}
|
||||||
|
{% when 'yml' %}
|
||||||
|
{{ 'YAML' }}
|
||||||
|
{% when 'css', 'html', 'scss', 'ssh', 'toml', 'xml', 'yaml', 'json' %}
|
||||||
|
{{ _lang | upcase }}
|
||||||
|
{% else %}
|
||||||
|
{{ _lang | capitalize }}
|
||||||
|
{% endcase %}
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
<!-- image lazy load -->
|
|
||||||
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/lozad/dist/lozad.min.js"></script>
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
const observer = lozad();
|
|
||||||
observer.observe();
|
|
||||||
</script>
|
|
||||||
58
_includes/mermaid.html
Normal file
58
_includes/mermaid.html
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
<!-- mermaid-js loader -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
(function () {
|
||||||
|
function updateMermaid(event) {
|
||||||
|
if (event.source === window && event.data && event.data.direction === ModeToggle.ID) {
|
||||||
|
const mode = event.data.message;
|
||||||
|
|
||||||
|
if (typeof mermaid === 'undefined') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let expectedTheme = mode === ModeToggle.DARK_MODE ? 'dark' : 'default';
|
||||||
|
let config = { theme: expectedTheme };
|
||||||
|
|
||||||
|
/* Re-render the SVG › <https://github.com/mermaid-js/mermaid/issues/311#issuecomment-332557344> */
|
||||||
|
$('.mermaid').each(function () {
|
||||||
|
let svgCode = $(this).prev().children().html();
|
||||||
|
$(this).removeAttr('data-processed');
|
||||||
|
$(this).html(svgCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
mermaid.initialize(config);
|
||||||
|
mermaid.init(undefined, '.mermaid');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let initTheme = 'default';
|
||||||
|
const html = document.documentElement;
|
||||||
|
|
||||||
|
if (
|
||||||
|
(html.hasAttribute('data-mode') && html.getAttribute('data-mode') === 'dark') ||
|
||||||
|
(!html.hasAttribute('data-mode') && window.matchMedia('(prefers-color-scheme: dark)').matches)
|
||||||
|
) {
|
||||||
|
initTheme = 'dark';
|
||||||
|
}
|
||||||
|
|
||||||
|
let mermaidConf = {
|
||||||
|
theme: initTheme /* <default|dark|forest|neutral> */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Create mermaid tag */
|
||||||
|
document.querySelectorAll('pre>code.language-mermaid').forEach((elem) => {
|
||||||
|
const svgCode = elem.textContent;
|
||||||
|
const backup = elem.parentElement;
|
||||||
|
backup.classList.add('unloaded');
|
||||||
|
/* create mermaid node */
|
||||||
|
let mermaid = document.createElement('pre');
|
||||||
|
mermaid.classList.add('mermaid');
|
||||||
|
const text = document.createTextNode(svgCode);
|
||||||
|
mermaid.appendChild(text);
|
||||||
|
backup.after(mermaid);
|
||||||
|
});
|
||||||
|
|
||||||
|
mermaid.initialize(mermaidConf);
|
||||||
|
|
||||||
|
window.addEventListener('message', updateMermaid);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
1
_includes/metadata-hook.html
Normal file
1
_includes/metadata-hook.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<!-- A placeholder to allow defining custom metadata -->
|
||||||
143
_includes/mode-toggle.html
Normal file
143
_includes/mode-toggle.html
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
<!-- Switch the mode between dark and light. -->
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
class ModeToggle {
|
||||||
|
static get MODE_KEY() {
|
||||||
|
return 'mode';
|
||||||
|
}
|
||||||
|
static get MODE_ATTR() {
|
||||||
|
return 'data-mode';
|
||||||
|
}
|
||||||
|
static get DARK_MODE() {
|
||||||
|
return 'dark';
|
||||||
|
}
|
||||||
|
static get LIGHT_MODE() {
|
||||||
|
return 'light';
|
||||||
|
}
|
||||||
|
static get ID() {
|
||||||
|
return 'mode-toggle';
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
if (this.hasMode) {
|
||||||
|
if (this.isDarkMode) {
|
||||||
|
if (!this.isSysDarkPrefer) {
|
||||||
|
this.setDark();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (this.isSysDarkPrefer) {
|
||||||
|
this.setLight();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let self = this;
|
||||||
|
|
||||||
|
/* always follow the system prefers */
|
||||||
|
this.sysDarkPrefers.addEventListener('change', () => {
|
||||||
|
if (self.hasMode) {
|
||||||
|
if (self.isDarkMode) {
|
||||||
|
if (!self.isSysDarkPrefer) {
|
||||||
|
self.setDark();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (self.isSysDarkPrefer) {
|
||||||
|
self.setLight();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self.clearMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
self.notify();
|
||||||
|
});
|
||||||
|
} /* constructor() */
|
||||||
|
|
||||||
|
get sysDarkPrefers() {
|
||||||
|
return window.matchMedia('(prefers-color-scheme: dark)');
|
||||||
|
}
|
||||||
|
|
||||||
|
get isSysDarkPrefer() {
|
||||||
|
return this.sysDarkPrefers.matches;
|
||||||
|
}
|
||||||
|
|
||||||
|
get isDarkMode() {
|
||||||
|
return this.mode === ModeToggle.DARK_MODE;
|
||||||
|
}
|
||||||
|
|
||||||
|
get isLightMode() {
|
||||||
|
return this.mode === ModeToggle.LIGHT_MODE;
|
||||||
|
}
|
||||||
|
|
||||||
|
get hasMode() {
|
||||||
|
return this.mode != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
get mode() {
|
||||||
|
return sessionStorage.getItem(ModeToggle.MODE_KEY);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* get the current mode on screen */
|
||||||
|
get modeStatus() {
|
||||||
|
if (this.isDarkMode || (!this.hasMode && this.isSysDarkPrefer)) {
|
||||||
|
return ModeToggle.DARK_MODE;
|
||||||
|
} else {
|
||||||
|
return ModeToggle.LIGHT_MODE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setDark() {
|
||||||
|
document.documentElement.setAttribute(ModeToggle.MODE_ATTR, ModeToggle.DARK_MODE);
|
||||||
|
sessionStorage.setItem(ModeToggle.MODE_KEY, ModeToggle.DARK_MODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
setLight() {
|
||||||
|
document.documentElement.setAttribute(ModeToggle.MODE_ATTR, ModeToggle.LIGHT_MODE);
|
||||||
|
sessionStorage.setItem(ModeToggle.MODE_KEY, ModeToggle.LIGHT_MODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
clearMode() {
|
||||||
|
document.documentElement.removeAttribute(ModeToggle.MODE_ATTR);
|
||||||
|
sessionStorage.removeItem(ModeToggle.MODE_KEY);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Notify another plugins that the theme mode has changed */
|
||||||
|
notify() {
|
||||||
|
window.postMessage(
|
||||||
|
{
|
||||||
|
direction: ModeToggle.ID,
|
||||||
|
message: this.modeStatus
|
||||||
|
},
|
||||||
|
'*'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
flipMode() {
|
||||||
|
if (this.hasMode) {
|
||||||
|
if (this.isSysDarkPrefer) {
|
||||||
|
if (this.isLightMode) {
|
||||||
|
this.clearMode();
|
||||||
|
} else {
|
||||||
|
this.setLight();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (this.isDarkMode) {
|
||||||
|
this.clearMode();
|
||||||
|
} else {
|
||||||
|
this.setDark();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (this.isSysDarkPrefer) {
|
||||||
|
this.setLight();
|
||||||
|
} else {
|
||||||
|
this.setDark();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.notify();
|
||||||
|
} /* flipMode() */
|
||||||
|
} /* ModeToggle */
|
||||||
|
|
||||||
|
const modeToggle = new ModeToggle();
|
||||||
|
</script>
|
||||||
10
_includes/no-linenos.html
Normal file
10
_includes/no-linenos.html
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{% comment %}
|
||||||
|
Remove the line number of the code snippet.
|
||||||
|
{% endcomment %}
|
||||||
|
|
||||||
|
{% assign content = include.content %}
|
||||||
|
|
||||||
|
{% if content contains '<td class="rouge-gutter gl"><pre class="lineno">' %}
|
||||||
|
{% assign content = content | replace: '<td class="rouge-gutter gl"><pre class="lineno">', '<!-- <td class="rouge-gutter gl"><pre class="lineno">'%}
|
||||||
|
{% assign content = content | replace: '</td><td class="rouge-code">', '</td> --><td class="rouge-code">' %}
|
||||||
|
{% endif %}
|
||||||
24
_includes/notification.html
Normal file
24
_includes/notification.html
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<aside
|
||||||
|
id="notification"
|
||||||
|
class="toast"
|
||||||
|
role="alert"
|
||||||
|
aria-live="assertive"
|
||||||
|
aria-atomic="true"
|
||||||
|
data-bs-animation="true"
|
||||||
|
data-bs-autohide="false"
|
||||||
|
>
|
||||||
|
<div class="toast-header">
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="btn-close ms-auto"
|
||||||
|
data-bs-dismiss="toast"
|
||||||
|
aria-label="Close"
|
||||||
|
></button>
|
||||||
|
</div>
|
||||||
|
<div class="toast-body text-center pt-0">
|
||||||
|
<p class="px-2 mb-3">{{ site.data.locales[include.lang].notification.update_found }}</p>
|
||||||
|
<button type="button" class="btn btn-primary" aria-label="Update">
|
||||||
|
{{ site.data.locales[include.lang].notification.update }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
13
_includes/origin-type.html
Normal file
13
_includes/origin-type.html
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{% comment %} Site static assets origin type {% endcomment %}
|
||||||
|
|
||||||
|
{% assign type = 'cors' %}
|
||||||
|
|
||||||
|
{% if site.assets.self_host.enabled %}
|
||||||
|
{% if site.assets.self_host.env %}
|
||||||
|
{% if site.assets.self_host.env == jekyll.environment %}
|
||||||
|
{% assign type = 'basic' %}
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
{% assign type = 'basic' %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
<!--
|
|
||||||
The Pannel on right side (Desktop views)
|
|
||||||
© 2017-2019 Cotes Chung
|
|
||||||
MIT License
|
|
||||||
-->
|
|
||||||
|
|
||||||
<div id="panel-wrapper" class="col-xl-3 pl-2 topbar-down">
|
|
||||||
|
|
||||||
<div class="access">
|
|
||||||
{% assign lastmod_list = "" | split: "" %}
|
|
||||||
{% assign index = 0 %}
|
|
||||||
|
|
||||||
{% for post in site.posts %}
|
|
||||||
{% if post.seo.date_modified > post.date and post.seo.date_modified != nil %}
|
|
||||||
{% capture item %}
|
|
||||||
{{ post.seo.date_modified }}::{{ index }}
|
|
||||||
{% endcapture %}
|
|
||||||
{% assign lastmod_list = lastmod_list | push: item %}
|
|
||||||
{% endif %}
|
|
||||||
{% assign index = index | plus: 1 %}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
{% if lastmod_list.size > 0 %}
|
|
||||||
<div id="access-lastmod" class="post mb-4">
|
|
||||||
<h3 data-toc-skip>
|
|
||||||
{{- site.data.label.panel.lastmod -}}
|
|
||||||
</h3>
|
|
||||||
<ul class="post-content pl-0 pb-1 ml-1 mt-2">
|
|
||||||
{% assign MAX_SIZE = 5 %}
|
|
||||||
{% assign sum = 0 %}
|
|
||||||
{% assign lastmod_list = lastmod_list | sort | reverse %}
|
|
||||||
{% for item in lastmod_list %}
|
|
||||||
{% assign index = item | split: "::" | last | plus: 0 %}
|
|
||||||
{% assign post = site.posts[index] %}
|
|
||||||
<li><a href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a></li>
|
|
||||||
{% assign sum = sum | plus: 1 %}
|
|
||||||
{% if sum >= MAX_SIZE %}
|
|
||||||
{% break %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</div><!-- #access-lastmod -->
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div id="access-tags">
|
|
||||||
<h3 data-toc-skip>
|
|
||||||
{{- site.data.label.panel.trending_tags -}}
|
|
||||||
</h3>
|
|
||||||
<div class="d-flex flex-wrap mt-3 mb-1 mr-3">
|
|
||||||
{% include trending-tags.html %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div> <!-- .access -->
|
|
||||||
|
|
||||||
{% if page.layout == 'post' and site.toc and page.toc %}
|
|
||||||
<div id="toc-wrapper" class="pl-0 pr-4 mb-5">
|
|
||||||
<h3 data-toc-skip class="pl-3 pt-2">
|
|
||||||
{{- site.data.label.panel.toc -}}
|
|
||||||
</h3>
|
|
||||||
<nav id="toc" data-toggle="toc"></nav>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
</div> <!-- #panel-wrapper -->
|
|
||||||
34
_includes/post-nav.html
Normal file
34
_includes/post-nav.html
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<!-- Navigation buttons at the bottom of the post. -->
|
||||||
|
|
||||||
|
<nav class="post-navigation d-flex justify-content-between" aria-label="Post Navigation">
|
||||||
|
{% assign previous = site.data.locales[include.lang].post.button.previous %}
|
||||||
|
{% assign next = site.data.locales[include.lang].post.button.next %}
|
||||||
|
|
||||||
|
{% if page.previous.url %}
|
||||||
|
<a
|
||||||
|
href="{{ site.baseurl }}{{ page.previous.url }}"
|
||||||
|
class="btn btn-outline-primary"
|
||||||
|
aria-label="{{ previous }}"
|
||||||
|
>
|
||||||
|
<p>{{ page.previous.title }}</p>
|
||||||
|
</a>
|
||||||
|
{% else %}
|
||||||
|
<div class="btn btn-outline-primary disabled" aria-label="{{ previous }}">
|
||||||
|
<p>-</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if page.next.url %}
|
||||||
|
<a
|
||||||
|
href="{{ site.baseurl }}{{page.next.url}}"
|
||||||
|
class="btn btn-outline-primary"
|
||||||
|
aria-label="{{ next }}"
|
||||||
|
>
|
||||||
|
<p>{{ page.next.title }}</p>
|
||||||
|
</a>
|
||||||
|
{% else %}
|
||||||
|
<div class="btn btn-outline-primary disabled" aria-label="{{ next }}">
|
||||||
|
<p>-</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</nav>
|
||||||
91
_includes/post-paginator.html
Normal file
91
_includes/post-paginator.html
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
<!-- The paginator for post list on HomgPage. -->
|
||||||
|
|
||||||
|
<nav aria-label="Page Navigation">
|
||||||
|
<ul class="pagination align-items-center mt-4 mb-0">
|
||||||
|
<!-- left arrow -->
|
||||||
|
{% if paginator.previous_page %}
|
||||||
|
{% assign prev_url = paginator.previous_page_path | relative_url %}
|
||||||
|
{% else %}
|
||||||
|
{% assign prev_url = '#' %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<li class="page-item {% unless paginator.previous_page %}disabled{% endunless %}">
|
||||||
|
<a class="page-link" href="{{ prev_url }}" aria-label="previous-page">
|
||||||
|
<i class="fas fa-angle-left"></i>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- page numbers -->
|
||||||
|
{% assign left_ellipsis = false %}
|
||||||
|
{% assign right_ellipsis = false %}
|
||||||
|
|
||||||
|
{% for i in (1..paginator.total_pages) %}
|
||||||
|
{% assign pre = paginator.page | minus: 1 %}
|
||||||
|
{% assign next = paginator.page | plus: 1 %}
|
||||||
|
{% assign pre_less = pre | minus: 1 %}
|
||||||
|
{% assign next_more = next | plus: 1 %}
|
||||||
|
{% assign show = false %}
|
||||||
|
|
||||||
|
{% if paginator.page == 1 %}
|
||||||
|
{% if i <= 3 or i == paginator.total_pages %}
|
||||||
|
{% assign show = true %}
|
||||||
|
{% endif %}
|
||||||
|
{% elsif paginator.page == paginator.total_pages %}
|
||||||
|
{% if i == 1 or i >= pre_less %}
|
||||||
|
{% assign show = true %}
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
{% if i == 1 or i == paginator.total_pages %}
|
||||||
|
{% assign show = true %}
|
||||||
|
{% elsif i >= pre and i <= next %}
|
||||||
|
{% assign show = true %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if show %}
|
||||||
|
<!-- show number -->
|
||||||
|
<li class="page-item {% if i == paginator.page %} active{% endif %}">
|
||||||
|
<a
|
||||||
|
class="page-link"
|
||||||
|
href="{% if i > 1 %}{{ site.paginate_path | replace: ':num', i | relative_url }}{% else %}{{ '/' | relative_url }}{% endif %}"
|
||||||
|
>
|
||||||
|
{{- i -}}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% else %}
|
||||||
|
<!-- hide number -->
|
||||||
|
{% if i < pre and left_ellipsis == false %}
|
||||||
|
<li class="page-item disabled">
|
||||||
|
<span class="page-link">...</span>
|
||||||
|
</li>
|
||||||
|
{% assign left_ellipsis = true %}
|
||||||
|
{% elsif i > next and right_ellipsis == false %}
|
||||||
|
<li class="page-item disabled">
|
||||||
|
<span class="page-link">...</span>
|
||||||
|
</li>
|
||||||
|
{% assign right_ellipsis = true %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<!-- mobile pagination -->
|
||||||
|
<li class="page-index align-middle">
|
||||||
|
<span>{{ paginator.page }}</span>
|
||||||
|
<span class="text-muted">/ {{ paginator.total_pages }}</span>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- right arrow -->
|
||||||
|
{% if paginator.next_page_path %}
|
||||||
|
{% assign next_url = paginator.next_page_path | relative_url %}
|
||||||
|
{% else %}
|
||||||
|
{% assign next_url = '#' %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<li class="page-item {% unless paginator.next_page_path %}disabled{% endunless %}">
|
||||||
|
<a class="page-link" href="{{ next_url }}" aria-label="next-page">
|
||||||
|
<i class="fas fa-angle-right"></i>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
<!-- .pagination -->
|
||||||
52
_includes/post-sharing.html
Normal file
52
_includes/post-sharing.html
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
<!-- Post sharing snippet -->
|
||||||
|
|
||||||
|
<div class="share-wrapper d-flex align-items-center">
|
||||||
|
<span class="share-label text-muted">{{ site.data.locales[include.lang].post.share }}</span>
|
||||||
|
<span class="share-icons">
|
||||||
|
{% capture title %}{{ page.title }} - {{ site.title }}{% endcapture %}
|
||||||
|
{% assign title = title | uri_escape %}
|
||||||
|
{% assign url = page.url | absolute_url | url_encode %}
|
||||||
|
|
||||||
|
{% for share in site.data.share.platforms -%}
|
||||||
|
{%- capture tooltip -%}
|
||||||
|
data-bs-toggle="tooltip" data-bs-placement="top" title="{{ share.type }}" aria-label="{{ share.type }}"
|
||||||
|
{%- endcapture -%}
|
||||||
|
|
||||||
|
{% if share.type == 'Mastodon' %}
|
||||||
|
<script defer type="module" src="https://cdn.jsdelivr.net/npm/@justinribeiro/share-to-mastodon/+esm"></script>
|
||||||
|
<button class="btn text-start" {{ tooltip }}>
|
||||||
|
<share-to-mastodon
|
||||||
|
class="share-mastodon"
|
||||||
|
message="{{ title }}"
|
||||||
|
url="{{ url }}"
|
||||||
|
{%- if share.instances -%}
|
||||||
|
customInstanceList="{{ share.instances | jsonify | xml_escape }}"
|
||||||
|
{%- endif %}
|
||||||
|
>
|
||||||
|
<i class="fa-fw {{ share.icon }}"></i>
|
||||||
|
</share-to-mastodon>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
{% continue %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign link = share.link | replace: 'TITLE', title | replace: 'URL', url %}
|
||||||
|
|
||||||
|
<a href="{{ link }}" target="_blank" rel="noopener" {{ tooltip }}>
|
||||||
|
<i class="fa-fw {{ share.icon }}"></i>
|
||||||
|
</a>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<button
|
||||||
|
id="copy-link"
|
||||||
|
aria-label="Copy link"
|
||||||
|
class="btn small"
|
||||||
|
data-bs-toggle="tooltip"
|
||||||
|
data-bs-placement="top"
|
||||||
|
title="{{ site.data.locales[include.lang].post.button.share_link.title }}"
|
||||||
|
data-title-succeed="{{ site.data.locales[include.lang].post.button.share_link.succeed }}"
|
||||||
|
>
|
||||||
|
<i class="fa-fw fas fa-link pe-none fs-6"></i>
|
||||||
|
</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
37
_includes/read-time.html
Normal file
37
_includes/read-time.html
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
<!-- Calculate the post's reading time, and display the word count in tooltip -->
|
||||||
|
|
||||||
|
{% assign words = include.content | strip_html | number_of_words: 'auto' %}
|
||||||
|
|
||||||
|
<!-- words per minute -->
|
||||||
|
|
||||||
|
{% assign wpm = 180 %}
|
||||||
|
{% assign min_time = 1 %}
|
||||||
|
|
||||||
|
{% assign read_time = words | divided_by: wpm %}
|
||||||
|
|
||||||
|
{% unless read_time > 0 %}
|
||||||
|
{% assign read_time = min_time %}
|
||||||
|
{% endunless %}
|
||||||
|
|
||||||
|
{% capture read_prompt %}
|
||||||
|
{{- site.data.locales[include.lang].post.read_time.prompt -}}
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
|
<!-- return element -->
|
||||||
|
<span
|
||||||
|
class="readtime"
|
||||||
|
data-bs-toggle="tooltip"
|
||||||
|
data-bs-placement="bottom"
|
||||||
|
title="{{ words }} {{ site.data.locales[include.lang].post.words }}"
|
||||||
|
>
|
||||||
|
<em>
|
||||||
|
{{- read_time -}}
|
||||||
|
{{ ' ' }}
|
||||||
|
{{- site.data.locales[include.lang].post.read_time.unit -}}
|
||||||
|
</em>
|
||||||
|
{%- if include.prompt -%}
|
||||||
|
{%- assign _prompt_words = read_prompt | number_of_words: 'auto' -%}
|
||||||
|
{%- unless _prompt_words > 1 -%}{{ ' ' }}{%- endunless -%}
|
||||||
|
{{ read_prompt }}
|
||||||
|
{%- endif -%}
|
||||||
|
</span>
|
||||||
255
_includes/refactor-content.html
Normal file
255
_includes/refactor-content.html
Normal file
@@ -0,0 +1,255 @@
|
|||||||
|
<!-- Refactor the HTML structure -->
|
||||||
|
|
||||||
|
{% assign _content = include.content %}
|
||||||
|
|
||||||
|
<!--
|
||||||
|
In order to allow a wide table to scroll horizontally,
|
||||||
|
we suround the markdown table with `<div class="table-wrapper">` and `</div>`
|
||||||
|
-->
|
||||||
|
|
||||||
|
{% if _content contains '<table' %}
|
||||||
|
{% assign _content = _content
|
||||||
|
| replace: '<table', '<div class="table-wrapper"><table'
|
||||||
|
| replace: '</table>', '</table></div>'
|
||||||
|
| replace: '<code><div class="table-wrapper">', '<code>'
|
||||||
|
| replace: '</table></div></code>', '</table></code>'
|
||||||
|
%}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Fixed kramdown code highlight rendering:
|
||||||
|
https://github.com/penibelst/jekyll-compress-html/issues/101
|
||||||
|
https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-188144901
|
||||||
|
-->
|
||||||
|
|
||||||
|
{% if _content contains '<pre class="highlight">' %}
|
||||||
|
{% assign _content = _content
|
||||||
|
| replace: '<div class="highlight"><pre class="highlight"><code', '<div class="highlight"><code'
|
||||||
|
| replace: '</code></pre></div>', '</code></div>'
|
||||||
|
%}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- Change the icon of checkbox -->
|
||||||
|
|
||||||
|
{% if _content contains '<input type="checkbox"' %}
|
||||||
|
{% assign _content = _content
|
||||||
|
| replace: '<input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" />',
|
||||||
|
'<i class="fas fa-check-circle fa-fw checked"></i>'
|
||||||
|
| replace: '<input type="checkbox" class="task-list-item-checkbox" disabled="disabled" />',
|
||||||
|
'<i class="far fa-circle fa-fw"></i>'
|
||||||
|
%}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- Handle images -->
|
||||||
|
|
||||||
|
{% assign IMG_TAG = '<img ' %}
|
||||||
|
|
||||||
|
{% if _content contains IMG_TAG %}
|
||||||
|
{% assign _img_content = null %}
|
||||||
|
{% assign _img_snippets = _content | split: IMG_TAG %}
|
||||||
|
|
||||||
|
{% for _img_snippet in _img_snippets %}
|
||||||
|
{% if forloop.first %}
|
||||||
|
{% assign _img_content = _img_snippet %}
|
||||||
|
{% continue %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign _left = _img_snippet | split: '>' | first %}
|
||||||
|
{% assign _right = _img_snippet | remove: _left %}
|
||||||
|
|
||||||
|
{% unless _left contains 'src=' %}
|
||||||
|
{% continue %}
|
||||||
|
{% endunless %}
|
||||||
|
|
||||||
|
{% assign _left = _left | remove: ' /' | replace: ' w=', ' width=' | replace: ' h=', ' height=' %}
|
||||||
|
{% assign _attrs = _left | split: '" ' %}
|
||||||
|
|
||||||
|
{% assign _src = null %}
|
||||||
|
{% assign _lqip = null %}
|
||||||
|
{% assign _class = null %}
|
||||||
|
|
||||||
|
{% for _attr in _attrs %}
|
||||||
|
{% unless _attr contains '=' %}
|
||||||
|
{% continue %}
|
||||||
|
{% endunless %}
|
||||||
|
|
||||||
|
{% assign _pair = _attr | split: '="' %}
|
||||||
|
{% capture _key %}{{ _pair | first }}{% endcapture %}
|
||||||
|
{% capture _value %}{{ _pair | last | remove: '"' }}{% endcapture %}
|
||||||
|
|
||||||
|
{% case _key %}
|
||||||
|
{% when 'src' %}
|
||||||
|
{% assign _src = _value %}
|
||||||
|
{% when 'lqip' %}
|
||||||
|
{% assign _lqip = _value %}
|
||||||
|
{% when 'class' %}
|
||||||
|
{% assign _class = _value %}
|
||||||
|
{% endcase %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<!-- take out classes -->
|
||||||
|
{% if _class %}
|
||||||
|
{% capture _old_class %}class="{{ _class }}"{% endcapture %}
|
||||||
|
{% assign _left = _left | remove: _old_class %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign _final_src = null %}
|
||||||
|
{% assign _lazyload = true %}
|
||||||
|
|
||||||
|
{%- capture _img_url -%}
|
||||||
|
{% include img-url.html src=_src img_path=page.img_path %}
|
||||||
|
{%- endcapture -%}
|
||||||
|
|
||||||
|
{% assign _path_prefix = _img_url | remove: _src %}
|
||||||
|
|
||||||
|
{% unless _src contains '//' %}
|
||||||
|
{% assign _final_src = _path_prefix | append: _src %}
|
||||||
|
{% assign _src_alt = 'src="' | append: _path_prefix %}
|
||||||
|
{% assign _left = _left | replace: 'src="', _src_alt %}
|
||||||
|
{% endunless %}
|
||||||
|
|
||||||
|
{% if _lqip %}
|
||||||
|
{% assign _lazyload = false %}
|
||||||
|
{% assign _class = _class | append: ' blur' %}
|
||||||
|
|
||||||
|
{% unless _lqip contains 'data:' %}
|
||||||
|
{% assign _lqip_alt = 'lqip="' | append: _path_prefix %}
|
||||||
|
{% assign _left = _left | replace: 'lqip="', _lqip_alt %}
|
||||||
|
{% endunless %}
|
||||||
|
|
||||||
|
<!-- add image placeholder -->
|
||||||
|
{% assign _left = _left | replace: 'src=', 'data-src=' | replace: ' lqip=', ' data-lqip="true" src=' %}
|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
{% assign _class = _class | append: ' shimmer' %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- lazy-load images -->
|
||||||
|
{% if _lazyload %}
|
||||||
|
{% assign _left = _left | append: ' loading="lazy"' %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if page.layout == 'home' %}
|
||||||
|
<!-- create the image wrapper -->
|
||||||
|
{% assign _wrapper_start = '<div class="preview-img ' | append: _class | append: '">' %}
|
||||||
|
|
||||||
|
{% assign _img_content = _img_content | append: _wrapper_start %}
|
||||||
|
{% assign _right = _right | prepend: '></div' %}
|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
<!-- make sure the `<img>` is wrapped by `<a>` -->
|
||||||
|
{% assign _parent = _right | slice: 1, 4 %}
|
||||||
|
|
||||||
|
{% if _parent == '</a>' %}
|
||||||
|
<!-- add class to exist <a> tag -->
|
||||||
|
{% assign _size = _img_content | size | minus: 1 %}
|
||||||
|
{% capture _class %}
|
||||||
|
class="img-link{% unless _lqip %} shimmer{% endunless %}"
|
||||||
|
{% endcapture %}
|
||||||
|
{% assign _img_content = _img_content | slice: 0, _size | append: _class | append: '>' %}
|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
<!-- create the image wrapper -->
|
||||||
|
{% assign _wrapper_start = _final_src
|
||||||
|
| default: _src
|
||||||
|
| prepend: '<a href="'
|
||||||
|
| append: '" class="popup img-link '
|
||||||
|
| append: _class
|
||||||
|
| append: '">'
|
||||||
|
%}
|
||||||
|
|
||||||
|
{% assign _img_content = _img_content | append: _wrapper_start %}
|
||||||
|
{% assign _right = '></a' | append: _right %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- combine -->
|
||||||
|
{% assign _img_content = _img_content | append: IMG_TAG | append: _left | append: _right %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% if _img_content %}
|
||||||
|
{% assign _content = _img_content %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- Add header for code snippets -->
|
||||||
|
|
||||||
|
{% if _content contains '<div class="highlight"><code>' %}
|
||||||
|
{% assign _code_spippets = _content | split: '<div class="highlight"><code>' %}
|
||||||
|
{% assign _new_content = '' %}
|
||||||
|
|
||||||
|
{% for _snippet in _code_spippets %}
|
||||||
|
{% if forloop.last %}
|
||||||
|
{% assign _new_content = _new_content | append: _snippet %}
|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
{% assign _left = _snippet | split: '><' | last %}
|
||||||
|
|
||||||
|
{% if _left contains 'file="' %}
|
||||||
|
{% assign _label_text = _left | split: 'file="' | last | split: '"' | first %}
|
||||||
|
{% assign _label_icon = 'far fa-file-code fa-fw' %}
|
||||||
|
{% else %}
|
||||||
|
{% assign _lang = _left | split: 'language-' | last | split: ' ' | first %}
|
||||||
|
{% capture _label_text %}{% include language-alias.html language=_lang %}{% endcapture %}
|
||||||
|
{% assign _label_icon = 'fas fa-code fa-fw small' %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture _label %}
|
||||||
|
<span data-label-text="{{ _label_text | strip }}"><i class="{{ _label_icon }}"></i></span>
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
|
{% assign _new_content = _new_content
|
||||||
|
| append: _snippet
|
||||||
|
| append: '<div class="code-header">'
|
||||||
|
| append: _label
|
||||||
|
| append: '<button aria-label="copy" data-title-succeed="'
|
||||||
|
| append: site.data.locales[include.lang].post.button.copy_code.succeed
|
||||||
|
| append: '"><i class="far fa-clipboard"></i></button></div>'
|
||||||
|
| append: '<div class="highlight"><code>'
|
||||||
|
%}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% assign _content = _new_content %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- Create heading anchors -->
|
||||||
|
|
||||||
|
{% assign heading_levels = '2,3,4,5' | split: ',' %}
|
||||||
|
{% assign _heading_content = _content %}
|
||||||
|
|
||||||
|
{% for level in heading_levels %}
|
||||||
|
{% assign mark_start = '<h' | append: level | append: ' id="' %}
|
||||||
|
{% assign mark_end = '</h' | append: level | append: '>' %}
|
||||||
|
|
||||||
|
{% if _heading_content contains mark_start %}
|
||||||
|
{% assign _new_content = null %}
|
||||||
|
{% assign heading_snippets = _heading_content | split: mark_start %}
|
||||||
|
|
||||||
|
{% for snippet in heading_snippets %}
|
||||||
|
{% if forloop.first %}
|
||||||
|
{% assign _new_content = snippet %}
|
||||||
|
{% continue %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign id = snippet | split: '"' | first %}
|
||||||
|
{% assign anchor = '<a href="#'
|
||||||
|
| append: id
|
||||||
|
| append: '" class="anchor text-muted"><i class="fas fa-hashtag"></i></a>'
|
||||||
|
%}
|
||||||
|
|
||||||
|
{% assign left = snippet | split: mark_end | first %}
|
||||||
|
{% assign right = snippet | slice: left.size, snippet.size %}
|
||||||
|
{% assign left = left | replace_first: '">', '"><span class="me-2">' | append: '</span>' %}
|
||||||
|
|
||||||
|
{% assign _new_content = _new_content | append: mark_start | append: left | append: anchor | append: right %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% assign _heading_content = _new_content %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% assign _content = _heading_content %}
|
||||||
|
|
||||||
|
<!-- return -->
|
||||||
|
{{ _content }}
|
||||||
@@ -1,71 +1,96 @@
|
|||||||
<!--
|
<!-- Recommend the other 3 posts according to the tags and categories of the current post. -->
|
||||||
The related posts of current post.
|
|
||||||
Placed in the bottom of every single post.
|
|
||||||
© 2019 Cotes Chung
|
|
||||||
Published under the MIT License
|
|
||||||
-->
|
|
||||||
|
|
||||||
{% assign MAX_SIZE = 3 %}
|
<!-- The total size of related posts -->
|
||||||
|
{% assign TOTAL_SIZE = 3 %}
|
||||||
|
|
||||||
|
<!-- An random integer that bigger than 0 -->
|
||||||
{% assign TAG_SCORE = 1 %}
|
{% assign TAG_SCORE = 1 %}
|
||||||
|
|
||||||
|
<!-- Equals to TAG_SCORE / {max_categories_hierarchy} -->
|
||||||
{% assign CATEGORY_SCORE = 0.5 %}
|
{% assign CATEGORY_SCORE = 0.5 %}
|
||||||
|
|
||||||
{% assign score_list = "" | split: "" %}
|
{% assign SEPARATOR = ':' %}
|
||||||
{% assign post_index = 0 %}
|
|
||||||
|
|
||||||
{% for post in site.posts %}
|
{% assign match_posts = '' | split: '' %}
|
||||||
{% if post.url != page.url %}
|
|
||||||
{% assign score = 0 %}
|
|
||||||
|
|
||||||
{% for tag in post.tags %}
|
{% for category in page.categories %}
|
||||||
{% if page.tags contains tag %}
|
{% assign match_posts = match_posts | push: site.categories[category] | uniq %}
|
||||||
{% assign score = score | plus: TAG_SCORE %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
{% for category in post.categories %}
|
|
||||||
{% if page.categories contains category %}
|
|
||||||
{% assign score = score | plus: CATEGORY_SCORE %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
{% if score > 0 %}
|
|
||||||
{% capture score_item %}{{ score }}:{{ post_index }}{% endcapture %}
|
|
||||||
{% assign score_list = score_list | push: score_item %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
{% assign post_index = post_index | plus: 1 %}
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
{% for tag in page.tags %}
|
||||||
|
{% assign match_posts = match_posts | push: site.tags[tag] | uniq %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% assign last_index = match_posts.size | minus: 1 %}
|
||||||
|
{% assign score_list = '' | split: '' %}
|
||||||
|
|
||||||
|
{% for i in (0..last_index) %}
|
||||||
|
{% assign post = match_posts[i] %}
|
||||||
|
|
||||||
|
{% if post.url == page.url %}
|
||||||
|
{% continue %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign score = 0 %}
|
||||||
|
|
||||||
|
{% for tag in post.tags %}
|
||||||
|
{% if page.tags contains tag %}
|
||||||
|
{% assign score = score | plus: TAG_SCORE %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% for category in post.categories %}
|
||||||
|
{% if page.categories contains category %}
|
||||||
|
{% assign score = score | plus: CATEGORY_SCORE %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% if score > 0 %}
|
||||||
|
{% capture score_item %}{{ score }}{{ SEPARATOR }}{{ i }}{% endcapture %}
|
||||||
|
{% assign score_list = score_list | push: score_item %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% assign index_list = '' | split: '' %}
|
||||||
|
|
||||||
{% if score_list.size > 0 %}
|
{% if score_list.size > 0 %}
|
||||||
{% assign score_list = score_list | sort | reverse %}
|
{% assign score_list = score_list | sort | reverse %}
|
||||||
{% assign count = 0 %}
|
{% for entry in score_list limit: TOTAL_SIZE %}
|
||||||
<div id="related-posts" class="mt-4 mb-4 pb-3">
|
{% assign index = entry | split: SEPARATOR | last %}
|
||||||
<h3 class="pt-2 mt-1 mb-4" data-toc-skip>Related Posts</h3>
|
{% assign index_list = index_list | push: index %}
|
||||||
<div class="card-deck mb-4">
|
{% endfor %}
|
||||||
{% for score_item in score_list %}
|
{% endif %}
|
||||||
{% assign data = score_item | split: ":" %}
|
|
||||||
{% assign index = data[1] | plus: 0 %}
|
{% assign relate_posts = '' | split: '' %}
|
||||||
{% assign post = site.posts[index] %}
|
|
||||||
<div class="card">
|
{% for index in index_list %}
|
||||||
<a href="{{ post.url }}">
|
{% assign i = index | to_integer %}
|
||||||
<div class="card-body">
|
{% assign relate_posts = relate_posts | push: match_posts[i] %}
|
||||||
<span class="timeago small">
|
{% endfor %}
|
||||||
{{ post.date | date: POST_DATE }}
|
|
||||||
<i class="unloaded">{{ post.date | date_to_xmlschema }}</i>
|
{% if relate_posts.size > 0 %}
|
||||||
</span>
|
<aside id="related-posts" aria-labelledby="related-label">
|
||||||
<h3 class="pt-0 mt-2 mb-3" data-toc-skip>{{ post.title }}</h3>
|
<h3 class="mb-4" id="related-label">
|
||||||
<div class="text-muted small">
|
{{- site.data.locales[include.lang].post.relate_posts -}}
|
||||||
<p>{{ post.content | markdownify | strip_html | truncate: 200 | replace: '&', '&' }}</p>
|
</h3>
|
||||||
|
<nav class="row row-cols-1 row-cols-md-2 row-cols-xl-3 g-4 mb-4">
|
||||||
|
{% for post in relate_posts %}
|
||||||
|
<article class="col">
|
||||||
|
<a href="{{ post.url | relative_url }}" class="post-preview card h-100">
|
||||||
|
<div class="card-body">
|
||||||
|
{% include datetime.html date=post.date lang=include.lang %}
|
||||||
|
<h4 class="pt-0 my-2">{{ post.title }}</h4>
|
||||||
|
<div class="text-muted">
|
||||||
|
<p>
|
||||||
|
{% include no-linenos.html content=post.content %}
|
||||||
|
{{ content | markdownify | strip_html | truncate: 200 | escape }}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</a>
|
||||||
</a>
|
</article>
|
||||||
</div>
|
{% endfor %}
|
||||||
{% assign count = count | plus: 1 %}
|
</nav>
|
||||||
{% if count >= MAX_SIZE %}
|
</aside>
|
||||||
{% break %}
|
<!-- #related-posts -->
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
|
||||||
</div> <!-- .card-deck -->
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|||||||
@@ -1,29 +1,47 @@
|
|||||||
<!--
|
<!--
|
||||||
Jekyll Simple Search loader
|
Jekyll Simple Search loader
|
||||||
© 2017-2019 Cotes Chung
|
See: <https://github.com/christian-fei/Simple-Jekyll-Search>
|
||||||
MIT License
|
|
||||||
-->
|
-->
|
||||||
<script src="https://cdn.jsdelivr.net/npm/simple-jekyll-search@1.7.3/dest/simple-jekyll-search.min.js" integrity="sha256-qcLR00zq6pJk4je3MLgAri8Nn+ZumUlXgTKR2H/xCY0=" crossorigin="anonymous"></script>
|
|
||||||
|
|
||||||
{% capture result_elem %}
|
{% capture result_elem %}
|
||||||
<div class="pl-1 pr-1 pl-sm-2 pr-sm-2 pl-lg-4 pr-lg-4 pl-xl-0 pr-xl-0">
|
<article class="px-1 px-sm-2 px-lg-4 px-xl-0">
|
||||||
<a href="{{ site.url }}{url}">{title}</a>
|
<header>
|
||||||
<div class="post-meta d-flex flex-column flex-sm-row text-muted mt-1 mb-1">
|
<h2><a href="{url}">{title}</a></h2>
|
||||||
<div class="mr-sm-4"><i class="far fa-folder fa-fw"></i>{categories}</div>
|
<div class="post-meta d-flex flex-column flex-sm-row text-muted mt-1 mb-1">
|
||||||
<div><i class="fa fa-tag fa-fw"></i>{tags}</div>
|
{categories}
|
||||||
</div>
|
{tags}
|
||||||
<p>{snippet}</p>
|
</div>
|
||||||
</div>
|
</header>
|
||||||
|
<p>{snippet}</p>
|
||||||
|
</article>
|
||||||
{% endcapture %}
|
{% endcapture %}
|
||||||
|
|
||||||
{% capture not_found %}<p class="mt-5">Oops! No result founds.</p>{% endcapture %}
|
{% capture not_found %}<p class="mt-5">{{ site.data.locales[include.lang].search.no_results }}</p>{% endcapture %}
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
SimpleJekyllSearch({
|
/* Note: dependent library will be loaded in `js-selector.html` */
|
||||||
searchInput: document.getElementById('search-input'),
|
SimpleJekyllSearch({
|
||||||
resultsContainer: document.getElementById('search-results'),
|
searchInput: document.getElementById('search-input'),
|
||||||
json: '{{ site.baseurl }}/search.json',
|
resultsContainer: document.getElementById('search-results'),
|
||||||
searchResultTemplate: '{{ result_elem }}',
|
json: '{{ '/assets/js/data/search.json' | relative_url }}',
|
||||||
noResultsText: '{{ not_found }}'
|
searchResultTemplate: '{{ result_elem | strip_newlines }}',
|
||||||
});
|
noResultsText: '{{ not_found }}',
|
||||||
</script>
|
templateMiddleware: function(prop, value, template) {
|
||||||
|
if (prop === 'categories') {
|
||||||
|
if (value === '') {
|
||||||
|
return `${value}`;
|
||||||
|
} else {
|
||||||
|
return `<div class="me-sm-4"><i class="far fa-folder fa-fw"></i>${value}</div>`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (prop === 'tags') {
|
||||||
|
if (value === '') {
|
||||||
|
return `${value}`;
|
||||||
|
} else {
|
||||||
|
return `<div><i class="fa fa-tag fa-fw"></i>${value}</div>`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|||||||
@@ -1,14 +1,10 @@
|
|||||||
<!--
|
<!-- The Search results -->
|
||||||
The Search results
|
|
||||||
© 2017-2019 Cotes Chung
|
|
||||||
MIT License
|
|
||||||
-->
|
|
||||||
<div id="search-result-wrapper" class="d-flex justify-content-center unloaded">
|
<div id="search-result-wrapper" class="d-flex justify-content-center unloaded">
|
||||||
<div class="col-12 col-xl-11 post-content">
|
<div class="col-11 content">
|
||||||
<div id="search-hints">
|
<div id="search-hints">
|
||||||
<h4 class="text-muted">{{ site.data.label.panel.trending_tags }}</h4>
|
{% include_cached trending-tags.html %}
|
||||||
{% include trending-tags.html %}
|
|
||||||
</div>
|
</div>
|
||||||
<div id="search-results" class="d-flex flex-wrap justify-content-center text-muted mt-3"></div>
|
<div id="search-results" class="d-flex flex-wrap justify-content-center text-muted mt-3"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,68 +1,99 @@
|
|||||||
<!--
|
<!-- The Side Bar -->
|
||||||
The Side Bar
|
|
||||||
© 2017-2019 Cotes Chung
|
|
||||||
MIT License
|
|
||||||
-->
|
|
||||||
|
|
||||||
<div id="nav-wrapper">
|
<aside aria-label="Sidebar" id="sidebar" class="d-flex flex-column align-items-end">
|
||||||
<div id="profile-wrapper" class="d-flex flex-column">
|
<header class="profile-wrapper">
|
||||||
<div id="avatar" class="d-flex justify-content-center">
|
<a href="{{ '/' | relative_url }}" id="avatar" class="rounded-circle">
|
||||||
<a href="{{ site.baseurl }}/" alt="avatar">
|
{%- if site.avatar != empty and site.avatar -%}
|
||||||
{% assign avatar = site.avatar %}
|
{%- capture avatar_url -%}
|
||||||
{% if avatar | slice: 0 == '/' %}
|
{% include img-url.html src=site.avatar %}
|
||||||
{% assign avatar = avatar | prepend: site.baseurl %}
|
{%- endcapture -%}
|
||||||
{% endif %}
|
<img src="{{- avatar_url -}}" width="112" height="112" alt="avatar" onerror="this.style.display='none'">
|
||||||
<img src="{{ avatar }}">
|
{%- endif -%}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="profile-text mt-3">
|
<h1 class="site-title">
|
||||||
<div id="site-title">
|
<a href="{{ '/' | relative_url }}">{{ site.title }}</a>
|
||||||
<a href="{{ site.baseurl }}/">{{- site.title -}}</a>
|
</h1>
|
||||||
</div>
|
<p class="site-subtitle fst-italic mb-0">{{ site.tagline }}</p>
|
||||||
<div id="site-subtitle" class="font-italic">{{ site.description }}</div>
|
</header>
|
||||||
</div>
|
<!-- .profile-wrapper -->
|
||||||
</div>
|
|
||||||
|
|
||||||
<ul class="nav flex-column">
|
<nav class="flex-column flex-grow-1 w-100 ps-0">
|
||||||
{% assign page_urls = page.url | split: "/" %}
|
<ul class="nav">
|
||||||
|
<!-- home -->
|
||||||
|
<li class="nav-item{% if page.layout == 'home' %}{{ " active" }}{% endif %}">
|
||||||
|
<a href="{{ '/' | relative_url }}" class="nav-link">
|
||||||
|
<i class="fa-fw fas fa-home"></i>
|
||||||
|
<span>{{ site.data.locales[include.lang].tabs.home | upcase }}</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<!-- the real tabs -->
|
||||||
|
{% for tab in site.tabs %}
|
||||||
|
<li class="nav-item{% if tab.url == page.url %}{{ " active" }}{% endif %}">
|
||||||
|
<a href="{{ tab.url | relative_url }}" class="nav-link">
|
||||||
|
<i class="fa-fw {{ tab.icon }}"></i>
|
||||||
|
{% capture tab_name %}{{ tab.url | split: '/' }}{% endcapture %}
|
||||||
|
|
||||||
{% for item in site.data.label.tabs %}
|
<span>{{ site.data.locales[include.lang].tabs.[tab_name] | default: tab.title | upcase }}</span>
|
||||||
{% assign ref = site.baseurl | append: "/" %}
|
</a>
|
||||||
|
</li>
|
||||||
|
<!-- .nav-item -->
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
{% if item.path %}
|
<div class="sidebar-bottom d-flex flex-wrap align-items-center w-100">
|
||||||
{% assign ref = ref | append: item.path | append: "/" %}
|
{% unless site.theme_mode %}
|
||||||
{% if item.url %}
|
<button type="button" class="mode-toggle btn" aria-label="Switch Mode">
|
||||||
{% assign ref = ref | append: item.url | append: "/" %}
|
<i class="fas fa-adjust"></i>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
{% if site.data.contact.size > 0 %}
|
||||||
|
<span class="icon-border"></span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endunless %}
|
||||||
|
|
||||||
<li class="nav-item d-flex justify-content-center
|
{% for entry in site.data.contact %}
|
||||||
{% if item.url == page_urls.last or
|
{% case entry.type %}
|
||||||
item.name == "Home" and page.layout == "home" %}active{% endif %}">
|
{% when 'github', 'twitter' %}
|
||||||
<a href="{{ ref }}" class="nav-link d-flex justify-content-center align-items-center w-100">
|
{%- capture url -%}
|
||||||
<i class="fa-fw {{ item.icon }} ml-3 mr-4 unloaded"></i>
|
https://{{ entry.type }}.com/{{ site[entry.type].username }}
|
||||||
<span>{{ item.name | upcase }}</span>
|
{%- endcapture -%}
|
||||||
</a>
|
{% when 'email' %}
|
||||||
</li> <!-- .nav-item -->
|
{% assign email = site.social.email | split: '@' %}
|
||||||
{% endfor %}
|
{%- capture url -%}
|
||||||
|
javascript:location.href = 'mailto:' + ['{{ email[0] }}','{{ email[1] }}'].join('@')
|
||||||
|
{%- endcapture -%}
|
||||||
|
{% when 'rss' %}
|
||||||
|
{% assign url = '/feed.xml' | relative_url %}
|
||||||
|
{% else %}
|
||||||
|
{% assign url = entry.url %}
|
||||||
|
{% endcase %}
|
||||||
|
|
||||||
</ul> <!-- ul.nav.flex-column -->
|
{% if url %}
|
||||||
|
<a
|
||||||
|
href="{{ url }}"
|
||||||
|
aria-label="{{ entry.type }}"
|
||||||
|
{% assign link_types = '' %}
|
||||||
|
|
||||||
</div><!-- #nav-wrapper -->
|
{% unless entry.noblank %}
|
||||||
|
target="_blank"
|
||||||
|
{% assign link_types = 'noopener noreferrer' %}
|
||||||
|
{% endunless %}
|
||||||
|
|
||||||
<div class="contact d-flex justify-content-around mt-4">
|
{% if entry.type == 'mastodon' %}
|
||||||
<a href="https://github.com/{{ site.github.username }}" target="_blank">
|
{% assign link_types = link_types | append: ' me' | strip %}
|
||||||
<i class="fab fa-github-alt"></i>
|
{% endif %}
|
||||||
</a>
|
|
||||||
<a href="https://twitter.com/{{ site.twitter.username }}" target="_blank">
|
{% unless link_types == empty %}
|
||||||
<i class="fab fa-twitter"></i>
|
rel="{{ link_types }}"
|
||||||
</a>
|
{% endunless %}
|
||||||
{% assign email = site.social.email | split: '@' %}
|
>
|
||||||
<a href="javascript:window.open('mailto:' + ['{{ email[0] }}','{{ email[1] }}'].join('@'))">
|
<i class="{{ entry.icon }}"></i>
|
||||||
<i class="fas fa-envelope"></i>
|
</a>
|
||||||
</a>
|
{% endif %}
|
||||||
<a href="{{ site.baseurl }}/feed.xml" target="_blank">
|
{% endfor %}
|
||||||
<i class="fas fa-rss"></i>
|
</div>
|
||||||
</a>
|
<!-- .sidebar-bottom -->
|
||||||
</div>
|
</aside>
|
||||||
|
<!-- #sidebar -->
|
||||||
|
|||||||
13
_includes/toc.html
Normal file
13
_includes/toc.html
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{% assign enable_toc = false %}
|
||||||
|
{% if site.toc and page.toc %}
|
||||||
|
{% if page.content contains '<h2' or page.content contains '<h3' %}
|
||||||
|
{% assign enable_toc = true %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if enable_toc %}
|
||||||
|
<section id="toc-wrapper" class="ps-0 pe-4">
|
||||||
|
<h2 class="panel-heading ps-3 pt-2 mb-2">{{- site.data.locales[include.lang].panel.toc -}}</h2>
|
||||||
|
<nav id="toc"></nav>
|
||||||
|
</section>
|
||||||
|
{% endif %}
|
||||||
@@ -1,48 +1,77 @@
|
|||||||
<!--
|
<!-- The Top Bar -->
|
||||||
The Top Bar
|
|
||||||
© 2017-2019 Cotes Chung
|
|
||||||
MIT License
|
|
||||||
-->
|
|
||||||
<div id="topbar-wrapper" class="row justify-content-center bg-white topbar-down">
|
|
||||||
<div id="topbar" class="col-11 d-flex h-100 align-items-center justify-content-between">
|
|
||||||
<span id="breadcrumb">
|
|
||||||
{% for item in page.breadcrumb %}
|
|
||||||
{% if item.url %}
|
|
||||||
<span>
|
|
||||||
<a href="{{ site.baseurl }}{{ item.url | remove: '.html'}}">
|
|
||||||
{{ item.label }}
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
{% else %}
|
|
||||||
<span>{{ item.label }}</span>
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
{% unless page.layout == "home" %}
|
<header id="topbar-wrapper" aria-label="Top Bar">
|
||||||
<span>{{ page.title }}</span>
|
<div
|
||||||
{% endunless %}
|
id="topbar"
|
||||||
|
class="d-flex align-items-center justify-content-between px-lg-3 h-100"
|
||||||
|
>
|
||||||
|
<nav id="breadcrumb" aria-label="Breadcrumb">
|
||||||
|
{% assign paths = page.url | split: '/' %}
|
||||||
|
|
||||||
</span><!-- endof #breadcrumb -->
|
{% if paths.size == 0 or page.layout == 'home' %}
|
||||||
|
<!-- index page -->
|
||||||
|
<span>{{ site.data.locales[include.lang].tabs.home | capitalize }}</span>
|
||||||
|
|
||||||
<i id="sidebar-trigger" class="fas fa-bars fa-fw"></i>
|
{% else %}
|
||||||
|
{% for item in paths %}
|
||||||
|
{% if forloop.first %}
|
||||||
|
<span>
|
||||||
|
<a href="{{ '/' | relative_url }}">
|
||||||
|
{{ site.data.locales[include.lang].tabs.home | capitalize }}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
{% elsif forloop.last %}
|
||||||
|
{% if page.collection == 'tabs' %}
|
||||||
|
<span>{{ site.data.locales[include.lang].tabs[item] | default: page.title }}</span>
|
||||||
|
{% else %}
|
||||||
|
<span>{{ page.title }}</span>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% elsif page.layout == 'category' or page.layout == 'tag' %}
|
||||||
|
<span>
|
||||||
|
<a href="{{ item | relative_url }}">
|
||||||
|
{{ site.data.locales[include.lang].tabs[item] | default: page.title }}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
</nav>
|
||||||
|
<!-- endof #breadcrumb -->
|
||||||
|
|
||||||
|
<button type="button" id="sidebar-trigger" class="btn btn-link">
|
||||||
|
<i class="fas fa-bars fa-fw"></i>
|
||||||
|
</button>
|
||||||
|
|
||||||
<div id="topbar-title">
|
<div id="topbar-title">
|
||||||
{% if page.location %}
|
{% if page.layout == 'home' %}
|
||||||
{{- page.location -}}
|
{{- site.data.locales[include.lang].title | default: site.title -}}
|
||||||
{% elsif page.layout == "home" %}
|
{% elsif page.collection == 'tabs' or page.layout == 'page' %}
|
||||||
{{- site.title -}}
|
{%- capture tab_key -%}{{ page.url | split: '/' }}{%- endcapture -%}
|
||||||
{% else %}
|
{{- site.data.locales[include.lang].tabs[tab_key] | default: page.title -}}
|
||||||
{{- page.title -}}
|
{% else %}
|
||||||
{% endif %}
|
{{- site.data.locales[include.lang].layout[page.layout] | default: page.layout | capitalize -}}
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<i id="search-trigger" class="fas fa-search fa-fw"></i>
|
<button type="button" id="search-trigger" class="btn btn-link">
|
||||||
<span id="search-wrapper" class="align-items-center">
|
|
||||||
<i class="fas fa-search fa-fw"></i>
|
<i class="fas fa-search fa-fw"></i>
|
||||||
<input class="form-control" id="search-input" type="search" placeholder="{{ site.data.label.search_hint }}...">
|
</button>
|
||||||
<i class="fa fa-times-circle fa-fw" id="search-cleaner"></i>
|
|
||||||
</span>
|
|
||||||
<a href="javascript:;">Cancel</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
<search class="align-items-center ms-3 ms-lg-0">
|
||||||
|
<i class="fas fa-search fa-fw"></i>
|
||||||
|
<input
|
||||||
|
class="form-control"
|
||||||
|
id="search-input"
|
||||||
|
type="search"
|
||||||
|
aria-label="search"
|
||||||
|
autocomplete="off"
|
||||||
|
placeholder="{{ site.data.locales[include.lang].search.hint | capitalize }}..."
|
||||||
|
>
|
||||||
|
</search>
|
||||||
|
<button type="button" class="btn btn-link text-decoration-none" id="search-cancel">
|
||||||
|
{{- site.data.locales[include.lang].search.cancel -}}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|||||||
@@ -1,26 +1,46 @@
|
|||||||
<!--
|
<!-- The trending tags list -->
|
||||||
The trending tags list
|
|
||||||
|
|
||||||
© 2019 Cotes Chung
|
|
||||||
MIT Licensed
|
|
||||||
-->
|
|
||||||
|
|
||||||
{% assign MAX = 10 %}
|
{% assign MAX = 10 %}
|
||||||
|
|
||||||
{% capture tags_array %}
|
{% assign size_list = '' | split: '' %}
|
||||||
{% for tag in site.tags %}
|
{% assign tag_list = '' | split: '' %}
|
||||||
{{ tag[1] | size }}:{{ tag[0] | replace: ' ', '-' }}
|
|
||||||
|
{% for tag in site.tags %}
|
||||||
|
{% assign size = tag | last | size %}
|
||||||
|
{% assign size_list = size_list | push: size %}
|
||||||
|
|
||||||
|
{% assign tag_str = tag | first | append: '::' | append: size %}
|
||||||
|
{% assign tag_list = tag_list | push: tag_str %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% assign size_list = size_list | sort | reverse %}
|
||||||
|
|
||||||
|
{% assign tag_list = tag_list | sort_natural %}
|
||||||
|
|
||||||
|
{% assign trending_tags = '' | split: '' %}
|
||||||
|
|
||||||
|
{% for size in size_list limit: MAX %}
|
||||||
|
{% for tag_str in tag_list %}
|
||||||
|
{% assign tag = tag_str | split: '::' %}
|
||||||
|
{% assign tag_name = tag | first %}
|
||||||
|
{% assign tag_size = tag | last | plus: 0 %}
|
||||||
|
{% if tag_size == size %}
|
||||||
|
{% unless trending_tags contains tag_name %}
|
||||||
|
{% assign trending_tags = trending_tags | push: tag_name %}
|
||||||
|
{% break %}
|
||||||
|
{% endunless %}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endcapture %}
|
{% endfor %}
|
||||||
|
|
||||||
{% assign trends = tags_array | split: " " | sort | reverse %}
|
{% if trending_tags.size > 0 %}
|
||||||
{% assign count = 0 %}
|
<section>
|
||||||
|
<h2 class="panel-heading">{{- site.data.locales[include.lang].panel.trending_tags -}}</h2>
|
||||||
{% for trend in trends %}
|
<div class="d-flex flex-wrap mt-3 mb-1 me-3">
|
||||||
{% assign count = count | plus: 1 %}
|
{% for tag_name in trending_tags %}
|
||||||
{% assign tag = trend | split: ":" | last %}
|
{% assign url = tag_name | slugify | url_encode | prepend: '/tags/' | append: '/' %}
|
||||||
<a class="post-tag" href="{{ site.baseurl }}/tags/{{ tag | downcase }}/">{{ tag | replace: '-', ' ' }}</a>
|
<a class="post-tag btn btn-outline-primary" href="{{ url | relative_url }}">{{ tag_name }}</a>
|
||||||
{% if count >= MAX %}
|
{% endfor %}
|
||||||
{% break %}
|
</div>
|
||||||
{% endif %}
|
</section>
|
||||||
{% endfor %}
|
{% endif %}
|
||||||
|
|||||||
40
_includes/update-list.html
Normal file
40
_includes/update-list.html
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<!-- Get 5 last posted/updated posts -->
|
||||||
|
|
||||||
|
{% assign MAX_SIZE = 5 %}
|
||||||
|
|
||||||
|
{% assign all_list = '' | split: '' %}
|
||||||
|
|
||||||
|
{% for post in site.posts %}
|
||||||
|
{% assign datetime = post.last_modified_at | default: post.date %}
|
||||||
|
|
||||||
|
{% capture elem %}
|
||||||
|
{{- datetime | date: "%Y%m%d%H%M%S" -}}::{{- forloop.index0 -}}
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
|
{% assign all_list = all_list | push: elem %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% assign all_list = all_list | sort | reverse %}
|
||||||
|
|
||||||
|
{% assign update_list = '' | split: '' %}
|
||||||
|
|
||||||
|
{% for entry in all_list limit: MAX_SIZE %}
|
||||||
|
{% assign update_list = update_list | push: entry %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% if update_list.size > 0 %}
|
||||||
|
<section id="access-lastmod">
|
||||||
|
<h2 class="panel-heading">{{- site.data.locales[include.lang].panel.lastmod -}}</h2>
|
||||||
|
<ul class="content list-unstyled ps-0 pb-1 ms-1 mt-2">
|
||||||
|
{% for item in update_list %}
|
||||||
|
{% assign index = item | split: '::' | last | plus: 0 %}
|
||||||
|
{% assign post = site.posts[index] %}
|
||||||
|
{% assign url = post.url | relative_url %}
|
||||||
|
<li class="text-truncate lh-lg">
|
||||||
|
<a href="{{ url }}">{{ post.title }}</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
<!-- #access-lastmod -->
|
||||||
|
{% endif %}
|
||||||
1
_javascript/_copyright
Normal file
1
_javascript/_copyright
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Chirpy v<%= pkg.version %> | © 2019 <%= pkg.author %> | <%= pkg.license %> Licensed | <%= pkg.homepage %>
|
||||||
7
_javascript/categories.js
Normal file
7
_javascript/categories.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import { basic, initSidebar, initTopbar } from './modules/layouts';
|
||||||
|
import { categoryCollapse } from './modules/plugins';
|
||||||
|
|
||||||
|
basic();
|
||||||
|
initSidebar();
|
||||||
|
initTopbar();
|
||||||
|
categoryCollapse();
|
||||||
5
_javascript/commons.js
Normal file
5
_javascript/commons.js
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
import { basic, initSidebar, initTopbar } from './modules/layouts';
|
||||||
|
|
||||||
|
basic();
|
||||||
|
initSidebar();
|
||||||
|
initTopbar();
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user