mirror of
https://github.com/adityatelange/hugo-PaperMod.git
synced 2025-07-16 07:52:35 +02:00
Compare commits
429 Commits
v4.0
...
aa3084c586
Author | SHA1 | Date | |
---|---|---|---|
![]() |
aa3084c586 | ||
![]() |
0989c28a0e | ||
![]() |
fb1c0aeb6f | ||
![]() |
69e5e085ab | ||
![]() |
f8e125c7ee | ||
![]() |
5f624757ae | ||
![]() |
e3ad0aeb70 | ||
![]() |
f51ad49819 | ||
![]() |
ff7443b17f | ||
![]() |
00488d0146 | ||
![]() |
cf62fa3c40 | ||
![]() |
87df659c18 | ||
![]() |
3fb112bc85 | ||
![]() |
102e089bc3 | ||
![]() |
86362ebd72 | ||
![]() |
60984fd136 | ||
![]() |
65c2720ab9 | ||
![]() |
28ec7a407d | ||
![]() |
705ebeb729 | ||
![]() |
6864770ad4 | ||
![]() |
2ecb08a5ba | ||
![]() |
77ea08467d | ||
![]() |
e0fc64c43e | ||
![]() |
b288ede80c | ||
![]() |
65d650fc4d | ||
![]() |
ac444fc0f5 | ||
![]() |
5a99ab779d | ||
![]() |
ba739cfe29 | ||
![]() |
4c50ed8bfa | ||
![]() |
72ab73ffe5 | ||
![]() |
50cafe4b1c | ||
![]() |
7795c90f6f | ||
![]() |
24f3096e33 | ||
![]() |
4bbd551d2b | ||
![]() |
7781c94699 | ||
![]() |
abe49a5ad4 | ||
![]() |
697034ccb7 | ||
![]() |
b4dd5f0b18 | ||
![]() |
efe4cb4516 | ||
![]() |
3a064f5c76 | ||
![]() |
9d4a9e825a | ||
![]() |
eab731707a | ||
![]() |
f7bd1ec07c | ||
![]() |
ac1e041419 | ||
![]() |
69cec7a0ba | ||
![]() |
4230109ff7 | ||
![]() |
1521cc77a2 | ||
![]() |
6f29d35d73 | ||
![]() |
faa73a4ee8 | ||
![]() |
61bf918a0d | ||
![]() |
74d288ff94 | ||
![]() |
750feb9cc9 | ||
![]() |
804a8682f3 | ||
![]() |
c52abfb09b | ||
![]() |
8ac719fb56 | ||
![]() |
4a924cef54 | ||
![]() |
07759b794f | ||
![]() |
bacb763071 | ||
![]() |
3fd9888f43 | ||
![]() |
d6f911cc05 | ||
![]() |
be5badf317 | ||
![]() |
8d1e45a42a | ||
![]() |
a34784c3ed | ||
![]() |
031e2ba57e | ||
![]() |
5d2c036624 | ||
![]() |
1d151a4a02 | ||
![]() |
a636c9eaee | ||
![]() |
2210bf20b3 | ||
![]() |
d67462d0f3 | ||
![]() |
494d6d5dff | ||
![]() |
b43af19b11 | ||
![]() |
e6b697f365 | ||
![]() |
25e5b4d298 | ||
![]() |
8efba34fa9 | ||
![]() |
35643680d2 | ||
![]() |
a35a33c2e1 | ||
![]() |
4d42965bb5 | ||
![]() |
f5320cd336 | ||
![]() |
7250994280 | ||
![]() |
2347bb9c11 | ||
![]() |
33085a8b23 | ||
![]() |
db75cdc9b8 | ||
![]() |
d47a7d67fa | ||
![]() |
ec01777341 | ||
![]() |
2b5f00640d | ||
![]() |
4152dc75e8 | ||
![]() |
d3d90be8a4 | ||
![]() |
bf0883adb5 | ||
![]() |
5ca2d29537 | ||
![]() |
4bd96d6271 | ||
![]() |
3b83cdc4b5 | ||
![]() |
3a0a4811cb | ||
![]() |
ddfea82cc7 | ||
![]() |
1f0f294c85 | ||
![]() |
275d0e9be7 | ||
![]() |
2761a95697 | ||
![]() |
0cf3f7ae00 | ||
![]() |
178b18e4e7 | ||
![]() |
2009151773 | ||
![]() |
11a52b70cd | ||
![]() |
b906338dc8 | ||
![]() |
198a4d74ae | ||
![]() |
fd077de0f4 | ||
![]() |
84f9adfa5f | ||
![]() |
eba92edd83 | ||
![]() |
6f0c88d2b8 | ||
![]() |
7c4aa74069 | ||
![]() |
3e544a3ebd | ||
![]() |
42fa989316 | ||
![]() |
30a2cc7a65 | ||
![]() |
0f37c0615e | ||
![]() |
77ffb308c3 | ||
![]() |
87ffee9fcf | ||
![]() |
bb6d4647bd | ||
![]() |
450e8867a6 | ||
![]() |
575b0b0e38 | ||
![]() |
c0b7ea5f4b | ||
![]() |
621c9f60fb | ||
![]() |
29fefb4890 | ||
![]() |
179fea63a3 | ||
![]() |
4824f4623d | ||
![]() |
e3c30b4e41 | ||
![]() |
5032b2c4f1 | ||
![]() |
d5b780720d | ||
![]() |
6ebeb20bdb | ||
![]() |
5f280c5df2 | ||
![]() |
1ead1f76e2 | ||
![]() |
36b4cb35a4 | ||
![]() |
9af128a8a6 | ||
![]() |
7683ef1825 | ||
![]() |
0262b5eba0 | ||
![]() |
a94674e6c9 | ||
![]() |
c692695754 | ||
![]() |
181a8c38f3 | ||
![]() |
0ed246d47d | ||
![]() |
c2d047f376 | ||
![]() |
43ac108b03 | ||
![]() |
a4b20f0f4d | ||
![]() |
e1a46046bc | ||
![]() |
57dd5404d3 | ||
![]() |
0c71711332 | ||
![]() |
2b0a52ab25 | ||
![]() |
6aced45a65 | ||
![]() |
2e36f439a4 | ||
![]() |
282ad5b6f5 | ||
![]() |
7b9c836416 | ||
![]() |
e59a43c00d | ||
![]() |
63e929cdad | ||
![]() |
cb9be55c78 | ||
![]() |
b7dbb0ea0e | ||
![]() |
cf5b2d59b2 | ||
![]() |
cd65d698fc | ||
![]() |
4ddcae3120 | ||
![]() |
1478c0bc17 | ||
![]() |
d3084bee79 | ||
![]() |
38af7c47a6 | ||
![]() |
44f5970db2 | ||
![]() |
64c40fe6bd | ||
![]() |
a2e4258f3f | ||
![]() |
1d2ecfedac | ||
![]() |
8671af6e0c | ||
![]() |
e888673bb2 | ||
![]() |
8645e275ad | ||
![]() |
4ef79036c5 | ||
![]() |
c6e9568c12 | ||
![]() |
c0e7be6534 | ||
![]() |
39910dc27f | ||
![]() |
a55b9517dc | ||
![]() |
fc8c8666cf | ||
![]() |
c5d31c778b | ||
![]() |
b297199309 | ||
![]() |
09921bb542 | ||
![]() |
363756ffee | ||
![]() |
1de55c4266 | ||
![]() |
566989abf4 | ||
![]() |
2bb7687a34 | ||
![]() |
f1296bc29d | ||
![]() |
575cc0ca8c | ||
![]() |
975972e041 | ||
![]() |
496b846597 | ||
![]() |
375155061d | ||
![]() |
6a3887f4e0 | ||
![]() |
e83d840126 | ||
![]() |
16293e9578 | ||
![]() |
5a5b0840ed | ||
![]() |
42c3c937a1 | ||
![]() |
80928d9f23 | ||
![]() |
2a1390bef7 | ||
![]() |
53fd4bb857 | ||
![]() |
26315a9e4c | ||
![]() |
912eddde0a | ||
![]() |
15b984bd21 | ||
![]() |
43c810c3e2 | ||
![]() |
06f97458a7 | ||
![]() |
81ddc76efb | ||
![]() |
c9f7c54ae6 | ||
![]() |
530044033e | ||
![]() |
d52bced735 | ||
![]() |
b0ab8ea495 | ||
![]() |
37f359ee21 | ||
![]() |
54a3c60735 | ||
![]() |
587ab16725 | ||
![]() |
0fe857539b | ||
![]() |
72abf7440a | ||
![]() |
c59193fc48 | ||
![]() |
4e2558d93c | ||
![]() |
dbaa17c69a | ||
![]() |
699fc91f1f | ||
![]() |
c876864422 | ||
![]() |
386d845782 | ||
![]() |
0c743b767b | ||
![]() |
3bcafa0be9 | ||
![]() |
76ea33c89c | ||
![]() |
b8c7df1ef9 | ||
![]() |
2c6ae04a02 | ||
![]() |
5f1d92493b | ||
![]() |
d81b87938b | ||
![]() |
1033afcac2 | ||
![]() |
60cbb311b7 | ||
![]() |
170e2c5b3f | ||
![]() |
baa0a71478 | ||
![]() |
4873bd2767 | ||
![]() |
10141e278e | ||
![]() |
38891b9062 | ||
![]() |
a57cb762c3 | ||
![]() |
b7771de64c | ||
![]() |
56af5749b5 | ||
![]() |
7c930ee4ea | ||
![]() |
8c2f997ab3 | ||
![]() |
4e9b04784b | ||
![]() |
8021be2ddb | ||
![]() |
97b373d9ee | ||
![]() |
c437ee1b62 | ||
![]() |
8456ad83ae | ||
![]() |
d76bc91ed0 | ||
![]() |
42a23c96e2 | ||
![]() |
7072a79f71 | ||
![]() |
9a20b2e54c | ||
![]() |
5bc9c5a73b | ||
![]() |
2aad433ae5 | ||
![]() |
7ea01a0ab2 | ||
![]() |
3442d5cb52 | ||
![]() |
b4393b3d6e | ||
![]() |
162d80071f | ||
![]() |
bc99ae777d | ||
![]() |
0eac254d58 | ||
![]() |
ee81fe77ad | ||
![]() |
caa2240f12 | ||
![]() |
6ed6b7aac8 | ||
![]() |
f70debb55a | ||
![]() |
da1de88886 | ||
![]() |
e5ba0272de | ||
![]() |
4970e61c7b | ||
![]() |
dcbe6277bb | ||
![]() |
1214963760 | ||
![]() |
7d67d64bb7 | ||
![]() |
1458d8de67 | ||
![]() |
e44cef81c6 | ||
![]() |
0c4ec163a6 | ||
![]() |
a3ad238f78 | ||
![]() |
81fcd8f9d4 | ||
![]() |
747e2bb760 | ||
![]() |
191c16b0c8 | ||
![]() |
129b5bd063 | ||
![]() |
664299cc7c | ||
![]() |
00ddeb421a | ||
![]() |
09accb9566 | ||
![]() |
f9b796d168 | ||
![]() |
fc87fc3a29 | ||
![]() |
ae4bf201d1 | ||
![]() |
5c26fda276 | ||
![]() |
d35056c664 | ||
![]() |
726894ba29 | ||
![]() |
6b55df1089 | ||
![]() |
b868da3d3c | ||
![]() |
84c30474ca | ||
![]() |
df544469c9 | ||
![]() |
87fbe01124 | ||
![]() |
537ec0038f | ||
![]() |
d2c4270bb2 | ||
![]() |
da69dda48c | ||
![]() |
378b81cb36 | ||
![]() |
63ec83fda4 | ||
![]() |
573e673efa | ||
![]() |
0e3f44ff17 | ||
![]() |
167ca42ce3 | ||
![]() |
a86abf5994 | ||
![]() |
24e5d82ecb | ||
![]() |
20b91ad2aa | ||
![]() |
0c64647138 | ||
![]() |
8357d2b1ff | ||
![]() |
43e1648b3e | ||
![]() |
2f409920e1 | ||
![]() |
3a8df7888e | ||
![]() |
10745dd537 | ||
![]() |
fb0393fa12 | ||
![]() |
ccbe179033 | ||
![]() |
4e6eebe318 | ||
![]() |
87fd91ed6a | ||
![]() |
d136063229 | ||
![]() |
98c17559e9 | ||
![]() |
c3634e6ccd | ||
![]() |
a015ec2efc | ||
![]() |
0430a98e74 | ||
![]() |
c51e027390 | ||
![]() |
791999df38 | ||
![]() |
8c313af0f3 | ||
![]() |
1627fe7d7a | ||
![]() |
bbb35cb6d5 | ||
![]() |
87e9a27630 | ||
![]() |
6c64ad0695 | ||
![]() |
17c4da86b5 | ||
![]() |
f1bc3471a6 | ||
![]() |
c255d148d8 | ||
![]() |
ba48765e2c | ||
![]() |
b756217126 | ||
![]() |
bb7b6f0076 | ||
![]() |
9d7576bd04 | ||
![]() |
427053290d | ||
![]() |
0f4dc88c63 | ||
![]() |
23610de4a0 | ||
![]() |
55fe10e9d3 | ||
![]() |
4878383dd4 | ||
![]() |
196b82645e | ||
![]() |
dae7f2b8a1 | ||
![]() |
635054cd07 | ||
![]() |
a60ececdfb | ||
![]() |
6d6fe2c389 | ||
![]() |
fe94d7f347 | ||
![]() |
54744ba694 | ||
![]() |
0f0e027def | ||
![]() |
fb4988cfb6 | ||
![]() |
0c0c6847e5 | ||
![]() |
2fea5a1062 | ||
![]() |
009d3a2e1d | ||
![]() |
e503367a1a | ||
![]() |
b6af9eddee | ||
![]() |
ddf004b709 | ||
![]() |
a2b3be0169 | ||
![]() |
772f571161 | ||
![]() |
0ca760a9b3 | ||
![]() |
abfdb54c92 | ||
![]() |
f3cac6c09e | ||
![]() |
d3813138d7 | ||
![]() |
cb778d8db4 | ||
![]() |
80ad6ec2a3 | ||
![]() |
306aa9fbfc | ||
![]() |
4b24a94a6a | ||
![]() |
b523192b51 | ||
![]() |
e01b52193a | ||
![]() |
706b5a1c94 | ||
![]() |
ad81825345 | ||
![]() |
24f71d7f15 | ||
![]() |
c353447d8e | ||
![]() |
a982a29e24 | ||
![]() |
766f07fe79 | ||
![]() |
6c0726b418 | ||
![]() |
baa9c39ec9 | ||
![]() |
f8b16702fa | ||
![]() |
e76154d418 | ||
![]() |
e0ed556818 | ||
![]() |
3492e151e5 | ||
![]() |
5e05ed6543 | ||
![]() |
14ebcdecf3 | ||
![]() |
45c4b48e53 | ||
![]() |
b71baa147a | ||
![]() |
e53bfe514a | ||
![]() |
cc99dba7bd | ||
![]() |
33c85c5d56 | ||
![]() |
17d48ce9bb | ||
![]() |
a21094f4a0 | ||
![]() |
a57641a24b | ||
![]() |
6f8edf1ffa | ||
![]() |
034da04180 | ||
![]() |
1a8e14a848 | ||
![]() |
143eb18b75 | ||
![]() |
37afb5f13e | ||
![]() |
43ddff0fde | ||
![]() |
65f84d6f19 | ||
![]() |
e03348c041 | ||
![]() |
7170eda172 | ||
![]() |
084498558c | ||
![]() |
c32e036053 | ||
![]() |
e8076c8f61 | ||
![]() |
f8781e2cc8 | ||
![]() |
ebbeca4ab4 | ||
![]() |
c7b388346b | ||
![]() |
0c28a4ad5a | ||
![]() |
6c79b99de8 | ||
![]() |
f64c44c8d2 | ||
![]() |
624b1d0afb | ||
![]() |
346ae95069 | ||
![]() |
714859b682 | ||
![]() |
2b8e7c0b22 | ||
![]() |
75855b2758 | ||
![]() |
a7e0b2f5a9 | ||
![]() |
cc4fb70336 | ||
![]() |
84e208f98d | ||
![]() |
778ee39137 | ||
![]() |
3c3888f7ad | ||
![]() |
2f06f5e4fa | ||
![]() |
b284ba5799 | ||
![]() |
91a9e1b9bb | ||
![]() |
9257321547 | ||
![]() |
a414d16b86 | ||
![]() |
f1329fe53d | ||
![]() |
698616d9fb | ||
![]() |
e1ea90aa60 | ||
![]() |
cadca8a68a | ||
![]() |
9691c41983 | ||
![]() |
9e99493e69 | ||
![]() |
789b1f824c | ||
![]() |
9c50449ce8 | ||
![]() |
cd03c69e40 | ||
![]() |
471e4caba2 | ||
![]() |
55d9dc26cd | ||
![]() |
f7dbf75d5b | ||
![]() |
bc4d4153dc | ||
![]() |
75375a4337 | ||
![]() |
b6842db0a5 | ||
![]() |
24afe952b2 | ||
![]() |
be1ea53910 | ||
![]() |
fc28fa7493 | ||
![]() |
2c67ae9877 | ||
![]() |
042f4e9254 | ||
![]() |
a8316f0073 | ||
![]() |
3167acd32a | ||
![]() |
f5c5546249 | ||
![]() |
565c36fdb0 |
12
.github/FUNDING.yml
vendored
12
.github/FUNDING.yml
vendored
@@ -1,12 +0,0 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
patreon: # Replace with a single Patreon username
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: adityatelange
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
custom: #
|
50
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
50
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: "[BUG]"
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
|
||||
## READ BEFORE OPENING ISSUES
|
||||
|
||||
Please fill the template below
|
||||
- **DO NOT** ask for instructions.
|
||||
- Use Discussions section if you need help
|
||||
- See project wiki https://github.com/adityatelange/hugo-PaperMod/wiki
|
||||
- Read FAQs section https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs
|
||||
- Search for previous issues/ pull requests
|
||||
|
||||
-->
|
||||
|
||||
**Describe the bug**
|
||||
<!-- A clear and concise description of what the bug is. -->
|
||||
|
||||
- Device/Os: [e.g. Android 10]
|
||||
- Type: [e.g. Desktop/Mobile]
|
||||
- Browser and version [e.g. Chrome 86.0]:
|
||||
- Hugo Version [ >=0.112.4 expected]:
|
||||
- Theme Version [e.g. v4.0, master, or commit-id ]:
|
||||
|
||||
**Steps to reproduce the behavior:**
|
||||
<!--
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
-->
|
||||
|
||||
**Expected behavior**:
|
||||
<!-- A clear and concise description of what you expected to happen. -->
|
||||
|
||||
**Repo/Source where this issue can be reproduced**:
|
||||
<!-- Please link source code of website where the said issue can be reproduced -->
|
||||
|
||||
**Screenshots**
|
||||
<!-- If applicable, add screenshots to help explain your problem. -->
|
||||
|
||||
**Additional context**
|
||||
<!--Add any other context about the problem here. -->
|
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: PaperMod Discussions
|
||||
url: https://github.com/adityatelange/hugo-PaperMod/discussions
|
||||
about: Please ask and answer questions/doubts here, do not open an issue for questions.
|
7
.github/ISSUE_TEMPLATE/new-blank-issue.md
vendored
Normal file
7
.github/ISSUE_TEMPLATE/new-blank-issue.md
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
name: New Blank Issue
|
||||
about: Anything other than bug report
|
||||
title: ""
|
||||
labels: ""
|
||||
assignees: ""
|
||||
---
|
44
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
44
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
<!--
|
||||
|
||||
## READ BEFORE OPENING A PR
|
||||
|
||||
Thank you for contributing to hugo-PaperMod!
|
||||
Please fill out the following questions to make it easier for us to review your
|
||||
changes. You do not need to check all the boxes below.
|
||||
|
||||
**NOTE**: PaperMod does not have any external dependencies fetched from 3rd party
|
||||
CDN servers. However we do have custom Head/Footer extender templates which you can use
|
||||
to add those to your website.
|
||||
https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#custom-head--footer
|
||||
|
||||
-->
|
||||
|
||||
|
||||
**What does this PR change? What problem does it solve?**
|
||||
|
||||
<!--
|
||||
Describe the changes and their purpose here, as detailed as and if needed.
|
||||
|
||||
Please do not add 2 unrelated changes in a single PR as it is difficult to track/revert those in future.
|
||||
-->
|
||||
|
||||
|
||||
**Was the change discussed in an issue or in the Discussions before?**
|
||||
|
||||
<!--
|
||||
Link issues and relevant Discussions posts here.
|
||||
|
||||
If this PR resolves an issue on GitHub, use "Closes #1234" so that the issue
|
||||
is closed automatically when this PR is merged.
|
||||
-->
|
||||
|
||||
|
||||
## PR Checklist
|
||||
|
||||
- [ ] This change adds/updates translations and I have used the [template present here](https://github.com/adityatelange/hugo-PaperMod/wiki/Translations#want-to-add-your-language-).
|
||||
- [ ] I have enabled [maintainer edits for this PR](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork).
|
||||
- [ ] I have verified that the code works as described/as intended.
|
||||
- [ ] This change adds a Social Icon which has a permissive license to use it.
|
||||
- [ ] This change **does not** include any CDN resources/links.
|
||||
- [ ] This change **does not** include any unrelated scripts such as bash and python scripts.
|
||||
- [ ] This change updates the overridden internal templates from HUGO's repository.
|
82
.github/workflows/gh-pages.yml
vendored
82
.github/workflows/gh-pages.yml
vendored
@@ -1,42 +1,80 @@
|
||||
name: Build GH-Pages
|
||||
name: Deploy Hugo PaperMod Demo to Pages
|
||||
|
||||
on:
|
||||
push:
|
||||
paths-ignore:
|
||||
- 'images/**'
|
||||
- 'LICENSE'
|
||||
- 'README.md'
|
||||
- "images/**"
|
||||
- "LICENSE"
|
||||
- "README.md"
|
||||
branches:
|
||||
- master
|
||||
- exampleSite
|
||||
workflow_dispatch:
|
||||
# manual run
|
||||
inputs:
|
||||
hugoVersion:
|
||||
description: "Hugo Version"
|
||||
required: false
|
||||
default: "0.112.4"
|
||||
|
||||
# Allow one concurrent deployment
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: true
|
||||
|
||||
# Default to bash
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
# Build job
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
HUGO_VERSION: "0.112.4"
|
||||
steps:
|
||||
- name: Git checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Check version
|
||||
if: ${{ github.event.inputs.hugoVersion }}
|
||||
run: export HUGO_VERSION="${{ github.event.inputs.hugoVersion }}"
|
||||
- name: Install Hugo CLI
|
||||
run: |
|
||||
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_linux-amd64.deb \
|
||||
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: exampleSite
|
||||
|
||||
- name: Setup Pages
|
||||
id: pages
|
||||
uses: actions/configure-pages@v3
|
||||
- name: Get Theme
|
||||
run: git submodule update --init --recursive
|
||||
|
||||
- name: Update theme to Latest commit
|
||||
run: git submodule update --remote --merge
|
||||
|
||||
- name: Setup hugo
|
||||
uses: peaceiris/actions-hugo@v2
|
||||
- name: Build with Hugo
|
||||
run: |
|
||||
hugo \
|
||||
--buildDrafts --gc --verbose \
|
||||
--baseURL ${{ steps.pages.outputs.base_url }}
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v2
|
||||
with:
|
||||
hugo-version: 'latest'
|
||||
|
||||
- name: Build
|
||||
run: hugo --buildDrafts --gc --verbose --minify
|
||||
|
||||
- name: Deploy
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.TOKEN }}
|
||||
publish_dir: ./public
|
||||
path: ./public
|
||||
# Deployment job
|
||||
deploy:
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v2
|
||||
|
2
LICENSE
2
LICENSE
@@ -1,7 +1,7 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020 nanxiaobei and adityatelange
|
||||
Copyright (c) 2021 adityatelange
|
||||
Copyright (c) 2021-2023 adityatelange
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
68
README.md
68
README.md
@@ -1,25 +1,27 @@
|
||||
# PaperMod | [Demo](https://adityatelange.github.io/hugo-PaperMod/)
|
||||
<h1 align=center>Hugo PaperMod | <a href="https://adityatelange.github.io/hugo-PaperMod/" rel="nofollow">Demo</a></h1>
|
||||
|
||||
☄️ Fast | ☁️ Fluent | 🌙 Smooth | 📱 Responsive
|
||||
<h4 align=center>☄️ Fast | ☁️ Fluent | 🌙 Smooth | 📱 Responsive</h4>
|
||||
<br>
|
||||
|
||||
Hugo PaperMod is a theme based on [hugo-paper](https://github.com/nanxiaobei/hugo-paper).
|
||||
The goal of this project is add more Features and customization to the og theme.
|
||||
> Hugo PaperMod is a theme based on [hugo-paper](https://github.com/nanxiaobei/hugo-paper/tree/4330c8b12aa48bfdecbcad6ad66145f679a430b3).<br>
|
||||
> The goal of this project is to add more features and customization to the og theme.
|
||||
|
||||
The [demo site](https://adityatelange.github.io/hugo-PaperMod/) includes a lot of documentation about Installation, Features with few more stuff. Make sure you visit it, to get the awesome hands-on experience and get known about the features ...
|
||||
**Documentation** can be found here: [**📚 Wiki**](https://github.com/adityatelange/hugo-PaperMod/wiki)
|
||||
|
||||
ExampleSite can be found here: [exampleSite](https://github.com/adityatelange/hugo-PaperMod/tree/exampleSite). Demo is built up with exampleSite as source.
|
||||
**ExampleSite** can be found here: [**exampleSite**](https://github.com/adityatelange/hugo-PaperMod/tree/exampleSite). Demo is built up with [exampleSite](https://github.com/adityatelange/hugo-PaperMod/tree/exampleSite) as source.
|
||||
|
||||

|
||||

|
||||
[](https://themes.gohugo.io/hugo-papermod/)
|
||||
[](https://sonarcloud.io/dashboard?id=adityatelange_hugo-PaperMod)
|
||||
[](https://themes.gohugo.io/themes/hugo-papermod/)
|
||||
[](https://github.com/gohugoio/hugo/releases/tag/v0.112.4)
|
||||
[](https://discord.gg/ahpmTvhVmp)
|
||||
[](https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE)
|
||||

|
||||
[](https://x.com/intent/tweet/?text=Checkout%20Hugo%20PaperMod%20%E2%9C%A8%0AA%20fast,%20clean,%20responsive%20Hugo%20theme.&url=https://github.com/adityatelange/hugo-PaperMod&hashtags=Hugo,PaperMod)
|
||||
|
||||
|
||||
---
|
||||
|
||||
<p align="center">
|
||||
<kbd><img width=600px src="https://raw.githubusercontent.com/adityatelange/hugo-PaperMod/exampleSite/content/posts/papermod/papermod-features/images/homeinfo.webp" alt="HomeInfo" /></kbd>
|
||||
<kbd><img width=153px src="https://i.ibb.co/LNgGcrt/mobileview.png" alt="HomeInfo" /></kbd>
|
||||
<kbd><img src="https://user-images.githubusercontent.com/21258296/114303440-bfc0ae80-9aeb-11eb-8cfa-48a4bb385a6d.png" alt="Mockup image" title="Mockup"/></kbd>
|
||||
</p>
|
||||
|
||||
---
|
||||
@@ -34,18 +36,21 @@ ExampleSite can be found here: [exampleSite](https://github.com/adityatelange/hu
|
||||
- Table of Content Generation (newer implementation).
|
||||
- Archive of posts.
|
||||
- Social Icons (home-info and profile-mode)
|
||||
- Social-Media Share buttons on post.
|
||||
- Social-Media Share buttons on posts.
|
||||
- Menu location indicator.
|
||||
- Multilingual support. (with language selector)
|
||||
- Taxonomies
|
||||
- Cover image for each post (with Responsive image support).
|
||||
- Light/Dark theme (automatic theme switch a/c to browser theme and theme-switch button).
|
||||
- SEO Friendly.
|
||||
- Muliple Author support.
|
||||
- Multiple Author support.
|
||||
- Search Page with Fuse.js
|
||||
- No webpack, nodejs and other depedencies required to edit the theme.
|
||||
- Other Posts suggestion below a post
|
||||
- Breadcrumb Navigation
|
||||
- Code Block Copy buttons
|
||||
- No webpack, nodejs and other dependencies are required to edit the theme.
|
||||
|
||||
Read this post For More Details => **[PaperMod - Features](https://github.com/adityatelange/hugo-PaperMod/wiki/Features)**
|
||||
Read Wiki For More Details => **[PaperMod - Features](https://github.com/adityatelange/hugo-PaperMod/wiki/Features)**
|
||||
|
||||
---
|
||||
|
||||
@@ -55,25 +60,33 @@ Read Wiki For More Details => **[PaperMod - Installation](https://github.com/adi
|
||||
|
||||
---
|
||||
|
||||
## Social-Icons/Share-Icons 🖼️
|
||||
|
||||
Read Wiki For More Details => **[PaperMod-Icons](https://github.com/adityatelange/hugo-PaperMod/wiki/Icons)**
|
||||
|
||||
---
|
||||
|
||||
## FAQs / How To's Guide 🙋
|
||||
|
||||
Read Wiki For More Details => **[PaperMod-FAQs](https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs)**
|
||||
|
||||
---
|
||||
|
||||
## Release Changelog
|
||||
## Social-Icons/Share-Icons 🖼️
|
||||
|
||||
Read Wiki For More Details => **[PaperMod-Icons](https://github.com/adityatelange/hugo-PaperMod/wiki/Icons)**
|
||||
|
||||
---
|
||||
|
||||
## Release Changelog 📃
|
||||
|
||||
Release ChangeLog has info about stuff added: **[Releases](https://github.com/adityatelange/hugo-PaperMod/releases)**
|
||||
|
||||
---
|
||||
|
||||
## [LightHouse Report (100% ?)](https://lighthouse-dot-webdotdevsite.appspot.com//lh/html?url=https%3A%2F%2Fadityatelange.github.io%2Fhugo-PaperMod%2F)
|
||||
## [Pagespeed Insights (100% ?)](https://pagespeed.web.dev/report?url=https://adityatelange.github.io/hugo-PaperMod/) 👀
|
||||
|
||||
---
|
||||
|
||||
## Support 🫶
|
||||
|
||||
- Star 🌟 this repository.
|
||||
- Help spread the word about PaperMod by sharing it on social media and recommending it to your friends. 🗣️
|
||||
- You can also sponsor 🏅 on [Github Sponsors](https://github.com/sponsors/adityatelange) / [Ko-Fi](https://ko-fi.com/adityatelange).
|
||||
|
||||
---
|
||||
|
||||
@@ -82,4 +95,11 @@ Release ChangeLog has info about stuff added: **[Releases](https://github.com/ad
|
||||
- [**Highlight.js**](https://github.com/highlightjs/highlight.js)
|
||||
- [**Fuse.js**](https://github.com/krisk/fuse)
|
||||
- [**Feather Icons**](https://github.com/feathericons/feather)
|
||||
- [**Simple Icons**](https://github.com/simple-icons/simple-icons)
|
||||
- **All Contributors and Supporters**
|
||||
|
||||
---
|
||||
|
||||
## Stargazers over time 📈
|
||||
|
||||
<kbd>[](https://starchart.cc/adityatelange/hugo-PaperMod)</kbd>
|
||||
|
@@ -7,5 +7,5 @@
|
||||
justify-content: center;
|
||||
height: 80%;
|
||||
font-size: 160px;
|
||||
font-weight: 700
|
||||
font-weight: 700;
|
||||
}
|
@@ -1,44 +1,44 @@
|
||||
.archive-posts {
|
||||
width: 100%;
|
||||
font-size: 16px
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.archive-year {
|
||||
margin-top: 40px
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.archive-year:not(:last-of-type) {
|
||||
border-bottom: 2px solid var(--border)
|
||||
border-bottom: 2px solid var(--border);
|
||||
}
|
||||
|
||||
.archive-month {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
padding: 10px 0
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
.archive-month-header {
|
||||
margin: 25px 0;
|
||||
width: 200px
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.archive-month:not(:last-of-type) {
|
||||
border-bottom: 1px solid var(--border)
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.archive-entry {
|
||||
position: relative;
|
||||
padding: 5px;
|
||||
margin: 10px 0
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.archive-entry-title {
|
||||
margin: 5px 0;
|
||||
font-weight: 400
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.archive-count,
|
||||
.archive-meta {
|
||||
color: var(--secondary);
|
||||
font-size: 14px
|
||||
font-size: 14px;
|
||||
}
|
@@ -1,29 +1,33 @@
|
||||
.footer,
|
||||
.top-link {
|
||||
font-size: 12px;
|
||||
color: var(--secondary)
|
||||
color: var(--secondary);
|
||||
}
|
||||
|
||||
.footer {
|
||||
max-width: calc(var(--main-width) + var(--gap) * 2);
|
||||
margin: auto;
|
||||
padding: calc((var(--footer-height) - (var(--gap)) - 10px) / 2) var(--gap);
|
||||
padding: calc((var(--footer-height) - var(--gap)) / 2) var(--gap);
|
||||
text-align: center;
|
||||
line-height: 24px
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.footer span {
|
||||
margin-inline-start: 1px;
|
||||
margin-inline-end: 1px
|
||||
margin-inline-end: 1px;
|
||||
}
|
||||
|
||||
.footer span:last-child {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: inherit;
|
||||
border-bottom: 1px solid var(--secondary)
|
||||
border-bottom: 1px solid var(--secondary);
|
||||
}
|
||||
|
||||
.footer a:hover {
|
||||
border-bottom: 1px solid var(--primary)
|
||||
border-bottom: 1px solid var(--primary);
|
||||
}
|
||||
|
||||
.top-link {
|
||||
@@ -37,7 +41,7 @@
|
||||
height: 42px;
|
||||
padding: 12px;
|
||||
border-radius: 64px;
|
||||
transition: visibility .5s, opacity .8s linear
|
||||
transition: visibility 0.5s, opacity 0.8s linear;
|
||||
}
|
||||
|
||||
.top-link,
|
||||
@@ -47,9 +51,10 @@
|
||||
|
||||
.footer a:hover,
|
||||
.top-link:hover {
|
||||
color: var(--primary)
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
.top-link:focus {
|
||||
outline: 0
|
||||
.top-link:focus,
|
||||
#theme-toggle:focus {
|
||||
outline: 0;
|
||||
}
|
@@ -5,85 +5,89 @@
|
||||
max-width: calc(var(--nav-width) + var(--gap) * 2);
|
||||
margin-inline-start: auto;
|
||||
margin-inline-end: auto;
|
||||
line-height: var(--header-height)
|
||||
line-height: var(--header-height);
|
||||
}
|
||||
|
||||
.nav a {
|
||||
display: block
|
||||
display: block;
|
||||
}
|
||||
|
||||
.logo,
|
||||
.menu {
|
||||
#menu {
|
||||
display: flex;
|
||||
margin: auto var(--gap);
|
||||
}
|
||||
|
||||
.logo {
|
||||
flex-wrap: inherit
|
||||
flex-wrap: inherit;
|
||||
}
|
||||
|
||||
.logo a {
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
margin-inline-end: 10px
|
||||
}
|
||||
|
||||
.logo a img {
|
||||
.logo a img, .logo a svg {
|
||||
display: inline;
|
||||
vertical-align: middle;
|
||||
pointer-events: none;
|
||||
transform: translate(0, -10%);
|
||||
border-radius: 6px;
|
||||
margin-inline-end: 8px
|
||||
margin-inline-end: 8px;
|
||||
}
|
||||
|
||||
.theme-toggle svg {
|
||||
height: 18px;
|
||||
user-select: none;
|
||||
cursor: pointer
|
||||
button#theme-toggle {
|
||||
font-size: 26px;
|
||||
margin: auto 4px;
|
||||
}
|
||||
|
||||
body.dark #moon {
|
||||
vertical-align: middle;
|
||||
display: none
|
||||
display: none;
|
||||
}
|
||||
|
||||
body:not(.dark) #sun {
|
||||
display: none
|
||||
display: none;
|
||||
}
|
||||
|
||||
.menu {
|
||||
#menu {
|
||||
list-style: none;
|
||||
word-break: keep-all;
|
||||
overflow-x: auto;
|
||||
white-space: nowrap
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.menu li+li {
|
||||
margin-inline-start: var(--gap)
|
||||
#menu li + li {
|
||||
margin-inline-start: var(--gap);
|
||||
}
|
||||
|
||||
.menu a {
|
||||
font-size: 16px
|
||||
#menu a {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.menu .active {
|
||||
#menu .active {
|
||||
font-weight: 500;
|
||||
border-bottom: 2px solid currentColor
|
||||
border-bottom: 2px solid currentColor;
|
||||
}
|
||||
|
||||
.lang-switch li,
|
||||
.lang-switch ul,
|
||||
.logo-switches {
|
||||
display: inline-flex
|
||||
display: inline-flex;
|
||||
margin: auto 4px;
|
||||
}
|
||||
|
||||
.lang-switch {
|
||||
display: flex;
|
||||
flex-wrap: inherit;
|
||||
}
|
||||
|
||||
.lang-switch a {
|
||||
margin: auto 3px;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
margin: 0 8px
|
||||
}
|
||||
|
||||
.logo-switches {
|
||||
flex-wrap: inherit
|
||||
flex-wrap: inherit;
|
||||
}
|
66
assets/css/common/main.css
Normal file
66
assets/css/common/main.css
Normal file
@@ -0,0 +1,66 @@
|
||||
.main {
|
||||
position: relative;
|
||||
min-height: calc(100vh - var(--header-height) - var(--footer-height));
|
||||
max-width: calc(var(--main-width) + var(--gap) * 2);
|
||||
margin: auto;
|
||||
padding: var(--gap);
|
||||
}
|
||||
|
||||
.page-header h1 {
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.pagination a {
|
||||
color: var(--theme);
|
||||
font-size: 13px;
|
||||
line-height: 36px;
|
||||
background: var(--primary);
|
||||
border-radius: calc(36px / 2);
|
||||
padding: 0 16px;
|
||||
}
|
||||
|
||||
.pagination .next {
|
||||
margin-inline-start: auto;
|
||||
}
|
||||
|
||||
|
||||
.social-icons a {
|
||||
display: inline-flex;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.social-icons a svg {
|
||||
height: 26px;
|
||||
width: 26px;
|
||||
}
|
||||
|
||||
code {
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
div.highlight,
|
||||
pre {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.copy-code {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
right: 4px;
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
background: rgba(78, 78, 78, 0.8);
|
||||
border-radius: var(--radius);
|
||||
padding: 0 5px;
|
||||
font-size: 14px;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
div.highlight:hover .copy-code,
|
||||
pre:hover .copy-code {
|
||||
display: block;
|
||||
}
|
@@ -4,33 +4,33 @@
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
min-height: 320px;
|
||||
margin: var(--gap) 0 calc(var(--gap) * 2) 0
|
||||
margin: var(--gap) 0 calc(var(--gap) * 2) 0;
|
||||
}
|
||||
|
||||
.first-entry .entry-header {
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 3
|
||||
-webkit-line-clamp: 3;
|
||||
}
|
||||
|
||||
.first-entry .entry-header h2 {
|
||||
.first-entry .entry-header h1 {
|
||||
font-size: 34px;
|
||||
line-height: 1.3
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.first-entry .entry-content {
|
||||
margin: 14px 0;
|
||||
font-size: 16px;
|
||||
-webkit-line-clamp: 3
|
||||
-webkit-line-clamp: 3;
|
||||
}
|
||||
|
||||
.first-entry .entry-footer {
|
||||
font-size: 14px
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.home-info .entry-content {
|
||||
-webkit-line-clamp: unset
|
||||
-webkit-line-clamp: unset;
|
||||
}
|
||||
|
||||
.post-entry {
|
||||
@@ -39,20 +39,21 @@
|
||||
padding: var(--gap);
|
||||
background: var(--entry);
|
||||
border-radius: var(--radius);
|
||||
transition: transform .1s;
|
||||
transition: transform 0.1s;
|
||||
border: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.post-entry:active {
|
||||
transform: scale(.96)
|
||||
transform: scale(0.96);
|
||||
}
|
||||
|
||||
.tag-entry .entry-cover {
|
||||
display: none
|
||||
display: none;
|
||||
}
|
||||
|
||||
.entry-header h2 {
|
||||
font-size: 24px
|
||||
font-size: 24px;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.entry-content {
|
||||
@@ -63,12 +64,12 @@
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2
|
||||
-webkit-line-clamp: 2;
|
||||
}
|
||||
|
||||
.entry-footer {
|
||||
color: var(--secondary);
|
||||
font-size: 13px
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.entry-link {
|
||||
@@ -76,31 +77,32 @@
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.entry-cover,
|
||||
.entry-isdraft {
|
||||
font-size: 14px;
|
||||
color: var(--secondary)
|
||||
.entry-hint {
|
||||
color: var(--secondary);
|
||||
}
|
||||
|
||||
.entry-isdraft {
|
||||
display: inline
|
||||
.entry-hint-parent {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.entry-cover {
|
||||
font-size: 14px;
|
||||
margin-bottom: var(--gap);
|
||||
text-align: center
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.entry-cover img {
|
||||
border-radius: var(--radius);
|
||||
pointer-events: none;
|
||||
width: 100%
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.entry-cover a {
|
||||
color: var(--secondary);
|
||||
box-shadow: 0 1px 0 var(--primary)
|
||||
box-shadow: 0 1px 0 var(--primary);
|
||||
}
|
407
assets/css/common/post-single.css
Normal file
407
assets/css/common/post-single.css
Normal file
@@ -0,0 +1,407 @@
|
||||
.page-header,
|
||||
.post-header {
|
||||
margin: 24px auto var(--content-gap) auto;
|
||||
}
|
||||
|
||||
.post-title {
|
||||
margin-bottom: 2px;
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
.post-description {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.post-meta,
|
||||
.breadcrumbs {
|
||||
color: var(--secondary);
|
||||
font-size: 14px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.post-meta .i18n_list li {
|
||||
display: inline-flex;
|
||||
list-style: none;
|
||||
margin: auto 3px;
|
||||
box-shadow: 0 1px 0 var(--secondary);
|
||||
}
|
||||
|
||||
.breadcrumbs a {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.post-content {
|
||||
color: var(--content);
|
||||
}
|
||||
|
||||
.post-content h3,
|
||||
.post-content h4,
|
||||
.post-content h5,
|
||||
.post-content h6 {
|
||||
margin: 24px 0 16px;
|
||||
}
|
||||
|
||||
.post-content h1 {
|
||||
margin: 40px auto 32px;
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
.post-content h2 {
|
||||
margin: 32px auto 24px;
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
.post-content h3 {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.post-content h4 {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.post-content h5 {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.post-content h6 {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.post-content a,
|
||||
.toc a:hover {
|
||||
box-shadow: 0 1px 0;
|
||||
box-decoration-break: clone;
|
||||
-webkit-box-decoration-break: clone;
|
||||
}
|
||||
|
||||
.post-content a code {
|
||||
margin: auto 0;
|
||||
border-radius: 0;
|
||||
box-shadow: 0 -1px 0 var(--primary) inset;
|
||||
}
|
||||
|
||||
.post-content del {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
.post-content dl,
|
||||
.post-content ol,
|
||||
.post-content p,
|
||||
.post-content figure,
|
||||
.post-content ul {
|
||||
margin-bottom: var(--content-gap);
|
||||
}
|
||||
|
||||
.post-content ol,
|
||||
.post-content ul {
|
||||
padding-inline-start: 20px;
|
||||
}
|
||||
|
||||
.post-content li {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.post-content li p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.post-content dl {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.post-content dt {
|
||||
width: 25%;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.post-content dd {
|
||||
width: 75%;
|
||||
margin-inline-start: 0;
|
||||
padding-inline-start: 10px;
|
||||
}
|
||||
|
||||
.post-content dd ~ dd,
|
||||
.post-content dt ~ dt {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.post-content table {
|
||||
margin-bottom: var(--content-gap);
|
||||
}
|
||||
|
||||
.post-content table th,
|
||||
.post-content table:not(.highlighttable, .highlight table, .gist .highlight) td {
|
||||
min-width: 80px;
|
||||
padding: 8px 5px;
|
||||
line-height: 1.5;
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.post-content table th {
|
||||
text-align: start;
|
||||
}
|
||||
|
||||
.post-content table:not(.highlighttable) td code:only-child {
|
||||
margin: auto 0;
|
||||
}
|
||||
|
||||
.post-content .highlight table {
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
.post-content .highlight:not(table) {
|
||||
margin: 10px auto;
|
||||
background: var(--hljs-bg) !important;
|
||||
border-radius: var(--radius);
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
.post-content li > .highlight {
|
||||
margin-inline-end: 0;
|
||||
}
|
||||
|
||||
.post-content ul pre {
|
||||
margin-inline-start: calc(var(--gap) * -2);
|
||||
}
|
||||
|
||||
.post-content .highlight pre {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.post-content .highlighttable {
|
||||
table-layout: fixed;
|
||||
}
|
||||
|
||||
.post-content .highlighttable td:first-child {
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
.post-content .highlighttable td .linenodiv {
|
||||
padding-inline-end: 0 !important;
|
||||
}
|
||||
|
||||
.post-content .highlighttable td .highlight,
|
||||
.post-content .highlighttable td .linenodiv pre {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.post-content code {
|
||||
margin: auto 4px;
|
||||
padding: 4px 6px;
|
||||
font-size: 0.78em;
|
||||
line-height: 1.5;
|
||||
background: var(--code-bg);
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.post-content pre code {
|
||||
display: block;
|
||||
margin: auto 0;
|
||||
padding: 10px;
|
||||
color: rgb(213, 213, 214);
|
||||
background: var(--hljs-bg) !important;
|
||||
border-radius: var(--radius);
|
||||
overflow-x: auto;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.post-content blockquote {
|
||||
margin: 20px 0;
|
||||
padding: 0 14px;
|
||||
border-inline-start: 3px solid var(--primary);
|
||||
}
|
||||
|
||||
.post-content hr {
|
||||
margin: 30px 0;
|
||||
height: 2px;
|
||||
background: var(--tertiary);
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.post-content iframe {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.post-content img {
|
||||
border-radius: 4px;
|
||||
margin: 1rem 0;
|
||||
}
|
||||
|
||||
.post-content img[src*="#center"] {
|
||||
margin: 1rem auto;
|
||||
}
|
||||
|
||||
.post-content figure.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.post-content figure > figcaption {
|
||||
color: var(--primary);
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin: 8px 0 16px;
|
||||
}
|
||||
|
||||
.post-content figure > figcaption > p {
|
||||
color: var(--secondary);
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.toc {
|
||||
margin: 0 2px 40px 2px;
|
||||
border: 1px solid var(--border);
|
||||
background: var(--code-bg);
|
||||
border-radius: var(--radius);
|
||||
padding: 0.4em;
|
||||
}
|
||||
|
||||
.dark .toc {
|
||||
background: var(--entry);
|
||||
}
|
||||
|
||||
.toc details summary {
|
||||
cursor: zoom-in;
|
||||
margin-inline-start: 20px;
|
||||
}
|
||||
|
||||
.toc details[open] summary {
|
||||
cursor: zoom-out;
|
||||
}
|
||||
|
||||
.toc .details {
|
||||
display: inline;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.toc .inner {
|
||||
margin: 0 20px;
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
.toc li ul {
|
||||
margin-inline-start: var(--gap);
|
||||
}
|
||||
|
||||
.toc summary:focus {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.post-footer {
|
||||
margin-top: 56px;
|
||||
}
|
||||
|
||||
.post-footer>* {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.post-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.post-tags li {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.post-tags a,
|
||||
.share-buttons,
|
||||
.paginav {
|
||||
border-radius: var(--radius);
|
||||
background: var(--code-bg);
|
||||
border: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.post-tags a {
|
||||
display: block;
|
||||
padding: 0 14px;
|
||||
color: var(--secondary);
|
||||
font-size: 14px;
|
||||
line-height: 34px;
|
||||
background: var(--code-bg);
|
||||
}
|
||||
|
||||
.post-tags a:hover,
|
||||
.paginav a:hover {
|
||||
background: var(--border);
|
||||
}
|
||||
|
||||
.share-buttons {
|
||||
padding: 10px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
overflow-x: auto;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.share-buttons li,
|
||||
.share-buttons a {
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.share-buttons a:not(:last-of-type) {
|
||||
margin-inline-end: 12px;
|
||||
}
|
||||
|
||||
h1:hover .anchor,
|
||||
h2:hover .anchor,
|
||||
h3:hover .anchor,
|
||||
h4:hover .anchor,
|
||||
h5:hover .anchor,
|
||||
h6:hover .anchor {
|
||||
display: inline-flex;
|
||||
color: var(--secondary);
|
||||
margin-inline-start: 8px;
|
||||
font-weight: 500;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.paginav {
|
||||
display: flex;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.paginav a {
|
||||
padding-inline-start: 14px;
|
||||
padding-inline-end: 14px;
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
.paginav .title {
|
||||
letter-spacing: 1px;
|
||||
text-transform: uppercase;
|
||||
font-size: small;
|
||||
color: var(--secondary);
|
||||
}
|
||||
|
||||
.paginav .prev,
|
||||
.paginav .next {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.paginav span:hover:not(.title) {
|
||||
box-shadow: 0 1px 0;
|
||||
}
|
||||
|
||||
.paginav .next {
|
||||
margin-inline-start: auto;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
[dir="rtl"] .paginav .next {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
h1>a>svg {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
img.in-text {
|
||||
display: inline;
|
||||
margin: auto;
|
||||
}
|
@@ -1,32 +1,29 @@
|
||||
.buttons,
|
||||
.main .profile {
|
||||
display: flex;
|
||||
justify-content: center
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.main .profile {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
align-items: center;
|
||||
height: 80%;
|
||||
text-align: center
|
||||
min-height: calc(100vh - var(--header-height) - var(--footer-height) - (var(--gap) * 2));
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.profile .profile_inner h1 {
|
||||
padding: 12px 0
|
||||
.profile .profile_inner {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.profile img {
|
||||
display: inline-table;
|
||||
border-radius: 50%;
|
||||
pointer-events: none
|
||||
}
|
||||
|
||||
.buttons {
|
||||
flex-wrap: wrap;
|
||||
max-width: 400px;
|
||||
margin: 0 auto
|
||||
}
|
||||
|
||||
.button {
|
||||
@@ -34,13 +31,13 @@
|
||||
border-radius: var(--radius);
|
||||
margin: 8px;
|
||||
padding: 6px;
|
||||
transition: transform .1s
|
||||
transition: transform 0.1s;
|
||||
}
|
||||
|
||||
.button-inner {
|
||||
padding: 0 8px
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
.button:active {
|
||||
transform: scale(.96)
|
||||
transform: scale(0.96);
|
||||
}
|
@@ -26,8 +26,8 @@
|
||||
}
|
||||
|
||||
#searchResults li:active {
|
||||
transition: transform .1s;
|
||||
transform: scale(.98);
|
||||
transition: transform 0.1s;
|
||||
transform: scale(0.98);
|
||||
}
|
||||
|
||||
#searchResults a {
|
||||
@@ -39,7 +39,7 @@
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#searchResults .active {
|
||||
transform: scale(.98);
|
||||
border: 2px solid var(--tertiary)
|
||||
#searchResults .focus {
|
||||
transform: scale(0.98);
|
||||
border: 2px solid var(--tertiary);
|
||||
}
|
@@ -1,7 +1,7 @@
|
||||
.terms-tags li {
|
||||
display: inline-block;
|
||||
margin: 10px;
|
||||
font-weight: 500
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.terms-tags a {
|
||||
@@ -9,10 +9,10 @@
|
||||
padding: 3px 10px;
|
||||
background: var(--tertiary);
|
||||
border-radius: 6px;
|
||||
transition: transform .1s
|
||||
transition: transform 0.1s;
|
||||
}
|
||||
|
||||
.terms-tags a:active {
|
||||
background: var(--tertiary);
|
||||
transform: scale(.96)
|
||||
transform: scale(0.96);
|
||||
}
|
6
assets/css/core/license.css
Normal file
6
assets/css/core/license.css
Normal file
@@ -0,0 +1,6 @@
|
||||
/*
|
||||
PaperMod v7
|
||||
License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
|
||||
Copyright (c) 2020 nanxiaobei and adityatelange
|
||||
Copyright (c) 2021-2023 adityatelange
|
||||
*/
|
@@ -1,14 +1,18 @@
|
||||
*,
|
||||
::after,
|
||||
::before {
|
||||
box-sizing: border-box
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html {
|
||||
-webkit-tap-highlight-color: transparent
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
overflow-y: scroll;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
a,
|
||||
button,
|
||||
body,
|
||||
h1,
|
||||
h2,
|
||||
@@ -16,7 +20,7 @@ h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
color: var(--primary)
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
body {
|
||||
@@ -24,7 +28,7 @@ body {
|
||||
font-size: 18px;
|
||||
line-height: 1.6;
|
||||
word-break: break-word;
|
||||
background: var(--theme)
|
||||
background: var(--theme);
|
||||
}
|
||||
|
||||
article,
|
||||
@@ -38,7 +42,7 @@ main,
|
||||
nav,
|
||||
section,
|
||||
table {
|
||||
display: block
|
||||
display: block;
|
||||
}
|
||||
|
||||
h1,
|
||||
@@ -47,7 +51,7 @@ h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
line-height: 1.2
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
h1,
|
||||
@@ -58,21 +62,21 @@ h5,
|
||||
h6,
|
||||
p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
body,
|
||||
figure,
|
||||
ul {
|
||||
margin: 0
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
table {
|
||||
@@ -80,7 +84,7 @@ table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
overflow-x: auto;
|
||||
word-break: keep-all
|
||||
word-break: keep-all;
|
||||
}
|
||||
|
||||
button,
|
||||
@@ -94,38 +98,21 @@ textarea {
|
||||
|
||||
input,
|
||||
textarea {
|
||||
outline: 0
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
button,
|
||||
input[type=button],
|
||||
input[type=submit] {
|
||||
cursor: pointer
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
input:-webkit-autofill,
|
||||
textarea:-webkit-autofill {
|
||||
box-shadow: 0 0 0 50px var(--theme) inset
|
||||
box-shadow: 0 0 0 50px var(--theme) inset;
|
||||
}
|
||||
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: 0 0
|
||||
}
|
||||
|
||||
.list:not(.dark)::-webkit-scrollbar-track {
|
||||
background: var(--code-bg)
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: var(--tertiary);
|
||||
border-radius: var(--radius)
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: var(--secondary)
|
||||
max-width: 100%;
|
||||
}
|
38
assets/css/core/theme-vars.css
Normal file
38
assets/css/core/theme-vars.css
Normal file
@@ -0,0 +1,38 @@
|
||||
:root {
|
||||
--gap: 24px;
|
||||
--content-gap: 20px;
|
||||
--nav-width: 1024px;
|
||||
--main-width: 720px;
|
||||
--header-height: 60px;
|
||||
--footer-height: 60px;
|
||||
--radius: 8px;
|
||||
--theme: rgb(255, 255, 255);
|
||||
--entry: rgb(255, 255, 255);
|
||||
--primary: rgb(30, 30, 30);
|
||||
--secondary: rgb(108, 108, 108);
|
||||
--tertiary: rgb(214, 214, 214);
|
||||
--content: rgb(31, 31, 31);
|
||||
--hljs-bg: rgb(28, 29, 33);
|
||||
--code-bg: rgb(245, 245, 245);
|
||||
--border: rgb(238, 238, 238);
|
||||
}
|
||||
|
||||
.dark {
|
||||
--theme: rgb(29, 30, 32);
|
||||
--entry: rgb(46, 46, 51);
|
||||
--primary: rgb(218, 218, 219);
|
||||
--secondary: rgb(155, 156, 157);
|
||||
--tertiary: rgb(65, 66, 68);
|
||||
--content: rgb(196, 196, 197);
|
||||
--hljs-bg: rgb(46, 46, 51);
|
||||
--code-bg: rgb(55, 56, 62);
|
||||
--border: rgb(51, 51, 51);
|
||||
}
|
||||
|
||||
.list {
|
||||
background: var(--code-bg);
|
||||
}
|
||||
|
||||
.dark.list {
|
||||
background: var(--theme);
|
||||
}
|
@@ -22,13 +22,10 @@
|
||||
.archive-year {
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
/* reset */
|
||||
::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
height: 6px;
|
||||
/* footer */
|
||||
.footer {
|
||||
padding: calc((var(--footer-height) - var(--gap) - 10px) / 2) var(--gap);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,34 +36,20 @@
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 340px) {
|
||||
.share-buttons {
|
||||
justify-content: unset;
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion) {
|
||||
/* terms */
|
||||
.terms-tags a:active {
|
||||
transform: none;
|
||||
}
|
||||
|
||||
/* profile-mode */
|
||||
.button:active {
|
||||
transform: none;
|
||||
}
|
||||
|
||||
/* post-single */
|
||||
.share-buttons svg:active {
|
||||
transform: none;
|
||||
}
|
||||
|
||||
/* post-entry */
|
||||
.post-entry:active {
|
||||
transform: none;
|
||||
}
|
||||
|
||||
/* footer */
|
||||
.top-link {
|
||||
transition: none;
|
||||
}
|
||||
|
||||
/* search */
|
||||
#searchResults .active {
|
||||
/* terms; profile-mode; post-single; post-entry; post-entry; search; search */
|
||||
.terms-tags a:active,
|
||||
.button:active,
|
||||
.post-entry:active,
|
||||
.top-link,
|
||||
#searchResults .focus,
|
||||
#searchResults li:active {
|
||||
transform: none;
|
||||
}
|
||||
}
|
@@ -1,6 +1,6 @@
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #b6b18b
|
||||
color: #b6b18b;
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
@@ -11,7 +11,7 @@
|
||||
.hljs-tag,
|
||||
.hljs-template-variable,
|
||||
.hljs-variable {
|
||||
color: #eb3c54
|
||||
color: #eb3c54;
|
||||
}
|
||||
|
||||
.hljs-built_in,
|
||||
@@ -22,28 +22,28 @@
|
||||
.hljs-number,
|
||||
.hljs-params,
|
||||
.hljs-type {
|
||||
color: #e7ce56
|
||||
color: #e7ce56;
|
||||
}
|
||||
|
||||
.hljs-attribute {
|
||||
color: #ee7c2b
|
||||
color: #ee7c2b;
|
||||
}
|
||||
|
||||
.hljs-addition,
|
||||
.hljs-bullet,
|
||||
.hljs-string,
|
||||
.hljs-symbol {
|
||||
color: #4fb4d7
|
||||
color: #4fb4d7;
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-title {
|
||||
color: #78bb65
|
||||
color: #78bb65;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #b45ea4
|
||||
color: #b45ea4;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
@@ -51,13 +51,13 @@
|
||||
overflow-x: auto;
|
||||
background: #1c1d21;
|
||||
color: #c0c5ce;
|
||||
padding: .5em
|
||||
padding: .5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: 700
|
||||
}
|
||||
font-weight: 700;
|
||||
}
|
63
assets/css/includes/scroll-bar.css
Normal file
63
assets/css/includes/scroll-bar.css
Normal file
@@ -0,0 +1,63 @@
|
||||
/* from reset */
|
||||
::-webkit-scrollbar-track {
|
||||
background: 0 0;
|
||||
}
|
||||
|
||||
.list:not(.dark)::-webkit-scrollbar-track {
|
||||
background: var(--code-bg);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: var(--tertiary);
|
||||
border: 5px solid var(--theme);
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
.list:not(.dark)::-webkit-scrollbar-thumb {
|
||||
border: 5px solid var(--code-bg);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: var(--secondary);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar:not(.highlighttable, .highlight table, .gist .highlight) {
|
||||
background: var(--theme);
|
||||
}
|
||||
|
||||
/* from post-single */
|
||||
.post-content .highlighttable td .highlight pre code::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.post-content :not(table) ::-webkit-scrollbar-thumb {
|
||||
border: 2px solid var(--hljs-bg);
|
||||
background: rgb(113, 113, 117);
|
||||
}
|
||||
|
||||
.post-content :not(table) ::-webkit-scrollbar-thumb:hover {
|
||||
background: rgb(163, 163, 165);
|
||||
}
|
||||
|
||||
.gist table::-webkit-scrollbar-thumb {
|
||||
border: 2px solid rgb(255, 255, 255);
|
||||
background: rgb(173, 173, 173);
|
||||
}
|
||||
|
||||
.gist table::-webkit-scrollbar-thumb:hover {
|
||||
background: rgb(112, 112, 112);
|
||||
}
|
||||
|
||||
.post-content table::-webkit-scrollbar-thumb {
|
||||
border-width: 2px;
|
||||
}
|
||||
|
||||
/* from zmedia */
|
||||
@media screen and (min-width: 768px) {
|
||||
|
||||
/* reset */
|
||||
::-webkit-scrollbar {
|
||||
width: 19px;
|
||||
height: 11px;
|
||||
}
|
||||
}
|
@@ -1,49 +0,0 @@
|
||||
.main {
|
||||
position: relative;
|
||||
min-height: calc(100vh - var(--header-height) - var(--footer-height));
|
||||
max-width: calc(var(--main-width) + var(--gap) * 2);
|
||||
margin: auto;
|
||||
padding: var(--gap)
|
||||
}
|
||||
|
||||
.page-header {
|
||||
margin-bottom: 24px
|
||||
}
|
||||
|
||||
.page-header h1 {
|
||||
font-size: 40px
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: flex
|
||||
}
|
||||
|
||||
.pagination a {
|
||||
color: var(--theme);
|
||||
font-size: 13px;
|
||||
line-height: 36px;
|
||||
background: var(--primary);
|
||||
border-radius: calc(36px / 2);
|
||||
padding: 0 16px
|
||||
}
|
||||
|
||||
.pagination .next {
|
||||
margin-inline-start: auto
|
||||
}
|
||||
|
||||
.social-icons {
|
||||
padding: 12px 0
|
||||
}
|
||||
|
||||
.social-icons a:not(:last-of-type) {
|
||||
margin-inline-end: 12px
|
||||
}
|
||||
|
||||
.social-icons a svg {
|
||||
height: 26px;
|
||||
width: 26px
|
||||
}
|
||||
|
||||
code {
|
||||
direction: ltr
|
||||
}
|
@@ -1,356 +0,0 @@
|
||||
.post-header {
|
||||
margin: 24px auto var(--content-gap) auto
|
||||
}
|
||||
|
||||
.post-title {
|
||||
margin-bottom: 2px;
|
||||
font-size: 40px;
|
||||
transform: translateX(-2px)
|
||||
}
|
||||
|
||||
.post-description {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.post-meta {
|
||||
color: var(--secondary);
|
||||
font-size: 14px;
|
||||
display: flex;
|
||||
flex-wrap: wrap
|
||||
}
|
||||
|
||||
.post-meta .i18n_list li {
|
||||
display: inline-flex;
|
||||
list-style: none;
|
||||
margin: auto 3px;
|
||||
box-shadow: 0 1px 0 var(--secondary)
|
||||
}
|
||||
|
||||
.post-content {
|
||||
color: var(--content)
|
||||
}
|
||||
|
||||
.post-content h3,
|
||||
.post-content h4,
|
||||
.post-content h5,
|
||||
.post-content h6 {
|
||||
margin: 24px 0 16px
|
||||
}
|
||||
|
||||
.post-content h1 {
|
||||
margin: 40px auto 32px;
|
||||
font-size: 40px
|
||||
}
|
||||
|
||||
.post-content h2 {
|
||||
margin: 32px auto 24px;
|
||||
font-size: 32px
|
||||
}
|
||||
|
||||
.post-content h3 {
|
||||
font-size: 24px
|
||||
}
|
||||
|
||||
.post-content h4 {
|
||||
font-size: 16px
|
||||
}
|
||||
|
||||
.post-content h5 {
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
.post-content h6 {
|
||||
font-size: 12px
|
||||
}
|
||||
|
||||
.post-content a,
|
||||
.toc a:hover {
|
||||
box-shadow: 0 1px 0
|
||||
}
|
||||
|
||||
.post-content a code {
|
||||
margin: auto 0;
|
||||
border-radius: 0;
|
||||
box-shadow: 0 -1px 0 var(--primary) inset
|
||||
}
|
||||
|
||||
.post-content del {
|
||||
text-decoration: none;
|
||||
background: linear-gradient(to right, var(--primary) 100%, transparent 0) 0 50%/1px 1px repeat-x
|
||||
}
|
||||
|
||||
.post-content dl,
|
||||
.post-content ol,
|
||||
.post-content p,
|
||||
.post-content ul {
|
||||
margin-bottom: var(--content-gap)
|
||||
}
|
||||
|
||||
.post-content ol,
|
||||
.post-content ul {
|
||||
padding-inline-start: 20px
|
||||
}
|
||||
|
||||
.post-content li {
|
||||
margin-top: 5px
|
||||
}
|
||||
|
||||
.post-content li p {
|
||||
margin-bottom: 0
|
||||
}
|
||||
|
||||
.post-content dl {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin: 0
|
||||
}
|
||||
|
||||
.post-content dt {
|
||||
width: 25%;
|
||||
font-weight: 700
|
||||
}
|
||||
|
||||
.post-content dd {
|
||||
width: 75%;
|
||||
margin-inline-start: 0;
|
||||
padding-inline-start: 10px
|
||||
}
|
||||
|
||||
.post-content dd~dd,
|
||||
.post-content dt~dt {
|
||||
margin-top: 10px
|
||||
}
|
||||
|
||||
.post-content table {
|
||||
margin-bottom: 32px
|
||||
}
|
||||
|
||||
.post-content table th,
|
||||
.post-content:not(.gist) > table:not(.highlighttable) td {
|
||||
min-width: 80px;
|
||||
padding: 12px 8px;
|
||||
line-height: 1.5;
|
||||
border-bottom: 1px solid var(--border)
|
||||
}
|
||||
|
||||
.post-content table th {
|
||||
font-size: 14px;
|
||||
text-align: start
|
||||
}
|
||||
|
||||
.post-content table:not(.highlighttable) td code:only-child {
|
||||
margin: auto 0
|
||||
}
|
||||
|
||||
.post-content:not(.gist) > .highlight,
|
||||
.post-content pre {
|
||||
margin: auto 0 20px;
|
||||
background: var(--hljs-bg) !important;
|
||||
border-radius: var(--radius)
|
||||
}
|
||||
|
||||
.post-content li>.highlight {
|
||||
margin-inline-end: 0
|
||||
}
|
||||
|
||||
.post-content ul pre {
|
||||
margin-inline-start: calc(var(--gap) * -2)
|
||||
}
|
||||
|
||||
.post-content .highlight pre {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
.post-content .highlight {
|
||||
margin: 10px auto
|
||||
}
|
||||
|
||||
.post-content .highlighttable {
|
||||
table-layout: fixed
|
||||
}
|
||||
|
||||
.post-content .highlighttable td:first-child {
|
||||
width: 40px
|
||||
}
|
||||
|
||||
.post-content .highlighttable td .linenodiv {
|
||||
padding-inline-end: 0 !important
|
||||
}
|
||||
|
||||
.post-content .highlighttable td .highlight,
|
||||
.post-content .highlighttable td .linenodiv pre {
|
||||
margin-bottom: 0
|
||||
}
|
||||
|
||||
.post-content .highlighttable td .highlight pre code::-webkit-scrollbar {
|
||||
display: none
|
||||
}
|
||||
|
||||
.post-content .highlight span {
|
||||
background: 0 0 !important
|
||||
}
|
||||
|
||||
.post-content code {
|
||||
margin: auto 4px;
|
||||
padding: 4px 6px;
|
||||
font-family: Menlo, Monaco, 'Courier New', Courier, monospace;
|
||||
font-size: .78em;
|
||||
line-height: 1.5;
|
||||
background: var(--code-bg);
|
||||
border-radius: 2px
|
||||
}
|
||||
|
||||
.post-content pre code {
|
||||
display: block;
|
||||
margin: auto 0;
|
||||
padding: 10px;
|
||||
color: rgba(255, 255, 255, .8);
|
||||
background: 0 0;
|
||||
border-radius: 0;
|
||||
overflow-x: auto
|
||||
}
|
||||
|
||||
.post-content blockquote {
|
||||
margin: 0 0;
|
||||
padding: 0 14px;
|
||||
border-inline-start: 3px solid var(--primary)
|
||||
}
|
||||
|
||||
.post-content hr {
|
||||
margin: 30px 0;
|
||||
height: 2px;
|
||||
background: var(--tertiary);
|
||||
border-top: 0;
|
||||
border-bottom: 0
|
||||
}
|
||||
|
||||
.post-content iframe {
|
||||
max-width: 100%
|
||||
}
|
||||
|
||||
.post-content img {
|
||||
border-radius: 4px
|
||||
}
|
||||
|
||||
.post-content img[src*='#center'] {
|
||||
margin: auto
|
||||
}
|
||||
|
||||
.post-content figure > figcaption {
|
||||
color: var(--primary);
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin: 24px 0 16px;
|
||||
}
|
||||
|
||||
.toc {
|
||||
margin-bottom: 40px;
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius);
|
||||
padding: .5em
|
||||
}
|
||||
|
||||
.toc details summary {
|
||||
cursor: zoom-in;
|
||||
margin-inline-start: 20px
|
||||
}
|
||||
|
||||
.toc details[open] summary {
|
||||
cursor: zoom-out
|
||||
}
|
||||
|
||||
.toc .details {
|
||||
display: inline;
|
||||
font-weight: 500
|
||||
}
|
||||
|
||||
.toc blockquote {
|
||||
margin: 0 20px;
|
||||
padding: 10px 20px
|
||||
}
|
||||
|
||||
.toc li ul {
|
||||
margin-inline-start: var(--gap)
|
||||
}
|
||||
|
||||
.toc summary:focus {
|
||||
outline: 0
|
||||
}
|
||||
|
||||
.post-footer {
|
||||
margin-top: 56px
|
||||
}
|
||||
|
||||
.post-tags li {
|
||||
display: inline-block;
|
||||
margin-inline-end: 3px;
|
||||
margin-bottom: 5px
|
||||
}
|
||||
|
||||
.post-tags a,
|
||||
.share-buttons {
|
||||
border: 1px solid var(--tertiary)
|
||||
}
|
||||
|
||||
.post-tags a {
|
||||
display: block;
|
||||
padding-inline-start: 14px;
|
||||
padding-inline-end: 14px;
|
||||
color: var(--secondary);
|
||||
font-size: 14px;
|
||||
line-height: 34px;
|
||||
background: var(--code-bg);
|
||||
border-radius: 4px
|
||||
}
|
||||
|
||||
.post-tags a:hover {
|
||||
background: var(--border)
|
||||
}
|
||||
|
||||
.share-buttons {
|
||||
margin-top: var(--gap);
|
||||
padding-inline-start: var(--radius);
|
||||
border-radius: var(--radius);
|
||||
display: flex;
|
||||
overflow-x: auto
|
||||
}
|
||||
|
||||
.share-buttons a {
|
||||
margin-top: 10px
|
||||
}
|
||||
|
||||
.share-buttons a:not(:last-of-type) {
|
||||
margin-inline-end: 12px
|
||||
}
|
||||
|
||||
.share-buttons a svg {
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
fill: currentColor;
|
||||
transition: transform .1s
|
||||
}
|
||||
|
||||
.share-buttons svg:active {
|
||||
transform: scale(.96)
|
||||
}
|
||||
|
||||
h1:hover .anchor,
|
||||
h2:hover .anchor,
|
||||
h3:hover .anchor,
|
||||
h4:hover .anchor,
|
||||
h5:hover .anchor,
|
||||
h6:hover .anchor {
|
||||
display: inline-flex;
|
||||
color: var(--secondary);
|
||||
margin-inline-start: 8px;
|
||||
font-weight: 500
|
||||
}
|
||||
|
||||
.post-content ::-webkit-scrollbar-thumb {
|
||||
background: rgba(255, 255, 255, 0.32)
|
||||
}
|
||||
|
||||
.post-content ::-webkit-scrollbar-thumb:hover {
|
||||
background: rgba(255, 255, 255, 0.64)
|
||||
}
|
@@ -1,38 +0,0 @@
|
||||
:root {
|
||||
--gap: 24px;
|
||||
--content-gap: 20px;
|
||||
--nav-width: 1024px;
|
||||
--main-width: 720px;
|
||||
--header-height: 60px;
|
||||
--footer-height: 60px;
|
||||
--radius: 8px;
|
||||
--theme: #fff;
|
||||
--entry: #fff;
|
||||
--primary: rgba(0, 0, 0, 0.88);
|
||||
--secondary: rgba(0, 0, 0, 0.56);
|
||||
--tertiary: rgba(0, 0, 0, 0.16);
|
||||
--content: rgba(0, 0, 0, 0.88);
|
||||
--hljs-bg: #1c1d21;
|
||||
--code-bg: #f5f5f5;
|
||||
--border: #eee;
|
||||
}
|
||||
|
||||
.dark {
|
||||
--theme: #1d1e20;
|
||||
--entry: #2e2e33;
|
||||
--primary: rgba(255, 255, 255, 0.84);
|
||||
--secondary: rgba(255, 255, 255, 0.56);
|
||||
--tertiary: rgba(255, 255, 255, 0.16);
|
||||
--content: rgba(255, 255, 255, 0.74);
|
||||
--hljs-bg: #2e2e33;
|
||||
--code-bg: #37383e;
|
||||
--border: #333;
|
||||
}
|
||||
|
||||
.list {
|
||||
background: var(--code-bg);
|
||||
}
|
||||
|
||||
.dark.list {
|
||||
background: var(--theme);
|
||||
}
|
@@ -1,25 +1,24 @@
|
||||
var fuse; // holds our search engine
|
||||
var resList = document.getElementById('searchResults');
|
||||
var sInput = document.getElementById('searchInput');
|
||||
var first, last = null
|
||||
var resultsAvailable = false;
|
||||
import * as params from '@params';
|
||||
|
||||
// load our search index, only executed onload
|
||||
function loadSearch() {
|
||||
var xhr = new XMLHttpRequest();
|
||||
let fuse; // holds our search engine
|
||||
let resList = document.getElementById('searchResults');
|
||||
let sInput = document.getElementById('searchInput');
|
||||
let first, last, current_elem = null
|
||||
let resultsAvailable = false;
|
||||
|
||||
// load our search index
|
||||
window.onload = function () {
|
||||
let xhr = new XMLHttpRequest();
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState === 4) {
|
||||
if (xhr.status === 200) {
|
||||
var data = JSON.parse(xhr.responseText);
|
||||
let data = JSON.parse(xhr.responseText);
|
||||
if (data) {
|
||||
// fuse.js options; check fuse.js website for details
|
||||
var options = {
|
||||
isCaseSensitive: false,
|
||||
shouldSort: true,
|
||||
location: 0,
|
||||
let options = {
|
||||
distance: 100,
|
||||
threshold: 0.4,
|
||||
minMatchCharLength: 0,
|
||||
ignoreLocation: true,
|
||||
keys: [
|
||||
'title',
|
||||
'permalink',
|
||||
@@ -27,7 +26,21 @@ function loadSearch() {
|
||||
'content'
|
||||
]
|
||||
};
|
||||
{{ if . }}options = {{ jsonify . }}{{ end }} // load custom options from .Site.Params.fuseOpts
|
||||
if (params.fuseOpts) {
|
||||
options = {
|
||||
isCaseSensitive: params.fuseOpts.iscasesensitive ?? false,
|
||||
includeScore: params.fuseOpts.includescore ?? false,
|
||||
includeMatches: params.fuseOpts.includematches ?? false,
|
||||
minMatchCharLength: params.fuseOpts.minmatchcharlength ?? 1,
|
||||
shouldSort: params.fuseOpts.shouldsort ?? true,
|
||||
findAllMatches: params.fuseOpts.findallmatches ?? false,
|
||||
keys: params.fuseOpts.keys ?? ['title', 'permalink', 'summary', 'content'],
|
||||
location: params.fuseOpts.location ?? 0,
|
||||
threshold: params.fuseOpts.threshold ?? 0.4,
|
||||
distance: params.fuseOpts.distance ?? 100,
|
||||
ignoreLocation: params.fuseOpts.ignorelocation ?? true
|
||||
}
|
||||
}
|
||||
fuse = new Fuse(data, options); // build the index from the json file
|
||||
}
|
||||
} else {
|
||||
@@ -39,86 +52,101 @@ function loadSearch() {
|
||||
xhr.send();
|
||||
}
|
||||
|
||||
|
||||
function itemGen(name, link) {
|
||||
return `<li class="post-entry"><header class="entry-header">${name} »</header><a href="${link}" aria-label="${name}"></a></li>`
|
||||
function activeToggle(ae) {
|
||||
document.querySelectorAll('.focus').forEach(function (element) {
|
||||
// rm focus class
|
||||
element.classList.remove("focus")
|
||||
});
|
||||
if (ae) {
|
||||
ae.focus()
|
||||
document.activeElement = current_elem = ae;
|
||||
ae.parentElement.classList.add("focus")
|
||||
} else {
|
||||
document.activeElement.parentElement.classList.add("focus")
|
||||
}
|
||||
}
|
||||
|
||||
function activeToggle() {
|
||||
document.activeElement.parentElement.classList.toggle("active")
|
||||
function reset() {
|
||||
resultsAvailable = false;
|
||||
resList.innerHTML = sInput.value = ''; // clear inputbox and searchResults
|
||||
sInput.focus(); // shift focus to input box
|
||||
}
|
||||
|
||||
// execute search as each character is typed
|
||||
sInput.onkeyup = function (e) {
|
||||
// run a search query (for "term") every time a letter is typed
|
||||
// in the search box
|
||||
const results = fuse.search(this.value); // the actual query being run using fuse.js
|
||||
|
||||
if (results.length !== 0) {
|
||||
// build our html if result exists
|
||||
let resultSet = ''; // our results bucket
|
||||
|
||||
for (let item in results) {
|
||||
resultSet = resultSet + itemGen(results[item].item.title, results[item].item.permalink)
|
||||
if (fuse) {
|
||||
let results;
|
||||
if (params.fuseOpts) {
|
||||
results = fuse.search(this.value.trim(), {limit: params.fuseOpts.limit}); // the actual query being run using fuse.js along with options
|
||||
} else {
|
||||
results = fuse.search(this.value.trim()); // the actual query being run using fuse.js
|
||||
}
|
||||
if (results.length !== 0) {
|
||||
// build our html if result exists
|
||||
let resultSet = ''; // our results bucket
|
||||
|
||||
document.getElementById("searchResults").innerHTML = resultSet;
|
||||
resultsAvailable = true;
|
||||
first = resList.firstChild;
|
||||
last = resList.lastChild;
|
||||
} else {
|
||||
resultsAvailable = false;
|
||||
document.getElementById("searchResults").innerHTML = '';
|
||||
for (let item in results) {
|
||||
resultSet += `<li class="post-entry"><header class="entry-header">${results[item].item.title} »</header>` +
|
||||
`<a href="${results[item].item.permalink}" aria-label="${results[item].item.title}"></a></li>`
|
||||
}
|
||||
|
||||
resList.innerHTML = resultSet;
|
||||
resultsAvailable = true;
|
||||
first = resList.firstChild;
|
||||
last = resList.lastChild;
|
||||
} else {
|
||||
resultsAvailable = false;
|
||||
resList.innerHTML = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sInput.addEventListener('search', function (e) {
|
||||
// clicked on x
|
||||
if (!this.value) reset()
|
||||
})
|
||||
|
||||
// kb bindings
|
||||
document.onkeydown = function (e) {
|
||||
let key = e.key;
|
||||
let ae = document.activeElement;
|
||||
|
||||
let inbox = document.getElementById("searchbox").contains(ae)
|
||||
|
||||
if (ae === sInput) {
|
||||
var elements = document.getElementsByClassName('active');
|
||||
let elements = document.getElementsByClassName('focus');
|
||||
while (elements.length > 0) {
|
||||
elements[0].classList.remove('active');
|
||||
elements[0].classList.remove('focus');
|
||||
}
|
||||
}
|
||||
} else if (current_elem) ae = current_elem;
|
||||
|
||||
if (key === "ArrowDown" && resultsAvailable && inbox) {
|
||||
if (key === "Escape") {
|
||||
reset()
|
||||
} else if (!resultsAvailable || !inbox) {
|
||||
return
|
||||
} else if (key === "ArrowDown") {
|
||||
e.preventDefault();
|
||||
if (ae == sInput) {
|
||||
// if the currently focused element is the search input, focus the <a> of first <li>
|
||||
activeToggle(); // rm active class
|
||||
resList.firstChild.lastChild.focus();
|
||||
activeToggle(); // add active class
|
||||
} else if (ae.parentElement == last) {
|
||||
activeToggle(resList.firstChild.lastChild);
|
||||
} else if (ae.parentElement != last) {
|
||||
// if the currently focused element's parent is last, do nothing
|
||||
} else {
|
||||
// otherwise select the next search result
|
||||
activeToggle(); // rm active class
|
||||
ae.parentElement.nextSibling.lastChild.focus();
|
||||
activeToggle(); // add active class
|
||||
activeToggle(ae.parentElement.nextSibling.lastChild);
|
||||
}
|
||||
} else if (key === "ArrowUp" && resultsAvailable && inbox) {
|
||||
} else if (key === "ArrowUp") {
|
||||
e.preventDefault();
|
||||
if (ae == sInput) {
|
||||
// if the currently focused element is input box, do nothing
|
||||
} else if (ae.parentElement == first) {
|
||||
if (ae.parentElement == first) {
|
||||
// if the currently focused element is first item, go to input box
|
||||
activeToggle(); // rm active class
|
||||
sInput.focus();
|
||||
} else {
|
||||
activeToggle(sInput);
|
||||
} else if (ae != sInput) {
|
||||
// if the currently focused element is input box, do nothing
|
||||
// otherwise select the previous search result
|
||||
activeToggle(); // rm active class
|
||||
ae.parentElement.previousSibling.lastChild.focus();
|
||||
activeToggle(); // add active class
|
||||
activeToggle(ae.parentElement.previousSibling.lastChild);
|
||||
}
|
||||
} else if (key === "ArrowRight" && resultsAvailable && inbox) {
|
||||
} else if (key === "ArrowRight") {
|
||||
ae.click(); // click on active link
|
||||
} else if (key === "Escape") {
|
||||
resultsAvailable = false;
|
||||
resList.innerHTML = sInput.value = ''; // clear inputbox and searchResults
|
||||
sInput.focus(); // shift focus to input box
|
||||
}
|
||||
}
|
||||
|
9
assets/js/fuse.basic.min.js
vendored
Normal file
9
assets/js/fuse.basic.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2255
assets/js/fuse.js
2255
assets/js/fuse.js
File diff suppressed because it is too large
Load Diff
6
assets/js/license.js
Normal file
6
assets/js/license.js
Normal file
@@ -0,0 +1,6 @@
|
||||
/*
|
||||
PaperMod v7
|
||||
License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
|
||||
Copyright (c) 2020 nanxiaobei and adityatelange
|
||||
Copyright (c) 2021-2023 adityatelange
|
||||
*/
|
28
i18n/ar.yaml
Normal file
28
i18n/ar.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
- id: prev_page
|
||||
translation: "السابق"
|
||||
|
||||
- id: next_page
|
||||
translation: "التالي"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "دقيقة واحدة"
|
||||
two: "دقيقتان"
|
||||
few: "بضع ثوان"
|
||||
zero: "الآن"
|
||||
other: "دقائق {{ .Count }}"
|
||||
|
||||
- id: toc
|
||||
translation: "فهرس المحتوى"
|
||||
|
||||
- id: translations
|
||||
translation: "ترجمات أخرى"
|
||||
|
||||
- id: home
|
||||
translation: "الصفحة الرئيسية"
|
||||
|
||||
- id: code_copied
|
||||
translation: "تم النسخ!"
|
||||
|
||||
- id: code_copy
|
||||
translation: "نسخ الكود"
|
39
i18n/be.yaml
Normal file
39
i18n/be.yaml
Normal file
@@ -0,0 +1,39 @@
|
||||
- id: prev_page
|
||||
translation: "Папярэдняя"
|
||||
|
||||
- id: next_page
|
||||
translation: "Наступная"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
zero: "0 хвілін"
|
||||
one: "1 хвіліна"
|
||||
few: "{{ .Count }} хвіліны"
|
||||
many: "{{ .Count }} хвілін"
|
||||
other: "{{ .Count }} хвілін"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
zero: "няма слоў"
|
||||
one: "1 слова"
|
||||
few: "{{ .Count }} слова"
|
||||
many: "{{ .Count }} слоў"
|
||||
other: "{{ .Count }} слова"
|
||||
|
||||
- id: toc
|
||||
translation: "Змест"
|
||||
|
||||
- id: translations
|
||||
translation: "Пераклады"
|
||||
|
||||
- id: home
|
||||
translation: "Галоўная"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Рэдагаваць"
|
||||
|
||||
- id: code_copy
|
||||
translation: "капіяваць"
|
||||
|
||||
- id: code_copied
|
||||
translation: "скапіявана!"
|
33
i18n/bn.yaml
Normal file
33
i18n/bn.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "পূর্ববর্তী"
|
||||
|
||||
- id: next_page
|
||||
translation: "পরবর্তী"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "১ মিনিট"
|
||||
other: "{{ .Count }} মিনিট"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "১ টি শব্দ"
|
||||
other: "{{ .Count }} টি শব্দ"
|
||||
|
||||
- id: toc
|
||||
translation: "সূচিপত্র"
|
||||
|
||||
- id: translations
|
||||
translation: "অনুবাদসমূহ"
|
||||
|
||||
- id: home
|
||||
translation: "হোম"
|
||||
|
||||
- id: edit_post
|
||||
translation: "সম্পাদনা করুন"
|
||||
|
||||
- id: code_copy
|
||||
translation: "কপি করুন"
|
||||
|
||||
- id: code_copied
|
||||
translation: "কপি হয়েছে!"
|
19
i18n/ca.yaml
Normal file
19
i18n/ca.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- id: prev_page
|
||||
translation: "Pàgina anterior"
|
||||
|
||||
- id: next_page
|
||||
translation: "Pàgina següent"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: toc
|
||||
translation: "Taula de Continguts"
|
||||
|
||||
- id: translations
|
||||
translation: "Traduccions"
|
||||
|
||||
- id: home
|
||||
translation: "Inici"
|
25
i18n/ckb.yaml
Normal file
25
i18n/ckb.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
- id: prev_page
|
||||
translation: "پەڕەی پێشتر"
|
||||
|
||||
- id: next_page
|
||||
translation: "پەڕەی دواتر"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 خولەک"
|
||||
other: "{{ .Count }} خولەک"
|
||||
|
||||
- id: toc
|
||||
translation: "پێڕست"
|
||||
|
||||
- id: translations
|
||||
translation: "وەرگێڕانەکان"
|
||||
|
||||
- id: home
|
||||
translation: "ماڵەوە"
|
||||
|
||||
- id: code_copy
|
||||
translation: "لەبەری بگرەوە"
|
||||
|
||||
- id: code_copied
|
||||
translation: "لەبەر گیرایەوە!"
|
33
i18n/cs.yaml
Normal file
33
i18n/cs.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Předchozí"
|
||||
|
||||
- id: next_page
|
||||
translation: "Další"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "slovo"
|
||||
other: "{{ .Count }} slov"
|
||||
|
||||
- id: toc
|
||||
translation: "Obsah"
|
||||
|
||||
- id: translations
|
||||
translation: "Překlady"
|
||||
|
||||
- id: home
|
||||
translation: "Domů"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Upravit"
|
||||
|
||||
- id: code_copy
|
||||
translation: "kopírovat"
|
||||
|
||||
- id: code_copied
|
||||
translation: "zkopírováno!"
|
28
i18n/da.yaml
Normal file
28
i18n/da.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
- id: prev_page
|
||||
translation: "Forrige Side"
|
||||
|
||||
- id: next_page
|
||||
translation: "Næste Side"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: toc
|
||||
translation: "Indholdsfortegnelse"
|
||||
|
||||
- id: translations
|
||||
translation: "Oversættelser"
|
||||
|
||||
- id: home
|
||||
translation: "Start"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Rediger"
|
||||
|
||||
- id: code_copy
|
||||
translation: "kopier"
|
||||
|
||||
- id: code_copied
|
||||
translation: "kopieret!"
|
25
i18n/de.yaml
25
i18n/de.yaml
@@ -1,16 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Vorherige Seite"
|
||||
translation: "Vorherige"
|
||||
|
||||
- id: next_page
|
||||
translation: "Nächste Seite"
|
||||
translation: "Nächste"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
one: "1 Minute"
|
||||
other: "{{ .Count }} Minuten"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "Wort"
|
||||
other: "{{ .Count }} Wörter"
|
||||
|
||||
- id: toc
|
||||
translation: "Inhaltsverzeichnis"
|
||||
|
||||
- id: translations
|
||||
translation: "Übersetzungen"
|
||||
|
||||
- id: home
|
||||
translation: "Home"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Bearbeiten"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Kopieren"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Kopiert!"
|
||||
|
33
i18n/el.yaml
Normal file
33
i18n/el.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Προηγούμενο"
|
||||
|
||||
- id: next_page
|
||||
translation: "Επόμενο"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 λεπτό"
|
||||
other: "{{ .Count }} λεπτά"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "λέξη"
|
||||
other: "{{ .Count }} λέξεις"
|
||||
|
||||
- id: toc
|
||||
translation: "Πίνακας Περιεχομένων"
|
||||
|
||||
- id: translations
|
||||
translation: "Μεταφράσεις"
|
||||
|
||||
- id: home
|
||||
translation: "Αρχική"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Επεξεργασία"
|
||||
|
||||
- id: code_copy
|
||||
translation: "αντιγραφή"
|
||||
|
||||
- id: code_copied
|
||||
translation: "αντιγράφηκε!"
|
21
i18n/en.yaml
21
i18n/en.yaml
@@ -1,16 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Prev Page"
|
||||
translation: "Prev"
|
||||
|
||||
- id: next_page
|
||||
translation: "Next Page"
|
||||
translation: "Next"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "word"
|
||||
other: "{{ .Count }} words"
|
||||
|
||||
- id: toc
|
||||
translation: "Table of Contents"
|
||||
|
||||
- id: translations
|
||||
translation: "Translations"
|
||||
|
||||
- id: home
|
||||
translation: "Home"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Edit"
|
||||
|
||||
- id: code_copy
|
||||
translation: "copy"
|
||||
|
||||
- id: code_copied
|
||||
translation: "copied!"
|
||||
|
25
i18n/eo.yaml
Normal file
25
i18n/eo.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
- id: prev_page
|
||||
translation: "antaŭa paĝo"
|
||||
|
||||
- id: next_page
|
||||
translation: "sekva paĝo"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: toc
|
||||
translation: "Enhavo"
|
||||
|
||||
- id: translations
|
||||
translation: "tradukoj"
|
||||
|
||||
- id: home
|
||||
translation: "ĉefpaĝo"
|
||||
|
||||
- id: code_copy
|
||||
translation: "kopii"
|
||||
|
||||
- id: code_copied
|
||||
translation: "kopiite!"
|
21
i18n/es.yaml
21
i18n/es.yaml
@@ -1,16 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Página anterior"
|
||||
translation: "Anterior"
|
||||
|
||||
- id: next_page
|
||||
translation: "Página siguiente"
|
||||
translation: "Siguiente"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "palabra"
|
||||
other: "{{ .Count }} palabras"
|
||||
|
||||
- id: toc
|
||||
translation: "Tabla de Contenidos"
|
||||
|
||||
- id: translations
|
||||
translation: "Traducciones"
|
||||
|
||||
- id: home
|
||||
translation: "Inicio"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Editar"
|
||||
|
||||
- id: code_copy
|
||||
translation: "copiar"
|
||||
|
||||
- id: code_copied
|
||||
translation: "¡copiado!"
|
||||
|
20
i18n/fa.yaml
20
i18n/fa.yaml
@@ -1,16 +1,28 @@
|
||||
- id: prev_page
|
||||
translation: "صفحهٔ قبل"
|
||||
translation: "صفحه قبلی"
|
||||
|
||||
- id: next_page
|
||||
translation: "صفحهٔ بعد"
|
||||
translation: "صفحه بعدی"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 دقیقه"
|
||||
one: "۱ دقیقه"
|
||||
other: "{{ .Count }} دقیقه"
|
||||
|
||||
- id: toc
|
||||
translation: "فهرست مطالب"
|
||||
|
||||
- id: translations
|
||||
translation: "ترجمهها"
|
||||
translation: "ترجمه ها"
|
||||
|
||||
- id: home
|
||||
translation: "خانه"
|
||||
|
||||
- id: edit_post
|
||||
translation: "ویرایش"
|
||||
|
||||
- id: code_copy
|
||||
translation: "کپی"
|
||||
|
||||
- id: code_copied
|
||||
translation: "کپی شد!"
|
32
i18n/fr.yaml
32
i18n/fr.yaml
@@ -1,5 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Page Précédente"
|
||||
translation: "Précédent"
|
||||
|
||||
- id: next_page
|
||||
translation: "Page Suivante"
|
||||
translation: "Suivant"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "mot"
|
||||
other: "{{ .Count }} mots"
|
||||
|
||||
- id: toc
|
||||
translation: "Table des matières"
|
||||
|
||||
- id: translations
|
||||
translation: "Traductions"
|
||||
|
||||
- id: home
|
||||
translation: "Accueil"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Modifier"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Copier"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Copié !"
|
||||
|
33
i18n/he.yaml
Normal file
33
i18n/he.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "קודם"
|
||||
|
||||
- id: next_page
|
||||
translation: "הבא"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "דקה אחת"
|
||||
other: "דקות {{ .Count }}"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "word"
|
||||
other: "מילים {{ .Count }} "
|
||||
|
||||
- id: toc
|
||||
translation: "תוכן העניינים"
|
||||
|
||||
- id: translations
|
||||
translation: "תרגומים"
|
||||
|
||||
- id: home
|
||||
translation: "בית"
|
||||
|
||||
- id: edit_post
|
||||
translation: "ערוך"
|
||||
|
||||
- id: code_copy
|
||||
translation: "העתק"
|
||||
|
||||
- id: code_copied
|
||||
translation: "!הועתק"
|
@@ -1,14 +1,17 @@
|
||||
- id: prev_page
|
||||
translation: "पिछला पृष्ठ"
|
||||
translation: "पिछला"
|
||||
|
||||
- id: next_page
|
||||
translation: "अगला पृष्ठ"
|
||||
translation: "अगला"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "एक मिनट"
|
||||
other: "{{ .Count }} मिनट"
|
||||
|
||||
- id: edit_post
|
||||
translation: "सुधारें"
|
||||
|
||||
- id: toc
|
||||
translation: "विषय - सूची"
|
||||
|
||||
|
33
i18n/hr.yaml
Normal file
33
i18n/hr.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Prethodna stranica"
|
||||
|
||||
- id: next_page
|
||||
translation: "Sljedeća stranica"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 minuta"
|
||||
other: "{{ .Count }} minute"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "riječ"
|
||||
other: "{{ .Count }} riječi"
|
||||
|
||||
- id: toc
|
||||
translation: "Tablica Sadržaja"
|
||||
|
||||
- id: translations
|
||||
translation: "Prijevodi"
|
||||
|
||||
- id: home
|
||||
translation: "Početna stranica"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Promjeni"
|
||||
|
||||
- id: code_copy
|
||||
translation: "kopiraj"
|
||||
|
||||
- id: code_copied
|
||||
translation: "kopirano!"
|
16
i18n/hu.yaml
Normal file
16
i18n/hu.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
- id: prev_page
|
||||
translation: "Előző oldal"
|
||||
|
||||
- id: next_page
|
||||
translation: "Következő oldal"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 perc"
|
||||
other: "{{ .Count }} perc"
|
||||
|
||||
- id: toc
|
||||
translation: "Tartalomjegyzék"
|
||||
|
||||
- id: translations
|
||||
translation: "Fordítások"
|
23
i18n/id.yaml
23
i18n/id.yaml
@@ -1,16 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Halaman Sebelumnya"
|
||||
translation: "Sebelumnya"
|
||||
|
||||
- id: next_page
|
||||
translation: "Halaman Selanjutnya"
|
||||
translation: "Selanjutnya"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 menit"
|
||||
other: "{{ .Count }} menit"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "kata"
|
||||
other: "{{ .Count }} kata"
|
||||
|
||||
- id: toc
|
||||
translation: "Daftar Isi"
|
||||
translation: "Daftar isi"
|
||||
|
||||
- id: translations
|
||||
translation: "Terjemahan"
|
||||
|
||||
- id: home
|
||||
translation: "Beranda"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Sunting"
|
||||
|
||||
- id: code_copy
|
||||
translation: "salin"
|
||||
|
||||
- id: code_copied
|
||||
translation: "disalin!"
|
23
i18n/it.yaml
23
i18n/it.yaml
@@ -1,16 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Pag Prec"
|
||||
translation: "Precedente"
|
||||
|
||||
- id: next_page
|
||||
translation: "Pag Succ"
|
||||
translation: "Successivo"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 minuto"
|
||||
other: "{{ .Count }} minuti"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "parola"
|
||||
other: "{{ .Count }} parole"
|
||||
|
||||
- id: toc
|
||||
translation: "Tabella dei Contenuti"
|
||||
translation: "Indice contenuti"
|
||||
|
||||
- id: translations
|
||||
translation: "Traduzioni"
|
||||
|
||||
- id: home
|
||||
translation: "Home"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Modifica"
|
||||
|
||||
- id: code_copy
|
||||
translation: "copia"
|
||||
|
||||
- id: code_copied
|
||||
translation: "copiato!"
|
||||
|
32
i18n/ja.yaml
32
i18n/ja.yaml
@@ -1,5 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "前のページ"
|
||||
translation: "前へ"
|
||||
|
||||
- id: next_page
|
||||
translation: "次のページ"
|
||||
translation: "次へ"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 分"
|
||||
other: "{{ .Count }} 分"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "文字"
|
||||
other: "{{ .Count }} 文字"
|
||||
|
||||
- id: toc
|
||||
translation: "目次"
|
||||
|
||||
- id: translations
|
||||
translation: "言語"
|
||||
|
||||
- id: home
|
||||
translation: "ホーム"
|
||||
|
||||
- id: edit_post
|
||||
translation: "編集"
|
||||
|
||||
- id: code_copy
|
||||
translation: "コピー"
|
||||
|
||||
- id: code_copied
|
||||
translation: "コピーされました!"
|
||||
|
28
i18n/ko.yaml
28
i18n/ko.yaml
@@ -3,3 +3,31 @@
|
||||
|
||||
- id: next_page
|
||||
translation: "다음 페이지"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 분"
|
||||
other: "{{ .Count }} 분"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "단어"
|
||||
other: "{{ .Count }} 단어"
|
||||
|
||||
- id: toc
|
||||
translation: "목차"
|
||||
|
||||
- id: translations
|
||||
translation: "번역"
|
||||
|
||||
- id: home
|
||||
translation: "홈"
|
||||
|
||||
- id: edit_post
|
||||
translation: "편집"
|
||||
|
||||
- id: code_copy
|
||||
translation: "복사"
|
||||
|
||||
- id: code_copied
|
||||
translation: "복사 완료!"
|
||||
|
25
i18n/ku.yaml
Normal file
25
i18n/ku.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
- id: prev_page
|
||||
translation: "Rûpela Paş"
|
||||
|
||||
- id: next_page
|
||||
translation: "Rûpela Pêş"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 xulek"
|
||||
other: "{{ .Count }} xulek"
|
||||
|
||||
- id: toc
|
||||
translation: "Pêrist"
|
||||
|
||||
- id: translations
|
||||
translation: "Wergeran"
|
||||
|
||||
- id: home
|
||||
translation: "Xanî"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Jê bigire"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Hat jêgirtin!"
|
25
i18n/mn.yaml
Normal file
25
i18n/mn.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
- id: prev_page
|
||||
translation: "Ѳмнѳх"
|
||||
|
||||
- id: next_page
|
||||
translation: "Дараах"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 МИН"
|
||||
other: "{{ .Count }} МИН"
|
||||
|
||||
- id: toc
|
||||
translation: "Агуулга"
|
||||
|
||||
- id: translations
|
||||
translation: "Орчуулга"
|
||||
|
||||
- id: home
|
||||
translation: "Нүүр"
|
||||
|
||||
- id: code_copy
|
||||
translation: "хуулах"
|
||||
|
||||
- id: code_copied
|
||||
translation: "хуулсан!"
|
28
i18n/ms.yaml
Normal file
28
i18n/ms.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
- id: prev_page
|
||||
translation: "Halaman Sebelumnya"
|
||||
|
||||
- id: next_page
|
||||
translation: "Halaman Seterusnya"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 minit"
|
||||
other: "{{ .Count }} minit"
|
||||
|
||||
- id: toc
|
||||
translation: "Isi Kandungan"
|
||||
|
||||
- id: translations
|
||||
translation: "Terjemahan"
|
||||
|
||||
- id: home
|
||||
translation: "Home"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Sunting"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Salin"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Disalin!"
|
33
i18n/nl.yaml
Normal file
33
i18n/nl.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Vorige"
|
||||
|
||||
- id: next_page
|
||||
translation: "Volgende"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "woord"
|
||||
other: "{{ .Count }} woorden"
|
||||
|
||||
- id: toc
|
||||
translation: "Inhoudsopgave"
|
||||
|
||||
- id: translations
|
||||
translation: "Vertalingen"
|
||||
|
||||
- id: home
|
||||
translation: "Startpagina"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Bewerk"
|
||||
|
||||
- id: code_copy
|
||||
translation: "kopieer"
|
||||
|
||||
- id: code_copied
|
||||
translation: "gekopieerd!"
|
33
i18n/no.yaml
Normal file
33
i18n/no.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Forrige Side"
|
||||
|
||||
- id: next_page
|
||||
translation: "Neste Side"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "ord"
|
||||
other: "{{ .Count }} ord"
|
||||
|
||||
- id: toc
|
||||
translation: "Innholdsfortegnelse"
|
||||
|
||||
- id: translations
|
||||
translation: "Oversettelser"
|
||||
|
||||
- id: home
|
||||
translation: "Hjem"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Rediger"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Kopier"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Kopiert!"
|
33
i18n/pl.yaml
Normal file
33
i18n/pl.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Poprzednia"
|
||||
|
||||
- id: next_page
|
||||
translation: "Następna"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "słowo"
|
||||
other: "{{ .Count }} słów"
|
||||
|
||||
- id: toc
|
||||
translation: "Spis treści"
|
||||
|
||||
- id: translations
|
||||
translation: "Tłumaczenia"
|
||||
|
||||
- id: home
|
||||
translation: "Strona Główna"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Edytuj"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Kopiuj"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Skopiowano!"
|
33
i18n/pt.yaml
Normal file
33
i18n/pt.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Página Anterior"
|
||||
|
||||
- id: next_page
|
||||
translation: "Próxima Página"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 minuto"
|
||||
other: "{{ .Count }} minutos"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "palavra"
|
||||
other: "{{ .Count }} palavras"
|
||||
|
||||
- id: toc
|
||||
translation: "Conteúdo"
|
||||
|
||||
- id: translations
|
||||
translation: "Traduções"
|
||||
|
||||
- id: home
|
||||
translation: "Início"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Editar"
|
||||
|
||||
- id: code_copy
|
||||
translation: "copiar"
|
||||
|
||||
- id: code_copied
|
||||
translation: "copiado!"
|
35
i18n/ru.yaml
35
i18n/ru.yaml
@@ -1,14 +1,39 @@
|
||||
- id: prev_page
|
||||
translation: 'Предыдущая'
|
||||
translation: "Предыдущая"
|
||||
|
||||
- id: next_page
|
||||
translation: 'Следующая'
|
||||
translation: "Следующая"
|
||||
|
||||
- id: read_time
|
||||
translation: '{{ .Count }} мин'
|
||||
translation:
|
||||
zero: "0 минут"
|
||||
one: "1 минута"
|
||||
few: "{{ .Count }} минуты"
|
||||
many: "{{ .Count }} минут"
|
||||
other: "{{ .Count }} минута"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
zero: "0 слов"
|
||||
one: "1 слово"
|
||||
few: "{{ .Count }} слова"
|
||||
many: "{{ .Count }} слов"
|
||||
other: "{{ .Count }} слово"
|
||||
|
||||
- id: toc
|
||||
translation: 'Оглавление'
|
||||
translation: "Оглавление"
|
||||
|
||||
- id: translations
|
||||
translation: 'Переводы'
|
||||
translation: "Переводы"
|
||||
|
||||
- id: home
|
||||
translation: "Главная"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Редактировать"
|
||||
|
||||
- id: code_copy
|
||||
translation: "копировать"
|
||||
|
||||
- id: code_copied
|
||||
translation: "скопировано!"
|
28
i18n/sv.yaml
Normal file
28
i18n/sv.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
- id: prev_page
|
||||
translation: "Förra Sidan"
|
||||
|
||||
- id: next_page
|
||||
translation: "Nästa Sida"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 min"
|
||||
other: "{{ .Count }} min"
|
||||
|
||||
- id: toc
|
||||
translation: "Innehållsförteckning"
|
||||
|
||||
- id: translations
|
||||
translation: "Översättningar"
|
||||
|
||||
- id: home
|
||||
translation: "Hem"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Redigera"
|
||||
|
||||
- id: code_copy
|
||||
translation: "kopiera"
|
||||
|
||||
- id: code_copied
|
||||
translation: "kopierad!"
|
33
i18n/sw.yaml
Normal file
33
i18n/sw.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Uliopita"
|
||||
|
||||
- id: next_page
|
||||
translation: "Ujao"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "dakika 1"
|
||||
other: "dakika {{ .Count }}"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "neno"
|
||||
other: "maneno {{ .Count }}"
|
||||
|
||||
- id: toc
|
||||
translation: "Jedwali la Yaliyomo"
|
||||
|
||||
- id: translations
|
||||
translation: "Tafsiri"
|
||||
|
||||
- id: home
|
||||
translation: "Mwanzo"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Hariri"
|
||||
|
||||
- id: code_copy
|
||||
translation: "nakili"
|
||||
|
||||
- id: code_copied
|
||||
translation: "nakiliwa!"
|
33
i18n/th.yaml
Normal file
33
i18n/th.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "ก่อนหน้า"
|
||||
|
||||
- id: next_page
|
||||
translation: "ถัดไป"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 นาที"
|
||||
other: "{{ .Count }} นาที"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "คำ"
|
||||
other: "{{ .Count }} คำ"
|
||||
|
||||
- id: toc
|
||||
translation: "สารบัญ"
|
||||
|
||||
- id: translations
|
||||
translation: "การแปล"
|
||||
|
||||
- id: home
|
||||
translation: "หน้าหลัก"
|
||||
|
||||
- id: edit_post
|
||||
translation: "แก้ไข"
|
||||
|
||||
- id: code_copy
|
||||
translation: "คัดลอก"
|
||||
|
||||
- id: code_copied
|
||||
translation: "คัดลอกแล้ว!"
|
33
i18n/tr.yaml
Normal file
33
i18n/tr.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Önceki"
|
||||
|
||||
- id: next_page
|
||||
translation: "Sonraki"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 dk"
|
||||
other: "{{ .Count }} dk"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one : "kelime"
|
||||
other: "{{ .Count }} kelime"
|
||||
|
||||
- id: toc
|
||||
translation: "İçindekiler"
|
||||
|
||||
- id: translations
|
||||
translation: "Çeviriler"
|
||||
|
||||
- id: home
|
||||
translation: "Anasayfa"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Düzenle"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Kopyala"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Kopyalandı!"
|
25
i18n/uk.yaml
Normal file
25
i18n/uk.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
- id: prev_page
|
||||
translation: "Попередня"
|
||||
|
||||
- id: next_page
|
||||
translation: "Наступна"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 хвилина"
|
||||
other: "{{ .Count }} хвилин"
|
||||
|
||||
- id: toc
|
||||
translation: "Зміст"
|
||||
|
||||
- id: translations
|
||||
translation: "Переклади"
|
||||
|
||||
- id: home
|
||||
translation: "Головна"
|
||||
|
||||
- id: code_copy
|
||||
translation: "копіювати"
|
||||
|
||||
- id: code_copied
|
||||
translation: "скопійовано!"
|
20
i18n/uz.yaml
Normal file
20
i18n/uz.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
- id: prev_page
|
||||
translation: "Oldingi sahifa"
|
||||
|
||||
- id: next_page
|
||||
translation: "Keyingi sahifa"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "Bir daqiqa"
|
||||
other: "{{ .Count }} daqiqa"
|
||||
|
||||
- id: toc
|
||||
translation: "Mundarija"
|
||||
|
||||
- id: translations
|
||||
translation: "Tarjimalar"
|
||||
|
||||
- id: home
|
||||
translation: "Bosh sahifa"
|
||||
|
33
i18n/vi.yaml
Normal file
33
i18n/vi.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "Trang trước"
|
||||
|
||||
- id: next_page
|
||||
translation: "Trang tiếp theo"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one: "1 phút"
|
||||
other: "{{ .Count }} phút"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "từ"
|
||||
other: "{{ .Count }} từ"
|
||||
|
||||
- id: toc
|
||||
translation: "Mục lục"
|
||||
|
||||
- id: translations
|
||||
translation: "Bản dịch"
|
||||
|
||||
- id: home
|
||||
translation: "Trang chủ"
|
||||
|
||||
- id: edit_post
|
||||
translation: "Chỉnh sửa"
|
||||
|
||||
- id: code_copy
|
||||
translation: "Sao chép"
|
||||
|
||||
- id: code_copied
|
||||
translation: "Đã sao chép!"
|
33
i18n/zh-tw.yaml
Normal file
33
i18n/zh-tw.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
- id: prev_page
|
||||
translation: "上一頁"
|
||||
|
||||
- id: next_page
|
||||
translation: "下一頁"
|
||||
|
||||
- id: read_time
|
||||
translation:
|
||||
one : "1 分鐘"
|
||||
other: "{{ .Count }} 分鐘"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "字"
|
||||
other: "{{ .Count }} 字"
|
||||
|
||||
- id: toc
|
||||
translation: "目錄"
|
||||
|
||||
- id: translations
|
||||
translation: "語言"
|
||||
|
||||
- id: home
|
||||
translation: "首頁"
|
||||
|
||||
- id: edit_post
|
||||
translation: "編輯"
|
||||
|
||||
- id: code_copy
|
||||
translation: "複製"
|
||||
|
||||
- id: code_copied
|
||||
translation: "已複製!"
|
17
i18n/zh.yaml
17
i18n/zh.yaml
@@ -9,8 +9,25 @@
|
||||
one : "1 分钟"
|
||||
other: "{{ .Count }} 分钟"
|
||||
|
||||
- id: words
|
||||
translation:
|
||||
one: "字"
|
||||
other: "{{ .Count }} 字"
|
||||
|
||||
- id: toc
|
||||
translation: "目录"
|
||||
|
||||
- id: translations
|
||||
translation: "语言"
|
||||
|
||||
- id: home
|
||||
translation: "主页"
|
||||
|
||||
- id: edit_post
|
||||
translation: "编辑"
|
||||
|
||||
- id: code_copy
|
||||
translation: "复制"
|
||||
|
||||
- id: code_copied
|
||||
translation: "已复制!"
|
||||
|
@@ -1,3 +1,3 @@
|
||||
{{ define "main" }}
|
||||
{{- define "main" }}
|
||||
<div class="not-found">404</div>
|
||||
{{ end }}{{/* end main */}}
|
||||
{{- end }}{{/* end main */ -}}
|
||||
|
1
layouts/_default/_markup/render-image.html
Normal file
1
layouts/_default/_markup/render-image.html
Normal file
@@ -0,0 +1 @@
|
||||
<img loading="lazy" src="{{ .Destination | safeURL }}" alt="{{ .Text }}" {{ with .Title}} title="{{ . }}" {{ end }} />
|
@@ -1,10 +1,38 @@
|
||||
{{- define "main" }}
|
||||
|
||||
<header class="page-header">
|
||||
<h1>{{ .Title }}</h1>
|
||||
<h1>
|
||||
{{ .Title }}
|
||||
{{- if (.Param "ShowRssButtonInSectionTermList") }}
|
||||
{{- $rss := (.OutputFormats.Get "rss") }}
|
||||
{{- if (eq .Kind `page`) }}
|
||||
{{- $rss = (.Parent.OutputFormats.Get "rss") }}
|
||||
{{- end }}
|
||||
{{- with $rss }}
|
||||
<a href="{{ .RelPermalink }}" title="RSS" aria-label="RSS">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round" height="23">
|
||||
<path d="M4 11a9 9 0 0 1 9 9" />
|
||||
<path d="M4 4a16 16 0 0 1 16 16" />
|
||||
<circle cx="5" cy="19" r="1" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
{{ .Description }}
|
||||
</div>
|
||||
{{- end }}
|
||||
</header>
|
||||
|
||||
{{- $pages := where site.RegularPages "Type" "in" site.Params.mainSections }}
|
||||
|
||||
{{- if site.Params.ShowAllPagesInArchive }}
|
||||
{{- $pages = site.RegularPages }}
|
||||
{{- end }}
|
||||
|
||||
{{- range $pages.GroupByPublishDate "2006" }}
|
||||
{{- if ne .Key "0001" }}
|
||||
<div class="archive-year">
|
||||
@@ -15,11 +43,19 @@
|
||||
<div class="archive-month">
|
||||
<h3 class="archive-month-header">{{- .Key }}<sup class="archive-count"> {{ len .Pages }}</sup></h3>
|
||||
<div class="archive-posts">
|
||||
{{- range .Pages }}
|
||||
{{- range .Pages }}
|
||||
{{- if eq .Kind "page" }}
|
||||
<div class="archive-entry">
|
||||
<h3 class="archive-entry-title">
|
||||
<h3 class="archive-entry-title entry-hint-parent">
|
||||
{{- .Title | markdownify }}
|
||||
{{- if .Draft }}
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="15" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
{{- end }}
|
||||
</h3>
|
||||
<div class="archive-meta">
|
||||
{{- partial "post_meta.html" . -}}
|
||||
@@ -35,4 +71,4 @@
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- end }}{{/* end main */}}
|
||||
{{- end }}{{/* end main */}}
|
||||
|
@@ -1,5 +1,9 @@
|
||||
{{- if lt hugo.Version "0.112.4" }}
|
||||
{{- errorf "=> hugo v0.112.4 or greater is required for hugo-PaperMod to build " }}
|
||||
{{- end -}}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ .Site.Language }}" dir="{{ .Language.LanguageDirection | default "auto" }}">
|
||||
<html lang="{{ site.Language }}" dir="{{ .Language.LanguageDirection | default "auto" }}">
|
||||
|
||||
<head>
|
||||
{{- partial "head.html" . }}
|
||||
@@ -9,16 +13,15 @@
|
||||
{{- if (or (ne .Kind `page` ) (eq .Layout `archives`) (eq .Layout `search`)) -}}
|
||||
{{- print "list" -}}
|
||||
{{- end -}}
|
||||
{{- if eq $.Site.Params.defaultTheme `dark` -}}
|
||||
{{- if eq site.Params.defaultTheme `dark` -}}
|
||||
{{- print " dark" }}
|
||||
{{- end -}}
|
||||
" id="top">
|
||||
{{- partialCached "header.html" . .Page}}
|
||||
{{- partialCached "header.html" . .Page -}}
|
||||
<main class="main">
|
||||
{{- block "main" . }}
|
||||
{{- end }}
|
||||
{{- block "main" . }}{{ end }}
|
||||
</main>
|
||||
{{- partialCached "footer.html" . .Type .Layout .Params }}
|
||||
{{ partialCached "footer.html" . .Layout .Kind (.Param "hideFooter") (.Param "ShowCodeCopyButtons") -}}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
@@ -1,6 +1,7 @@
|
||||
{{- $.Scratch.Add "index" slice -}}
|
||||
{{- range .Site.RegularPages -}}
|
||||
{{- range site.RegularPages -}}
|
||||
{{- if and (not .Params.searchHidden) (ne .Layout `archives`) (ne .Layout `search`) }}
|
||||
{{- $.Scratch.Add "index" (dict "title" .Title "content" .Plain "permalink" .Permalink "summary" .Summary) -}}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- $.Scratch.Get "index" | jsonify -}}
|
||||
|
||||
|
@@ -1,52 +1,94 @@
|
||||
{{- define "main" }}
|
||||
|
||||
{{- if (and .Site.Params.profileMode.enabled .IsHome) }}
|
||||
{{- if (and site.Params.profileMode.enabled .IsHome) }}
|
||||
{{- partial "index_profile.html" . }}
|
||||
{{- else }} {{/* if not profileMode */}}
|
||||
|
||||
{{- if not .IsHome | and .Title }}
|
||||
<header class="page-header">
|
||||
<h1>{{ .Title }}</h1>
|
||||
{{- partial "breadcrumbs.html" . }}
|
||||
<h1>
|
||||
{{ .Title }}
|
||||
{{- if and (or (eq .Kind `term`) (eq .Kind `section`)) (.Param "ShowRssButtonInSectionTermList") }}
|
||||
{{- with .OutputFormats.Get "rss" }}
|
||||
<a href="{{ .RelPermalink }}" title="RSS" aria-label="RSS">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round" height="23">
|
||||
<path d="M4 11a9 9 0 0 1 9 9" />
|
||||
<path d="M4 4a16 16 0 0 1 16 16" />
|
||||
<circle cx="5" cy="19" r="1" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
{{ .Description | markdownify }}
|
||||
</div>
|
||||
{{- end }}
|
||||
</header>
|
||||
{{- end }}
|
||||
|
||||
{{- if .Content }}
|
||||
<div class="post-content">
|
||||
{{- if not (.Param "disableAnchoredHeadings") }}
|
||||
{{- partial "anchored_headings.html" .Content -}}
|
||||
{{- else }}{{ .Content }}{{ end }}
|
||||
</div>
|
||||
{{- end }}
|
||||
|
||||
{{- $pages := union .RegularPages .Sections }}
|
||||
|
||||
{{- if .IsHome }}
|
||||
{{- $pages = where site.RegularPages "Type" "in" site.Params.mainSections }}
|
||||
{{- end}}
|
||||
{{- $pages = where $pages "Params.hiddenInHomeList" "!=" "true" }}
|
||||
{{- end }}
|
||||
|
||||
{{ $paginator := .Paginate $pages }}
|
||||
{{ $term := .Data.Term}}
|
||||
{{- $paginator := .Paginate $pages }}
|
||||
|
||||
{{- if and .IsHome site.Params.homeInfoParams (eq $paginator.PageNumber 1) }}
|
||||
{{- partial "home_info.html" . }}
|
||||
{{- end }}
|
||||
|
||||
{{- $term := .Data.Term }}
|
||||
{{- range $index, $page := $paginator.Pages }}
|
||||
|
||||
{{- $class := "post-entry" }}
|
||||
{{- if (and $.IsHome (eq $paginator.PageNumber 1) (eq $index 0)) }}
|
||||
{{- if .Site.Params.homeInfoParams | or .Site.Params.disableSpecial1stPost}}
|
||||
{{- partial "home_info.html" . }}
|
||||
{{- else}}
|
||||
|
||||
{{- $user_preferred := or site.Params.disableSpecial1stPost site.Params.homeInfoParams }}
|
||||
{{- if (and $.IsHome (eq $paginator.PageNumber 1) (eq $index 0) (not $user_preferred)) }}
|
||||
{{- $class = "first-entry" }}
|
||||
{{- end }}
|
||||
{{- else if $term }}
|
||||
{{- $class = "post-entry tag-entry" }}
|
||||
{{- end }}
|
||||
|
||||
<article class="{{ $class }}">
|
||||
{{- $isHidden := (.Site.Params.cover.hidden | default .Site.Params.cover.hiddenInList)}}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsHome" true "isHidden" $isHidden) }}
|
||||
{{- $isHidden := (.Param "cover.hiddenInList") | default (.Param "cover.hidden") | default false }}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsSingle" false "isHidden" $isHidden) }}
|
||||
<header class="entry-header">
|
||||
<h2>
|
||||
{{ .Title }}
|
||||
{{- if .Draft }}<div class="entry-isdraft"><sup> [draft]</sup></div>{{- end }}
|
||||
<h2 class="entry-hint-parent">
|
||||
{{- .Title }}
|
||||
{{- if .Draft }}
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
{{- end }}
|
||||
</h2>
|
||||
</header>
|
||||
{{- if (ne .Site.Params.hideSummary true)}}
|
||||
<section class="entry-content">
|
||||
<p>{{ .Summary | plainify | htmlUnescape }}...</p>
|
||||
</section>
|
||||
{{- if (ne (.Param "hideSummary") true) }}
|
||||
<div class="entry-content">
|
||||
<p>{{ .Summary | plainify | htmlUnescape }}{{ if .Truncated }}...{{ end }}</p>
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if not (.Param "hideMeta") }}
|
||||
<footer class="entry-footer">
|
||||
{{- partial "post_meta.html" . -}}
|
||||
</footer>
|
||||
{{- end }}
|
||||
<a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a>
|
||||
</article>
|
||||
{{- end }}
|
||||
@@ -55,13 +97,25 @@
|
||||
<footer class="page-footer">
|
||||
<nav class="pagination">
|
||||
{{- if $paginator.HasPrev }}
|
||||
<a class="prev" href="{{ $paginator.Prev.URL | absURL }}">« {{ i18n "prev_page" }}</a>
|
||||
<a class="prev" href="{{ $paginator.Prev.URL | absURL }}">
|
||||
« {{ i18n "prev_page" }}
|
||||
{{- if (.Param "ShowPageNums") }}
|
||||
{{- sub $paginator.PageNumber 1 }}/{{ $paginator.TotalPages }}
|
||||
{{- end }}
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- if $paginator.HasNext }}
|
||||
<a class="next" href="{{ $paginator.Next.URL | absURL }}">{{ i18n "next_page" }} »</a>
|
||||
<a class="next" href="{{ $paginator.Next.URL | absURL }}">
|
||||
{{- i18n "next_page" }}
|
||||
{{- if (.Param "ShowPageNums") }}
|
||||
{{- add 1 $paginator.PageNumber }}/{{ $paginator.TotalPages }}
|
||||
{{- end }} »
|
||||
</a>
|
||||
{{- end }}
|
||||
</nav>
|
||||
</footer>
|
||||
{{- end }}
|
||||
{{end}}{{/* end profileMode */}}
|
||||
{{- end }}{{- /* end main */ -}}
|
||||
|
||||
{{- end }}{{/* end profileMode */}}
|
||||
|
||||
{{- end }}{{- /* end main */ -}}
|
||||
|
83
layouts/_default/rss.xml
Normal file
83
layouts/_default/rss.xml
Normal file
@@ -0,0 +1,83 @@
|
||||
{{- /* Deprecate site.Author.email in favor of site.Params.author.email */}}
|
||||
{{- $authorEmail := "" }}
|
||||
{{- with site.Params.author }}
|
||||
{{- if reflect.IsMap . }}
|
||||
{{- with .email }}
|
||||
{{- $authorEmail = . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- with site.Author.email }}
|
||||
{{- $authorEmail = . }}
|
||||
{{- warnf "The author key in site configuration is deprecated. Use params.author.email instead." }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- /* Deprecate site.Author.name in favor of site.Params.author.name */}}
|
||||
{{- $authorName := "" }}
|
||||
{{- with site.Params.author }}
|
||||
{{- if reflect.IsMap . }}
|
||||
{{- with .name }}
|
||||
{{- $authorName = . }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- $authorName = . }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- with site.Author.name }}
|
||||
{{- $authorName = . }}
|
||||
{{- warnf "The author key in site configuration is deprecated. Use params.author.name instead." }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- $pctx := . }}
|
||||
{{- if .IsHome }}{{ $pctx = site }}{{ end }}
|
||||
{{- $pages := slice }}
|
||||
{{- if or $.IsHome $.IsSection }}
|
||||
{{- $pages = $pctx.RegularPages }}
|
||||
{{- else }}
|
||||
{{- $pages = $pctx.Pages }}
|
||||
{{- end }}
|
||||
{{- $limit := site.Config.Services.RSS.Limit }}
|
||||
{{- if ge $limit 1 }}
|
||||
{{- $pages = $pages | first $limit }}
|
||||
{{- end }}
|
||||
{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>{{ if eq .Title site.Title }}{{ site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ site.Title }}{{ end }}</title>
|
||||
<link>{{ .Permalink }}</link>
|
||||
<description>Recent content {{ if ne .Title site.Title }}{{ with .Title }}in {{ . }} {{ end }}{{ end }}on {{ site.Title }}</description>
|
||||
{{- with site.Params.images }}
|
||||
<image>
|
||||
<title>{{ site.Title }}</title>
|
||||
<url>{{ index . 0 | absURL }}</url>
|
||||
<link>{{ index . 0 | absURL }}</link>
|
||||
</image>
|
||||
{{- end }}
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>{{ site.Language.LanguageCode }}</language>{{ with $authorEmail }}
|
||||
<managingEditor>{{.}}{{ with $authorName }} ({{ . }}){{ end }}</managingEditor>{{ end }}{{ with $authorEmail }}
|
||||
<webMaster>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</webMaster>{{ end }}{{ with site.Copyright }}
|
||||
<copyright>{{ . }}</copyright>{{ end }}{{ if not .Date.IsZero }}
|
||||
<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
|
||||
{{- with .OutputFormats.Get "RSS" }}
|
||||
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
|
||||
{{- end }}
|
||||
{{- range $pages }}
|
||||
{{- if and (ne .Layout `search`) (ne .Layout `archives`) }}
|
||||
<item>
|
||||
<title>{{ .Title }}</title>
|
||||
<link>{{ .Permalink }}</link>
|
||||
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
|
||||
{{- with $authorEmail }}<author>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</author>{{ end }}
|
||||
<guid>{{ .Permalink }}</guid>
|
||||
<description>{{ with .Description | html }}{{ . }}{{ else }}{{ .Summary | html }}{{ end -}}</description>
|
||||
{{- if site.Params.ShowFullTextinRSS }}
|
||||
<content:encoded>{{ (printf "<![CDATA[%s]]>" .Content) | safeHTML }}</content:encoded>
|
||||
{{- end }}
|
||||
</item>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</channel>
|
||||
</rss>
|
@@ -1,38 +1,29 @@
|
||||
{{- define "main" }}
|
||||
|
||||
<header class="page-header">
|
||||
<h1>{{ .Title }}
|
||||
<h1>{{- (printf "%s " .Title ) | htmlUnescape -}}
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24" fill="none"
|
||||
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="11" cy="11" r="8"></circle>
|
||||
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
|
||||
</svg>
|
||||
</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
{{ .Description }}
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if not (.Param "hideMeta") }}
|
||||
<div class="post-meta">
|
||||
{{- if .IsTranslated -}}
|
||||
<ul class="i18n_list">
|
||||
{{- i18n "translations" | default "Translations"}}:
|
||||
{{- range .Translations }}
|
||||
<li>
|
||||
<a href="{{ .Permalink }}">
|
||||
{{- if (and $.Site.Params.displayFullLangName (.Language.LanguageName)) }}
|
||||
{{- .Language.LanguageName | emojify | humanize -}}
|
||||
{{- else }}
|
||||
{{- .Lang | humanize -}}
|
||||
{{- end -}}
|
||||
</a>
|
||||
</li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
{{- end }}
|
||||
{{- partial "translation_list.html" . -}}
|
||||
</div>
|
||||
{{- end}}
|
||||
{{- end }}
|
||||
</header>
|
||||
|
||||
<div id="searchbox">
|
||||
<input id="searchInput" autofocus placeholder="{{.Title}} ↵" aria-label="search">
|
||||
<input id="searchInput" autofocus placeholder="{{ .Params.placeholder | default (printf "%s ↵" .Title) }}"
|
||||
aria-label="search" type="search" autocomplete="off" maxlength="64">
|
||||
<ul id="searchResults" aria-label="search results"></ul>
|
||||
</div>
|
||||
|
||||
{{- end }}{{/* end main */}}
|
||||
{{- end }}{{/* end main */}}
|
||||
|
@@ -2,62 +2,60 @@
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<h1 class="post-title">
|
||||
{{ partial "breadcrumbs.html" . }}
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
{{ .Title }}
|
||||
{{- if .Draft }}<div class="entry-isdraft"><sup> [draft]</sup></div>{{- end }}
|
||||
{{- if .Draft }}
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="35" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
{{- end }}
|
||||
</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
{{ .Description }}
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if not (.Param "hideMeta") }}
|
||||
<div class="post-meta">
|
||||
{{- partial "post_meta.html" . -}}
|
||||
{{- if .IsTranslated -}} |
|
||||
<ul class="i18n_list">
|
||||
{{- i18n "translations" | default "Translations"}}:
|
||||
{{- range .Translations }}
|
||||
<li>
|
||||
<a href="{{ .Permalink }}">
|
||||
{{- if (and $.Site.Params.displayFullLangName (.Language.LanguageName)) }}
|
||||
{{- .Language.LanguageName | emojify | humanize -}}
|
||||
{{- else }}
|
||||
{{- .Lang | humanize -}}
|
||||
{{- end -}}
|
||||
</a>
|
||||
</li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
{{- end }}
|
||||
{{- partial "translation_list.html" . -}}
|
||||
{{- partial "edit_post.html" . -}}
|
||||
{{- partial "post_canonical.html" . -}}
|
||||
</div>
|
||||
{{- end}}
|
||||
{{- end }}
|
||||
</header>
|
||||
{{- $isHidden := ((.Site.Params.cover.hidden | default .Site.Params.cover.hiddenInSingle) | default .Params.cover.hidden )}}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsHome" false "isHidden" $isHidden) }}
|
||||
{{- $isHidden := (.Param "cover.hiddenInSingle") | default (.Param "cover.hidden") | default false }}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsSingle" true "isHidden" $isHidden) }}
|
||||
{{- if (.Param "ShowToc") }}
|
||||
<div class="toc">
|
||||
<details {{if (.Param "TocOpen") }} open{{ end }}>
|
||||
<summary accesskey="c" title="(Alt + C)">
|
||||
<div class="details">{{- i18n "toc" | default "Table of Contents" }}</div>
|
||||
</summary>
|
||||
<blockquote>
|
||||
{{- partial "toc.html" . }}
|
||||
</blockquote>
|
||||
</details>
|
||||
{{- partial "toc.html" . }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Content }}
|
||||
<div class="post-content">
|
||||
{{- if not (.Param "disableAnchoredHeadings") }}
|
||||
{{- partial "anchored_headings.html" .Content -}}
|
||||
{{- else }}{{ .Content }}{{ end }}
|
||||
</div>
|
||||
{{- end }}
|
||||
<div class="post-content">
|
||||
{{- partial "anchored_headings.html" .Content -}}
|
||||
</div>
|
||||
|
||||
{{- partial "extend_content.html" . }}
|
||||
|
||||
<footer class="post-footer">
|
||||
{{- if .Params.tags }}
|
||||
{{- $tags := .Language.Params.Taxonomies.tag | default "tags" }}
|
||||
<ul class="post-tags">
|
||||
{{- range ($.GetTerms "tags") }}
|
||||
{{- range ($.GetTerms $tags) }}
|
||||
<li><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
{{- if (.Param "ShowPostNavLinks") }}
|
||||
{{- partial "post_nav_links.html" . }}
|
||||
{{- end }}
|
||||
{{- if (and .Site.Params.ShowShareButtons (ne .Params.disableShare true) ) }}
|
||||
{{- partial "share_icons.html" . }}
|
||||
{{- if (and site.Params.ShowShareButtons (ne .Params.disableShare true)) }}
|
||||
{{- partial "share_icons.html" . -}}
|
||||
{{- end }}
|
||||
</footer>
|
||||
|
||||
@@ -66,4 +64,4 @@
|
||||
{{- end }}
|
||||
</article>
|
||||
|
||||
{{- end }}{{/* end main */}}
|
||||
{{- end }}{{/* end main */}}
|
||||
|
@@ -1,8 +1,13 @@
|
||||
{{ define "main" }}
|
||||
{{- define "main" }}
|
||||
|
||||
{{- if .Title }}
|
||||
<header class="page-header">
|
||||
<h1>{{ .Title }}</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
{{ .Description }}
|
||||
</div>
|
||||
{{- end }}
|
||||
</header>
|
||||
{{- end }}
|
||||
|
||||
@@ -11,7 +16,7 @@
|
||||
{{- range $key, $value := .Data.Terms.Alphabetical }}
|
||||
{{- $name := .Name }}
|
||||
{{- $count := .Count }}
|
||||
{{- with $.Site.GetPage (printf "/%s/%s" $type $name) }}
|
||||
{{- with site.GetPage (printf "/%s/%s" $type $name) }}
|
||||
<li>
|
||||
<a href="{{ .Permalink }}">{{ .Name }} <sup><strong><sup>{{ $count }}</sup></strong></sup> </a>
|
||||
</li>
|
||||
@@ -19,4 +24,4 @@
|
||||
{{- end }}
|
||||
</ul>
|
||||
|
||||
{{ end }}{{/* end main */}}
|
||||
{{- end }}{{/* end main */ -}}
|
||||
|
@@ -1,2 +1,2 @@
|
||||
<!-- formats .Content headings by adding an anchor -->
|
||||
{{- /* formats .Content headings by adding an anchor */ -}}
|
||||
{{ . | replaceRE "(<h[1-6] id=\"([^\"]+)\".+)(</h[1-6]+>)" "${1}<a hidden class=\"anchor\" aria-hidden=\"true\" href=\"#${2}\">#</a>${3}" | safeHTML }}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{{- if or .Params.author .Site.Params.author }}
|
||||
{{- $author := (.Params.author | default .Site.Params.author)}}
|
||||
{{- if or .Params.author site.Params.author }}
|
||||
{{- $author := (.Params.author | default site.Params.author) }}
|
||||
{{- $author_type := (printf "%T" $author) }}
|
||||
{{- if (or (eq $author_type "[]string") (eq $author_type "[]interface {}") ) }}
|
||||
{{- if (or (eq $author_type "[]string") (eq $author_type "[]interface {}")) }}
|
||||
{{- (delimit $author ", " ) }}
|
||||
{{- else }}
|
||||
{{- $author }}
|
||||
|
19
layouts/partials/breadcrumbs.html
Normal file
19
layouts/partials/breadcrumbs.html
Normal file
@@ -0,0 +1,19 @@
|
||||
{{- if (.Param "ShowBreadCrumbs") -}}
|
||||
<div class="breadcrumbs">
|
||||
{{- $url := replace .Parent.Permalink (printf "%s" site.BaseURL) "" }}
|
||||
{{- $lang_url := strings.TrimPrefix (printf "%s/" .Lang) $url -}}
|
||||
|
||||
<a href="{{ "" | absLangURL }}">{{ i18n "home" | default "Home" }}</a>
|
||||
{{- $scratch := newScratch }}
|
||||
{{- range $index, $element := split $lang_url "/" }}
|
||||
|
||||
{{- $scratch.Add "path" (printf "%s/" $element )}}
|
||||
{{- $bc_pg := site.GetPage ($scratch.Get "path") -}}
|
||||
|
||||
{{- if (and ($bc_pg) (gt (len . ) 0))}}
|
||||
{{- print " » " | safeHTML -}}<a href="{{ $bc_pg.Permalink }}">{{ $bc_pg.Name }}</a>
|
||||
{{- end }}
|
||||
|
||||
{{- end -}}
|
||||
</div>
|
||||
{{- end -}}
|
@@ -1,5 +1,3 @@
|
||||
<!-- Comments area start -->
|
||||
<!--
|
||||
to add comments read => https://gohugo.io/content-management/comments/
|
||||
-->
|
||||
<!-- Comments area end -->
|
||||
{{- /* Comments area start */ -}}
|
||||
{{- /* to add comments read => https://gohugo.io/content-management/comments/ */ -}}
|
||||
{{- /* Comments area end */ -}}
|
||||
|
@@ -1,35 +1,43 @@
|
||||
{{- with .cxt}} {{/* Apply proper context from dict */}}
|
||||
{{- if (and .Params.cover.image (not $.isHidden)) }}
|
||||
{{- $alt := (.Params.cover.alt | default .Params.cover.caption | plainify) }}
|
||||
{{- $loading := cond $.IsSingle "eager" "lazy" }}
|
||||
<figure class="entry-cover">
|
||||
{{- $addLink := (and .Site.Params.cover.linkFullImages (not $.IsHome)) }}
|
||||
{{- $cover := (.Page.Resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }}
|
||||
{{- $responsiveImages := (.Params.cover.responsiveImages | default site.Params.cover.responsiveImages) | default true }}
|
||||
{{- $addLink := (and site.Params.cover.linkFullImages $.IsSingle) }}
|
||||
{{- $pageBundleCover := (.Resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }}
|
||||
{{- $globalResourcesCover := (resources.ByType "image").GetMatch (printf "*%s*" (.Params.cover.image)) }}
|
||||
{{- $cover := (or $pageBundleCover $globalResourcesCover)}}
|
||||
{{- if $cover -}}{{/* i.e it is present in page bundle */}}
|
||||
{{- if $addLink }}<a href="{{ (path.Join .RelPermalink .Params.cover.image) | absURL }}" target="_blank"
|
||||
rel="noopener noreferrer">{{ end -}}
|
||||
{{- $sizes := (slice "360" "480" "720" "1080" "1500") }}
|
||||
{{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") }}
|
||||
{{- $prod := (hugo.IsProduction | or (eq .Site.Params.env "production")) }}
|
||||
{{- if (and (in $processableFormats $cover.MediaType.SubType) (ne .Site.Params.cover.responsiveImages false) (eq $prod true)) }}
|
||||
<img srcset="{{- range $size := $sizes -}}
|
||||
{{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") -}}
|
||||
{{- if hugo.IsExtended -}}
|
||||
{{- $processableFormats = $processableFormats | append "webp" -}}
|
||||
{{- end -}}
|
||||
{{- $prod := (hugo.IsProduction | or (eq site.Params.env "production")) }}
|
||||
{{- if (and (in $processableFormats $cover.MediaType.SubType) ($responsiveImages) (eq $prod true)) }}
|
||||
<img loading="{{$loading}}" srcset="{{- range $size := $sizes -}}
|
||||
{{- if (ge $cover.Width $size) -}}
|
||||
{{ printf "%s %s" (($cover.Resize (printf "%sx" $size)).Permalink) (printf "%sw ," $size) -}}
|
||||
{{ end }}
|
||||
{{- end -}}{{$cover.Permalink }} {{printf "%dw" ($cover.Width)}}"
|
||||
sizes="(min-width: 768px) 720px, 100vw" src="{{ $cover.Permalink }}" alt="{{ $alt }}" />
|
||||
{{- end -}}{{$cover.Permalink }} {{printf "%dw" ($cover.Width)}}"
|
||||
sizes="(min-width: 768px) 720px, 100vw" src="{{ $cover.Permalink }}" alt="{{ $alt }}"
|
||||
width="{{ $cover.Width }}" height="{{ $cover.Height }}">
|
||||
{{- else }}{{/* Unprocessable image or responsive images disabled */}}
|
||||
<img src="{{ (path.Join .RelPermalink .Params.cover.image) | absURL }}" alt="{{ $alt }}">
|
||||
<img loading="{{$loading}}" src="{{ (path.Join .RelPermalink .Params.cover.image) | absURL }}" alt="{{ $alt }}">
|
||||
{{- end }}
|
||||
{{- else }}{{/* For absolute urls and external links, no img processing here */}}
|
||||
{{- if $addLink }}<a href="{{ (.Params.cover.image) | absURL }}" target="_blank"
|
||||
rel="noopener noreferrer">{{ end -}}
|
||||
<img src="{{ (.Params.cover.image) | absURL }}" alt="{{ $alt }}">
|
||||
<img loading="{{$loading}}" src="{{ (.Params.cover.image) | absURL }}" alt="{{ $alt }}">
|
||||
{{- end }}
|
||||
{{- if $addLink }}</a>{{ end -}}
|
||||
{{/* Display Caption */}}
|
||||
{{- if not $.IsHome }}
|
||||
{{- if $.IsSingle }}
|
||||
{{ with .Params.cover.caption }}<p>{{ . | markdownify }}</p>{{- end }}
|
||||
{{- end }}
|
||||
</figure>
|
||||
{{- end }}{{/* End image */}}
|
||||
{{- end -}}{{/* End context */}}
|
||||
{{- end -}}{{/* End context */ -}}
|
||||
|
8
layouts/partials/edit_post.html
Normal file
8
layouts/partials/edit_post.html
Normal file
@@ -0,0 +1,8 @@
|
||||
{{- if and (or .Params.editPost.URL site.Params.editPost.URL) (not (.Param "editPost.disabled")) -}}
|
||||
{{- $fileUrlPath := path.Join .File.Path }}
|
||||
|
||||
{{- if or .Params.author site.Params.author (.Param "ShowReadingTime") (not .Date.IsZero) .IsTranslated }} | {{- end -}}
|
||||
<a href="{{ .Params.editPost.URL | default site.Params.editPost.URL }}{{ if .Params.editPost.appendFilePath | default ( site.Params.editPost.appendFilePath | default false ) }}/{{ $fileUrlPath }}{{ end }}" rel="noopener noreferrer" target="_blank">
|
||||
{{- .Params.editPost.Text | default (site.Params.editPost.Text | default (i18n "edit_post" | default "Edit")) -}}
|
||||
</a>
|
||||
{{- end }}
|
4
layouts/partials/extend_content.html
Normal file
4
layouts/partials/extend_content.html
Normal file
@@ -0,0 +1,4 @@
|
||||
{{- /* Extend content area start */ -}}
|
||||
{{- /* Insert any custom code. */ -}}
|
||||
{{- /* Can be overwritten by partial with the same name in the global layouts. */ -}}
|
||||
{{- /* Extend content area end */ -}}
|
@@ -1,5 +1,3 @@
|
||||
<!-- Footer custom content area start -->
|
||||
<!--
|
||||
Insert any custom code web-analytics, resources, etc. here
|
||||
-->
|
||||
<!-- Footer custom content area end -->
|
||||
{{- /* Footer custom content area start */ -}}
|
||||
{{- /* Insert any custom code web-analytics, resources, etc. here */ -}}
|
||||
{{- /* Footer custom content area end */ -}}
|
||||
|
@@ -1,5 +1,4 @@
|
||||
<!-- Head custom content area start -->
|
||||
<!--
|
||||
Insert any custom code (web-analytics, resources, etc.) - it will appear in the <head></head> section of every page. Can be overwritten by partial with the same name in the global layouts.
|
||||
-->
|
||||
<!-- Head custom content area end -->
|
||||
{{- /* Head custom content area start */ -}}
|
||||
{{- /* Insert any custom code (web-analytics, resources, etc.) - it will appear in the <head></head> section of every page. */ -}}
|
||||
{{- /* Can be overwritten by partial with the same name in the global layouts. */ -}}
|
||||
{{- /* Head custom content area end */ -}}
|
||||
|
@@ -1,39 +1,37 @@
|
||||
{{- if not (.Param "hideFooter") }}
|
||||
<footer class="footer">
|
||||
{{- if .Site.Copyright }}
|
||||
<span>{{ .Site.Copyright | markdownify }}</span>
|
||||
{{- if site.Copyright }}
|
||||
<span>{{ site.Copyright | markdownify }}</span>
|
||||
{{- else }}
|
||||
<span>© {{ now.Year }} <a href="{{ "" | absLangURL }}">{{ .Site.Title }}</a></span>
|
||||
<span>© {{ now.Year }} <a href="{{ "" | absLangURL }}">{{ site.Title }}</a></span>
|
||||
{{- end }}
|
||||
<span>·</span>
|
||||
<span>Powered by <a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a></span>
|
||||
<span>·</span>
|
||||
<span>Theme <a href="https://git.io/hugopapermod" rel="noopener" target="_blank">PaperMod</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||||
</span>
|
||||
</footer>
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)">
|
||||
<button class="top-link" id="top-link" type="button" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</button>
|
||||
</a>
|
||||
{{- partial "extend_footer.html" . -}}
|
||||
{{- $isHLJSdisabled := (.Site.Params.assets.disableHLJS | default .Params.disableHLJS ) }}
|
||||
{{- if (and (eq .Kind "page") (ne .Layout "archives") (ne .Layout "search") (not $isHLJSdisabled)) }}
|
||||
{{- if not .Site.Params.assets.disableFingerprinting }}
|
||||
{{- $highlight := slice (resources.Get "js/highlight.min.js") | resources.Concat "assets/js/highlight.js" | minify | fingerprint }}
|
||||
<script defer src="{{ $highlight.RelPermalink }}" integrity="{{ $highlight.Data.Integrity }}"
|
||||
onload="hljs.initHighlightingOnLoad();"></script>
|
||||
{{- else}}
|
||||
{{- $highlight := slice (resources.Get "js/highlight.min.js") | resources.Concat "assets/js/highlight.js" | minify }}
|
||||
<script defer src="{{ $highlight.RelPermalink }}" onload="hljs.initHighlightingOnLoad();"></script>
|
||||
{{- end}}
|
||||
{{- end }}
|
||||
|
||||
{{- if (not site.Params.disableScrollToTop) }}
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
|
||||
{{- partial "extend_footer.html" . }}
|
||||
|
||||
<script>
|
||||
window.onload = function () {
|
||||
if (localStorage.getItem("menu-scroll-position")) {
|
||||
document.getElementById('menu').scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
@@ -48,10 +46,15 @@
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.replaceState(null, null, `#${id}`);
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
{{- if (not site.Params.disableScrollToTop) }}
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
@@ -63,12 +66,10 @@
|
||||
}
|
||||
};
|
||||
|
||||
function menu_on_scroll() {
|
||||
localStorage.setItem("menu-scroll-position", document.getElementById('menu').scrollLeft);
|
||||
}
|
||||
|
||||
</script>
|
||||
{{- if (not .Site.Params.disableThemeToggle) }}
|
||||
{{- end }}
|
||||
|
||||
{{- if (not site.Params.disableThemeToggle) }}
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
@@ -82,3 +83,53 @@
|
||||
|
||||
</script>
|
||||
{{- end }}
|
||||
|
||||
{{- if (and (eq .Kind "page") (ne .Layout "archives") (ne .Layout "search") (.Param "ShowCodeCopyButtons")) }}
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = '{{- i18n "code_copy" | default "copy" }}';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = '{{- i18n "code_copied" | default "copied!" }}';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = '{{- i18n "code_copy" | default "copy" }}';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
// td containing LineNos
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
// table containing LineNos and code
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
// code blocks not having highlight as parent class
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{{- end }}
|
||||
|
@@ -1,79 +1,170 @@
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
{{- if hugo.IsProduction | or (eq .Site.Params.env "production") }}
|
||||
{{- if hugo.IsProduction | or (eq site.Params.env "production") | and (ne .Params.robotsNoIndex true) }}
|
||||
<meta name="robots" content="index, follow">
|
||||
{{- else }}
|
||||
<meta name=" robots" content="noindex, nofollow">
|
||||
{{- end -}}
|
||||
<!-- Title -->
|
||||
<title>{{ if .IsHome }}{{else}}{{ if .Title }}{{ .Title }} | {{ end }}{{end}}{{ .Site.Title }}</title>
|
||||
<!-- Meta -->
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
{{- end }}
|
||||
|
||||
{{- /* Title */}}
|
||||
<title>{{ if .IsHome }}{{ else }}{{ if .Title }}{{ .Title }} | {{ end }}{{ end }}{{ site.Title }}</title>
|
||||
|
||||
{{- /* Meta */}}
|
||||
{{- if .IsHome }}
|
||||
{{ with site.Params.keywords -}}<meta name="keywords" content="{{- range $i, $e := . }}{{ if $i }}, {{ end }}{{ $e }}{{ end }}">{{ end }}
|
||||
{{- else }}
|
||||
<meta name="keywords" content="{{ if .Params.keywords -}}
|
||||
{{- range $i, $e := .Params.keywords }}{{ if $i }}, {{ end }}{{ $e }}{{ end }} {{- else }}
|
||||
{{- range $i, $e := .Params.tags }}{{ if $i }}, {{ end }}{{ $e }}{{ end }} {{- end -}}" />
|
||||
<meta name="description" content="{{- with .Description }}{{ . }}{{- else }}{{- if .IsPage}}
|
||||
{{- .Summary | default (printf "%s - %s" .Title .Site.Title) }}{{- else }}
|
||||
{{- with .Site.Params.description }}{{ . }}{{- end }}{{- end }}{{- end -}}">
|
||||
{{- range $i, $e := .Params.tags }}{{ if $i }}, {{ end }}{{ $e }}{{ end }} {{- end -}}">
|
||||
{{- end }}
|
||||
<meta name="description" content="{{- with .Description }}{{ . }}{{- else }}{{- if or .IsPage .IsSection}}
|
||||
{{- .Summary | default (printf "%s - %s" .Title site.Title) }}{{- else }}
|
||||
{{- with site.Params.description }}{{ . }}{{- end }}{{- end }}{{- end -}}">
|
||||
<meta name="author" content="{{ (partial "author.html" . ) }}">
|
||||
<link rel="canonical" href="{{ if .Params.canonicalURL -}} {{ trim .Params.canonicalURL " " }} {{- else -}} {{ .Permalink }} {{- end }}" />
|
||||
{{- if .Site.Params.analytics.google.SiteVerificationTag }}
|
||||
<meta name="google-site-verification" content="{{ .Site.Params.analytics.google.SiteVerificationTag }}" />
|
||||
{{- end}}
|
||||
<!-- Styles -->
|
||||
{{- $common := (resources.Match "css/*.css") | resources.Concat "assets/css/common.css" }}
|
||||
{{- $extended := (resources.Match "css/extended/*.css") | resources.Concat "assets/css/extended.css" }}
|
||||
{{- /* bundle all required css */}}
|
||||
{{- /* Add extended css after theme style */ -}}
|
||||
{{- $stylesheet := (slice $common $extended) | resources.Concat "assets/css/stylesheet.css" | minify }}
|
||||
<link rel="canonical" href="{{ if .Params.canonicalURL -}} {{ trim .Params.canonicalURL " " }} {{- else -}} {{ .Permalink }} {{- end }}">
|
||||
{{- if site.Params.analytics.google.SiteVerificationTag }}
|
||||
<meta name="google-site-verification" content="{{ site.Params.analytics.google.SiteVerificationTag }}">
|
||||
{{- end }}
|
||||
{{- if site.Params.analytics.yandex.SiteVerificationTag }}
|
||||
<meta name="yandex-verification" content="{{ site.Params.analytics.yandex.SiteVerificationTag }}">
|
||||
{{- end }}
|
||||
{{- if site.Params.analytics.bing.SiteVerificationTag }}
|
||||
<meta name="msvalidate.01" content="{{ site.Params.analytics.bing.SiteVerificationTag }}">
|
||||
{{- end }}
|
||||
{{- if site.Params.analytics.naver.SiteVerificationTag }}
|
||||
<meta name="naver-site-verification" content="{{ site.Params.analytics.naver.SiteVerificationTag }}">
|
||||
{{- end }}
|
||||
|
||||
{{- if not .Site.Params.assets.disableFingerprinting }}
|
||||
{{- $stylesheet := $stylesheet | fingerprint -}}
|
||||
<link href="{{ $stylesheet.RelPermalink }}" integrity="{{ $stylesheet.Data.Integrity }}" rel="preload stylesheet"
|
||||
as="style">
|
||||
{{- else}}
|
||||
<link href="{{ $stylesheet.RelPermalink }}" rel="preload stylesheet" as="style">
|
||||
{{- end}}
|
||||
<!-- Search -->
|
||||
{{- /* Styles */}}
|
||||
|
||||
{{- /* includes */}}
|
||||
{{- $includes := slice }}
|
||||
{{- $includes = $includes | append (" " | resources.FromString "assets/css/includes-blank.css")}}
|
||||
|
||||
{{- if not (eq site.Params.assets.disableScrollBarStyle true) }}
|
||||
{{- $ScrollStyle := (resources.Get "css/includes/scroll-bar.css") }}
|
||||
{{- $includes = (append $ScrollStyle $includes) }}
|
||||
{{- end }}
|
||||
|
||||
{{- $includes_all := $includes | resources.Concat "assets/css/includes.css" }}
|
||||
|
||||
{{- $theme_vars := (resources.Get "css/core/theme-vars.css") }}
|
||||
{{- $reset := (resources.Get "css/core/reset.css") }}
|
||||
{{- $media := (resources.Get "css/core/zmedia.css") }}
|
||||
{{- $license_css := (resources.Get "css/core/license.css") }}
|
||||
{{- $common := (resources.Match "css/common/*.css") | resources.Concat "assets/css/common.css" }}
|
||||
|
||||
{{- /* include `an-old-hope` if hljs is on */}}
|
||||
{{- $isHLJSdisabled := (site.Params.assets.disableHLJS | default false) }}
|
||||
{{- $hljs := (cond ($isHLJSdisabled) (".chroma { background-color: unset !important;}" | resources.FromString "assets/css/hljs-blank.css") (resources.Get "css/hljs/an-old-hope.min.css")) }}
|
||||
|
||||
{{- /* order is important */}}
|
||||
{{- $core := (slice $theme_vars $reset $common $hljs $includes_all $media) | resources.Concat "assets/css/core.css" | resources.Minify }}
|
||||
{{- $extended := (resources.Match "css/extended/*.css") | resources.Concat "assets/css/extended.css" | resources.Minify }}
|
||||
|
||||
{{- /* bundle all required css */}}
|
||||
{{- /* Add extended css after theme style */ -}}
|
||||
{{- $stylesheet := (slice $license_css $core $extended) | resources.Concat "assets/css/stylesheet.css" }}
|
||||
|
||||
{{- if not site.Params.assets.disableFingerprinting }}
|
||||
{{- $stylesheet := $stylesheet | fingerprint }}
|
||||
<link crossorigin="anonymous" href="{{ $stylesheet.RelPermalink }}" integrity="{{ $stylesheet.Data.Integrity }}" rel="preload stylesheet" as="style">
|
||||
{{- else }}
|
||||
<link crossorigin="anonymous" href="{{ $stylesheet.RelPermalink }}" rel="preload stylesheet" as="style">
|
||||
{{- end }}
|
||||
|
||||
{{- /* Search */}}
|
||||
{{- if (eq .Layout `search`) -}}
|
||||
<link rel="preload" as="fetch" href="../index.json" crossOrigin="anonymous">
|
||||
{{- $fastsearch := resources.Get "js/fastsearch.js" | resources.ExecuteAsTemplate "js/fastsearch.js" .Site.Params.fuseOpts }}
|
||||
{{- $fusejs := resources.Get "js/fuse.js" }}
|
||||
{{- if not .Site.Params.assets.disableFingerprinting }}
|
||||
{{- $search := (slice $fusejs $fastsearch ) | resources.Concat "assets/js/search.js" | minify | fingerprint }}
|
||||
<script defer src="{{ $search.RelPermalink }}" onload="loadSearch();" integrity="{{ $search.Data.Integrity }}"></script>
|
||||
{{- else}}
|
||||
{{ $search := (slice $fusejs $fastsearch ) | resources.Concat "assets/js/search.js" | minify }}
|
||||
<script defer src="{{ $search.RelPermalink }}" onload="loadSearch();"></script>
|
||||
{{- end}}
|
||||
<link crossorigin="anonymous" rel="preload" as="fetch" href="../index.json">
|
||||
{{- $fastsearch := resources.Get "js/fastsearch.js" | js.Build (dict "params" (dict "fuseOpts" site.Params.fuseOpts)) | resources.Minify }}
|
||||
{{- $fusejs := resources.Get "js/fuse.basic.min.js" }}
|
||||
{{- $license_js := resources.Get "js/license.js" }}
|
||||
{{- if not site.Params.assets.disableFingerprinting }}
|
||||
{{- $search := (slice $fusejs $license_js $fastsearch ) | resources.Concat "assets/js/search.js" | fingerprint }}
|
||||
<script defer crossorigin="anonymous" src="{{ $search.RelPermalink }}" integrity="{{ $search.Data.Integrity }}"></script>
|
||||
{{- else }}
|
||||
{{- $search := (slice $fusejs $fastsearch ) | resources.Concat "assets/js/search.js" }}
|
||||
<script defer crossorigin="anonymous" src="{{ $search.RelPermalink }}"></script>
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
|
||||
<!-- Favicons -->
|
||||
<link rel="icon" href="{{- .Site.Params.assets.favicon | default "favicon.ico" | absURL -}}">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="
|
||||
{{- .Site.Params.assets.favicon16x16 | default "favicon-16x16.png" | absURL -}}">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="
|
||||
{{- .Site.Params.assets.favicon32x32 | default "favicon-32x32.png" | absURL -}}">
|
||||
<link rel="apple-touch-icon" href="
|
||||
{{- .Site.Params.assets.apple_touch_icon | default "apple-touch-icon.png" | absURL -}}">
|
||||
<link rel="mask-icon" href="{{- .Site.Params.assets.safari_pinned_tab | default "safari-pinned-tab.svg" | absURL -}}">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<!-- Generator -->
|
||||
{{- hugo.Generator }}
|
||||
<!-- RSS -->
|
||||
{{- range .AlternativeOutputFormats -}}
|
||||
<link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink | safeURL }}">
|
||||
{{- /* Highlight.js */}}
|
||||
{{- $isHLJSdisabled := (site.Params.assets.disableHLJS | default .Params.disableHLJS ) }}
|
||||
{{- if (and (eq .Kind "page") (ne .Layout "archives") (ne .Layout "search") (not $isHLJSdisabled)) }}
|
||||
{{- if not site.Params.assets.disableFingerprinting }}
|
||||
{{- $highlight := slice (resources.Get "js/highlight.min.js") | resources.Concat "assets/js/highlight.js" | fingerprint }}
|
||||
<script defer crossorigin="anonymous" src="{{ $highlight.RelPermalink }}" integrity="{{ $highlight.Data.Integrity }}"
|
||||
onload="hljs.initHighlightingOnLoad();"></script>
|
||||
{{- else }}
|
||||
{{- $highlight := slice (resources.Get "js/highlight.min.js") | resources.Concat "assets/js/highlight.js" }}
|
||||
<script defer crossorigin="anonymous" src="{{ $highlight.RelPermalink }}" onload="hljs.initHighlightingOnLoad();"></script>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- /* Favicons */}}
|
||||
<link rel="icon" href="{{ site.Params.assets.favicon | default "favicon.ico" | absURL }}">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="{{ site.Params.assets.favicon16x16 | default "favicon-16x16.png" | absURL }}">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ site.Params.assets.favicon32x32 | default "favicon-32x32.png" | absURL }}">
|
||||
<link rel="apple-touch-icon" href="{{ site.Params.assets.apple_touch_icon | default "apple-touch-icon.png" | absURL }}">
|
||||
<link rel="mask-icon" href="{{ site.Params.assets.safari_pinned_tab | default "safari-pinned-tab.svg" | absURL }}">
|
||||
<meta name="theme-color" content="{{ site.Params.assets.theme_color | default "#2e2e33" }}">
|
||||
<meta name="msapplication-TileColor" content="{{ site.Params.assets.msapplication_TileColor | default "#2e2e33" }}">
|
||||
|
||||
{{- /* RSS */}}
|
||||
{{ range .AlternativeOutputFormats -}}
|
||||
<link rel="{{ .Rel }}" type="{{ .MediaType.Type | html }}" href="{{ .Permalink | safeURL }}">
|
||||
{{ end -}}
|
||||
{{- range .Translations -}}
|
||||
<link rel="alternate" hreflang="{{- .Lang -}}" href="{{- .Permalink -}}" />
|
||||
{{ end }}
|
||||
{{- range .AllTranslations -}}
|
||||
<link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}">
|
||||
{{ end -}}
|
||||
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
{{- if (and (ne site.Params.defaultTheme "light") (ne site.Params.defaultTheme "dark")) }}
|
||||
<style>
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--theme: rgb(29, 30, 32);
|
||||
--entry: rgb(46, 46, 51);
|
||||
--primary: rgb(218, 218, 219);
|
||||
--secondary: rgb(155, 156, 157);
|
||||
--tertiary: rgb(65, 66, 68);
|
||||
--content: rgb(196, 196, 197);
|
||||
--hljs-bg: rgb(46, 46, 51);
|
||||
--code-bg: rgb(55, 56, 62);
|
||||
--border: rgb(51, 51, 51);
|
||||
}
|
||||
|
||||
.list {
|
||||
background: var(--theme);
|
||||
}
|
||||
|
||||
.list:not(.dark)::-webkit-scrollbar-track {
|
||||
background: 0 0;
|
||||
}
|
||||
|
||||
.list:not(.dark)::-webkit-scrollbar-thumb {
|
||||
border-color: var(--theme);
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
{{- end }}
|
||||
</noscript>
|
||||
|
||||
{{- partial "extend_head.html" . -}}
|
||||
<!-- Misc -->
|
||||
{{- if hugo.IsProduction | or (eq .Site.Params.env "production") }}
|
||||
{{- template "_internal/google_analytics_async.html" . }}
|
||||
{{- template "_internal/google_news.html" . }}
|
||||
|
||||
{{- /* Misc */}}
|
||||
{{- if hugo.IsProduction | or (eq site.Params.env "production") }}
|
||||
{{- template "_internal/google_analytics.html" . }}
|
||||
{{- template "partials/templates/opengraph.html" . }}
|
||||
{{- template "partials/templates/twitter_cards.html" . }}
|
||||
{{- template "partials/templates/schema_json.html" . }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
|
@@ -1,15 +1,15 @@
|
||||
{{- /* theme-toggle is enabled */}}
|
||||
{{- if (not .Site.Params.disableThemeToggle) }}
|
||||
{{- /* theme is light */}}
|
||||
{{- if (eq .Site.Params.defaultTheme "light") }}
|
||||
{{- /* theme-toggle is enabled */}}
|
||||
{{- if (not site.Params.disableThemeToggle) }}
|
||||
{{- /* theme is light */}}
|
||||
{{- if (eq site.Params.defaultTheme "light") }}
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "dark") {
|
||||
document.body.classList.add('dark');
|
||||
}
|
||||
|
||||
</script>
|
||||
{{- /* theme is dark */}}
|
||||
{{- else if (eq .Site.Params.defaultTheme "dark") }}
|
||||
{{- /* theme is dark */}}
|
||||
{{- else if (eq site.Params.defaultTheme "dark") }}
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "light") {
|
||||
document.body.classList.remove('dark')
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
</script>
|
||||
{{- else }}
|
||||
{{- /* theme is auto */}}
|
||||
{{- /* theme is auto */}}
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "dark") {
|
||||
document.body.classList.add('dark');
|
||||
@@ -29,8 +29,8 @@
|
||||
|
||||
</script>
|
||||
{{- end }}
|
||||
{{- /* theme-toggle is disabled and theme is auto */}}
|
||||
{{- else if (and (ne .Site.Params.defaultTheme "light") (ne .Site.Params.defaultTheme "dark"))}}
|
||||
{{- /* theme-toggle is disabled and theme is auto */}}
|
||||
{{- else if (and (ne site.Params.defaultTheme "light") (ne site.Params.defaultTheme "dark"))}}
|
||||
<script>
|
||||
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
document.body.classList.add('dark');
|
||||
@@ -38,89 +38,112 @@
|
||||
|
||||
</script>
|
||||
{{- end }}
|
||||
<noscript>
|
||||
<style type="text/css">
|
||||
.theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript>
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="{{ "" | absLangURL }}" accesskey="h" title="{{ .Site.Params.label.text | default .Site.Title }} (Alt + H)">
|
||||
{{- if .Site.Params.label.icon }}
|
||||
<img src="{{- .Site.Params.label.icon -}}" alt="logo" aria-label="logo"
|
||||
height="{{- .Site.Params.label.iconHeight | default "30px" -}}">
|
||||
{{- $label_text := (site.Params.label.text | default site.Title) }}
|
||||
{{- if site.Title }}
|
||||
<a href="{{ "" | absLangURL }}" accesskey="h" title="{{ $label_text }} (Alt + H)">
|
||||
{{- if site.Params.label.icon }}
|
||||
{{- $img := resources.Get site.Params.label.icon }}
|
||||
{{- if $img }}
|
||||
{{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") -}}
|
||||
{{- if hugo.IsExtended -}}
|
||||
{{- $processableFormats = $processableFormats | append "webp" -}}
|
||||
{{- end -}}
|
||||
{{- $prod := (hugo.IsProduction | or (eq site.Params.env "production")) }}
|
||||
{{- if and (in $processableFormats $img.MediaType.SubType) (eq $prod true)}}
|
||||
{{- if site.Params.label.iconHeight }}
|
||||
{{- $img = $img.Resize (printf "x%d" site.Params.label.iconHeight) }}
|
||||
{{ else }}
|
||||
{{- $img = $img.Resize "x30" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
<img src="{{ $img.Permalink }}" alt="" aria-label="logo"
|
||||
height="{{- site.Params.label.iconHeight | default "30" -}}">
|
||||
{{- else }}
|
||||
<img src="{{- site.Params.label.icon | absURL -}}" alt="" aria-label="logo"
|
||||
height="{{- site.Params.label.iconHeight | default "30" -}}">
|
||||
{{- end -}}
|
||||
{{- .Site.Params.label.text | default .Site.Title -}}
|
||||
{{- else if hasPrefix site.Params.label.iconSVG "<svg" }}
|
||||
{{ site.Params.label.iconSVG | safeHTML }}
|
||||
{{- end -}}
|
||||
{{- $label_text -}}
|
||||
</a>
|
||||
<span class="logo-switches">
|
||||
{{- if (not .Site.Params.disableThemeToggle) }}
|
||||
<span class="theme-toggle" title="(Alt + T)">
|
||||
<a id="theme-toggle" accesskey="t">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</a>
|
||||
</span>
|
||||
{{- end}}
|
||||
{{ $lang := .Lang}}
|
||||
{{- with $.Site.Home.AllTranslations }}
|
||||
<span class="lang-switch">
|
||||
<span>|</span>
|
||||
<ul>
|
||||
{{- range . -}}
|
||||
{{- if ne $lang .Lang }}
|
||||
<li>
|
||||
<a href="{{- .Permalink -}}" title="{{ .Language.LanguageName | default (.Lang | humanize) }}"
|
||||
aria-label="{{ .Language.LanguageName | default (.Lang | humanize) }}">
|
||||
{{- if (and $.Site.Params.displayFullLangName (.Language.LanguageName)) }}
|
||||
{{- .Language.LanguageName | emojify -}}
|
||||
{{- else }}
|
||||
{{- .Lang | humanize -}}
|
||||
{{- end -}}
|
||||
</a>
|
||||
</li>
|
||||
{{- end -}}
|
||||
{{- end}}
|
||||
</ul>
|
||||
</span>
|
||||
{{- end }}
|
||||
<div class="logo-switches">
|
||||
{{- if (not site.Params.disableThemeToggle) }}
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
{{- end }}
|
||||
</span>
|
||||
|
||||
{{- $lang := .Lang}}
|
||||
{{- $separator := or $label_text (not site.Params.disableThemeToggle)}}
|
||||
{{- with site.Home.AllTranslations }}
|
||||
<ul class="lang-switch">
|
||||
{{- if $separator }}<li>|</li>{{ end }}
|
||||
{{- range . -}}
|
||||
{{- if ne $lang .Lang }}
|
||||
<li>
|
||||
<a href="{{- .Permalink -}}" title="{{ .Language.Params.languageAltTitle | default (.Language.LanguageName | emojify) | default (.Lang | title) }}"
|
||||
aria-label="{{ .Language.LanguageName | default (.Lang | title) }}">
|
||||
{{- if (and site.Params.displayFullLangName (.Language.LanguageName)) }}
|
||||
{{- .Language.LanguageName | emojify -}}
|
||||
{{- else }}
|
||||
{{- .Lang | title -}}
|
||||
{{- end -}}
|
||||
</a>
|
||||
</li>
|
||||
{{- end -}}
|
||||
{{- end}}
|
||||
</ul>
|
||||
{{- end }}
|
||||
</div>
|
||||
</div>
|
||||
{{- $currentPage := . }}
|
||||
<ul class="menu" id="menu" onscroll="menu_on_scroll()">
|
||||
{{- range .Site.Menus.main }}
|
||||
<ul id="menu">
|
||||
{{- range site.Menus.main }}
|
||||
{{- $menu_item_url := (cond (strings.HasSuffix .URL "/") .URL (printf "%s/" .URL) ) | absLangURL }}
|
||||
{{- $page_url:= $currentPage.Permalink | absLangURL }}
|
||||
{{- $is_search := eq ($.Site.GetPage .KeyName).Layout `search` }}
|
||||
{{- $page_url:= $currentPage.Permalink | absLangURL }}
|
||||
{{- $is_search := eq (site.GetPage .KeyName).Layout `search` }}
|
||||
<li>
|
||||
<a href="{{ .URL | absLangURL }}" title="{{ .Title | default .Name }} {{- cond $is_search (" (Alt + /)" | safeHTMLAttr) ("" | safeHTMLAttr ) }}"
|
||||
{{- cond $is_search (" accesskey=/" | safeHTMLAttr) ("" | safeHTMLAttr ) }}>
|
||||
<span {{- if eq $menu_item_url $page_url }} class="active" {{- end }}>
|
||||
{{- .Pre }}
|
||||
{{- .Name -}}
|
||||
{{ .Post -}}
|
||||
</span>
|
||||
{{- if (findRE "://" .URL) }}
|
||||
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
|
||||
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
|
||||
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
|
||||
<path d="M15 3h6v6"></path>
|
||||
<path d="M10 14L21 3"></path>
|
||||
</svg>
|
||||
{{- end }}
|
||||
</a>
|
||||
</li>
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
|
@@ -1,13 +1,13 @@
|
||||
{{- with $.Site.Params.homeInfoParams }}
|
||||
{{- with site.Params.homeInfoParams }}
|
||||
<article class="first-entry home-info">
|
||||
<header class="entry-header">
|
||||
<h2>{{- .Title | markdownify }}</h2>
|
||||
<h1>{{ .Title | markdownify }}</h1>
|
||||
</header>
|
||||
<section class="entry-content">
|
||||
<p>{{- .Content | markdownify }}</p>
|
||||
</section>
|
||||
<div class="entry-content">
|
||||
{{ .Content | markdownify }}
|
||||
</div>
|
||||
<footer class="entry-footer">
|
||||
{{- partial "social_icons.html" $.Site.Params.socialIcons -}}
|
||||
{{ partial "social_icons.html" (dict "align" site.Params.homeInfoParams.AlignSocialIconsTo) }}
|
||||
</footer>
|
||||
</article>
|
||||
{{- end}}
|
||||
{{- end -}}
|
||||
|
@@ -1,19 +1,56 @@
|
||||
<div class="profile">
|
||||
{{- with .Site.Params.profileMode }}
|
||||
{{- with site.Params.profileMode }}
|
||||
<div class="profile_inner">
|
||||
{{- if .imageUrl}}<img src="{{ .imageUrl}}" alt="{{ .imageTitle | default "profile image" }}"
|
||||
height="{{- .imageHeight | default 150 -}}" width="{{- .imageWidth | default 150 -}}" />{{- end}}
|
||||
<h1>{{- .title | default $.Site.Title | markdownify -}}</h1>
|
||||
<span>{{- .subtitle | markdownify -}}</span>
|
||||
{{- partial "social_icons.html" $.Site.Params.socialIcons -}}
|
||||
{{- if .imageUrl -}}
|
||||
{{- $img := "" }}
|
||||
{{- if not (urls.Parse .imageUrl).IsAbs }}
|
||||
{{- $img = resources.Get .imageUrl }}
|
||||
{{- end }}
|
||||
{{- if $img }}
|
||||
{{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") -}}
|
||||
{{- if hugo.IsExtended -}}
|
||||
{{- $processableFormats = $processableFormats | append "webp" -}}
|
||||
{{- end -}}
|
||||
{{- $prod := (hugo.IsProduction | or (eq site.Params.env "production")) }}
|
||||
{{- if and (in $processableFormats $img.MediaType.SubType) (eq $prod true)}}
|
||||
{{- if (not (and (not .imageHeight) (not .imageWidth))) }}
|
||||
{{- $img = $img.Resize (printf "%dx%d" .imageWidth .imageHeight) }}
|
||||
{{- else if .imageHeight }}
|
||||
{{- $img = $img.Resize (printf "x%d" .imageHeight) }}
|
||||
{{ else if .imageWidth }}
|
||||
{{- $img = $img.Resize (printf "%dx" .imageWidth) }}
|
||||
{{ else }}
|
||||
{{- $img = $img.Resize "150x150" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
<img draggable="false" src="{{ $img.Permalink }}" alt="{{ .imageTitle | default "profile image" }}" title="{{ .imageTitle }}"
|
||||
height="{{ .imageHeight | default 150 }}" width="{{ .imageWidth | default 150 }}" />
|
||||
{{- else }}
|
||||
<img draggable="false" src="{{ .imageUrl | absURL }}" alt="{{ .imageTitle | default "profile image" }}" title="{{ .imageTitle }}"
|
||||
height="{{ .imageHeight | default 150 }}" width="{{ .imageWidth | default 150 }}" />
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
<h1>{{ .title | default site.Title | markdownify }}</h1>
|
||||
<span>{{ .subtitle | markdownify }}</span>
|
||||
{{- partial "social_icons.html" -}}
|
||||
|
||||
{{- with .buttons }}
|
||||
<div class="buttons">
|
||||
{{- range . -}}
|
||||
<a class="button" href="{{ trim .url " " }}" rel="noopener" title="{{ .name | humanize }}">
|
||||
<span class="button-inner">{{ .name }}</span>
|
||||
{{- range . }}
|
||||
<a class="button" href="{{ trim .url " " }}" rel="noopener" title="{{ .name }}">
|
||||
<span class="button-inner">
|
||||
{{ .name }}
|
||||
{{- if (findRE "://" .url) }}
|
||||
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
|
||||
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="14" width="14">
|
||||
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
|
||||
<path d="M15 3h6v6"></path>
|
||||
<path d="M10 14L21 3"></path>
|
||||
</svg>
|
||||
{{- end }}
|
||||
</span>
|
||||
</a>
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
</div>
|
||||
{{- end }}
|
||||
</div>
|
||||
|
9
layouts/partials/post_canonical.html
Normal file
9
layouts/partials/post_canonical.html
Normal file
@@ -0,0 +1,9 @@
|
||||
{{ if and (.Params.canonicalURL) (.Params.ShowCanonicalLink ) -}}
|
||||
{{ $url := urls.Parse .Params.canonicalURL }}
|
||||
|
||||
{{- if or .Params.author site.Params.author (.Param "ShowReadingTime") (not .Date.IsZero) .IsTranslated (or .Params.editPost.URL site.Params.editPost.URL) }} | {{- end -}}
|
||||
<span>
|
||||
{{- (site.Params.CanonicalLinkText | default .Params.CanonicalLinkText) | default "Originally published at" -}}
|
||||
<a href="{{ trim .Params.canonicalURL " " }}" title="{{ trim .Params.canonicalURL " " }}" target="_blank" rel="noopener noreferrer">{{ $url.Host }}</a>
|
||||
</span>
|
||||
{{- end }}
|
@@ -1,17 +1,23 @@
|
||||
{{- $scratch := newScratch}}
|
||||
{{- $scratch := newScratch }}
|
||||
|
||||
{{- if not .Date.IsZero -}}
|
||||
{{- $scratch.Add "meta" (slice (.Date.Format (default "January 2, 2006" .Site.Params.DateFormat))) }}
|
||||
{{- end -}}
|
||||
|
||||
{{- if $.Site.Params.ShowReadingTime -}}
|
||||
{{- $scratch.Add "meta" (slice (i18n "read_time" .ReadingTime | default (printf "%s min" .ReadingTime))) }}
|
||||
{{- end -}}
|
||||
|
||||
{{ with (partial "author.html" . ) }}
|
||||
{{ $scratch.Add "meta" (slice .)}}
|
||||
{{end}}
|
||||
|
||||
{{- with ($scratch.Get "meta")}}
|
||||
{{- delimit . " · "}}
|
||||
{{- $scratch.Add "meta" (slice (printf "<span title='%s'>%s</span>" (.Date) (.Date | time.Format (default "January 2, 2006" site.Params.DateFormat)))) }}
|
||||
{{- end }}
|
||||
|
||||
{{- if (.Param "ShowReadingTime") -}}
|
||||
{{- $scratch.Add "meta" (slice (i18n "read_time" .ReadingTime | default (printf "%d min" .ReadingTime))) }}
|
||||
{{- end }}
|
||||
|
||||
{{- if (.Param "ShowWordCount") -}}
|
||||
{{- $scratch.Add "meta" (slice (i18n "words" .WordCount | default (printf "%d words" .WordCount))) }}
|
||||
{{- end }}
|
||||
|
||||
{{- if not (.Param "hideAuthor") -}}
|
||||
{{- with (partial "author.html" .) }}
|
||||
{{- $scratch.Add "meta" (slice .) }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- with ($scratch.Get "meta") }}
|
||||
{{- delimit . " · " | safeHTML -}}
|
||||
{{- end -}}
|
||||
|
19
layouts/partials/post_nav_links.html
Normal file
19
layouts/partials/post_nav_links.html
Normal file
@@ -0,0 +1,19 @@
|
||||
{{- $pages := where site.RegularPages "Type" "in" site.Params.mainSections }}
|
||||
{{- if and (gt (len $pages) 1) (in $pages . ) }}
|
||||
<nav class="paginav">
|
||||
{{- with $pages.Next . }}
|
||||
<a class="prev" href="{{ .Permalink }}">
|
||||
<span class="title">« {{ i18n "prev_page" }}</span>
|
||||
<br>
|
||||
<span>{{- .Name -}}</span>
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- with $pages.Prev . }}
|
||||
<a class="next" href="{{ .Permalink }}">
|
||||
<span class="title">{{ i18n "next_page" }} »</span>
|
||||
<br>
|
||||
<span>{{- .Name -}}</span>
|
||||
</a>
|
||||
{{- end }}
|
||||
</nav>
|
||||
{{- end }}
|
@@ -1,55 +1,95 @@
|
||||
{{- $pageurl := .Permalink }}
|
||||
{{- $title := .Title }}
|
||||
|
||||
{{ $.Scratch.Set "tags" ""}}
|
||||
{{- $.Scratch.Set "tags" ""}}
|
||||
|
||||
{{- with .Params.Tags }}
|
||||
{{ $hashtags := newScratch}}
|
||||
{{ range . }}{{ $hashtags.Add "tags" (slice (replaceRE "(\\s)" "" . ))}}{{end}}
|
||||
{{ $.Scratch.Set "tags" (delimit ($hashtags.Get "tags") ",") }}
|
||||
{{- end }}
|
||||
{{- $hashtags := newScratch}}
|
||||
{{- range . }}{{ $hashtags.Add "tags" (slice (replaceRE "(\\s)" "" . ))}}{{end}}
|
||||
{{- $.Scratch.Set "tags" (delimit ($hashtags.Get "tags") ",") }}
|
||||
{{- end -}}
|
||||
|
||||
<div class="share-buttons">
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on twitter"
|
||||
href="https://twitter.com/intent/tweet/?text={{ $title }}&url={{ $pageurl }}&hashtags={{- $.Scratch.Get "tags" -}}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-253.927,424.544c135.939,0 210.268,-112.643 210.268,-210.268c0,-3.218 0,-6.437 -0.153,-9.502c14.406,-10.421 26.973,-23.448 36.935,-38.314c-13.18,5.824 -27.433,9.809 -42.452,11.648c15.326,-9.196 26.973,-23.602 32.49,-40.92c-14.252,8.429 -30.038,14.56 -46.896,17.931c-13.487,-14.406 -32.644,-23.295 -53.946,-23.295c-40.767,0 -73.87,33.104 -73.87,73.87c0,5.824 0.613,11.494 1.992,16.858c-61.456,-3.065 -115.862,-32.49 -152.337,-77.241c-6.284,10.881 -9.962,23.601 -9.962,37.088c0,25.594 13.027,48.276 32.95,61.456c-12.107,-0.307 -23.448,-3.678 -33.41,-9.196l0,0.92c0,35.862 25.441,65.594 59.311,72.49c-6.13,1.686 -12.72,2.606 -19.464,2.606c-4.751,0 -9.348,-0.46 -13.946,-1.38c9.349,29.426 36.628,50.728 68.965,51.341c-25.287,19.771 -57.164,31.571 -91.8,31.571c-5.977,0 -11.801,-0.306 -17.625,-1.073c32.337,21.15 71.264,33.41 112.95,33.41Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url={{ $pageurl }}&title={{ $title }}&summary={{ $title }}&source={{ $pageurl }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on reddit"
|
||||
href="https://reddit.com/submit?url={{ $pageurl }}&title={{ $title }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u={{ $pageurl }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text={{ $title }}%20-%20{{ $pageurl }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on telegram"
|
||||
href="https://telegram.me/share/url?text={{ $title }}&url={{ $pageurl }}">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
{{- $custom := false }}
|
||||
{{- $ShareButtons := (.Param "ShareButtons")}}
|
||||
{{- with $ShareButtons }}{{ $custom = true }}{{ end }}
|
||||
|
||||
<ul class="share-buttons">
|
||||
{{- if (or (cond ($custom) (in $ShareButtons "x") (true)) (cond ($custom) (in $ShareButtons "twitter") (true))) }}
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on x"
|
||||
href="https://x.com/intent/tweet/?text={{ $title }}&url={{ $pageurl }}&hashtags={{- $.Scratch.Get "tags" -}}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
{{- end }}
|
||||
{{- if (cond ($custom) (in $ShareButtons "linkedin") (true)) }}
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url={{ $pageurl }}&title={{ $title }}&summary={{ $title }}&source={{ $pageurl }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
{{- end }}
|
||||
{{- if (cond ($custom) (in $ShareButtons "reddit") (true)) }}
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on reddit"
|
||||
href="https://reddit.com/submit?url={{ $pageurl }}&title={{ $title }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
{{- end }}
|
||||
{{- if (cond ($custom) (in $ShareButtons "facebook") (true)) }}
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u={{ $pageurl }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
{{- end }}
|
||||
{{- if (cond ($custom) (in $ShareButtons "whatsapp") (true)) }}
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text={{ $title }}%20-%20{{ $pageurl }}">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
{{- end }}
|
||||
{{- if (cond ($custom) (in $ShareButtons "telegram") (true)) }}
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on telegram"
|
||||
href="https://telegram.me/share/url?text={{ $title }}&url={{ $pageurl }}">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
{{- end }}
|
||||
{{- if (cond ($custom) (in $ShareButtons "ycombinator") (true)) }}
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t={{ $title }}&u={{ $pageurl }}">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
|
@@ -1,6 +1,8 @@
|
||||
<div class="social-icons">
|
||||
{{- range . -}}
|
||||
<a href="{{ trim .url " " }}" target="_blank" rel="noopener noreferrer me"
|
||||
title="{{ .name | humanize }}">{{ partial "svg.html" . }}</a>
|
||||
{{- end -}}
|
||||
<div class="social-icons" {{ with .align}}align="{{.}}" {{- end }}>
|
||||
{{- range site.Params.socialIcons }}
|
||||
<a href="{{ trim .url " " | safeURL }}" target="_blank" rel="noopener noreferrer me"
|
||||
title="{{ (.title | default .name) | title }}">
|
||||
{{ partial "svg.html" . }}
|
||||
</a>
|
||||
{{- end }}
|
||||
</div>
|
||||
|
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user