mirror of
https://github.com/cotes2020/jekyll-theme-chirpy.git
synced 2025-12-18 05:41:31 +00:00
Compare commits
448 Commits
v5.5.2
...
9706811c3a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9706811c3a | ||
|
|
a4812e4a1f | ||
|
|
65f960c31a | ||
|
|
d51345e297 | ||
|
|
2f844978aa | ||
|
|
42dea8ee29 | ||
|
|
81d3d055e4 | ||
|
|
86b13c917f | ||
|
|
4ef3cd8efc | ||
|
|
c7f967529c | ||
|
|
74ed06321c | ||
|
|
d4f7f39ece | ||
|
|
c1bd9eb9ee | ||
|
|
6f461132c0 | ||
|
|
03e302cbf6 | ||
|
|
8a064a5e5a | ||
|
|
740bd84c51 | ||
|
|
93f616b25d | ||
|
|
e6b87d2811 | ||
|
|
73749067c5 | ||
|
|
fd0df8320f | ||
|
|
fbcdf8ce85 | ||
|
|
fac6116af1 | ||
|
|
5a63244721 | ||
|
|
3ab3b844d2 | ||
|
|
367262e74d | ||
|
|
cbc93193e1 | ||
|
|
a784f0a0f9 | ||
|
|
a2bf5dc58e | ||
|
|
8b7dba71e3 | ||
|
|
fc3d101258 | ||
|
|
604e01eb36 | ||
|
|
31e19c6d0f | ||
|
|
5f4dab1745 | ||
|
|
8cfd721494 | ||
|
|
64c7262245 | ||
|
|
707a209424 | ||
|
|
80bd7928a0 | ||
|
|
befc4ce9c5 | ||
|
|
bf6c996c4e | ||
|
|
99eaf6089e | ||
|
|
efd2941ce0 | ||
|
|
7f83c3d00d | ||
|
|
d74bfaeda2 | ||
|
|
23729c9c8f | ||
|
|
e347d0632f | ||
|
|
35fdea0c4f | ||
|
|
5c5910f1fc | ||
|
|
b641b36480 | ||
|
|
979f86cf64 | ||
|
|
8c30f0a9c3 | ||
|
|
e4db1a176f | ||
|
|
e3a78b6243 | ||
|
|
8673e1335f | ||
|
|
a07a57ec92 | ||
|
|
db9e58bab2 | ||
|
|
e6532ad864 | ||
|
|
fbba0a4204 | ||
|
|
c876731901 | ||
|
|
9ca7519239 | ||
|
|
0709854dc8 | ||
|
|
f1d35832f4 | ||
|
|
cf853f14e4 | ||
|
|
7ca9c59784 | ||
|
|
250880c088 | ||
|
|
88b844ce80 | ||
|
|
3b46629dc0 | ||
|
|
1e3d4a6323 | ||
|
|
1c5fa0880d | ||
|
|
64ae7a3671 | ||
|
|
0102abae06 | ||
|
|
6cb1a5ac52 | ||
|
|
20987f2afe | ||
|
|
39e4338839 | ||
|
|
33a1fa7cae | ||
|
|
00a27a1b85 | ||
|
|
5cdde7dbc5 | ||
|
|
c4b58e3502 | ||
|
|
9630fd647f | ||
|
|
90a4cc76bb | ||
|
|
e33547fe5d | ||
|
|
09b300bc62 | ||
|
|
9ffd997c3b | ||
|
|
37827d81e5 | ||
|
|
febc01db52 | ||
|
|
b2245492e6 | ||
|
|
f87fdd0ea0 | ||
|
|
fdbd7f02e3 | ||
|
|
75891e714f | ||
|
|
363a3d936b | ||
|
|
ddb48eda52 | ||
|
|
c17fba44f5 | ||
|
|
12c340e98b | ||
|
|
dcb0add47b | ||
|
|
f1c6d2a817 | ||
|
|
05ebfb705e | ||
|
|
8608147fb5 | ||
|
|
76d58fe0ff | ||
|
|
b77767f76e | ||
|
|
e0950fc973 | ||
|
|
778ebdf250 | ||
|
|
796c386037 | ||
|
|
72d93b132f | ||
|
|
e09831ba3e | ||
|
|
05e3689d17 | ||
|
|
d4a6d640bd | ||
|
|
2cfa54847a | ||
|
|
cd37f63a01 | ||
|
|
015d5670a1 | ||
|
|
63c51384df | ||
|
|
662cd331e3 | ||
|
|
d013c11c8d | ||
|
|
fe7afa379f | ||
|
|
c85e9e2394 | ||
|
|
bf16d6039a | ||
|
|
8c1be9f2f3 | ||
|
|
7808ee157c | ||
|
|
1914c786a0 | ||
|
|
44f552cbce | ||
|
|
7d48d32c7b | ||
|
|
9f8aeaadbf | ||
|
|
61bdca2db4 | ||
|
|
23be4162b3 | ||
|
|
01076cb1c2 | ||
|
|
3cc1510071 | ||
|
|
950839175a | ||
|
|
13bf51e03d | ||
|
|
ce96d7e251 | ||
|
|
7a7818b579 | ||
|
|
cef8a97384 | ||
|
|
2d649aae0e | ||
|
|
b7aa05d03a | ||
|
|
c5d5e1f75a | ||
|
|
319a082940 | ||
|
|
6044df4ff1 | ||
|
|
e5594525e7 | ||
|
|
e15eaaffe0 | ||
|
|
74cf57aaac | ||
|
|
cfe44f204b | ||
|
|
700fd5bad7 | ||
|
|
8e5fbb7a74 | ||
|
|
834931486d | ||
|
|
f865336c89 | ||
|
|
0f8e782bfd | ||
|
|
0a6c1fb251 | ||
|
|
75a3d7399b | ||
|
|
547b95cc7a | ||
|
|
2a7b56bb36 | ||
|
|
25c4166722 | ||
|
|
25b2ffa9ba | ||
|
|
8a2afae6ca | ||
|
|
6112b15b8e | ||
|
|
e24a0c73ba | ||
|
|
0f5abc82a2 | ||
|
|
795ff3f4c3 | ||
|
|
c41672b2e0 | ||
|
|
9cc62e703f | ||
|
|
19d6bafbe1 | ||
|
|
4ddd5c4370 | ||
|
|
9592146ca3 | ||
|
|
8a1568c27a | ||
|
|
388c1511d6 | ||
|
|
8849afe5cf | ||
|
|
f8390d4384 | ||
|
|
e4363871b5 | ||
|
|
b641b3f1f2 | ||
|
|
5dbda0c09f | ||
|
|
89b962557a | ||
|
|
5de0153df4 | ||
|
|
ed4d304cd2 | ||
|
|
48564bda8d | ||
|
|
b9d053b3cd | ||
|
|
cd258c92c3 | ||
|
|
6230d1d750 | ||
|
|
365abc6b3b | ||
|
|
79c65b3e44 | ||
|
|
6b34901d94 | ||
|
|
90693ff95e | ||
|
|
1a01c35e52 | ||
|
|
c335bc6ce7 | ||
|
|
f3ea7e9887 | ||
|
|
c13ec31163 | ||
|
|
bbbb66b489 | ||
|
|
74f16623c9 | ||
|
|
1127c43823 | ||
|
|
ea3a22e13c | ||
|
|
c0018b66f3 | ||
|
|
02e296ed75 | ||
|
|
4facf5b390 | ||
|
|
c5d11441bc | ||
|
|
96bdd7c1dd | ||
|
|
ba764c1380 | ||
|
|
c7cfde0930 | ||
|
|
13177979bb | ||
|
|
6a17a7d46c | ||
|
|
8c30b41e20 | ||
|
|
b2d1cb68db | ||
|
|
3589a6ee53 | ||
|
|
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 | ||
|
|
2b59326fa8 |
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"rules": {
|
||||
"body-max-line-length": [
|
||||
0,
|
||||
"always"
|
||||
]
|
||||
}
|
||||
}
|
||||
29
.devcontainer/devcontainer.json
Normal file
29
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "Jekyll",
|
||||
"image": "mcr.microsoft.com/devcontainers/jekyll:2-bullseye",
|
||||
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
|
||||
"postCreateCommand": "bash .devcontainer/post-create.sh",
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"settings": {
|
||||
"terminal.integrated.defaultProfile.linux": "zsh"
|
||||
},
|
||||
"extensions": [
|
||||
// Liquid tags auto-complete
|
||||
"killalau.vscode-liquid-snippets",
|
||||
// Liquid syntax highlighting and formatting
|
||||
"Shopify.theme-check-vscode",
|
||||
// Shell
|
||||
"timonwong.shellcheck",
|
||||
"mkhl.shfmt",
|
||||
// Common formatter
|
||||
"EditorConfig.EditorConfig",
|
||||
"esbenp.prettier-vscode",
|
||||
"stylelint.vscode-stylelint",
|
||||
"yzhang.markdown-all-in-one",
|
||||
// Git
|
||||
"mhutchie.git-graph"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
18
.devcontainer/post-create.sh
Normal file
18
.devcontainer/post-create.sh
Normal file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ -f package.json ]; then
|
||||
bash -i -c "nvm install --lts && nvm install-latest-npm"
|
||||
npm i
|
||||
npm run build
|
||||
fi
|
||||
|
||||
# Install dependencies for shfmt extension
|
||||
curl -sS https://webi.sh/shfmt | sh &>/dev/null
|
||||
|
||||
# Add OMZ plugins
|
||||
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
|
||||
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
|
||||
sed -i -E "s/^(plugins=\()(git)(\))/\1\2 zsh-syntax-highlighting zsh-autosuggestions\3/" ~/.zshrc
|
||||
|
||||
# Avoid git log use less
|
||||
echo -e "\nunset LESS" >>~/.zshrc
|
||||
@@ -9,8 +9,11 @@ trim_trailing_whitespace = true
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
|
||||
[*.js]
|
||||
indent_size = 4
|
||||
[*.{js,css,scss}]
|
||||
quote_type = single
|
||||
|
||||
[*.{yml,yaml}]
|
||||
quote_type = double
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
66
.github/CONTRIBUTING.md
vendored
66
.github/CONTRIBUTING.md
vendored
@@ -1,66 +0,0 @@
|
||||
# How to Contribute
|
||||
|
||||
We'd like to thank you for sparing time to improve this project! Here are some guidelines for contributing:
|
||||
|
||||
To ensure that the blog design is not confused, this project does not accept suggestions for design changes, such as color scheme, fonts, typography, etc. If your request is about an enhancement, it is recommended to first submit a [_Feature Request_](https://github.com/cotes2020/jekyll-theme-chirpy/issues/new?labels=enhancement&template=feature_request.md) issue to discuss whether your idea fits the project.
|
||||
|
||||
## Basic Process
|
||||
|
||||
Generally, contribute to the project by:
|
||||
|
||||
1. Fork this project on GitHub and clone it locally.
|
||||
2. Create a new branch from the default branch and give it a descriptive name (format: `feature/<add-new-feat>` / `fix/<fix-a-bug>`).
|
||||
3. After completing the development, submit a new _Pull Request_. Note that the commit message must follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/), otherwise it will fail the PR check.
|
||||
|
||||
## Modifying JavaScript
|
||||
|
||||
If your contribution involves JavaScript modification, please read the following sections.
|
||||
|
||||
### Inline Scripts
|
||||
|
||||
If you need to add comments to the inline JavaScript (the code between the HTML tags `<script>` and `</script>`), please use `/* */` instead of two slashes `//`. Because the HTML will be compressed by [jekyll-compress-html](https://github.com/penibelst/jekyll-compress-html) during deployment, but it cannot handle the `//` properly, which will disrupt the structure of the compressed HTML.
|
||||
|
||||
### External Scripts
|
||||
|
||||
If you need to add/change/delete the JavaScript in the directory `_javascript/`, setting up [`Node.js`](https://nodejs.org/) and [`npx`](https://www.npmjs.com/package/npx) is a requirement. And then install the development dependencies:
|
||||
|
||||
```console
|
||||
$ npm i
|
||||
```
|
||||
|
||||
During JavaScript development, real-time debugging can be performed through the following commands:
|
||||
|
||||
Firstly, start a Jekyll server:
|
||||
|
||||
```console
|
||||
$ bash tools/run
|
||||
```
|
||||
|
||||
And then open a new terminal tab and run:
|
||||
|
||||
```console
|
||||
# Type 'Ctrl + C' to stop
|
||||
$ npx gulp dev
|
||||
```
|
||||
|
||||
After debugging, run the command `npx gulp` (without any argument) will automatically output the compressed files to the directory `assets/js/dist/`.
|
||||
|
||||
## Verify the commit messages
|
||||
|
||||
If you want to make sure your commits pass the CI check, you can refer to the following steps.
|
||||
|
||||
Install `commitlint` & `husky`:
|
||||
|
||||
```console
|
||||
$ npm i -g @commitlint/{cli,config-conventional} husky
|
||||
```
|
||||
|
||||
And then enable `husky`:
|
||||
|
||||
```console
|
||||
$ husky install
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
:tada: Your volunteering will make the open-source world more beautiful, thanks again! :tada:
|
||||
17
.github/DISCUSSION_TEMPLATE/general.yml
vendored
Normal file
17
.github/DISCUSSION_TEMPLATE/general.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
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: Description
|
||||
description: Please describe in detail what you want to share.
|
||||
validations:
|
||||
required: true
|
||||
7
.github/DISCUSSION_TEMPLATE/ideas.yml
vendored
Normal file
7
.github/DISCUSSION_TEMPLATE/ideas.yml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
body:
|
||||
- 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!
|
||||
65
.github/ISSUE_TEMPLATE/bug_report.md
vendored
65
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,65 +0,0 @@
|
||||
---
|
||||
name: Bug Report
|
||||
about: Create a report to help us improve
|
||||
---
|
||||
|
||||
<!-- NOTE: Please maintain all sections, otherwise the issue will be automatically closed :) -->
|
||||
|
||||
## Checklist
|
||||
|
||||
<!-- Please complete the following list of tasks, and then check it by changing the "[ ]" to "[x]" -->
|
||||
|
||||
- [ ] I have read the [tutorials](https://cotes2020.github.io/chirpy-demo/categories/tutorial/) and know the correct effect of the functional design.
|
||||
- [ ] There are no similar reports on [existing issues](https://github.com/cotes2020/jekyll-theme-chirpy/issues?q=is%3Aissue) (including closed ones).
|
||||
- [ ] I found the bug on the latest code of the `master` branch.
|
||||
|
||||
## Describe the bug
|
||||
|
||||
<!-- A clear and concise description of what the bug is. -->
|
||||
|
||||
### To Reproduce
|
||||
|
||||
Steps to reproduce the behavior:
|
||||
<!--
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
-->
|
||||
|
||||
### Expected behavior
|
||||
|
||||
<!-- A clear and concise description of what you expected to happen. -->
|
||||
|
||||
### Screenshots
|
||||
|
||||
<!-- If applicable, add screenshots to help explain your problem. -->
|
||||
|
||||
### Environment
|
||||
|
||||
| Command | Version |
|
||||
|-----------------------------------|---------|
|
||||
| `ruby -v` | |
|
||||
| `gem -v` | |
|
||||
| `bundle -v` | |
|
||||
| `bundle exec jekyll -v` | |
|
||||
| `bundle info jekyll-theme-chirpy` | |
|
||||
|
||||
### Desktop
|
||||
|
||||
<!-- If necessary, uncomment and fill in the following list:
|
||||
- OS: [e.g. macOS 10.15.6]
|
||||
- Browser: [e.g. Chrome 85.0.4183.83 (64-bit)]
|
||||
-->
|
||||
|
||||
### Smartphone
|
||||
|
||||
<!-- If necessary, uncomment and fill in the following list:
|
||||
- Device: [e.g. iPhone 6]
|
||||
- OS: [e.g. iOS 13.6.1]
|
||||
- Browser: [e.g. Chrome 22]
|
||||
-->
|
||||
|
||||
### Additional context
|
||||
|
||||
<!-- Add any other context about the problem here. -->
|
||||
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.
|
||||
35
.github/ISSUE_TEMPLATE/feature_request.md
vendored
35
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,35 +0,0 @@
|
||||
---
|
||||
name: Feature Request
|
||||
about: Suggest an idea for this project
|
||||
labels: enhancement
|
||||
---
|
||||
|
||||
<!-- NOTE: Please maintain all sections, otherwise the issue will be automatically closed :) -->
|
||||
|
||||
## Checklist
|
||||
|
||||
<!-- Please complete the following list of tasks, and then check it by changing the "[ ]" to "[x]" -->
|
||||
- [ ] I have read the [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/.github/CONTRIBUTING.md).
|
||||
- [ ] There is no similar request on [existing issues](https://github.com/cotes2020/jekyll-theme-chirpy/issues?q=is%3Aissue) (including closed ones).
|
||||
- [ ] I have read the [project progress](https://github.com/cotes2020/jekyll-theme-chirpy/projects) and know the current progress of the project.
|
||||
- [ ] I was in the `master` branch of the latest code.
|
||||
|
||||
|
||||
## Is your feature request related to a problem? Please describe
|
||||
|
||||
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
|
||||
|
||||
|
||||
## Describe the solution you'd like
|
||||
|
||||
<!-- A clear and concise description of what you want to happen. -->
|
||||
|
||||
|
||||
## Describe alternatives you've considered
|
||||
|
||||
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
|
||||
|
||||
|
||||
## Additional context
|
||||
|
||||
<!-- Add any other context or screenshots about the feature request 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.
|
||||
20
.github/ISSUE_TEMPLATE/question.md
vendored
20
.github/ISSUE_TEMPLATE/question.md
vendored
@@ -1,20 +0,0 @@
|
||||
---
|
||||
name: Question
|
||||
about: Ask whatever you want
|
||||
labels: question
|
||||
---
|
||||
|
||||
<!-- NOTE: Please maintain all sections, otherwise the issue will be automatically closed :) -->
|
||||
|
||||
## Checklist
|
||||
|
||||
<!-- Please complete the following list of tasks, and then check it by changing the "[ ]" to "[x]" -->
|
||||
|
||||
- [ ] I have read the [newlest tutorials](https://cotes2020.github.io/chirpy-demo/categories/tutorial/) and know the correct effect of the functional design.
|
||||
- [ ] There is no similar question on [existing issues](https://github.com/cotes2020/jekyll-theme-chirpy/issues?q=is%3Aissue) (including closed ones).
|
||||
- [ ] I have tried to find the answer on [Jekyll Forum](https://talk.jekyllrb.com/) and [StackOverflow](https://stackoverflow.com/questions/tagged/jekyll).
|
||||
- [ ] My question is based on the latest code of the `master` branch.
|
||||
|
||||
## Description
|
||||
|
||||
<!-- Please describe your question in detail. -->
|
||||
41
.github/PULL_REQUEST_TEMPLATE.md
vendored
41
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,42 +1,17 @@
|
||||
## 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.
|
||||
|
||||
e.g. Fixes #(issue)
|
||||
-->
|
||||
|
||||
## Type of change
|
||||
|
||||
<!--
|
||||
Please select the desired item checkbox and change it to "[x]", then delete options that are not relevant.
|
||||
-->
|
||||
<!-- 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
|
||||
|
||||
## How has this been tested
|
||||
|
||||
## Description
|
||||
<!--
|
||||
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
|
||||
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.
|
||||
-->
|
||||
|
||||
- [ ] I have run `bash ./tools/test` (at the root of the project) locally and passed
|
||||
- [ ] I have tested this feature in the browser
|
||||
|
||||
### Test Configuration
|
||||
|
||||
- Browser type & version:
|
||||
- Operating system:
|
||||
- Ruby version: <!-- by running: `ruby -v` -->
|
||||
- Bundler version: <!-- by running: `bundle -v`-->
|
||||
- Jekyll version: <!-- by running: `bundle list | grep " jekyll "` -->
|
||||
|
||||
### Checklist
|
||||
|
||||
<!-- Select checkboxes by change the "[ ]" to "[x]" -->
|
||||
- [ ] I have performed a self-review of my code
|
||||
- [ ] I have commented on my code, particularly in hard-to-understand areas
|
||||
- [ ] I have made corresponding changes to the documentation
|
||||
- [ ] My changes generate no new warnings
|
||||
## Additional context
|
||||
<!-- e.g. Fixes #(issue) -->
|
||||
|
||||
2
.github/codeql/codeql-config.yml
vendored
Normal file
2
.github/codeql/codeql-config.yml
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
paths-ignore:
|
||||
- "assets/js"
|
||||
28
.github/dependabot.yml
vendored
Normal file
28
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "bundler"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/"
|
||||
versioning-strategy: increase
|
||||
groups:
|
||||
prod-deps:
|
||||
dependency-type: production
|
||||
dev-deps:
|
||||
dependency-type: development
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
groups:
|
||||
gh-actions:
|
||||
update-types:
|
||||
- "major"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
- package-ecosystem: "devcontainers"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
17
.github/stale.yml
vendored
17
.github/stale.yml
vendored
@@ -1,17 +0,0 @@
|
||||
# Clean up the stale issues
|
||||
|
||||
daysUntilStale: 30
|
||||
daysUntilClose: 1
|
||||
|
||||
exemptLabels:
|
||||
- in progress
|
||||
- pending
|
||||
|
||||
staleLabel: stale
|
||||
|
||||
markComment: >
|
||||
This issue has been automatically marked as stale because it has not had
|
||||
recent activity. It will be closed if no further activity occurs. Thank you
|
||||
for your contributions.
|
||||
|
||||
closeComment: false
|
||||
39
.github/workflows/cd.yml
vendored
39
.github/workflows/cd.yml
vendored
@@ -1,14 +1,39 @@
|
||||
name: CD
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [production, docs]
|
||||
branches: [production]
|
||||
tags-ignore: ["**"]
|
||||
|
||||
jobs:
|
||||
launch:
|
||||
release:
|
||||
if: ${{ ! startsWith(github.event.head_commit.message, 'chore(release)') }}
|
||||
permissions:
|
||||
contents: write
|
||||
issues: write
|
||||
pull-requests: write
|
||||
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 }}"}}'
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 3.3
|
||||
bundler-cache: true
|
||||
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: lts/*
|
||||
|
||||
- run: npm install
|
||||
- run: npx semantic-release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GEM_HOST_API_KEY: ${{ secrets.GEM_HOST_API_KEY }}
|
||||
|
||||
publish:
|
||||
needs: release
|
||||
uses: ./.github/workflows/publish.yml
|
||||
secrets:
|
||||
GH_PAT: ${{ secrets.GH_PAT }}
|
||||
BUILDER: ${{ secrets.BUILDER }}
|
||||
|
||||
45
.github/workflows/ci.yml
vendored
45
.github/workflows/ci.yml
vendored
@@ -1,18 +1,25 @@
|
||||
name: 'CI'
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'production'
|
||||
- 'docs'
|
||||
branches:
|
||||
- master
|
||||
- "hotfix/*"
|
||||
paths-ignore:
|
||||
- '.github/**'
|
||||
- '!.github/workflows/ci.yml'
|
||||
- '.gitignore'
|
||||
- 'README.md'
|
||||
- 'LICENSE'
|
||||
- ".github/**"
|
||||
- "!.github/workflows/ci.yml"
|
||||
- .gitignore
|
||||
- "docs/**"
|
||||
- README.md
|
||||
- LICENSE
|
||||
pull_request:
|
||||
paths:
|
||||
- '**'
|
||||
paths-ignore:
|
||||
- ".github/**"
|
||||
- "!.github/workflows/ci.yml"
|
||||
- .gitignore
|
||||
- "docs/**"
|
||||
- README.md
|
||||
- LICENSE
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -20,13 +27,13 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
ruby: [2.7, 3]
|
||||
ruby: ["3.1", "3.2", "3.3"]
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # for posts's lastmod
|
||||
fetch-depth: 0 # for posts's lastmod
|
||||
|
||||
- name: Setup Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
@@ -34,5 +41,13 @@ jobs:
|
||||
ruby-version: ${{ matrix.ruby }}
|
||||
bundler-cache: true
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: lts/*
|
||||
|
||||
- name: Build Assets
|
||||
run: npm i && npm run build
|
||||
|
||||
- name: Test Site
|
||||
run: bash tools/test
|
||||
run: bash tools/test.sh
|
||||
|
||||
44
.github/workflows/codeql.yml
vendored
Normal file
44
.github/workflows/codeql.yml
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: ["master"]
|
||||
paths: ["_javascript/**/*.js"]
|
||||
pull_request:
|
||||
paths: ["_javascript/**/*.js"]
|
||||
|
||||
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 }}"
|
||||
config-file: .github/codeql/codeql-config.yml
|
||||
|
||||
# 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 }}"
|
||||
14
.github/workflows/commitlint.yml
vendored
14
.github/workflows/commitlint.yml
vendored
@@ -1,11 +1,15 @@
|
||||
name: Lint Commit Messages
|
||||
on: pull_request
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- "hotfix/*"
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
commitlint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: wagoid/commitlint-github-action@v4
|
||||
- uses: actions/checkout@v4
|
||||
- uses: wagoid/commitlint-github-action@v6
|
||||
|
||||
18
.github/workflows/issue-interceptor.yml
vendored
18
.github/workflows/issue-interceptor.yml
vendored
@@ -1,18 +0,0 @@
|
||||
name: Intercept bad issues
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [opened, edited]
|
||||
|
||||
jobs:
|
||||
auto_close_issues:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v1
|
||||
- name: Auto close issues that did not follow template
|
||||
uses: lucasbento/auto-close-issues@v1.0.2
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-close-message: ":wave: Hi @${issue.user.login},\n\nThis issue is being automatically closed because it does not follow the issue template. Please DO NOT open another similar issue, try to edit the current issue according to the template, then it will be reopened automatically."
|
||||
closed-issues-label: "🙁 Not following issue template"
|
||||
25
.github/workflows/pr-filter.yml
vendored
Normal file
25
.github/workflows/pr-filter.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
name: PR Filter
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, reopened]
|
||||
|
||||
jobs:
|
||||
check-template:
|
||||
if: github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Check PR Content
|
||||
id: intercept
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
script: |
|
||||
const script = require('.github/workflows/scripts/pr-filter.js');
|
||||
await script({ github, context, core });
|
||||
23
.github/workflows/publish.yml
vendored
Normal file
23
.github/workflows/publish.yml
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
name: Publish
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- docs
|
||||
workflow_call:
|
||||
secrets:
|
||||
GH_PAT:
|
||||
required: true
|
||||
BUILDER:
|
||||
required: true
|
||||
workflow_dispatch:
|
||||
|
||||
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 }}"}}'
|
||||
36
.github/workflows/scripts/pr-filter.js
vendored
Normal file
36
.github/workflows/scripts/pr-filter.js
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
function hasTypes(markdown) {
|
||||
return /## Type of change/.test(markdown) && /-\s\[x\]/i.test(markdown);
|
||||
}
|
||||
|
||||
function hasDescription(markdown) {
|
||||
return (
|
||||
/## Description/.test(markdown) &&
|
||||
!/## Description\s*\n\s*(##|\s*$)/.test(markdown)
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = async ({ github, context, core }) => {
|
||||
const pr = context.payload.pull_request;
|
||||
const body = pr.body === null ? '' : pr.body;
|
||||
const markdown = body.replace(/<!--[\s\S]*?-->/g, '');
|
||||
const action = context.payload.action;
|
||||
|
||||
const isValid =
|
||||
markdown !== '' && hasTypes(markdown) && hasDescription(markdown);
|
||||
|
||||
if (!isValid) {
|
||||
await github.rest.pulls.update({
|
||||
...context.repo,
|
||||
pull_number: pr.number,
|
||||
state: 'closed'
|
||||
});
|
||||
|
||||
await github.rest.issues.createComment({
|
||||
...context.repo,
|
||||
issue_number: pr.number,
|
||||
body: `Oops, it seems you've ${action} an invalid pull request. No worries, we'll close it for you.`
|
||||
});
|
||||
|
||||
core.setFailed('PR content does not meet template requirements.');
|
||||
}
|
||||
};
|
||||
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: inactive
|
||||
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:
|
||||
# 60 days before marking issues/PRs stale
|
||||
days-before-close: -1 # does not close automatically
|
||||
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 }}
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
# submodules: true
|
||||
@@ -37,12 +37,12 @@ jobs:
|
||||
|
||||
- name: Setup Pages
|
||||
id: pages
|
||||
uses: actions/configure-pages@v1
|
||||
uses: actions/configure-pages@v4
|
||||
|
||||
- name: Setup Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 3 # reads from a '.ruby-version' or '.tools-version' file if 'ruby-version' is omitted
|
||||
ruby-version: 3.3
|
||||
bundler-cache: true
|
||||
|
||||
- name: Build site
|
||||
@@ -52,10 +52,12 @@ jobs:
|
||||
|
||||
- name: Test site
|
||||
run: |
|
||||
bundle exec htmlproofer _site --disable-external --check-html --allow_hash_href
|
||||
bundle exec htmlproofer _site \
|
||||
\-\-disable-external \
|
||||
\-\-ignore-urls "/^http:\/\/127.0.0.1/,/^http:\/\/0.0.0.0/,/^http:\/\/localhost/"
|
||||
|
||||
- name: Upload site artifact
|
||||
uses: actions/upload-pages-artifact@v1
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
path: "_site${{ steps.pages.outputs.base_path }}"
|
||||
|
||||
@@ -68,4 +70,4 @@ jobs:
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v1
|
||||
uses: actions/deploy-pages@v4
|
||||
20
.github/workflows/style-lint.yml
vendored
20
.github/workflows/style-lint.yml
vendored
@@ -1,15 +1,13 @@
|
||||
name: 'Style Lint'
|
||||
name: Style Lint
|
||||
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'production'
|
||||
- 'docs'
|
||||
paths:
|
||||
- '_sass/**/*.scss'
|
||||
branches:
|
||||
- master
|
||||
- "hotfix/*"
|
||||
paths: ["_sass/**/*.scss"]
|
||||
pull_request:
|
||||
paths:
|
||||
- '_sass/**/*.scss'
|
||||
paths: ["_sass/**/*.scss"]
|
||||
|
||||
jobs:
|
||||
stylelint:
|
||||
@@ -17,9 +15,11 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: lts/*
|
||||
- run: npm i
|
||||
- run: npm test
|
||||
|
||||
34
.gitignore
vendored
34
.gitignore
vendored
@@ -1,21 +1,27 @@
|
||||
# hidden files
|
||||
.*
|
||||
!.git*
|
||||
!.editorconfig
|
||||
!.nojekyll
|
||||
!.husky
|
||||
!.commitlintrc.json
|
||||
!.versionrc.json
|
||||
!.stylelintrc.json
|
||||
|
||||
# bundler cache
|
||||
_site
|
||||
# Bundler cache
|
||||
.bundle
|
||||
vendor
|
||||
Gemfile.lock
|
||||
|
||||
# rubygem
|
||||
# Jekyll cache
|
||||
.jekyll-cache
|
||||
.jekyll-metadata
|
||||
_site
|
||||
|
||||
# RubyGems
|
||||
*.gem
|
||||
|
||||
# npm dependencies
|
||||
# NPM dependencies
|
||||
node_modules
|
||||
package-lock.json
|
||||
|
||||
# IDE configurations
|
||||
.idea
|
||||
.vscode/*
|
||||
!.vscode/settings.json
|
||||
!.vscode/extensions.json
|
||||
!.vscode/tasks.json
|
||||
|
||||
# Misc
|
||||
_sass/dist
|
||||
assets/js/dist
|
||||
|
||||
5
.husky/commit-msg
Executable file → Normal file
5
.husky/commit-msg
Executable file → Normal file
@@ -1,4 +1 @@
|
||||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
|
||||
npx --no -- commitlint -x $(npm root -g)/@commitlint/config-conventional --edit
|
||||
npx --no -- commitlint --edit $1
|
||||
|
||||
8
.markdownlint.json
Normal file
8
.markdownlint.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"commands-show-output": false,
|
||||
"blanks-around-fences": false,
|
||||
"line-length": false,
|
||||
"no-inline-html": {
|
||||
"allowed_elements": ["kbd", "sub"]
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"extends": "stylelint-config-standard-scss",
|
||||
"rules": {
|
||||
"no-descending-specificity": null,
|
||||
"shorthand-property-no-redundant-values": null,
|
||||
"at-rule-no-vendor-prefix": null,
|
||||
"property-no-vendor-prefix": null,
|
||||
"selector-no-vendor-prefix": null,
|
||||
"value-no-vendor-prefix": null,
|
||||
"color-function-notation": "legacy",
|
||||
"alpha-value-notation": "number",
|
||||
"selector-not-notation": "simple",
|
||||
"color-hex-length": "long",
|
||||
"declaration-block-single-line-max-declarations": 3
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
"skip": {
|
||||
"commit": true,
|
||||
"tag": true
|
||||
},
|
||||
"types": [
|
||||
{
|
||||
"type": "feat",
|
||||
"section": "Features"
|
||||
},
|
||||
{
|
||||
"type": "fix",
|
||||
"section": "Bug Fixes"
|
||||
},
|
||||
{
|
||||
"type": "perf",
|
||||
"section": "Improvements"
|
||||
}
|
||||
]
|
||||
}
|
||||
3
.vscode/extensions.json
vendored
Normal file
3
.vscode/extensions.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"recommendations": ["ms-vscode-remote.remote-containers"]
|
||||
}
|
||||
30
.vscode/settings.json
vendored
Normal file
30
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
// Prettier
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
"editor.formatOnSave": true,
|
||||
// Shopify Liquid
|
||||
"files.associations": {
|
||||
"*.html": "liquid"
|
||||
},
|
||||
"[markdown]": {
|
||||
"editor.defaultFormatter": "yzhang.markdown-all-in-one"
|
||||
},
|
||||
// Formatter
|
||||
"[html][liquid]": {
|
||||
"editor.defaultFormatter": "Shopify.theme-check-vscode"
|
||||
},
|
||||
"[shellscript]": {
|
||||
"editor.defaultFormatter": "mkhl.shfmt"
|
||||
},
|
||||
// Disable vscode built-in stylelint
|
||||
"css.validate": false,
|
||||
"scss.validate": false,
|
||||
"less.validate": false,
|
||||
// Stylint extension settings
|
||||
"stylelint.snippet": ["css", "scss"],
|
||||
"stylelint.validate": ["css", "scss"],
|
||||
// Run tasks in macOS
|
||||
"terminal.integrated.profiles.osx": {
|
||||
"zsh": { "path": "/bin/zsh", "args": ["-l", "-i"] }
|
||||
}
|
||||
}
|
||||
64
.vscode/tasks.json
vendored
Normal file
64
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Run Jekyll Server",
|
||||
"type": "shell",
|
||||
"command": "./tools/run.sh",
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"problemMatcher": [],
|
||||
"detail": "Runs the Jekyll server with live reload."
|
||||
},
|
||||
{
|
||||
"label": "Build Jekyll Site",
|
||||
"type": "shell",
|
||||
"command": "./tools/test.sh",
|
||||
"group": {
|
||||
"kind": "build"
|
||||
},
|
||||
"problemMatcher": [],
|
||||
"detail": "Build the Jekyll site for production."
|
||||
},
|
||||
{
|
||||
"label": "Build JS (watch)",
|
||||
"type": "shell",
|
||||
"command": "npm run watch:js",
|
||||
"group": {
|
||||
"kind": "build"
|
||||
},
|
||||
"problemMatcher": [],
|
||||
"detail": "Build JS files in watch mode."
|
||||
},
|
||||
{
|
||||
"label": "Build CSS",
|
||||
"type": "shell",
|
||||
"command": "npm run build:css",
|
||||
"group": {
|
||||
"kind": "build"
|
||||
},
|
||||
"problemMatcher": [],
|
||||
"detail": "Build CSS files."
|
||||
},
|
||||
{
|
||||
"label": "Build JS & CSS",
|
||||
"type": "shell",
|
||||
"command": "npm run build",
|
||||
"group": {
|
||||
"kind": "build"
|
||||
},
|
||||
"problemMatcher": [],
|
||||
"detail": "Build JS & CSS for production."
|
||||
},
|
||||
{
|
||||
"label": "Run Jekyll Server + Build JS (watch)",
|
||||
"dependsOn": ["Run Jekyll Server", "Build JS (watch)"],
|
||||
"group": {
|
||||
"kind": "build"
|
||||
},
|
||||
"detail": "Runs both the Jekyll server with live reload and build JS files in watch mode."
|
||||
}
|
||||
]
|
||||
}
|
||||
164
CHANGELOG.md
164
CHANGELOG.md
@@ -1,164 +0,0 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||
|
||||
## [5.5.2](https://github.com/cotes2020/jekyll-theme-chirpy/compare/v5.5.1...v5.5.2) (2023-01-30)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* position of prompt icon is incorrect in paragraph on mobile ([5df953f](https://github.com/cotes2020/jekyll-theme-chirpy/commit/5df953f6c877e2aa3f1f4981c97a0b8007abe6d4))
|
||||
|
||||
## [5.5.1](https://github.com/cotes2020/jekyll-theme-chirpy/compare/v5.5.0...v5.5.1) (2023-01-29)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* the icon position of the prompts in the list is incorrect ([0c9558d](https://github.com/cotes2020/jekyll-theme-chirpy/commit/0c9558de8a01e9ab795778f351a8bbf4d6b21763))
|
||||
|
||||
## [5.5.0](https://github.com/cotes2020/jekyll-theme-chirpy/compare/v5.4.0...v5.5.0) (2023-01-29)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **i18n:** add Arabic translation ([#857](https://github.com/cotes2020/jekyll-theme-chirpy/issues/857)) ([765af53](https://github.com/cotes2020/jekyll-theme-chirpy/commit/765af53b77e5c63804784d5728f5970ae274c2c7))
|
||||
* **i18n:** add Czech language ([#833](https://github.com/cotes2020/jekyll-theme-chirpy/issues/833)) ([98d48f5](https://github.com/cotes2020/jekyll-theme-chirpy/commit/98d48f5da412276d4a0c99cd01a87b19349bc6bc))
|
||||
* **i18n:** add Finnish translations ([#843](https://github.com/cotes2020/jekyll-theme-chirpy/issues/843)) ([d6d0318](https://github.com/cotes2020/jekyll-theme-chirpy/commit/d6d03183eaf94b44e037cc48b6e1c47cee183f6e))
|
||||
* **i18n:** add Italian translation ([#850](https://github.com/cotes2020/jekyll-theme-chirpy/issues/850)) ([9a011e1](https://github.com/cotes2020/jekyll-theme-chirpy/commit/9a011e14d66195d8b2fb9ec62f3e60a3e56cd032))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* copy command line incomplete(`.gp` part) ([41ed331](https://github.com/cotes2020/jekyll-theme-chirpy/commit/41ed33145639415148aec8e85edc7a6fd0de0ca3))
|
||||
* correct encoding of spaces in share URLs ([#835](https://github.com/cotes2020/jekyll-theme-chirpy/issues/835)) ([f2d2858](https://github.com/cotes2020/jekyll-theme-chirpy/commit/f2d285844e6e2979f2b0eec1d20073d3c05b6c0c))
|
||||
* post's image would cover the PWA update alert ([bd374dd](https://github.com/cotes2020/jekyll-theme-chirpy/commit/bd374dd383c50f89c8f018ecb4e25772eeb8f6d8))
|
||||
* prompt with nested blockquotes renders incorrectly ([#846](https://github.com/cotes2020/jekyll-theme-chirpy/issues/846)) ([babb4a0](https://github.com/cotes2020/jekyll-theme-chirpy/commit/babb4a0c5a58ceb2e4093bc465670accdd526c18))
|
||||
|
||||
## [5.4.0](https://github.com/cotes2020/jekyll-theme-chirpy/compare/v5.3.2...v5.4.0) (2022-12-27)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add `rel="me"` to Mastodon sidebar contact links for verification ([#807](https://github.com/cotes2020/jekyll-theme-chirpy/issues/807)) ([d2190c7](https://github.com/cotes2020/jekyll-theme-chirpy/commit/d2190c726f61c8c9732b88b4aecf699dc8bc7deb))
|
||||
* add embed video support ([ed6dc53](https://github.com/cotes2020/jekyll-theme-chirpy/commit/ed6dc539eff7003a3765bcd8c31ae5e91a863d65))
|
||||
* add shimmer background when image loads ([ab16fdc](https://github.com/cotes2020/jekyll-theme-chirpy/commit/ab16fdc7fc26811130b98a1773beb62bff6182e8))
|
||||
* set preview image ratio to 1.91 : 1 ([4b6ccbc](https://github.com/cotes2020/jekyll-theme-chirpy/commit/4b6ccbcbccce27b9fcb035812efefe4eb69301cf))
|
||||
* support dark and light mode images ([#481](https://github.com/cotes2020/jekyll-theme-chirpy/issues/481)) ([9306c7b](https://github.com/cotes2020/jekyll-theme-chirpy/commit/9306c7b39ecf9d9146bc1a25eebedc38eb2c3dd6))
|
||||
* support LQIP for images ([bffaf63](https://github.com/cotes2020/jekyll-theme-chirpy/commit/bffaf6374f265cec96ef743d42b46fbec3b59797))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* `hreflang` tag attribute of feed misses `site.alt_lang` ([7651d28](https://github.com/cotes2020/jekyll-theme-chirpy/commit/7651d2851b4bb7d8f0d068b62c036c89a1089bbc))
|
||||
* `og:image` will be incorrect if the image uses a cross-domain URL ([8de1abd](https://github.com/cotes2020/jekyll-theme-chirpy/commit/8de1abda6be3633982392178731431b0ddb1b52b))
|
||||
* refactoring error when the image URL contains parameters ([ec98f07](https://github.com/cotes2020/jekyll-theme-chirpy/commit/ec98f07aca0b80a9c07fbcdc8e0d7d66dba98ed2))
|
||||
* spaces in post title are encoded when sharing ([7efd2f8](https://github.com/cotes2020/jekyll-theme-chirpy/commit/7efd2f8aa2ea1c3aeb7d740bf9a018881c26fe65))
|
||||
|
||||
|
||||
### Improvements
|
||||
|
||||
* **cdn:** optimize cache policy for static assets ([7fb0ee0](https://github.com/cotes2020/jekyll-theme-chirpy/commit/7fb0ee0bedb63eee3f90a49c6d7fb8b5d78c9830))
|
||||
|
||||
## [5.3.2](https://github.com/cotes2020/jekyll-theme-chirpy/compare/v5.3.1...v5.3.2) (2022-11-22)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* `mermaid` occasionally fails to initialize ([#536](https://github.com/cotes2020/jekyll-theme-chirpy/issues/536)) ([48f14e3](https://github.com/cotes2020/jekyll-theme-chirpy/commit/48f14e39ac81bbfb3b9913ea3ee789d775b2d1ae))
|
||||
* **comment:** disqus doesn't follow theme mode switching ([b0d5956](https://github.com/cotes2020/jekyll-theme-chirpy/commit/b0d5956f5a0ed894984d6b1754efeba04d8bc966))
|
||||
* restore full-text search ([#741](https://github.com/cotes2020/jekyll-theme-chirpy/issues/741)) ([6774e0e](https://github.com/cotes2020/jekyll-theme-chirpy/commit/6774e0e1fb37cf467b14be481347412713763f05))
|
||||
* the image URL in the SEO-related tags is incomplete ([#754](https://github.com/cotes2020/jekyll-theme-chirpy/issues/754)) ([f6e9a3f](https://github.com/cotes2020/jekyll-theme-chirpy/commit/f6e9a3fccf7ab34db71f8aefaf86fdcc05861076))
|
||||
|
||||
## [5.3.1](https://github.com/cotes2020/jekyll-theme-chirpy/compare/v5.3.0...v5.3.1) (2022-10-25)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 404 page missing title in tablet/desktop view ([5511b28](https://github.com/cotes2020/jekyll-theme-chirpy/commit/5511b2883fd5a395fddfb642588d00c122f18da7))
|
||||
* prompt content overflows horizontally ([#705](https://github.com/cotes2020/jekyll-theme-chirpy/issues/705)) ([fb13e32](https://github.com/cotes2020/jekyll-theme-chirpy/commit/fb13e3219b5eca0d2e4f86a1ecabfab75240369f))
|
||||
* **tools:** multiple configuration files will fail the test ([80cb0b3](https://github.com/cotes2020/jekyll-theme-chirpy/commit/80cb0b371754e96772a7907877a8ce196398ba3d))
|
||||
|
||||
|
||||
### Improvements
|
||||
|
||||
* **layout:** improve the min-height of main content ([#674](https://github.com/cotes2020/jekyll-theme-chirpy/issues/674)) ([49bb93c](https://github.com/cotes2020/jekyll-theme-chirpy/commit/49bb93cc0c89ad9cfaad5edcf9cb28c3d5134575))
|
||||
* modify checkbox icon with `Liquid` ([1fd665b](https://github.com/cotes2020/jekyll-theme-chirpy/commit/1fd665bf4990c26ae23635c511c5abc9640184d1))
|
||||
* optimize the extra padding in lists ([#703](https://github.com/cotes2020/jekyll-theme-chirpy/issues/703)) ([39da11e](https://github.com/cotes2020/jekyll-theme-chirpy/commit/39da11e3f3685f49321757576d2b87a48bf25db5)), closes [#702](https://github.com/cotes2020/jekyll-theme-chirpy/issues/702)
|
||||
* **posts:** improve core block bottom padding ([d2fb98b](https://github.com/cotes2020/jekyll-theme-chirpy/commit/d2fb98b3e57f2f6c3fc3816551cd0721731adf40))
|
||||
* truncate post content for search results ([647eea8](https://github.com/cotes2020/jekyll-theme-chirpy/commit/647eea8dbd716f9d3cb8330c3139fa753903f51d))
|
||||
* **typography:** optimize the line height of post content ([eac3f9b](https://github.com/cotes2020/jekyll-theme-chirpy/commit/eac3f9b434ca77e3dc64eea9cedea7b93e7b306b))
|
||||
|
||||
### Others
|
||||
|
||||
* **giscus:** add `reactions-enabled` option ([#712](https://github.com/cotes2020/jekyll-theme-chirpy/issues/712)) ([70662a0](https://github.com/cotes2020/jekyll-theme-chirpy/commit/70662a0365e6b9378602dc0a57462ddad5aebcf5))
|
||||
* **locale:** restore options for changing date format ([#716](https://github.com/cotes2020/jekyll-theme-chirpy/issues/716)) ([f904e8c](https://github.com/cotes2020/jekyll-theme-chirpy/commit/f904e8cd48c343cc31e25859d9d50bfe2c056f41))
|
||||
* remove site config option `prefer_datetime_locale` ([6852ceb](https://github.com/cotes2020/jekyll-theme-chirpy/commit/6852ceb280927ff4e753a3e1131f2b396d9807d0))
|
||||
|
||||
## [5.3.0](https://github.com/cotes2020/jekyll-theme-chirpy/compare/v5.2.1...v5.3.0) (2022-09-23)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add multiple authors to a post ([#677](https://github.com/cotes2020/jekyll-theme-chirpy/issues/677)) ([f1d9e99](https://github.com/cotes2020/jekyll-theme-chirpy/commit/f1d9e99bc02d3cd0a6b0cd1beac545f0cc7a24f8)), closes [#675](https://github.com/cotes2020/jekyll-theme-chirpy/issues/675)
|
||||
* **i18n:** add Bulgarian support ([#612](https://github.com/cotes2020/jekyll-theme-chirpy/issues/612)) ([2fed338](https://github.com/cotes2020/jekyll-theme-chirpy/commit/2fed338ce6d078bf528c9717201fbc475f88cd22))
|
||||
* **i18n:** add German locale file ([#663](https://github.com/cotes2020/jekyll-theme-chirpy/issues/663)) ([940b281](https://github.com/cotes2020/jekyll-theme-chirpy/commit/940b2810e95065e30600ae8d5e4612e7183da60e))
|
||||
* **i18n:** add Hungarian locale file ([#597](https://github.com/cotes2020/jekyll-theme-chirpy/issues/597), [#598](https://github.com/cotes2020/jekyll-theme-chirpy/issues/598)) ([b032977](https://github.com/cotes2020/jekyll-theme-chirpy/commit/b0329775fc24d0323e5cc04cda46ece8b4531802))
|
||||
* **i18n:** add Turkish language ([#631](https://github.com/cotes2020/jekyll-theme-chirpy/issues/631)) ([ad137fa](https://github.com/cotes2020/jekyll-theme-chirpy/commit/ad137fa2945b1870b9c1dd5e9212a5f4af7c3580))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* add missing color to linkedin icon for share list ([#683](https://github.com/cotes2020/jekyll-theme-chirpy/issues/683)) ([0dcd39d](https://github.com/cotes2020/jekyll-theme-chirpy/commit/0dcd39d491c9c49e4acf7f75f83fe6e1d1839e37))
|
||||
* code contains spaces in headings ([#644](https://github.com/cotes2020/jekyll-theme-chirpy/issues/644)) ([3fa1bf3](https://github.com/cotes2020/jekyll-theme-chirpy/commit/3fa1bf305451f645a7f3aa93863b076463c8f165))
|
||||
* correct spelling of `panel` ([#686](https://github.com/cotes2020/jekyll-theme-chirpy/issues/686)) ([b288587](https://github.com/cotes2020/jekyll-theme-chirpy/commit/b288587c1c3d113a1c52c2d25fb46cddda348961))
|
||||
* correct the i18n for tab titles ([0c5b697](https://github.com/cotes2020/jekyll-theme-chirpy/commit/0c5b697fd3b283b6a5c926742b61ed49d8688c18))
|
||||
* the `code` doesn't wrap inside the prompt ([#626](https://github.com/cotes2020/jekyll-theme-chirpy/issues/626)) ([378b65a](https://github.com/cotes2020/jekyll-theme-chirpy/commit/378b65a0617787813519dde74d6f741f255eff3d))
|
||||
|
||||
## [5.2.1](https://github.com/cotes2020/jekyll-theme-chirpy/compare/v5.2.0...v5.2.1) (2022-06-17)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* exclude CHANGELOG from output ([971fe03](https://github.com/cotes2020/jekyll-theme-chirpy/commit/971fe03ec329ae49e7d60fe3af6101cfbd1acd6c))
|
||||
* **PWA:** sometimes update notification is not triggered ([96af729](https://github.com/cotes2020/jekyll-theme-chirpy/commit/96af7291ea5b2c5ed6372e7b6f7725e67c69f1ba))
|
||||
|
||||
## [5.2.0](https://github.com/cotes2020/jekyll-theme-chirpy/compare/v5.1.0...v5.2.0) (2022-06-09)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add es-ES support to locales ([#533](https://github.com/cotes2020/jekyll-theme-chirpy/issues/533)) ([efe75ad](https://github.com/cotes2020/jekyll-theme-chirpy/commit/efe75adf2784956afb7a0b67f6634b146d9cb03b))
|
||||
* add fr-FR support to locales ([#582](https://github.com/cotes2020/jekyll-theme-chirpy/issues/582)) ([94e8144](https://github.com/cotes2020/jekyll-theme-chirpy/commit/94e81447afa457b1a6b7e8f487c47502803556d7))
|
||||
* add Vietnamese locale ([#517](https://github.com/cotes2020/jekyll-theme-chirpy/issues/517)) ([171463d](https://github.com/cotes2020/jekyll-theme-chirpy/commit/171463d76da9b7bc25dd327b8f0a868ea79e388b))
|
||||
* add pt-BR support to locales ([c2c503f](https://github.com/cotes2020/jekyll-theme-chirpy/commit/c2c503f63336884282b6bda4ec0703d6ae76771b))
|
||||
* add option to turn off PWA ([#527](https://github.com/cotes2020/jekyll-theme-chirpy/issues/527)) ([106c981](https://github.com/cotes2020/jekyll-theme-chirpy/commit/106c981bac71e7434204a77e1f0c9c61d6eb1509))
|
||||
* **PWA:** add Service Worker update notification ([d127183](https://github.com/cotes2020/jekyll-theme-chirpy/commit/d127183b9774f6321e409acdb66bf8a85d8814be))
|
||||
* support showing description of preview image ([2bd6efa](https://github.com/cotes2020/jekyll-theme-chirpy/commit/2bd6efa95a174ac44e30a3af1e57e6f40d6e0e3a))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* alt is not a valid attribute for 'a' tag ([58928db](https://github.com/cotes2020/jekyll-theme-chirpy/commit/58928dbc9068db4e4cda4371eeae1865920dce6a))
|
||||
* assets URL is missing `baseurl` in self-hosted mode ([#591](https://github.com/cotes2020/jekyll-theme-chirpy/issues/591)) ([54124d5](https://github.com/cotes2020/jekyll-theme-chirpy/commit/54124d5134995fce52e4c2fc0a5d4d1743d6264d))
|
||||
* correct the `twitter:creator` of Twitter summary card ([96a16c8](https://github.com/cotes2020/jekyll-theme-chirpy/commit/96a16c868ede51e7dfa412de63ffa1e5a49add7f))
|
||||
* correctly URL encode share links ([4c1c8d8](https://github.com/cotes2020/jekyll-theme-chirpy/commit/4c1c8d8b0eacecbbaa2d522bbdd6430f350ff760)), closes [#496](https://github.com/cotes2020/jekyll-theme-chirpy/issues/496)
|
||||
* follow paginate_path config for pagination ([6900d9f](https://github.com/cotes2020/jekyll-theme-chirpy/commit/6900d9f2bc9380cbda4babf611c6eeff345291af))
|
||||
* force checkout of `gh-pages` branch ([#544](https://github.com/cotes2020/jekyll-theme-chirpy/issues/544)) ([5402523](https://github.com/cotes2020/jekyll-theme-chirpy/commit/5402523ae52a3740bcc15df0b226b2612644945d))
|
||||
* horizontal scroll for long equations ([#545](https://github.com/cotes2020/jekyll-theme-chirpy/issues/545)) ([30787fc](https://github.com/cotes2020/jekyll-theme-chirpy/commit/30787fc4cf151e955bb7afc26dfd859f1a06fce6))
|
||||
* p is not allowed in span ([4f590e2](https://github.com/cotes2020/jekyll-theme-chirpy/commit/4f590e2bba0639751771211bc0d357828ae70404))
|
||||
* remove whitespace from avatar URL ([#537](https://github.com/cotes2020/jekyll-theme-chirpy/issues/537)) ([0542b51](https://github.com/cotes2020/jekyll-theme-chirpy/commit/0542b5149c8287dca60e37f46ee36f31b43455e4))
|
||||
* resume the preview image SEO tag ([#529](https://github.com/cotes2020/jekyll-theme-chirpy/issues/529)) ([b8d1bcd](https://github.com/cotes2020/jekyll-theme-chirpy/commit/b8d1bcd3dea0abd1afef7ef154a4501fbb18938d))
|
||||
* script code should be in head or body, not in between ([2103191](https://github.com/cotes2020/jekyll-theme-chirpy/commit/2103191b2faf714a8e4418c7c347a1f942b51af8))
|
||||
* spurious header closing tags ([59e9557](https://github.com/cotes2020/jekyll-theme-chirpy/commit/59e955745f02f9b57c65af70b0979cd4a98bf53f))
|
||||
* table bypass refactoring when it contains IAL ([#519](https://github.com/cotes2020/jekyll-theme-chirpy/issues/519)) ([5d85ccb](https://github.com/cotes2020/jekyll-theme-chirpy/commit/5d85ccb9943aac88dbbefebe1c2234cdcbae5c53))
|
||||
* **theme mode:** `SCSS` syntax error ([#588](https://github.com/cotes2020/jekyll-theme-chirpy/issues/588)) ([76a1b6a](https://github.com/cotes2020/jekyll-theme-chirpy/commit/76a1b6a068c369138422dcd18ba08ec8cc3749a6))
|
||||
* use `jsonify` to generate valid json ([#521](https://github.com/cotes2020/jekyll-theme-chirpy/issues/521)) ([dd9d5a7](https://github.com/cotes2020/jekyll-theme-chirpy/commit/dd9d5a7207b746342d07176d8969dc4f2c380bf2))
|
||||
* when the `site.img_cdn` is set to the local path, the preview-image path loses the `baseurl` ([9cefe58](https://github.com/cotes2020/jekyll-theme-chirpy/commit/9cefe58993d9ea3a3a28424e7ffd8e0911567c5c))
|
||||
|
||||
|
||||
### Improvements
|
||||
|
||||
* avoid post pageviews from shifting while loading ([135a16f](https://github.com/cotes2020/jekyll-theme-chirpy/commit/135a16f13ee783d9308669ff9a824847a73c951c))
|
||||
* avoid the layout shift for post datetime ([6d35f5f](https://github.com/cotes2020/jekyll-theme-chirpy/commit/6d35f5f8da044cfad071628bb53776de03efaae4))
|
||||
* **categories:** support singular and plural forms of locale ([#595](https://github.com/cotes2020/jekyll-theme-chirpy/issues/595)) ([35cadf9](https://github.com/cotes2020/jekyll-theme-chirpy/commit/35cadf969dd0161ee62503e242c545f006f7072b))
|
||||
* improve the responsive design for ultrawide screens ([#540](https://github.com/cotes2020/jekyll-theme-chirpy/issues/540)) ([5d6e8c5](https://github.com/cotes2020/jekyll-theme-chirpy/commit/5d6e8c5ef6aa71b4d2600c5305f6e8ba540557f7))
|
||||
18
Gemfile
18
Gemfile
@@ -4,25 +4,11 @@ source "https://rubygems.org"
|
||||
|
||||
gemspec
|
||||
|
||||
group :test do
|
||||
gem "html-proofer", "~> 3.18"
|
||||
end
|
||||
gem "html-proofer", "~> 5.0", group: :test
|
||||
|
||||
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
# 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]
|
||||
|
||||
# Lock jekyll-sass-converter to 2.x on Linux-musl
|
||||
if RUBY_PLATFORM =~ /linux-musl/
|
||||
gem "jekyll-sass-converter", "~> 2.0"
|
||||
end
|
||||
gem "wdm", "~> 0.2.0", :platforms => [:mingw, :x64_mingw, :mswin]
|
||||
|
||||
114
README.md
114
README.md
@@ -1,106 +1,84 @@
|
||||
<!-- markdownlint-disable-next-line -->
|
||||
<div align="center">
|
||||
|
||||
<!-- markdownlint-disable-next-line -->
|
||||
# Chirpy Jekyll Theme
|
||||
|
||||
A minimal, responsive, and powerful Jekyll theme for presenting professional writing.
|
||||
A minimal, responsive, and feature-rich Jekyll theme for technical writing.
|
||||
|
||||
[](https://rubygems.org/gems/jekyll-theme-chirpy)
|
||||
[](https://github.com/cotes2020/jekyll-theme-chirpy/actions/workflows/ci.yml)
|
||||
[](https://www.codacy.com/gh/cotes2020/jekyll-theme-chirpy/dashboard?utm_source=github.com&utm_medium=referral&utm_content=cotes2020/jekyll-theme-chirpy&utm_campaign=Badge_Grade)
|
||||
[](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/LICENSE)
|
||||
[](https://996.icu)
|
||||
[][ci]
|
||||
[][codacy]
|
||||
[][license]
|
||||
[][gem]
|
||||
[][open-container]
|
||||
|
||||
[**Live Demo →**](https://cotes2020.github.io/chirpy-demo)
|
||||
[**Live Demo** →][demo]
|
||||
|
||||
[](https://cotes2020.github.io/chirpy-demo)
|
||||
[][demo]
|
||||
|
||||
</div>
|
||||
|
||||
## Features
|
||||
|
||||
- Dark/Light Theme Mode
|
||||
- Dark Theme
|
||||
- Localized UI language
|
||||
- Pinned Posts
|
||||
- Pinned Posts on Home Page
|
||||
- Hierarchical Categories
|
||||
- Trending Tags
|
||||
- Table of Contents
|
||||
- Last Modified Date of Posts
|
||||
- Last Modified Date
|
||||
- Syntax Highlighting
|
||||
- Mathematical Expressions
|
||||
- Mermaid Diagram & Flowchart
|
||||
- Dark/Light Mode Images
|
||||
- Embed Videos
|
||||
- Disqus/Utterances/Giscus Comments
|
||||
- Search
|
||||
- Mermaid Diagrams & Flowcharts
|
||||
- Dark Mode Images
|
||||
- Embed Media
|
||||
- Comment Systems
|
||||
- Built-in Search
|
||||
- Atom Feeds
|
||||
- Google Analytics
|
||||
- Page Views Reporting
|
||||
- PWA
|
||||
- Web Analytics
|
||||
- SEO & Performance Optimization
|
||||
|
||||
## Quick Start
|
||||
|
||||
Before starting, please follow the instructions in the [Jekyll Docs](https://jekyllrb.com/docs/installation/) to complete the installation of `Ruby`, `RubyGems`, `Jekyll`, and `Bundler`. In addition, [Git](https://git-scm.com/) is also required to be installed.
|
||||
|
||||
### Step 1. Creating a New Site
|
||||
|
||||
Create a new repository from the [**Chirpy Starter**](https://github.com/cotes2020/chirpy-starter/generate) and name it `<GH_USERNAME>.github.io`, where `GH_USERNAME` represents your GitHub username.
|
||||
|
||||
### Step 2. Installing Dependencies
|
||||
|
||||
Before running for the first time, go to the root directory of your site, and install dependencies as follows:
|
||||
|
||||
```console
|
||||
$ bundle
|
||||
```
|
||||
|
||||
### Step 3. Running Local Server
|
||||
|
||||
Run the following command in the root directory of the site:
|
||||
|
||||
```console
|
||||
$ bundle exec jekyll s
|
||||
```
|
||||
|
||||
Or run with Docker:
|
||||
|
||||
```console
|
||||
$ docker run -it --rm \
|
||||
--volume="$PWD:/srv/jekyll" \
|
||||
-p 4000:4000 jekyll/jekyll \
|
||||
jekyll serve
|
||||
```
|
||||
|
||||
After a while, navigate to the site at <http://localhost:4000>.
|
||||
|
||||
## Documentation
|
||||
|
||||
For more details on usage, please refer to the tutorial on the [demo website](https://cotes2020.github.io/chirpy-demo/) / [wiki](https://github.com/cotes2020/jekyll-theme-chirpy/wiki). Note that the tutorial is based on the [latest release](https://github.com/cotes2020/jekyll-theme-chirpy/releases/latest), and the features of the default branch are usually ahead of the documentation.
|
||||
To learn how to use, develop, and upgrade the project, please refer to the [Wiki][wiki].
|
||||
|
||||
## Contributing
|
||||
|
||||
Welcome to report bugs, improve code quality or submit a new feature. For more information, see [contributing guidelines](.github/CONTRIBUTING.md).
|
||||
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
|
||||
|
||||
This theme is mainly built with [Jekyll](https://jekyllrb.com/) ecosystem, [Bootstrap](https://getbootstrap.com/), [Font Awesome](https://fontawesome.com/) and some other wonderful tools (their copyright information can be found in the relevant files). The avatar and favicon design come from [Clipart Max](https://www.clipartmax.com/middle/m2i8b1m2K9Z5m2K9_ant-clipart-childrens-ant-cute/).
|
||||
### Contributors
|
||||
|
||||
:tada: Thanks to all the volunteers who contributed to this project, their GitHub IDs are on [this list](https://github.com/cotes2020/jekyll-theme-chirpy/graphs/contributors). Also, I won't forget those guys who submitted the issues or unmerged PR because they reported bugs, shared ideas, or inspired me to write more readable documentation.
|
||||
Thanks to [all the contributors][contributors] involved in the development of the project!
|
||||
|
||||
Last but not least, thank [JetBrains][jb] for providing the OSS development license.
|
||||
[][contributors]
|
||||
<sub> — Made with [contrib.rocks](https://contrib.rocks)</sub>
|
||||
|
||||
## Sponsoring
|
||||
### Third-Party Assets
|
||||
|
||||
If you like this theme or find it helpful, please consider sponsoring me, because it will encourage and help me better maintain the project, I will be very grateful!
|
||||
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.
|
||||
|
||||
[](https://ko-fi.com/coteschung)
|
||||
[][cn-donation]
|
||||
[][cn-donation]
|
||||
The avatar and favicon for the project's website are from [ClipartMAX][clipartmax].
|
||||
|
||||
## 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].
|
||||
|
||||
<!-- ReadMe links -->
|
||||
|
||||
[jb]: https://www.jetbrains.com/?from=jekyll-theme-chirpy
|
||||
[cn-donation]: https://sponsor.cotes.page/
|
||||
[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
|
||||
[open-container]: https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/cotes2020/jekyll-theme-chirpy
|
||||
[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
|
||||
|
||||
151
_config.yml
151
_config.yml
@@ -3,62 +3,79 @@
|
||||
# Import the theme
|
||||
theme: jekyll-theme-chirpy
|
||||
|
||||
# Change the following value to '/PROJECT_NAME' ONLY IF your site type is GitHub Pages Project sites
|
||||
# and doesn't have a custom domain.
|
||||
baseurl: ''
|
||||
|
||||
# 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 › http://www.timezoneconverter.com/cgi-bin/findzone/findzone
|
||||
# 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
|
||||
# ↓ --------------------------
|
||||
|
||||
title: Chirpy # the main title
|
||||
title: Chirpy # the main title
|
||||
|
||||
tagline: A text-focused Jekyll theme # it will display as the sub-title
|
||||
tagline: A text-focused Jekyll theme # it will display as the subtitle
|
||||
|
||||
description: >- # used by seo meta and the atom feed
|
||||
A minimal, responsive, and powerful Jekyll theme for presenting professional writing.
|
||||
description: >- # used by seo meta and the atom feed
|
||||
A minimal, responsive and feature-rich Jekyll theme for technical writing.
|
||||
|
||||
# fill in the protocol & hostname for your site, e.g., 'https://username.github.io'
|
||||
url: ''
|
||||
# Fill in the protocol & hostname for your site.
|
||||
# E.g. 'https://username.github.io', note that it does not end with a '/'.
|
||||
url: ""
|
||||
|
||||
github:
|
||||
username: github_username # change to your github username
|
||||
username: github_username # change to your GitHub username
|
||||
|
||||
twitter:
|
||||
username: twitter_username # change to your twitter username
|
||||
username: twitter_username # change to your Twitter username
|
||||
|
||||
social:
|
||||
# Change to your full name.
|
||||
# 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
|
||||
email: example@domain.com # change to your email address
|
||||
links:
|
||||
# The first element serves as the copyright owner's link
|
||||
- https://twitter.com/username # change to your twitter homepage
|
||||
- https://github.com/username # change to your github homepage
|
||||
- https://twitter.com/username # change to your Twitter homepage
|
||||
- https://github.com/username # change to your GitHub homepage
|
||||
# Uncomment below to add more social links
|
||||
# - https://www.facebook.com/username
|
||||
# - https://www.linkedin.com/in/username
|
||||
|
||||
google_site_verification: # fill in to your verification string
|
||||
# Site Verification Settings
|
||||
webmaster_verifications:
|
||||
google: # fill in your Google verification code
|
||||
bing: # fill in your Bing verification code
|
||||
alexa: # fill in your Alexa verification code
|
||||
yandex: # fill in your Yandex verification code
|
||||
baidu: # fill in your Baidu verification code
|
||||
facebook: # fill in your Facebook verification code
|
||||
|
||||
# ↑ --------------------------
|
||||
# The end of `jekyll-seo-tag` settings
|
||||
|
||||
google_analytics:
|
||||
id: # fill in your Google Analytics ID
|
||||
# Google Analytics pageviews report settings
|
||||
pv:
|
||||
proxy_endpoint: # fill in the Google Analytics superProxy endpoint of Google App Engine
|
||||
cache_path: # the local PV cache data, friendly to visitors from GFW region
|
||||
# Web Analytics Settings
|
||||
analytics:
|
||||
google:
|
||||
id: # fill in your Google Analytics ID
|
||||
goatcounter:
|
||||
id: # fill in your GoatCounter ID
|
||||
umami:
|
||||
id: # fill in your Umami ID
|
||||
domain: # fill in your Umami domain
|
||||
matomo:
|
||||
id: # fill in your Matomo ID
|
||||
domain: # fill in your Matomo domain
|
||||
cloudflare:
|
||||
id: # fill in your Cloudflare Web Analytics token
|
||||
fathom:
|
||||
id: # fill in your Fathom Site ID
|
||||
|
||||
# Page views settings
|
||||
pageviews:
|
||||
provider: # now only supports 'goatcounter'
|
||||
|
||||
# Prefer color scheme setting.
|
||||
#
|
||||
@@ -68,62 +85,79 @@ google_analytics:
|
||||
#
|
||||
# Available options:
|
||||
#
|
||||
# light - Use the light color scheme
|
||||
# dark - Use the dark color scheme
|
||||
# light — Use the light color scheme
|
||||
# dark — Use the dark color scheme
|
||||
#
|
||||
theme_mode: # [light|dark]
|
||||
theme_mode: # [light | dark]
|
||||
|
||||
# The CDN endpoint for images.
|
||||
# The CDN endpoint for media resources.
|
||||
# Notice that once it is assigned, the CDN url
|
||||
# will be added to all image (site avatar & posts' images) paths starting with '/'
|
||||
# will be added to all media resources (site avatar, posts' images, audio and video files) paths starting with '/'
|
||||
#
|
||||
# e.g. 'https://cdn.com'
|
||||
img_cdn: 'https://chirpy-img.netlify.app'
|
||||
cdn: "https://chirpy-img.netlify.app"
|
||||
|
||||
# the avatar on sidebar, support local or CORS resources
|
||||
avatar: '/commons/avatar.jpg'
|
||||
avatar: "/commons/avatar.jpg"
|
||||
|
||||
# boolean type, the 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
|
||||
|
||||
comments:
|
||||
active: # The global switch for posts comments, e.g., 'disqus'. Keep it empty means disable
|
||||
# The active options are as follows:
|
||||
# Global switch for the post-comment system. Keeping it empty means disabled.
|
||||
provider: # [disqus | utterances | giscus]
|
||||
# The provider options are as follows:
|
||||
disqus:
|
||||
shortname: # fill with the Disqus shortname. › https://help.disqus.com/en/articles/1717111-what-s-a-shortname
|
||||
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 | ...>
|
||||
repo: # <gh-username>/<repo>
|
||||
issue_term: # < url | pathname | title | ...>
|
||||
# Giscus options › https://giscus.app
|
||||
giscus:
|
||||
repo: # <gh-username>/<repo>
|
||||
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`
|
||||
mapping: # optional, default to 'pathname'
|
||||
strict: # optional, default to '0'
|
||||
input_position: # optional, default to 'bottom'
|
||||
lang: # optional, default to the value of `site.lang`
|
||||
reactions_enabled: # optional, default to the value of `1`
|
||||
|
||||
# Self-hosted static assets, optional › https://github.com/cotes2020/chirpy-static-assets
|
||||
assets:
|
||||
self_host:
|
||||
enabled: # boolean, keep empty means false
|
||||
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]
|
||||
env: # [development | production]
|
||||
|
||||
pwa:
|
||||
enabled: true # the option for PWA feature
|
||||
enabled: true # The option for PWA feature (installable)
|
||||
cache:
|
||||
enabled: true # The option for PWA offline cache
|
||||
# Paths defined here will be excluded from the PWA cache.
|
||||
# Usually its value is the `baseurl` of another website that
|
||||
# shares the same domain name as the current website.
|
||||
deny_paths:
|
||||
# - "/example" # URLs match `<SITE_URL>/example/*` will not be cached by the PWA
|
||||
|
||||
paginate: 10
|
||||
|
||||
# The base URL of your site
|
||||
baseurl: ""
|
||||
|
||||
# ------------ The following options are not recommended to be modified ------------------
|
||||
|
||||
kramdown:
|
||||
footnote_backlink: "↩︎"
|
||||
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
|
||||
# default_lang: console
|
||||
span:
|
||||
@@ -139,12 +173,12 @@ collections:
|
||||
|
||||
defaults:
|
||||
- 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
|
||||
values:
|
||||
layout: post
|
||||
comments: true # Enable comments in posts.
|
||||
toc: true # Display TOC column in posts.
|
||||
comments: true # Enable comments in posts.
|
||||
toc: true # Display TOC column in posts.
|
||||
# DO NOT modify the following parameter unless you are confident enough
|
||||
# to update the code of all other post links in this project.
|
||||
permalink: /posts/:title/
|
||||
@@ -153,19 +187,11 @@ defaults:
|
||||
values:
|
||||
comments: false
|
||||
- scope:
|
||||
path: ''
|
||||
type: tabs # see `site.collections`
|
||||
path: ""
|
||||
type: tabs # see `site.collections`
|
||||
values:
|
||||
layout: page
|
||||
permalink: /:title/
|
||||
- scope:
|
||||
path: assets/img/favicons
|
||||
values:
|
||||
swcache: true
|
||||
- scope:
|
||||
path: assets/js/dist
|
||||
values:
|
||||
swcache: true
|
||||
|
||||
sass:
|
||||
style: compressed
|
||||
@@ -180,14 +206,13 @@ compress_html:
|
||||
envs: [development]
|
||||
|
||||
exclude:
|
||||
- '*.gem'
|
||||
- '*.gemspec'
|
||||
- "*.gem"
|
||||
- "*.gemspec"
|
||||
- docs
|
||||
- tools
|
||||
- README.md
|
||||
- CHANGELOG.md
|
||||
- LICENSE
|
||||
- gulpfile.js
|
||||
- node_modules
|
||||
- "*.config.js"
|
||||
- package*.json
|
||||
|
||||
jekyll-archives:
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
# 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.6.1/dist/jquery.min.js
|
||||
|
||||
bootstrap:
|
||||
css: https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css
|
||||
js: https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js
|
||||
|
||||
bootstrap-toc:
|
||||
css: https://cdn.jsdelivr.net/gh/afeld/bootstrap-toc@1.0.1/dist/bootstrap-toc.min.css
|
||||
js: https://cdn.jsdelivr.net/gh/afeld/bootstrap-toc@1.0.1/dist/bootstrap-toc.min.js
|
||||
|
||||
fontawesome:
|
||||
css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.2.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@9.2.2/dist/mermaid.min.js
|
||||
|
||||
dayjs:
|
||||
js:
|
||||
common: https://cdn.jsdelivr.net/npm/dayjs@1.11.6/dayjs.min.js
|
||||
locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.6/locale/:LOCALE.min.js
|
||||
relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.6/plugin/relativeTime.min.js
|
||||
localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.6/plugin/localizedFormat.min.js
|
||||
|
||||
countup:
|
||||
js: https://cdn.jsdelivr.net/npm/countup.js@1.9.3/dist/countUp.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
|
||||
|
||||
lazysizes:
|
||||
js: https://cdn.jsdelivr.net/npm/lazysizes@5.3.2/lazysizes.min.js
|
||||
|
||||
clipboard:
|
||||
js: https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js
|
||||
|
||||
polyfill:
|
||||
js: https://polyfill.io/v3/polyfill.min.js?features=es6
|
||||
|
||||
mathjax:
|
||||
js: https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/tex-chtml.js
|
||||
@@ -1,51 +0,0 @@
|
||||
# fonts
|
||||
|
||||
webfonts: /assets/lib/fonts/main.css
|
||||
|
||||
# Libraries
|
||||
|
||||
jquery:
|
||||
js: /assets/lib/jquery-3.6.0/jquery.min.js
|
||||
|
||||
bootstrap:
|
||||
css: /assets/lib/bootstrap-4.6.1/bootstrap.min.css
|
||||
js: /assets/lib/bootstrap-4.6.1/bootstrap.bundle.min.js
|
||||
|
||||
bootstrap-toc:
|
||||
css: /assets/lib/bootstrap-toc-1.0.1/bootstrap-toc.min.css
|
||||
js: /assets/lib/bootstrap-toc-1.0.1/bootstrap-toc.min.js
|
||||
|
||||
fontawesome:
|
||||
css: /assets/lib/fontawesome-free-6.2.1/css/all.min.css
|
||||
|
||||
search:
|
||||
js: /assets/lib/simple-jekyll-search-1.10.0/simple-jekyll-search.min.js
|
||||
|
||||
mermaid:
|
||||
js: /assets/lib/mermaid-9.1.7/mermaid.min.js
|
||||
|
||||
dayjs:
|
||||
js:
|
||||
common: /assets/lib/dayjs-1.10.7/dayjs.min.js
|
||||
locale: /assets/lib/dayjs-1.10.7/locale/en.min.js
|
||||
relativeTime: /assets/lib/dayjs-1.10.7/plugin/relativeTime.min.js
|
||||
localizedFormat: /assets/lib/dayjs-1.10.7/plugin/localizedFormat.min.js
|
||||
|
||||
countup:
|
||||
js: /assets/lib/countup.js-1.9.3/countUp.min.js
|
||||
|
||||
magnific-popup:
|
||||
css: /assets/lib/magnific-popup-1.1.0/magnific-popup.css
|
||||
js: /assets/lib/magnific-popup-1.1.0/jquery.magnific-popup.min.js
|
||||
|
||||
lazysizes:
|
||||
js: /assets/lib/lazysizes-5.3.2/lazysizes.min.js
|
||||
|
||||
clipboard:
|
||||
js: /assets/lib/clipboard-2.0.9/clipboard.min.js
|
||||
|
||||
polyfill:
|
||||
js: /assets/lib/polyfill-v3-es6/polyfill.min.js
|
||||
|
||||
mathjax:
|
||||
js: /assets/lib/mathjax-3.2.0/tex-chtml.js
|
||||
@@ -1,30 +1,40 @@
|
||||
# The contact options.
|
||||
|
||||
-
|
||||
type: github
|
||||
icon: 'fab fa-github'
|
||||
-
|
||||
type: twitter
|
||||
icon: 'fab fa-twitter'
|
||||
-
|
||||
type: email
|
||||
icon: 'fas fa-envelope'
|
||||
noblank: true # open link in current tab
|
||||
-
|
||||
type: rss
|
||||
icon: 'fas fa-rss'
|
||||
noblank: true
|
||||
- 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
|
||||
#
|
||||
# - 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
|
||||
#
|
||||
# - type: linkedin
|
||||
# icon: 'fab fa-linkedin' # icons powered by <https://fontawesome.com/>
|
||||
# url: '' # Fill with your Linkedin homepage
|
||||
# -
|
||||
# type: stack-overflow
|
||||
#
|
||||
# - type: stack-overflow
|
||||
# icon: 'fab fa-stack-overflow'
|
||||
# url: '' # Fill with your stackoverflow homepage
|
||||
#
|
||||
# - type: bluesky
|
||||
# icon: 'fa-brands fa-bluesky'
|
||||
# url: '' # Fill with your Bluesky profile link
|
||||
#
|
||||
# - type: reddit
|
||||
# icon: 'fa-brands fa-reddit'
|
||||
# url: '' # Fill with your Reddit profile link
|
||||
#
|
||||
# - type: threads
|
||||
# icon: 'fa-brands fa-threads'
|
||||
# url: '' # Fill with your Threads profile link
|
||||
|
||||
@@ -40,10 +40,10 @@ copyright:
|
||||
ما لم يذكر خلاف ذلك ، يتم ترخيص منشورات المدونة على هذا الموقع
|
||||
بموجب ترخيص Creative Commons Attribution 4.0 International (CC BY 4.0) من قبل المؤلف.
|
||||
|
||||
meta: باستخدام :PLATFORM السمة :THEME.
|
||||
meta: باستخدام :PLATFORM السمة :THEME
|
||||
|
||||
not_found:
|
||||
statment: عذرا, الرابط التالي غير صالح أو انه يشير إلى صفحة غير موجودة.
|
||||
statement: عذرا, الرابط التالي غير صالح أو انه يشير إلى صفحة غير موجودة.
|
||||
|
||||
notification:
|
||||
update_found: يتوفر اصدار جديد للمحتوى.
|
||||
@@ -70,18 +70,16 @@ post:
|
||||
share_link:
|
||||
title: أنسخ الرابط
|
||||
succeed: تم نسخ الرابط بنجاح!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: مثبت
|
||||
|
||||
# Date time format.
|
||||
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||
df:
|
||||
post:
|
||||
strftime: '%b %e, %Y'
|
||||
dayjs: 'll'
|
||||
strftime: "%b %e, %Y"
|
||||
dayjs: "ll"
|
||||
archives:
|
||||
strftime: '%b'
|
||||
dayjs: 'MMM'
|
||||
strftime: "%b"
|
||||
dayjs: "MMM"
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
@@ -40,10 +40,10 @@ copyright:
|
||||
Освен ако не е посочено друго, публикациите в блога на този сайт са лицензирани
|
||||
под лиценза Creative Commons Attribution 4.0 (CC BY 4.0) от автора.
|
||||
|
||||
meta: Създадено чрез :PLATFORM и :THEME тема.
|
||||
meta: Създадено чрез :PLATFORM и :THEME тема
|
||||
|
||||
not_found:
|
||||
statment: Съжалявам, но на този URL адрес няма налично съдържание.
|
||||
statement: Съжалявам, но на този URL адрес няма налично съдържание.
|
||||
|
||||
notification:
|
||||
update_found: Налична е нова версия на съдържанието.
|
||||
@@ -70,8 +70,6 @@ post:
|
||||
share_link:
|
||||
title: Копирай линк
|
||||
succeed: Линкът е копиран успешно!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: Прикрепенa
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
@@ -40,10 +40,10 @@ copyright:
|
||||
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.
|
||||
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.
|
||||
statement: 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.
|
||||
@@ -70,18 +70,16 @@ post:
|
||||
share_link:
|
||||
title: Kopírovat odkaz
|
||||
succeed: Zkopírováno!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: Připnuto
|
||||
|
||||
# Date time format.
|
||||
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||
df:
|
||||
post:
|
||||
strftime: '%b %e, %Y'
|
||||
dayjs: 'll'
|
||||
strftime: "%b %e, %Y"
|
||||
dayjs: "ll"
|
||||
archives:
|
||||
strftime: '%b'
|
||||
dayjs: 'MMM'
|
||||
strftime: "%b"
|
||||
dayjs: "MMM"
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
@@ -39,10 +39,10 @@ copyright:
|
||||
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.
|
||||
meta: Powered by :PLATFORM with :THEME theme
|
||||
|
||||
not_found:
|
||||
statment: Entschuldigung, dieser Link verweist auf keine vorhandene Ressource.
|
||||
statement: Entschuldigung, dieser Link verweist auf keine vorhandene Ressource.
|
||||
|
||||
notification:
|
||||
update_found: Eine neue Version ist verfügbar.
|
||||
@@ -58,7 +58,7 @@ post:
|
||||
pageview_measure: Aufrufe
|
||||
read_time:
|
||||
unit: Minuten
|
||||
prompt: lesen
|
||||
prompt: Lesezeit
|
||||
relate_posts: Weiterlesen
|
||||
share: Teilen
|
||||
button:
|
||||
@@ -69,8 +69,13 @@ post:
|
||||
share_link:
|
||||
title: Link kopieren
|
||||
succeed: Link erfolgreich kopiert!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: Angepinnt
|
||||
|
||||
# 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:
|
||||
|
||||
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:
|
||||
statement: Συγνώμη, έχουμε τοποθετήσει λάθος αυτήν την διεύθυνση 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: Δημοσιεύσεις
|
||||
@@ -40,10 +40,10 @@ copyright:
|
||||
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 :PLATFORM theme :THEME.
|
||||
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.
|
||||
statement: 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.
|
||||
@@ -70,18 +70,16 @@ post:
|
||||
share_link:
|
||||
title: Copy link
|
||||
succeed: Link copied successfully!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: Pinned
|
||||
|
||||
# Date time format.
|
||||
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||
df:
|
||||
post:
|
||||
strftime: '%b %e, %Y'
|
||||
dayjs: 'll'
|
||||
strftime: "%b %e, %Y"
|
||||
dayjs: "ll"
|
||||
archives:
|
||||
strftime: '%b'
|
||||
dayjs: 'MMM'
|
||||
strftime: "%b"
|
||||
dayjs: "MMM"
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
@@ -40,10 +40,10 @@ copyright:
|
||||
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.
|
||||
meta: Hecho con :PLATFORM usando el tema :THEME
|
||||
|
||||
not_found:
|
||||
statment: Lo sentimos, hemos perdido esa URL o apunta a algo que no existe.
|
||||
statement: Lo sentimos, hemos perdido esa URL o apunta a algo que no existe.
|
||||
|
||||
notification:
|
||||
update_found: Hay una nueva versión de contenido disponible.
|
||||
@@ -59,7 +59,7 @@ post:
|
||||
pageview_measure: visitas
|
||||
read_time:
|
||||
unit: min
|
||||
prompt: ' de lectura'
|
||||
prompt: " de lectura"
|
||||
relate_posts: Lecturas adicionales
|
||||
share: Compartir
|
||||
button:
|
||||
@@ -70,8 +70,6 @@ post:
|
||||
share_link:
|
||||
title: Copiar enlace
|
||||
succeed: ¡Enlace copiado!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: Fijado
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
@@ -39,10 +39,10 @@ copyright:
|
||||
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.
|
||||
meta: Käytetään :PLATFORM iä Teema :THEME
|
||||
|
||||
not_found:
|
||||
statment: Valitettavasti tällä URL-osoitteella ei ole saatavilla sisältöä.
|
||||
statement: Valitettavasti tällä URL-osoitteella ei ole saatavilla sisältöä.
|
||||
|
||||
notification:
|
||||
update_found: Uusi versio sisällöstä on saatavilla.
|
||||
@@ -69,18 +69,16 @@ post:
|
||||
share_link:
|
||||
title: Kopioi linkki
|
||||
succeed: Linkki kopioitu onnistuneesti!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: Kiinnitetty
|
||||
|
||||
# Date time format.
|
||||
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||
df:
|
||||
post:
|
||||
strftime: '%b %e, %Y'
|
||||
dayjs: 'll'
|
||||
strftime: "%b %e, %Y"
|
||||
dayjs: "ll"
|
||||
archives:
|
||||
strftime: '%b'
|
||||
dayjs: 'MMM'
|
||||
strftime: "%b"
|
||||
dayjs: "MMM"
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
@@ -14,7 +14,7 @@ tabs:
|
||||
categories: Catégories
|
||||
tags: Tags
|
||||
archives: Archives
|
||||
about: A propos de
|
||||
about: À propos
|
||||
|
||||
# the text displayed in the search bar & search results
|
||||
search:
|
||||
@@ -32,18 +32,18 @@ copyright:
|
||||
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/
|
||||
link: https://creativecommons.org/licenses/by/4.0/deed.fr
|
||||
|
||||
# Displayed in the footer
|
||||
brief: Certains droits réservés.
|
||||
verbose: >-
|
||||
Sauf mention contraire, les articles de ce site sont publiés sous licence
|
||||
Sauf mention contraire, les articles de ce site sont publiés
|
||||
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.
|
||||
statement: 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.
|
||||
@@ -70,8 +70,6 @@ post:
|
||||
share_link:
|
||||
title: Copier le lien
|
||||
succeed: Lien copié avec succès !
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: Épinglé
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
@@ -14,38 +14,37 @@ tabs:
|
||||
categories: Kategóriák
|
||||
tags: Címkék
|
||||
archives: Archívum
|
||||
about: Rólam
|
||||
about: Bemutatkozás
|
||||
|
||||
# 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.
|
||||
no_results: Hoppá! 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.
|
||||
template: A bejegyzést a szerző :LICENSE_NAME licenc alatt engedélyezte.
|
||||
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.
|
||||
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.
|
||||
meta: Készítve :THEME témával a :PLATFORM platformra.
|
||||
|
||||
not_found:
|
||||
statment: Sajnáljuk, az URL-t rosszul helyeztük el, vagy valami nem létezőre mutat.
|
||||
statement: 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.
|
||||
@@ -72,10 +71,22 @@ post:
|
||||
share_link:
|
||||
title: Link másolása
|
||||
succeed: Link sikeresen másolva!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: Kitűzve
|
||||
|
||||
# Date time format.
|
||||
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||
df:
|
||||
post:
|
||||
strftime: "%Y. %B. %e."
|
||||
dayjs: "YYYY. MMMM D."
|
||||
archives:
|
||||
strftime: "%B"
|
||||
dayjs: "MMM"
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
category_measure: kategória
|
||||
post_measure: bejegyzés
|
||||
category_measure:
|
||||
singular: kategória
|
||||
plural: kategória
|
||||
post_measure:
|
||||
singular: bejegyzés
|
||||
plural: bejegyzés
|
||||
|
||||
@@ -40,10 +40,10 @@ copyright:
|
||||
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.
|
||||
meta: Didukung oleh :PLATFORM dengan tema :THEME
|
||||
|
||||
not_found:
|
||||
statment: Maaf, kami gagal menemukan URL itu atau memang mengarah ke sesuatu yang tidak ada.
|
||||
statement: Maaf, kami gagal menemukan URL itu atau memang mengarah ke sesuatu yang tidak ada.
|
||||
|
||||
notification:
|
||||
update_found: Versi konten baru tersedia.
|
||||
@@ -70,8 +70,6 @@ post:
|
||||
share_link:
|
||||
title: Salin tautan
|
||||
succeed: Tautan berhasil disalin!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: Disematkan
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
@@ -40,10 +40,9 @@ copyright:
|
||||
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.
|
||||
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.
|
||||
statement: 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.
|
||||
@@ -70,18 +69,16 @@ post:
|
||||
share_link:
|
||||
title: Copia link
|
||||
succeed: Link copiato con successo!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: In alto
|
||||
|
||||
# Date time format.
|
||||
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||
df:
|
||||
post:
|
||||
strftime: '%b %e, %Y'
|
||||
dayjs: 'll'
|
||||
strftime: "%b %e, %Y"
|
||||
dayjs: "ll"
|
||||
archives:
|
||||
strftime: '%b'
|
||||
dayjs: 'MMM'
|
||||
strftime: "%b"
|
||||
dayjs: "MMM"
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
@@ -40,10 +40,10 @@ copyright:
|
||||
명시되지 않는 한 이 사이트의 블로그 게시물은 작성자의
|
||||
Creative Commons Attribution 4.0 International(CC BY 4.0) 라이선스에 따라 사용이 허가되었습니다.
|
||||
|
||||
meta: Powered by :PLATFORM with :THEME theme.
|
||||
meta: Powered by :PLATFORM with :THEME theme
|
||||
|
||||
not_found:
|
||||
statment: 해당 URL은 존재하지 않습니다.
|
||||
statement: 해당 URL은 존재하지 않습니다.
|
||||
|
||||
notification:
|
||||
update_found: 새 버전의 콘텐츠를 사용할 수 있습니다.
|
||||
@@ -70,15 +70,13 @@ post:
|
||||
share_link:
|
||||
title: 링크 복사하기
|
||||
succeed: 링크가 복사되었습니다!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: 핀
|
||||
|
||||
# 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'
|
||||
strftime: "%Y/%m/%d"
|
||||
dayjs: "YYYY/MM/DD"
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
@@ -40,10 +40,10 @@ copyright:
|
||||
အခြားမှတ်သားထားချက်များမှလွဲ၍ ဤဆိုက်ရှိ ဘလော့ဂ်ပို့စ်များသည် စာရေးသူ၏
|
||||
Creative Commons Attribution 4.0 International (CC BY 4.0) အောက်တွင် လိုင်စင်ရထားပါသည်။
|
||||
|
||||
meta: Powered by :PLATFORM with :THEME theme.
|
||||
meta: Powered by :PLATFORM with :THEME theme
|
||||
|
||||
not_found:
|
||||
statment: ဝမ်းနည်းပါသည်၊ ကျွန်ုပ်တို့သည် အဆိုပါ URL ကို မှားယွင်းစွာ နေရာချထားခြင်း သို့မဟုတ် ၎င်းသည် မရှိသောအရာကို ညွှန်ပြနေပါသည်။
|
||||
statement: ဝမ်းနည်းပါသည်၊ ကျွန်ုပ်တို့သည် အဆိုပါ URL ကို မှားယွင်းစွာ နေရာချထားခြင်း သို့မဟုတ် ၎င်းသည် မရှိသောအရာကို ညွှန်ပြနေပါသည်။
|
||||
|
||||
notification:
|
||||
update_found: အကြောင်းအရာဗားရှင်းအသစ်ကို ရနိုင်ပါပြီ။
|
||||
@@ -70,8 +70,6 @@ post:
|
||||
share_link:
|
||||
title: လင့်ခ်ကို ကူးယူရန်
|
||||
succeed: လင့်ခ်ကို ကူးယူလိုက်ပြီ။
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: ချိတ်ထားသည်။
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
@@ -40,10 +40,10 @@ copyright:
|
||||
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.
|
||||
meta: Feito com :PLATFORM usando o tema :THEME
|
||||
|
||||
not_found:
|
||||
statment: Desculpe, a página não foi encontrada.
|
||||
statement: Desculpe, a página não foi encontrada.
|
||||
|
||||
notification:
|
||||
update_found: Uma nova versão do conteúdo está disponível.
|
||||
@@ -70,8 +70,6 @@ post:
|
||||
share_link:
|
||||
title: Copie o link
|
||||
succeed: Link copiado com sucesso!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: Fixado
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
# ----- Commons label -----
|
||||
|
||||
layout:
|
||||
post: Публикация
|
||||
post: Пост
|
||||
category: Категория
|
||||
tag: Тег
|
||||
|
||||
# The tabs of sidebar
|
||||
tabs:
|
||||
# format: <filename_without_extension>: <value>
|
||||
home: Домашняя страница
|
||||
home: Главная
|
||||
categories: Категории
|
||||
tags: Теги
|
||||
archives: Архив
|
||||
@@ -19,8 +19,8 @@ tabs:
|
||||
# the text displayed in the search bar & search results
|
||||
search:
|
||||
hint: поиск
|
||||
cancel: Отменить
|
||||
no_results: Ох! Ничего не найдено.
|
||||
cancel: Отмена
|
||||
no_results: Упс! Ничего не найдено.
|
||||
|
||||
panel:
|
||||
lastmod: Недавно обновлено
|
||||
@@ -30,50 +30,58 @@ panel:
|
||||
copyright:
|
||||
# Shown at the bottom of the post
|
||||
license:
|
||||
template: Публикация защищена лицензией :LICENSE_NAME.
|
||||
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),
|
||||
если в тексте публикации не указано иное.
|
||||
Если не указано иное, авторские посты на этом сайте защищены лицензией Creative Commons Attribution 4.0 International (CC BY 4.0).
|
||||
|
||||
meta: Powered by :PLATFORM with :THEME theme.
|
||||
meta: Использует тему :THEME для :PLATFORM
|
||||
|
||||
not_found:
|
||||
statment: Извините, эта ссылка указывает на ресурс который не существует.
|
||||
statement: Извините, мы перепутали URL-адрес или он указывает на что-то несуществующее.
|
||||
|
||||
notification:
|
||||
update_found: Доступна новая версия контента.
|
||||
update: Обновлять
|
||||
update: Обновить
|
||||
|
||||
# ----- Posts related labels -----
|
||||
|
||||
post:
|
||||
written_by: Автор
|
||||
posted: Время публикации
|
||||
posted: Опубликовано
|
||||
updated: Обновлено
|
||||
words: слов
|
||||
pageview_measure: просмотров
|
||||
read_time:
|
||||
unit: минут
|
||||
unit: мин.
|
||||
prompt: чтения
|
||||
relate_posts: Вам также может быть интересно
|
||||
relate_posts: Похожие посты
|
||||
share: Поделиться
|
||||
button:
|
||||
next: Предыдущая публикация
|
||||
previous: Следующая публикация
|
||||
next: Следующий пост
|
||||
previous: Предыдущий пост
|
||||
copy_code:
|
||||
succeed: Скопировано успешно!
|
||||
succeed: Скопировано!
|
||||
share_link:
|
||||
title: Скопировать ссылку
|
||||
succeed: Ссылка успешно скопирована!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: Закреплено
|
||||
|
||||
# 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: категории
|
||||
post_measure: публикации
|
||||
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:
|
||||
statement: 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:
|
||||
statement: 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:
|
||||
statement: ขออภัย เราวาง 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: โพสต์
|
||||
@@ -23,7 +23,7 @@ search:
|
||||
no_results: Hop! Öyle bir şey bulamadım.
|
||||
|
||||
panel:
|
||||
lastmod: Yeni Güncellendi
|
||||
lastmod: Son Güncellenenler
|
||||
trending_tags: Yükselen Etiketler
|
||||
toc: İçindekiler
|
||||
|
||||
@@ -38,12 +38,12 @@ copyright:
|
||||
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 de vererek paylaşabilir veya düzenleyip paylaşabilirsin.
|
||||
Kısaca sayfa linkini vererek değiştirebilir / paylaşabilirsiniz.
|
||||
|
||||
meta: :PLATFORM ve :THEME teması.
|
||||
meta: :PLATFORM ve :THEME teması
|
||||
|
||||
not_found:
|
||||
statment: Üzgünüz, bu linki yanlış yerleştirdik veya var olmayan bir şeye işaret ediyor.
|
||||
statement: Ü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.
|
||||
@@ -53,8 +53,8 @@ notification:
|
||||
|
||||
post:
|
||||
written_by: Yazan
|
||||
posted: Gönderilme Tarihi
|
||||
updated: Güncellenme Tarihi
|
||||
posted: Gönderim
|
||||
updated: Güncelleme
|
||||
words: sözcük
|
||||
pageview_measure: görüntülenme
|
||||
read_time:
|
||||
@@ -70,8 +70,6 @@ post:
|
||||
share_link:
|
||||
title: Linki kopyala
|
||||
succeed: Link kopyalandı.
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: Sabitlendi
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
@@ -40,10 +40,10 @@ copyright:
|
||||
Публікації на сайті захищено ліцензією Creative Commons Attribution 4.0 International (CC BY 4.0),
|
||||
якщо інше не вказано в тексті.
|
||||
|
||||
meta: Powered by :PLATFORM with :THEME theme.
|
||||
meta: Powered by :PLATFORM with :THEME theme
|
||||
|
||||
not_found:
|
||||
statment: Вибачте, це посилання вказує на ресурс, що не існує.
|
||||
statement: Вибачте, це посилання вказує на ресурс, що не існує.
|
||||
|
||||
notification:
|
||||
update_found: Доступна нова версія вмісту.
|
||||
@@ -70,8 +70,6 @@ post:
|
||||
share_link:
|
||||
title: Скопіювати посилання
|
||||
succeed: Посилання успішно скопійовано!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: Закріплено
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
@@ -38,10 +38,11 @@ copyright:
|
||||
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.
|
||||
|
||||
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.
|
||||
statement: 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.
|
||||
@@ -68,8 +69,6 @@ post:
|
||||
share_link:
|
||||
title: Sao chép đường dẫn
|
||||
succeed: Đã sao chép đường dẫn thành công!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: Bài ghim
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
@@ -39,10 +39,10 @@ copyright:
|
||||
verbose: >-
|
||||
除非另有说明,本网站上的博客文章均由作者按照知识共享署名 4.0 国际 (CC BY 4.0) 许可协议进行授权。
|
||||
|
||||
meta: 本站由 :PLATFORM 生成,采用 :THEME 主题。
|
||||
meta: 本站采用 :PLATFORM 主题 :THEME
|
||||
|
||||
not_found:
|
||||
statment: 抱歉,我们放错了该 URL,或者它指向了不存在的内容。
|
||||
statement: 抱歉,我们放错了该 URL,或者它指向了不存在的内容。
|
||||
|
||||
notification:
|
||||
update_found: 发现新版本的内容。
|
||||
@@ -69,15 +69,13 @@ post:
|
||||
share_link:
|
||||
title: 分享链接
|
||||
succeed: 链接已复制!
|
||||
# pinned prompt of posts list on homepage
|
||||
pin_prompt: 顶置
|
||||
|
||||
# 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'
|
||||
strftime: "%Y/%m/%d"
|
||||
dayjs: "YYYY/MM/DD"
|
||||
|
||||
# categories page
|
||||
categories:
|
||||
|
||||
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:
|
||||
statement: 抱歉,您可能正在存取一個已被移動的 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: 篇文章
|
||||
18
_data/media.yml
Normal file
18
_data/media.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
- extension: mp3
|
||||
mime_type: mpeg
|
||||
- extension: mov
|
||||
mime_type: quicktime
|
||||
- extension: avi
|
||||
mime_type: x-msvideo
|
||||
- extension: mkv
|
||||
mime_type: x-matroska
|
||||
- extension: ogv
|
||||
mime_type: ogg
|
||||
- extension: weba
|
||||
mime_type: webm
|
||||
- extension: 3gp
|
||||
mime_type: 3gpp
|
||||
- extension: 3g2
|
||||
mime_type: 3gpp2
|
||||
- extension: mid
|
||||
mime_type: midi
|
||||
39
_data/origin/basic.yml
Normal file
39
_data/origin/basic.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
# fonts
|
||||
|
||||
webfonts: /assets/lib/fonts/main.css
|
||||
|
||||
# Libraries
|
||||
|
||||
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.js
|
||||
relativeTime: /assets/lib/dayjs/plugin/relativeTime.js
|
||||
localizedFormat: /assets/lib/dayjs/plugin/localizedFormat.js
|
||||
|
||||
glightbox:
|
||||
css: /assets/lib/glightbox/glightbox.min.css
|
||||
js: /assets/lib/glightbox/glightbox.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
|
||||
54
_data/origin/cors.yml
Normal file
54
_data/origin/cors.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
# Resource Hints
|
||||
resource_hints:
|
||||
- url: https://fonts.googleapis.com
|
||||
links:
|
||||
- rel: preconnect
|
||||
- rel: dns-prefetch
|
||||
- url: https://fonts.gstatic.com
|
||||
links:
|
||||
- rel: preconnect
|
||||
opts: [crossorigin]
|
||||
- rel: dns-prefetch
|
||||
- url: https://cdn.jsdelivr.net
|
||||
links:
|
||||
- rel: preconnect
|
||||
- rel: dns-prefetch
|
||||
|
||||
# Web Fonts
|
||||
webfonts: https://fonts.googleapis.com/css2?family=Lato:wght@300;400&family=Source+Sans+Pro:wght@400;600;700;900&display=swap
|
||||
|
||||
# Libraries
|
||||
|
||||
toc:
|
||||
css: https://cdn.jsdelivr.net/npm/tocbot@4.29.0/dist/tocbot.min.css
|
||||
js: https://cdn.jsdelivr.net/npm/tocbot@4.29.0/dist/tocbot.min.js
|
||||
|
||||
fontawesome:
|
||||
css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.6.0/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@11.0.2/dist/mermaid.min.js
|
||||
|
||||
dayjs:
|
||||
js:
|
||||
common: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/dayjs.min.js
|
||||
locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/locale/:LOCALE.js
|
||||
relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/plugin/relativeTime.js
|
||||
localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/plugin/localizedFormat.js
|
||||
|
||||
glightbox:
|
||||
css: https://cdn.jsdelivr.net/npm/glightbox@3.3.0/dist/css/glightbox.min.css
|
||||
js: https://cdn.jsdelivr.net/npm/glightbox@3.3.0/dist/js/glightbox.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
|
||||
@@ -2,26 +2,49 @@
|
||||
# Icons from <https://fontawesome.com/>
|
||||
|
||||
platforms:
|
||||
-
|
||||
type: Twitter
|
||||
icon: "fab fa-twitter"
|
||||
- type: Twitter
|
||||
icon: "fa-brands fa-square-x-twitter"
|
||||
link: "https://twitter.com/intent/tweet?text=TITLE&url=URL"
|
||||
-
|
||||
type: Facebook
|
||||
|
||||
- type: Facebook
|
||||
icon: "fab fa-facebook-square"
|
||||
link: "https://www.facebook.com/sharer/sharer.php?title=TITLE&u=URL"
|
||||
-
|
||||
type: Telegram
|
||||
|
||||
- type: Telegram
|
||||
icon: "fab fa-telegram"
|
||||
link: "https://t.me/share/url?url=URL&text=TITLE"
|
||||
|
||||
# Uncomment below if you need to.
|
||||
# -
|
||||
# type: Linkedin
|
||||
#
|
||||
# - type: Linkedin
|
||||
# icon: "fab fa-linkedin"
|
||||
# link: "https://www.linkedin.com/sharing/share-offsite/?url=URL"
|
||||
#
|
||||
# -
|
||||
# type: Weibo
|
||||
# - type: Weibo
|
||||
# icon: "fab fa-weibo"
|
||||
# link: "http://service.weibo.com/share/share.php?title=TITLE&url=URL"
|
||||
# link: "https://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/"
|
||||
#
|
||||
# - type: Bluesky
|
||||
# icon: "fa-brands fa-bluesky"
|
||||
# link: "https://bsky.app/intent/compose?text=TITLE%20URL"
|
||||
#
|
||||
# - type: Reddit
|
||||
# icon: "fa-brands fa-square-reddit"
|
||||
# link: "https://www.reddit.com/submit?url=URL&title=TITLE"
|
||||
#
|
||||
# - type: Threads
|
||||
# icon: "fa-brands fa-square-threads"
|
||||
# link: "https://www.threads.net/intent/post?text=TITLE%20URL"
|
||||
|
||||
6
_includes/analytics/cloudflare.html
Normal file
6
_includes/analytics/cloudflare.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<!-- Cloudflare Web Analytics -->
|
||||
<script
|
||||
defer
|
||||
src="https://static.cloudflareinsights.com/beacon.min.js"
|
||||
data-cf-beacon='{"token": "{{ site.analytics.cloudflare.id }}"}'
|
||||
></script>
|
||||
6
_includes/analytics/fathom.html
Normal file
6
_includes/analytics/fathom.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<!-- Fathom -->
|
||||
<script
|
||||
src="https://cdn.usefathom.com/script.js"
|
||||
data-site="{{ site.analytics.fathom.id }}"
|
||||
defer
|
||||
></script>
|
||||
6
_includes/analytics/goatcounter.html
Normal file
6
_includes/analytics/goatcounter.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<!-- GoatCounter -->
|
||||
<script
|
||||
async
|
||||
src="https://gc.zgo.at/count.js"
|
||||
data-goatcounter="https://{{ site.analytics.goatcounter.id }}.goatcounter.com/count"
|
||||
></script>
|
||||
13
_includes/analytics/google.html
Normal file
13
_includes/analytics/google.html
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script defer src="https://www.googletagmanager.com/gtag/js?id={{ site.analytics.google.id }}"></script>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
|
||||
gtag('js', new Date());
|
||||
gtag('config', '{{ site.analytics.google.id }}');
|
||||
});
|
||||
</script>
|
||||
13
_includes/analytics/matomo.html
Normal file
13
_includes/analytics/matomo.html
Normal file
@@ -0,0 +1,13 @@
|
||||
<!-- Matomo -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
var _paq = (window._paq = window._paq || []);
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
var u="//{{ site.analytics.matomo.domain }}/";
|
||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
||||
_paq.push(['setSiteId', {{ site.analytics.matomo.id }}]);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
||||
});
|
||||
</script>
|
||||
6
_includes/analytics/umami.html
Normal file
6
_includes/analytics/umami.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<!-- Umami -->
|
||||
<script
|
||||
defer
|
||||
src="{{ site.analytics.umami.domain }}/script.js"
|
||||
data-website-id="{{ site.analytics.umami.id }}"
|
||||
></script>
|
||||
5
_includes/comment.html
Normal file
5
_includes/comment.html
Normal file
@@ -0,0 +1,5 @@
|
||||
<!-- The comments switcher -->
|
||||
{% if page.comments and site.comments.provider %}
|
||||
{% capture path %}comments/{{ site.comments.provider }}.html{% endcapture %}
|
||||
{% include {{ path }} %}
|
||||
{% endif %}
|
||||
@@ -1,5 +0,0 @@
|
||||
<!-- The comments switcher -->
|
||||
{% if page.comments and site.comments.active %}
|
||||
{% capture path %}comments/{{ site.comments.active }}.html{% endcapture %}
|
||||
{% include {{ path }} %}
|
||||
{% endif %}
|
||||
@@ -1,41 +1,27 @@
|
||||
<!--
|
||||
The Disqus lazy loading.
|
||||
-->
|
||||
<div id="disqus_thread" class="pt-2 pb-2">
|
||||
<p class="text-center text-muted small">
|
||||
Comments powered by <a href="https://disqus.com/">Disqus</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
<script>
|
||||
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);
|
||||
})();
|
||||
function addDisqus() {
|
||||
let disqusThread = document.createElement('div');
|
||||
let paragraph = document.createElement('p');
|
||||
|
||||
disqus_observer.disconnect();
|
||||
}
|
||||
}, { threshold: [0] });
|
||||
disqusThread.id = 'disqus_thread';
|
||||
paragraph.className = 'text-center text-muted small';
|
||||
paragraph.innerHTML = 'Comments powered by <a href="https://disqus.com/">Disqus</a>.';
|
||||
disqusThread.appendChild(paragraph);
|
||||
|
||||
disqus_observer.observe(document.querySelector('#disqus_thread'));
|
||||
const footer = document.querySelector('footer');
|
||||
footer.insertAdjacentElement("beforebegin", disqusThread);
|
||||
}
|
||||
|
||||
/* 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") {
|
||||
{%- comment -%} Auto switch theme {%- endcomment -%}
|
||||
function reloadDisqus(event) {
|
||||
if (event.source === window && event.data && event.data.id === Theme.ID) {
|
||||
{%- comment -%} Disqus hasn't been loaded {%- endcomment -%}
|
||||
if (typeof DISQUS === 'undefined') {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -45,10 +31,27 @@
|
||||
}
|
||||
}
|
||||
|
||||
const modeToggle = document.querySelector(".mode-toggle");
|
||||
addDisqus();
|
||||
|
||||
if (typeof modeToggle !== "undefined") {
|
||||
window.addEventListener("message", reloadDisqus);
|
||||
if (Theme.switchable) {
|
||||
addEventListener('message', reloadDisqus);
|
||||
}
|
||||
|
||||
{%- comment -%} Lazy loading {%- endcomment -%}
|
||||
var disqusObserver = new IntersectionObserver(
|
||||
function (entries) {
|
||||
if (entries[0].isIntersecting) {
|
||||
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);
|
||||
|
||||
disqusObserver.disconnect();
|
||||
}
|
||||
},
|
||||
{ threshold: [0] }
|
||||
);
|
||||
|
||||
disqusObserver.observe(document.getElementById('disqus_thread'));
|
||||
</script>
|
||||
|
||||
@@ -1,56 +1,55 @@
|
||||
<!-- 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;
|
||||
<script>
|
||||
(function () {
|
||||
const themeMapper = Theme.getThemeMapper('light', 'dark_dimmed');
|
||||
const initTheme = themeMapper[Theme.visualState];
|
||||
|
||||
if ($("html[data-mode=dark]").length > 0
|
||||
|| ($("html[data-mode]").length == 0
|
||||
&& window.matchMedia("(prefers-color-scheme: dark)").matches)) {
|
||||
initTheme = darkTheme;
|
||||
let lang = '{{ site.comments.giscus.lang | default: lang }}';
|
||||
{%- comment -%} https://github.com/giscus/giscus/tree/main/locales {%- endcomment -%}
|
||||
if (lang.length > 2 && !lang.startsWith('zh')) {
|
||||
lang = lang.slice(0, 2);
|
||||
}
|
||||
|
||||
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 }}",
|
||||
"crossorigin": "anonymous",
|
||||
"async": ""
|
||||
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-strict' : '{{ site.comments.giscus.strict | default: '0' }}',
|
||||
'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': 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);
|
||||
let giscusNode = document.createElement('script');
|
||||
Object.entries(giscusAttributes).forEach(([key, value]) =>
|
||||
giscusNode.setAttribute(key, value)
|
||||
);
|
||||
|
||||
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 $footer = document.querySelector('footer');
|
||||
$footer.insertAdjacentElement("beforebegin", giscusNode);
|
||||
|
||||
addEventListener('message', (event) => {
|
||||
if (event.source === window && event.data && event.data.id === Theme.ID) {
|
||||
const newTheme = themeMapper[Theme.visualState];
|
||||
|
||||
const message = {
|
||||
setConfig: {
|
||||
theme: theme
|
||||
theme: newTheme
|
||||
}
|
||||
};
|
||||
|
||||
const giscus = document.querySelector(iframe).contentWindow;
|
||||
giscus.postMessage({ giscus: message }, origin);
|
||||
const giscus =
|
||||
document.getElementsByClassName('giscus-frame')[0].contentWindow;
|
||||
giscus.postMessage({ giscus: message }, 'https://giscus.app');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
@@ -1,51 +1,38 @@
|
||||
<!-- 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>
|
||||
(function () {
|
||||
const origin = 'https://utteranc.es';
|
||||
const themeMapper = Theme.getThemeMapper('github-light', 'github-dark');
|
||||
const initTheme = themeMapper[Theme.visualState];
|
||||
|
||||
<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;
|
||||
let script = document.createElement('script');
|
||||
script.src = 'https://utteranc.es/client.js';
|
||||
script.setAttribute('repo', '{{ site.comments.utterances.repo }}');
|
||||
script.setAttribute('issue-term', '{{ site.comments.utterances.issue_term }}');
|
||||
script.setAttribute('theme', initTheme);
|
||||
script.crossOrigin = 'anonymous';
|
||||
script.async = true;
|
||||
|
||||
if ($("html[data-mode=dark]").length > 0
|
||||
|| ($("html[data-mode]").length == 0
|
||||
&& window.matchMedia("(prefers-color-scheme: dark)").matches)) {
|
||||
initTheme = darkTheme;
|
||||
}
|
||||
const $footer = document.querySelector('footer');
|
||||
$footer.insertAdjacentElement('beforebegin', script);
|
||||
|
||||
addEventListener("message", (event) => {
|
||||
let theme;
|
||||
addEventListener('message', (event) => {
|
||||
let newTheme;
|
||||
|
||||
/* credit to <https://github.com/utterance/utterances/issues/170#issuecomment-594036347> */
|
||||
if (event.origin === origin) {
|
||||
/* page initial */
|
||||
theme = initTheme;
|
||||
{%- comment -%}
|
||||
Credit to <https://github.com/utterance/utterances/issues/170#issuecomment-594036347>
|
||||
{%- endcomment -%}
|
||||
if (event.source === window && event.data && event.data.id === Theme.ID) {
|
||||
newTheme = themeMapper[Theme.visualState];
|
||||
|
||||
} 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);
|
||||
const message = {
|
||||
type: 'set-theme',
|
||||
theme: newTheme
|
||||
};
|
||||
|
||||
} else {
|
||||
return;
|
||||
const utterances = document.querySelector('.utterances-frame').contentWindow;
|
||||
utterances.postMessage(message, origin);
|
||||
}
|
||||
|
||||
const message = {
|
||||
type: "set-theme",
|
||||
theme: theme
|
||||
};
|
||||
|
||||
const utterances = document.querySelector(iframe).contentWindow;
|
||||
utterances.postMessage(message, origin);
|
||||
});
|
||||
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
@@ -3,13 +3,18 @@
|
||||
See: ${JS_ROOT}/utils/locale-dateime.js
|
||||
-->
|
||||
|
||||
{% assign wrap_elem = include.wrap | default: 'em' %}
|
||||
{% assign df_strftime = site.data.locales[site.lang].df.post.strftime | default: '%d/%m/%Y' %}
|
||||
{% assign df_dayjs = site.data.locales[site.lang].df.post.dayjs | default: 'DD/MM/YYYY' %}
|
||||
{% 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' %}
|
||||
|
||||
<{{ wrap_elem }} class="{% if include.class %}{{ include.class }}{% endif %}"
|
||||
data-ts="{{ include.date | date: '%s' }}"
|
||||
data-df="{{ df_dayjs }}"
|
||||
{% if include.tooltip %}data-toggle="tooltip" data-placement="bottom"{% endif %}>
|
||||
<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 }}
|
||||
</{{ wrap_elem }}>
|
||||
</time>
|
||||
|
||||
35
_includes/embed/audio.html
Normal file
35
_includes/embed/audio.html
Normal file
@@ -0,0 +1,35 @@
|
||||
{% assign src = include.src | strip %}
|
||||
{% assign title = include.title | strip %}
|
||||
{% assign types = include.types | default: '' | strip | split: '|' %}
|
||||
|
||||
{% unless src contains '://' %}
|
||||
{%- capture src -%}
|
||||
{% include media-url.html src=src subpath=page.media_subpath %}
|
||||
{%- endcapture -%}
|
||||
{% endunless %}
|
||||
|
||||
<p>
|
||||
<audio class="embed-audio" controls>
|
||||
{% assign extension = src | split: '.' | last %}
|
||||
{% assign types = extension | concat: types %}
|
||||
|
||||
{% assign ext_size = extension | size %}
|
||||
{% assign src_size = src | size %}
|
||||
{% assign slice_size = src_size | minus: ext_size %}
|
||||
|
||||
{% assign filepath = src | slice: 0, slice_size %}
|
||||
|
||||
{% for type in types %}
|
||||
{% assign src = filepath | append: type %}
|
||||
{% assign media_item = site.data.media | find: 'extension', type %}
|
||||
{% assign mime_type = media_item.mime_type | default: type %}
|
||||
<source src="{{ src }}" type="audio/{{ mime_type }}">
|
||||
{% endfor %}
|
||||
|
||||
Your browser does not support the audio tag. Here is a
|
||||
<a href="{{ src | strip }}">link to the audio file</a> instead.
|
||||
</audio>
|
||||
{% if title %}
|
||||
<em>{{ title }}</em>
|
||||
{% endif %}
|
||||
</p>
|
||||
9
_includes/embed/bilibili.html
Normal file
9
_includes/embed/bilibili.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<iframe
|
||||
class="embed-video"
|
||||
loading="lazy"
|
||||
src="https://player.bilibili.com/player.html?bvid={{ include.id }}"
|
||||
scrolling="no"
|
||||
frameborder="0"
|
||||
framespacing="0"
|
||||
allowfullscreen="true"
|
||||
></iframe>
|
||||
@@ -1,4 +1,8 @@
|
||||
<iframe class="embed-video twitch lazyload"
|
||||
<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>
|
||||
frameborder="0"
|
||||
allowfullscreen="true"
|
||||
scrolling="no"
|
||||
></iframe>
|
||||
|
||||
59
_includes/embed/video.html
Normal file
59
_includes/embed/video.html
Normal file
@@ -0,0 +1,59 @@
|
||||
{% assign video_url = include.src %}
|
||||
{% assign title = include.title %}
|
||||
{% assign poster_url = include.poster %}
|
||||
{% assign types = include.types | default: '' | strip | split: '|' %}
|
||||
|
||||
{% unless video_url contains '://' %}
|
||||
{%- capture video_url -%}
|
||||
{% include media-url.html src=video_url subpath=page.media_subpath %}
|
||||
{%- endcapture -%}
|
||||
{% endunless %}
|
||||
|
||||
{% if poster_url %}
|
||||
{% unless poster_url contains '://' %}
|
||||
{%- capture poster_url -%}
|
||||
{% include media-url.html src=poster_url subpath=page.media_subpath %}
|
||||
{%- endcapture -%}
|
||||
{% endunless %}
|
||||
{% assign poster = 'poster="' | append: poster_url | append: '"' %}
|
||||
{% endif %}
|
||||
|
||||
{% assign attributes = 'controls' %}
|
||||
|
||||
{% if include.autoplay %}
|
||||
{% assign attributes = attributes | append: ' ' | append: 'autoplay' %}
|
||||
{% endif %}
|
||||
|
||||
{% if include.loop %}
|
||||
{% assign attributes = attributes | append: ' ' | append: 'loop' %}
|
||||
{% endif %}
|
||||
|
||||
{% if include.muted %}
|
||||
{% assign attributes = attributes | append: ' ' | append: 'muted' %}
|
||||
{% endif %}
|
||||
|
||||
<p>
|
||||
<video class="embed-video file" {{ poster }} {{ attributes }}>
|
||||
{% assign extension = video_url | split: '.' | last %}
|
||||
{% assign types = extension | concat: types %}
|
||||
|
||||
{% assign ext_size = extension | size %}
|
||||
{% assign src_size = video_url | size %}
|
||||
{% assign slice_size = src_size | minus: ext_size %}
|
||||
|
||||
{% assign filepath = video_url | slice: 0, slice_size %}
|
||||
|
||||
{% for type in types %}
|
||||
{% assign src = filepath | append: type %}
|
||||
{% assign media_item = site.data.media | find: 'extension', type %}
|
||||
{% assign mime_type = media_item.mime_type | default: type %}
|
||||
<source src="{{ src }}" type="video/{{ mime_type }}">
|
||||
{% endfor %}
|
||||
|
||||
Your browser does not support the video tag. Here is a
|
||||
<a href="{{ video_url | strip }}">link to the video file</a> instead.
|
||||
</video>
|
||||
{% if title %}
|
||||
<em>{{ title }}</em>
|
||||
{% endif %}
|
||||
</p>
|
||||
@@ -1,6 +1,9 @@
|
||||
<iframe class="embed-video youtube lazyload"
|
||||
<iframe
|
||||
class="embed-video"
|
||||
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>
|
||||
allowfullscreen
|
||||
></iframe>
|
||||
|
||||
@@ -8,7 +8,9 @@
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="{{ favicon_path }}/apple-touch-icon.png">
|
||||
<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="manifest" href="{{ favicon_path }}/site.webmanifest">
|
||||
{% if site.pwa.enabled %}
|
||||
<link rel="manifest" href="{{ favicon_path }}/site.webmanifest">
|
||||
{% endif %}
|
||||
<link rel="shortcut icon" href="{{ favicon_path }}/favicon.ico">
|
||||
<meta name="apple-mobile-web-app-title" content="{{ site.title }}">
|
||||
<meta name="application-name" content="{{ site.title }}">
|
||||
|
||||
@@ -1,36 +1,49 @@
|
||||
<!-- The Footer -->
|
||||
|
||||
<footer>
|
||||
<div class="container pl-lg-4 pr-lg-4">
|
||||
<div class="d-flex justify-content-between align-items-center text-muted ml-md-3 mr-md-3">
|
||||
<div class="footer-left">
|
||||
<p class="mb-0">
|
||||
© {{ 'now' | date: "%Y" }}
|
||||
<a href="{{ site.social.links[0] }}">{{ site.social.name }}</a>.
|
||||
{% if site.data.locales[site.lang].copyright.brief %}
|
||||
<span data-toggle="tooltip" data-placement="top"
|
||||
title="{{ site.data.locales[site.lang].copyright.verbose }}">{{ site.data.locales[site.lang].copyright.brief }}</span>
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
<footer
|
||||
aria-label="Site Info"
|
||||
class="
|
||||
d-flex flex-column justify-content-center text-muted
|
||||
flex-lg-row justify-content-lg-between align-items-lg-center pb-lg-3
|
||||
"
|
||||
>
|
||||
<p>
|
||||
{{- '©' }}
|
||||
<time>{{ 'now' | date: '%Y' }}</time>
|
||||
|
||||
<div class="footer-right">
|
||||
<p class="mb-0">
|
||||
{% if site.social.links %}
|
||||
<a href="{{ site.social.links[0] }}">{{ site.social.name }}</a>.
|
||||
{% else %}
|
||||
<em class="fst-normal">{{ site.social.name }}</em>.
|
||||
{% endif %}
|
||||
|
||||
{%- capture _platform -%}
|
||||
<a href="https://jekyllrb.com" target="_blank" rel="noopener">Jekyll</a>
|
||||
{%- endcapture -%}
|
||||
{% if site.data.locales[include.lang].copyright.brief %}
|
||||
<span
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="{{ site.data.locales[include.lang].copyright.verbose }}"
|
||||
>
|
||||
{{- site.data.locales[include.lang].copyright.brief -}}
|
||||
</span>
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
{%- capture _theme -%}
|
||||
<a href="https://github.com/cotes2020/jekyll-theme-chirpy" target="_blank" rel="noopener">Chirpy</a>
|
||||
{%- endcapture -%}
|
||||
<p>
|
||||
{%- capture _platform -%}
|
||||
<a href="https://jekyllrb.com" target="_blank" rel="noopener">Jekyll</a>
|
||||
{%- endcapture -%}
|
||||
|
||||
{{ site.data.locales[site.lang].meta
|
||||
| default: 'Using the :PLATFORM theme :THEME.'
|
||||
| replace: ':PLATFORM', _platform | replace: ':THEME', _theme
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{%- capture _theme -%}
|
||||
<a
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="v{{ theme.version }}"
|
||||
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>
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<!--
|
||||
The GA snippet
|
||||
-->
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script defer src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics.id }}"></script>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function(event) {
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
|
||||
gtag('js', new Date());
|
||||
gtag('config', '{{ site.google_analytics.id }}');
|
||||
});
|
||||
</script>
|
||||
@@ -1,115 +1,128 @@
|
||||
<!--
|
||||
The Head
|
||||
-->
|
||||
|
||||
<head>
|
||||
<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="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"
|
||||
>
|
||||
|
||||
{% if page.layout == 'home' or page.layout == 'post' %}
|
||||
|
||||
{% if site.google_analytics.pv.proxy_endpoint %}
|
||||
<meta name="pv-proxy-endpoint" content="{{ site.google_analytics.pv.proxy_endpoint }}">
|
||||
{% endif %}
|
||||
|
||||
{% if site.google_analytics.pv.cache_path %}
|
||||
<meta name="pv-cache-path" content="{{ site.google_analytics.pv.cache_path | relative_url }}">
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% capture seo_tags %}
|
||||
{%- capture seo_tags -%}
|
||||
{% seo title=false %}
|
||||
{% endcapture %}
|
||||
{%- endcapture -%}
|
||||
|
||||
<!-- Setup Open Graph image -->
|
||||
|
||||
{% if page.image %}
|
||||
{% assign img = page.image.path | default: page.image %}
|
||||
{% assign src = page.image.path | default: page.image %}
|
||||
|
||||
{% unless img contains '://' %}
|
||||
{% assign img_path = page.img_path | append: '/' | append: img | replace: '//', '/' %}
|
||||
{% capture target %}"{{ img | absolute_url }}"{% endcapture %}
|
||||
{% unless src contains '://' %}
|
||||
{%- capture img_url -%}
|
||||
{% include media-url.html src=src subpath=page.media_subpath absolute=true %}
|
||||
{%- endcapture -%}
|
||||
|
||||
{% if site.img_cdn contains '//' %}
|
||||
<!-- it's a cross-origin URL -->
|
||||
{% capture replacement %}"{{ site.img_cdn }}{{ img_path }}"{% endcapture %}
|
||||
{% else %}
|
||||
<!-- it's a local file path -->
|
||||
{%- capture replacement -%}
|
||||
"{{ site.img_cdn | append: '/' | append: img_path | replace: '//', '/' | absolute_url }}"
|
||||
{%- endcapture -%}
|
||||
{% endif %}
|
||||
|
||||
{% assign seo_tags = seo_tags | replace: target, replacement %}
|
||||
{%- capture old_url -%}{{ src | absolute_url }}{%- endcapture -%}
|
||||
{%- capture new_url -%}{{ img_url }}{%- endcapture -%}
|
||||
|
||||
{% assign seo_tags = seo_tags | replace: old_url, new_url %}
|
||||
{% endunless %}
|
||||
|
||||
{% elsif site.social_preview_image %}
|
||||
{%- capture img_url -%}
|
||||
{% include media-url.html src=site.social_preview_image absolute=true %}
|
||||
{%- endcapture -%}
|
||||
|
||||
{%- capture og_image -%}
|
||||
<meta property="og:image" content="{{ img_url }}" />
|
||||
{%- endcapture -%}
|
||||
|
||||
{%- capture twitter_image -%}
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta property="twitter:image" content="{{ img_url }}" />
|
||||
{%- endcapture -%}
|
||||
|
||||
{% assign old_meta_clip = '<meta name="twitter:card" content="summary" />' %}
|
||||
{% assign new_meta_clip = og_image | append: twitter_image %}
|
||||
{% assign seo_tags = seo_tags | replace: old_meta_clip, new_meta_clip %}
|
||||
{% endif %}
|
||||
|
||||
{{ seo_tags }}
|
||||
|
||||
<title>
|
||||
{%- unless page.layout == "home" -%}
|
||||
{{ page.title | append: " | "}}
|
||||
{%- endunless -%}
|
||||
{%- unless page.layout == 'home' -%}
|
||||
{{ page.title | append: ' | ' }}
|
||||
{%- endunless -%}
|
||||
{{ site.title }}
|
||||
</title>
|
||||
|
||||
{% include favicons.html %}
|
||||
{% include_cached favicons.html %}
|
||||
|
||||
{% if site.resources.ignore_env != jekyll.environment and site.resources.self_hosted %}
|
||||
|
||||
<link href="{{ site.data.assets[origin].webfonts | relative_url }}" rel="stylesheet">
|
||||
|
||||
{% else %}
|
||||
|
||||
{% for cdn in site.data.assets[origin].cdns %}
|
||||
<link rel="preconnect" href="{{ cdn.url }}" {{ cdn.args }}>
|
||||
<link rel="dns-prefetch" href="{{ cdn.url }}" {{ cdn.args }}>
|
||||
<!-- Resource Hints -->
|
||||
{% unless site.assets.self_host.enabled %}
|
||||
{% for hint in site.data.origin.cors.resource_hints %}
|
||||
{% for link in hint.links %}
|
||||
<link rel="{{ link.rel }}" href="{{ hint.url }}" {{ link.opts | join: ' ' }}>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
<link rel="stylesheet" href="{{ site.data.assets[origin].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="dns-prefetch" href="https://www.google-analytics.com">
|
||||
|
||||
<link rel="preconnect" href="https://www.googletagmanager.com" crossorigin="anonymous">
|
||||
<link rel="dns-prefetch" href="https://www.googletagmanager.com">
|
||||
|
||||
{% if site.google_analytics.pv.proxy_endpoint %}
|
||||
{% assign proxy_url = site.google_analytics.pv.proxy_endpoint
|
||||
| replace: "https://", "" | split: "/" | first | prepend: "https://" %}
|
||||
<link rel="preconnect" href="{{ proxy_url }}" crossorigin="use-credentials">
|
||||
<link rel="dns-prefetch" href="{{ proxy_url }}">
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endunless %}
|
||||
|
||||
<!-- Bootstrap -->
|
||||
<link rel="stylesheet" href="{{ site.data.assets[origin].bootstrap.css | relative_url}}">
|
||||
{% unless jekyll.environment == 'production' %}
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css">
|
||||
{% endunless %}
|
||||
|
||||
<!-- Font Awesome -->
|
||||
<link rel="stylesheet" href="{{ site.data.assets[origin].fontawesome.css | relative_url }}">
|
||||
<!-- Theme style -->
|
||||
<link rel="stylesheet" href="{{ '/assets/css/:THEME.css' | replace: ':THEME', site.theme | relative_url }}">
|
||||
|
||||
<link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}">
|
||||
<!-- Web Font -->
|
||||
<link rel="stylesheet" href="{{ site.data.origin[type].webfonts | relative_url }}">
|
||||
|
||||
<!-- Font Awesome Icons -->
|
||||
<link rel="stylesheet" href="{{ site.data.origin[type].fontawesome.css | relative_url }}">
|
||||
|
||||
<!-- 3rd-party Dependencies -->
|
||||
|
||||
{% if site.toc and page.toc %}
|
||||
<link rel="stylesheet" href="{{ site.data.assets[origin].bootstrap-toc.css | relative_url }}">
|
||||
<link rel="stylesheet" href="{{ site.data.origin[type].toc.css | relative_url }}">
|
||||
{% endif %}
|
||||
|
||||
{% if page.layout == 'post' or page.layout == 'page' or page.layout == 'home' %}
|
||||
<link rel="stylesheet" href="{{ site.data.origin[type]['lazy-polyfill'].css | relative_url }}">
|
||||
{% endif %}
|
||||
|
||||
{% if page.layout == 'page' or page.layout == 'post' %}
|
||||
<!-- Manific Popup -->
|
||||
<link rel="stylesheet" href="{{ site.data.assets[origin].magnific-popup.css | relative_url }}">
|
||||
<!-- Image Popup -->
|
||||
<link rel="stylesheet" href="{{ site.data.origin[type].glightbox.css | relative_url }}">
|
||||
{% endif %}
|
||||
|
||||
<!-- JavaScript -->
|
||||
|
||||
<script src="{{ site.data.assets[origin].jquery.js | relative_url }}"></script>
|
||||
<!-- Scripts -->
|
||||
|
||||
{% unless site.theme_mode %}
|
||||
{% include mode-toggle.html %}
|
||||
<script src="{{ '/assets/js/dist/theme.min.js' | relative_url }}"></script>
|
||||
{% endunless %}
|
||||
|
||||
{% include js-selector.html lang=lang %}
|
||||
|
||||
{% if jekyll.environment == 'production' %}
|
||||
<!-- PWA -->
|
||||
{% if site.pwa.enabled %}
|
||||
<script
|
||||
defer
|
||||
src="{{ '/app.min.js' | relative_url }}?baseurl={{ site.baseurl | default: '' }}®ister={{ site.pwa.cache.enabled }}"
|
||||
></script>
|
||||
{% endif %}
|
||||
|
||||
<!-- Web Analytics -->
|
||||
{% for analytics in site.analytics %}
|
||||
{% capture str %}{{ analytics }}{% endcapture %}
|
||||
{% assign platform = str | split: '{' | first %}
|
||||
{% if site.analytics[platform].id and site.analytics[platform].id != empty %}
|
||||
{% include analytics/{{ platform }}.html %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% include metadata-hook.html %}
|
||||
</head>
|
||||
|
||||
@@ -1,99 +1,86 @@
|
||||
<!--
|
||||
JS selector for site.
|
||||
-->
|
||||
<!-- JS selector for site. -->
|
||||
|
||||
<!-- commons -->
|
||||
|
||||
{% assign urls = site.data.origin[type].search.js %}
|
||||
|
||||
<!-- layout specified -->
|
||||
|
||||
{% if page.layout == 'post' %}
|
||||
{% if site.google_analytics.pv.proxy_endpoint or site.google_analytics.pv.cache_path %}
|
||||
<!-- pv-report needs countup.js -->
|
||||
<script async src="{{ site.data.assets[origin].countup.js | relative_url }}"></script>
|
||||
<script defer src="{{ '/assets/js/dist/pvreport.min.js' | relative_url }}"></script>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if page.layout == 'post' or page.layout == 'page' or page.layout == 'home' %}
|
||||
{% assign urls = urls | append: ',' | append: site.data.origin[type]['lazy-polyfill'].js %}
|
||||
|
||||
{% if page.layout == 'post' or page.layout == 'page' %}
|
||||
<!-- image lazy-loading & popup & clipboard -->
|
||||
{% assign _urls = site.data.assets[origin].magnific-popup.js
|
||||
| append: ',' | append: site.data.assets[origin].lazysizes.js
|
||||
| append: ',' | append: site.data.assets[origin].clipboard.js
|
||||
%}
|
||||
|
||||
{% include jsdelivr-combine.html urls=_urls %}
|
||||
{% unless page.layout == 'home' %}
|
||||
<!-- image lazy-loading & popup & clipboard -->
|
||||
{% assign urls = urls
|
||||
| append: ','
|
||||
| append: site.data.origin[type].glightbox.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' %}
|
||||
or page.layout == 'post'
|
||||
or page.layout == 'archives'
|
||||
or page.layout == 'category'
|
||||
or page.layout == 'tag'
|
||||
%}
|
||||
{% assign locale = include.lang | split: '-' | first %}
|
||||
|
||||
{% assign locale = site.lang | split: '-' | first %}
|
||||
|
||||
{% assign _urls = site.data.assets[origin].dayjs.js.common
|
||||
| append: ',' | append: site.data.assets[origin].dayjs.js.locale
|
||||
| replace: ':LOCALE', locale
|
||||
| append: ',' | append: site.data.assets[origin].dayjs.js.relativeTime
|
||||
| append: ',' | append: site.data.assets[origin].dayjs.js.localizedFormat
|
||||
{% 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
|
||||
%}
|
||||
|
||||
{% include jsdelivr-combine.html urls=_urls %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% if page.layout == 'home'
|
||||
or page.layout == 'categories'
|
||||
or page.layout == 'post'
|
||||
or page.layout == 'page' %}
|
||||
{% assign type = page.layout %}
|
||||
{% elsif page.layout == 'archives'
|
||||
or page.layout == 'category'
|
||||
or page.layout == 'tag' %}
|
||||
{% assign type = "misc" %}
|
||||
{% else %}
|
||||
{% assign type = "commons" %}
|
||||
{% 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 %}
|
||||
|
||||
{% capture script %}/assets/js/dist/{{ type }}.min.js{% endcapture %}
|
||||
{% 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: {
|
||||
inlineMath: [ /* start/end delimiter pairs for in-line math */
|
||||
['$','$'],
|
||||
['\\(','\\)']
|
||||
],
|
||||
displayMath: [ /* start/end delimiter pairs for display math */
|
||||
['$$', '$$'],
|
||||
['\\[', '\\]']
|
||||
]
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<script src="{{ site.data.assets[origin].polyfill.js | relative_url }}"></script>
|
||||
<script id="MathJax-script" async src="{{ site.data.assets[origin].mathjax.js | relative_url }}">
|
||||
</script>
|
||||
<script async src="{{ '/assets/js/data/mathjax.js' | relative_url }}"></script>
|
||||
<script async src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es6"></script>
|
||||
<script id="MathJax-script" async src="{{ site.data.origin[type].mathjax.js | relative_url }}"></script>
|
||||
{% endif %}
|
||||
|
||||
<!-- commons -->
|
||||
<!-- Pageviews -->
|
||||
{% if page.layout == 'post' %}
|
||||
{% assign provider = site.pageviews.provider %}
|
||||
|
||||
<script src="{{ site.data.assets[origin].bootstrap.js | relative_url }}"></script>
|
||||
|
||||
{% 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>
|
||||
{% if provider and provider != empty %}
|
||||
{% case provider %}
|
||||
{% when 'goatcounter' %}
|
||||
{% if site.analytics[provider].id != empty and site.analytics[provider].id %}
|
||||
{% include pageviews/{{ provider }}.html %}
|
||||
{% endif %}
|
||||
{% endcase %}
|
||||
{% endif %}
|
||||
|
||||
<!-- GA -->
|
||||
{% if site.google_analytics.id != empty and site.google_analytics.id %}
|
||||
{% include google-analytics.html %}
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
{% assign urls = include.urls | split: ',' %}
|
||||
|
||||
{% assign combined_urls = nil %}
|
||||
{% assign combined_urls = null %}
|
||||
|
||||
{% assign domain = 'https://cdn.jsdelivr.net/' %}
|
||||
|
||||
{% for url in urls %}
|
||||
|
||||
{% if url contains domain %}
|
||||
{% assign url_snippet = url | slice: domain.size, url.size %}
|
||||
|
||||
@@ -16,17 +15,12 @@
|
||||
{% endif %}
|
||||
|
||||
{% elsif url contains '//' %}
|
||||
|
||||
<script src="{{ url }}"></script>
|
||||
|
||||
<script defer src="{{ url }}"></script>
|
||||
{% else %}
|
||||
|
||||
<script src="{{ url | relative_url }}"></script>
|
||||
|
||||
<script defer src="{{ url | relative_url }}"></script>
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
{% if combined_urls %}
|
||||
<script src="{{ combined_urls }}"></script>
|
||||
<script defer src="{{ combined_urls }}"></script>
|
||||
{% endif %}
|
||||
|
||||
10
_includes/lang.html
Normal file
10
_includes/lang.html
Normal file
@@ -0,0 +1,10 @@
|
||||
{% comment %}
|
||||
Detect appearance language and return it through variable "lang"
|
||||
{% endcomment %}
|
||||
{% if site.data.locales[page.lang] %}
|
||||
{% assign lang = page.lang %}
|
||||
{% elsif site.data.locales[site.lang] %}
|
||||
{% assign lang = site.lang %}
|
||||
{% else %}
|
||||
{% assign lang = 'en' %}
|
||||
{% endif %}
|
||||
37
_includes/media-url.html
Normal file
37
_includes/media-url.html
Normal file
@@ -0,0 +1,37 @@
|
||||
{%- comment -%}
|
||||
Generate media resource final URL based on `site.cdn`, `page.media_subpath`
|
||||
|
||||
Arguments:
|
||||
src - required, basic media resources path
|
||||
subpath - optional, relative path of media resources
|
||||
absolute - optional, boolean, if true, generate absolute URL
|
||||
|
||||
Return:
|
||||
media resources URL
|
||||
{%- endcomment -%}
|
||||
|
||||
{% assign url = include.src %}
|
||||
|
||||
{%- if url -%}
|
||||
{% unless url contains ':' %}
|
||||
{%- comment -%} Add media resources subpath prefix {%- endcomment -%}
|
||||
{% assign url = include.subpath | default: '' | append: '/' | append: url %}
|
||||
|
||||
{%- comment -%} Prepend CND URL {%- endcomment -%}
|
||||
{% if site.cdn %}
|
||||
{% assign url = site.cdn | append: '/' | append: url %}
|
||||
{% endif %}
|
||||
|
||||
{% assign url = url | replace: '///', '/' | replace: '//', '/' | replace: ':/', '://' %}
|
||||
|
||||
{% unless url contains '://' %}
|
||||
{% if include.absolute %}
|
||||
{% assign url = site.url | append: site.baseurl | append: url %}
|
||||
{% else %}
|
||||
{% assign url = site.baseurl | append: url %}
|
||||
{% endif %}
|
||||
{% endunless %}
|
||||
{% endunless %}
|
||||
{%- endif -%}
|
||||
|
||||
{{- url -}}
|
||||
@@ -1,59 +0,0 @@
|
||||
<!--
|
||||
mermaid-js loader
|
||||
-->
|
||||
|
||||
<script src="{{ site.data.assets[origin].mermaid.js | relative_url }}"></script>
|
||||
|
||||
<script>
|
||||
(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";
|
||||
|
||||
if ($("html[data-mode=dark]").length > 0
|
||||
|| ($("html[data-mode]").length == 0
|
||||
&& window.matchMedia("(prefers-color-scheme: dark)").matches)) {
|
||||
initTheme = "dark";
|
||||
}
|
||||
|
||||
let mermaidConf = {
|
||||
theme: initTheme /* <default|dark|forest|neutral> */
|
||||
};
|
||||
|
||||
/* Create mermaid tag */
|
||||
$("pre").has("code.language-mermaid").each(function () {
|
||||
let svgCode = $(this).children().html();
|
||||
$(this).addClass("unloaded");
|
||||
$(this).after(`<pre class=\"mermaid\">${svgCode}</pre>`);
|
||||
});
|
||||
|
||||
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 -->
|
||||
@@ -1,129 +0,0 @@
|
||||
<!--
|
||||
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() {
|
||||
$('html').attr(ModeToggle.MODE_ATTR, ModeToggle.DARK_MODE);
|
||||
sessionStorage.setItem(ModeToggle.MODE_KEY, ModeToggle.DARK_MODE);
|
||||
}
|
||||
|
||||
setLight() {
|
||||
$('html').attr(ModeToggle.MODE_ATTR, ModeToggle.LIGHT_MODE);
|
||||
sessionStorage.setItem(ModeToggle.MODE_KEY, ModeToggle.LIGHT_MODE);
|
||||
}
|
||||
|
||||
clearMode() {
|
||||
$('html').removeAttr(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
|
||||
}, "*");
|
||||
}
|
||||
|
||||
} /* ModeToggle */
|
||||
|
||||
const toggle = new ModeToggle();
|
||||
|
||||
function flipMode() {
|
||||
if (toggle.hasMode) {
|
||||
if (toggle.isSysDarkPrefer) {
|
||||
if (toggle.isLightMode) {
|
||||
toggle.clearMode();
|
||||
} else {
|
||||
toggle.setLight();
|
||||
}
|
||||
|
||||
} else {
|
||||
if (toggle.isDarkMode) {
|
||||
toggle.clearMode();
|
||||
} else {
|
||||
toggle.setDark();
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
if (toggle.isSysDarkPrefer) {
|
||||
toggle.setLight();
|
||||
} else {
|
||||
toggle.setDark();
|
||||
}
|
||||
}
|
||||
|
||||
toggle.notify();
|
||||
|
||||
} /* flipMode() */
|
||||
|
||||
</script>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user