Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1d797f01ad | ||
|
|
8193f6071e | ||
|
|
903ad6596c | ||
|
|
90ab9d28b9 | ||
|
|
d90b7e5b3e | ||
|
|
af81ee840f | ||
|
|
cb140fc5e6 | ||
|
|
1c6bd0d9e2 | ||
|
|
8f02ec7714 | ||
|
|
ef464c868e | ||
|
|
85e1ba131e | ||
|
|
1ae32a42cb | ||
|
|
6f5e6f4391 | ||
|
|
bc0c83c0c4 | ||
|
|
cff0e2a387 | ||
|
|
844812b4f4 | ||
|
|
5fd703674b | ||
|
|
a3e2b33c5e | ||
|
|
6be43f77a5 | ||
|
|
075fad74cb | ||
|
|
7d212bc310 | ||
|
|
96149caa54 | ||
|
|
b939edc600 | ||
|
|
3d44327497 | ||
|
|
b0b2698d35 | ||
|
|
6e83c1acd5 | ||
|
|
66949b5c4c | ||
|
|
959d5fe1f9 | ||
|
|
7a7c8022ad | ||
|
|
33c6dbd1be | ||
|
|
d27cc9c132 | ||
|
|
922440cd55 | ||
|
|
9ffaf41d20 | ||
|
|
ded2d87b2b | ||
|
|
97f0f35498 | ||
|
|
621529aaf2 | ||
|
|
ef5018ee6f | ||
|
|
12ae094b8a | ||
|
|
93022d6432 | ||
|
|
1e6bcecb5a | ||
|
|
784efffcd1 | ||
|
|
b82680b103 | ||
|
|
7b6b45055c | ||
|
|
02342c919a | ||
|
|
5b203f46c4 | ||
|
|
ff56bc2bd6 | ||
|
|
4efb8638c4 | ||
|
|
536e89d174 | ||
|
|
1a85a28685 | ||
|
|
be3c046acf | ||
|
|
573f286971 | ||
|
|
70462d0e16 | ||
|
|
9dce68d58a | ||
|
|
4c3ada478a | ||
|
|
438710da82 | ||
|
|
4f76c2546a | ||
|
|
14e3fa2b28 | ||
|
|
dc965c5bbe | ||
|
|
accc82a03b | ||
|
|
148349b029 | ||
|
|
0527e17354 | ||
|
|
c76813f6f5 | ||
|
|
4364fb73f5 | ||
|
|
dfaac405f0 | ||
|
|
9c386c5509 | ||
|
|
2f5e771072 | ||
|
|
16103c6d49 | ||
|
|
bf66a5c345 | ||
|
|
ceeda03132 | ||
|
|
f1ffad4b5e | ||
|
|
162f659f61 | ||
|
|
adae207d17 | ||
|
|
4b08acb115 | ||
|
|
d240efaa7c | ||
|
|
0378a31f53 | ||
|
|
d47d62f695 | ||
|
|
64b1d429a4 | ||
|
|
244eff763a | ||
|
|
25ce47de8c | ||
|
|
256e626503 | ||
|
|
1d3fd5d7d6 | ||
|
|
f8ea22fdb8 | ||
|
|
7e7b901974 | ||
|
|
f33349c2ee | ||
|
|
ed883ea2d4 | ||
|
|
ab42c3ba1d | ||
|
|
b278dac7fb | ||
|
|
0b8b5230f9 | ||
|
|
6165d896a0 | ||
|
|
bde92b6d4a | ||
|
|
271b5da8e5 | ||
|
|
bce2b50556 | ||
|
|
7daa7aceb3 | ||
|
|
3ed92f5ea8 | ||
|
|
dc41016c62 | ||
|
|
7ef6af66e4 | ||
|
|
4b0c8bd1b9 | ||
|
|
9ac9602e22 | ||
|
|
f3c617f7de | ||
|
|
753ccbbd03 | ||
|
|
1b06aff3bc | ||
|
|
7ea8510d4f | ||
|
|
7d61488f5e | ||
|
|
a7af9b0ad2 | ||
|
|
4310b5459c | ||
|
|
f8f6e589ac | ||
|
|
172a5169f1 | ||
|
|
48ed1444b9 | ||
|
|
409bc92868 | ||
|
|
f8527e7916 | ||
|
|
a179735103 | ||
|
|
60b9565277 | ||
|
|
7746db6f7e | ||
|
|
5e3d1406d2 | ||
|
|
a0aa8f80a7 | ||
|
|
6308789788 | ||
|
|
c7ef8c0fd0 | ||
|
|
ada1b6184e | ||
|
|
9b9d2c66e2 | ||
|
|
6693a4a8cc | ||
|
|
aca6648bd4 | ||
|
|
6e94773083 | ||
|
|
4c38bab95b | ||
|
|
6f1cbfb3be | ||
|
|
8d3592ff70 | ||
|
|
aae8dac76c | ||
|
|
b604e2a686 | ||
|
|
02d989370a | ||
|
|
2c92d34938 | ||
|
|
0d56036557 | ||
|
|
73c2ad818c | ||
|
|
495fb29b45 | ||
|
|
75841313de | ||
|
|
7aee05ce0c | ||
|
|
08b0303298 | ||
|
|
6eaee034d1 | ||
|
|
9770b663f9 | ||
|
|
2cc21c1e88 | ||
|
|
830595d967 | ||
|
|
f18799a0c9 | ||
|
|
51fcef50d0 | ||
|
|
91ab537546 | ||
|
|
23a91f8695 | ||
|
|
8a67ce8e41 | ||
|
|
18e89666a6 | ||
|
|
5946bd4ea0 | ||
|
|
3d65710bf7 | ||
|
|
c940a73b50 | ||
|
|
e44403e276 | ||
|
|
6f0ba5e363 | ||
|
|
955a19b955 | ||
|
|
de1e2b73a6 | ||
|
|
1433887f67 | ||
|
|
2f5af9050b | ||
|
|
03a26a105d | ||
|
|
65237df377 | ||
|
|
f92670442f | ||
|
|
cee4c86ee3 | ||
|
|
58d1ba8293 | ||
|
|
8dc2997d1f | ||
|
|
daf51177f8 | ||
|
|
416933d98a | ||
|
|
55f6e8fae5 | ||
|
|
bcb15f80e7 | ||
|
|
00b86b1ff8 | ||
|
|
a66bf7e317 | ||
|
|
3f36d171bb | ||
|
|
4ef57be787 | ||
|
|
df97788050 | ||
|
|
a499b0dcae | ||
|
|
3051fcd3c9 | ||
|
|
4e19f46d68 | ||
|
|
7aa8c7b5dc | ||
|
|
23e7ad2903 | ||
|
|
a19dbdbf78 | ||
|
|
8b67db3ff4 | ||
|
|
2632ff650a | ||
|
|
ad1e06633c | ||
|
|
9539e3bd84 | ||
|
|
d6c84c9508 | ||
|
|
5ef199a3eb | ||
|
|
d639c605c8 | ||
|
|
a431dd5cc3 | ||
|
|
691df116da | ||
|
|
9ab55b6c54 | ||
|
|
bdcfd791a0 | ||
|
|
9f7c0e4144 | ||
|
|
dbc9479fd5 | ||
|
|
6bd64ffd47 | ||
|
|
ebc8123d36 | ||
|
|
a6b51ed91e | ||
|
|
642ec7b20f | ||
|
|
000dc3b4a2 | ||
|
|
50d312d04c | ||
|
|
25e871c096 | ||
|
|
20cd63c05b | ||
|
|
eaef9ecd9f | ||
|
|
62c123c6b5 | ||
|
|
234d859040 | ||
|
|
c6c6bafad0 | ||
|
|
97cf6e189b | ||
|
|
9cf80336b3 | ||
|
|
ff5b354a9a | ||
|
|
0629bb770d | ||
|
|
1ca125d61b | ||
|
|
aa5dab277e | ||
|
|
f9b17c6249 | ||
|
|
084ddf8d8e | ||
|
|
9269842e9d | ||
|
|
567836e43c | ||
|
|
7e7e683801 | ||
|
|
0f06cb8225 | ||
|
|
89de4d46db | ||
|
|
65e79f5a7d | ||
|
|
42f7512702 | ||
|
|
cc18679227 | ||
|
|
5094a4092a | ||
|
|
6ade4536f7 | ||
|
|
bd46e0a1a8 | ||
|
|
14a47c9d39 | ||
|
|
2eda29dd1f | ||
|
|
26db31c52d | ||
|
|
4fcd51b9bd | ||
|
|
0491cd362b | ||
|
|
3c075fe76b | ||
|
|
00fa7be38b | ||
|
|
297989c1be | ||
|
|
8adb089a68 | ||
|
|
ad094187f7 | ||
|
|
5aeff0c01b | ||
|
|
579d1759d1 | ||
|
|
cc9d1fdaf3 | ||
|
|
3b62fcef6b | ||
|
|
8152b4cbfc | ||
|
|
3c60ebde58 | ||
|
|
b997dc5e25 | ||
|
|
7597735c73 | ||
|
|
184f4f3430 | ||
|
|
351174e494 | ||
|
|
5704e9c0ae | ||
|
|
00d9900743 | ||
|
|
d9305929cf | ||
|
|
f2461af7a8 | ||
|
|
327a7b6f62 | ||
|
|
5516883310 | ||
|
|
1f9698ce37 | ||
|
|
1f0746f2d5 | ||
|
|
b4b8369f5b | ||
|
|
1d2a1c51df | ||
|
|
e7687a8e15 | ||
|
|
edd326376b | ||
|
|
e2f65248b0 | ||
|
|
e134d13e45 | ||
|
|
5423463ca0 | ||
|
|
65eb672dcc | ||
|
|
ee67ad9743 | ||
|
|
635b1790f3 | ||
|
|
4847ce3330 | ||
|
|
b0f5370ede | ||
|
|
4e2e64989f | ||
|
|
2127655ad8 | ||
|
|
b0261f7c43 | ||
|
|
68327eb69b | ||
|
|
1ae5b070b6 | ||
|
|
4710639f05 | ||
|
|
736f77c9c6 | ||
|
|
e1fce9fc94 | ||
|
|
4259ffdd6f | ||
|
|
de6870743d | ||
|
|
99cd379c61 | ||
|
|
5ffad0d956 | ||
|
|
b1e4881c50 | ||
|
|
c521fe58df | ||
|
|
2e05b8568b | ||
|
|
2301fdf5a7 | ||
|
|
8a39b748c2 | ||
|
|
deaed193af | ||
|
|
641ca6f3d8 | ||
|
|
3d3cb58a2e | ||
|
|
6e4aa384d0 | ||
|
|
c501842db8 |
+9
-5
@@ -1,6 +1,10 @@
|
||||
assets/fonts/* linguist-vendored
|
||||
assets/js/main.min.js linguist-vendored
|
||||
assets/js/lunr/* linguist-vendored
|
||||
assets/js/plugins/* linguist-vendored
|
||||
assets/js/vendor/* linguist-vendored
|
||||
assets/fonts/* linguist-vendored
|
||||
assets/js/main.min.js linguist-vendored
|
||||
assets/js/lunr/* linguist-vendored
|
||||
assets/js/plugins/* linguist-vendored
|
||||
assets/js/vendor/* linguist-vendored
|
||||
_sass/minimal-mistakes/vendor/* linguist-vendored
|
||||
CHANGELOG.md text merge=union
|
||||
docs/_docs/18-history.md text merge=union
|
||||
|
||||
*.md text
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
custom: https://www.paypal.me/mmistakes
|
||||
@@ -1,68 +0,0 @@
|
||||
---
|
||||
name: "Bug Report"
|
||||
about: "Is something not working as expected?"
|
||||
---
|
||||
|
||||
<!--
|
||||
Before opening a new issue please:
|
||||
|
||||
- Verify you have the latest versions of Jekyll and Minimal Mistakes
|
||||
installed by running `bundle update`.
|
||||
- Thoroughly read the theme's documentation at
|
||||
https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/
|
||||
- Search all issues at https://github.com/mmistakes/minimal-mistakes/issues
|
||||
for solutions and to avoid duplication.
|
||||
- Ask for help at http://talk.jekyllrb.com/
|
||||
|
||||
After exhausting these suggestions use the format below.
|
||||
-->
|
||||
|
||||
## Environment
|
||||
|
||||
<!--
|
||||
Please include theme version, Jekyll version, public git repository, whether
|
||||
you are hosting with GitHub Pages, and the operating system you tested with.
|
||||
|
||||
Issues without a link to a public repository or ZIP file will likely go ignored.
|
||||
Being able to see your actual files is necessary to troubleshoot, as most
|
||||
issues stem from invalid/missing YAML Front Matter, a mis-configured _config.sys
|
||||
file, or problematic site content.
|
||||
-->
|
||||
|
||||
- Minimal Mistakes version:
|
||||
- Ruby gem or remote theme version:
|
||||
- Jekyll version:
|
||||
- Git repository URL:
|
||||
- GitHub Pages hosted (if yes provide URL to site):
|
||||
- Operating system:
|
||||
|
||||
## Expected behavior
|
||||
|
||||
<!--
|
||||
What is it you expected to happen? This should be a description of how the
|
||||
functionality you tried to use is supposed to work.
|
||||
-->
|
||||
|
||||
## Steps to reproduce the behavior
|
||||
|
||||
<!--
|
||||
Describe the steps you took for this problem to exist. Such as: you installed
|
||||
the theme, customized _config.yml, added your own posts, and started up a
|
||||
Jekyll server locally.
|
||||
|
||||
If an error occurred on GitHub Pages when pushing, please test a local version
|
||||
following these setup instructions:
|
||||
https://help.github.com/articles/setting-up-your-github-pages-site-locally-with-jekyll/
|
||||
|
||||
Then provide a complete log by running `bundle exec jekyll build --trace --verbose`
|
||||
and include this output in the filed issue.
|
||||
|
||||
Screenshots can also be included if they help illustrate a behavior.
|
||||
-->
|
||||
|
||||
## Other
|
||||
|
||||
<!--
|
||||
NOTE: Please provide a code repository, gist, code snippet, sample files,
|
||||
screenshots, or anything else you think will aid in reproducing the issue.
|
||||
-->
|
||||
@@ -0,0 +1,94 @@
|
||||
name: Bug Report
|
||||
description: There is something wrong with the theme. 99% of the time you should select Support below.
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Before opening a new issue please:
|
||||
|
||||
- Verify you have the latest versions of Jekyll and Minimal Mistakes
|
||||
installed by running `bundle update`.
|
||||
- Thoroughly read the theme's documentation at
|
||||
https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/
|
||||
- Search all issues at https://github.com/mmistakes/minimal-mistakes/issues
|
||||
for solutions and to avoid duplication.
|
||||
- Ask for help at https://talk.jekyllrb.com/
|
||||
|
||||
If none of the above solved your problem, you can continue below.
|
||||
|
||||
- type: textarea
|
||||
id: environment
|
||||
attributes:
|
||||
label: Theme version and system environment
|
||||
description: |
|
||||
Please include theme version, Jekyll version, public git repository, whether
|
||||
you are hosting with GitHub Pages, and the operating system you tested with.
|
||||
|
||||
Issues without a link to a public repository or ZIP file will likely go ignored.
|
||||
Being able to see your actual files is necessary to troubleshoot, as most
|
||||
issues stem from invalid/missing YAML Front Matter, a mis-configured _config.yml
|
||||
file, or problematic site content.
|
||||
value: |-
|
||||
- Minimal Mistakes version:
|
||||
- Ruby gem or remote theme version:
|
||||
- Jekyll version:
|
||||
- Git repository URL:
|
||||
- URL to the page with the problem:
|
||||
- Operating system:
|
||||
- Browser version:
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: what-happened
|
||||
attributes:
|
||||
label: What happened?
|
||||
description: |
|
||||
Describe the problem **in detail**. For example:
|
||||
|
||||
- What is missing?
|
||||
- What error do you see? Attach the error log if available.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: expected-behavior
|
||||
attributes:
|
||||
label: Expected behavior
|
||||
description: |
|
||||
Please describe the expected behavior and the actual result you got.
|
||||
placeholder: >
|
||||
What is it you expected to happen? This should be a description of how the
|
||||
functionality you tried to use is supposed to work.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: steps-to-reproduce
|
||||
attributes:
|
||||
label: Steps to reproduce the behavior
|
||||
description: |
|
||||
Describe the steps you took for this problem to come up. Such as: you installed
|
||||
the theme, customized _config.yml, added your own posts, and started up a
|
||||
Jekyll server locally.
|
||||
|
||||
If an error occurred on GitHub Pages when pushing, please test a local version
|
||||
following these setup instructions:
|
||||
https://help.github.com/articles/setting-up-your-github-pages-site-locally-with-jekyll/
|
||||
|
||||
Then provide a complete log by running `bundle exec jekyll build --trace --verbose`
|
||||
and include this output in the filed issue.
|
||||
|
||||
Screenshots can also be included if they help illustrate a behavior.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: other
|
||||
attributes:
|
||||
label: Other
|
||||
description: |
|
||||
Please provide a code repository, gist, code snippet, sample files,
|
||||
screenshots, or anything else you think will aid in reproducing the issue.
|
||||
validations:
|
||||
required: false
|
||||
@@ -0,0 +1,5 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Support
|
||||
url: https://github.com/mmistakes/minimal-mistakes/discussions
|
||||
about: Please post your support questions in the Discussions section.
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
name: "Documentation"
|
||||
about: "Found a typo or something that needs clarification?"
|
||||
---
|
||||
|
||||
<!-- Thanks for taking the time to open an issue and help make the docs better -->
|
||||
|
||||
## Motivation
|
||||
|
||||
<!-- Why should we update our docs? -->
|
||||
|
||||
<!-- What should we do instead? -->
|
||||
|
||||
## Suggestion
|
||||
|
||||
<!-- What should we do instead? -->
|
||||
@@ -0,0 +1,25 @@
|
||||
name: Documentation
|
||||
description: Found a typo or something that needs clarification?
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to open an issue and help make the docs better.
|
||||
|
||||
- type: textarea
|
||||
id: motivation
|
||||
attributes:
|
||||
label: Motivation
|
||||
description: |
|
||||
Why should we update our docs?
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: suggestion
|
||||
attributes:
|
||||
label: Suggestion
|
||||
description: |
|
||||
What should we do instead?
|
||||
validations:
|
||||
required: true
|
||||
@@ -24,3 +24,7 @@
|
||||
<!--
|
||||
Is this related to any GitHub issue(s)?
|
||||
-->
|
||||
|
||||
<!--
|
||||
Please confirm that you want to submit this Pull Request to Minimal Mistakes, the free Jekyll theme by Michael Rose, by deleting this comment block.
|
||||
-->
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
# Number of days of inactivity before an issue becomes stale
|
||||
daysUntilStale: 30
|
||||
# Number of days of inactivity before a stale issue is closed
|
||||
daysUntilClose: 7
|
||||
# Issues with these labels will never be considered stale
|
||||
exemptLabels:
|
||||
- "Status: Accepted"
|
||||
- "Status: Under Consideration"
|
||||
- "Status: Review Needed"
|
||||
# Label to use when marking an issue as stale
|
||||
staleLabel: "Status: Stale"
|
||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||
markComment: |
|
||||
This issue has been automatically marked as stale because it has not had recent activity.
|
||||
|
||||
If this is a **bug** and you can still reproduce this error on the `master` branch, please reply with any additional information you have about it in order to keep the issue open.
|
||||
|
||||
If this is a feature request, please consider whether it can be accomplished in another way. If it cannot, please elaborate on why it is core to this project and why you feel more than 80% of users would find this beneficial.
|
||||
|
||||
This issue will automatically be closed in 7 days if no further activity occurs. Thank you for all your contributions.
|
||||
# Comment to post when closing a stale issue. Set to `false` to disable
|
||||
closeComment: false
|
||||
@@ -0,0 +1,35 @@
|
||||
name: Cleanup bad PR
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, reopened]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
close-pr:
|
||||
permissions:
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
if: "contains(github.event.pull_request.body, 'by deleting this comment block') || github.event.pull_request.body == ''"
|
||||
steps:
|
||||
- uses: actions-ecosystem/action-add-labels@v1
|
||||
with:
|
||||
labels: 'Type: Invalid'
|
||||
- uses: actions-ecosystem/action-add-labels@v1
|
||||
with:
|
||||
labels: 'Type: Spam'
|
||||
- uses: superbrothers/close-pull-request@v3
|
||||
with:
|
||||
# Optional. Post an issue comment just before closing a pull request.
|
||||
comment: |
|
||||
**You have created a Pull Request to the wrong repository.** This is the repository for [Minimal Mistakes][1], the free Jekyll theme. See [GitHub Docs: About pull requests][2] if you need help.
|
||||
|
||||
[1]: https://mmistakes.github.io/minimal-mistakes/
|
||||
[2]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests
|
||||
- uses: sudo-bot/action-pull-request-lock@v1.0.5
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
number: ${{ github.event.pull_request.number }}
|
||||
lock-reason: spam
|
||||
@@ -0,0 +1,47 @@
|
||||
name: build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
workflow_dispatch: {}
|
||||
repository_dispatch: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
if: github.repository == 'mmistakes/minimal-mistakes'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: '3.2'
|
||||
- name: Setup cache for Bundler
|
||||
id: cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
docs/Gemfile.lock
|
||||
docs/vendor/bundle
|
||||
key: ${{ runner.os }}-bundler-${{ hashFiles('docs/Gemfile') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-bundler-
|
||||
|
||||
- name: Install - Bundler
|
||||
env:
|
||||
MAKE: make -j2
|
||||
working-directory: docs/
|
||||
run: |
|
||||
bundle config set path vendor/bundle
|
||||
bundle install --jobs=4 --retry=3
|
||||
bundle clean
|
||||
|
||||
- name: Update Algolia index
|
||||
working-directory: docs/
|
||||
run: bundle exec jekyll algolia push
|
||||
env:
|
||||
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
|
||||
continue-on-error: true
|
||||
@@ -2,6 +2,9 @@
|
||||
*~
|
||||
*.sw[p_]
|
||||
|
||||
# IntelliJ IDEA
|
||||
*.idea
|
||||
|
||||
# Sublime Text
|
||||
*.sublime-project
|
||||
*.sublime-workspace
|
||||
|
||||
+452
-244
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013-2020 Michael Rose and contributors
|
||||
Copyright (c) 2013-2024 Michael Rose and contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -2,18 +2,12 @@
|
||||
|
||||
[](https://raw.githubusercontent.com/mmistakes/minimal-mistakes/master/LICENSE)
|
||||
[](https://jekyllrb.com/)
|
||||
[](https://rubygems.org/gems/minimal-mistakes-jekyll)
|
||||
[](https://www.paypal.me/mmistakes)
|
||||
|
||||
Minimal Mistakes is a flexible two-column Jekyll theme, perfect for building personal sites, blogs, and portfolios. As the name implies, styling is purposely minimalistic to be enhanced and customized by you :smile:.
|
||||
|
||||
:sparkles: See what's new in the [CHANGELOG](CHANGELOG.md).
|
||||
|
||||
**If you enjoy this theme, please consider [supporting me](https://www.paypal.me/mmistakes) to continue developing and maintaining it.**
|
||||
|
||||
[](https://www.paypal.me/mmistakes)
|
||||
|
||||
**Note:** The theme uses the [jekyll-include-cache](https://github.com/benbalter/jekyll-include-cache) plugin which will need to be installed in your `Gemfile` and added to the `plugins` array of `_config.yml`. Otherwise you'll encounter `Unknown tag 'include_cached'` errors at build.
|
||||
**Note:** The theme uses the [jekyll-include-cache](https://github.com/benbalter/jekyll-include-cache) plugin which will need to be installed in your `Gemfile` and must be retained in the `plugins` array of `_config.yml`. Otherwise you'll encounter `Unknown tag 'include_cached'` errors at build.
|
||||
|
||||
[![Minimal Mistakes live preview][2]][1]
|
||||
|
||||
@@ -31,9 +25,9 @@ Minimal Mistakes is a flexible two-column Jekyll theme, perfect for building per
|
||||
- Several responsive layout options (single, archive index, search, splash, and paginated home page).
|
||||
- Optimized for search engines with support for [Twitter Cards](https://dev.twitter.com/cards/overview) and [Open Graph](http://ogp.me/) data.
|
||||
- Optional [header images](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#headers), [custom sidebars](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#sidebars), [table of contents](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#table-of-contents), [galleries](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#gallery), related posts, [breadcrumb links](https://mmistakes.github.io/minimal-mistakes/docs/configuration/#breadcrumb-navigation-beta), [navigation lists](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#navigation-list), and more.
|
||||
- Commenting support (powered by [Disqus](https://disqus.com/), [Facebook](https://developers.facebook.com/docs/plugins/comments), Google+, [Discourse](https://www.discourse.org/), static-based via [Staticman](https://staticman.net/), and [utterances](https://utteranc.es/)).
|
||||
- Commenting support (powered by [Disqus](https://disqus.com/), [Facebook](https://developers.facebook.com/docs/plugins/comments), Google+, [Discourse](https://www.discourse.org/), static-based via [Staticman](https://staticman.net/), [utterances](https://utteranc.es/), and [giscus](https://giscus.app/)).
|
||||
- [Google Analytics](https://www.google.com/analytics/) support.
|
||||
- UI localized text in English (default), Brazilian Portuguese (Português brasileiro), Catalan, Chinese, Danish, Dutch, Finnish, French (Français), German (Deutsch), Greek, Hebrew, Hindi (हिंदी), Hungarian, Indonesian, Irish (Gaeilge), Italian (Italiano), Japanese, Korean, Malayalam, Myanmar (Burmese), Nepali (Nepalese), Norwegian (Norsk), Persian (فارسی), Polish, Punjabi (ਪੰਜਾਬੀ), Romanian, Russian, Slovak, Spanish (Español), Swedish, Thai, Turkish (Türkçe), and Vietnamese.
|
||||
- UI localized text in English (default), Arabic (عربي), Brazilian Portuguese (Português brasileiro), Bulgarian, Catalan, Chinese, Czech, Danish, Dutch, Finnish, French (Français), German (Deutsch), Greek, Hebrew, Hindi (हिंदी), Hungarian, Indonesian, Irish (Gaeilge), Italian (Italiano), Japanese, Kiswahili, Korean, Malayalam, Myanmar (Burmese), Nepali (Nepalese), Norwegian (Norsk), Persian (فارسی), Polish, Punjabi (ਪੰਜਾਬੀ), Romanian, Russian, Slovak, Spanish (Español), Swedish, Thai, Turkish (Türkçe), Ukrainian (Українська) and Vietnamese.
|
||||
|
||||
## Skins (color variations)
|
||||
|
||||
@@ -121,13 +115,37 @@ To install:
|
||||
|
||||
2. Add `jekyll-include-cache` to the `plugins` array of your `_config.yml`.
|
||||
|
||||
3. Fetch and update bundled gems by running the following [Bundler](http://bundler.io/) command:
|
||||
3. Fetch and update bundled gems by running the following [Bundler](https://bundler.io/) command:
|
||||
|
||||
```bash
|
||||
bundle
|
||||
```
|
||||
|
||||
4. Add `remote_theme: "mmistakes/minimal-mistakes@4.22.0"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry.
|
||||
4. Add `remote_theme: "mmistakes/minimal-mistakes@4.27.0"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry.
|
||||
|
||||
<!--
|
||||
Dev note: The version number is currently hard-coded in these files:
|
||||
|
||||
- package.json
|
||||
- README.md (this file)
|
||||
- docs/_data/theme.yml
|
||||
- docs/_pages/home.md (in Front Matter "excerpt")
|
||||
|
||||
`package.json` holds the authoritative version number, and the others can be updated with `bundle exec rake version`.
|
||||
|
||||
The following files should also be regenerated:
|
||||
|
||||
- _includes/copyright.html, _includes/copyright.js, _sass/minimal-mistakes/_copyright.scss
|
||||
(Run `bundle exec rake clean` then `bundle exec rake copyright` - all three references `package.json`)
|
||||
- assets/js/main.min.js (Run `bundle exec rake js`, references `_includes/copyright.js`)
|
||||
|
||||
*Tip*: The default Rake task will update all of the above files at once.
|
||||
|
||||
Additionally, the license year is hard-coded in these files and are NOT covered by a Rake task:
|
||||
|
||||
- README.md (this file, near the end)
|
||||
- LICENSE
|
||||
-->
|
||||
|
||||
**Looking for an example?** Use the [Minimal Mistakes remote theme starter](https://github.com/mmistakes/mm-github-pages-starter/generate) for the quickest method of getting a GitHub Pages hosted site up and running. Generate a new repository from the starter, replace sample content with your own, and configure as needed.
|
||||
|
||||
@@ -135,8 +153,6 @@ To install:
|
||||
|
||||
For detailed instructions on how to configure, customize, add/migrate content, and more read the [theme's documentation](https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/).
|
||||
|
||||
---
|
||||
|
||||
## Contributing
|
||||
|
||||
Found a typo in the documentation or interested in [fixing a bug](https://github.com/mmistakes/minimal-mistakes/issues)? Then by all means [submit an issue](https://github.com/mmistakes/minimal-mistakes/issues/new) or [pull request](https://help.github.com/articles/using-pull-requests/). If this is your first pull request, it may be helpful to read up on the [GitHub Flow](https://guides.github.com/introduction/flow/) first.
|
||||
@@ -159,8 +175,6 @@ To set up your environment to develop this theme, run `bundle install`.
|
||||
|
||||
To test the theme, run `bundle exec rake preview` and open your browser at `http://localhost:4000/test/`. This starts a Jekyll server using content in the `test/` directory. As modifications are made to the theme and test site, it will regenerate and you should see the changes in the browser after a refresh.
|
||||
|
||||
---
|
||||
|
||||
## Credits
|
||||
|
||||
### Creator
|
||||
@@ -173,7 +187,7 @@ To test the theme, run `bundle exec rake preview` and open your browser at `http
|
||||
|
||||
### Icons + Demo Images:
|
||||
|
||||
- [The Noun Project](https://thenounproject.com) -- Garrett Knoll, Arthur Shlain, and [tracy tam](https://thenounproject.com/tracytam)
|
||||
- [The Noun Project](https://thenounproject.com) - Garrett Knoll, Arthur Shlain, and [tracy tam](https://thenounproject.com/tracytam)
|
||||
- [Font Awesome](http://fontawesome.io/)
|
||||
- [Unsplash](https://unsplash.com/)
|
||||
|
||||
@@ -190,14 +204,13 @@ To test the theme, run `bundle exec rake preview` and open your browser at `http
|
||||
- [Gumshoe](https://github.com/cferdinandi/gumshoe)
|
||||
- [jQuery throttle / debounce](http://benalman.com/projects/jquery-throttle-debounce-plugin/)
|
||||
- [Lunr](http://lunrjs.com)
|
||||
|
||||
---
|
||||
- [Clipboard.js](https://clipboardjs.com)
|
||||
|
||||
## License
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013-2020 Michael Rose and contributors
|
||||
Copyright (c) 2013-2024 Michael Rose and contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -249,7 +262,7 @@ Smooth Scroll is distributed under the terms of the [MIT License](http://opensou
|
||||
|
||||
Minimal Mistakes incorporates [Gumshoejs](http://github.com/cferdinandi/gumshoe),
|
||||
Copyright (c) 2019 Chris Ferdinandi.
|
||||
Smooth Scroll is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
||||
Gumshoejs is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
||||
|
||||
Minimal Mistakes incorporates [jQuery throttle / debounce](http://benalman.com/projects/jquery-throttle-debounce-plugin/),
|
||||
Copyright (c) 2010 "Cowboy" Ben Alman.
|
||||
@@ -270,3 +283,7 @@ Pure Liquid Jekyll Table of Contents is distributed under the terms of the [MIT
|
||||
Minimal Mistakes incorporates [Lunr](http://lunrjs.com),
|
||||
Copyright (c) 2018 Oliver Nightingale.
|
||||
Lunr is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
||||
|
||||
Minimal Mistakes incorporates [clipboard.js](https://clipboardjs.com/),
|
||||
Copyright (c) 2021 Zeno Rocha.
|
||||
Clipboard.js is distributed under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
require "bundler/gem_tasks"
|
||||
require "jekyll"
|
||||
require "json"
|
||||
require "listen"
|
||||
require "rake/clean"
|
||||
require "shellwords"
|
||||
require "time"
|
||||
require "yaml"
|
||||
|
||||
task :default => %i[copyright changelog js version]
|
||||
|
||||
package_json = JSON.parse(File.read("package.json"))
|
||||
|
||||
def listen_ignore_paths(base, options)
|
||||
[
|
||||
@@ -65,8 +74,7 @@ task :preview do
|
||||
puts " Halting auto-regeneration."
|
||||
exit 0
|
||||
end
|
||||
|
||||
loop { sleep 1000 }
|
||||
sleep
|
||||
end
|
||||
rescue ThreadError
|
||||
# You pressed Ctrl-C, oh my!
|
||||
@@ -74,3 +82,126 @@ task :preview do
|
||||
|
||||
Jekyll::Commands::Serve.process(options)
|
||||
end
|
||||
|
||||
task :history => :changelog
|
||||
task :changelog => "docs/_docs/18-history.md"
|
||||
file "docs/_docs/18-history.md" => "CHANGELOG.md" do |t|
|
||||
front_matter = {
|
||||
title: "History",
|
||||
classes: "wide",
|
||||
permalink: "/docs/history/",
|
||||
excerpt: "Change log of enhancements and bug fixes made to the theme.",
|
||||
sidebar: {
|
||||
nav: "docs",
|
||||
},
|
||||
last_modified_at: Time.now.iso8601,
|
||||
toc: false,
|
||||
}
|
||||
# https://stackoverflow.com/a/49553523/5958455
|
||||
front_matter = JSON.parse(JSON.dump(front_matter))
|
||||
File.open(t.name, "w") do |f|
|
||||
f.puts front_matter.to_yaml
|
||||
f.puts "---"
|
||||
f.puts ""
|
||||
f.puts "<!--\n Sourced from CHANGELOG.md\n See Rakefile `task :changelog` for details\n-->"
|
||||
f.puts ""
|
||||
f.puts "{% raw %}"
|
||||
# Remove H1
|
||||
changelog = File.read(t.prerequisites.first)
|
||||
.gsub(/^# [^\n]*$/m, "")
|
||||
.gsub(/\(#(\d+)\)$/m, "[#\\1](https://github.com/mmistakes/minimal-mistakes/issues/\\1)")
|
||||
.strip
|
||||
f.write changelog
|
||||
f.puts ""
|
||||
f.puts "{% endraw %}"
|
||||
end
|
||||
end
|
||||
|
||||
COPYRIGHT_LINES = [
|
||||
"Minimal Mistakes Jekyll Theme #{package_json["version"]} by Michael Rose",
|
||||
"Copyright 2013-#{Time.now.year} Michael Rose - mademistakes.com | @mmistakes",
|
||||
"Free for personal and commercial use under the MIT license",
|
||||
"https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE",
|
||||
]
|
||||
|
||||
COPYRIGHT_FILES = [
|
||||
"_includes/copyright.html",
|
||||
"_includes/copyright.js",
|
||||
"_sass/minimal-mistakes/_copyright.scss",
|
||||
]
|
||||
|
||||
def genenerate_copyright_file(filename, header, prefix, footer)
|
||||
File.open(filename, "w") do |f|
|
||||
f.puts header
|
||||
COPYRIGHT_LINES.each do |line|
|
||||
f.puts "#{prefix}#{line}"
|
||||
end
|
||||
f.puts footer
|
||||
end
|
||||
end
|
||||
|
||||
file "_includes/copyright.html" => "package.json" do |t|
|
||||
genenerate_copyright_file(t.name, "<!--", " ", "-->")
|
||||
end
|
||||
|
||||
file "_includes/copyright.js" => "package.json" do |t|
|
||||
genenerate_copyright_file(t.name, "/*!", " * ", " */")
|
||||
end
|
||||
|
||||
file "_sass/minimal-mistakes/_copyright.scss" => "package.json" do |t|
|
||||
genenerate_copyright_file(t.name, "/*!", " * ", " */")
|
||||
end
|
||||
|
||||
task :copyright => COPYRIGHT_FILES
|
||||
|
||||
CLEAN.include(*COPYRIGHT_FILES)
|
||||
|
||||
JS_FILES = ["assets/js/vendor/jquery/jquery-3.6.0.js"] + Dir.glob("assets/js/plugins/*.js") + ["assets/js/_main.js"]
|
||||
JS_TARGET = "assets/js/main.min.js"
|
||||
task :js => JS_TARGET
|
||||
file JS_TARGET => ["_includes/copyright.js"] + JS_FILES do |t|
|
||||
sh Shellwords.join(%w[npx uglifyjs -c --comments /@mmistakes/ --source-map -m -o] +
|
||||
[t.name] + t.prerequisites)
|
||||
end
|
||||
|
||||
task :watch_js do
|
||||
listener = Listen.to(
|
||||
"assets/js",
|
||||
ignore: /main\.min\.js$/,
|
||||
) do |modified, added, removed|
|
||||
Rake::Task[:js].invoke
|
||||
end
|
||||
|
||||
trap("INT") do
|
||||
listener.stop
|
||||
exit 0
|
||||
end
|
||||
|
||||
begin
|
||||
listener.start
|
||||
sleep
|
||||
rescue ThreadError
|
||||
end
|
||||
end
|
||||
|
||||
task :version => ["docs/_data/theme.yml", "README.md", "docs/_pages/home.md"]
|
||||
|
||||
file "docs/_data/theme.yml" => "package.json" do |t|
|
||||
theme = { "version" => package_json["version"] }
|
||||
File.open(t.name, "w") do |f|
|
||||
f.puts "# for use with in-page templates"
|
||||
f.puts theme.to_yaml
|
||||
end
|
||||
end
|
||||
|
||||
file "README.md" => "package.json" do |t|
|
||||
content = File.read(t.name)
|
||||
content = content.gsub(/(mmistakes\/minimal-mistakes@)[\d.]+/, '\1' + package_json["version"])
|
||||
File.write(t.name, content)
|
||||
end
|
||||
|
||||
file "docs/_pages/home.md" => "package.json" do |t|
|
||||
content = File.read(t.name)
|
||||
content = content.gsub(/(\breleases\/tag\/|Latest release v)[\d.]+/, '\1' + package_json["version"])
|
||||
File.write(t.name, content)
|
||||
end
|
||||
|
||||
+49
-5
@@ -16,6 +16,7 @@ minimal_mistakes_skin : "default" # "air", "aqua", "contrast", "dark", "dirt"
|
||||
|
||||
# Site Settings
|
||||
locale : "en-US"
|
||||
rtl : # true, false (default) # turns direction of the page into right to left for RTL languages
|
||||
title : "Site Title"
|
||||
title_separator : "-"
|
||||
subtitle : # site tagline that appears below site title in masthead
|
||||
@@ -27,10 +28,13 @@ repository : # GitHub username/repo-name e.g. "mmistakes/minimal-m
|
||||
teaser : # path of fallback teaser image, e.g. "/assets/images/500x300.png"
|
||||
logo : # path of logo image to display in the masthead, e.g. "/assets/images/88x88.png"
|
||||
masthead_title : # overrides the website title displayed in the masthead, use " " for no title
|
||||
# breadcrumbs : false # true, false (default)
|
||||
breadcrumbs : # true, false (default)
|
||||
words_per_minute : 200
|
||||
enable_copy_code_button : # true, false (default)
|
||||
copyright : # "copyright" name, defaults to site.title
|
||||
copyright_url : # "copyright" URL, defaults to site.url
|
||||
comments:
|
||||
provider : # false (default), "disqus", "discourse", "facebook", "staticman", "staticman_v2", "utterances", "custom"
|
||||
provider : # false (default), "disqus", "discourse", "facebook", "staticman", "staticman_v2", "utterances", "giscus", "custom"
|
||||
disqus:
|
||||
shortname : # https://help.disqus.com/customer/portal/articles/466208-what-s-a-shortname-
|
||||
discourse:
|
||||
@@ -43,6 +47,18 @@ comments:
|
||||
utterances:
|
||||
theme : # "github-light" (default), "github-dark"
|
||||
issue_term : # "pathname" (default)
|
||||
giscus:
|
||||
repo_id : # Shown during giscus setup at https://giscus.app
|
||||
category_name : # Full text name of the category
|
||||
category_id : # Shown during giscus setup at https://giscus.app
|
||||
discussion_term : # "pathname" (default), "url", "title", "og:title"
|
||||
reactions_enabled : # '1' for enabled (default), '0' for disabled
|
||||
theme : # "light" (default), "dark", "dark_dimmed", "transparent_dark", "preferred_color_scheme"
|
||||
strict : # 1 for enabled, 0 for disabled (default)
|
||||
input_position : # "top", "bottom" # The comment input box will be placed above or below the comments
|
||||
emit_metadata : # 1 for enabled, 0 for disabled (default) # https://github.com/giscus/giscus/blob/main/ADVANCED-USAGE.md#imetadatamessage
|
||||
lang : # "en" (default)
|
||||
lazy : # true, false # Loading of the comments will be deferred until the user scrolls near the comments container.
|
||||
staticman:
|
||||
branch : # "master"
|
||||
endpoint : # "https://{your Staticman v3 API}/v3/entry/github/"
|
||||
@@ -55,6 +71,8 @@ atom_feed:
|
||||
search : # true, false (default)
|
||||
search_full_content : # true, false (default)
|
||||
search_provider : # lunr (default), algolia, google
|
||||
lunr:
|
||||
search_within_pages : # true, false (default)
|
||||
algolia:
|
||||
application_id : # YOUR_APPLICATION_ID
|
||||
index_name : # YOUR_INDEX_NAME
|
||||
@@ -66,8 +84,9 @@ google:
|
||||
# SEO Related
|
||||
google_site_verification :
|
||||
bing_site_verification :
|
||||
yandex_site_verification :
|
||||
naver_site_verification :
|
||||
yandex_site_verification :
|
||||
baidu_site_verification :
|
||||
|
||||
# Social Sharing
|
||||
twitter:
|
||||
@@ -86,7 +105,7 @@ social:
|
||||
|
||||
# Analytics
|
||||
analytics:
|
||||
provider : false # false (default), "google", "google-universal", "google-gtag", "custom"
|
||||
provider : # false (default), "google", "google-universal", "google-gtag", "custom"
|
||||
google:
|
||||
tracking_id :
|
||||
anonymize_ip : # true, false (default)
|
||||
@@ -165,6 +184,7 @@ exclude:
|
||||
- gulpfile.js
|
||||
- LICENSE
|
||||
- log
|
||||
- minimal-mistakes-jekyll.gemspec
|
||||
- node_modules
|
||||
- package.json
|
||||
- package-lock.json
|
||||
@@ -208,9 +228,33 @@ sass:
|
||||
|
||||
# Outputting
|
||||
permalink: /:categories/:title/
|
||||
timezone: # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
|
||||
|
||||
# Pagination with jekyll-paginate
|
||||
paginate: 5 # amount of posts to show
|
||||
paginate_path: /page:num/
|
||||
timezone: # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
|
||||
# Pagination with jekyll-paginate-v2
|
||||
# See https://github.com/sverrirs/jekyll-paginate-v2/blob/master/README-GENERATOR.md#site-configuration
|
||||
# for configuration details
|
||||
pagination:
|
||||
# Set enabled to true to use paginate v2
|
||||
# enabled: true
|
||||
debug: false
|
||||
collection: 'posts'
|
||||
per_page: 10
|
||||
permalink: '/page/:num/'
|
||||
title: ':title - page :num'
|
||||
limit: 0
|
||||
sort_field: 'date'
|
||||
sort_reverse: true
|
||||
category: 'posts'
|
||||
tag: ''
|
||||
locale: ''
|
||||
trail:
|
||||
before: 2
|
||||
after: 2
|
||||
|
||||
|
||||
# Plugins (previously gems:)
|
||||
|
||||
+323
-48
@@ -272,20 +272,20 @@ pt-PT:
|
||||
<<: *DEFAULT_PT
|
||||
# Brazilian Portuguese
|
||||
pt-BR:
|
||||
skip_links :
|
||||
skip_primary_nav :
|
||||
skip_content :
|
||||
skip_footer :
|
||||
skip_links : "Pular links"
|
||||
skip_primary_nav : "Pular para navegação primária"
|
||||
skip_content : "Pular para conteúdo"
|
||||
skip_footer : "Pular para rodapé"
|
||||
page : "Página"
|
||||
pagination_previous : "Anterior"
|
||||
pagination_next : "Próxima"
|
||||
breadcrumb_home_label : "Home"
|
||||
breadcrumb_home_label : "Início"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label :
|
||||
search_label : "Buscar"
|
||||
menu_label : "Chavear menu"
|
||||
search_label : "Chavear busca"
|
||||
toc_label : "Nesta página"
|
||||
ext_link_label : "Link direto"
|
||||
less_than : "menos que"
|
||||
less_than : "menos de"
|
||||
minute_read : "minuto(s) de leitura"
|
||||
share_on_label : "Compartilhe"
|
||||
meta_label :
|
||||
@@ -296,13 +296,13 @@ pt-BR:
|
||||
comments_title : "Comentários"
|
||||
more_label : "Saiba mais"
|
||||
related_label : "Talvez você também goste"
|
||||
follow_label : "Acompanhe no"
|
||||
follow_label : "Siga:"
|
||||
feed_label : "Feed"
|
||||
powered_by : "Desenvolvido com"
|
||||
website_label : "Site"
|
||||
email_label : "E-mail"
|
||||
recent_posts : "Publicações recentes"
|
||||
undefined_wpm : "Parâmetro words_per_minute indefinido no _config.yml"
|
||||
undefined_wpm : "Parâmetro words_per_minute não definido em _config.yml"
|
||||
comment_form_info : "Seu e-mail não será publicado. Os campos obrigatórios estão marcados"
|
||||
comment_form_comment_label : "Comentário"
|
||||
comment_form_md_info : "Você pode usar Markdown."
|
||||
@@ -314,9 +314,9 @@ pt-BR:
|
||||
comment_success_msg : "Obrigado pelo seu comentário! Ele aparecerá no site assim que for aprovado."
|
||||
comment_error_msg : "Desculpe, ocorreu um erro no envio. Verifique se todos os campos obrigatórios foram preenchidos e tente novamente."
|
||||
loading_label : "Carregando..."
|
||||
search_label_text :
|
||||
search_placeholder_text : "Pesquisar..."
|
||||
search_algolia_no_results :
|
||||
search_label_text : "Digite seu termo de busca..."
|
||||
search_placeholder_text : "Digite seu termo de busca..."
|
||||
search_algolia_no_results : "Nenhum resultado"
|
||||
results_found : "Resultado(s) encontrado(s)"
|
||||
back_to_top : "Voltar para o topo"
|
||||
|
||||
@@ -496,7 +496,7 @@ de: &DEFAULT_DE
|
||||
toc_label : "Auf dieser Seite"
|
||||
ext_link_label : "Direkter Link"
|
||||
less_than : "weniger als"
|
||||
minute_read : "Minuten zum lesen"
|
||||
minute_read : "Minuten zum Lesen"
|
||||
share_on_label : "Teilen auf"
|
||||
meta_label :
|
||||
tags_label : "Tags:"
|
||||
@@ -1018,16 +1018,16 @@ vi-VN:
|
||||
# ------
|
||||
da: &DEFAULT_DA
|
||||
skip_links :
|
||||
skip_primary_nav :
|
||||
skip_content :
|
||||
skip_footer :
|
||||
skip_primary_nav : "Gå til hovedmenuen"
|
||||
skip_content : "Gå til indholdet"
|
||||
skip_footer : "Gå til sidefoden"
|
||||
page : "Side"
|
||||
pagination_previous : "Forrige"
|
||||
pagination_next : "Næste"
|
||||
breadcrumb_home_label : "Home"
|
||||
breadcrumb_home_label : "Forside"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label : "Vis/skjul menu"
|
||||
search_label :
|
||||
search_label : "Søgning til/fra"
|
||||
toc_label : "På denne side"
|
||||
ext_link_label : "Direkte link"
|
||||
less_than : "mindre end"
|
||||
@@ -1059,9 +1059,9 @@ da: &DEFAULT_DA
|
||||
comment_success_msg : "Tak for din kommentar! Den bliver vist på siden, så snart den er godkendt."
|
||||
comment_error_msg : "Desværre skete der en fejl. Prøv igen, mens du sørger for at alle obligatoriske felter er udfyldt."
|
||||
loading_label : "Indlæser..."
|
||||
search_label_text :
|
||||
search_label_text : "Hvad leder du efter..."
|
||||
search_placeholder_text : "Hvad leder du efter..."
|
||||
search_algolia_no_results :
|
||||
search_algolia_no_results : "Ingen resultater"
|
||||
results_found : "Resultat(er) fundet"
|
||||
back_to_top : "Tilbage til toppen"
|
||||
da-DK:
|
||||
@@ -1070,17 +1070,17 @@ da-DK:
|
||||
# Polish
|
||||
# ------
|
||||
pl: &DEFAULT_PL
|
||||
skip_links :
|
||||
skip_primary_nav :
|
||||
skip_content :
|
||||
skip_footer :
|
||||
skip_links : "Pomiń linki"
|
||||
skip_primary_nav : "Przejdź do nawigacji"
|
||||
skip_content : "Przejdź do treści"
|
||||
skip_footer : "Przejdź do stopki"
|
||||
page : "Strona"
|
||||
pagination_previous : "Poprzednia"
|
||||
pagination_next : "Następna"
|
||||
breadcrumb_home_label : "Strona główna"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label : "Przełącz menu"
|
||||
search_label :
|
||||
search_label : "Przełącz wyszukiwanie"
|
||||
toc_label : "Spis treści"
|
||||
ext_link_label : "Link bezpośredni"
|
||||
less_than : "mniej niż"
|
||||
@@ -1101,7 +1101,7 @@ pl: &DEFAULT_PL
|
||||
email_label : "Email"
|
||||
recent_posts : "Najnowsze wpisy"
|
||||
undefined_wpm : "Parametr words_per_minute nie został zdefiniowany w _config.yml."
|
||||
comment_form_info : "Twój adres email nie będzie udostępiony. Wymagane pola są oznaczone"
|
||||
comment_form_info : "Twój adres email nie będzie udostępiony. Wymagane pola są oznaczone."
|
||||
comment_form_comment_label : "Skomentuj"
|
||||
comment_form_md_info : "Markdown jest wspierany"
|
||||
comment_form_name_label : "Imię"
|
||||
@@ -1112,8 +1112,11 @@ pl: &DEFAULT_PL
|
||||
comment_success_msg : "Dziękuję za Twój komentarz! Zostanie dodany po akceptacji."
|
||||
comment_error_msg : "Niestety wystąpił błąd. Proszę upewnij się, że wszystkie wymagane pola zostały wypełnione i spróbuj ponownie."
|
||||
loading_label : "Trwa ładowanie strony..."
|
||||
search_label_text :
|
||||
search_label_text : "Wprowadź kryteria wyszukiwania..."
|
||||
search_placeholder_text : "Wprowadź kryteria wyszukiwania..."
|
||||
search_algolia_no_results : "Brak wyników"
|
||||
results_found : "Znalezione wyniki"
|
||||
back_to_top : "Wróć na górę"
|
||||
pl-PL:
|
||||
<<: *DEFAULT_PL
|
||||
|
||||
@@ -1397,7 +1400,7 @@ fa: &DEFAULT_FA
|
||||
toc_label : "در این صفحه"
|
||||
ext_link_label : "لینک مستقیم"
|
||||
less_than : " "
|
||||
minute_read : "(طول مطالعه (دقیقه"
|
||||
minute_read : "دقیقه، طول مطالعه"
|
||||
share_on_label : "اشتراک گذاری در"
|
||||
meta_label :
|
||||
tags_label : "تگ ها: "
|
||||
@@ -1424,9 +1427,9 @@ fa: &DEFAULT_FA
|
||||
comment_btn_submitted : "ارسال شد"
|
||||
comment_success_msg : ".باتشکر از ارسال دیدگاه! پس از تأیید، این دیدگاه در سایت نشان داده خواهد شد"
|
||||
comment_error_msg : ".متاسفانه در ارسال شما خطایی بود. لطفا مطمئن شوید تمام فیلدهای مورد نیاز تکمیل شده و دوباره امتحان کنید"
|
||||
loading_label : "...بارگذاری"
|
||||
loading_label : "بارگذاری..."
|
||||
search_label_text :
|
||||
search_placeholder_text : "...عبارت جستجوی خود را وارد کنید"
|
||||
search_placeholder_text : "عبارت جستجوی خود را وارد کنید..."
|
||||
search_algolia_no_results :
|
||||
results_found : "نتایج"
|
||||
back_to_top : "بازگشت به بالا"
|
||||
@@ -1697,9 +1700,9 @@ ga-IE:
|
||||
# -----------------
|
||||
fi: &DEFAULT_FI
|
||||
skip_links : "Ohita linkit"
|
||||
skip_primary_nav : "Hyppää pää navigaatioon"
|
||||
skip_content : "Hyppää sisältöön"
|
||||
skip_footer : "Hyppää alareunaan"
|
||||
skip_primary_nav : "Siirry päävalikkoon"
|
||||
skip_content : "Siirry sisältöön"
|
||||
skip_footer : "Siirry alareunaan"
|
||||
page : "Sivu"
|
||||
pagination_previous : "Edellinen"
|
||||
pagination_next : "Seuraava"
|
||||
@@ -1710,39 +1713,39 @@ fi: &DEFAULT_FI
|
||||
toc_label : "Tällä sivulla"
|
||||
ext_link_label : "Suora linkki"
|
||||
less_than : "vähemmän kuin"
|
||||
minute_read : "lukuaika"
|
||||
minute_read : "minuuttia luettavaa"
|
||||
share_on_label : "Jaa"
|
||||
meta_label :
|
||||
tags_label : "Tagit:"
|
||||
tags_label : "Tunnisteet:"
|
||||
categories_label : "Kategoriat:"
|
||||
date_label : "Päivitetty:"
|
||||
comments_label : "Jätä kommentti"
|
||||
comments_title : "Kommentit"
|
||||
more_label : "Lisää"
|
||||
related_label : "Voit olla kiinnostunut myös"
|
||||
related_label : "Saatat olla kiinnostunut myös"
|
||||
follow_label : "Seuraa:"
|
||||
feed_label : "Syöte"
|
||||
powered_by : "Voimanlähteenä"
|
||||
website_label : "Websivu"
|
||||
email_label : "Email"
|
||||
recent_posts : "Viimeisimmät postaukset"
|
||||
powered_by : "Käyttäen"
|
||||
website_label : "Kotisivu"
|
||||
email_label : "Sähköposti"
|
||||
recent_posts : "Viimeisimmät kirjoitukset"
|
||||
undefined_wpm : "words_per_minute asetusta ei ole määritelty _config.yml tiedostossa"
|
||||
comment_form_info : "Your email address will not be published. Required fields are marked"
|
||||
comment_form_info : "Sinun sähköpostiosoitetta ei julkaista. Vaaditut kentät ovat merkittyjä"
|
||||
comment_form_comment_label : "Kommentti"
|
||||
comment_form_md_info : "Tukee markdown muotoilua."
|
||||
comment_form_name_label : "Nimi"
|
||||
comment_form_email_label : "Email osoite"
|
||||
comment_form_website_label : "Webbisivu (vapaaehtoinen)"
|
||||
comment_form_email_label : "Sähköpostiosoite"
|
||||
comment_form_website_label : "Nettisivu (vapaaehtoinen)"
|
||||
comment_btn_submit : "Lähetä"
|
||||
comment_btn_submitted : "Lähetetty"
|
||||
comment_success_msg : "Kiitos kommentista, se julkaistaan tällä sivulla moderoinnin jälkeen."
|
||||
comment_error_msg : "Tarkista että olet täyttänyt kaikki kentät ja yritä uudelleen."
|
||||
comment_success_msg : "Kiitos kommentista, se julkaistaan tällä sivulla tarkastelun jälkeen."
|
||||
comment_error_msg : "Tapahtui virhe. Tarkista, että olet täyttänyt kaikki kentät ja yritä uudelleen."
|
||||
loading_label : "Ladataan..."
|
||||
search_label_text : "Hakusana..."
|
||||
search_placeholder_text : "Hakusana..."
|
||||
search_algolia_no_results :
|
||||
search_algolia_no_results : "Ei hakutuloksia"
|
||||
results_found : "Tulosta"
|
||||
back_to_top : "Ylös"
|
||||
back_to_top : "Siirry ylös"
|
||||
|
||||
# Myanmar (Burmese)
|
||||
# -----------------
|
||||
@@ -1905,6 +1908,278 @@ he: &DEFAULT_HE
|
||||
he-IL:
|
||||
<<: *DEFAULT_HE
|
||||
|
||||
# Arabic (عربي)
|
||||
# --------------
|
||||
ar: &DEFAULT_AR
|
||||
skip_links : "تخطي الروابط"
|
||||
skip_primary_nav : "تخطى الى شريط التنقل"
|
||||
skip_content : "الانتقال الى المحتوى"
|
||||
skip_footer : "الانتقال الى ذيل الصفحة"
|
||||
page : "صفحه"
|
||||
pagination_previous : "قبل"
|
||||
pagination_next : "بعد"
|
||||
breadcrumb_home_label : "الرئيس"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label : "الخيارات"
|
||||
search_label : "البحث"
|
||||
toc_label : "على هذه الصفحة"
|
||||
ext_link_label : "رابط مباشر"
|
||||
less_than : "اقل من"
|
||||
minute_read : "دقيقة قرائية"
|
||||
share_on_label : "مشاركة"
|
||||
meta_label :
|
||||
tags_label : "العلامات الوصفية:"
|
||||
categories_label : "الفئات:"
|
||||
date_label : "تم التحديث:"
|
||||
comments_label : "اترك تعليق"
|
||||
comments_title : "التعليقات"
|
||||
more_label : "اقرأ المزيد"
|
||||
related_label : "قد يعجبك أيضا"
|
||||
follow_label : "تابع:"
|
||||
feed_label : "الاخبار - RSS"
|
||||
powered_by : "تم تطوير بواسطة"
|
||||
website_label : "موقع"
|
||||
email_label : "ايميل"
|
||||
recent_posts : "المشاركات الأخيرة"
|
||||
undefined_wpm : "معامل غير معرف في words_per_minute (كلمة في الدقيقة) في ملف _config.yml"
|
||||
comment_form_info : "لن يتم نشر عنوان بريدك الإلكتروني. الحقول المطلوبة إلزامية"
|
||||
comment_form_comment_label : "تعليق"
|
||||
comment_form_md_info : "لغة ال Markdown مدعومة."
|
||||
comment_form_name_label : "الاسم"
|
||||
comment_form_email_label : "البريد الالكتروني"
|
||||
comment_form_website_label : "الموقع (اختياري)"
|
||||
comment_btn_submit : "أضف تعليق"
|
||||
comment_btn_submitted : "تم الإرسال"
|
||||
comment_success_msg : "شكراً على التعليق! سيتم اظهاره عندما يتم موافقة عليه."
|
||||
comment_error_msg : "للأسف, هناك خطأ في المحاولة. الرجاء الحرص على تعبئة جميع الخانات و محاولة مجدداً."
|
||||
loading_label : "جاري التحميل..."
|
||||
search_label_text : "اكتب مصطلح للبحث..."
|
||||
search_placeholder_text : "اكتب مصطلح للبحث..."
|
||||
search_algolia_no_results : "لا توجد نتائج"
|
||||
results_found : "تم إيجاد نتيجة"
|
||||
back_to_top : "الانتقال الى الأعلى"
|
||||
ar-SD:
|
||||
<<: *DEFAULT_AR
|
||||
ar-SA:
|
||||
<<: *DEFAULT_AR
|
||||
ar-AE:
|
||||
<<: *DEFAULT_AR
|
||||
ar-EG:
|
||||
<<: *DEFAULT_AR
|
||||
|
||||
# Kiswahili
|
||||
# -----------------
|
||||
sw: &DEFAULT_SW
|
||||
skip_links : "Ruka viungo"
|
||||
skip_primary_nav : "Ruka orodha kuu"
|
||||
skip_content : "Ruka maandiko maakuu"
|
||||
skip_footer : "Ruka chini"
|
||||
page : "Ukurasa"
|
||||
pagination_previous : "Rudi"
|
||||
pagination_next : "Endelea"
|
||||
breadcrumb_home_label : "Ukurasa wa kwanza"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label : "Wezesha/Zima orodha"
|
||||
search_label : "Wezesha/Zima kutafuta"
|
||||
toc_label : "Kwa ukurasa huu"
|
||||
ext_link_label : "Kiungo mbio"
|
||||
less_than : "Soma kwa dakikia ndogo kuliko"
|
||||
minute_read : "Soma kwa dakika"
|
||||
share_on_label : "Tangaza"
|
||||
meta_label :
|
||||
tags_label : "Alama:"
|
||||
categories_label : "Aina:"
|
||||
date_label : "Geuzi ya mwisho:"
|
||||
comments_label : "Wacha maoni"
|
||||
comments_title : "Maoni"
|
||||
more_label : "Jifunze zaidi"
|
||||
related_label : "Pia, utapenda"
|
||||
follow_label : "Fuata:"
|
||||
feed_label : "Feed"
|
||||
powered_by : "Inatumia"
|
||||
website_label : "Tovuti"
|
||||
email_label : "Barua pepe"
|
||||
recent_posts : "Makala juzi"
|
||||
undefined_wpm : "Ingizo words_per_minute kwa _config.yml haijawekwa"
|
||||
comment_form_info : "Barua pepe yako haitaonekana. Kuna alama kwa ingizo tunahitaji."
|
||||
comment_form_comment_label : "Maoni"
|
||||
comment_form_md_info : "Unaweza kutumia `Markdown`."
|
||||
comment_form_name_label : "Jina"
|
||||
comment_form_email_label : "Barua pepe"
|
||||
comment_form_website_label : "Tovuti (hiari)"
|
||||
comment_btn_submit : "Tuma maoni"
|
||||
comment_btn_submitted : "Umetuma"
|
||||
comment_success_msg : "Asante kwa maoni yako! Itaonekana ikiridhiwa."
|
||||
comment_error_msg : "Pole, kuna makosa kwa ingizo yako. Tafadhali angalia umeandika kwa ingizo zote zinahitaji, na jaribu tena."
|
||||
loading_label : "Inapakiwa..."
|
||||
search_label_text : "Ingiza neno unatafuta..."
|
||||
search_placeholder_text : "Ingiza neno unatafuta..."
|
||||
search_algolia_no_results : "Hakuna matokeo"
|
||||
results_found : "Tumepata"
|
||||
back_to_top : "Rudi juu"
|
||||
sw-KE:
|
||||
<<: *DEFAULT_SW
|
||||
sw-TZ:
|
||||
<<: *DEFAULT_SW
|
||||
|
||||
# Ukrainian / Українська
|
||||
# -----------------
|
||||
uk: &DEFAULT_UK
|
||||
skip_links : "Посилання для переходу"
|
||||
skip_primary_nav : "Перейти до основної навігації"
|
||||
skip_content : "Перейти до змісту"
|
||||
skip_footer : "Перейти до нижнього колонтитула"
|
||||
page : "Сторінка"
|
||||
pagination_previous : "Попередня"
|
||||
pagination_next : "Наступна"
|
||||
breadcrumb_home_label : "Головна"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label : "Випадаюче меню"
|
||||
search_label : "Пошук"
|
||||
toc_label : "Зміст"
|
||||
ext_link_label : "Пряме посилання"
|
||||
less_than : "менше ніж"
|
||||
minute_read : "хв. на чітання"
|
||||
share_on_label : "Поділитися"
|
||||
meta_label :
|
||||
tags_label : "Мітки:"
|
||||
categories_label : "Розділи:"
|
||||
date_label : "Дата зміни:"
|
||||
comments_label : "Залишити коментар"
|
||||
comments_title : "Коментарі"
|
||||
more_label : "Читати далі"
|
||||
related_label : "Вам також може сподобатись"
|
||||
follow_label : "Зв'язатися зі мною:"
|
||||
feed_label : "RSS-стрічка"
|
||||
powered_by : "Сайт працює на"
|
||||
website_label : "Сайт"
|
||||
email_label : "Электронна пошта"
|
||||
recent_posts : "Останні записи"
|
||||
undefined_wpm : "Не визначено параметр words_per_minute в _config.yml"
|
||||
comment_form_info : "Вашу адресу електронної пошти не буде опубліковано. Обов'язкові поля позначені"
|
||||
comment_form_comment_label : "Коментар"
|
||||
comment_form_md_info : "Підтримується синтаксис Markdown."
|
||||
comment_form_name_label : "Ім'я"
|
||||
comment_form_email_label : "Електронна пошта"
|
||||
comment_form_website_label : "Посилання на сайт (необов'язково)"
|
||||
comment_btn_submit : "Залишити коментар"
|
||||
comment_btn_submitted : "Відправлено"
|
||||
comment_success_msg : "Дякую за Ваш коментар! Його буде опубліковано на сайті після перевірки."
|
||||
comment_error_msg : "На жаль, сталася помилка з надсиланням коментаря. Будь ласка, переконайтеся, що всі обов'язкові поля заповнені та спробуйте знову."
|
||||
loading_label : "Відправка..."
|
||||
search_label_text : "Введіть пошуковий запит..."
|
||||
search_placeholder_text : "Введіть пошуковий запит..."
|
||||
search_algolia_no_results :
|
||||
results_found : "Знайдено"
|
||||
uk-UA:
|
||||
<<: *DEFAULT_UK
|
||||
|
||||
# Czech / čeština
|
||||
# -----------------
|
||||
cs: &DEFAULT_CS
|
||||
skip_links : "Rychlé odkazy"
|
||||
skip_primary_nav : "Přejít na hlavní navigace"
|
||||
skip_content : "Přejít na obsah"
|
||||
skip_footer : "Přejít na zápatí"
|
||||
page : "Stránka"
|
||||
pagination_previous : "Předchozí"
|
||||
pagination_next : "Další"
|
||||
breadcrumb_home_label : "Domů"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label : "Přepnout zobrazení menu"
|
||||
search_label : "Přepnout zobrazení vyhledávání"
|
||||
toc_label : "Na této stránce"
|
||||
ext_link_label : "Přímý odkaz"
|
||||
less_than : "méně než"
|
||||
minute_read : "minut"
|
||||
share_on_label : "Sdílet"
|
||||
meta_label :
|
||||
tags_label : "Štítky:"
|
||||
categories_label : "Rubriky:"
|
||||
date_label : "Aktualizováno:"
|
||||
comments_label : "Okomentovat"
|
||||
comments_title : "Komentáře"
|
||||
more_label : "Zjistit více"
|
||||
related_label : "Může se vám také líbit"
|
||||
follow_label : "Sledovat:"
|
||||
feed_label : "Zdroj"
|
||||
powered_by : "Používáme"
|
||||
website_label : "Web"
|
||||
email_label : "E-mail"
|
||||
recent_posts : "Nejnovější příspěvky"
|
||||
undefined_wpm : "V souboru _config.yml chybí parametr words_per_minute"
|
||||
comment_form_info : "Vaše e-mailová adresa nebude zveřejněna. Povinná pole jsou označena"
|
||||
comment_form_comment_label : "Komentář"
|
||||
comment_form_md_info : "Podporuje markdown."
|
||||
comment_form_name_label : "Jméno"
|
||||
comment_form_email_label : "E-mailová adresa"
|
||||
comment_form_website_label : "Web (volitelné)"
|
||||
comment_btn_submit : "Odeslat komentář"
|
||||
comment_btn_submitted : "Odesláno"
|
||||
comment_success_msg : "Děkujeme za komentář. Na stránce se objeví jakmile projde schválením."
|
||||
comment_error_msg : "Odeslání se nezdařilo. Zkontrolujte, že jste vyplnili všechna povinná pole a zkuste to znovu."
|
||||
loading_label : "Načítání..."
|
||||
search_label_text : "Zadejte vyhledávání..."
|
||||
search_placeholder_text : "Zadejte vyhledávání..."
|
||||
search_algolia_no_results : "Žádné výsledky"
|
||||
results_found : "Nalezené výsledky"
|
||||
back_to_top : "Na začátek stránky"
|
||||
cs-CZ:
|
||||
<<: *DEFAULT_CS
|
||||
|
||||
# Bulgarian
|
||||
# -----------------
|
||||
bg: &DEFAULT_BG
|
||||
skip_links : "Пропуснете връзките"
|
||||
skip_primary_nav : "Преминете към основната навигация"
|
||||
skip_content : "Преминете към съдържанието"
|
||||
skip_footer : "Преминете към долния колонтитул"
|
||||
page : "Страница"
|
||||
pagination_previous : "Предишна"
|
||||
pagination_next : "Следваща"
|
||||
breadcrumb_home_label : "Начало"
|
||||
breadcrumb_separator : "/"
|
||||
menu_label : "Превключване на меню"
|
||||
search_label : "Превключване на търсене"
|
||||
toc_label : "На тази страница"
|
||||
ext_link_label : "Пряка връзка"
|
||||
less_than : "по-малко от"
|
||||
minute_read : "минута четене"
|
||||
share_on_label : "Споделете"
|
||||
meta_label :
|
||||
tags_label : "Етикети:"
|
||||
categories_label : "Категории:"
|
||||
date_label : "Обновено:"
|
||||
comments_label : "Оставете коментар"
|
||||
comments_title : "Коментари"
|
||||
more_label : "Научете повече"
|
||||
related_label : "Може да са ви интересни"
|
||||
follow_label : "Последвайте:"
|
||||
feed_label : "Емисия"
|
||||
powered_by : "Осъществено чрез"
|
||||
website_label : "Уебсайт"
|
||||
email_label : "Е-поща"
|
||||
recent_posts : "Последни публикации"
|
||||
undefined_wpm : "Недефиниран параметър words_per_minute в _config.yml"
|
||||
comment_form_info : "Вашият адрес за е-поща няма да бъде публикуван. Задължителните полета са обозначени"
|
||||
comment_form_comment_label : "Коментар"
|
||||
comment_form_md_info : "Поддържа се Маркдаун."
|
||||
comment_form_name_label : "Име"
|
||||
comment_form_email_label : "Адрес за е-поща"
|
||||
comment_form_website_label : "Уебсайт (по желание)"
|
||||
comment_btn_submit : "Изпращане на коментар"
|
||||
comment_btn_submitted : "Изпратено"
|
||||
comment_success_msg : "Благодарности за коментара! Ще се покаже на сайта, след като бъде одобрен."
|
||||
comment_error_msg : "Съжаляваме, възникна грешка с изпращането. Моля, уверете се, че всички задължителни полета са попълнени и опитайте отново."
|
||||
loading_label : "Зареждане..."
|
||||
search_label_text : "Въведете термин за търсене..."
|
||||
search_placeholder_text : "Въведете термин за търсене..."
|
||||
search_algolia_no_results : "Няма резултати"
|
||||
results_found : "Намерени резултати"
|
||||
back_to_top : "Обратно към началото"
|
||||
bg-BG:
|
||||
<<: *DEFAULT_BG
|
||||
|
||||
# Another locale
|
||||
# --------------
|
||||
#
|
||||
@@ -11,7 +11,7 @@
|
||||
{% endif %}
|
||||
|
||||
<div class="{{ include.type | default: 'list' }}__item">
|
||||
<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
|
||||
<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork"{% if post.locale %} lang="{{ post.locale }}"{% endif %}>
|
||||
{% if include.type == "grid" and teaser %}
|
||||
<div class="archive__item-teaser">
|
||||
<img src="{{ teaser | relative_url }}" alt="">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!--
|
||||
<li>
|
||||
<a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fas fa-fw" aria-hidden="true"></i> Custom Social Profile Link
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1,28 +1,22 @@
|
||||
{% assign author = page.author | default: page.authors[0] | default: site.author %}
|
||||
{% assign author = site.data.authors[author] | default: author %}
|
||||
|
||||
<div itemscope itemtype="https://schema.org/Person">
|
||||
<div itemscope itemtype="https://schema.org/Person" class="h-card">
|
||||
|
||||
{% if author.avatar %}
|
||||
<div class="author__avatar">
|
||||
{% if author.home %}
|
||||
<a href="{{ author.home | relative_url }}">
|
||||
<img src="{{ author.avatar | relative_url }}" alt="{{ author.name }}" itemprop="image">
|
||||
</a>
|
||||
{% else %}
|
||||
<img src="{{ author.avatar | relative_url }}" alt="{{ author.name }}" itemprop="image">
|
||||
{% endif %}
|
||||
<a href="{{ author.home | default: '/' | absolute_url }}">
|
||||
<img src="{{ author.avatar | relative_url }}" alt="{{ author.name }}" itemprop="image" class="u-photo">
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="author__content">
|
||||
{% if author.home %}
|
||||
<a href="{{ author.home | relative_url }}"><h3 class="author__name" itemprop="name">{{ author.name }}</h3></a>
|
||||
{% else %}
|
||||
<h3 class="author__name" itemprop="name">{{ author.name }}</h3>
|
||||
{% endif %}
|
||||
<h3 class="author__name p-name" itemprop="name">
|
||||
<a class="u-url" rel="me" href="{{ author.home | default: '/' | absolute_url }}" itemprop="url">{{ author.name }}</a>
|
||||
</h3>
|
||||
{% if author.bio %}
|
||||
<div class="author__bio" itemprop="description">
|
||||
<div class="author__bio p-note" itemprop="description">
|
||||
{{ author.bio | markdownify }}
|
||||
</div>
|
||||
{% endif %}
|
||||
@@ -33,21 +27,21 @@
|
||||
<ul class="author__urls social-icons">
|
||||
{% if author.location %}
|
||||
<li itemprop="homeLocation" itemscope itemtype="https://schema.org/Place">
|
||||
<i class="fas fa-fw fa-map-marker-alt" aria-hidden="true"></i> <span itemprop="name">{{ author.location }}</span>
|
||||
<i class="fas fa-fw fa-map-marker-alt" aria-hidden="true"></i> <span itemprop="name" class="p-locality">{{ author.location }}</span>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.links %}
|
||||
{% for link in author.links %}
|
||||
{% if link.label and link.url %}
|
||||
<li><a href="{{ link.url }}" rel="nofollow noopener noreferrer"><i class="{{ link.icon | default: 'fas fa-link' }}" aria-hidden="true"></i><span class="label">{{ link.label }}</span></a></li>
|
||||
<li><a href="{{ link.url }}" rel="nofollow noopener noreferrer me"{% if link.url contains 'http' %} itemprop="sameAs"{% endif %}><i class="{{ link.icon | default: 'fas fa-link' }}" aria-hidden="true"></i><span class="label">{{ link.label }}</span></a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if author.uri %}
|
||||
<li>
|
||||
<a href="{{ author.uri }}" itemprop="url">
|
||||
<a href="{{ author.uri }}" itemprop="url" rel="me">
|
||||
<i class="fas fa-fw fa-link" aria-hidden="true"></i><span class="label">{{ site.data.ui-text[site.locale].website_label | default: "Website" }}</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -55,7 +49,7 @@
|
||||
|
||||
{% if author.email %}
|
||||
<li>
|
||||
<a href="mailto:{{ author.email }}">
|
||||
<a href="mailto:{{ author.email }}" rel="me" class="u-email">
|
||||
<meta itemprop="email" content="{{ author.email }}" />
|
||||
<i class="fas fa-fw fa-envelope-square" aria-hidden="true"></i><span class="label">{{ site.data.ui-text[site.locale].email_label | default: "Email" }}</span>
|
||||
</a>
|
||||
@@ -64,15 +58,15 @@
|
||||
|
||||
{% if author.keybase %}
|
||||
<li>
|
||||
<a href="https://keybase.io/{{ author.keybase }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<i class="fas fa-fw fa-key" aria-hidden="true"></i><span class="label">Keybase</span>
|
||||
<a href="https://keybase.io/{{ author.keybase }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-keybase" aria-hidden="true"></i><span class="label">Keybase</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if author.twitter %}
|
||||
<li>
|
||||
<a href="https://twitter.com/{{ author.twitter }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://twitter.com/{{ author.twitter }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-twitter-square" aria-hidden="true"></i><span class="label">Twitter</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -80,7 +74,7 @@
|
||||
|
||||
{% if author.facebook %}
|
||||
<li>
|
||||
<a href="https://www.facebook.com/{{ author.facebook }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://www.facebook.com/{{ author.facebook }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-facebook-square" aria-hidden="true"></i><span class="label">Facebook</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -88,7 +82,7 @@
|
||||
|
||||
{% if author.linkedin %}
|
||||
<li>
|
||||
<a href="https://www.linkedin.com/in/{{ author.linkedin }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://www.linkedin.com/in/{{ author.linkedin }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span class="label">LinkedIn</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -96,7 +90,7 @@
|
||||
|
||||
{% if author.xing %}
|
||||
<li>
|
||||
<a href="https://www.xing.com/profile/{{ author.xing }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://www.xing.com/profile/{{ author.xing }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-xing-square" aria-hidden="true"></i><span class="label">XING</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -104,7 +98,7 @@
|
||||
|
||||
{% if author.instagram %}
|
||||
<li>
|
||||
<a href="https://instagram.com/{{ author.instagram }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://instagram.com/{{ author.instagram }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-instagram" aria-hidden="true"></i><span class="label">Instagram</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -112,7 +106,7 @@
|
||||
|
||||
{% if author.tumblr %}
|
||||
<li>
|
||||
<a href="https://{{ author.tumblr }}.tumblr.com" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://{{ author.tumblr }}.tumblr.com" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-tumblr-square" aria-hidden="true"></i><span class="label">Tumblr</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -120,7 +114,7 @@
|
||||
|
||||
{% if author.bitbucket %}
|
||||
<li>
|
||||
<a href="https://bitbucket.org/{{ author.bitbucket }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://bitbucket.org/{{ author.bitbucket }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-bitbucket" aria-hidden="true"></i><span class="label">Bitbucket</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -128,7 +122,7 @@
|
||||
|
||||
{% if author.github %}
|
||||
<li>
|
||||
<a href="https://github.com/{{ author.github }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://github.com/{{ author.github }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">GitHub</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -136,7 +130,7 @@
|
||||
|
||||
{% if author.gitlab %}
|
||||
<li>
|
||||
<a href="https://gitlab.com/{{ author.gitlab }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://gitlab.com/{{ author.gitlab }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-gitlab" aria-hidden="true"></i><span class="label">GitLab</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -144,7 +138,7 @@
|
||||
|
||||
{% if author.stackoverflow %}
|
||||
<li>
|
||||
<a href="https://stackoverflow.com/users/{{ author.stackoverflow }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://stackoverflow.com/users/{{ author.stackoverflow }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-stack-overflow" aria-hidden="true"></i><span class="label">Stack Overflow</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -152,7 +146,7 @@
|
||||
|
||||
{% if author.lastfm %}
|
||||
<li>
|
||||
<a href="https://last.fm/user/{{ author.lastfm }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://last.fm/user/{{ author.lastfm }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-lastfm-square" aria-hidden="true"></i><span class="label">Last.fm</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -160,7 +154,7 @@
|
||||
|
||||
{% if author.dribbble %}
|
||||
<li>
|
||||
<a href="https://dribbble.com/{{ author.dribbble }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://dribbble.com/{{ author.dribbble }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-dribbble" aria-hidden="true"></i><span class="label">Dribbble</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -168,7 +162,7 @@
|
||||
|
||||
{% if author.pinterest %}
|
||||
<li>
|
||||
<a href="https://www.pinterest.com/{{ author.pinterest }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://www.pinterest.com/{{ author.pinterest }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-pinterest" aria-hidden="true"></i><span class="label">Pinterest</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -176,7 +170,7 @@
|
||||
|
||||
{% if author.foursquare %}
|
||||
<li>
|
||||
<a href="https://foursquare.com/{{ author.foursquare }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://foursquare.com/{{ author.foursquare }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-foursquare" aria-hidden="true"></i><span class="label">Foursquare</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -184,7 +178,7 @@
|
||||
|
||||
{% if author.steam %}
|
||||
<li>
|
||||
<a href="https://steamcommunity.com/id/{{ author.steam }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://steamcommunity.com/id/{{ author.steam }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-steam" aria-hidden="true"></i><span class="label">Steam</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -193,13 +187,13 @@
|
||||
{% if author.youtube %}
|
||||
{% if author.youtube contains "://" %}
|
||||
<li>
|
||||
<a href="{{ author.youtube }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="{{ author.youtube }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-youtube" aria-hidden="true"></i><span class="label">YouTube</span>
|
||||
</a>
|
||||
</li>
|
||||
{% elsif author.youtube %}
|
||||
<li>
|
||||
<a href="https://www.youtube.com/user/{{ author.youtube }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://www.youtube.com/user/{{ author.youtube }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-youtube" aria-hidden="true"></i><span class="label">YouTube</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -208,7 +202,7 @@
|
||||
|
||||
{% if author.soundcloud %}
|
||||
<li>
|
||||
<a href="https://soundcloud.com/{{ author.soundcloud }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://soundcloud.com/{{ author.soundcloud }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-soundcloud" aria-hidden="true"></i><span class="label">SoundCloud</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -216,7 +210,7 @@
|
||||
|
||||
{% if author.weibo %}
|
||||
<li>
|
||||
<a href="https://www.weibo.com/{{ author.weibo }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://www.weibo.com/{{ author.weibo }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-weibo" aria-hidden="true"></i><span class="label">Weibo</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -224,7 +218,7 @@
|
||||
|
||||
{% if author.flickr %}
|
||||
<li>
|
||||
<a href="https://www.flickr.com/{{ author.flickr }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://www.flickr.com/{{ author.flickr }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-flickr" aria-hidden="true"></i><span class="label">Flickr</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -232,7 +226,7 @@
|
||||
|
||||
{% if author.codepen %}
|
||||
<li>
|
||||
<a href="https://codepen.io/{{ author.codepen }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://codepen.io/{{ author.codepen }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-codepen" aria-hidden="true"></i><span class="label">CodePen</span>
|
||||
</a>
|
||||
</li>
|
||||
@@ -240,7 +234,7 @@
|
||||
|
||||
{% if author.vine %}
|
||||
<li>
|
||||
<a href="https://vine.co/u/{{ author.vine }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
|
||||
<a href="https://vine.co/u/{{ author.vine }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
|
||||
<i class="fab fa-fw fa-vine" aria-hidden="true"></i><span class="label">{{ site.data.ui-text[site.locale].email_label | default: "Email" }}</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -19,17 +19,18 @@
|
||||
{% for crumb in crumbs offset: 1 %}
|
||||
{% if forloop.first %}
|
||||
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||||
<a href="{{ site.url }}{{ site.baseurl }}/" itemprop="item"><span itemprop="name">{{ site.data.ui-text[site.locale].breadcrumb_home_label | default: "Home" }}</span></a>
|
||||
<a href="{{ '/' | relative_url }}" itemprop="item"><span itemprop="name">{{ site.data.ui-text[site.locale].breadcrumb_home_label | default: "Home" }}</span></a>
|
||||
|
||||
<meta itemprop="position" content="{{ i }}" />
|
||||
</li>
|
||||
<span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
|
||||
{% endif %}
|
||||
{% if forloop.last %}
|
||||
<li class="current">{{ page.title }}</li>
|
||||
<li class="current"{% if page.locale %} lang="{{ page.locale }}"{% endif %}>{{ page.title }}</li>
|
||||
{% else %}
|
||||
{% assign i = i | plus: 1 %}
|
||||
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||||
<a href="{{ crumb | downcase | replace: '%20', '-' | prepend: path_type | prepend: crumb_path | relative_url }}" itemprop="item"><span itemprop="name">{{ crumb | replace: '-', ' ' | replace: '%20', ' ' | capitalize }}</span></a>
|
||||
<a href="{{ crumb | downcase | replace: '%20', '-' | prepend: path_type | prepend: crumb_path | relative_url }}" itemprop="item"><span itemprop="name">{{ crumb | url_decode | replace: '-', ' ' | capitalize }}</span></a>
|
||||
<meta itemprop="position" content="{{ i }}" />
|
||||
</li>
|
||||
<span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
<!--[if lt IE 9]>
|
||||
<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="https://browsehappy.com/">upgrade your browser</a> to improve your experience.</div>
|
||||
<![endif]-->
|
||||
@@ -12,7 +12,7 @@
|
||||
<strong><i class="fas fa-fw fa-folder-open" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }} </strong>
|
||||
<span itemprop="keywords">
|
||||
{% for category_word in categories_sorted %}
|
||||
<a href="{{ category_word | slugify | prepend: path_type | prepend: site.category_archive.path | relative_url }}" class="page__taxonomy-item" rel="tag">{{ category_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
|
||||
<a href="{{ category_word | slugify | prepend: path_type | prepend: site.category_archive.path | relative_url }}" class="page__taxonomy-item p-category" rel="tag">{{ category_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
|
||||
{% endfor %}
|
||||
</span>
|
||||
</p>
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
(function () {
|
||||
var commentContainer = document.querySelector('#giscus-comments');
|
||||
|
||||
if (!commentContainer) {
|
||||
return;
|
||||
}
|
||||
|
||||
var script = document.createElement('script');
|
||||
|
||||
script.setAttribute('src', 'https://giscus.app/client.js');
|
||||
script.setAttribute('data-repo', '{{ site.repository | downcase }}');
|
||||
script.setAttribute('data-repo-id', '{{ site.comments.giscus.repo_id }}');
|
||||
script.setAttribute('data-category', '{{ site.comments.giscus.category_name }}');
|
||||
script.setAttribute('data-category-id', '{{ site.comments.giscus.category_id }}');
|
||||
script.setAttribute('data-mapping', '{{ site.comments.giscus.discussion_term | default: "pathname" }}');
|
||||
script.setAttribute('data-strict', '{{ site.comments.giscus.strict | default: 0 }}');
|
||||
script.setAttribute('data-reactions-enabled', '{{ site.comments.giscus.reactions_enabled | default: 1 }}');
|
||||
script.setAttribute('data-emit-metadata', '{{ site.comments.giscus.emit_metadata | default: 0 }}');
|
||||
script.setAttribute('data-input-position', '{{ site.comments.giscus.input_position | default: "top" }}');
|
||||
script.setAttribute('data-theme', '{{ site.comments.giscus.theme | default: "light" }}');
|
||||
script.setAttribute('data-lang', '{{ site.comments.giscus.lang | default: "en" }}');
|
||||
{% if site.comments.giscus.lazy %}
|
||||
script.setAttribute('data-loading', 'lazy');
|
||||
{% endif %}
|
||||
script.setAttribute('crossorigin', 'anonymous');
|
||||
|
||||
script.setAttribute('async', '');
|
||||
|
||||
commentContainer.appendChild(script);
|
||||
})();
|
||||
</script>
|
||||
@@ -12,6 +12,8 @@
|
||||
{% include /comments-providers/staticman_v2.html %}
|
||||
{% when "utterances" %}
|
||||
{% include /comments-providers/utterances.html %}
|
||||
{% when "giscus" %}
|
||||
{% include /comments-providers/giscus.html %}
|
||||
{% when "custom" %}
|
||||
{% include /comments-providers/custom_scripts.html %}
|
||||
{% endcase %}
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
script.setAttribute('src', 'https://utteranc.es/client.js');
|
||||
script.setAttribute('repo', '{{ site.repository }}');
|
||||
script.setAttribute('issue-term', '{{ site.comments.utterances.issue_term | default: "pathname" }}');
|
||||
{% if site.comments.utterances.label %}script.setAttribute('label', '{{ site.comments.utterances.label }}');{% endif %}
|
||||
script.setAttribute('theme', '{{ site.comments.utterances.theme | default: "github-light" }}');
|
||||
script.setAttribute('crossorigin', 'anonymous');
|
||||
|
||||
|
||||
+34
-13
@@ -17,14 +17,23 @@
|
||||
<div class="js-comments">
|
||||
{% if site.data.comments[page.slug] %}
|
||||
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}</h4>
|
||||
{% assign comments = site.data.comments[page.slug] | sort %}
|
||||
{% assign comments = site.data.comments[page.slug] %}
|
||||
|
||||
<!-- In order to sort by date we must have an array of objects, not an array of arrays, so
|
||||
create a new array of plain comment objects and then sort by the comment date. -->
|
||||
{% assign commentObjects = '' | split: '' %}
|
||||
{% for comment in comments %}
|
||||
{% assign commentObject = comment[1] %}
|
||||
{% assign commentObjects = commentObjects | push: commentObject %}
|
||||
{% endfor %}
|
||||
{% assign comments = commentObjects | sort: "date" %}
|
||||
|
||||
{% for comment in comments %}
|
||||
{% assign email = comment[1].email %}
|
||||
{% assign name = comment[1].name %}
|
||||
{% assign url = comment[1].url %}
|
||||
{% assign date = comment[1].date %}
|
||||
{% assign message = comment[1].message %}
|
||||
{% assign email = comment.email %}
|
||||
{% assign name = comment.name %}
|
||||
{% assign url = comment.url %}
|
||||
{% assign date = comment.date %}
|
||||
{% assign message = comment.message %}
|
||||
{% include comment.html index=forloop.index email=email name=name url=url date=date message=message %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
@@ -35,7 +44,7 @@
|
||||
<div class="page__comments-form">
|
||||
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}</h4>
|
||||
<p class="small">{{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} <span class="required">*</span></p>
|
||||
<form id="new_comment" class="page__comments-form js-form form" method="post" action="{{ site.comments.staticman.endpoint | default: 'https://api.staticman.net/v2/entry/' }}{{ site.repository }}/{{ site.comments.staticman.branch }}/comments">
|
||||
<form id="new_comment" class="page__comments-form js-form form" method="post" action="{{ site.comments.staticman.endpoint }}{{ site.repository }}/{{ site.comments.staticman.branch }}/comments">
|
||||
<div class="form__spinner">
|
||||
<i class="fas fa-spinner fa-spin fa-3x fa-fw"></i>
|
||||
<span class="sr-only">{{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}</span>
|
||||
@@ -91,14 +100,23 @@
|
||||
<div class="js-comments">
|
||||
{% if site.data.comments[page.slug] %}
|
||||
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}</h4>
|
||||
{% assign comments = site.data.comments[page.slug] | sort %}
|
||||
{% assign comments = site.data.comments[page.slug] %}
|
||||
|
||||
<!-- In order to sort by date we must have an array of objects, not an array of arrays, so
|
||||
create a new array of plain comment objects and then sort by the comment date. -->
|
||||
{% assign commentObjects = '' | split: '' %}
|
||||
{% for comment in comments %}
|
||||
{% assign commentObject = comment[1] %}
|
||||
{% assign commentObjects = commentObjects | push: commentObject %}
|
||||
{% endfor %}
|
||||
{% assign comments = commentObjects | sort: "date" %}
|
||||
|
||||
{% for comment in comments %}
|
||||
{% assign email = comment[1].email %}
|
||||
{% assign name = comment[1].name %}
|
||||
{% assign url = comment[1].url %}
|
||||
{% assign date = comment[1].date %}
|
||||
{% assign message = comment[1].message %}
|
||||
{% assign email = comment.email %}
|
||||
{% assign name = comment.name %}
|
||||
{% assign url = comment.url %}
|
||||
{% assign date = comment.date %}
|
||||
{% assign message = comment.message %}
|
||||
{% include comment.html index=forloop.index email=email name=name url=url date=date message=message %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
@@ -153,6 +171,9 @@
|
||||
{% when "utterances" %}
|
||||
<h4 class="page__comments-title">{{ comments_label }}</h4>
|
||||
<section id="utterances-comments"></section>
|
||||
{% when "giscus" %}
|
||||
<h4 class="page__comments-title">{{ comments_label }}</h4>
|
||||
<section id="giscus-comments"></section>
|
||||
{% when "custom" %}
|
||||
{% include /comments-providers/custom.html %}
|
||||
{% endcase %}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.27.0 by Michael Rose
|
||||
Copyright 2013-2025 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Minimal Mistakes Jekyll Theme 4.27.0 by Michael Rose
|
||||
* Copyright 2013-2025 Michael Rose - mademistakes.com | @mmistakes
|
||||
* Free for personal and commercial use under the MIT license
|
||||
* https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
*/
|
||||
@@ -1,4 +1,4 @@
|
||||
{% assign entries = site[include.collection] %}
|
||||
{% assign entries = include.entries | default: site[include.collection] | where_exp: "post", "post.hidden != true" %}
|
||||
|
||||
{% if include.sort_by %}
|
||||
{% assign entries = entries | sort: include.sort_by %}
|
||||
@@ -9,7 +9,5 @@
|
||||
{% endif %}
|
||||
|
||||
{%- for post in entries -%}
|
||||
{%- unless post.hidden -%}
|
||||
{% include archive-single.html %}
|
||||
{%- endunless -%}
|
||||
{% include archive-single.html type=include.type %}
|
||||
{%- endfor -%}
|
||||
|
||||
+3
-1
@@ -1,6 +1,8 @@
|
||||
<figure class="{{ include.class }}">
|
||||
{%- if include.popup -%}<a href="{{ include.image_path | relative_url }}" class="image-popup"{% if include.caption %} title="{{ include.caption | markdownify | strip_html }}"{% endif %}>{%- endif -%}
|
||||
<img src="{{ include.image_path | relative_url }}"
|
||||
alt="{% if include.alt %}{{ include.alt }}{% endif %}">
|
||||
alt="{% if include.alt %}{{ include.alt | escape_once }}{% endif %}">
|
||||
{%- if include.popup -%}</a>{%- endif -%}
|
||||
{%- if include.caption -%}
|
||||
<figcaption>
|
||||
{{ include.caption | markdownify | remove: "<p>" | remove: "</p>" }}
|
||||
|
||||
@@ -18,4 +18,4 @@
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© {{ site.time | date: '%Y' }} {{ site.name | default: site.title }}. {{ site.data.ui-text[site.locale].powered_by | default: "Powered by" }} <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© {{ site.time | date: '%Y' }} <a href="{{ site.copyright_url | default: site.url }}">{{ site.copyright | default: site.title }}</a>. {{ site.data.ui-text[site.locale].powered_by | default: "Powered by" }} <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/jekyll-themes/minimal-mistakes/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
|
||||
+6
-17
@@ -6,31 +6,20 @@
|
||||
<link href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ '/feed.xml' | relative_url }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ site.title }} Feed">
|
||||
{% endunless %}
|
||||
|
||||
<!-- https://t.co/dKP3o1e -->
|
||||
{%- comment %} https://docs.google.com/presentation/d/1rmxwWa9P6_xHqonmh5ONXRS-jPc5XKbnv99Rjkhe04s/present {% endcomment -%}
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<script>
|
||||
document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
|
||||
{% if site.enable_copy_code_button -%}
|
||||
window.enable_copy_code_button = true;
|
||||
{%- endif %}
|
||||
</script>
|
||||
|
||||
<!-- For all browsers -->
|
||||
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5/css/all.min.css">
|
||||
|
||||
<!--[if IE]>
|
||||
<style>
|
||||
/* old IE unsupported flexbox fixes */
|
||||
.greedy-nav .site-title {
|
||||
padding-right: 3em;
|
||||
}
|
||||
.greedy-nav button {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
<![endif]-->
|
||||
<link rel="preload" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@latest/css/all.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@latest/css/all.min.css"></noscript>
|
||||
|
||||
{% if site.head_scripts %}
|
||||
{% for script in site.head_scripts %}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<div class="masthead__menu">
|
||||
<nav id="site-nav" class="greedy-nav">
|
||||
{% unless logo_path == empty %}
|
||||
<a class="site-logo" href="{{ '/' | relative_url }}"><img src="{{ logo_path | relative_url }}" alt=""></a>
|
||||
<a class="site-logo" href="{{ '/' | relative_url }}"><img src="{{ logo_path | relative_url }}" alt="{{ site.masthead_title | default: site.title }}"></a>
|
||||
{% endunless %}
|
||||
<a class="site-title" href="{{ '/' | relative_url }}">
|
||||
{{ site.masthead_title | default: site.title }}
|
||||
@@ -14,16 +14,18 @@
|
||||
<ul class="visible-links">
|
||||
{%- for link in site.data.navigation.main -%}
|
||||
<li class="masthead__menu-item">
|
||||
<a href="{{ link.url | relative_url }}"{% if link.description %} title="{{ link.description }}"{% endif %}>{{ link.title }}</a>
|
||||
<a
|
||||
href="{{ link.url | relative_url }}"
|
||||
{% if link.description %} title="{{ link.description }}"{% endif %}
|
||||
{% if link.target %} target="{{ link.target }}"{% endif %}
|
||||
>{{ link.title }}</a>
|
||||
</li>
|
||||
{%- endfor -%}
|
||||
</ul>
|
||||
{% if site.search == true %}
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">{{ site.data.ui-text[site.locale].search_label | default: "Toggle search" }}</span>
|
||||
<svg class="icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15.99 16">
|
||||
<path d="M15.5,13.12L13.19,10.8a1.69,1.69,0,0,0-1.28-.55l-0.06-.06A6.5,6.5,0,0,0,5.77,0,6.5,6.5,0,0,0,2.46,11.59a6.47,6.47,0,0,0,7.74.26l0.05,0.05a1.65,1.65,0,0,0,.5,1.24l2.38,2.38A1.68,1.68,0,0,0,15.5,13.12ZM6.4,2A4.41,4.41,0,1,1,2,6.4,4.43,4.43,0,0,1,6.4,2Z" transform="translate(-.01)"></path>
|
||||
</svg>
|
||||
<i class="fas fa-search"></i>
|
||||
</button>
|
||||
{% endif %}
|
||||
<button class="greedy-nav__toggle hidden" type="button">
|
||||
|
||||
+18
-17
@@ -1,26 +1,27 @@
|
||||
{% assign navigation = site.data.navigation[include.nav] %}
|
||||
|
||||
<nav class="nav__list">
|
||||
{% if page.sidebar.title %}<h3 class="nav__title" style="padding-left: 0;">{{ page.sidebar.title }}</h3>{% endif %}
|
||||
<input id="ac-toc" name="accordion-toc" type="checkbox" />
|
||||
<label for="ac-toc">{{ site.data.ui-text[site.locale].menu_label | default: "Toggle Menu" }}</label>
|
||||
<ul class="nav__items">
|
||||
{% for nav in navigation %}
|
||||
<li>
|
||||
{% if nav.url %}
|
||||
<a href="{{ nav.url | relative_url }}"><span class="nav__sub-title">{{ nav.title }}</span></a>
|
||||
{% else %}
|
||||
<span class="nav__sub-title">{{ nav.title }}</span>
|
||||
{% endif %}
|
||||
{% for navname in include.nav %}
|
||||
{% assign navigation = site.data.navigation[navname] %}
|
||||
{% for nav in navigation %}
|
||||
<li>
|
||||
{% if nav.url %}
|
||||
<a href="{{ nav.url | relative_url }}"><span class="nav__sub-title">{{ nav.title }}</span></a>
|
||||
{% else %}
|
||||
<span class="nav__sub-title">{{ nav.title }}</span>
|
||||
{% endif %}
|
||||
|
||||
{% if nav.children != null %}
|
||||
<ul>
|
||||
{% for child in nav.children %}
|
||||
<li><a href="{{ child.url | relative_url }}"{% if child.url == page.url %} class="active"{% endif %}>{{ child.title }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% if nav.children != null %}
|
||||
<ul>
|
||||
{% for child in nav.children %}
|
||||
<li><a href="{{ child.url | relative_url }}"{% if child.url == page.url %} class="active"{% endif %}>{{ child.title }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{% assign date_format = site.date_format | default: "%B %-d, %Y" %}
|
||||
{% if page.last_modified_at %}
|
||||
<p class="page__date"><strong><i class="fas fa-fw fa-calendar-alt" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}</strong> <time datetime="{{ page.last_modified_at | date: "%Y-%m-%d" }}">{{ page.last_modified_at | date: "%B %-d, %Y" }}</time></p>
|
||||
<p class="page__date"><strong><i class="fas fa-fw fa-calendar-alt" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}</strong> <time class="dt-published" datetime="{{ page.last_modified_at | date: "%Y-%m-%d" }}">{{ page.last_modified_at | date: date_format }}</time></p>
|
||||
{% elsif page.date %}
|
||||
<p class="page__date"><strong><i class="fas fa-fw fa-calendar-alt" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}</strong> <time datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: "%B %-d, %Y" }}</time></p>
|
||||
<p class="page__date"><strong><i class="fas fa-fw fa-calendar-alt" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}</strong> <time class="dt-published" datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: date_format }}</time></p>
|
||||
{% endif %}
|
||||
@@ -36,14 +36,12 @@
|
||||
<p class="page__lead">{{ page.excerpt | markdownify | remove: "<p>" | remove: "</p>" }}</p>
|
||||
{% endif %}
|
||||
{% include page__meta.html %}
|
||||
{% if page.header.cta_url %}
|
||||
<p><a href="{{ page.header.cta_url | relative_url }}" class="btn btn--light-outline btn--large">{{ page.header.cta_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a></p>
|
||||
{% endif %}
|
||||
{% if page.header.actions %}
|
||||
<p>
|
||||
{% for action in page.header.actions %}
|
||||
<a href="{{ action.url | relative_url }}" class="btn btn--light-outline btn--large">{{ action.label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a>
|
||||
{% endfor %}
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% else %}
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
{% assign date = document.date %}
|
||||
<span class="page__meta-date">
|
||||
<i class="far {% if include.type == 'grid' and document.read_time and document.show_date %}fa-fw {% endif %}fa-calendar-alt" aria-hidden="true"></i>
|
||||
<time datetime="{{ date | date_to_xmlschema }}">{{ date | date: "%B %-d, %Y" }}</time>
|
||||
{% assign date_format = site.date_format | default: "%B %-d, %Y" %}
|
||||
<time datetime="{{ date | date_to_xmlschema }}">{{ date | date: date_format }}</time>
|
||||
</span>
|
||||
{% endif %}
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
{% assign posts = include.posts | where_exp: "post", "post.hidden != true" %}
|
||||
<div class="page__related">
|
||||
{% include before-related.html %}
|
||||
<h2 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h2>
|
||||
<div class="grid__wrapper">
|
||||
{% for post in posts limit:4 %}
|
||||
{% if post.id == page.id %}{% continue %}{% endif %}
|
||||
{% include archive-single.html type="grid" %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,70 @@
|
||||
{% if paginator.total_pages > 1 %}
|
||||
<nav class="pagination">
|
||||
{% assign paginate_path_last = site.paginate_path | split: '/' | last %}
|
||||
{% assign first_page_path = paginator.first_page_path | default: site.paginate_path | replace: paginate_path_last, '' | replace: '//', '/' | relative_url %}
|
||||
<ul>
|
||||
{% comment %} Link for previous page {% endcomment %}
|
||||
{% if paginator.previous_page %}
|
||||
{% if paginator.previous_page == 1 %}
|
||||
<li><a href="{{ first_page_path }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ site.paginate_path | replace: ':num', paginator.previous_page | replace: '//', '/' | relative_url }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</span></a></li>
|
||||
{% endif %}
|
||||
|
||||
{% comment %} First page {% endcomment %}
|
||||
{% if paginator.page == 1 %}
|
||||
<li><a href="#" class="disabled current">1</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ first_page_path }}">1</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% assign page_start = 2 %}
|
||||
{% if paginator.page > 4 %}
|
||||
{% assign page_start = paginator.page | minus: 2 %}
|
||||
{% comment %} Ellipsis for truncated links {% endcomment %}
|
||||
<li><a href="#" class="disabled">…</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% assign page_end = paginator.total_pages | minus: 1 %}
|
||||
{% assign pages_to_end = paginator.total_pages | minus: paginator.page %}
|
||||
{% if pages_to_end > 4 %}
|
||||
{% assign page_end = paginator.page | plus: 2 %}
|
||||
{% endif %}
|
||||
|
||||
{% for index in (page_start..page_end) %}
|
||||
{% if index == paginator.page %}
|
||||
<li><a href="{{ site.paginate_path | replace: ':num', index | replace: '//', '/' | relative_url }}" class="disabled current">{{ index }}</a></li>
|
||||
{% else %}
|
||||
{% comment %} Distance from current page and this link {% endcomment %}
|
||||
{% assign dist = paginator.page | minus: index %}
|
||||
{% if dist < 0 %}
|
||||
{% comment %} Distance must be a positive value {% endcomment %}
|
||||
{% assign dist = 0 | minus: dist %}
|
||||
{% endif %}
|
||||
<li><a href="{{ site.paginate_path | replace: ':num', index | relative_url }}">{{ index }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% comment %} Ellipsis for truncated links {% endcomment %}
|
||||
{% if pages_to_end > 3 %}
|
||||
<li><a href="#" class="disabled">…</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% if paginator.page == paginator.total_pages %}
|
||||
<li><a href="#" class="disabled current">{{ paginator.page }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ site.paginate_path | replace: ':num', paginator.total_pages | replace: '//', '/' | relative_url }}">{{ paginator.total_pages }}</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% comment %} Link next page {% endcomment %}
|
||||
{% if paginator.next_page %}
|
||||
<li><a href="{{ site.paginate_path | replace: ':num', paginator.next_page | replace: '//', '/' | relative_url }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</span></a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
{% endif %}
|
||||
@@ -0,0 +1,68 @@
|
||||
<nav class="pagination">
|
||||
<ul>
|
||||
{% comment %} Link for previous page {% endcomment %}
|
||||
{% if paginator.previous_page %}
|
||||
{% if paginator.previous_page == 1 %}
|
||||
<li><a href="{{ paginator.first_page_path | relative_url }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ paginator.previous_page_path | relative_url }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</span></a></li>
|
||||
{% endif %}
|
||||
|
||||
{% comment %} Determine whether the first page and the last page are already included in trail {% endcomment %}
|
||||
{% for trail in paginator.page_trail %}
|
||||
{% if trail.num == paginator.first_page %}
|
||||
{% assign has_first_page = true %}
|
||||
{% elsif trail.num == paginator.last_page %}
|
||||
{% assign has_last_page = true %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% comment %} First page {% endcomment %}
|
||||
{% unless has_first_page %}
|
||||
{% if paginator.page == 1 %}
|
||||
<li><a href="#" class="disabled current">1</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ paginator.first_page_path | relative_url }}">1</a></li>
|
||||
{% endif %}
|
||||
{% endunless %}
|
||||
|
||||
{% comment %} Ellipsis for truncated links {% endcomment %}
|
||||
{% assign ellipsis_start = paginator.first_page | plus: 1 %}
|
||||
{% if paginator.page_trail.first.num > ellipsis_start %}
|
||||
<li><a href="#" class="disabled">…</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% comment %} Main pagination trail {% endcomment %}
|
||||
{% for trail in paginator.page_trail %}
|
||||
{% if paginator.page == trail.num %}
|
||||
<li><a href="{{ trail.path | remove: 'index.html' | relative_url }}" class="disabled current">{{ trail.num }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ trail.path | remove: 'index.html' | relative_url }}">{{ trail.num }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% comment %} Ellipsis for truncated links {% endcomment %}
|
||||
{% assign ellipsis_end = paginator.last_page | minus: 1 %}
|
||||
{% if paginator.page_trail.last.num < ellipsis_end %}
|
||||
<li><a href="#" class="disabled">…</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% unless has_last_page %}
|
||||
{% if paginator.page == paginator.total_pages %}
|
||||
<li><a href="#" class="disabled current">{{ paginator.page }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ paginator.last_page_path | remove: 'index.html' | relative_url }}">{{ paginator.total_pages }}</a></li>
|
||||
{% endif %}
|
||||
{% endunless %}
|
||||
|
||||
{% comment %} Link next page {% endcomment %}
|
||||
{% if paginator.next_page %}
|
||||
<li><a href="{{ paginator.next_page_path | remove: 'index.html' | relative_url }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</span></a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
@@ -1,69 +1,7 @@
|
||||
{% if paginator.total_pages > 1 %}
|
||||
<nav class="pagination">
|
||||
{% assign first_page_path = paginator.first_page_path | default: site.paginate_path | replace: 'page:num', '' | replace: '//', '/' | relative_url %}
|
||||
<ul>
|
||||
{% comment %} Link for previous page {% endcomment %}
|
||||
{% if paginator.previous_page %}
|
||||
{% if paginator.previous_page == 1 %}
|
||||
<li><a href="{{ first_page_path }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ site.paginate_path | replace: ':num', paginator.previous_page | replace: '//', '/' | relative_url }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</span></a></li>
|
||||
{% endif %}
|
||||
|
||||
{% comment %} First page {% endcomment %}
|
||||
{% if paginator.page == 1 %}
|
||||
<li><a href="#" class="disabled current">1</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ first_page_path }}">1</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% assign page_start = 2 %}
|
||||
{% if paginator.page > 4 %}
|
||||
{% assign page_start = paginator.page | minus: 2 %}
|
||||
{% comment %} Ellipsis for truncated links {% endcomment %}
|
||||
<li><a href="#" class="disabled">…</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% assign page_end = paginator.total_pages | minus: 1 %}
|
||||
{% assign pages_to_end = paginator.total_pages | minus: paginator.page %}
|
||||
{% if pages_to_end > 4 %}
|
||||
{% assign page_end = paginator.page | plus: 2 %}
|
||||
{% endif %}
|
||||
|
||||
{% for index in (page_start..page_end) %}
|
||||
{% if index == paginator.page %}
|
||||
<li><a href="{{ site.paginate_path | replace: ':num', index | replace: '//', '/' | relative_url }}" class="disabled current">{{ index }}</a></li>
|
||||
{% else %}
|
||||
{% comment %} Distance from current page and this link {% endcomment %}
|
||||
{% assign dist = paginator.page | minus: index %}
|
||||
{% if dist < 0 %}
|
||||
{% comment %} Distance must be a positive value {% endcomment %}
|
||||
{% assign dist = 0 | minus: dist %}
|
||||
{% endif %}
|
||||
<li><a href="{{ site.paginate_path | replace: ':num', index | relative_url }}">{{ index }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% comment %} Ellipsis for truncated links {% endcomment %}
|
||||
{% if pages_to_end > 3 %}
|
||||
<li><a href="#" class="disabled">…</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% if paginator.page == paginator.total_pages %}
|
||||
<li><a href="#" class="disabled current">{{ paginator.page }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ site.paginate_path | replace: ':num', paginator.total_pages | replace: '//', '/' | relative_url }}">{{ paginator.total_pages }}</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% comment %} Link next page {% endcomment %}
|
||||
{% if paginator.next_page %}
|
||||
<li><a href="{{ site.paginate_path | replace: ':num', paginator.next_page | replace: '//', '/' | relative_url }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a></li>
|
||||
{% else %}
|
||||
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</span></a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
{% if site.paginate %}
|
||||
{% include paginator-v1.html %}
|
||||
{% elsif site.pagination.enabled %}
|
||||
{% include paginator-v2.html %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{% if page.previous or page.next %}
|
||||
<nav class="pagination">
|
||||
{% if page.previous %}
|
||||
<a href="{{ page.previous.url | relative_url }}" class="pagination--pager" title="{{ page.previous.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
|
||||
<a href="{{ page.previous.url | relative_url }}" class="pagination--pager" title="{{ page.previous.title | markdownify | strip_html | strip}}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
|
||||
{% else %}
|
||||
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
|
||||
{% endif %}
|
||||
{% if page.next %}
|
||||
<a href="{{ page.next.url | relative_url }}" class="pagination--pager" title="{{ page.next.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
|
||||
<a href="{{ page.next.url | relative_url }}" class="pagination--pager" title="{{ page.next.title | markdownify | strip_html | strip}}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
|
||||
{% else %}
|
||||
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
|
||||
{% endif %}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{%- for post in site.categories[include.taxonomy] -%}
|
||||
{%- unless post.hidden -%}
|
||||
{% include archive-single.html %}
|
||||
{%- endunless -%}
|
||||
{% assign posts = site.categories[include.taxonomy] | where_exp: "post", "post.hidden != true" %}
|
||||
{%- for post in posts -%}
|
||||
{% include archive-single.html %}
|
||||
{%- endfor -%}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{%- for post in site.tags[include.taxonomy] -%}
|
||||
{%- unless post.hidden -%}
|
||||
{% include archive-single.html %}
|
||||
{%- endunless -%}
|
||||
{% assign posts = site.tags[include.taxonomy] | where_exp: "post", "post.hidden != true" %}
|
||||
{%- for post in posts -%}
|
||||
{% include archive-single.html %}
|
||||
{%- endfor -%}
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
{% assign items_max = 0 %}
|
||||
{% for item in include.taxonomies %}
|
||||
{% if item[1].size > items_max %}
|
||||
{% assign items_max = item[1].size %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
<ul class="taxonomy__index">
|
||||
{% for i in (1..items_max) reversed %}
|
||||
{% for item in include.taxonomies %}
|
||||
{% if item[1].size == i %}
|
||||
<li>
|
||||
<a href="#{{ item[0] | slugify }}">
|
||||
<strong>{{ item[0] }}</strong> <span class="taxonomy__count">{{ i }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
{% assign entries_layout = page.entries_layout | default: 'list' %}
|
||||
{% for i in (1..items_max) reversed %}
|
||||
{% for taxonomy in include.taxonomies %}
|
||||
{% if taxonomy[1].size == i %}
|
||||
<section id="{{ taxonomy[0] | slugify }}" class="taxonomy__section">
|
||||
<h2 class="archive__subtitle">{{ taxonomy[0] }}</h2>
|
||||
<div class="entries-{{ entries_layout }}">
|
||||
{% for post in taxonomy.last %}
|
||||
{% include archive-single.html type=entries_layout %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<a href="#page-title" class="back-to-top">{{ site.data.ui-text[site.locale].back_to_top | default: 'Back to Top' }} ↑</a>
|
||||
</section>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
@@ -0,0 +1,16 @@
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
{% if site.social.type == "Organization" -%}
|
||||
"@type": "Organization",
|
||||
"url": {{ '/' | absolute_url | jsonify }}{% if site.og_image %},
|
||||
"logo": {{ site_og_image | jsonify }}{% endif %}{% if site.social.links %},
|
||||
"sameAs": {{ site.social.links | jsonify }}{% endif %}
|
||||
{%- else -%}
|
||||
"@type": "Person",
|
||||
"name": {{ site.social.name | default: site.name | jsonify }},
|
||||
"url": {{ '/' | absolute_url | jsonify }}{% if site.social.links %},
|
||||
"sameAs": {{ site.social.links | jsonify }}{% endif %}
|
||||
{%- endif %}
|
||||
}
|
||||
</script>
|
||||
@@ -1,60 +1,81 @@
|
||||
<!-- Including InstantSearch.js library and styling -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.js"></script>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch-theme-algolia.min.css">
|
||||
|
||||
<script>
|
||||
// Instanciating InstantSearch.js with Algolia credentials
|
||||
const search = instantsearch({
|
||||
appId: '{{ site.algolia.application_id }}',
|
||||
apiKey: '{{ site.algolia.search_only_api_key }}',
|
||||
indexName: '{{ site.algolia.index_name }}',
|
||||
searchParameters: {
|
||||
restrictSearchableAttributes: [
|
||||
'title',
|
||||
'content'
|
||||
]
|
||||
}
|
||||
});
|
||||
// Including InstantSearch.js library and styling
|
||||
const loadSearch = function() {
|
||||
const loadCSS = function(src) {
|
||||
var link = document.createElement('link');
|
||||
link.rel = 'stylesheet';
|
||||
link.type = 'text/css';
|
||||
link.href = src;
|
||||
link.media = 'all';
|
||||
document.head.appendChild(link);
|
||||
};
|
||||
|
||||
const hitTemplate = function(hit) {
|
||||
const url = hit.url;
|
||||
const title = hit._highlightResult.title.value;
|
||||
const content = hit._highlightResult.html.value;
|
||||
var script = document.createElement('script');
|
||||
script.setAttribute("type", "text/javascript");
|
||||
script.setAttribute("src", "https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.js");
|
||||
script.addEventListener("load", function() {
|
||||
// Instantiating InstantSearch.js with Algolia credentials
|
||||
const search = instantsearch({
|
||||
appId: '{{ site.algolia.application_id }}',
|
||||
apiKey: '{{ site.algolia.search_only_api_key }}',
|
||||
indexName: '{{ site.algolia.index_name }}',
|
||||
searchParameters: {
|
||||
restrictSearchableAttributes: ['title', 'content']
|
||||
}
|
||||
});
|
||||
|
||||
return `
|
||||
<div class="list__item">
|
||||
<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
|
||||
<h2 class="archive__item-title" itemprop="headline"><a href="{{ site.baseurl }}${url}">${title}</a></h2>
|
||||
<div class="archive__item-excerpt" itemprop="description">${content}</div>
|
||||
</article>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
const hitTemplate = function(hit) {
|
||||
const url = hit.url;
|
||||
const hightlight = hit._highlightResult;
|
||||
const title = hightlight.title && hightlight.title.value || "";
|
||||
const content = hightlight.html && hightlight.html.value || "";
|
||||
|
||||
// Adding searchbar and results widgets
|
||||
search.addWidget(
|
||||
instantsearch.widgets.searchBox({
|
||||
container: '.search-searchbar',
|
||||
{% unless site.algolia.powered_by == false %}poweredBy: true,{% endunless %}
|
||||
placeholder: '{{ site.data.ui-text[site.locale].search_placeholder_text | default: "Enter your search term..." }}'
|
||||
})
|
||||
);
|
||||
search.addWidget(
|
||||
instantsearch.widgets.hits({
|
||||
container: '.search-hits',
|
||||
templates: {
|
||||
item: hitTemplate,
|
||||
empty: '{{ site.data.ui-text[site.locale].search_algolia_no_results | default: "No results" }}',
|
||||
return `
|
||||
<div class="list__item">
|
||||
<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
|
||||
<h2 class="archive__item-title" itemprop="headline"><a href="{{ site.baseurl }}${url}">${title}</a></h2>
|
||||
<div class="archive__item-excerpt" itemprop="description">${content}</div>
|
||||
</article>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
// Adding searchbar and results widgets
|
||||
search.addWidget(
|
||||
instantsearch.widgets.searchBox({
|
||||
container: '.search-searchbar',
|
||||
{% unless site.algolia.powered_by == false %}poweredBy: true,{% endunless %}
|
||||
placeholder: '{{ site.data.ui-text[site.locale].search_placeholder_text | default: "Enter your search term..." }}'
|
||||
})
|
||||
);
|
||||
search.addWidget(
|
||||
instantsearch.widgets.hits({
|
||||
container: '.search-hits',
|
||||
templates: {
|
||||
item: hitTemplate,
|
||||
empty: '{{ site.data.ui-text[site.locale].search_algolia_no_results | default: "No results" }}',
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
if (!search.started) {
|
||||
search.start();
|
||||
}
|
||||
});
|
||||
document.body.appendChild(script);
|
||||
|
||||
loadCSS("https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.css");
|
||||
loadCSS("https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch-theme-algolia.min.css");
|
||||
};
|
||||
|
||||
// Starting the search only when toggle is clicked
|
||||
$(document).ready(function () {
|
||||
$(document).ready(function() {
|
||||
var scriptLoaded = false;
|
||||
|
||||
$(".search__toggle").on("click", function() {
|
||||
if(!search.started) {
|
||||
search.start();
|
||||
if (!scriptLoaded) {
|
||||
loadSearch();
|
||||
scriptLoaded = true;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
{%- assign search_provider = site.search_provider | default: "lunr" -%}
|
||||
{%- case search_provider -%}
|
||||
{%- when "lunr" -%}
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';" role="search">
|
||||
<label class="sr-only" for="search">
|
||||
{{ site.data.ui-text[site.locale].search_label_text | default: 'Enter your search term...' }}
|
||||
</label>
|
||||
@@ -10,7 +10,7 @@
|
||||
</form>
|
||||
<div id="results" class="results"></div>
|
||||
{%- when "google" -%}
|
||||
<form onsubmit="return googleCustomSearchExecute();" id="cse-search-box-form-id">
|
||||
<form onsubmit="return googleCustomSearchExecute();" id="cse-search-box-form-id" role="search">
|
||||
<label class="sr-only" for="cse-search-input-box-id">
|
||||
{{ site.data.ui-text[site.locale].search_label_text | default: 'Enter your search term...' }}
|
||||
</label>
|
||||
|
||||
+21
-42
@@ -1,24 +1,17 @@
|
||||
<!-- begin _includes/seo.html -->
|
||||
{%- if site.url -%}
|
||||
{%- assign seo_url = site.url | append: site.baseurl -%}
|
||||
{%- endif -%}
|
||||
{%- assign seo_url = seo_url | default: site.github.url -%}
|
||||
{%- assign title_separator = site.title_separator | default: '-' -%}
|
||||
|
||||
{% assign title_separator = site.title_separator | default: '-' | replace: '|', '|' %}
|
||||
|
||||
{%- if page.title -%}
|
||||
{%- assign seo_title = page.title | append: " " | append: title_separator | append: " " | append: site.title -%}
|
||||
{%- assign page_title = page.title | default: site.title | replace: '|', '|' -%}
|
||||
{%- if page_title contains site.title -%}
|
||||
{%- assign seo_title = page_title | replace: '|', '|' -%}
|
||||
{%- else -%}
|
||||
{%- assign seo_title = page_title | append: " " | append: title_separator | append: " " | append: site.title | replace: '|', '|' -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if seo_title -%}
|
||||
{%- assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once -%}
|
||||
{%- endif -%}
|
||||
{%- assign page_title = page_title | markdownify | strip_html | strip_newlines | escape_once -%}
|
||||
{%- assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once -%}
|
||||
|
||||
{% if page.canonical_url %}
|
||||
{%- assign canonical_url = page.canonical_url %}
|
||||
{% else %}
|
||||
{%- assign canonical_url = page.url | replace: "index.html", "" | absolute_url %}
|
||||
{% endif %}
|
||||
{%- assign canonical_url = page.canonical_url | default: page.url | replace: "/index.html", "/" | absolute_url %}
|
||||
|
||||
{%- assign seo_description = page.description | default: page.excerpt | default: site.description -%}
|
||||
{%- if seo_description -%}
|
||||
@@ -32,14 +25,9 @@
|
||||
{%- assign author_twitter = author.twitter | replace: "@", "" -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- assign page_large_image = page.header.og_image | default: page.header.overlay_image | default: page.header.image | absolute_url -%}
|
||||
{%- assign page_large_image = page_large_image | escape -%}
|
||||
|
||||
{%- assign page_teaser_image = page.header.teaser | default: site.og_image | absolute_url -%}
|
||||
{%- assign page_teaser_image = page_teaser_image | escape -%}
|
||||
|
||||
{%- assign site_og_image = site.og_image | absolute_url -%}
|
||||
{%- assign site_og_image = site_og_image | escape -%}
|
||||
{%- assign page_large_image = page.header.og_image | default: page.header.overlay_image | default: page.header.image | absolute_url | escape -%}
|
||||
{%- assign page_teaser_image = page.header.teaser | default: site.og_image | absolute_url | escape -%}
|
||||
{%- assign site_og_image = site.og_image | absolute_url | escape -%}
|
||||
|
||||
{%- if page.date -%}
|
||||
{%- assign og_type = "article" -%}
|
||||
@@ -47,7 +35,7 @@
|
||||
{%- assign og_type = "website" -%}
|
||||
{%- endif -%}
|
||||
|
||||
<title>{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}</title>
|
||||
<title>{{ seo_title }}{% if paginator %}{% unless paginator.page == 1 %} {{ title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}</title>
|
||||
<meta name="description" content="{{ seo_description }}">
|
||||
|
||||
{% if author.name %}
|
||||
@@ -60,7 +48,7 @@
|
||||
<meta property="og:type" content="{{ og_type }}">
|
||||
<meta property="og:locale" content="{{ site.locale | replace: "-", "_" | default: "en_US" }}">
|
||||
<meta property="og:site_name" content="{{ site.title }}">
|
||||
<meta property="og:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
|
||||
<meta property="og:title" content="{{ page_title }}">
|
||||
<meta property="og:url" content="{{ canonical_url }}">
|
||||
|
||||
{% if seo_description %}
|
||||
@@ -75,7 +63,7 @@
|
||||
|
||||
{% if site.twitter.username %}
|
||||
<meta name="twitter:site" content="@{{ site.twitter.username | replace: "@", "" }}">
|
||||
<meta name="twitter:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
|
||||
<meta name="twitter:title" content="{{ page_title }}">
|
||||
<meta name="twitter:description" content="{{ seo_description }}">
|
||||
<meta name="twitter:url" content="{{ canonical_url }}">
|
||||
|
||||
@@ -121,21 +109,9 @@
|
||||
<link rel="next" href="{{ paginator.next_page_path | absolute_url }}">
|
||||
{% endif %}
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
{% if site.social.type == "Organization" %}
|
||||
"@type": "Organization",
|
||||
"url": {{ '/' | absolute_url | jsonify }}{% if site.og_image %},
|
||||
"logo": {{ site_og_image | jsonify }}{% endif %}
|
||||
{% else %}
|
||||
"@type": "Person",
|
||||
"name": {{ site.social.name | default: site.name | jsonify }},
|
||||
"url": {{ '/' | absolute_url |jsonify }}{% if site.social.links %},
|
||||
"sameAs": {{ site.social.links | jsonify }}{% endif %}
|
||||
{% endif %}
|
||||
}
|
||||
</script>
|
||||
{% if page.url == '/' %}
|
||||
{% include schema.html %}
|
||||
{% endif %}
|
||||
|
||||
{% if site.google_site_verification %}
|
||||
<meta name="google-site-verification" content="{{ site.google_site_verification }}" />
|
||||
@@ -152,4 +128,7 @@
|
||||
{% if site.naver_site_verification %}
|
||||
<meta name="naver-site-verification" content="{{ site.naver_site_verification }}">
|
||||
{% endif %}
|
||||
{% if site.baidu_site_verification %}
|
||||
<meta name="baidu-site-verification" content="{{ site.baidu_site_verification }}">
|
||||
{% endif %}
|
||||
<!-- end _includes/seo.html -->
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<nav class="skip-links">
|
||||
<h2 class="screen-reader-text">{{ site.data.ui-text[site.locale].skip_links | default: 'Skip links' }}</h2>
|
||||
<ul>
|
||||
<li><a href="#site-nav" class="screen-reader-shortcut">{{ site.data.ui-text[site.locale].skip_primary_nav | default: 'Skip to primary navigation' }}</a></li>
|
||||
<li><a href="#main" class="screen-reader-shortcut">{{ site.data.ui-text[site.locale].skip_content | default: 'Skip to content' }}</a></li>
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
<section class="page__share">
|
||||
{% if site.data.ui-text[site.locale].share_on_label %}
|
||||
<h4 class="page__share-title">{{ site.data.ui-text[site.locale].share_on_label | default: "Share on" }}</h4>
|
||||
{% endif %}
|
||||
<h4 class="page__share-title">{{ site.data.ui-text[site.locale].share_on_label | default: "Share on" }}</h4>
|
||||
|
||||
<a href="https://twitter.com/intent/tweet?{% if site.twitter.username %}via={{ site.twitter.username | url_encode }}&{% endif %}text={{ page.title | url_encode }}%20{{ page.url | absolute_url | url_encode }}" class="btn btn--twitter" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Twitter"><i class="fab fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
||||
<a href="https://x.com/intent/tweet?{% if site.twitter.username %}via={{ site.twitter.username | url_encode }}&{% endif %}text={{ page.title | url_encode }}%20{{ page.url | absolute_url | url_encode }}" class="btn btn--x" aria-label="Share on X" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} X">
|
||||
<i class="fas fa-fw fa-share-alt" aria-hidden="true"></i><span> X</span>
|
||||
</a>
|
||||
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u={{ page.url | absolute_url | url_encode }}" class="btn btn--facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Facebook"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u={{ page.url | absolute_url | url_encode }}" class="btn btn--facebook" aria-label="Share on Facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Facebook">
|
||||
<i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span>
|
||||
</a>
|
||||
|
||||
<a href="https://www.linkedin.com/shareArticle?mini=true&url={{ page.url | absolute_url | url_encode }}" class="btn btn--linkedin" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} LinkedIn"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
||||
<a href="https://www.linkedin.com/shareArticle?mini=true&url={{ page.url | absolute_url }}" class="btn btn--linkedin" aria-label="Share on LinkedIn" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} LinkedIn">
|
||||
<i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span>
|
||||
</a>
|
||||
</section>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<strong><i class="fas fa-fw fa-tags" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }} </strong>
|
||||
<span itemprop="keywords">
|
||||
{% for tag_word in tags_sorted %}
|
||||
<a href="{{ tag_word | slugify | prepend: path_type | prepend: site.tag_archive.path | relative_url }}" class="page__taxonomy-item" rel="tag">{{ tag_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
|
||||
<a href="{{ tag_word | slugify | prepend: path_type | prepend: site.tag_archive.path | relative_url }}" class="page__taxonomy-item p-category" rel="tag">{{ tag_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
|
||||
{% endfor %}
|
||||
</span>
|
||||
</p>
|
||||
|
||||
+13
-6
@@ -24,7 +24,7 @@
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
{% endcomment %}
|
||||
{% comment %}
|
||||
Version 1.1.0
|
||||
Version 1.2.1
|
||||
https://github.com/allejo/jekyll-toc
|
||||
|
||||
"...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
|
||||
@@ -47,6 +47,7 @@
|
||||
* base_url (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
|
||||
* anchor_class (string) : '' - add custom class(es) for each anchor element
|
||||
* skip_no_ids (bool) : false - skip headers that do not have an `id` attribute
|
||||
* flat_toc (bool) : false - when set to true, the TOC will be a single level list
|
||||
|
||||
Output:
|
||||
An ordered or unordered list representing the table of contents of a markdown block. This snippet will only
|
||||
@@ -69,6 +70,7 @@
|
||||
|
||||
{% capture jekyll_toc %}{% endcapture %}
|
||||
{% assign orderedList = include.ordered | default: false %}
|
||||
{% assign flatToc = include.flat_toc | default: false %}
|
||||
{% assign baseURL = include.base_url | default: include.baseurl | default: '' %}
|
||||
{% assign skipNoIDs = include.skip_no_ids | default: include.skipNoIDs | default: false %}
|
||||
{% assign minHeader = include.h_min | default: 1 %}
|
||||
@@ -138,9 +140,9 @@
|
||||
{% capture listItem %}{{ anchorBody }}{% endcapture %}
|
||||
{% endif %}
|
||||
|
||||
{% if currLevel > lastLevel %}
|
||||
{% if currLevel > lastLevel and flatToc == false %}
|
||||
{% capture jekyll_toc %}{{ jekyll_toc }}<{{ listModifier }}{{ subMenuClass }}>{% endcapture %}
|
||||
{% elsif currLevel < lastLevel %}
|
||||
{% elsif currLevel < lastLevel and flatToc == false %}
|
||||
{% assign repeatCount = lastLevel | minus: currLevel %}
|
||||
|
||||
{% for i in (1..repeatCount) %}
|
||||
@@ -158,8 +160,13 @@
|
||||
{% assign firstHeader = false %}
|
||||
{% endfor %}
|
||||
|
||||
{% assign repeatCount = minHeader | minus: 1 %}
|
||||
{% assign repeatCount = lastLevel | minus: repeatCount %}
|
||||
{% if flatToc == true %}
|
||||
{% assign repeatCount = 1 %}
|
||||
{% else %}
|
||||
{% assign repeatCount = minHeader | minus: 1 %}
|
||||
{% assign repeatCount = lastLevel | minus: repeatCount %}
|
||||
{% endif %}
|
||||
|
||||
{% for i in (1..repeatCount) %}
|
||||
{% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
|
||||
{% endfor %}
|
||||
@@ -179,4 +186,4 @@
|
||||
{% capture jekyll_toc %}<{{ listModifier }}{{ rootAttributes }}>{{ nodes | shift | join: '>' }}>{% endcapture %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endcapture %}{% assign tocWorkspace = '' %}{{ deprecation_warnings }}{{ jekyll_toc }}
|
||||
{% endcapture %}{% assign tocWorkspace = '' %}{{ deprecation_warnings }}{{ jekyll_toc -}}
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@
|
||||
{% endcapture %}
|
||||
{% assign video_src = video_src | strip %}
|
||||
|
||||
<!-- Courtesy of embedresponsively.com //-->
|
||||
<!-- Courtesy of embedresponsively.com -->
|
||||
{% unless video_src == "" %}
|
||||
<div class="responsive-video-container">
|
||||
<iframe src="{{ video_src }}" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowfullscreen></iframe>
|
||||
|
||||
@@ -20,7 +20,7 @@ author_profile: false
|
||||
|
||||
<div class="archive">
|
||||
{% unless page.header.overlay_color or page.header.overlay_image %}
|
||||
<h1 id="page-title" class="page__title">{{ page.title }}</h1>
|
||||
<h1 id="page-title" class="page__title"{% if page.locale %} lang="{{ page.locale }}"{% endif %}>{{ page.title }}</h1>
|
||||
{% endunless %}
|
||||
{% for post in page.posts %}
|
||||
{% include archive-single.html %}
|
||||
|
||||
@@ -19,7 +19,7 @@ layout: default
|
||||
|
||||
<div class="archive">
|
||||
{% unless page.header.overlay_color or page.header.overlay_image %}
|
||||
<h1 id="page-title" class="page__title">{{ page.title }}</h1>
|
||||
<h1 id="page-title" class="page__title"{% if page.locale %} lang="{{ page.locale }}"{% endif %}>{{ page.title }}</h1>
|
||||
{% endunless %}
|
||||
{{ content }}
|
||||
</div>
|
||||
|
||||
@@ -4,40 +4,4 @@ layout: archive
|
||||
|
||||
{{ content }}
|
||||
|
||||
{% assign categories_max = 0 %}
|
||||
{% for category in site.categories %}
|
||||
{% if category[1].size > categories_max %}
|
||||
{% assign categories_max = category[1].size %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
<ul class="taxonomy__index">
|
||||
{% for i in (1..categories_max) reversed %}
|
||||
{% for category in site.categories %}
|
||||
{% if category[1].size == i %}
|
||||
<li>
|
||||
<a href="#{{ category[0] | slugify }}">
|
||||
<strong>{{ category[0] }}</strong> <span class="taxonomy__count">{{ i }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
{% assign entries_layout = page.entries_layout | default: 'list' %}
|
||||
{% for i in (1..categories_max) reversed %}
|
||||
{% for category in site.categories %}
|
||||
{% if category[1].size == i %}
|
||||
<section id="{{ category[0] | slugify | downcase }}" class="taxonomy__section">
|
||||
<h2 class="archive__subtitle">{{ category[0] }}</h2>
|
||||
<div class="entries-{{ entries_layout }}">
|
||||
{% for post in category.last %}
|
||||
{% include archive-single.html type=entries_layout %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<a href="#page-title" class="back-to-top">{{ site.data.ui-text[site.locale].back_to_top | default: 'Back to Top' }} ↑</a>
|
||||
</section>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% include posts-taxonomy.html taxonomies=site.categories %}
|
||||
|
||||
+4
-10
@@ -2,25 +2,20 @@
|
||||
---
|
||||
|
||||
<!doctype html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.22.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="{{ site.locale | slice: 0,2 | default: "en" }}" class="no-js">
|
||||
{% include copyright.html %}
|
||||
<html lang="{{ site.locale | replace: "_", "-" | default: "en" }}" class="no-js">
|
||||
<head>
|
||||
{% include head.html %}
|
||||
{% include head/custom.html %}
|
||||
</head>
|
||||
|
||||
<body class="layout--{{ page.layout | default: layout.layout }}{% if page.classes or layout.classes %}{{ page.classes | default: layout.classes | join: ' ' | prepend: ' ' }}{% endif %}">
|
||||
<body class="layout--{{ page.layout | default: layout.layout }}{% if page.classes or layout.classes %}{{ page.classes | default: layout.classes | join: ' ' | prepend: ' ' }}{% endif %}" dir="{% if site.rtl %}rtl{% else %}ltr{% endif %}">
|
||||
{% include_cached skip-links.html %}
|
||||
{% include_cached browser-upgrade.html %}
|
||||
{% include_cached masthead.html %}
|
||||
|
||||
<div class="initial-content">
|
||||
{{ content }}
|
||||
{% include after-content.html %}
|
||||
</div>
|
||||
|
||||
{% if site.search == true %}
|
||||
@@ -37,6 +32,5 @@
|
||||
</div>
|
||||
|
||||
{% include scripts.html %}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+1
-3
@@ -14,9 +14,7 @@ layout: archive
|
||||
|
||||
{% assign entries_layout = page.entries_layout | default: 'list' %}
|
||||
<div class="entries-{{ entries_layout }}">
|
||||
{% for post in posts %}
|
||||
{% include archive-single.html type=entries_layout %}
|
||||
{% endfor %}
|
||||
{% include documents-collection.html entries=posts type=entries_layout %}
|
||||
</div>
|
||||
|
||||
{% include paginator.html %}
|
||||
|
||||
@@ -17,7 +17,7 @@ layout: default
|
||||
|
||||
<div class="archive">
|
||||
{% unless page.header.overlay_color or page.header.overlay_image %}
|
||||
<h1 id="page-title" class="page__title">{{ page.title }}</h1>
|
||||
<h1 id="page-title" class="page__title"{% if page.locale %} lang="{{ page.locale }}"{% endif %}>{{ page.title }}</h1>
|
||||
{% endunless %}
|
||||
|
||||
{{ content }}
|
||||
@@ -25,11 +25,11 @@ layout: default
|
||||
{%- assign search_provider = site.search_provider | default: "lunr" -%}
|
||||
{%- case search_provider -%}
|
||||
{%- when "lunr" -%}
|
||||
<input type="text" id="search" class="search-input" tabindex="-1" placeholder="{{ site.data.ui-text[site.locale].search_placeholder_text | default: 'Enter your search term...' }}" />
|
||||
<input type="text" id="search" class="search-input" placeholder="{{ site.data.ui-text[site.locale].search_placeholder_text | default: 'Enter your search term...' }}" />
|
||||
<div id="results" class="results"></div>
|
||||
{%- when "google" -%}
|
||||
<form onsubmit="return googleCustomSearchExecute();" id="cse-search-box-form-id">
|
||||
<input type="text" id="cse-search-input-box-id" class="search-input" tabindex="-1" placeholder="{{ site.data.ui-text[site.locale].search_placeholder_text | default: 'Enter your search term...' }}" />
|
||||
<input type="text" id="cse-search-input-box-id" class="search-input" placeholder="{{ site.data.ui-text[site.locale].search_placeholder_text | default: 'Enter your search term...' }}" />
|
||||
</form>
|
||||
<div id="results" class="results">
|
||||
<gcse:searchresults-only></gcse:searchresults-only>
|
||||
|
||||
+23
-25
@@ -8,7 +8,11 @@ layout: default
|
||||
{% include page__hero_video.html %}
|
||||
{% endif %}
|
||||
|
||||
{% if page.url != "/" and site.breadcrumbs %}
|
||||
{% assign breadcrumbs_enabled = site.breadcrumbs %}
|
||||
{% if page.breadcrumbs != null %}
|
||||
{% assign breadcrumbs_enabled = page.breadcrumbs %}
|
||||
{% endif %}
|
||||
{% if page.url != "/" and breadcrumbs_enabled %}
|
||||
{% unless paginator %}
|
||||
{% include breadcrumbs.html %}
|
||||
{% endunless %}
|
||||
@@ -17,8 +21,8 @@ layout: default
|
||||
<div id="main" role="main">
|
||||
{% include sidebar.html %}
|
||||
|
||||
<article class="page" itemscope itemtype="https://schema.org/CreativeWork">
|
||||
{% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
|
||||
<article class="page" itemscope itemtype="https://schema.org/CreativeWork"{% if page.locale %} lang="{{ page.locale }}"{% endif %}>
|
||||
{% if page.title %}<meta itemprop="headline" content="{{ page.title | replace: '|', '|' | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
|
||||
{% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
|
||||
{% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date_to_xmlschema }}">{% endif %}
|
||||
{% if page.last_modified_at %}<meta itemprop="dateModified" content="{{ page.last_modified_at | date_to_xmlschema }}">{% endif %}
|
||||
@@ -26,7 +30,11 @@ layout: default
|
||||
<div class="page__inner-wrap">
|
||||
{% unless page.header.overlay_color or page.header.overlay_image %}
|
||||
<header>
|
||||
{% if page.title %}<h1 id="page-title" class="page__title" itemprop="headline">{{ page.title | markdownify | remove: "<p>" | remove: "</p>" }}</h1>{% endif %}
|
||||
{% if page.title -%}
|
||||
<h1 id="page-title" class="page__title" itemprop="headline">
|
||||
<a href="{{ page.url | absolute_url }}" itemprop="url">{{ page.title | markdownify | remove: "<p>" | remove: "</p>" }}</a>
|
||||
</h1>
|
||||
{%- endif %}
|
||||
{% include page__meta.html %}
|
||||
</header>
|
||||
{% endunless %}
|
||||
@@ -57,33 +65,23 @@ layout: default
|
||||
{% include post_pagination.html %}
|
||||
</div>
|
||||
|
||||
{% if jekyll.environment == 'production' and site.comments.provider and page.comments %}
|
||||
{% include comments.html %}
|
||||
{% if site.comments.provider and page.comments %}
|
||||
{% if jekyll.environment == 'production' %}
|
||||
{% include comments.html %}
|
||||
{% else %}
|
||||
<p>
|
||||
Comments are configured with provider: <strong>{{ site.comments.provider }}</strong>,
|
||||
but are disabled in non-production environments.
|
||||
</p>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</article>
|
||||
|
||||
{% comment %}<!-- only show related on a post page when `related: true` -->{% endcomment %}
|
||||
{% if page.id and page.related and site.related_posts.size > 0 %}
|
||||
<div class="page__related">
|
||||
<h4 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
|
||||
<div class="grid__wrapper">
|
||||
{% for post in site.related_posts limit:4 %}
|
||||
{% include archive-single.html type="grid" %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% include page__related.html posts=site.related_posts %}
|
||||
{% comment %}<!-- otherwise show recent posts if no related when `related: true` -->{% endcomment %}
|
||||
{% elsif page.id and page.related %}
|
||||
<div class="page__related">
|
||||
<h4 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
|
||||
<div class="grid__wrapper">
|
||||
{% for post in site.posts limit:4 %}
|
||||
{% if post.id == page.id %}
|
||||
{% continue %}
|
||||
{% endif %}
|
||||
{% include archive-single.html type="grid" %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% include page__related.html posts=site.posts %}
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,7 @@ layout: default
|
||||
{% endif %}
|
||||
|
||||
<div id="main" role="main">
|
||||
<article class="splash" itemscope itemtype="https://schema.org/CreativeWork">
|
||||
<article class="splash" itemscope itemtype="https://schema.org/CreativeWork"{% if page.locale %} lang="{{ page.locale }}"{% endif %}>
|
||||
{% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
|
||||
{% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
|
||||
{% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date_to_xmlschema }}">{% endif %}
|
||||
|
||||
+1
-37
@@ -4,40 +4,4 @@ layout: archive
|
||||
|
||||
{{ content }}
|
||||
|
||||
{% assign tags_max = 0 %}
|
||||
{% for tag in site.tags %}
|
||||
{% if tag[1].size > tags_max %}
|
||||
{% assign tags_max = tag[1].size %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
<ul class="taxonomy__index">
|
||||
{% for i in (1..tags_max) reversed %}
|
||||
{% for tag in site.tags %}
|
||||
{% if tag[1].size == i %}
|
||||
<li>
|
||||
<a href="#{{ tag[0] | slugify }}">
|
||||
<strong>{{ tag[0] }}</strong> <span class="taxonomy__count">{{ i }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
{% assign entries_layout = page.entries_layout | default: 'list' %}
|
||||
{% for i in (1..tags_max) reversed %}
|
||||
{% for tag in site.tags %}
|
||||
{% if tag[1].size == i %}
|
||||
<section id="{{ tag[0] | slugify | downcase }}" class="taxonomy__section">
|
||||
<h2 class="archive__subtitle">{{ tag[0] }}</h2>
|
||||
<div class="entries-{{ entries_layout }}">
|
||||
{% for post in tag.last %}
|
||||
{% include archive-single.html type=entries_layout %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<a href="#page-title" class="back-to-top">{{ site.data.ui-text[site.locale].back_to_top | default: 'Back to Top' }} ↑</a>
|
||||
</section>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% include posts-taxonomy.html taxonomies=site.tags %}
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
/*!
|
||||
* Minimal Mistakes Jekyll Theme 4.22.0 by Michael Rose
|
||||
* Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
* Licensed under MIT (https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE)
|
||||
*/
|
||||
/* Copyright comment */
|
||||
@import "minimal-mistakes/copyright";
|
||||
|
||||
/* Variables */
|
||||
@import "minimal-mistakes/variables";
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
margin-bottom: 2em;
|
||||
|
||||
@include breakpoint($large) {
|
||||
float: right;
|
||||
float: inline-end;
|
||||
width: calc(100% - #{$right-sidebar-width-narrow});
|
||||
padding-right: $right-sidebar-width-narrow;
|
||||
padding-inline-end: $right-sidebar-width-narrow;
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
width: calc(100% - #{$right-sidebar-width});
|
||||
padding-right: $right-sidebar-width;
|
||||
padding-inline-end: $right-sidebar-width;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,10 +53,7 @@
|
||||
a[rel="permalink"]::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
inset: 0;
|
||||
}
|
||||
|
||||
a + a {
|
||||
@@ -98,14 +95,14 @@
|
||||
.archive__item-caption {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
inset-inline-end: 0;
|
||||
margin: 0 auto;
|
||||
padding: 2px 5px;
|
||||
color: #fff;
|
||||
font-family: $caption-font-family;
|
||||
font-size: $type-size-8;
|
||||
background: #000;
|
||||
text-align: right;
|
||||
text-align: end;
|
||||
z-index: 5;
|
||||
opacity: 0.5;
|
||||
border-radius: $border-radius 0 0 0;
|
||||
@@ -140,11 +137,11 @@
|
||||
/* extend grid elements to the right */
|
||||
|
||||
@include breakpoint($large) {
|
||||
margin-right: -1 * $right-sidebar-width-narrow;
|
||||
margin-inline-end: -1 * $right-sidebar-width-narrow;
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
margin-right: -1 * $right-sidebar-width;
|
||||
margin-inline-end: -1 * $right-sidebar-width;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -153,23 +150,22 @@
|
||||
margin-bottom: 2em;
|
||||
|
||||
@include breakpoint($small) {
|
||||
float: left;
|
||||
float: inline-start;
|
||||
width: span(5 of 10);
|
||||
|
||||
&:nth-child(2n + 1) {
|
||||
clear: both;
|
||||
margin-left: 0;
|
||||
margin-inline-start: 0;
|
||||
}
|
||||
|
||||
&:nth-child(2n + 2) {
|
||||
clear: none;
|
||||
margin-left: gutter(of 10);
|
||||
margin-inline-start: gutter(of 10);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint($medium) {
|
||||
margin-left: 0; /* override margin*/
|
||||
margin-right: 0; /* override margin*/
|
||||
margin-inline: 0; /* override margin*/
|
||||
width: span(3 of 12);
|
||||
|
||||
&:nth-child(2n + 1) {
|
||||
@@ -182,17 +178,17 @@
|
||||
|
||||
&:nth-child(4n + 2) {
|
||||
clear: none;
|
||||
margin-left: gutter(1 of 12);
|
||||
margin-inline-start: gutter(1 of 12);
|
||||
}
|
||||
|
||||
&:nth-child(4n + 3) {
|
||||
clear: none;
|
||||
margin-left: gutter(1 of 12);
|
||||
margin-inline-start: gutter(1 of 12);
|
||||
}
|
||||
|
||||
&:nth-child(4n + 4) {
|
||||
clear: none;
|
||||
margin-left: gutter(1 of 12);
|
||||
margin-inline-start: gutter(1 of 12);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -254,23 +250,23 @@
|
||||
font-size: 1.125em;
|
||||
|
||||
@include breakpoint($small) {
|
||||
float: left;
|
||||
float: inline-start;
|
||||
margin-bottom: 0;
|
||||
width: span(4 of 12);
|
||||
|
||||
&:nth-child(3n + 1) {
|
||||
clear: both;
|
||||
margin-left: 0;
|
||||
margin-inline-start: 0;
|
||||
}
|
||||
|
||||
&:nth-child(3n + 2) {
|
||||
clear: none;
|
||||
margin-left: gutter(of 12);
|
||||
margin-inline-start: gutter(of 12);
|
||||
}
|
||||
|
||||
&:nth-child(3n + 3) {
|
||||
clear: none;
|
||||
margin-left: gutter(of 12);
|
||||
margin-inline-start: gutter(of 12);
|
||||
}
|
||||
|
||||
.feature__item-teaser {
|
||||
@@ -280,114 +276,89 @@
|
||||
}
|
||||
|
||||
.archive__item-body {
|
||||
padding-left: gutter(1 of 12);
|
||||
padding-right: gutter(1 of 12);
|
||||
padding-inline: gutter(1 of 12);
|
||||
}
|
||||
|
||||
a.btn::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
inset: 0;
|
||||
}
|
||||
|
||||
&--left {
|
||||
&--left, &--right {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
margin-inline: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
font-size: 1.125em;
|
||||
|
||||
.archive__item {
|
||||
float: left;
|
||||
a.btn::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
}
|
||||
|
||||
.archive__item-teaser {
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
}
|
||||
|
||||
a.btn::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
&--left {
|
||||
float: inline-start;
|
||||
|
||||
.archive__item {
|
||||
float: inline-start;
|
||||
}
|
||||
|
||||
@include breakpoint($small) {
|
||||
.archive__item-teaser {
|
||||
float: left;
|
||||
float: inline-start;
|
||||
width: span(5 of 12);
|
||||
}
|
||||
|
||||
.archive__item-body {
|
||||
float: right;
|
||||
padding-left: gutter(0.5 of 12);
|
||||
padding-right: gutter(1 of 12);
|
||||
float: inline-end;
|
||||
width: span(7 of 12);
|
||||
padding-inline-start: gutter(0.5 of 12);
|
||||
padding-inline-end: gutter(1 of 12);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&--right {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
font-size: 1.125em;
|
||||
float: inline-end;
|
||||
|
||||
.archive__item {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.archive__item-teaser {
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
|
||||
a.btn::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
float: inline-end;
|
||||
}
|
||||
|
||||
@include breakpoint($small) {
|
||||
text-align: right;
|
||||
text-align: end;
|
||||
|
||||
.archive__item-teaser {
|
||||
float: right;
|
||||
float: inline-end;
|
||||
width: span(5 of 12);
|
||||
}
|
||||
|
||||
.archive__item-body {
|
||||
float: left;
|
||||
float: inline-start;
|
||||
width: span(7 of 12);
|
||||
padding-left: gutter(0.5 of 12);
|
||||
padding-right: gutter(1 of 12);
|
||||
padding-inline-start: gutter(1 of 12);
|
||||
padding-inline-end: gutter(0.5 of 12);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&--center {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
float: inline-start;
|
||||
margin-inline: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
font-size: 1.125em;
|
||||
|
||||
.archive__item {
|
||||
float: left;
|
||||
float: inline-start;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@@ -398,10 +369,7 @@
|
||||
a.btn::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
inset: 0;
|
||||
}
|
||||
|
||||
@include breakpoint($small) {
|
||||
@@ -442,14 +410,14 @@
|
||||
Wide Pages
|
||||
========================================================================== */
|
||||
|
||||
.wide {
|
||||
.wide {
|
||||
.archive {
|
||||
@include breakpoint($large) {
|
||||
padding-right: 0;
|
||||
padding-inline-end: 0;
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
padding-right: 0;
|
||||
padding-inline-end: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,18 +107,18 @@ abbr[data-original-title] {
|
||||
/* blockquotes */
|
||||
|
||||
blockquote {
|
||||
margin: 2em 1em 2em 0;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
margin-block: 2em;
|
||||
margin-inline-end: 1em;
|
||||
padding-inline: 1em;
|
||||
font-style: italic;
|
||||
border-left: 0.25em solid $primary-color;
|
||||
border-inline-start: 0.25em solid $primary-color;
|
||||
|
||||
cite {
|
||||
font-style: italic;
|
||||
|
||||
&:before {
|
||||
&::before {
|
||||
content: "\2014";
|
||||
padding-right: 5px;
|
||||
padding-inline-end: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -160,24 +160,6 @@ pre {
|
||||
overflow-x: auto; /* add scrollbars to wide code blocks*/
|
||||
}
|
||||
|
||||
p > code,
|
||||
a > code,
|
||||
li > code,
|
||||
figcaption > code,
|
||||
td > code {
|
||||
padding-top: 0.1rem;
|
||||
padding-bottom: 0.1rem;
|
||||
font-size: 0.8em;
|
||||
background: $code-background-color;
|
||||
border-radius: $border-radius;
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
letter-spacing: -0.2em;
|
||||
content: "\00a0"; /* non-breaking space*/
|
||||
}
|
||||
}
|
||||
|
||||
/* horizontal rule */
|
||||
|
||||
hr {
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
cursor: pointer;
|
||||
|
||||
.icon {
|
||||
margin-right: 0.5em;
|
||||
margin-inline-end: 0.5em;
|
||||
}
|
||||
|
||||
.icon + .hidden {
|
||||
margin-left: -0.5em; /* override for hidden text*/
|
||||
margin-inline-start: -0.5em; /* override for hidden text*/
|
||||
}
|
||||
|
||||
/* button colors */
|
||||
@@ -39,7 +39,8 @@
|
||||
(info, $info-color),
|
||||
(facebook, $facebook-color),
|
||||
(twitter, $twitter-color),
|
||||
(linkedin, $linkedin-color);
|
||||
(linkedin, $linkedin-color),
|
||||
(mastodon, $mastodon-color);
|
||||
|
||||
@each $buttoncolor, $color in $buttoncolors {
|
||||
&--#{$buttoncolor} {
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Minimal Mistakes Jekyll Theme 4.27.0 by Michael Rose
|
||||
* Copyright 2013-2025 Michael Rose - mademistakes.com | @mmistakes
|
||||
* Free for personal and commercial use under the MIT license
|
||||
* https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
*/
|
||||
@@ -4,9 +4,8 @@
|
||||
|
||||
.page__footer {
|
||||
@include clearfix;
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
float: inline-start;
|
||||
margin-inline: 0;
|
||||
width: 100%;
|
||||
margin-top: 3em;
|
||||
color: $muted-text-color;
|
||||
@@ -18,8 +17,7 @@
|
||||
|
||||
footer {
|
||||
@include clearfix;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-inline: auto;
|
||||
margin-top: 2em;
|
||||
max-width: 100%;
|
||||
padding: 0 1em 2em;
|
||||
@@ -67,13 +65,13 @@
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
li + li:before {
|
||||
li + li::before {
|
||||
content: "";
|
||||
padding-right: 5px;
|
||||
padding-inline-end: 5px;
|
||||
}
|
||||
|
||||
a {
|
||||
padding-right: 10px;
|
||||
padding-inline-end: 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
========================================================================== */
|
||||
|
||||
form {
|
||||
margin: 0 0 5px 0;
|
||||
margin-bottom: 5px;
|
||||
padding: 1em;
|
||||
background-color: $form-background-color;
|
||||
|
||||
@@ -17,7 +17,7 @@ form {
|
||||
display: block;
|
||||
width: 100%;
|
||||
margin-bottom: 5px * 2;
|
||||
*margin-left: -7px;
|
||||
margin-inline-start: -7px;
|
||||
padding: 0;
|
||||
color: $text-color;
|
||||
border: 0;
|
||||
@@ -45,7 +45,6 @@ button,
|
||||
select,
|
||||
textarea {
|
||||
vertical-align: baseline;
|
||||
*vertical-align: middle;
|
||||
}
|
||||
|
||||
input,
|
||||
@@ -102,7 +101,6 @@ input[type="radio"] {
|
||||
height: auto;
|
||||
padding: 0;
|
||||
margin: 3px 0;
|
||||
*margin-top: 0;
|
||||
line-height: normal;
|
||||
cursor: pointer;
|
||||
border-radius: 0;
|
||||
@@ -114,8 +112,6 @@ input[type="checkbox"],
|
||||
input[type="radio"] {
|
||||
box-sizing: border-box;
|
||||
padding: 0;
|
||||
*width: 13px;
|
||||
*height: 13px;
|
||||
}
|
||||
|
||||
input[type="image"] {
|
||||
@@ -138,12 +134,6 @@ input[type="submit"] {
|
||||
width: auto;
|
||||
height: auto;
|
||||
cursor: pointer;
|
||||
*overflow: visible;
|
||||
}
|
||||
|
||||
select,
|
||||
input[type="file"] {
|
||||
*margin-top: 4px;
|
||||
}
|
||||
|
||||
select {
|
||||
@@ -173,14 +163,14 @@ input[type="hidden"] {
|
||||
|
||||
.radio,
|
||||
.checkbox {
|
||||
padding-left: 18px;
|
||||
padding-inline-start: 18px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.radio input[type="radio"],
|
||||
.checkbox input[type="checkbox"] {
|
||||
float: left;
|
||||
margin-left: -18px;
|
||||
float: inline-start;
|
||||
margin-inline-start: -18px;
|
||||
}
|
||||
|
||||
.radio.inline,
|
||||
@@ -193,7 +183,7 @@ input[type="hidden"] {
|
||||
|
||||
.radio.inline + .radio.inline,
|
||||
.checkbox.inline + .checkbox.inline {
|
||||
margin-left: 10px;
|
||||
margin-inline-start: 10px;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -248,7 +238,7 @@ select:focus {
|
||||
.help-inline {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
padding-left: 5px;
|
||||
padding-inline-start: 5px;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -279,16 +269,16 @@ select:focus {
|
||||
.form-inline .radio,
|
||||
.form-inline .checkbox,
|
||||
.form-inline .radio {
|
||||
padding-left: 0;
|
||||
padding-inline-start: 0;
|
||||
margin-bottom: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.form-inline .radio input[type="radio"],
|
||||
.form-inline .checkbox input[type="checkbox"] {
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 3px;
|
||||
float: inline-start;
|
||||
margin-inline-start: 0;
|
||||
margin-inline-end: 3px;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -303,8 +293,7 @@ select:focus {
|
||||
}
|
||||
|
||||
.form-search .search-query {
|
||||
padding-left: 14px;
|
||||
padding-right: 14px;
|
||||
padding-inline: 14px;
|
||||
margin-bottom: 0;
|
||||
border-radius: 14px;
|
||||
}
|
||||
@@ -316,23 +305,23 @@ select:focus {
|
||||
.form-search .radio,
|
||||
.form-search .checkbox,
|
||||
.form-inline .radio {
|
||||
padding-left: 0;
|
||||
padding-inline-start: 0;
|
||||
margin-bottom: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.form-search .radio input[type="radio"],
|
||||
.form-search .checkbox input[type="checkbox"] {
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 3px;
|
||||
float: inline-start;
|
||||
margin-inline-start: 0;
|
||||
margin-inline-end: 3px;
|
||||
}
|
||||
|
||||
/*
|
||||
.form--loading
|
||||
========================================================================== */
|
||||
|
||||
.form--loading:before {
|
||||
.form--loading::before {
|
||||
content: "";
|
||||
}
|
||||
|
||||
@@ -340,10 +329,10 @@ select:focus {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.form:before {
|
||||
.form::before {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
inset-inline-start: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(255, 255, 255, 0.7);
|
||||
@@ -354,40 +343,6 @@ select:focus {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
inset-inline-start: 50%;
|
||||
z-index: 11;
|
||||
}
|
||||
|
||||
/*
|
||||
Google search form
|
||||
========================================================================== */
|
||||
|
||||
#goog-fixurl {
|
||||
ul {
|
||||
list-style: none;
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
li {
|
||||
list-style-type: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#goog-wm-qt {
|
||||
width: auto;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 20px;
|
||||
padding: 8px 20px;
|
||||
display: inline-block;
|
||||
font-size: $type-size-6;
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
border-width: 2px !important;
|
||||
border-style: solid !important;
|
||||
border-color: $border-color;
|
||||
border-radius: $border-radius;
|
||||
}
|
||||
|
||||
#goog-wm-sb {
|
||||
@extend .btn;
|
||||
}
|
||||
|
||||
@@ -13,8 +13,7 @@
|
||||
|
||||
&__inner-wrap {
|
||||
@include clearfix;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-inline: auto;
|
||||
padding: 1em;
|
||||
max-width: 100%;
|
||||
display: -webkit-box;
|
||||
@@ -59,17 +58,16 @@
|
||||
}
|
||||
|
||||
.masthead__menu {
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
float: inline-start;
|
||||
margin-inline: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
|
||||
.site-nav {
|
||||
margin-left: 0;
|
||||
margin-inline-start: 0;
|
||||
|
||||
@include breakpoint($small) {
|
||||
float: right;
|
||||
float: inline-end;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +85,7 @@
|
||||
white-space: nowrap;
|
||||
|
||||
&--lg {
|
||||
padding-right: 2em;
|
||||
padding-inline-end: 2em;
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,8 +10,7 @@
|
||||
@include clearfix;
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
padding-inline: 1em;
|
||||
font-family: $sans-serif;
|
||||
-webkit-animation: $intro-transition;
|
||||
animation: $intro-transition;
|
||||
@@ -28,7 +27,7 @@
|
||||
font-size: $type-size-6;
|
||||
|
||||
@include breakpoint($large) {
|
||||
float: right;
|
||||
float: inline-end;
|
||||
width: calc(100% - #{$right-sidebar-width-narrow});
|
||||
}
|
||||
|
||||
@@ -52,7 +51,7 @@
|
||||
|
||||
.pagination {
|
||||
@include clearfix();
|
||||
float: left;
|
||||
float: inline-start;
|
||||
margin-top: 1em;
|
||||
padding-top: 1em;
|
||||
width: 100%;
|
||||
@@ -66,8 +65,8 @@
|
||||
|
||||
li {
|
||||
display: block;
|
||||
float: left;
|
||||
margin-left: -1px;
|
||||
float: inline-start;
|
||||
margin-inline-start: -1px;
|
||||
|
||||
a {
|
||||
display: block;
|
||||
@@ -101,18 +100,18 @@
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
margin-left: 0;
|
||||
margin-inline-start: 0;
|
||||
|
||||
a {
|
||||
border-top-left-radius: $border-radius;
|
||||
border-bottom-left-radius: $border-radius;
|
||||
border-start-start-radius: $border-radius;
|
||||
border-end-start-radius: $border-radius;
|
||||
}
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
a {
|
||||
border-top-right-radius: $border-radius;
|
||||
border-bottom-right-radius: $border-radius;
|
||||
border-start-end-radius: $border-radius;
|
||||
border-end-end-radius: $border-radius;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -121,7 +120,7 @@
|
||||
&--pager {
|
||||
display: block;
|
||||
padding: 1em 2em;
|
||||
float: left;
|
||||
float: inline-start;
|
||||
width: 50%;
|
||||
font-family: $sans-serif;
|
||||
font-size: $type-size-5;
|
||||
@@ -137,14 +136,14 @@
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
border-start-end-radius: 0;
|
||||
border-end-end-radius: 0;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
margin-left: -1px;
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
margin-inline-start: -1px;
|
||||
border-start-start-radius: 0;
|
||||
border-end-start-radius: 0;
|
||||
}
|
||||
|
||||
&.disabled {
|
||||
@@ -192,16 +191,16 @@
|
||||
}
|
||||
|
||||
&.site-logo {
|
||||
margin-left: 0;
|
||||
margin-right: 0.5rem;
|
||||
margin-inline-start: 0;
|
||||
margin-inline-end: 0.5rem;
|
||||
}
|
||||
|
||||
&.site-title {
|
||||
margin-left: 0;
|
||||
margin-inline-start: 0;
|
||||
}
|
||||
}
|
||||
|
||||
img{
|
||||
img {
|
||||
-webkit-transition: none;
|
||||
transition: none;
|
||||
}
|
||||
@@ -240,7 +239,7 @@
|
||||
&:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
inset-inline-start: 0;
|
||||
bottom: 0;
|
||||
height: 4px;
|
||||
background: $primary-color;
|
||||
@@ -262,7 +261,7 @@
|
||||
.hidden-links {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
right: 0;
|
||||
inset-inline-end: 0;
|
||||
margin-top: 15px;
|
||||
padding: 5px;
|
||||
border: 1px solid $border-color;
|
||||
@@ -287,11 +286,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
&:before {
|
||||
&::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: -11px;
|
||||
right: 10px;
|
||||
inset-inline-end: 10px;
|
||||
width: 0;
|
||||
border-style: solid;
|
||||
border-width: 0 10px 10px;
|
||||
@@ -300,11 +299,11 @@
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
&:after {
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: -10px;
|
||||
right: 10px;
|
||||
inset-inline-end: 10px;
|
||||
width: 0;
|
||||
border-style: solid;
|
||||
border-width: 0 10px 10px;
|
||||
@@ -361,11 +360,11 @@
|
||||
transition: 0.2s ease-out;
|
||||
cursor: pointer;
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
&::before,
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
right: 1em;
|
||||
inset-inline-end: 1em;
|
||||
top: 1.25em;
|
||||
width: 0.75em;
|
||||
height: 0.125em;
|
||||
@@ -446,9 +445,8 @@
|
||||
}
|
||||
|
||||
.active {
|
||||
margin-left: -0.5em;
|
||||
padding-left: 0.5em;
|
||||
padding-right: 0.5em;
|
||||
margin-inline-start: -0.5em;
|
||||
padding-inline: 0.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@@ -516,8 +514,8 @@
|
||||
color: #fff;
|
||||
font-size: $type-size-6;
|
||||
background: $primary-color;
|
||||
border-top-left-radius: $border-radius;
|
||||
border-top-right-radius: $border-radius;
|
||||
border-start-start-radius: $border-radius;
|
||||
border-start-end-radius: $border-radius;
|
||||
}
|
||||
|
||||
// Scrollspy marks toc items as .active when they are in focus
|
||||
@@ -551,23 +549,23 @@
|
||||
}
|
||||
|
||||
li ul > li a {
|
||||
padding-left: 1.25rem;
|
||||
padding-inline-start: 1.25rem;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
li ul li ul > li a {
|
||||
padding-left: 1.75rem;
|
||||
padding-inline-start: 1.75rem;
|
||||
}
|
||||
|
||||
li ul li ul li ul > li a {
|
||||
padding-left: 2.25rem;
|
||||
padding-inline-start: 2.25rem;
|
||||
}
|
||||
|
||||
li ul li ul li ul li ul > li a {
|
||||
padding-left: 2.75rem;
|
||||
padding-inline-start: 2.75rem;
|
||||
}
|
||||
|
||||
li ul li ul li ul li ul li ul > li a {
|
||||
padding-left: 3.25rem
|
||||
padding-inline-start: 3.25rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,11 +13,11 @@
|
||||
@mixin notice($notice-color) {
|
||||
margin: 2em 0 !important; /* override*/
|
||||
padding: 1em;
|
||||
color: $dark-gray;
|
||||
color: $text-color;
|
||||
font-family: $global-font-family;
|
||||
font-size: $type-size-6 !important;
|
||||
text-indent: initial; /* override*/
|
||||
background-color: mix(#fff, $notice-color, 90%);
|
||||
background-color: mix($background-color, $notice-color, $notice-background-mix);
|
||||
border-radius: $border-radius;
|
||||
box-shadow: 0 1px 1px rgba($notice-color, 0.25);
|
||||
|
||||
@@ -46,15 +46,19 @@
|
||||
}
|
||||
|
||||
a {
|
||||
color: $notice-color;
|
||||
color: mix(#000, $notice-color, 10%);
|
||||
|
||||
&:hover {
|
||||
color: mix(#000, $notice-color, 40%);
|
||||
color: mix(#000, $notice-color, 50%);
|
||||
}
|
||||
}
|
||||
|
||||
@at-root #{selector-unify(&, "blockquote")} {
|
||||
border-inline-start-color: mix(#000, $notice-color, 10%);
|
||||
}
|
||||
|
||||
code {
|
||||
background-color: mix(#fff, $notice-color, 95%)
|
||||
background-color: mix($background-color, $notice-color, $code-notice-background-mix)
|
||||
}
|
||||
|
||||
pre code {
|
||||
|
||||
@@ -4,10 +4,8 @@
|
||||
|
||||
#main {
|
||||
@include clearfix;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
margin-inline: auto;
|
||||
padding-inline: 1em;
|
||||
-webkit-animation: $intro-transition;
|
||||
animation: $intro-transition;
|
||||
max-width: 100%;
|
||||
@@ -37,21 +35,20 @@ body {
|
||||
|
||||
.page {
|
||||
@include breakpoint($large) {
|
||||
float: right;
|
||||
float: inline-end;
|
||||
width: calc(100% - #{$right-sidebar-width-narrow});
|
||||
padding-right: $right-sidebar-width-narrow;
|
||||
padding-inline-end: $right-sidebar-width-narrow;
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
width: calc(100% - #{$right-sidebar-width});
|
||||
padding-right: $right-sidebar-width;
|
||||
padding-inline-end: $right-sidebar-width;
|
||||
}
|
||||
|
||||
.page__inner-wrap {
|
||||
float: left;
|
||||
float: inline-start;
|
||||
margin-top: 1em;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
margin-inline: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
|
||||
@@ -59,9 +56,8 @@ body {
|
||||
.page__meta,
|
||||
.page__share {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
float: inline-start;
|
||||
margin-inline: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
}
|
||||
@@ -72,6 +68,11 @@ body {
|
||||
margin-top: 0;
|
||||
line-height: 1;
|
||||
|
||||
a {
|
||||
color: $text-color;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
& + .page__meta {
|
||||
margin-top: -0.5em;
|
||||
}
|
||||
@@ -91,7 +92,7 @@ body {
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
.header-link {
|
||||
position: relative;
|
||||
left: 0.5em;
|
||||
inset-inline-start: 0.5em;
|
||||
opacity: 0;
|
||||
font-size: 0.8em;
|
||||
-webkit-transition: opacity 0.2s ease-in-out 0.1s;
|
||||
@@ -134,6 +135,20 @@ body {
|
||||
}
|
||||
}
|
||||
|
||||
:not(pre) > code {
|
||||
padding-top: 0.1rem;
|
||||
padding-bottom: 0.1rem;
|
||||
font-size: 0.8em;
|
||||
background: $code-background-color;
|
||||
border-radius: $border-radius;
|
||||
|
||||
&::before,
|
||||
&::after {
|
||||
letter-spacing: -0.2em;
|
||||
content: "\00a0"; /* non-breaking space*/
|
||||
}
|
||||
}
|
||||
|
||||
dt {
|
||||
margin-top: 1em;
|
||||
font-family: $sans-serif;
|
||||
@@ -141,7 +156,7 @@ body {
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 1em;
|
||||
margin-inline-start: 1em;
|
||||
font-family: $sans-serif;
|
||||
font-size: $type-size-6;
|
||||
}
|
||||
@@ -153,7 +168,7 @@ body {
|
||||
/* blockquote citations */
|
||||
blockquote + .small {
|
||||
margin-top: -1.5em;
|
||||
padding-left: 1.25rem;
|
||||
padding-inline-start: 1.25rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -184,8 +199,7 @@ body {
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
padding-inline: 1em;
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
max-width: $x-large;
|
||||
@@ -223,14 +237,14 @@ body {
|
||||
.page__hero-caption {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
inset-inline-end: 0;
|
||||
margin: 0 auto;
|
||||
padding: 2px 5px;
|
||||
color: #fff;
|
||||
font-family: $caption-font-family;
|
||||
font-size: $type-size-7;
|
||||
background: #000;
|
||||
text-align: right;
|
||||
text-align: end;
|
||||
z-index: 5;
|
||||
opacity: 0.5;
|
||||
border-radius: $border-radius 0 0 0;
|
||||
@@ -301,8 +315,7 @@ body {
|
||||
|
||||
.page__meta-sep::before {
|
||||
content: "\2022";
|
||||
padding-left: 0.5em;
|
||||
padding-right: 0.5em;
|
||||
padding-inline: 0.5em;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -315,13 +328,13 @@ body {
|
||||
}
|
||||
|
||||
strong {
|
||||
margin-right: 10px;
|
||||
margin-inline-end: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.page__taxonomy-item {
|
||||
display: inline-block;
|
||||
margin-right: 5px;
|
||||
margin-inline-end: 5px;
|
||||
margin-bottom: 8px;
|
||||
padding: 5px 10px;
|
||||
text-decoration: none;
|
||||
@@ -398,7 +411,7 @@ body {
|
||||
color: $muted-text-color;
|
||||
font-size: 0.6em;
|
||||
text-transform: uppercase;
|
||||
text-align: right;
|
||||
text-align: end;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@@ -407,9 +420,8 @@ body {
|
||||
========================================================================== */
|
||||
|
||||
.page__comments {
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
float: inline-start;
|
||||
margin-inline: 0;
|
||||
width: 100%;
|
||||
clear: both;
|
||||
}
|
||||
@@ -451,7 +463,7 @@ body {
|
||||
}
|
||||
|
||||
.comment__avatar-wrapper {
|
||||
float: left;
|
||||
float: inline-start;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
|
||||
@@ -475,7 +487,7 @@ body {
|
||||
}
|
||||
|
||||
.comment__content-wrapper {
|
||||
float: right;
|
||||
float: inline-end;
|
||||
width: calc(100% - 60px);
|
||||
|
||||
@include breakpoint($large) {
|
||||
@@ -506,13 +518,13 @@ body {
|
||||
|
||||
.page__related {
|
||||
@include clearfix();
|
||||
float: left;
|
||||
float: inline-start;
|
||||
margin-top: 2em;
|
||||
padding-top: 1em;
|
||||
border-top: 1px solid $border-color;
|
||||
|
||||
@include breakpoint($large) {
|
||||
float: right;
|
||||
float: inline-end;
|
||||
width: calc(100% - #{$right-sidebar-width-narrow});
|
||||
}
|
||||
|
||||
@@ -537,23 +549,13 @@ body {
|
||||
========================================================================== */
|
||||
|
||||
.wide {
|
||||
.page {
|
||||
.page, .page__related {
|
||||
@include breakpoint($large) {
|
||||
padding-right: 0;
|
||||
padding-inline-end: 0;
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.page__related {
|
||||
@include breakpoint($large) {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
padding-right: 0;
|
||||
padding-inline-end: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,18 +8,18 @@ html {
|
||||
/* apply a natural box layout model to all elements */
|
||||
box-sizing: border-box;
|
||||
background-color: $background-color;
|
||||
font-size: 16px;
|
||||
font-size: $doc-font-size;
|
||||
|
||||
@include breakpoint($medium) {
|
||||
font-size: 18px;
|
||||
font-size: $doc-font-size-medium;
|
||||
}
|
||||
|
||||
@include breakpoint($large) {
|
||||
font-size: 20px;
|
||||
font-size: $doc-font-size-large;
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
font-size: 22px;
|
||||
font-size: $doc-font-size-x-large;
|
||||
}
|
||||
|
||||
-webkit-text-size-adjust: 100%;
|
||||
@@ -64,8 +64,6 @@ audio,
|
||||
canvas,
|
||||
video {
|
||||
display: inline-block;
|
||||
*display: inline;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
/* Prevents modern browsers from displaying 'audio' without controls */
|
||||
@@ -142,7 +140,6 @@ textarea {
|
||||
|
||||
button,
|
||||
input {
|
||||
*overflow: visible; /* inner spacing ie IE6/7*/
|
||||
line-height: normal; /* FF3/4 have !important on line-height in UA stylesheet*/
|
||||
}
|
||||
|
||||
|
||||
@@ -9,8 +9,7 @@
|
||||
}
|
||||
|
||||
.search__toggle {
|
||||
margin-left: 1rem;
|
||||
margin-right: 1rem;
|
||||
margin-inline: 1rem;
|
||||
height: $nav-toggle-height;
|
||||
border: 0;
|
||||
outline: none;
|
||||
@@ -38,10 +37,8 @@
|
||||
|
||||
&__inner-wrap {
|
||||
width: 100%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
margin-inline: auto;
|
||||
padding-inline: 1em;
|
||||
-webkit-animation: $intro-transition;
|
||||
animation: $intro-transition;
|
||||
-webkit-animation-delay: 0.15s;
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
// }
|
||||
|
||||
@include breakpoint($large) {
|
||||
float: left;
|
||||
float: inline-start;
|
||||
width: calc(#{$right-sidebar-width-narrow} - 1em);
|
||||
opacity: 0.75;
|
||||
-webkit-transition: opacity 0.2s ease-in-out;
|
||||
@@ -77,10 +77,10 @@
|
||||
@include breakpoint($large) {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
inset-inline-end: 0;
|
||||
width: $right-sidebar-width-narrow;
|
||||
margin-right: -1 * $right-sidebar-width-narrow;
|
||||
padding-left: 1em;
|
||||
margin-inline-end: -1 * $right-sidebar-width-narrow;
|
||||
padding-inline-start: 1em;
|
||||
z-index: 10;
|
||||
|
||||
&.sticky {
|
||||
@@ -88,25 +88,32 @@
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
top: 2em;
|
||||
float: right;
|
||||
float: inline-end;
|
||||
|
||||
.toc {
|
||||
.toc__menu {
|
||||
overflow-y: auto;
|
||||
max-height: calc(100vh - 7em);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
width: $right-sidebar-width;
|
||||
margin-right: -1 * $right-sidebar-width;
|
||||
margin-inline-end: -1 * $right-sidebar-width;
|
||||
}
|
||||
}
|
||||
|
||||
.splash .sidebar__right {
|
||||
@include breakpoint($large) {
|
||||
position: relative;
|
||||
float: right;
|
||||
margin-right: 0;
|
||||
float: inline-end;
|
||||
margin-inline-end: 0;
|
||||
}
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
margin-right: 0;
|
||||
margin-inline-end: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,15 +147,13 @@
|
||||
.author__content {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
padding-left: 15px;
|
||||
padding-right: 25px;
|
||||
padding-inline: 15px 25px;
|
||||
line-height: 1;
|
||||
|
||||
@include breakpoint($large) {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
padding-inline: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
@@ -195,7 +200,7 @@
|
||||
|
||||
.author__urls {
|
||||
span.label {
|
||||
padding-left: 5px;
|
||||
padding-inline-start: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -212,7 +217,7 @@
|
||||
content: '';
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
inset-inline-start: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
pointer-events: none;
|
||||
@@ -234,7 +239,7 @@
|
||||
.author__urls {
|
||||
display: none;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
inset-inline-end: 0;
|
||||
margin-top: 15px;
|
||||
padding: 10px;
|
||||
list-style-type: none;
|
||||
@@ -258,12 +263,12 @@
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
&:before {
|
||||
&::before {
|
||||
display: block;
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: -11px;
|
||||
left: calc(50% - 10px);
|
||||
inset-inline-start: calc(50% - 10px);
|
||||
width: 0;
|
||||
border-style: solid;
|
||||
border-width: 0 10px 10px;
|
||||
@@ -280,7 +285,7 @@
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: -10px;
|
||||
left: calc(50% - 10px);
|
||||
inset-inline-start: calc(50% - 10px);
|
||||
width: 0;
|
||||
border-style: solid;
|
||||
border-width: 0 10px 10px;
|
||||
@@ -304,9 +309,8 @@
|
||||
a {
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
padding-right: 5px;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
padding-block: 2px;
|
||||
padding-inline-end: 5px;
|
||||
color: inherit;
|
||||
font-size: $type-size-5;
|
||||
text-decoration: none;
|
||||
@@ -327,10 +331,10 @@
|
||||
@include breakpoint($large) {
|
||||
position: initial;
|
||||
top: initial;
|
||||
right: initial;
|
||||
inset-inline-end: initial;
|
||||
width: initial;
|
||||
margin-right: initial;
|
||||
padding-left: initial;
|
||||
margin-inline-end: initial;
|
||||
padding-inline-start: initial;
|
||||
z-index: initial;
|
||||
|
||||
&.sticky {
|
||||
@@ -340,7 +344,6 @@
|
||||
|
||||
@include breakpoint($x-large) {
|
||||
width: initial;
|
||||
margin-right: initial;
|
||||
margin-inline-end: initial;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,11 @@ figure.highlight {
|
||||
line-height: 1.8;
|
||||
border-radius: $border-radius;
|
||||
|
||||
[dir=rtl] & {
|
||||
direction: ltr;
|
||||
text-align: start;
|
||||
}
|
||||
|
||||
> pre,
|
||||
pre.highlight {
|
||||
margin: 0;
|
||||
@@ -33,17 +38,17 @@ figure.highlight {
|
||||
/* line numbers*/
|
||||
&.gutter,
|
||||
&.rouge-gutter {
|
||||
padding-right: 1em;
|
||||
padding-inline-end: 1em;
|
||||
width: 1em;
|
||||
color: $base04;
|
||||
border-right: 1px solid $base04;
|
||||
text-align: right;
|
||||
border-inline-end: 1px solid $base04;
|
||||
text-align: end;
|
||||
}
|
||||
|
||||
/* code */
|
||||
&.code,
|
||||
&.rouge-code {
|
||||
padding-left: 1em;
|
||||
padding-inline-start: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ thead {
|
||||
th {
|
||||
padding: 0.5em;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
text-align: start;
|
||||
}
|
||||
|
||||
td {
|
||||
|
||||
@@ -83,20 +83,11 @@ body:hover .visually-hidden button {
|
||||
Type
|
||||
========================================================================== */
|
||||
|
||||
.text-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.text-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.text-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.text-justify {
|
||||
text-align: justify;
|
||||
$text-alignments: left, right, start, end, center, justify;
|
||||
@each $alignment in $text-alignments {
|
||||
.text-#{$alignment} {
|
||||
text-align: $alignment;
|
||||
}
|
||||
}
|
||||
|
||||
.text-nowrap {
|
||||
@@ -108,20 +99,20 @@ body:hover .visually-hidden button {
|
||||
========================================================================== */
|
||||
|
||||
.task-list {
|
||||
padding:0;
|
||||
padding: 0;
|
||||
|
||||
li {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.task-list-item-checkbox {
|
||||
margin-right: 0.5em;
|
||||
margin-inline-end: 0.5em;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.task-list .task-list {
|
||||
margin-left: 1em;
|
||||
margin-inline-start: 1em;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -135,8 +126,7 @@ body:hover .visually-hidden button {
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-inline: auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@@ -148,8 +138,7 @@ body:hover .visually-hidden button {
|
||||
|
||||
.align-left {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-inline: auto;
|
||||
|
||||
@include breakpoint($small) {
|
||||
float: left;
|
||||
@@ -161,8 +150,7 @@ body:hover .visually-hidden button {
|
||||
|
||||
.align-right {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-inline: auto;
|
||||
|
||||
@include breakpoint($small) {
|
||||
float: right;
|
||||
@@ -174,15 +162,14 @@ body:hover .visually-hidden button {
|
||||
|
||||
.align-center {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-inline: auto;
|
||||
}
|
||||
|
||||
/* file page content container */
|
||||
|
||||
.full {
|
||||
@include breakpoint($large) {
|
||||
margin-right: -1 * span(2.5 of 12) !important;
|
||||
margin-inline-end: -1 * span(2.5 of 12) !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,118 +198,35 @@ body:hover .visually-hidden button {
|
||||
color: $text-color;
|
||||
}
|
||||
|
||||
.fa-behance,
|
||||
.fa-behance-square {
|
||||
color: $behance-color;
|
||||
}
|
||||
|
||||
.fa-bitbucket {
|
||||
color: $bitbucket-color;
|
||||
}
|
||||
|
||||
.fa-dribbble,
|
||||
.fa-dribble-square {
|
||||
color: $dribbble-color;
|
||||
}
|
||||
|
||||
.fa-facebook,
|
||||
.fa-facebook-square,
|
||||
.fa-facebook-f {
|
||||
color: $facebook-color;
|
||||
}
|
||||
|
||||
.fa-flickr {
|
||||
color: $flickr-color;
|
||||
}
|
||||
|
||||
.fa-foursquare {
|
||||
color: $foursquare-color;
|
||||
}
|
||||
|
||||
.fa-github,
|
||||
.fa-github-alt,
|
||||
.fa-github-square {
|
||||
color: $github-color;
|
||||
}
|
||||
|
||||
.fa-gitlab {
|
||||
color: $gitlab-color;
|
||||
}
|
||||
|
||||
.fa-instagram {
|
||||
color: $instagram-color;
|
||||
}
|
||||
|
||||
.fa-keybase {
|
||||
color: $keybase-color;
|
||||
}
|
||||
|
||||
.fa-lastfm,
|
||||
.fa-lastfm-square {
|
||||
color: $lastfm-color;
|
||||
}
|
||||
|
||||
.fa-linkedin,
|
||||
.fa-linkedin-in {
|
||||
color: $linkedin-color;
|
||||
}
|
||||
|
||||
.fa-mastodon,
|
||||
.fa-mastodon-square {
|
||||
color: $mastodon-color;
|
||||
}
|
||||
|
||||
.fa-pinterest,
|
||||
.fa-pinterest-p,
|
||||
.fa-pinterest-square {
|
||||
color: $pinterest-color;
|
||||
}
|
||||
|
||||
.fa-reddit {
|
||||
color: $reddit-color;
|
||||
}
|
||||
|
||||
.fa-rss,
|
||||
.fa-rss-square {
|
||||
color: $rss-color;
|
||||
}
|
||||
|
||||
.fa-soundcloud {
|
||||
color: $soundcloud-color;
|
||||
}
|
||||
|
||||
.fa-stack-exchange,
|
||||
.fa-stack-overflow {
|
||||
color: $stackoverflow-color;
|
||||
}
|
||||
|
||||
.fa-tumblr,
|
||||
.fa-tumblr-square {
|
||||
color: $tumblr-color;
|
||||
}
|
||||
|
||||
.fa-twitter,
|
||||
.fa-twitter-square {
|
||||
color: $twitter-color;
|
||||
}
|
||||
|
||||
.fa-vimeo,
|
||||
.fa-vimeo-square,
|
||||
.fa-vimeo-v {
|
||||
color: $vimeo-color;
|
||||
}
|
||||
|
||||
.fa-vine {
|
||||
color: $vine-color;
|
||||
}
|
||||
|
||||
.fa-youtube {
|
||||
color: $youtube-color;
|
||||
}
|
||||
|
||||
.fa-xing,
|
||||
.fa-xing-square {
|
||||
color: $xing-color;
|
||||
@each $color, $icons in (
|
||||
$behance-color: ".fa-behance, .fa-behance-square",
|
||||
$bitbucket-color: ".fa-bitbucket",
|
||||
$dribbble-color: ".fa-dribbble, .fa-dribbble-square",
|
||||
$facebook-color: ".fa-facebook, .fa-facebook-square, .fa-facebook-f",
|
||||
$flickr-color: ".fa-flickr",
|
||||
$foursquare-color: ".fa-foursquare",
|
||||
$github-color: ".fa-github, .fa-github-alt, .fa-github-square",
|
||||
$gitlab-color: ".fa-gitlab",
|
||||
$instagram-color: ".fa-instagram",
|
||||
$keybase-color: ".fa-keybase",
|
||||
$lastfm-color: ".fa-lastfm, .fa-lastfm-square",
|
||||
$linkedin-color: ".fa-linkedin, .fa-linkedin-in",
|
||||
$mastodon-color: ".fa-mastodon, .fa-mastodon-square",
|
||||
$pinterest-color: ".fa-pinterest, .fa-pinterest-p, .fa-pinterest-square",
|
||||
$reddit-color: ".fa-reddit",
|
||||
$rss-color: ".fa-rss, .fa-rss-square",
|
||||
$soundcloud-color: ".fa-soundcloud",
|
||||
$stackoverflow-color: ".fa-stack-exchange, .fa-stack-overflow",
|
||||
$tumblr-color: ".fa-tumblr, .fa-tumblr-square",
|
||||
$twitter-color: ".fa-twitter, .fa-twitter-square",
|
||||
$vimeo-color: ".fa-vimeo, .fa-vimeo-square, .fa-vimeo-v",
|
||||
$vine-color: ".fa-vine",
|
||||
$xing-color: ".fa-xing, .fa-xing-square",
|
||||
$youtube-color: ".fa-youtube",
|
||||
) {
|
||||
#{$icons} {
|
||||
color: $color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -339,11 +243,11 @@ body:hover .visually-hidden button {
|
||||
-webkit-transition: 0.3s;
|
||||
transition: 0.3s;
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
&::before,
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
inset-inline-start: 0;
|
||||
width: $navicon-width;
|
||||
height: $navicon-height;
|
||||
background: $primary-color;
|
||||
@@ -391,7 +295,7 @@ body:hover .visually-hidden button {
|
||||
content: '';
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
inset-inline-start: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: 0;
|
||||
@@ -465,11 +369,11 @@ body:hover .visually-hidden button {
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
|
||||
&:before {
|
||||
&::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
top: 0;
|
||||
left: 0;
|
||||
inset-inline-start: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 999;
|
||||
@@ -486,8 +390,8 @@ body:hover .visually-hidden button {
|
||||
position: fixed;
|
||||
width: 300px;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-left: -150px;
|
||||
inset-inline-start: 50%;
|
||||
margin-inline-start: -150px;
|
||||
margin-top: -150px;
|
||||
min-height: 0;
|
||||
z-index: 9999;
|
||||
@@ -578,7 +482,7 @@ a.reversefootnote {
|
||||
embed {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
inset-inline-start: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
@@ -591,3 +495,74 @@ a.reversefootnote {
|
||||
position: static;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Copy <pre> block to clipboard
|
||||
========================================================================== */
|
||||
|
||||
// a <textarea> to hold text for document.execCommand("copy")
|
||||
.clipboard-helper {
|
||||
// Prevent zooming on iOS
|
||||
font-size: 12pt !important;
|
||||
border: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
outline: none !important;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
pre {
|
||||
&.highlight .clipboard-copy-button {
|
||||
color: #ffffca;
|
||||
}
|
||||
|
||||
.clipboard-copy-button {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0.6em;
|
||||
inset-inline-end: 0.5em;
|
||||
width: 1.8em;
|
||||
height: 1.5em;
|
||||
z-index: 1;
|
||||
background: none;
|
||||
border: none;
|
||||
outline: none;
|
||||
border-radius: 0.1em;
|
||||
padding: 0.2em 0.5em;
|
||||
opacity: 0.4;
|
||||
transition: color 0.25s linear -0.25s, opacity 0.25s linear;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
i {
|
||||
position: absolute;
|
||||
top: 0.25em;
|
||||
inset-inline-end: 0.25em;
|
||||
&.copied {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.copied i {
|
||||
opacity: 0;
|
||||
&.copied {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@at-root {
|
||||
.no-copy & {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:hover .clipboard-copy-button {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,10 @@
|
||||
Typography
|
||||
========================================================================== */
|
||||
|
||||
$doc-font-size: 16 !default;
|
||||
$doc-font-size: 16px !default;
|
||||
$doc-font-size-medium: $doc-font-size * 1.125 !default;
|
||||
$doc-font-size-large: $doc-font-size * 1.25 !default;
|
||||
$doc-font-size-x-large: $doc-font-size * 1.375 !default;
|
||||
|
||||
/* paragraph indention */
|
||||
$paragraph-indent: false !default; // true, false (default)
|
||||
@@ -118,6 +121,10 @@ $masthead-link-color: $primary-color !default;
|
||||
$masthead-link-color-hover: mix(#000, $primary-color, 25%) !default;
|
||||
$navicon-link-color-hover: mix(#fff, $primary-color, 75%) !default;
|
||||
|
||||
/* notices */
|
||||
$notice-background-mix: 80% !default;
|
||||
$code-notice-background-mix: 90% !default;
|
||||
|
||||
/* syntax highlighting (base16) */
|
||||
$base00: #263238 !default;
|
||||
$base01: #2e3c43 !default;
|
||||
|
||||
@@ -28,3 +28,7 @@ $link-color-hover : mix(#000, $link-color, 25%) !default;
|
||||
$link-color-visited : mix(#fff, $link-color, 25%) !default;
|
||||
$masthead-link-color : $primary-color !default;
|
||||
$masthead-link-color-hover : mix(#000, $primary-color, 25%) !default;
|
||||
|
||||
/* notices */
|
||||
$notice-background-mix: 90% !default;
|
||||
$code-notice-background-mix: 95% !default;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
/* Colors */
|
||||
$text-color: #000 !default;
|
||||
$muted-text-color: $text-color !default;
|
||||
$primary-color: #ff0000 !default;
|
||||
$primary-color: #b60000 !default;
|
||||
$border-color: mix(#fff, $text-color, 75%) !default;
|
||||
$footer-background-color: #000 !default;
|
||||
$link-color: #0000ff !default;
|
||||
|
||||
@@ -18,6 +18,10 @@ $masthead-link-color: $text-color !default;
|
||||
$masthead-link-color-hover: mix(#000, $text-color, 20%) !default;
|
||||
$navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
|
||||
|
||||
/* notices */
|
||||
$notice-background-mix: 90% !default;
|
||||
$code-notice-background-mix: 95% !default;
|
||||
|
||||
/* neon syntax highlighting (base16) */
|
||||
$base00: #ffffff !default;
|
||||
$base01: #e0e0e0 !default;
|
||||
|
||||
@@ -18,6 +18,10 @@ $masthead-link-color: $text-color !default;
|
||||
$masthead-link-color-hover: mix(#000, $text-color, 20%) !default;
|
||||
$navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
|
||||
|
||||
/* notices */
|
||||
$notice-background-mix: 70% !default;
|
||||
$code-notice-background-mix: 80% !default;
|
||||
|
||||
/* plum syntax highlighting (base16) */
|
||||
$base00: #ffffff !default;
|
||||
$base01: #e0e0e0 !default;
|
||||
|
||||
@@ -20,6 +20,9 @@ $masthead-link-color: $text-color !default;
|
||||
$masthead-link-color-hover: mix(#000, $text-color, 20%) !default;
|
||||
$navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
|
||||
|
||||
/* notices */
|
||||
$notice-background-mix: 75% !default;
|
||||
|
||||
/* sunrise syntax highlighting (base16) */
|
||||
$base00: #1d1f21 !default;
|
||||
$base01: #282a2e !default;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
# Only the main Sass file needs front matter (the dashes are enough)
|
||||
search: false
|
||||
---
|
||||
|
||||
@charset "utf-8";
|
||||
|
||||
+144
-46
@@ -2,39 +2,18 @@
|
||||
jQuery plugin settings and other scripts
|
||||
========================================================================== */
|
||||
|
||||
$(document).ready(function() {
|
||||
$(document).ready(function () {
|
||||
// FitVids init
|
||||
$("#main").fitVids();
|
||||
|
||||
// Sticky sidebar
|
||||
var stickySideBar = function() {
|
||||
var show =
|
||||
$(".author__urls-wrapper button").length === 0
|
||||
? $(window).width() > 1024 // width should match $large Sass variable
|
||||
: !$(".author__urls-wrapper button").is(":visible");
|
||||
if (show) {
|
||||
// fix
|
||||
$(".sidebar").addClass("sticky");
|
||||
} else {
|
||||
// unfix
|
||||
$(".sidebar").removeClass("sticky");
|
||||
}
|
||||
};
|
||||
|
||||
stickySideBar();
|
||||
|
||||
$(window).resize(function() {
|
||||
stickySideBar();
|
||||
});
|
||||
|
||||
// Follow menu drop down
|
||||
$(".author__urls-wrapper button").on("click", function() {
|
||||
$(".author__urls-wrapper button").on("click", function () {
|
||||
$(".author__urls").toggleClass("is--visible");
|
||||
$(".author__urls-wrapper button").toggleClass("open");
|
||||
$(".author__urls-wrapper").find("button").toggleClass("open");
|
||||
});
|
||||
|
||||
// Close search screen with Esc key
|
||||
$(document).keyup(function(e) {
|
||||
$(document).keyup(function (e) {
|
||||
if (e.keyCode === 27) {
|
||||
if ($(".initial-content").hasClass("is--hidden")) {
|
||||
$(".search-content").toggleClass("is--visible");
|
||||
@@ -44,11 +23,11 @@ $(document).ready(function() {
|
||||
});
|
||||
|
||||
// Search toggle
|
||||
$(".search__toggle").on("click", function() {
|
||||
$(".search__toggle").on("click", function () {
|
||||
$(".search-content").toggleClass("is--visible");
|
||||
$(".initial-content").toggleClass("is--hidden");
|
||||
// set focus on input
|
||||
setTimeout(function() {
|
||||
setTimeout(function () {
|
||||
$(".search-content input").focus();
|
||||
}, 400);
|
||||
});
|
||||
@@ -58,11 +37,11 @@ $(document).ready(function() {
|
||||
offset: 20,
|
||||
speed: 400,
|
||||
speedAsDuration: true,
|
||||
durationMax: 500
|
||||
durationMax: 500,
|
||||
});
|
||||
|
||||
// Gumshoe scroll spy init
|
||||
if($("nav.toc").length > 0) {
|
||||
if ($("nav.toc").length > 0) {
|
||||
var spy = new Gumshoe("nav.toc a", {
|
||||
// Active classes
|
||||
navClass: "active", // applied to the nav list item
|
||||
@@ -77,14 +56,36 @@ $(document).ready(function() {
|
||||
reflow: true, // if true, listen for reflows
|
||||
|
||||
// Event support
|
||||
events: true // if true, emit custom events
|
||||
events: true, // if true, emit custom events
|
||||
});
|
||||
}
|
||||
|
||||
// Auto scroll sticky ToC with content
|
||||
const scrollTocToContent = function (event) {
|
||||
var target = event.target;
|
||||
var scrollOptions = { behavior: "auto", block: "nearest", inline: "start" };
|
||||
|
||||
var tocElement = document.querySelector("aside.sidebar__right.sticky");
|
||||
if (!tocElement) return;
|
||||
if (window.getComputedStyle(tocElement).position !== "sticky") return;
|
||||
|
||||
if (target.parentElement.classList.contains("toc__menu") && target == target.parentElement.firstElementChild) {
|
||||
// Scroll to top instead
|
||||
document.querySelector("nav.toc header").scrollIntoView(scrollOptions);
|
||||
} else {
|
||||
target.scrollIntoView(scrollOptions);
|
||||
}
|
||||
};
|
||||
|
||||
// Has issues on Firefox, whitelist Chrome for now
|
||||
if (!!window.chrome) {
|
||||
document.addEventListener("gumshoeActivate", scrollTocToContent);
|
||||
}
|
||||
|
||||
// add lightbox class to all image links
|
||||
$(
|
||||
"a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif'],a[href$='.webp']"
|
||||
).addClass("image-popup");
|
||||
).has("> img").addClass("image-popup");
|
||||
|
||||
// Magnific-Popup options
|
||||
$(".image-popup").magnificPopup({
|
||||
@@ -99,38 +100,135 @@ $(document).ready(function() {
|
||||
gallery: {
|
||||
enabled: true,
|
||||
navigateByImgClick: true,
|
||||
preload: [0, 1] // Will preload 0 - before current, and 1 after the current image
|
||||
preload: [0, 1], // Will preload 0 - before current, and 1 after the current image
|
||||
},
|
||||
image: {
|
||||
tError: '<a href="%url%">Image #%curr%</a> could not be loaded.'
|
||||
tError: '<a href="%url%">Image #%curr%</a> could not be loaded.',
|
||||
},
|
||||
removalDelay: 500, // Delay in milliseconds before popup is removed
|
||||
// Class that is added to body when popup is open.
|
||||
// make it unique to apply your CSS animations just to this exact popup
|
||||
mainClass: "mfp-zoom-in",
|
||||
callbacks: {
|
||||
beforeOpen: function() {
|
||||
beforeOpen: function () {
|
||||
// just a hack that adds mfp-anim class to markup
|
||||
this.st.image.markup = this.st.image.markup.replace(
|
||||
"mfp-figure",
|
||||
"mfp-figure mfp-with-anim"
|
||||
);
|
||||
}
|
||||
},
|
||||
},
|
||||
closeOnContentClick: true,
|
||||
midClick: true // allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source.
|
||||
midClick: true, // allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source.
|
||||
});
|
||||
|
||||
// Add anchors for headings
|
||||
$('.page__content').find('h1, h2, h3, h4, h5, h6').each(function() {
|
||||
var id = $(this).attr('id');
|
||||
if (id) {
|
||||
var anchor = document.createElement("a");
|
||||
anchor.className = 'header-link';
|
||||
anchor.href = '#' + id;
|
||||
anchor.innerHTML = '<span class=\"sr-only\">Permalink</span><i class=\"fas fa-link\"></i>';
|
||||
anchor.title = "Permalink";
|
||||
$(this).append(anchor);
|
||||
(function () {
|
||||
var pageContentElement = document.querySelector(".page__content");
|
||||
if (!pageContentElement) return;
|
||||
|
||||
pageContentElement
|
||||
.querySelectorAll("h1, h2, h3, h4, h5, h6")
|
||||
.forEach(function (element) {
|
||||
var id = element.getAttribute("id");
|
||||
if (id) {
|
||||
var anchor = document.createElement("a");
|
||||
anchor.className = "header-link";
|
||||
anchor.href = "#" + id;
|
||||
anchor.innerHTML =
|
||||
'<span class="sr-only">Permalink</span><i class="fas fa-link"></i>';
|
||||
anchor.title = "Permalink";
|
||||
element.appendChild(anchor);
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
||||
// Add copy button for <pre> blocks
|
||||
var copyText = function (text) {
|
||||
if (document.queryCommandEnabled("copy") && navigator.clipboard) {
|
||||
navigator.clipboard.writeText(text).then(
|
||||
() => true,
|
||||
() => console.error("Failed to copy text to clipboard: " + text)
|
||||
);
|
||||
return true;
|
||||
} else {
|
||||
var isRTL = document.documentElement.getAttribute("dir") === "rtl";
|
||||
|
||||
var textarea = document.createElement("textarea");
|
||||
textarea.className = "clipboard-helper";
|
||||
textarea.style[isRTL ? "right" : "left"] = "-9999px";
|
||||
// Move element to the same position vertically
|
||||
var yPosition = window.pageYOffset || document.documentElement.scrollTop;
|
||||
textarea.style.top = yPosition + "px";
|
||||
|
||||
textarea.setAttribute("readonly", "");
|
||||
textarea.value = text;
|
||||
document.body.appendChild(textarea);
|
||||
|
||||
var success = true;
|
||||
try {
|
||||
textarea.select();
|
||||
success = document.execCommand("copy");
|
||||
} catch (e) {
|
||||
success = false;
|
||||
}
|
||||
textarea.parentNode.removeChild(textarea);
|
||||
return success;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
var copyButtonEventListener = function (event) {
|
||||
var thisButton = event.target;
|
||||
|
||||
// Locate the <code> element
|
||||
var codeBlock = thisButton.nextElementSibling;
|
||||
while (codeBlock && codeBlock.tagName.toLowerCase() !== "code") {
|
||||
codeBlock = codeBlock.nextElementSibling;
|
||||
}
|
||||
if (!codeBlock) {
|
||||
// No <code> found - wtf?
|
||||
console.warn(thisButton);
|
||||
throw new Error("No code block found for this button.");
|
||||
}
|
||||
|
||||
// Skip line numbers if present (i.e. {% highlight lineno %})
|
||||
var realCodeBlock = codeBlock.querySelector("td.code, td.rouge-code");
|
||||
if (realCodeBlock) {
|
||||
codeBlock = realCodeBlock;
|
||||
}
|
||||
var result = copyText(codeBlock.innerText);
|
||||
// Restore the focus to the button
|
||||
thisButton.focus();
|
||||
if (result) {
|
||||
if (thisButton.interval !== null) {
|
||||
clearInterval(thisButton.interval);
|
||||
}
|
||||
thisButton.classList.add('copied');
|
||||
thisButton.interval = setTimeout(function () {
|
||||
thisButton.classList.remove('copied');
|
||||
clearInterval(thisButton.interval);
|
||||
thisButton.interval = null;
|
||||
}, 1500);
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
if (window.enable_copy_code_button) {
|
||||
document
|
||||
.querySelectorAll(".page__content pre.highlight > code")
|
||||
.forEach(function (element, index, parentList) {
|
||||
// Locate the <pre> element
|
||||
var container = element.parentElement;
|
||||
// Sanity check - don't add an extra button if there's already one
|
||||
if (container.firstElementChild.tagName.toLowerCase() !== "code") {
|
||||
return;
|
||||
}
|
||||
var copyButton = document.createElement("button");
|
||||
copyButton.title = "Copy to clipboard";
|
||||
copyButton.className = "clipboard-copy-button";
|
||||
copyButton.innerHTML = '<span class="sr-only">Copy code</span><i class="far fa-fw fa-copy"></i><i class="fas fa-fw fa-check copied"></i>';
|
||||
copyButton.addEventListener("click", copyButtonEventListener);
|
||||
container.prepend(copyButton);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
Vendored
+36
-1
@@ -46,4 +46,39 @@ var store = [
|
||||
"teaser": {{ teaser | relative_url | jsonify }}
|
||||
}{%- unless forloop.last and l -%},{%- endunless -%}
|
||||
{%- endfor -%}
|
||||
{%- endfor -%}]
|
||||
{%- endfor -%}{%- if site.lunr.search_within_pages -%},
|
||||
{%- assign pages = site.pages | where_exp: 'doc', 'doc.search != false' | where_exp: 'doc', 'doc.title != null' -%}
|
||||
{%- for doc in pages -%}
|
||||
{%- if forloop.last -%}
|
||||
{%- assign l = true -%}
|
||||
{%- endif -%}
|
||||
{
|
||||
"title": {{ doc.title | jsonify }},
|
||||
"excerpt":
|
||||
{%- if site.search_full_content == true -%}
|
||||
{{ doc.content | newline_to_br |
|
||||
replace:"<br />", " " |
|
||||
replace:"</p>", " " |
|
||||
replace:"</h1>", " " |
|
||||
replace:"</h2>", " " |
|
||||
replace:"</h3>", " " |
|
||||
replace:"</h4>", " " |
|
||||
replace:"</h5>", " " |
|
||||
replace:"</h6>", " "|
|
||||
strip_html | strip_newlines | jsonify }},
|
||||
{%- else -%}
|
||||
{{ doc.content | newline_to_br |
|
||||
replace:"<br />", " " |
|
||||
replace:"</p>", " " |
|
||||
replace:"</h1>", " " |
|
||||
replace:"</h2>", " " |
|
||||
replace:"</h3>", " " |
|
||||
replace:"</h4>", " " |
|
||||
replace:"</h5>", " " |
|
||||
replace:"</h6>", " "|
|
||||
strip_html | strip_newlines | truncatewords: 50 | jsonify }},
|
||||
{%- endif -%}
|
||||
"url": {{ doc.url | absolute_url | jsonify }}
|
||||
}{%- unless forloop.last and l -%},{%- endunless -%}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}]
|
||||
|
||||
Vendored
+5
-4
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+9
-3
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
GreedyNav.js - http://lukejacksonn.com/actuate
|
||||
GreedyNav.js - https://github.com/lukejacksonn/GreedyNav
|
||||
Licensed under the MIT license - http://opensource.org/licenses/MIT
|
||||
Copyright (c) 2015 Luke Jackson
|
||||
Copyright (c) 2015 Luke Jackson http://lukejacksonn.com
|
||||
*/
|
||||
|
||||
$(function() {
|
||||
@@ -99,13 +99,19 @@ $(function() {
|
||||
|
||||
$btn.on('click', function() {
|
||||
$hlinks.toggleClass('hidden');
|
||||
$(this).toggleClass('close');
|
||||
clearTimeout(timer);
|
||||
});
|
||||
|
||||
$hlinks.on('mouseleave', function() {
|
||||
$hlinks.on("click", function () {
|
||||
// Hide the hidden links & remove the overlay when one is clicked.
|
||||
$hlinks.addClass("hidden");
|
||||
$btn.removeClass("close");
|
||||
}).on('mouseleave', function() {
|
||||
// Mouse has left, start the timer
|
||||
timer = setTimeout(function() {
|
||||
$hlinks.addClass('hidden');
|
||||
$('.greedy-nav__toggle').removeClass('close');
|
||||
}, closingTime);
|
||||
}).on('mouseenter', function() {
|
||||
// Mouse is back, cancel the timer
|
||||
|
||||
+118
-109
@@ -1,15 +1,15 @@
|
||||
/*!
|
||||
* jQuery JavaScript Library v3.5.1
|
||||
* jQuery JavaScript Library v3.6.0
|
||||
* https://jquery.com/
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright JS Foundation and other contributors
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* Date: 2020-05-04T22:49Z
|
||||
* Date: 2021-03-02T17:08Z
|
||||
*/
|
||||
( function( global, factory ) {
|
||||
|
||||
@@ -76,12 +76,16 @@ var support = {};
|
||||
|
||||
var isFunction = function isFunction( obj ) {
|
||||
|
||||
// Support: Chrome <=57, Firefox <=52
|
||||
// In some browsers, typeof returns "function" for HTML <object> elements
|
||||
// (i.e., `typeof document.createElement( "object" ) === "function"`).
|
||||
// We don't want to classify *any* DOM node as a function.
|
||||
return typeof obj === "function" && typeof obj.nodeType !== "number";
|
||||
};
|
||||
// Support: Chrome <=57, Firefox <=52
|
||||
// In some browsers, typeof returns "function" for HTML <object> elements
|
||||
// (i.e., `typeof document.createElement( "object" ) === "function"`).
|
||||
// We don't want to classify *any* DOM node as a function.
|
||||
// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5
|
||||
// Plus for old WebKit, typeof returns "function" for HTML collections
|
||||
// (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756)
|
||||
return typeof obj === "function" && typeof obj.nodeType !== "number" &&
|
||||
typeof obj.item !== "function";
|
||||
};
|
||||
|
||||
|
||||
var isWindow = function isWindow( obj ) {
|
||||
@@ -147,7 +151,7 @@ function toType( obj ) {
|
||||
|
||||
|
||||
var
|
||||
version = "3.5.1",
|
||||
version = "3.6.0",
|
||||
|
||||
// Define a local copy of jQuery
|
||||
jQuery = function( selector, context ) {
|
||||
@@ -401,7 +405,7 @@ jQuery.extend( {
|
||||
if ( isArrayLike( Object( arr ) ) ) {
|
||||
jQuery.merge( ret,
|
||||
typeof arr === "string" ?
|
||||
[ arr ] : arr
|
||||
[ arr ] : arr
|
||||
);
|
||||
} else {
|
||||
push.call( ret, arr );
|
||||
@@ -496,9 +500,9 @@ if ( typeof Symbol === "function" ) {
|
||||
|
||||
// Populate the class2type map
|
||||
jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
|
||||
function( _i, name ) {
|
||||
class2type[ "[object " + name + "]" ] = name.toLowerCase();
|
||||
} );
|
||||
function( _i, name ) {
|
||||
class2type[ "[object " + name + "]" ] = name.toLowerCase();
|
||||
} );
|
||||
|
||||
function isArrayLike( obj ) {
|
||||
|
||||
@@ -518,14 +522,14 @@ function isArrayLike( obj ) {
|
||||
}
|
||||
var Sizzle =
|
||||
/*!
|
||||
* Sizzle CSS Selector Engine v2.3.5
|
||||
* Sizzle CSS Selector Engine v2.3.6
|
||||
* https://sizzlejs.com/
|
||||
*
|
||||
* Copyright JS Foundation and other contributors
|
||||
* Released under the MIT license
|
||||
* https://js.foundation/
|
||||
*
|
||||
* Date: 2020-03-14
|
||||
* Date: 2021-02-16
|
||||
*/
|
||||
( function( window ) {
|
||||
var i,
|
||||
@@ -1108,8 +1112,8 @@ support = Sizzle.support = {};
|
||||
* @returns {Boolean} True iff elem is a non-HTML XML node
|
||||
*/
|
||||
isXML = Sizzle.isXML = function( elem ) {
|
||||
var namespace = elem.namespaceURI,
|
||||
docElem = ( elem.ownerDocument || elem ).documentElement;
|
||||
var namespace = elem && elem.namespaceURI,
|
||||
docElem = elem && ( elem.ownerDocument || elem ).documentElement;
|
||||
|
||||
// Support: IE <=8
|
||||
// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
|
||||
@@ -3024,9 +3028,9 @@ var rneedsContext = jQuery.expr.match.needsContext;
|
||||
|
||||
function nodeName( elem, name ) {
|
||||
|
||||
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
|
||||
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
|
||||
|
||||
};
|
||||
}
|
||||
var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
|
||||
|
||||
|
||||
@@ -3997,8 +4001,8 @@ jQuery.extend( {
|
||||
resolveContexts = Array( i ),
|
||||
resolveValues = slice.call( arguments ),
|
||||
|
||||
// the master Deferred
|
||||
master = jQuery.Deferred(),
|
||||
// the primary Deferred
|
||||
primary = jQuery.Deferred(),
|
||||
|
||||
// subordinate callback factory
|
||||
updateFunc = function( i ) {
|
||||
@@ -4006,30 +4010,30 @@ jQuery.extend( {
|
||||
resolveContexts[ i ] = this;
|
||||
resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
|
||||
if ( !( --remaining ) ) {
|
||||
master.resolveWith( resolveContexts, resolveValues );
|
||||
primary.resolveWith( resolveContexts, resolveValues );
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
// Single- and empty arguments are adopted like Promise.resolve
|
||||
if ( remaining <= 1 ) {
|
||||
adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
|
||||
adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,
|
||||
!remaining );
|
||||
|
||||
// Use .then() to unwrap secondary thenables (cf. gh-3000)
|
||||
if ( master.state() === "pending" ||
|
||||
if ( primary.state() === "pending" ||
|
||||
isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
|
||||
|
||||
return master.then();
|
||||
return primary.then();
|
||||
}
|
||||
}
|
||||
|
||||
// Multiple arguments are aggregated like Promise.all array elements
|
||||
while ( i-- ) {
|
||||
adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
|
||||
adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );
|
||||
}
|
||||
|
||||
return master.promise();
|
||||
return primary.promise();
|
||||
}
|
||||
} );
|
||||
|
||||
@@ -4180,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
|
||||
for ( ; i < len; i++ ) {
|
||||
fn(
|
||||
elems[ i ], key, raw ?
|
||||
value :
|
||||
value.call( elems[ i ], i, fn( elems[ i ], key ) )
|
||||
value :
|
||||
value.call( elems[ i ], i, fn( elems[ i ], key ) )
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -5089,10 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
|
||||
}
|
||||
|
||||
|
||||
var
|
||||
rkeyEvent = /^key/,
|
||||
rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
|
||||
rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
|
||||
var rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
|
||||
|
||||
function returnTrue() {
|
||||
return true;
|
||||
@@ -5387,8 +5388,8 @@ jQuery.event = {
|
||||
event = jQuery.event.fix( nativeEvent ),
|
||||
|
||||
handlers = (
|
||||
dataPriv.get( this, "events" ) || Object.create( null )
|
||||
)[ event.type ] || [],
|
||||
dataPriv.get( this, "events" ) || Object.create( null )
|
||||
)[ event.type ] || [],
|
||||
special = jQuery.event.special[ event.type ] || {};
|
||||
|
||||
// Use the fix-ed jQuery.Event rather than the (read-only) native event
|
||||
@@ -5512,12 +5513,12 @@ jQuery.event = {
|
||||
get: isFunction( hook ) ?
|
||||
function() {
|
||||
if ( this.originalEvent ) {
|
||||
return hook( this.originalEvent );
|
||||
return hook( this.originalEvent );
|
||||
}
|
||||
} :
|
||||
function() {
|
||||
if ( this.originalEvent ) {
|
||||
return this.originalEvent[ name ];
|
||||
return this.originalEvent[ name ];
|
||||
}
|
||||
},
|
||||
|
||||
@@ -5656,7 +5657,13 @@ function leverageNative( el, type, expectSync ) {
|
||||
// Cancel the outer synthetic event
|
||||
event.stopImmediatePropagation();
|
||||
event.preventDefault();
|
||||
return result.value;
|
||||
|
||||
// Support: Chrome 86+
|
||||
// In Chrome, if an element having a focusout handler is blurred by
|
||||
// clicking outside of it, it invokes the handler synchronously. If
|
||||
// that handler calls `.remove()` on the element, the data is cleared,
|
||||
// leaving `result` undefined. We need to guard against this.
|
||||
return result && result.value;
|
||||
}
|
||||
|
||||
// If this is an inner synthetic event for an event with a bubbling surrogate
|
||||
@@ -5821,34 +5828,7 @@ jQuery.each( {
|
||||
targetTouches: true,
|
||||
toElement: true,
|
||||
touches: true,
|
||||
|
||||
which: function( event ) {
|
||||
var button = event.button;
|
||||
|
||||
// Add which for key events
|
||||
if ( event.which == null && rkeyEvent.test( event.type ) ) {
|
||||
return event.charCode != null ? event.charCode : event.keyCode;
|
||||
}
|
||||
|
||||
// Add which for click: 1 === left; 2 === middle; 3 === right
|
||||
if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
|
||||
if ( button & 1 ) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ( button & 2 ) {
|
||||
return 3;
|
||||
}
|
||||
|
||||
if ( button & 4 ) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
return event.which;
|
||||
}
|
||||
which: true
|
||||
}, jQuery.event.addProp );
|
||||
|
||||
jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
|
||||
@@ -5874,6 +5854,12 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp
|
||||
return true;
|
||||
},
|
||||
|
||||
// Suppress native focus or blur as it's already being fired
|
||||
// in leverageNative.
|
||||
_default: function() {
|
||||
return true;
|
||||
},
|
||||
|
||||
delegateType: delegateType
|
||||
};
|
||||
} );
|
||||
@@ -6541,6 +6527,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
|
||||
// set in CSS while `offset*` properties report correct values.
|
||||
// Behavior in IE 9 is more subtle than in newer versions & it passes
|
||||
// some versions of this test; make sure not to make it pass there!
|
||||
//
|
||||
// Support: Firefox 70+
|
||||
// Only Firefox includes border widths
|
||||
// in computed dimensions. (gh-4529)
|
||||
reliableTrDimensions: function() {
|
||||
var table, tr, trChild, trStyle;
|
||||
if ( reliableTrDimensionsVal == null ) {
|
||||
@@ -6548,17 +6538,32 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
|
||||
tr = document.createElement( "tr" );
|
||||
trChild = document.createElement( "div" );
|
||||
|
||||
table.style.cssText = "position:absolute;left:-11111px";
|
||||
table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate";
|
||||
tr.style.cssText = "border:1px solid";
|
||||
|
||||
// Support: Chrome 86+
|
||||
// Height set through cssText does not get applied.
|
||||
// Computed height then comes back as 0.
|
||||
tr.style.height = "1px";
|
||||
trChild.style.height = "9px";
|
||||
|
||||
// Support: Android 8 Chrome 86+
|
||||
// In our bodyBackground.html iframe,
|
||||
// display for all div elements is set to "inline",
|
||||
// which causes a problem only in Android 8 Chrome 86.
|
||||
// Ensuring the div is display: block
|
||||
// gets around this issue.
|
||||
trChild.style.display = "block";
|
||||
|
||||
documentElement
|
||||
.appendChild( table )
|
||||
.appendChild( tr )
|
||||
.appendChild( trChild );
|
||||
|
||||
trStyle = window.getComputedStyle( tr );
|
||||
reliableTrDimensionsVal = parseInt( trStyle.height ) > 3;
|
||||
reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +
|
||||
parseInt( trStyle.borderTopWidth, 10 ) +
|
||||
parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;
|
||||
|
||||
documentElement.removeChild( table );
|
||||
}
|
||||
@@ -7022,10 +7027,10 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) {
|
||||
// Running getBoundingClientRect on a disconnected node
|
||||
// in IE throws an error.
|
||||
( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
|
||||
swap( elem, cssShow, function() {
|
||||
return getWidthOrHeight( elem, dimension, extra );
|
||||
} ) :
|
||||
getWidthOrHeight( elem, dimension, extra );
|
||||
swap( elem, cssShow, function() {
|
||||
return getWidthOrHeight( elem, dimension, extra );
|
||||
} ) :
|
||||
getWidthOrHeight( elem, dimension, extra );
|
||||
}
|
||||
},
|
||||
|
||||
@@ -7084,7 +7089,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
|
||||
swap( elem, { marginLeft: 0 }, function() {
|
||||
return elem.getBoundingClientRect().left;
|
||||
} )
|
||||
) + "px";
|
||||
) + "px";
|
||||
}
|
||||
}
|
||||
);
|
||||
@@ -7223,7 +7228,7 @@ Tween.propHooks = {
|
||||
if ( jQuery.fx.step[ tween.prop ] ) {
|
||||
jQuery.fx.step[ tween.prop ]( tween );
|
||||
} else if ( tween.elem.nodeType === 1 && (
|
||||
jQuery.cssHooks[ tween.prop ] ||
|
||||
jQuery.cssHooks[ tween.prop ] ||
|
||||
tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
|
||||
jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
|
||||
} else {
|
||||
@@ -7468,7 +7473,7 @@ function defaultPrefilter( elem, props, opts ) {
|
||||
|
||||
anim.done( function() {
|
||||
|
||||
/* eslint-enable no-loop-func */
|
||||
/* eslint-enable no-loop-func */
|
||||
|
||||
// The final step of a "hide" animation is actually hiding the element
|
||||
if ( !hidden ) {
|
||||
@@ -7588,7 +7593,7 @@ function Animation( elem, properties, options ) {
|
||||
tweens: [],
|
||||
createTween: function( prop, end ) {
|
||||
var tween = jQuery.Tween( elem, animation.opts, prop, end,
|
||||
animation.opts.specialEasing[ prop ] || animation.opts.easing );
|
||||
animation.opts.specialEasing[ prop ] || animation.opts.easing );
|
||||
animation.tweens.push( tween );
|
||||
return tween;
|
||||
},
|
||||
@@ -7761,7 +7766,8 @@ jQuery.fn.extend( {
|
||||
anim.stop( true );
|
||||
}
|
||||
};
|
||||
doAnimation.finish = doAnimation;
|
||||
|
||||
doAnimation.finish = doAnimation;
|
||||
|
||||
return empty || optall.queue === false ?
|
||||
this.each( doAnimation ) :
|
||||
@@ -8401,8 +8407,8 @@ jQuery.fn.extend( {
|
||||
if ( this.setAttribute ) {
|
||||
this.setAttribute( "class",
|
||||
className || value === false ?
|
||||
"" :
|
||||
dataPriv.get( this, "__className__" ) || ""
|
||||
"" :
|
||||
dataPriv.get( this, "__className__" ) || ""
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -8417,7 +8423,7 @@ jQuery.fn.extend( {
|
||||
while ( ( elem = this[ i++ ] ) ) {
|
||||
if ( elem.nodeType === 1 &&
|
||||
( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8707,9 +8713,7 @@ jQuery.extend( jQuery.event, {
|
||||
special.bindType || type;
|
||||
|
||||
// jQuery handler
|
||||
handle = (
|
||||
dataPriv.get( cur, "events" ) || Object.create( null )
|
||||
)[ event.type ] &&
|
||||
handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] &&
|
||||
dataPriv.get( cur, "handle" );
|
||||
if ( handle ) {
|
||||
handle.apply( cur, data );
|
||||
@@ -8856,7 +8860,7 @@ var rquery = ( /\?/ );
|
||||
|
||||
// Cross-browser xml parsing
|
||||
jQuery.parseXML = function( data ) {
|
||||
var xml;
|
||||
var xml, parserErrorElem;
|
||||
if ( !data || typeof data !== "string" ) {
|
||||
return null;
|
||||
}
|
||||
@@ -8865,12 +8869,17 @@ jQuery.parseXML = function( data ) {
|
||||
// IE throws on parseFromString with invalid input.
|
||||
try {
|
||||
xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
|
||||
} catch ( e ) {
|
||||
xml = undefined;
|
||||
}
|
||||
} catch ( e ) {}
|
||||
|
||||
if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
|
||||
jQuery.error( "Invalid XML: " + data );
|
||||
parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
|
||||
if ( !xml || parserErrorElem ) {
|
||||
jQuery.error( "Invalid XML: " + (
|
||||
parserErrorElem ?
|
||||
jQuery.map( parserErrorElem.childNodes, function( el ) {
|
||||
return el.textContent;
|
||||
} ).join( "\n" ) :
|
||||
data
|
||||
) );
|
||||
}
|
||||
return xml;
|
||||
};
|
||||
@@ -8971,16 +8980,14 @@ jQuery.fn.extend( {
|
||||
// Can add propHook for "elements" to filter or add form elements
|
||||
var elements = jQuery.prop( this, "elements" );
|
||||
return elements ? jQuery.makeArray( elements ) : this;
|
||||
} )
|
||||
.filter( function() {
|
||||
} ).filter( function() {
|
||||
var type = this.type;
|
||||
|
||||
// Use .is( ":disabled" ) so that fieldset[disabled] works
|
||||
return this.name && !jQuery( this ).is( ":disabled" ) &&
|
||||
rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
|
||||
( this.checked || !rcheckableType.test( type ) );
|
||||
} )
|
||||
.map( function( _i, elem ) {
|
||||
} ).map( function( _i, elem ) {
|
||||
var val = jQuery( this ).val();
|
||||
|
||||
if ( val == null ) {
|
||||
@@ -9033,7 +9040,8 @@ var
|
||||
|
||||
// Anchor tag for parsing the document origin
|
||||
originAnchor = document.createElement( "a" );
|
||||
originAnchor.href = location.href;
|
||||
|
||||
originAnchor.href = location.href;
|
||||
|
||||
// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
|
||||
function addToPrefiltersOrTransports( structure ) {
|
||||
@@ -9414,8 +9422,8 @@ jQuery.extend( {
|
||||
// Context for global events is callbackContext if it is a DOM node or jQuery collection
|
||||
globalEventContext = s.context &&
|
||||
( callbackContext.nodeType || callbackContext.jquery ) ?
|
||||
jQuery( callbackContext ) :
|
||||
jQuery.event,
|
||||
jQuery( callbackContext ) :
|
||||
jQuery.event,
|
||||
|
||||
// Deferreds
|
||||
deferred = jQuery.Deferred(),
|
||||
@@ -9727,8 +9735,10 @@ jQuery.extend( {
|
||||
response = ajaxHandleResponses( s, jqXHR, responses );
|
||||
}
|
||||
|
||||
// Use a noop converter for missing script
|
||||
if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) {
|
||||
// Use a noop converter for missing script but not if jsonp
|
||||
if ( !isSuccess &&
|
||||
jQuery.inArray( "script", s.dataTypes ) > -1 &&
|
||||
jQuery.inArray( "json", s.dataTypes ) < 0 ) {
|
||||
s.converters[ "text script" ] = function() {};
|
||||
}
|
||||
|
||||
@@ -10466,12 +10476,6 @@ jQuery.offset = {
|
||||
options.using.call( elem, props );
|
||||
|
||||
} else {
|
||||
if ( typeof props.top === "number" ) {
|
||||
props.top += "px";
|
||||
}
|
||||
if ( typeof props.left === "number" ) {
|
||||
props.left += "px";
|
||||
}
|
||||
curElem.css( props );
|
||||
}
|
||||
}
|
||||
@@ -10640,8 +10644,11 @@ jQuery.each( [ "top", "left" ], function( _i, prop ) {
|
||||
|
||||
// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
|
||||
jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
|
||||
jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
|
||||
function( defaultExtra, funcName ) {
|
||||
jQuery.each( {
|
||||
padding: "inner" + name,
|
||||
content: type,
|
||||
"": "outer" + name
|
||||
}, function( defaultExtra, funcName ) {
|
||||
|
||||
// Margin is only for outerHeight, outerWidth
|
||||
jQuery.fn[ funcName ] = function( margin, value ) {
|
||||
@@ -10726,7 +10733,8 @@ jQuery.fn.extend( {
|
||||
}
|
||||
} );
|
||||
|
||||
jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
|
||||
jQuery.each(
|
||||
( "blur focus focusin focusout resize scroll click dblclick " +
|
||||
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
|
||||
"change select submit keydown keypress keyup contextmenu" ).split( " " ),
|
||||
function( _i, name ) {
|
||||
@@ -10737,7 +10745,8 @@ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
|
||||
this.on( name, null, data, fn ) :
|
||||
this.trigger( name );
|
||||
};
|
||||
} );
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
const fs = require("fs");
|
||||
const pkg = require("./package.json");
|
||||
const filename = "assets/js/main.min.js";
|
||||
const script = fs.readFileSync(filename);
|
||||
const padStart = str => ("0" + str).slice(-2);
|
||||
const dateObj = new Date();
|
||||
const date = `${dateObj.getFullYear()}-${padStart(
|
||||
dateObj.getMonth() + 1
|
||||
)}-${padStart(dateObj.getDate())}`;
|
||||
const banner = `/*!
|
||||
* Minimal Mistakes Jekyll Theme ${pkg.version} by ${pkg.author}
|
||||
* Copyright 2013-${dateObj.getFullYear()} Michael Rose - mademistakes.com | @mmistakes
|
||||
* Licensed under ${pkg.license}
|
||||
*/
|
||||
`;
|
||||
|
||||
if (script.slice(0, 3) != "/**") {
|
||||
fs.writeFileSync(filename, banner + script);
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "github-pages", group: :jekyll_plugins
|
||||
gem "minimal-mistakes-jekyll", path: ".."
|
||||
gem "rake"
|
||||
|
||||
gem "tzinfo-data"
|
||||
gem "wdm", "~> 0.1.0" if Gem.win_platform?
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
task :default => %i[build]
|
||||
|
||||
task :build do
|
||||
sh 'jekyll build --profile --trace --config _config.yml,_config.dev.yml'
|
||||
end
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user