mirror of
https://github.com/cotes2020/jekyll-theme-chirpy.git
synced 2026-06-22 15:58:41 +00:00
Compare commits
71 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 152093879e | |||
| 0bf1c724d8 | |||
| 2ec2036d37 | |||
| cd1fb15481 | |||
| 9ea9dcf930 | |||
| 2db053553b | |||
| 18cf79bdac | |||
| 5cc9dc66ac | |||
| 7496dd41fa | |||
| ceb2a41463 | |||
| 38232120b7 | |||
| fb3aa94c1f | |||
| 832b24729d | |||
| 97a537e692 | |||
| 1344e90246 | |||
| 2cfb4bba88 | |||
| 6bd446ccde | |||
| 2685b91957 | |||
| 6245dec754 | |||
| f20ed1c4b1 | |||
| 9adb7e352b | |||
| 297fbde1a2 | |||
| d760823619 | |||
| da4b8cd168 | |||
| 8893a98191 | |||
| 6afe5a6d7b | |||
| 8fd56560a4 | |||
| fe968a7701 | |||
| cc1d44ee3e | |||
| ce14e1a087 | |||
| 477394b744 | |||
| 96da25abbd | |||
| 0fbaa5359b | |||
| 92e0ff63ec | |||
| 52d160f857 | |||
| d2db439c16 | |||
| cecfc4237f | |||
| 525c2888c5 | |||
| 4950edc75e | |||
| 66bf232951 | |||
| 37377a43e0 | |||
| 7f35d8e550 | |||
| 18ab8fcfdf | |||
| 078cf86f79 | |||
| 45cb428b01 | |||
| 3578111ecd | |||
| 022b963403 | |||
| aa832c29de | |||
| 604528e3ce | |||
| b3d7db3cda | |||
| ee6839516e | |||
| a385ffabff | |||
| f51641b541 | |||
| 221ca9f52b | |||
| 4d6c788b9c | |||
| cda62e28d1 | |||
| 5f8ec7ffd3 | |||
| eaf5e57449 | |||
| 29bf95e9c7 | |||
| 648398c63c | |||
| b855e8b6b4 | |||
| 49519d13e5 | |||
| 8bf72fc234 | |||
| c0e4756200 | |||
| 81886b11c0 | |||
| 7615d72e93 | |||
| 1bac96a8e1 | |||
| c706799f9b | |||
| 18c48b4c49 | |||
| f5802b8a8a | |||
| 09948da235 |
@@ -1,2 +0,0 @@
|
|||||||
ko_fi: coteschung
|
|
||||||
custom: https://sponsor.cotes.page
|
|
||||||
@@ -53,7 +53,7 @@ body:
|
|||||||
value: |
|
value: |
|
||||||
- Ruby: <!-- run `ruby -v` -->
|
- Ruby: <!-- run `ruby -v` -->
|
||||||
- Jekyll: <!-- run `bundle exec jekyll -v` -->
|
- Jekyll: <!-- run `bundle exec jekyll -v` -->
|
||||||
- Chirpy: <!-- run `bundle info jekyll-theme-chirpy` -->
|
- Chirpy: <!-- run `bundle info --version jekyll-theme-chirpy` -->
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,8 @@ updates:
|
|||||||
schedule:
|
schedule:
|
||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
- package-ecosystem: "github-actions"
|
- package-ecosystem: "github-actions"
|
||||||
directory: "/"
|
directories:
|
||||||
|
- "/.github/workflows/**"
|
||||||
groups:
|
groups:
|
||||||
gh-actions:
|
gh-actions:
|
||||||
update-types:
|
update-types:
|
||||||
|
|||||||
@@ -14,14 +14,14 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v7
|
||||||
|
|
||||||
- uses: ruby/setup-ruby@v1
|
- uses: ruby/setup-ruby@v1
|
||||||
with:
|
with:
|
||||||
ruby-version: 3.3
|
ruby-version: 3.4
|
||||||
bundler-cache: true
|
bundler-cache: true
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v6
|
||||||
with:
|
with:
|
||||||
node-version: lts/*
|
node-version: lts/*
|
||||||
|
|
||||||
|
|||||||
@@ -27,11 +27,11 @@ jobs:
|
|||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
ruby: ["3.1", "3.2", "3.3"]
|
ruby: ["3.3", "3.4"]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v7
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0 # for posts's lastmod
|
fetch-depth: 0 # for posts's lastmod
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ jobs:
|
|||||||
bundler-cache: true
|
bundler-cache: true
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v6
|
||||||
with:
|
with:
|
||||||
node-version: lts/*
|
node-version: lts/*
|
||||||
|
|
||||||
|
|||||||
@@ -24,11 +24,11 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v7
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@v3
|
uses: github/codeql-action/init@v4
|
||||||
with:
|
with:
|
||||||
languages: "${{ matrix.language }}"
|
languages: "${{ matrix.language }}"
|
||||||
config-file: .github/codeql/codeql-config.yml
|
config-file: .github/codeql/codeql-config.yml
|
||||||
@@ -36,9 +36,9 @@ jobs:
|
|||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
|
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
|
||||||
# If this step fails, then you should remove it and run the build manually (see below)
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
- name: Autobuild
|
- name: Autobuild
|
||||||
uses: github/codeql-action/autobuild@v3
|
uses: github/codeql-action/autobuild@v4
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
- name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@v3
|
uses: github/codeql-action/analyze@v4
|
||||||
with:
|
with:
|
||||||
category: "/language:${{ matrix.language }}"
|
category: "/language:${{ matrix.language }}"
|
||||||
|
|||||||
@@ -11,5 +11,5 @@ jobs:
|
|||||||
commitlint:
|
commitlint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v7
|
||||||
- uses: wagoid/commitlint-github-action@v6
|
- uses: wagoid/commitlint-github-action@v6
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
name: Lint JS
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- "_javascript/**/*.js"
|
||||||
|
- ".github/workflows/scripts/**/*.js"
|
||||||
|
- "*.js"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "_javascript/**/*.js"
|
||||||
|
- ".github/workflows/scripts/*.js"
|
||||||
|
- "*.js"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint-js:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v7
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v6
|
||||||
|
with:
|
||||||
|
node-version: lts/*
|
||||||
|
|
||||||
|
- name: Install Dependencies
|
||||||
|
run: npm i
|
||||||
|
|
||||||
|
- name: Lint JS
|
||||||
|
run: npm run lint:js
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
name: Lint SCSS
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- "_sass/**/*.scss"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "_sass/**/*.scss"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint-scss:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v7
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v6
|
||||||
|
with:
|
||||||
|
node-version: lts/*
|
||||||
|
|
||||||
|
- name: Install Dependencies
|
||||||
|
run: npm i
|
||||||
|
|
||||||
|
- name: Lint SCSS
|
||||||
|
run: npm run lint:scss
|
||||||
@@ -13,13 +13,13 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Code
|
- name: Checkout Code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v7
|
||||||
|
|
||||||
- name: Check PR Content
|
- name: Check PR Content
|
||||||
id: intercept
|
id: intercept
|
||||||
uses: actions/github-script@v7
|
uses: actions/github-script@v9
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
script: |
|
script: |
|
||||||
const script = require('.github/workflows/scripts/pr-filter.js');
|
const { default: filter } = await import('${{ github.workspace }}/.github/workflows/scripts/pr-filter.js');
|
||||||
await script({ github, context, core });
|
await filter({ github, context, core });
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ function hasDescription(markdown) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = async ({ github, context, core }) => {
|
export default async ({ github, context, core }) => {
|
||||||
const pr = context.payload.pull_request;
|
const pr = context.payload.pull_request;
|
||||||
const body = pr.body === null ? '' : pr.body;
|
const body = pr.body === null ? '' : pr.body;
|
||||||
const markdown = body.replace(/<!--[\s\S]*?-->/g, '');
|
const markdown = body.replace(/<!--[\s\S]*?-->/g, '');
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ jobs:
|
|||||||
stale:
|
stale:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v9
|
- uses: actions/stale@v10
|
||||||
with:
|
with:
|
||||||
# 60 days before marking issues/PRs stale
|
# 60 days before marking issues/PRs stale
|
||||||
days-before-close: -1 # does not close automatically
|
days-before-close: -1 # does not close automatically
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v7
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
# submodules: true
|
# submodules: true
|
||||||
@@ -37,12 +37,12 @@ jobs:
|
|||||||
|
|
||||||
- name: Setup Pages
|
- name: Setup Pages
|
||||||
id: pages
|
id: pages
|
||||||
uses: actions/configure-pages@v4
|
uses: actions/configure-pages@v6
|
||||||
|
|
||||||
- name: Setup Ruby
|
- name: Setup Ruby
|
||||||
uses: ruby/setup-ruby@v1
|
uses: ruby/setup-ruby@v1
|
||||||
with:
|
with:
|
||||||
ruby-version: 3.3
|
ruby-version: 3.4
|
||||||
bundler-cache: true
|
bundler-cache: true
|
||||||
|
|
||||||
- name: Build site
|
- name: Build site
|
||||||
@@ -57,7 +57,7 @@ jobs:
|
|||||||
\-\-ignore-urls "/^http:\/\/127.0.0.1/,/^http:\/\/0.0.0.0/,/^http:\/\/localhost/"
|
\-\-ignore-urls "/^http:\/\/127.0.0.1/,/^http:\/\/0.0.0.0/,/^http:\/\/localhost/"
|
||||||
|
|
||||||
- name: Upload site artifact
|
- name: Upload site artifact
|
||||||
uses: actions/upload-pages-artifact@v3
|
uses: actions/upload-pages-artifact@v5
|
||||||
with:
|
with:
|
||||||
path: "_site${{ steps.pages.outputs.base_path }}"
|
path: "_site${{ steps.pages.outputs.base_path }}"
|
||||||
|
|
||||||
@@ -70,4 +70,4 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Deploy to GitHub Pages
|
- name: Deploy to GitHub Pages
|
||||||
id: deployment
|
id: deployment
|
||||||
uses: actions/deploy-pages@v4
|
uses: actions/deploy-pages@v5
|
||||||
|
|||||||
@@ -25,3 +25,8 @@ package-lock.json
|
|||||||
# Misc
|
# Misc
|
||||||
_sass/vendors
|
_sass/vendors
|
||||||
assets/js/dist
|
assets/js/dist
|
||||||
|
|
||||||
|
# Hidden system files
|
||||||
|
*~
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|||||||
@@ -8,8 +8,6 @@
|
|||||||
"property-no-vendor-prefix": null,
|
"property-no-vendor-prefix": null,
|
||||||
"selector-no-vendor-prefix": null,
|
"selector-no-vendor-prefix": null,
|
||||||
"value-no-vendor-prefix": null,
|
"value-no-vendor-prefix": null,
|
||||||
"color-function-notation": "legacy",
|
|
||||||
"alpha-value-notation": "number",
|
|
||||||
"selector-not-notation": "simple",
|
"selector-not-notation": "simple",
|
||||||
"color-hex-length": "long",
|
"color-hex-length": "long",
|
||||||
"declaration-block-single-line-max-declarations": 3,
|
"declaration-block-single-line-max-declarations": 3,
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ gemspec
|
|||||||
|
|
||||||
gem "html-proofer", "~> 5.0", group: :test
|
gem "html-proofer", "~> 5.0", group: :test
|
||||||
|
|
||||||
platforms :mingw, :x64_mingw, :mswin, :jruby do
|
platforms :windows, :jruby do
|
||||||
gem "tzinfo", ">= 1", "< 3"
|
gem "tzinfo", ">= 1", "< 3"
|
||||||
gem "tzinfo-data"
|
gem "tzinfo-data"
|
||||||
end
|
end
|
||||||
|
|
||||||
gem "wdm", "~> 0.2.0", :platforms => [:mingw, :x64_mingw, :mswin]
|
gem "wdm", "~> 0.2.0", :platforms => [:windows]
|
||||||
|
|||||||
@@ -6,11 +6,11 @@
|
|||||||
|
|
||||||
A minimal, responsive, and feature-rich Jekyll theme for technical writing.
|
A minimal, responsive, and feature-rich Jekyll theme for technical writing.
|
||||||
|
|
||||||
[][ci]
|
[![CI][badge-ci]][ci]
|
||||||
[][codacy]
|
[![Codacy Badge][badge-codacy]][codacy]
|
||||||
[][license]
|
[![GitHub license][badge-license]][license]
|
||||||
[][gem]
|
[![Gem Version][badge-gem]][gem]
|
||||||
[][open-container]
|
[![Open in Dev Containers][badge-open-container]][open-container]
|
||||||
|
|
||||||
[**Live Demo** →][demo]
|
[**Live Demo** →][demo]
|
||||||
|
|
||||||
@@ -20,54 +20,48 @@
|
|||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Dark Theme
|
- **Design & UX** - Responsive layout, Dark/Light modes, Localized UI language,
|
||||||
- Localized UI language
|
and Dark mode images.
|
||||||
- Pinned Posts on Home Page
|
- **Content Management** - Pinned posts, Hierarchical categories, Trending tags,
|
||||||
- Hierarchical Categories
|
Auto-generated Table of Contents, and Last modified dates.
|
||||||
- Trending Tags
|
- **Rich Text Support** - Syntax highlighting, Mathematical expressions, Mermaid
|
||||||
- Table of Contents
|
diagrams & flowcharts, and Embedded media.
|
||||||
- Last Modified Date
|
- **Interactivity & Outreach** - Built-in search, Multiple comment systems, and
|
||||||
- Syntax Highlighting
|
Atom feeds.
|
||||||
- Mathematical Expressions
|
- **System & Optimization** - PWA support, integrated Web analytics, and
|
||||||
- Mermaid Diagrams & Flowcharts
|
advanced SEO performance.
|
||||||
- Dark Mode Images
|
|
||||||
- Embed Media
|
|
||||||
- Comment Systems
|
|
||||||
- Built-in Search
|
|
||||||
- Atom Feeds
|
|
||||||
- PWA
|
|
||||||
- Web Analytics
|
|
||||||
- SEO & Performance Optimization
|
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
To learn how to use, develop, and upgrade the project, please refer to the [Wiki][wiki].
|
To learn how to use, develop, and upgrade the project, please refer to the
|
||||||
|
[Wiki][wiki].
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
Contributions (_pull requests_, _issues_, and _discussions_) are what make the open-source community such an amazing place
|
Contributions (_pull requests_, _issues_, and _discussions_) are what make the
|
||||||
to learn, inspire, and create. Any contributions you make are greatly appreciated.
|
open-source community such an amazing place to learn, inspire, and create. Any
|
||||||
For details, see the "[Contributing Guidelines][contribute-guide]".
|
contributions you make are greatly appreciated.
|
||||||
|
For details, please refer to our [Contributing Guidelines][contribute-guide].
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
### Contributors
|
This project is built on the [Jekyll][jekyllrb] ecosystem and integrates a
|
||||||
|
collection of [excellent libraries][lib]. Its avatar and favicon are sourced
|
||||||
|
from [ClipartMAX][clipartmax].
|
||||||
|
|
||||||
Thanks to [all the contributors][contributors] involved in the development of the project!
|
Furthermore, thanks to everyone who contributed to the development of this project!
|
||||||
|
|
||||||
[][contributors]
|
[![all-contributors][contributors-avatar]][contributors]
|
||||||
<sub> — Made with [contrib.rocks](https://contrib.rocks)</sub>
|
|
||||||
|
|
||||||
### Third-Party Assets
|
|
||||||
|
|
||||||
This project is built on the [Jekyll][jekyllrb] ecosystem and some [great libraries][lib], and is developed using [VS Code][vscode] as well as tools provided by [JetBrains][jetbrains] under a non-commercial open-source software license.
|
|
||||||
|
|
||||||
The avatar and favicon for the project's website are from [ClipartMAX][clipartmax].
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
This project is published under [MIT License][license].
|
This project is licensed under the [MIT License][license].
|
||||||
|
|
||||||
|
[badge-ci]: https://img.shields.io/github/actions/workflow/status/cotes2020/jekyll-theme-chirpy/ci.yml?logo=github
|
||||||
|
[badge-codacy]: https://img.shields.io/codacy/grade/4e556876a3c54d5e8f2d2857c4f43894?logo=codacy
|
||||||
|
[badge-license]: https://img.shields.io/github/license/cotes2020/jekyll-theme-chirpy?color=goldenrod
|
||||||
|
[badge-gem]: https://img.shields.io/gem/v/jekyll-theme-chirpy?&logo=RubyGems&logoColor=ghostwhite&label=gem&color=orange
|
||||||
|
[badge-open-container]: https://img.shields.io/badge/Dev_Containers-Open-deepskyblue?logo=linuxcontainers
|
||||||
[gem]: https://rubygems.org/gems/jekyll-theme-chirpy
|
[gem]: https://rubygems.org/gems/jekyll-theme-chirpy
|
||||||
[ci]: https://github.com/cotes2020/jekyll-theme-chirpy/actions/workflows/ci.yml?query=event%3Apush+branch%3Amaster
|
[ci]: https://github.com/cotes2020/jekyll-theme-chirpy/actions/workflows/ci.yml?query=event%3Apush+branch%3Amaster
|
||||||
[codacy]: https://app.codacy.com/gh/cotes2020/jekyll-theme-chirpy/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade
|
[codacy]: https://app.codacy.com/gh/cotes2020/jekyll-theme-chirpy/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade
|
||||||
@@ -79,6 +73,5 @@ This project is published under [MIT License][license].
|
|||||||
[wiki]: https://github.com/cotes2020/jekyll-theme-chirpy/wiki
|
[wiki]: https://github.com/cotes2020/jekyll-theme-chirpy/wiki
|
||||||
[contribute-guide]: https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md
|
[contribute-guide]: https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md
|
||||||
[contributors]: https://github.com/cotes2020/jekyll-theme-chirpy/graphs/contributors
|
[contributors]: https://github.com/cotes2020/jekyll-theme-chirpy/graphs/contributors
|
||||||
|
[contributors-avatar]: https://contrib.rocks/image?repo=cotes2020/jekyll-theme-chirpy&columns=16&max=112
|
||||||
[lib]: https://github.com/cotes2020/chirpy-static-assets
|
[lib]: https://github.com/cotes2020/chirpy-static-assets
|
||||||
[vscode]: https://code.visualstudio.com/
|
|
||||||
[jetbrains]: https://www.jetbrains.com/?from=jekyll-theme-chirpy
|
|
||||||
|
|||||||
+12
-1
@@ -8,7 +8,7 @@ theme: jekyll-theme-chirpy
|
|||||||
# otherwise, the layout language will use the default value of 'en'.
|
# otherwise, the layout language will use the default value of 'en'.
|
||||||
lang: en
|
lang: en
|
||||||
|
|
||||||
# Change to your timezone › https://kevinnovak.github.io/Time-Zone-Picker
|
# Change to your timezone › https://zones.arilyn.cc
|
||||||
timezone: Asia/Shanghai
|
timezone: Asia/Shanghai
|
||||||
|
|
||||||
# jekyll-seo-tag settings › https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md
|
# jekyll-seo-tag settings › https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md
|
||||||
@@ -36,6 +36,7 @@ social:
|
|||||||
# It will be displayed as the default author of the posts and the copyright owner in the Footer
|
# It will be displayed as the default author of the posts and the copyright owner in the Footer
|
||||||
name: your_full_name
|
name: your_full_name
|
||||||
email: example@domain.com # change to your email address
|
email: example@domain.com # change to your email address
|
||||||
|
fediverse_handle: # fill in your fediverse handle. E.g. "@username@domain.com"
|
||||||
links:
|
links:
|
||||||
# The first element serves as the copyright owner's link
|
# The first element serves as the copyright owner's link
|
||||||
- https://twitter.com/username # change to your Twitter homepage
|
- https://twitter.com/username # change to your Twitter homepage
|
||||||
@@ -107,6 +108,16 @@ social_preview_image: # string, local or CORS resources
|
|||||||
# boolean type, the global switch for TOC in posts.
|
# boolean type, the global switch for TOC in posts.
|
||||||
toc: true
|
toc: true
|
||||||
|
|
||||||
|
actions:
|
||||||
|
# Display "Edit this post" action on each post page to encourage contributions.
|
||||||
|
edit_post:
|
||||||
|
enabled: false # set to true to display the "Edit this post" action.
|
||||||
|
url: "" # repository base URL, e.g. https://github.com/cotes2020/jekyll-theme-chirpy/edit/master
|
||||||
|
# Use dynamic or static URL for the edit link.
|
||||||
|
# If `static_url` is false, the post's path will be appended to the `url` above as the final edit link.
|
||||||
|
# Set to true if the URL should remain unchanged, which means each post will share the same edit link.
|
||||||
|
static_url: false # [ true | false ]
|
||||||
|
|
||||||
comments:
|
comments:
|
||||||
# Global switch for the post-comment system. Keeping it empty means disabled.
|
# Global switch for the post-comment system. Keeping it empty means disabled.
|
||||||
provider: # [disqus | utterances | giscus]
|
provider: # [disqus | utterances | giscus]
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: عذرا, الرابط التالي غير صالح أو انه يشير إلى صفحة غير موجودة.
|
statement: عذرا, الرابط التالي غير صالح أو انه يشير إلى صفحة غير موجودة.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: يتوفر اصدار جديد للمحتوى.
|
update_found: يتوفر محتوى جديد
|
||||||
update: تحديث
|
update: تحديث
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: فاتح
|
||||||
|
dark: داكن
|
||||||
|
system: النظام
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: دقيقة
|
unit: دقيقة
|
||||||
prompt: قراءة
|
prompt: قراءة
|
||||||
|
edit: حرر هذا المنشور
|
||||||
relate_posts: إقرأ المزيد
|
relate_posts: إقرأ المزيد
|
||||||
share: شارك
|
share: شارك
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: Съжалявам, но на този URL адрес няма налично съдържание.
|
statement: Съжалявам, но на този URL адрес няма налично съдържание.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Налична е нова версия на съдържанието.
|
update_found: Има ново съдържание
|
||||||
update: Обнови
|
update: Обнови
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Светла
|
||||||
|
dark: Тъмна
|
||||||
|
system: Системна
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: мин
|
unit: мин
|
||||||
prompt: четиво
|
prompt: четиво
|
||||||
|
edit: Редактирай тази публикация
|
||||||
relate_posts: Още за четене
|
relate_posts: Още за четене
|
||||||
share: Споделете
|
share: Споделете
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: Ho sentim, hem perdut aquesta URL o apunta a alguna cosa que no existeix.
|
statement: Ho sentim, hem perdut aquesta URL o apunta a alguna cosa que no existeix.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Hi ha una nova versió de contingut disponible.
|
update_found: Hi ha contingut nou disponible
|
||||||
update: Actualitzar
|
update: Actualitzar
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Clar
|
||||||
|
dark: Fosc
|
||||||
|
system: Sistema
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: min
|
unit: min
|
||||||
prompt: " de lectura"
|
prompt: " de lectura"
|
||||||
|
edit: Edita aquesta entrada
|
||||||
relate_posts: Entrades relacionades
|
relate_posts: Entrades relacionades
|
||||||
share: Compartir
|
share: Compartir
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: Omlouváme se, adresu URL jsme špatně umístili nebo odkazuje na něco, co neexistuje.
|
statement: Omlouváme se, adresu URL jsme špatně umístili nebo odkazuje na něco, co neexistuje.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Je k dispozici nová verze obsahu.
|
update_found: Je tu nový obsah
|
||||||
update: Aktualizace
|
update: Aktualizace
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Světlý
|
||||||
|
dark: Tmavý
|
||||||
|
system: Systém
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: minut
|
unit: minut
|
||||||
prompt: čtení
|
prompt: čtení
|
||||||
|
edit: Uprav tento příspěvek
|
||||||
relate_posts: Další čtení
|
relate_posts: Další čtení
|
||||||
share: Sdílet
|
share: Sdílet
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -0,0 +1,92 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Opslag
|
||||||
|
category: Kategori
|
||||||
|
tag: Tag
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Hjem
|
||||||
|
categories: Kategorier
|
||||||
|
tags: Tags
|
||||||
|
archives: Arkiv
|
||||||
|
about: Om siden
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: søg
|
||||||
|
cancel: Afbryd
|
||||||
|
no_results: Ups! Ingen resultater fundet.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Senest opdateret
|
||||||
|
trending_tags: Populære tags
|
||||||
|
toc: Indhold
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Dette opslag er licenseret under :LICENSE_NAME af forfatteren.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Nogle rettigheder forbeholdes.
|
||||||
|
verbose: >-
|
||||||
|
Medmindre andet er angivet, er opslag på denne side beskyttet
|
||||||
|
under Creative Commons Attribution 4.0 International (CC BY 4.0) licensen af forfatteren.
|
||||||
|
|
||||||
|
# meta: Using the :THEME theme for :PLATFORM.
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statement: Beklager, vi har malpaceret denne URL, eller den peger på et sted, som ikke findes.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: Der er nyt indhold
|
||||||
|
update: Opdater
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Lys
|
||||||
|
dark: Mørk
|
||||||
|
system: System
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Af
|
||||||
|
posted: Udgivet
|
||||||
|
updated: Opdateret
|
||||||
|
words: ord
|
||||||
|
pageview_measure: visninger
|
||||||
|
read_time:
|
||||||
|
unit: min
|
||||||
|
prompt: læsetid
|
||||||
|
edit: Rediger dette opslag
|
||||||
|
relate_posts: Læs videre
|
||||||
|
share: Del
|
||||||
|
button:
|
||||||
|
next: Nyere
|
||||||
|
previous: Ældre
|
||||||
|
copy_code:
|
||||||
|
succeed: Kopieret!
|
||||||
|
share_link:
|
||||||
|
title: Kopier link
|
||||||
|
succeed: Link kopieret!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%Y/%m/%d"
|
||||||
|
dayjs: "YYYY/MM/DD"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: kategori
|
||||||
|
plural: kategorier
|
||||||
|
post_measure: opslag
|
||||||
@@ -45,9 +45,14 @@ not_found:
|
|||||||
statement: Entschuldigung, dieser Link verweist auf keine vorhandene Ressource.
|
statement: Entschuldigung, dieser Link verweist auf keine vorhandene Ressource.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Eine neue Version ist verfügbar.
|
update_found: Neue Inhalte verfügbar
|
||||||
update: Neue Version
|
update: Neue Version
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Hell
|
||||||
|
dark: Dunkel
|
||||||
|
system: System
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -59,6 +64,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: Minuten
|
unit: Minuten
|
||||||
prompt: Lesezeit
|
prompt: Lesezeit
|
||||||
|
edit: Diesen Eintrag bearbeiten
|
||||||
relate_posts: Weiterlesen
|
relate_posts: Weiterlesen
|
||||||
share: Teilen
|
share: Teilen
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -0,0 +1,96 @@
|
|||||||
|
# The layout text of site in Dhivehi (Maldives)
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: ޕޯސްޓް
|
||||||
|
category: ނަތީޖާ
|
||||||
|
tag: ޓެގް
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: ހުންނަ
|
||||||
|
categories: ނަތީޖާތައް
|
||||||
|
tags: ޓެގްތައް
|
||||||
|
archives: އާރޗިވްސް
|
||||||
|
about: އިންސާން
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: ސާރޗް
|
||||||
|
cancel: ކެންސަލް
|
||||||
|
no_results: އޮޕްސް! އެއްވެސް ނުފެނުނީ.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: އާދަމާ އޮޕްޑޭޓްކުރި
|
||||||
|
trending_tags: މަރާހު ޓެގްތައް
|
||||||
|
toc: ކޮންޓެންސް
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: މި ޕޯސްޓް :LICENSE_NAME އިން ލައިސަންސްކުރާ ނުވަތަ މުޤައްރާއަށް.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: އެކީ ބާރަށް ހުށަހަޅާ.
|
||||||
|
verbose: >-
|
||||||
|
އަދި އެ ރަނގަޅުގައި ނުލާހެވެސް، މި ސައިޓުގެ ޕޯސްޓްތައް
|
||||||
|
މުޤައްރާއަށް Creative Commons Attribution 4.0 International (CC BY 4.0) ލައިސަންސްކުރަނީ.
|
||||||
|
|
||||||
|
meta: :PLATFORM އަށް :THEME ތީމް ބަލާލާށެވެ.
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statement: ސޯރީ، މި ޔޫ.އާރއެލް މަށެވެއްނެ ނުވަތަ އެކަމެއް ނުވެއެވެ.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: އައު ކޮންޓެންޓެއް ފެނިއްޖެ
|
||||||
|
update: އޮޕްޑޭޓް
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: އަލި
|
||||||
|
dark: އަނދިރި
|
||||||
|
system: ސިސްޓަމް
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: ލެކްއޯލް
|
||||||
|
posted: ޕޯސްޓްކުރެވި
|
||||||
|
updated: އޮޕްޑޭޓްކުރެވި
|
||||||
|
words: ބަސް
|
||||||
|
pageview_measure: ބަނޑުކުރާ
|
||||||
|
read_time:
|
||||||
|
unit: މިނެޓް
|
||||||
|
prompt: އިސްކާރު
|
||||||
|
edit: މި ޕޯސްޓް އެޑިޓް ކުރު
|
||||||
|
relate_posts: އެއްޗެހި ފަހުރަށްދަން
|
||||||
|
share: ސެއާރް
|
||||||
|
button:
|
||||||
|
next: އަދާވަނަ
|
||||||
|
previous: ކޮނޯނި
|
||||||
|
copy_code:
|
||||||
|
succeed: ކޮޕީ ކުރެވި!
|
||||||
|
share_link:
|
||||||
|
title: ލިންކް ކޮޕީ ކުރު
|
||||||
|
succeed: ލިންކް ހަދަންކުރެވި!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%b %e, %Y"
|
||||||
|
dayjs: "ll"
|
||||||
|
archives:
|
||||||
|
strftime: "%b"
|
||||||
|
dayjs: "MMM"
|
||||||
|
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: ނަތީޖާ
|
||||||
|
plural: ނަތީޖާތައް
|
||||||
|
post_measure:
|
||||||
|
singular: ޕޯސްޓް
|
||||||
|
plural: ޕޯސްޓްތައް
|
||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: Συγνώμη, έχουμε τοποθετήσει λάθος αυτήν την διεύθυνση URL ή υποδεικνύει κάτι που δεν υπάρχει.
|
statement: Συγνώμη, έχουμε τοποθετήσει λάθος αυτήν την διεύθυνση URL ή υποδεικνύει κάτι που δεν υπάρχει.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Υπάρχει διαθέσιμη μια νέα έκδοση του περιεχομένου.
|
update_found: Νέο περιεχόμενο διαθέσιμο
|
||||||
update: Ενημέρωση
|
update: Ενημέρωση
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Φωτεινό
|
||||||
|
dark: Σκοτεινό
|
||||||
|
system: Σύστημα
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: Λεπτά
|
unit: Λεπτά
|
||||||
prompt: διαβάσματος
|
prompt: διαβάσματος
|
||||||
|
edit: Επεξεργασία αυτής της δημοσίευσης
|
||||||
relate_posts: Περισσότερα
|
relate_posts: Περισσότερα
|
||||||
share: Κοινοποιήστε
|
share: Κοινοποιήστε
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: Sorry, we've misplaced that URL or it's pointing to something that doesn't exist.
|
statement: Sorry, we've misplaced that URL or it's pointing to something that doesn't exist.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: A new version of content is available.
|
update_found: New content available
|
||||||
update: Update
|
update: Update
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Light
|
||||||
|
dark: Dark
|
||||||
|
system: System
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: min
|
unit: min
|
||||||
prompt: read
|
prompt: read
|
||||||
|
edit: Edit this post
|
||||||
relate_posts: Further Reading
|
relate_posts: Further Reading
|
||||||
share: Share
|
share: Share
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: Lo sentimos, hemos perdido esa URL o apunta a algo que no existe.
|
statement: Lo sentimos, hemos perdido esa URL o apunta a algo que no existe.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Hay una nueva versión de contenido disponible.
|
update_found: Hay contenido nuevo
|
||||||
update: Actualizar
|
update: Actualizar
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Claro
|
||||||
|
dark: Oscuro
|
||||||
|
system: Sistema
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: min
|
unit: min
|
||||||
prompt: " de lectura"
|
prompt: " de lectura"
|
||||||
|
edit: Edita esta entrada
|
||||||
relate_posts: Lecturas adicionales
|
relate_posts: Lecturas adicionales
|
||||||
share: Compartir
|
share: Compartir
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -37,29 +37,35 @@ copyright:
|
|||||||
# Displayed in the footer
|
# Displayed in the footer
|
||||||
brief: برخی حقوق محفوظ است.
|
brief: برخی حقوق محفوظ است.
|
||||||
verbose: >-
|
verbose: >-
|
||||||
مگر اینکه خلاف آن ذکر شده باشد، پستهای وبلاگ در این سایت
|
بهجز مواردی که خلاف آن ذکر شده باشد، محتوای پستهای این وبلاگ
|
||||||
تحت مجوز Creative Commons Attribution 4.0 International (CC BY 4.0) توسط نویسنده منتشر شدهاند.
|
تحت مجوز Creative Commons Attribution 4.0 International (CC BY 4.0) توسط نویسنده منتشر شدهاند.
|
||||||
|
|
||||||
meta: با استفاده از :PLATFORM قالب :THEME
|
meta: با استفاده از قالب :THEME برای :PLATFORM
|
||||||
|
|
||||||
not_found:
|
not_found:
|
||||||
statement: متأسفیم، لینک زیر معتبر نیست یا به صفحهای که وجود ندارد اشاره میکند.
|
statement: متأسفیم، لینک زیر معتبر نیست یا به صفحهای که وجود ندارد اشاره میکند.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: نسخه جدیدی از محتوا موجود است.
|
update_found: محتوای جدیدی پیدا شد
|
||||||
update: بهروزرسانی
|
update: بهروزرسانی
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: روشن
|
||||||
|
dark: تیره
|
||||||
|
system: سیستم
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
written_by: نوشته شده توسط
|
written_by: نوشته شده توسط
|
||||||
posted: منتشر شده
|
posted: منتشر شده
|
||||||
updated: بهروزرسانی شده
|
updated: بهروزرسانی شده
|
||||||
words: کلمات
|
words: کلمه
|
||||||
pageview_measure: بازدیدها
|
pageview_measure: بازدید
|
||||||
read_time:
|
read_time:
|
||||||
unit: دقیقه
|
unit: "دقیقه "
|
||||||
prompt: زمان مطالعه
|
prompt: " زمان مطالعه"
|
||||||
|
edit: ویرایش این پست
|
||||||
relate_posts: بیشتر بخوانید
|
relate_posts: بیشتر بخوانید
|
||||||
share: اشتراکگذاری
|
share: اشتراکگذاری
|
||||||
button:
|
button:
|
||||||
@@ -85,7 +91,7 @@ df:
|
|||||||
categories:
|
categories:
|
||||||
category_measure:
|
category_measure:
|
||||||
singular: دستهبندی
|
singular: دستهبندی
|
||||||
plural: دستهبندیها
|
plural: دستهبندی
|
||||||
post_measure:
|
post_measure:
|
||||||
singular: پست
|
singular: پست
|
||||||
plural: پستها
|
plural: پست
|
||||||
@@ -45,9 +45,14 @@ not_found:
|
|||||||
statement: Valitettavasti tällä URL-osoitteella ei ole saatavilla sisältöä.
|
statement: Valitettavasti tällä URL-osoitteella ei ole saatavilla sisältöä.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Uusi versio sisällöstä on saatavilla.
|
update_found: Uutta sisältöä löytyi
|
||||||
update: Päivitä
|
update: Päivitä
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Vaalea
|
||||||
|
dark: Tumma
|
||||||
|
system: Järjestelmä
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -59,6 +64,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: minuuttia
|
unit: minuuttia
|
||||||
prompt: lukea
|
prompt: lukea
|
||||||
|
edit: Muokkaa tätä julkaisua
|
||||||
relate_posts: Jatka lukemista
|
relate_posts: Jatka lukemista
|
||||||
share: Jaa
|
share: Jaa
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: Désolé, nous avons égaré cette URL ou elle pointe vers quelque chose qui n'existe pas.
|
statement: Désolé, nous avons égaré cette URL ou elle pointe vers quelque chose qui n'existe pas.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Une nouvelle version du contenu est disponible.
|
update_found: Nouveau contenu trouvé
|
||||||
update: Mise à jour
|
update: Mise à jour
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Clair
|
||||||
|
dark: Sombre
|
||||||
|
system: Système
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: min
|
unit: min
|
||||||
prompt: lire
|
prompt: lire
|
||||||
|
edit: Modifier cet article
|
||||||
relate_posts: Autres lectures
|
relate_posts: Autres lectures
|
||||||
share: Partager
|
share: Partager
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -47,9 +47,14 @@ not_found:
|
|||||||
statement: Sajnáljuk, az URL-t rosszul helyeztük el, vagy valami nem létezőre mutat.
|
statement: Sajnáljuk, az URL-t rosszul helyeztük el, vagy valami nem létezőre mutat.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Elérhető a tartalom új verziója.
|
update_found: Új tartalom található
|
||||||
update: Frissítés
|
update: Frissítés
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Világos
|
||||||
|
dark: Sötét
|
||||||
|
system: Rendszer
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -61,6 +66,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: perc
|
unit: perc
|
||||||
prompt: elolvasni
|
prompt: elolvasni
|
||||||
|
edit: Szerkesztés
|
||||||
relate_posts: További olvasnivaló
|
relate_posts: További olvasnivaló
|
||||||
share: Megosztás
|
share: Megosztás
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: Maaf, kami gagal menemukan URL itu atau memang mengarah ke sesuatu yang tidak ada.
|
statement: Maaf, kami gagal menemukan URL itu atau memang mengarah ke sesuatu yang tidak ada.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Versi konten baru tersedia.
|
update_found: Konten baru tersedia
|
||||||
update: Perbarui
|
update: Perbarui
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Terang
|
||||||
|
dark: Gelap
|
||||||
|
system: Sistem
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: menit
|
unit: menit
|
||||||
prompt: baca
|
prompt: baca
|
||||||
|
edit: Sunting entri ini
|
||||||
relate_posts: Postingan Lainya
|
relate_posts: Postingan Lainya
|
||||||
share: Bagikan
|
share: Bagikan
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -45,9 +45,14 @@ not_found:
|
|||||||
statement: Ci scusiamo, non è stato possibile trovare l'URL in questione. Potrebbe puntare ad una pagina non esistente.
|
statement: Ci scusiamo, non è stato possibile trovare l'URL in questione. Potrebbe puntare ad una pagina non esistente.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Nuova versione del contenuto disponibile.
|
update_found: Nuovi contenuti trovati
|
||||||
update: Aggiornamento
|
update: Aggiornamento
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Chiaro
|
||||||
|
dark: Scuro
|
||||||
|
system: Sistema
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -59,6 +64,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: min
|
unit: min
|
||||||
prompt: lettura
|
prompt: lettura
|
||||||
|
edit: Modifica questo post
|
||||||
relate_posts: Continua a leggere
|
relate_posts: Continua a leggere
|
||||||
share: Condividi
|
share: Condividi
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: このURLは存在しないものを指し示しています。
|
statement: このURLは存在しないものを指し示しています。
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: 新しいバージョンが利用可能です。
|
update_found: 新しいコンテンツがあります
|
||||||
update: 更新
|
update: 更新
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: ライト
|
||||||
|
dark: ダーク
|
||||||
|
system: システム
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: 分
|
unit: 分
|
||||||
prompt: で読めます
|
prompt: で読めます
|
||||||
|
edit: この投稿を編集
|
||||||
relate_posts: さらに読む
|
relate_posts: さらに読む
|
||||||
share: シェア
|
share: シェア
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: 해당 URL은 존재하지 않습니다.
|
statement: 해당 URL은 존재하지 않습니다.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: 새 버전의 콘텐츠를 사용할 수 있습니다.
|
update_found: 새 콘텐츠가 있습니다
|
||||||
update: 업데이트
|
update: 업데이트
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: 라이트
|
||||||
|
dark: 다크
|
||||||
|
system: 시스템
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: 분
|
unit: 분
|
||||||
prompt: 읽는 시간
|
prompt: 읽는 시간
|
||||||
|
edit: 이 글 편집
|
||||||
relate_posts: 관련된 글
|
relate_posts: 관련된 글
|
||||||
share: 공유하기
|
share: 공유하기
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -0,0 +1,97 @@
|
|||||||
|
# The layout text of site in Kurdish (Sorani)
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: بابەت
|
||||||
|
category: هاوپۆل
|
||||||
|
tag: تاگ
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: سەرەکی
|
||||||
|
categories: هاوپۆلەکان
|
||||||
|
tags: تاگەکان
|
||||||
|
archives: ئەرشیف
|
||||||
|
about: دەربارە
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: گەڕان
|
||||||
|
cancel: هەڵوەشاندنەوە
|
||||||
|
no_results: ببوورە! هیچ ئەنجامێک نەدۆزرایەوە.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: دوایین نوێکردنەوەکان
|
||||||
|
trending_tags: تاگە باوەکان
|
||||||
|
toc: ناوەڕۆک
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: ئەم بابەتە لەلایەن نووسەرەوە بە مۆڵەتی :LICENSE_NAME بڵاوکراوەتەوە.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: هەندێک مافی پارێزراوە.
|
||||||
|
verbose: >-
|
||||||
|
تەنها لەو شوێنانەی کە بە پێچەوانەوە ئاماژەی پێدراوە، بابەتەکانی بڵۆگ لەم سایتەدا
|
||||||
|
لەژێر مۆڵەتی Creative Commons Attribution 4.0 International (CC BY 4.0) لەلایەن نووسەرەوە مۆڵەتیان پێدراوە.
|
||||||
|
|
||||||
|
meta: بە بەکارهێنانی :PLATFORM لەگەڵ ڕووکاری :THEME
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statement: ببوورە، ئەم بەستەرە نادۆزرێتەوە یان ئاماژە بە شتێک دەکات کە بوونی نییە.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: ناوەڕۆکی نوێ بەردەستە
|
||||||
|
update: نوێکردنەوە
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: ڕووناک
|
||||||
|
dark: تاریک
|
||||||
|
system: سیستەم
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: نووسەر
|
||||||
|
posted: بڵاوکراوەتەوە
|
||||||
|
updated: نوێکراوەتەوە
|
||||||
|
words: وشە
|
||||||
|
pageview_measure: بینین
|
||||||
|
read_time:
|
||||||
|
unit: خولەک
|
||||||
|
prompt: خوێندنەوە
|
||||||
|
edit: ئەم بابەتە دەستکاری بکە
|
||||||
|
relate_posts: بابەتی پەیوەندیدار
|
||||||
|
share: بڵاوکردنەوە
|
||||||
|
button:
|
||||||
|
next: نوێتر
|
||||||
|
previous: کۆنتر
|
||||||
|
copy_code:
|
||||||
|
succeed: کۆپی کرا!
|
||||||
|
share_link:
|
||||||
|
title: کۆپی بەستەر
|
||||||
|
succeed: بەستەر بە سەرکەوتوویی کۆپی کرا!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%d %b, %Y"
|
||||||
|
dayjs: "DD MMM, YYYY"
|
||||||
|
archives:
|
||||||
|
strftime: "%b"
|
||||||
|
dayjs: "MMM"
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: هاوپۆل
|
||||||
|
plural: هاوپۆل
|
||||||
|
post_measure:
|
||||||
|
singular: بابەت
|
||||||
|
plural: بابەت
|
||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: ဝမ်းနည်းပါသည်၊ ကျွန်ုပ်တို့သည် အဆိုပါ URL ကို မှားယွင်းစွာ နေရာချထားခြင်း သို့မဟုတ် ၎င်းသည် မရှိသောအရာကို ညွှန်ပြနေပါသည်။
|
statement: ဝမ်းနည်းပါသည်၊ ကျွန်ုပ်တို့သည် အဆိုပါ URL ကို မှားယွင်းစွာ နေရာချထားခြင်း သို့မဟုတ် ၎င်းသည် မရှိသောအရာကို ညွှန်ပြနေပါသည်။
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: အကြောင်းအရာဗားရှင်းအသစ်ကို ရနိုင်ပါပြီ။
|
update_found: အကြောင်းအရာအသစ် တွေ့ရှိပါသည်
|
||||||
update: အပ်ဒိတ်
|
update: အပ်ဒိတ်
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: အလင်း
|
||||||
|
dark: အမှောင်
|
||||||
|
system: စနစ်
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: မိနစ်
|
unit: မိနစ်
|
||||||
prompt: ဖတ်ပါမည်
|
prompt: ဖတ်ပါမည်
|
||||||
|
edit: ဤပို့စ်ကို တည်းဖြတ်ပါ
|
||||||
relate_posts: နောက်ထပ်ဖတ်ရန်
|
relate_posts: နောက်ထပ်ဖတ်ရန်
|
||||||
share: မျှဝေရန်
|
share: မျှဝေရန်
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: Sorry, we hebben de URL verkeerd geplaatst of hij verwijst naar iets dat niet bestaat.
|
statement: Sorry, we hebben de URL verkeerd geplaatst of hij verwijst naar iets dat niet bestaat.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Nieuwe versie van inhoud beschikbaar.
|
update_found: Nieuwe inhoud gevonden
|
||||||
update: Update
|
update: Update
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Licht
|
||||||
|
dark: Donker
|
||||||
|
system: Systeem
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
post:
|
post:
|
||||||
written_by: Door
|
written_by: Door
|
||||||
@@ -59,6 +64,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: min
|
unit: min
|
||||||
prompt: lees
|
prompt: lees
|
||||||
|
edit: Bewerk dit bericht
|
||||||
relate_posts: Verder Lezen
|
relate_posts: Verder Lezen
|
||||||
share: Deel
|
share: Deel
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -0,0 +1,96 @@
|
|||||||
|
# The layout text of site in Pashto (Afghanistan)
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: لیکنه
|
||||||
|
category: وېشنيزه
|
||||||
|
tag: ټګ
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: کورپاڼه
|
||||||
|
categories: وېشنيزې
|
||||||
|
tags: ټګونه
|
||||||
|
archives: آرشيف
|
||||||
|
about: په اړه
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: لټون
|
||||||
|
cancel: لغوه
|
||||||
|
no_results: ها! هېڅ پایله ونه موندل شوه.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: وروستی تازه
|
||||||
|
trending_tags: مشهور ټګونه
|
||||||
|
toc: منځپانګه
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: دا لیکنه د :LICENSE_NAME جواز لاندې د لیکوال له خوا خپره شوې ده.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: ځینې حقونه خوندي دي.
|
||||||
|
verbose: >-
|
||||||
|
تر هغه ځایه چې بل ډول نه وي یاد شوي، د دې سایټ لیکنې
|
||||||
|
د لیکوال له خوا د کریټېو کامنز د انتساب 4.0 نړیوال (CC BY 4.0) جواز لاندې خپرېږي.
|
||||||
|
|
||||||
|
meta: د :PLATFORM لپاره د :THEME موضوع کاروي.
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statement: بښنه غواړو، دغه URL ناسم دی یا هغه څه ته اشاره کوي چې شتون نه لري.
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: نوې منځپانګه شتون لري
|
||||||
|
update: تازه
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: روښانه
|
||||||
|
dark: تیاره
|
||||||
|
system: سیستم
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: لیکوال
|
||||||
|
posted: خپره شوې
|
||||||
|
updated: تازه شوې
|
||||||
|
words: کلمې
|
||||||
|
pageview_measure: کتنې
|
||||||
|
read_time:
|
||||||
|
unit: دقیقې
|
||||||
|
prompt: لوستل
|
||||||
|
edit: دغه لیکنه سمول
|
||||||
|
relate_posts: نوره لوستنه
|
||||||
|
share: شریکول
|
||||||
|
button:
|
||||||
|
next: نوی
|
||||||
|
previous: زوړ
|
||||||
|
copy_code:
|
||||||
|
succeed: کاپي شو!
|
||||||
|
share_link:
|
||||||
|
title: لینک کاپي کړئ
|
||||||
|
succeed: لینک بریالي کاپي شو!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%b %e, %Y"
|
||||||
|
dayjs: "ll"
|
||||||
|
archives:
|
||||||
|
strftime: "%b"
|
||||||
|
dayjs: "MMM"
|
||||||
|
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: وېشنيزه
|
||||||
|
plural: وېشنيزې
|
||||||
|
post_measure:
|
||||||
|
singular: لیکنه
|
||||||
|
plural: لیکنې
|
||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: Desculpe, a página não foi encontrada.
|
statement: Desculpe, a página não foi encontrada.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Uma nova versão do conteúdo está disponível.
|
update_found: Novo conteúdo encontrado
|
||||||
update: atualização
|
update: atualização
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Claro
|
||||||
|
dark: Escuro
|
||||||
|
system: Sistema
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: min
|
unit: min
|
||||||
prompt: " de leitura"
|
prompt: " de leitura"
|
||||||
|
edit: Editar esta postagem
|
||||||
relate_posts: Leia também
|
relate_posts: Leia também
|
||||||
share: Compartilhar
|
share: Compartilhar
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -45,9 +45,14 @@ not_found:
|
|||||||
statement: Извините, мы перепутали URL-адрес или он указывает на что-то несуществующее.
|
statement: Извините, мы перепутали URL-адрес или он указывает на что-то несуществующее.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Доступна новая версия контента.
|
update_found: Найден новый контент
|
||||||
update: Обновить
|
update: Обновить
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Светлая
|
||||||
|
dark: Темная
|
||||||
|
system: Системная
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -59,6 +64,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: мин.
|
unit: мин.
|
||||||
prompt: чтения
|
prompt: чтения
|
||||||
|
edit: Редактировать этот пост
|
||||||
relate_posts: Похожие посты
|
relate_posts: Похожие посты
|
||||||
share: Поделиться
|
share: Поделиться
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: Oprostite, hiperpovezava je neustrezna ali vsebina ne obstajata. #Sorry, we've misplaced that URL or it's pointing to something that doesn't exist.
|
statement: Oprostite, hiperpovezava je neustrezna ali vsebina ne obstajata. #Sorry, we've misplaced that URL or it's pointing to something that doesn't exist.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Novejša različica vsebine je na voljo. #A new version of content is available.
|
update_found: Nova vsebina je na voljo
|
||||||
update: Posodobi #Update
|
update: Posodobi #Update
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Svetla
|
||||||
|
dark: Temna
|
||||||
|
system: Sistemska
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: min
|
unit: min
|
||||||
prompt: beri #read
|
prompt: beri #read
|
||||||
|
edit: Uredi to objavo #Edit this post
|
||||||
relate_posts: Nadaljnje branje #Further Reading
|
relate_posts: Nadaljnje branje #Further Reading
|
||||||
share: Deli #Share
|
share: Deli #Share
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: Ursäkta, vi har tappat bort den här webbadressen eller så pekar den på något som inte längre finns.
|
statement: Ursäkta, vi har tappat bort den här webbadressen eller så pekar den på något som inte längre finns.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Det finns en ny version av innehållet.
|
update_found: Nytt innehåll hittades
|
||||||
update: Uppdatera sidan
|
update: Uppdatera sidan
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Ljust
|
||||||
|
dark: Mörkt
|
||||||
|
system: System
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: min
|
unit: min
|
||||||
prompt: läsning
|
prompt: läsning
|
||||||
|
edit: Redigera detta inlägg
|
||||||
relate_posts: Mer läsning
|
relate_posts: Mer läsning
|
||||||
share: Dela
|
share: Dela
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: ขออภัย เราวาง URL นั้นไว้ผิดที่ หรือมันชี้ไปยังสิ่งที่ไม่มีอยู่
|
statement: ขออภัย เราวาง URL นั้นไว้ผิดที่ หรือมันชี้ไปยังสิ่งที่ไม่มีอยู่
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: มีเวอร์ชันใหม่ของเนื้อหา
|
update_found: พบเนื้อหาใหม่
|
||||||
update: อัปเดต
|
update: อัปเดต
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: สว่าง
|
||||||
|
dark: มืด
|
||||||
|
system: ระบบ
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: นาที
|
unit: นาที
|
||||||
prompt: อ่าน
|
prompt: อ่าน
|
||||||
|
edit: แก้ไขโพสต์นี้
|
||||||
relate_posts: อ่านต่อ
|
relate_posts: อ่านต่อ
|
||||||
share: แชร์
|
share: แชร์
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: Üzgünüz, bu linki yanlış yerleştirdik veya var olmayan bir şeye işaret ediyor.
|
statement: Üzgünüz, bu linki yanlış yerleştirdik veya var olmayan bir şeye işaret ediyor.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: İçeriğin yeni bir sürümü mevcut.
|
update_found: Yeni içerik bulundu
|
||||||
update: Güncelle
|
update: Güncelle
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Açık
|
||||||
|
dark: Koyu
|
||||||
|
system: Sistem
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: dakikada
|
unit: dakikada
|
||||||
prompt: okunabilir
|
prompt: okunabilir
|
||||||
|
edit: Bu gönderiyi düzenle
|
||||||
relate_posts: Benzer Gönderiler
|
relate_posts: Benzer Gönderiler
|
||||||
share: Paylaş
|
share: Paylaş
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -46,9 +46,14 @@ not_found:
|
|||||||
statement: Вибачте, це посилання вказує на ресурс, що не існує.
|
statement: Вибачте, це посилання вказує на ресурс, що не існує.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Доступна нова версія вмісту.
|
update_found: Знайдено новий вміст
|
||||||
update: Оновлення
|
update: Оновлення
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Світла
|
||||||
|
dark: Темна
|
||||||
|
system: Системна
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -60,6 +65,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: хвилин
|
unit: хвилин
|
||||||
prompt: читання
|
prompt: читання
|
||||||
|
edit: Редагувати цей пост
|
||||||
relate_posts: Вас також може зацікавити
|
relate_posts: Вас також може зацікавити
|
||||||
share: Поділитися
|
share: Поділитися
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -0,0 +1,96 @@
|
|||||||
|
# The layout text of site in Urdu (Pakistan)
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: تحریر
|
||||||
|
category: زمرہ
|
||||||
|
tag: ٹیگ
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: گھر
|
||||||
|
categories: زمروں
|
||||||
|
tags: ٹیگز
|
||||||
|
archives: محفوظات
|
||||||
|
about: تعارف
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: تلاش
|
||||||
|
cancel: منسوخ
|
||||||
|
no_results: اوہ! کوئی نتیجہ نہیں ملا۔
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: حال ہی میں اپ ڈیٹ
|
||||||
|
trending_tags: مقبول ٹیگز
|
||||||
|
toc: مواد
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: یہ تحریر :LICENSE_NAME کے تحت مصنف کی جانب سے لائسنس یافتہ ہے۔
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: کچھ حقوق محفوظ ہیں۔
|
||||||
|
verbose: >-
|
||||||
|
جب تک کہ دوسری صورت میں ذکر نہ ہو، اس سائٹ کی تحریریں
|
||||||
|
مصنف کی جانب سے تخلیقی العام انتساب 4.0 بین الاقوامی (CC BY 4.0) لائسنس کے تحت دستیاب ہیں۔
|
||||||
|
|
||||||
|
meta: :PLATFORM کے لیے :THEME تھیم استعمال کیا جا رہا ہے۔
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statement: معذرت، یہ URL غلط ہے یا جس چیز کی طرف اشارہ کر رہا ہے وہ موجود نہیں۔
|
||||||
|
|
||||||
|
notification:
|
||||||
|
update_found: نیا مواد مل گیا
|
||||||
|
update: اپ ڈیٹ
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: روشن
|
||||||
|
dark: تاریک
|
||||||
|
system: سسٹم
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: از
|
||||||
|
posted: شائع شدہ
|
||||||
|
updated: اپ ڈیٹ شدہ
|
||||||
|
words: لفظ
|
||||||
|
pageview_measure: مشاہدات
|
||||||
|
read_time:
|
||||||
|
unit: منٹ
|
||||||
|
prompt: پڑھیں
|
||||||
|
edit: اس تحریر میں ترمیم کریں
|
||||||
|
relate_posts: مزید مطالعہ
|
||||||
|
share: شیئر
|
||||||
|
button:
|
||||||
|
next: نیا
|
||||||
|
previous: پرانا
|
||||||
|
copy_code:
|
||||||
|
succeed: کاپی ہو گیا!
|
||||||
|
share_link:
|
||||||
|
title: لنک کاپی کریں
|
||||||
|
succeed: لنک کامیابی سے کاپی ہو گیا!
|
||||||
|
|
||||||
|
# Date time format.
|
||||||
|
# See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
|
||||||
|
df:
|
||||||
|
post:
|
||||||
|
strftime: "%b %e, %Y"
|
||||||
|
dayjs: "ll"
|
||||||
|
archives:
|
||||||
|
strftime: "%b"
|
||||||
|
dayjs: "MMM"
|
||||||
|
|
||||||
|
categories:
|
||||||
|
category_measure:
|
||||||
|
singular: زمرہ
|
||||||
|
plural: زمروں
|
||||||
|
post_measure:
|
||||||
|
singular: تحریر
|
||||||
|
plural: تحریریں
|
||||||
@@ -45,9 +45,14 @@ not_found:
|
|||||||
statement: Xin lỗi, chúng tôi đã đặt nhầm URL hoặc đường dẫn trỏ đến một trang nào đó không tồn tại.
|
statement: Xin lỗi, chúng tôi đã đặt nhầm URL hoặc đường dẫn trỏ đến một trang nào đó không tồn tại.
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: Đã có phiên bản mới của nội dung.
|
update_found: Đã tìm thấy nội dung mới
|
||||||
update: Cập nhật
|
update: Cập nhật
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: Sáng
|
||||||
|
dark: Tối
|
||||||
|
system: Hệ thống
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -59,6 +64,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: phút
|
unit: phút
|
||||||
prompt: đọc
|
prompt: đọc
|
||||||
|
edit: Chỉnh sửa bài viết này
|
||||||
relate_posts: Bài viết liên quan
|
relate_posts: Bài viết liên quan
|
||||||
share: Chia sẻ
|
share: Chia sẻ
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -45,9 +45,14 @@ not_found:
|
|||||||
statement: 抱歉,我们放错了该 URL,或者它指向了不存在的内容。
|
statement: 抱歉,我们放错了该 URL,或者它指向了不存在的内容。
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: 发现新版本的内容。
|
update_found: 发现新内容
|
||||||
update: 更新
|
update: 更新
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: 浅色
|
||||||
|
dark: 深色
|
||||||
|
system: 跟随系统
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -59,6 +64,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: 分钟
|
unit: 分钟
|
||||||
prompt: 阅读
|
prompt: 阅读
|
||||||
|
edit: 编辑此文
|
||||||
relate_posts: 相关文章
|
relate_posts: 相关文章
|
||||||
share: 分享
|
share: 分享
|
||||||
button:
|
button:
|
||||||
|
|||||||
@@ -45,9 +45,14 @@ not_found:
|
|||||||
statement: 抱歉,您可能正在存取一個已被移動的 URL,或者它從未存在。
|
statement: 抱歉,您可能正在存取一個已被移動的 URL,或者它從未存在。
|
||||||
|
|
||||||
notification:
|
notification:
|
||||||
update_found: 發現新版本更新。
|
update_found: 發現新內容
|
||||||
update: 更新
|
update: 更新
|
||||||
|
|
||||||
|
theme:
|
||||||
|
light: 淺色
|
||||||
|
dark: 深色
|
||||||
|
system: 跟隨系統
|
||||||
|
|
||||||
# ----- Posts related labels -----
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
post:
|
post:
|
||||||
@@ -59,6 +64,7 @@ post:
|
|||||||
read_time:
|
read_time:
|
||||||
unit: 分鐘
|
unit: 分鐘
|
||||||
prompt: 閱讀
|
prompt: 閱讀
|
||||||
|
edit: 編輯此文
|
||||||
relate_posts: 相關文章
|
relate_posts: 相關文章
|
||||||
share: 分享
|
share: 分享
|
||||||
button:
|
button:
|
||||||
|
|||||||
+18
-15
@@ -19,36 +19,39 @@ webfonts: https://fonts.googleapis.com/css2?family=Lato:wght@300;400&family=Sour
|
|||||||
|
|
||||||
# Libraries
|
# Libraries
|
||||||
|
|
||||||
|
bootstrap:
|
||||||
|
css: https://cdn.jsdelivr.net/npm/bootstrap@5/dist/css/bootstrap.min.css
|
||||||
|
|
||||||
toc:
|
toc:
|
||||||
css: https://cdn.jsdelivr.net/npm/tocbot@4.32.2/dist/tocbot.min.css
|
css: https://cdn.jsdelivr.net/npm/tocbot@4/dist/tocbot.min.css
|
||||||
js: https://cdn.jsdelivr.net/npm/tocbot@4.32.2/dist/tocbot.min.js
|
js: https://cdn.jsdelivr.net/npm/tocbot@4/dist/tocbot.min.js
|
||||||
|
|
||||||
fontawesome:
|
fontawesome:
|
||||||
css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.7.1/css/all.min.css
|
css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@7/css/all.min.css
|
||||||
|
|
||||||
search:
|
search:
|
||||||
js: https://cdn.jsdelivr.net/npm/simple-jekyll-search@1.10.0/dest/simple-jekyll-search.min.js
|
js: https://cdn.jsdelivr.net/npm/simple-jekyll-search@1/dest/simple-jekyll-search.min.js
|
||||||
|
|
||||||
mermaid:
|
mermaid:
|
||||||
js: https://cdn.jsdelivr.net/npm/mermaid@11.4.0/dist/mermaid.min.js
|
js: https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js
|
||||||
|
|
||||||
dayjs:
|
dayjs:
|
||||||
js:
|
js:
|
||||||
common: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/dayjs.min.js
|
common: https://cdn.jsdelivr.net/npm/dayjs@1/dayjs.min.js
|
||||||
locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/locale/:LOCALE.js
|
locale: https://cdn.jsdelivr.net/npm/dayjs@1/locale/:LOCALE.js
|
||||||
relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/plugin/relativeTime.js
|
relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1/plugin/relativeTime.js
|
||||||
localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/plugin/localizedFormat.js
|
localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1/plugin/localizedFormat.js
|
||||||
|
|
||||||
glightbox:
|
glightbox:
|
||||||
css: https://cdn.jsdelivr.net/npm/glightbox@3.3.0/dist/css/glightbox.min.css
|
css: https://cdn.jsdelivr.net/npm/glightbox@3/dist/css/glightbox.min.css
|
||||||
js: https://cdn.jsdelivr.net/npm/glightbox@3.3.0/dist/js/glightbox.min.js
|
js: https://cdn.jsdelivr.net/npm/glightbox@3/dist/js/glightbox.min.js
|
||||||
|
|
||||||
lazy-polyfill:
|
lazy-polyfill:
|
||||||
css: https://cdn.jsdelivr.net/npm/loading-attribute-polyfill@2.1.1/dist/loading-attribute-polyfill.min.css
|
css: https://cdn.jsdelivr.net/npm/loading-attribute-polyfill@2/dist/loading-attribute-polyfill.min.css
|
||||||
js: https://cdn.jsdelivr.net/npm/loading-attribute-polyfill@2.1.1/dist/loading-attribute-polyfill.umd.min.js
|
js: https://cdn.jsdelivr.net/npm/loading-attribute-polyfill@2/dist/loading-attribute-polyfill.umd.min.js
|
||||||
|
|
||||||
clipboard:
|
clipboard:
|
||||||
js: https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js
|
js: https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js
|
||||||
|
|
||||||
mathjax:
|
mathjax:
|
||||||
js: https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/tex-chtml.js
|
js: https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
{%- comment -%} Auto switch theme {%- endcomment -%}
|
{%- comment -%} Auto switch theme {%- endcomment -%}
|
||||||
function reloadDisqus(event) {
|
function reloadDisqus(event) {
|
||||||
if (event.source === window && event.data && event.data.id === Theme.ID) {
|
if (event.source === window && event.data && event.data.id === Theme.eventId) {
|
||||||
{%- comment -%} Disqus hasn't been loaded {%- endcomment -%}
|
{%- comment -%} Disqus hasn't been loaded {%- endcomment -%}
|
||||||
if (typeof DISQUS === 'undefined') {
|
if (typeof DISQUS === 'undefined') {
|
||||||
return;
|
return;
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
addDisqus();
|
addDisqus();
|
||||||
|
|
||||||
if (Theme.switchable) {
|
if (Theme.isToggleable) {
|
||||||
addEventListener('message', reloadDisqus);
|
addEventListener('message', reloadDisqus);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<!-- https://giscus.app/ -->
|
<!-- https://giscus.app/ -->
|
||||||
<script>
|
<script>
|
||||||
(function () {
|
(function () {
|
||||||
const themeMapper = Theme.getThemeMapper('light', 'dark_dimmed');
|
const themeMap = Theme.newThemeMap('light', 'dark_dimmed');
|
||||||
const initTheme = themeMapper[Theme.visualState];
|
const initTheme = themeMap[Theme.resolvedTheme];
|
||||||
|
|
||||||
let lang = '{{ site.comments.giscus.lang | default: lang }}';
|
let lang = '{{ site.comments.giscus.lang | default: lang }}';
|
||||||
{%- comment -%} https://github.com/giscus/giscus/tree/main/locales {%- endcomment -%}
|
{%- comment -%} https://github.com/giscus/giscus/tree/main/locales {%- endcomment -%}
|
||||||
@@ -37,8 +37,8 @@
|
|||||||
$footer.insertAdjacentElement("beforebegin", giscusNode);
|
$footer.insertAdjacentElement("beforebegin", giscusNode);
|
||||||
|
|
||||||
addEventListener('message', (event) => {
|
addEventListener('message', (event) => {
|
||||||
if (event.source === window && event.data && event.data.id === Theme.ID) {
|
if (event.source === window && event.data && event.data.id === Theme.eventId) {
|
||||||
const newTheme = themeMapper[Theme.visualState];
|
const newTheme = themeMap[Theme.resolvedTheme];
|
||||||
|
|
||||||
const message = {
|
const message = {
|
||||||
setConfig: {
|
setConfig: {
|
||||||
@@ -46,9 +46,19 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const giscus =
|
const iframe = document.querySelector('.giscus-frame');
|
||||||
document.getElementsByClassName('giscus-frame')[0].contentWindow;
|
|
||||||
giscus.postMessage({ giscus: message }, 'https://giscus.app');
|
if (!iframe) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (iframe.classList.contains('giscus-frame--loading')) {
|
||||||
|
let url = new URL(iframe.src);
|
||||||
|
url.searchParams.set('theme', newTheme);
|
||||||
|
iframe.src = url.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
iframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
<script>
|
<script>
|
||||||
(function () {
|
(function () {
|
||||||
const origin = 'https://utteranc.es';
|
const origin = 'https://utteranc.es';
|
||||||
const themeMapper = Theme.getThemeMapper('github-light', 'github-dark');
|
const themeMap = Theme.newThemeMap('github-light', 'github-dark');
|
||||||
const initTheme = themeMapper[Theme.visualState];
|
const initTheme = themeMap[Theme.resolvedTheme];
|
||||||
|
|
||||||
let script = document.createElement('script');
|
let script = document.createElement('script');
|
||||||
script.src = 'https://utteranc.es/client.js';
|
script.src = 'https://utteranc.es/client.js';
|
||||||
@@ -22,8 +22,8 @@
|
|||||||
{%- comment -%}
|
{%- comment -%}
|
||||||
Credit to <https://github.com/utterance/utterances/issues/170#issuecomment-594036347>
|
Credit to <https://github.com/utterance/utterances/issues/170#issuecomment-594036347>
|
||||||
{%- endcomment -%}
|
{%- endcomment -%}
|
||||||
if (event.source === window && event.data && event.data.id === Theme.ID) {
|
if (event.source === window && event.data && event.data.id === Theme.eventId) {
|
||||||
newTheme = themeMapper[Theme.visualState];
|
newTheme = themeMap[Theme.resolvedTheme];
|
||||||
|
|
||||||
const message = {
|
const message = {
|
||||||
type: 'set-theme',
|
type: 'set-theme',
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<!--
|
<!--
|
||||||
Date format snippet
|
Date format snippet
|
||||||
See: ${JS_ROOT}/utils/locale-dateime.js
|
See: ${JS_ROOT}/modules/components/locale-datetime.js
|
||||||
-->
|
-->
|
||||||
|
|
||||||
{% assign df_strftime = site.data.locales[include.lang].df.post.strftime | default: '%d/%m/%Y' %}
|
{% assign df_strftime = site.data.locales[include.lang].df.post.strftime | default: '%d/%m/%Y' %}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
{% endunless %}
|
{% endunless %}
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<audio class="embed-audio" controls>
|
<audio class="embed-audio file" controls>
|
||||||
{% assign extension = src | split: '.' | last %}
|
{% assign extension = src | split: '.' | last %}
|
||||||
{% assign types = extension | concat: types %}
|
{% assign types = extension | concat: types %}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
{% assign size = 352 %}
|
||||||
|
{% assign theme = '' %}
|
||||||
|
|
||||||
|
{% if include.compact %}
|
||||||
|
{% assign size = 152 %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if include.dark %}
|
||||||
|
{% assign theme = '?theme=0' %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<iframe
|
||||||
|
class="embed-audio spotify"
|
||||||
|
src="https://open.spotify.com/embed/track/{{ include.id | append: theme }}"
|
||||||
|
height="{{ size }}"
|
||||||
|
frameBorder="0"
|
||||||
|
allowfullscreen=""
|
||||||
|
allowtransparency="true"
|
||||||
|
allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture"
|
||||||
|
loading="lazy"
|
||||||
|
>
|
||||||
|
</iframe>
|
||||||
@@ -5,15 +5,10 @@
|
|||||||
|
|
||||||
{% capture favicon_path %}{{ '/assets/img/favicons' | relative_url }}{% endcapture %}
|
{% capture favicon_path %}{{ '/assets/img/favicons' | relative_url }}{% endcapture %}
|
||||||
|
|
||||||
|
<link rel="icon" type="image/png" href="{{ favicon_path }}/favicon-96x96.png" sizes="96x96">
|
||||||
|
<link rel="icon" type="image/svg+xml" href="{{ favicon_path }}/favicon.svg">
|
||||||
|
<link rel="shortcut icon" href="{{ favicon_path }}/favicon.ico">
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="{{ favicon_path }}/apple-touch-icon.png">
|
<link rel="apple-touch-icon" sizes="180x180" href="{{ favicon_path }}/apple-touch-icon.png">
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ favicon_path }}/favicon-32x32.png">
|
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="{{ favicon_path }}/favicon-16x16.png">
|
|
||||||
{% if site.pwa.enabled %}
|
{% if site.pwa.enabled %}
|
||||||
<link rel="manifest" href="{{ favicon_path }}/site.webmanifest">
|
<link rel="manifest" href="{{ favicon_path }}/site.webmanifest">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<link rel="shortcut icon" href="{{ favicon_path }}/favicon.ico">
|
|
||||||
<meta name="apple-mobile-web-app-title" content="{{ site.title }}">
|
|
||||||
<meta name="application-name" content="{{ site.title }}">
|
|
||||||
<meta name="msapplication-TileColor" content="#da532c">
|
|
||||||
<meta name="msapplication-config" content="{{ favicon_path }}/browserconfig.xml">
|
|
||||||
<meta name="theme-color" content="#ffffff">
|
|
||||||
|
|||||||
+16
-5
@@ -2,8 +2,6 @@
|
|||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
<meta name="theme-color" media="(prefers-color-scheme: light)" content="#f7f7f7">
|
<meta name="theme-color" media="(prefers-color-scheme: light)" content="#f7f7f7">
|
||||||
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#1b1b1e">
|
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#1b1b1e">
|
||||||
<meta name="mobile-web-app-capable" content="yes">
|
|
||||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
|
||||||
<meta
|
<meta
|
||||||
name="viewport"
|
name="viewport"
|
||||||
content="width=device-width, user-scalable=no initial-scale=1, shrink-to-fit=no, viewport-fit=cover"
|
content="width=device-width, user-scalable=no initial-scale=1, shrink-to-fit=no, viewport-fit=cover"
|
||||||
@@ -50,11 +48,24 @@
|
|||||||
|
|
||||||
{{ seo_tags }}
|
{{ seo_tags }}
|
||||||
|
|
||||||
|
{%- if site.social.fediverse_handle %}
|
||||||
|
<!-- Fediverse handle/creator -->
|
||||||
|
<meta name="fediverse:creator" content="{{ site.social.fediverse_handle }}">
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<title>
|
<title>
|
||||||
{%- unless page.layout == 'home' -%}
|
{%- unless page.layout == 'home' -%}
|
||||||
{{ page.title | append: ' | ' }}
|
{%- capture title -%}
|
||||||
|
{%- if page.collection == 'tabs' -%}
|
||||||
|
{%- assign tab_key = page.title | downcase -%}
|
||||||
|
{{- site.data.locales[include.lang].tabs[tab_key] -}}
|
||||||
|
{%- else -%}
|
||||||
|
{{- page.title -}}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endcapture -%}
|
||||||
|
{{- title | append: ' | ' -}}
|
||||||
{%- endunless -%}
|
{%- endunless -%}
|
||||||
{{ site.title }}
|
{{- site.title -}}
|
||||||
</title>
|
</title>
|
||||||
|
|
||||||
{% include_cached favicons.html %}
|
{% include_cached favicons.html %}
|
||||||
@@ -70,7 +81,7 @@
|
|||||||
|
|
||||||
<!-- Bootstrap -->
|
<!-- Bootstrap -->
|
||||||
{% unless jekyll.environment == 'production' %}
|
{% unless jekyll.environment == 'production' %}
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.6/dist/css/bootstrap.min.css">
|
<link rel="stylesheet" href="{{ site.data.origin.cors.bootstrap.css }}">
|
||||||
{% endunless %}
|
{% endunless %}
|
||||||
|
|
||||||
<!-- Theme style -->
|
<!-- Theme style -->
|
||||||
|
|||||||
@@ -67,7 +67,6 @@
|
|||||||
{% if page.math %}
|
{% if page.math %}
|
||||||
<!-- MathJax -->
|
<!-- MathJax -->
|
||||||
<script src="{{ '/assets/js/data/mathjax.js' | relative_url }}"></script>
|
<script src="{{ '/assets/js/data/mathjax.js' | relative_url }}"></script>
|
||||||
<script async src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es6"></script>
|
|
||||||
<script id="MathJax-script" async src="{{ site.data.origin[type].mathjax.js | relative_url }}"></script>
|
<script id="MathJax-script" async src="{{ site.data.origin[type].mathjax.js | relative_url }}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
{% comment %}
|
{% comment %}
|
||||||
|
|
||||||
Convert the alias of the syntax language to the official name
|
Convert the alias of the syntax language to the official name
|
||||||
|
|
||||||
See: <https://github.com/rouge-ruby/rouge/wiki/List-of-supported-languages-and-lexers>
|
See: <https://github.com/rouge-ruby/rouge/wiki/List-of-supported-languages-and-lexers>
|
||||||
|
|
||||||
{% endcomment %}
|
{% endcomment %}
|
||||||
|
|
||||||
{% assign _lang = include.language | default: '' %}
|
{% assign _lang = include.language | default: '' %}
|
||||||
@@ -20,13 +18,13 @@
|
|||||||
{% when 'coffeescript', 'coffee', 'coffee-script' %}
|
{% when 'coffeescript', 'coffee', 'coffee-script' %}
|
||||||
{{ 'CoffeeScript' }}
|
{{ 'CoffeeScript' }}
|
||||||
{% when 'cs', 'csharp' %}
|
{% when 'cs', 'csharp' %}
|
||||||
{{ 'C#' }}
|
{{ 'C#' }}
|
||||||
{% when 'erl' %}
|
{% when 'erl' %}
|
||||||
{{ 'Erlang' }}
|
{{ 'Erlang' }}
|
||||||
{% when 'graphql' %}
|
{% when 'graphql' %}
|
||||||
{{ 'GraphQL' }}
|
{{ 'GraphQL' }}
|
||||||
{% when 'haskell', 'hs' %}
|
{% when 'haskell', 'hs' %}
|
||||||
{{ 'Haskell' }}
|
{{ 'Haskell' }}
|
||||||
{% when 'javascript', 'js' %}
|
{% when 'javascript', 'js' %}
|
||||||
{{ 'JavaScript' }}
|
{{ 'JavaScript' }}
|
||||||
{% when 'make', 'mf', 'gnumake', 'bsdmake' %}
|
{% when 'make', 'mf', 'gnumake', 'bsdmake' %}
|
||||||
@@ -39,22 +37,22 @@
|
|||||||
{{ 'Objective-C' }}
|
{{ 'Objective-C' }}
|
||||||
{% when 'perl', 'pl' %}
|
{% when 'perl', 'pl' %}
|
||||||
{{ 'Perl' }}
|
{{ 'Perl' }}
|
||||||
{% when 'php','php3','php4','php5' %}
|
{% when 'php', 'php3', 'php4', 'php5' %}
|
||||||
{{ 'PHP' }}
|
{{ 'PHP' }}
|
||||||
{% when 'py' %}
|
{% when 'py' %}
|
||||||
{{ 'Python' }}
|
{{ 'Python' }}
|
||||||
{% when 'rb' %}
|
{% when 'rb' %}
|
||||||
{{ 'Ruby' }}
|
{{ 'Ruby' }}
|
||||||
{% when 'rs','no_run','ignore','should_panic' %}
|
{% when 'rs', 'no_run', 'ignore', 'should_panic' %}
|
||||||
{{ 'Rust' }}
|
{{ 'Rust' }}
|
||||||
{% when 'bash', 'zsh', 'ksh', 'sh' %}
|
{% when 'bash', 'zsh', 'ksh', 'sh' %}
|
||||||
{{ 'Shell' }}
|
{{ 'Shell' }}
|
||||||
{% when 'st', 'squeak' %}
|
{% when 'st', 'squeak' %}
|
||||||
{{ 'Smalltalk' }}
|
{{ 'Smalltalk' }}
|
||||||
{% when 'tex'%}
|
{% when 'tex' %}
|
||||||
{{ 'TeX' }}
|
{{ 'TeX' }}
|
||||||
{% when 'latex' %}
|
{% when 'latex' %}
|
||||||
{{ 'LaTex' }}
|
{{ 'LaTeX' }}
|
||||||
{% when 'ts', 'typescript' %}
|
{% when 'ts', 'typescript' %}
|
||||||
{{ 'TypeScript' }}
|
{{ 'TypeScript' }}
|
||||||
{% when 'vb', 'visualbasic' %}
|
{% when 'vb', 'visualbasic' %}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
{%- comment -%} Add media resources subpath prefix {%- endcomment -%}
|
{%- comment -%} Add media resources subpath prefix {%- endcomment -%}
|
||||||
{% assign url = include.subpath | default: '' | append: '/' | append: url %}
|
{% assign url = include.subpath | default: '' | append: '/' | append: url %}
|
||||||
|
|
||||||
{%- comment -%} Prepend CND URL {%- endcomment -%}
|
{%- comment -%} Prepend CDN URL {%- endcomment -%}
|
||||||
{% if site.cdn %}
|
{% if site.cdn %}
|
||||||
{% assign url = site.cdn | append: '/' | append: url %}
|
{% assign url = site.cdn | append: '/' | append: url %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -1,24 +1,28 @@
|
|||||||
<aside
|
<aside
|
||||||
id="notification"
|
id="notification"
|
||||||
class="toast"
|
class="toast w-auto rounded-5 text-nowrap"
|
||||||
role="alert"
|
role="alert"
|
||||||
aria-live="assertive"
|
aria-live="assertive"
|
||||||
aria-atomic="true"
|
aria-atomic="true"
|
||||||
data-bs-animation="true"
|
data-bs-animation="true"
|
||||||
data-bs-autohide="false"
|
data-bs-autohide="false"
|
||||||
>
|
>
|
||||||
<div class="toast-header">
|
<div class="d-flex align-items-center">
|
||||||
|
<div class="toast-body ps-3">
|
||||||
|
{{- site.data.locales[include.lang].notification.update_found -}}
|
||||||
|
</div>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="btn-close ms-auto"
|
class="btn btn-primary btn-sm rounded-2 py-0"
|
||||||
|
aria-label="Update"
|
||||||
|
>
|
||||||
|
{{- site.data.locales[include.lang].notification.update -}}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="btn-close mx-3 ms-2"
|
||||||
data-bs-dismiss="toast"
|
data-bs-dismiss="toast"
|
||||||
aria-label="Close"
|
aria-label="Close"
|
||||||
></button>
|
></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="toast-body text-center pt-0">
|
|
||||||
<p class="px-2 mb-3">{{ site.data.locales[include.lang].notification.update_found }}</p>
|
|
||||||
<button type="button" class="btn btn-primary" aria-label="Update">
|
|
||||||
{{ site.data.locales[include.lang].notification.update }}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</aside>
|
</aside>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
fetch(url)
|
fetch(url)
|
||||||
.then((response) => response.json())
|
.then((response) => response.json())
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
const count = data.count.replace(/\s/g, '');
|
const count = data.count.replace(/\D/g, '');
|
||||||
pv.innerText = new Intl.NumberFormat().format(count);
|
pv.innerText = new Intl.NumberFormat().format(count);
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
{%- comment -%}
|
|
||||||
Get post description or generate it from the post content.
|
|
||||||
{%- endcomment -%}
|
|
||||||
|
|
||||||
{%- assign max_length = include.max_length | default: 200 -%}
|
|
||||||
|
|
||||||
{%- capture description -%}
|
|
||||||
{%- if post.description -%}
|
|
||||||
{{- post.description -}}
|
|
||||||
{%- else -%}
|
|
||||||
{% comment %}
|
|
||||||
Remove the line number of the code snippet.
|
|
||||||
{% endcomment %}
|
|
||||||
{% assign content = post.content %}
|
|
||||||
|
|
||||||
{% if content contains '<td class="rouge-gutter gl"><pre class="lineno">' %}
|
|
||||||
{% assign content = content | replace: '<td class="rouge-gutter gl"><pre class="lineno">', '<!-- <td class="rouge-gutter gl"><pre class="lineno">'%}
|
|
||||||
{% assign content = content | replace: '</td><td class="rouge-code">', '</td> --><td class="rouge-code">' %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{{- content | markdownify | strip_html | newline_to_br | replace: '<br />', ' ' | strip_newlines -}}
|
|
||||||
{%- endif -%}
|
|
||||||
{%- endcapture -%}
|
|
||||||
|
|
||||||
{{- description | strip | truncate: max_length | escape -}}
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<!-- Link to edit the post to contribute. -->
|
||||||
|
|
||||||
|
{% assign enabled = site.actions.edit_post.enabled %}
|
||||||
|
{% assign url = site.actions.edit_post.url %}
|
||||||
|
{% assign static_url = site.actions.edit_post.static_url %}
|
||||||
|
|
||||||
|
{% unless static_url %}
|
||||||
|
{% assign url = url | append: '/' | append: page.path %}
|
||||||
|
{% endunless %}
|
||||||
|
|
||||||
|
{% if enabled %}
|
||||||
|
<div class="post-edit">
|
||||||
|
{% assign edit = site.data.locales[include.lang].post.edit %}
|
||||||
|
<a
|
||||||
|
href="{{ url }}"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener"
|
||||||
|
>
|
||||||
|
<i class="fa fa-pen fa-fw me-1"></i>
|
||||||
|
<span>{{ edit }}</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<!-- The paginator for post list on HomgPage. -->
|
<!-- The paginator for post list on HomePage. -->
|
||||||
|
|
||||||
<nav aria-label="Page Navigation">
|
<nav aria-label="Page Navigation">
|
||||||
<ul class="pagination align-items-center mt-4 mb-0">
|
<ul class="pagination align-items-center mt-4 mb-0">
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
{%- comment -%}
|
||||||
|
Get the post's description or body content.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
full_text: If true, return the full content. Default is false.
|
||||||
|
max_length: The maximum length of the returned content. Default is 200.
|
||||||
|
{%- endcomment -%}
|
||||||
|
|
||||||
|
{%- if post.description and include.full_text != true -%}
|
||||||
|
{{- post.description -}}
|
||||||
|
{%- else -%}
|
||||||
|
{%- comment -%} Remove the line numbers from the code snippet. {%- endcomment -%}
|
||||||
|
|
||||||
|
{%- assign content = post.content -%}
|
||||||
|
|
||||||
|
{%- if content contains '<td class="rouge-gutter gl"><pre class="lineno">' -%}
|
||||||
|
{%- assign content = content
|
||||||
|
| replace: '<td class="rouge-gutter gl"><pre class="lineno">',
|
||||||
|
'<!-- <td class="rouge-gutter gl"><pre class="lineno">'
|
||||||
|
-%}
|
||||||
|
{%- assign content = content | replace: '</td><td class="rouge-code">', '</td> --><td class="rouge-code">' -%}
|
||||||
|
{%- endif -%}
|
||||||
|
|
||||||
|
{%- assign content = content
|
||||||
|
| markdownify
|
||||||
|
| strip_html
|
||||||
|
| newline_to_br
|
||||||
|
| replace: '<br />', ' '
|
||||||
|
| strip_newlines
|
||||||
|
| strip
|
||||||
|
-%}
|
||||||
|
|
||||||
|
{%- unless include.full_text -%}
|
||||||
|
{%- assign max_length = include.max_length | default: 200 -%}
|
||||||
|
{%- assign content = content | truncate: max_length -%}
|
||||||
|
{%- endunless -%}
|
||||||
|
|
||||||
|
{{- content -}}
|
||||||
|
{%- endif -%}
|
||||||
@@ -163,7 +163,7 @@
|
|||||||
|
|
||||||
{% if page.layout == 'home' %}
|
{% if page.layout == 'home' %}
|
||||||
<!-- create the image wrapper -->
|
<!-- create the image wrapper -->
|
||||||
{% assign _wrapper_start = '<div class="preview-img ' | append: _class | append: '">' %}
|
{% assign _wrapper_start = '<div class="preview-img ' | append: _wrapper_class | append: '">' %}
|
||||||
|
|
||||||
{% assign _img_content = _img_content | append: _wrapper_start %}
|
{% assign _img_content = _img_content | append: _wrapper_start %}
|
||||||
{% assign _right = _right | prepend: '></div' %}
|
{% assign _right = _right | prepend: '></div' %}
|
||||||
@@ -173,7 +173,7 @@
|
|||||||
{% assign _parent = _right | slice: 1, 4 %}
|
{% assign _parent = _right | slice: 1, 4 %}
|
||||||
|
|
||||||
{% if _parent == '</a>' %}
|
{% if _parent == '</a>' %}
|
||||||
<!-- add class to exist <a> tag -->
|
<!-- add class to existing <a> tag -->
|
||||||
{% assign _size = _img_content | size | minus: 1 %}
|
{% assign _size = _img_content | size | minus: 1 %}
|
||||||
{% capture _class %}
|
{% capture _class %}
|
||||||
class="img-link{% unless _lqip %} shimmer{% endunless %}"
|
class="img-link{% unless _lqip %} shimmer{% endunless %}"
|
||||||
|
|||||||
@@ -82,7 +82,7 @@
|
|||||||
{% include datetime.html date=post.date lang=include.lang %}
|
{% include datetime.html date=post.date lang=include.lang %}
|
||||||
<h4 class="pt-0 my-2">{{ post.title }}</h4>
|
<h4 class="pt-0 my-2">{{ post.title }}</h4>
|
||||||
<div class="text-muted">
|
<div class="text-muted">
|
||||||
<p>{% include post-description.html %}</p>
|
<p>{% include post-summary.html %}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
+57
-7
@@ -40,11 +40,53 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div class="sidebar-bottom d-flex flex-wrap align-items-center w-100">
|
<div class="sidebar-bottom d-flex flex-wrap align-items-center w-100">
|
||||||
{% unless site.theme_mode %}
|
{% unless site.theme_mode == 'light' or site.theme_mode == 'dark' %}
|
||||||
<button type="button" class="btn btn-link nav-link" aria-label="Switch Mode" id="mode-toggle">
|
{%- capture icon_system -%}
|
||||||
<i class="fas fa-adjust"></i>
|
<i class="fa-solid fa-display" data-theme-mode="system"></i>
|
||||||
</button>
|
{%- endcapture -%}
|
||||||
|
|
||||||
|
{%- capture icon_light -%}
|
||||||
|
<i class="fa-regular fa-sun" data-theme-mode="light"></i>
|
||||||
|
{%- endcapture -%}
|
||||||
|
|
||||||
|
{%- capture icon_dark -%}
|
||||||
|
<i class="fa-regular fa-moon" data-theme-mode="dark"></i>
|
||||||
|
{%- endcapture -%}
|
||||||
|
|
||||||
|
<div class="btn-group dropup">
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="btn btn-link nav-link"
|
||||||
|
aria-label="Switch Mode"
|
||||||
|
id="mode-toggle"
|
||||||
|
data-bs-toggle="dropdown"
|
||||||
|
>
|
||||||
|
{{- icon_light -}}
|
||||||
|
{{- icon_dark -}}
|
||||||
|
{{- icon_system -}}
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu rounded-3 mb-1 p-1">
|
||||||
|
<li>
|
||||||
|
<button class="dropdown-item d-flex align-items-center" type="button" data-theme-mode="light">
|
||||||
|
{{- icon_light -}}
|
||||||
|
{{- site.data.locales[lang].theme.light -}}
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<button class="dropdown-item d-flex align-items-center" type="button" data-theme-mode="dark">
|
||||||
|
{{- icon_dark -}}
|
||||||
|
{{- site.data.locales[lang].theme.dark -}}
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<button class="dropdown-item d-flex align-items-center" type="button" data-theme-mode="system">
|
||||||
|
{{- icon_system -}}
|
||||||
|
{{- site.data.locales[lang].theme.system -}}
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
{% if site.data.contact.size > 0 %}
|
{% if site.data.contact.size > 0 %}
|
||||||
<span class="icon-border"></span>
|
<span class="icon-border"></span>
|
||||||
@@ -52,15 +94,23 @@
|
|||||||
{% endunless %}
|
{% endunless %}
|
||||||
|
|
||||||
{% for entry in site.data.contact %}
|
{% for entry in site.data.contact %}
|
||||||
|
{%- assign url = null -%}
|
||||||
|
|
||||||
{% case entry.type %}
|
{% case entry.type %}
|
||||||
{% when 'github', 'twitter' %}
|
{% when 'github', 'twitter' %}
|
||||||
|
{%- unless site[entry.type].username -%}
|
||||||
|
{%- continue -%}
|
||||||
|
{%- endunless -%}
|
||||||
{%- capture url -%}
|
{%- capture url -%}
|
||||||
https://{{ entry.type }}.com/{{ site[entry.type].username }}
|
https://{{ entry.type }}.com/{{ site[entry.type].username }}
|
||||||
{%- endcapture -%}
|
{%- endcapture -%}
|
||||||
{% when 'email' %}
|
{% when 'email' %}
|
||||||
{% assign email = site.social.email | split: '@' %}
|
{%- unless site.social.email -%}
|
||||||
|
{%- continue -%}
|
||||||
|
{%- endunless -%}
|
||||||
|
{%- assign email = site.social.email | split: '@' -%}
|
||||||
{%- capture url -%}
|
{%- capture url -%}
|
||||||
javascript:location.href = 'mailto:' + ['{{ email[0] }}','{{ email[1] }}'].join('@')
|
javascript:void(location.href = 'mailto:' + ['{{ email[0] }}','{{ email[1] }}'].join('@'))
|
||||||
{%- endcapture -%}
|
{%- endcapture -%}
|
||||||
{% when 'rss' %}
|
{% when 'rss' %}
|
||||||
{% assign url = '/feed.xml' | relative_url %}
|
{% assign url = '/feed.xml' | relative_url %}
|
||||||
|
|||||||
@@ -7,4 +7,4 @@ export { initToc } from './components/toc';
|
|||||||
export { loadMermaid } from './components/mermaid';
|
export { loadMermaid } from './components/mermaid';
|
||||||
export { modeWatcher } from './components/mode-toggle';
|
export { modeWatcher } from './components/mode-toggle';
|
||||||
export { back2top } from './components/back-to-top';
|
export { back2top } from './components/back-to-top';
|
||||||
export { loadTooptip } from './components/tooltip-loader';
|
export { loadTooltip } from './components/tooltip-loader';
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ const lightImages = '.popup:not(.dark)';
|
|||||||
const darkImages = '.popup:not(.light)';
|
const darkImages = '.popup:not(.light)';
|
||||||
let selector = lightImages;
|
let selector = lightImages;
|
||||||
|
|
||||||
function updateImages(current, reverse) {
|
function swapImages(current, reverse) {
|
||||||
if (selector === lightImages) {
|
if (selector === lightImages) {
|
||||||
selector = darkImages;
|
selector = darkImages;
|
||||||
} else {
|
} else {
|
||||||
@@ -19,7 +19,7 @@ function updateImages(current, reverse) {
|
|||||||
reverse = GLightbox({ selector: `${selector}` });
|
reverse = GLightbox({ selector: `${selector}` });
|
||||||
}
|
}
|
||||||
|
|
||||||
[current, reverse] = [reverse, current];
|
return [reverse, current];
|
||||||
}
|
}
|
||||||
|
|
||||||
export function imgPopup() {
|
export function imgPopup() {
|
||||||
@@ -32,18 +32,22 @@ export function imgPopup() {
|
|||||||
document.querySelector('.popup.dark') === null
|
document.querySelector('.popup.dark') === null
|
||||||
);
|
);
|
||||||
|
|
||||||
if (Theme.visualState === Theme.DARK) {
|
if (Theme.isDark) {
|
||||||
selector = darkImages;
|
selector = darkImages;
|
||||||
}
|
}
|
||||||
|
|
||||||
let current = GLightbox({ selector: `${selector}` });
|
let current = GLightbox({ selector: `${selector}` });
|
||||||
|
|
||||||
if (hasDualImages && Theme.switchable) {
|
if (hasDualImages && Theme.isToggleable) {
|
||||||
let reverse = null;
|
let reverse = null;
|
||||||
|
|
||||||
window.addEventListener('message', (event) => {
|
window.addEventListener('message', (event) => {
|
||||||
if (event.source === window && event.data && event.data.id === Theme.ID) {
|
if (
|
||||||
updateImages(current, reverse);
|
event.source === window &&
|
||||||
|
event.data &&
|
||||||
|
event.data.id === Theme.eventId
|
||||||
|
) {
|
||||||
|
[current, reverse] = swapImages(current, reverse);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,14 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
const MERMAID = 'mermaid';
|
const MERMAID = 'mermaid';
|
||||||
const themeMapper = Theme.getThemeMapper('default', 'dark');
|
const themeMap = Theme.newThemeMap('default', 'dark');
|
||||||
|
|
||||||
function refreshTheme(event) {
|
function refreshTheme(event) {
|
||||||
if (event.source === window && event.data && event.data.id === Theme.ID) {
|
if (
|
||||||
|
event.source === window &&
|
||||||
|
event.data &&
|
||||||
|
event.data.id === Theme.eventId
|
||||||
|
) {
|
||||||
// Re-render the SVG › <https://github.com/mermaid-js/mermaid/issues/311#issuecomment-332557344>
|
// Re-render the SVG › <https://github.com/mermaid-js/mermaid/issues/311#issuecomment-332557344>
|
||||||
const mermaidList = document.getElementsByClassName(MERMAID);
|
const mermaidList = document.getElementsByClassName(MERMAID);
|
||||||
|
|
||||||
@@ -16,7 +20,7 @@ function refreshTheme(event) {
|
|||||||
elem.removeAttribute('data-processed');
|
elem.removeAttribute('data-processed');
|
||||||
});
|
});
|
||||||
|
|
||||||
const newTheme = themeMapper[Theme.visualState];
|
const newTheme = themeMap[Theme.resolvedTheme];
|
||||||
|
|
||||||
mermaid.initialize({ theme: newTheme });
|
mermaid.initialize({ theme: newTheme });
|
||||||
mermaid.init(null, `.${MERMAID}`);
|
mermaid.init(null, `.${MERMAID}`);
|
||||||
@@ -43,7 +47,7 @@ export function loadMermaid() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const initTheme = themeMapper[Theme.visualState];
|
const initTheme = themeMap[Theme.resolvedTheme];
|
||||||
|
|
||||||
let mermaidConf = {
|
let mermaidConf = {
|
||||||
theme: initTheme
|
theme: initTheme
|
||||||
@@ -54,7 +58,7 @@ export function loadMermaid() {
|
|||||||
|
|
||||||
mermaid.initialize(mermaidConf);
|
mermaid.initialize(mermaidConf);
|
||||||
|
|
||||||
if (Theme.switchable) {
|
if (Theme.isToggleable) {
|
||||||
window.addEventListener('message', refreshTheme);
|
window.addEventListener('message', refreshTheme);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,46 @@
|
|||||||
/**
|
/**
|
||||||
* Add listener for theme mode toggle
|
* Sets up the mode toggle dropdown, allowing users to switch between light, dark, and system themes.
|
||||||
|
*
|
||||||
|
* Dependencies:
|
||||||
|
* - Theme (${JS_ROOT}/theme.js)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const $toggle = document.getElementById('mode-toggle');
|
import 'bootstrap/js/src/dropdown.js';
|
||||||
|
|
||||||
|
const ACTIVE_CLASS = 'active';
|
||||||
|
const dropdown = document.querySelector('#mode-toggle + .dropdown-menu');
|
||||||
|
const activeMode = Theme.isSystemTheme
|
||||||
|
? Theme.Mode.SYSTEM
|
||||||
|
: Theme.resolvedTheme;
|
||||||
|
|
||||||
export function modeWatcher() {
|
export function modeWatcher() {
|
||||||
if (!$toggle) {
|
if (!Theme.isToggleable) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$toggle.addEventListener('click', () => {
|
dropdown.querySelectorAll('.dropdown-item').forEach((option) => {
|
||||||
Theme.flip();
|
const mode = option.dataset.themeMode;
|
||||||
|
if (mode === activeMode) {
|
||||||
|
option.classList.add(ACTIVE_CLASS);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
dropdown.addEventListener('click', (event) => {
|
||||||
|
const current = event.target.closest('.dropdown-item');
|
||||||
|
|
||||||
|
if (!current) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const lastActive = dropdown.querySelector(`.${ACTIVE_CLASS}`);
|
||||||
|
|
||||||
|
if (lastActive === current) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
lastActive.classList.remove(ACTIVE_CLASS);
|
||||||
|
current.classList.add(ACTIVE_CLASS);
|
||||||
|
Theme.update(current.dataset.themeMode);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* This script make #search-result-wrapper switch to unload or shown automatically.
|
* This script makes #search-result-wrapper switch to unload or shown automatically.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const btnSbTrigger = document.getElementById('sidebar-trigger');
|
const btnSbTrigger = document.getElementById('sidebar-trigger');
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ export class TocMobile {
|
|||||||
static showPopup() {
|
static showPopup() {
|
||||||
this.lockScroll(true);
|
this.lockScroll(true);
|
||||||
$popup.showModal();
|
$popup.showModal();
|
||||||
|
$btnClose.blur();
|
||||||
const activeItem = $popup.querySelector('li.is-active-li');
|
const activeItem = $popup.querySelector('li.is-active-li');
|
||||||
activeItem.scrollIntoView({ block: 'center' });
|
activeItem.scrollIntoView({ block: 'center' });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import Tooltip from 'bootstrap/js/src/tooltip';
|
import Tooltip from 'bootstrap/js/src/tooltip';
|
||||||
|
|
||||||
export function loadTooptip() {
|
export function loadTooltip() {
|
||||||
const tooltipTriggerList = document.querySelectorAll(
|
const tooltipTriggerList = document.querySelectorAll(
|
||||||
'[data-bs-toggle="tooltip"]'
|
'[data-bs-toggle="tooltip"]'
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { back2top, loadTooptip, modeWatcher } from '../components';
|
import { back2top, loadTooltip, modeWatcher } from '../components';
|
||||||
|
|
||||||
export function basic() {
|
export function basic() {
|
||||||
modeWatcher();
|
modeWatcher();
|
||||||
back2top();
|
back2top();
|
||||||
loadTooptip();
|
loadTooltip();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ if ('serviceWorker' in navigator) {
|
|||||||
|
|
||||||
if (register) {
|
if (register) {
|
||||||
const swUrl = `${baseUrl}/sw.min.js`;
|
const swUrl = `${baseUrl}/sw.min.js`;
|
||||||
const notification = document.getElementById('notification');
|
const $notification = document.getElementById('notification');
|
||||||
const btnRefresh = notification.querySelector('.toast-body>button');
|
const $btnUpdate = $notification.querySelector('[aria-label="Update"]');
|
||||||
const popupWindow = Toast.getOrCreateInstance(notification);
|
const popupWindow = Toast.getOrCreateInstance($notification);
|
||||||
|
|
||||||
navigator.serviceWorker.register(swUrl).then((registration) => {
|
navigator.serviceWorker.register(swUrl).then((registration) => {
|
||||||
// Restore the update window that was last manually closed by the user
|
// Restore the update window that was last manually closed by the user
|
||||||
@@ -28,7 +28,7 @@ if ('serviceWorker' in navigator) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
btnRefresh.addEventListener('click', () => {
|
$btnUpdate.addEventListener('click', () => {
|
||||||
if (registration.waiting) {
|
if (registration.waiting) {
|
||||||
registration.waiting.postMessage('SKIP_WAITING');
|
registration.waiting.postMessage('SKIP_WAITING');
|
||||||
}
|
}
|
||||||
|
|||||||
+107
-89
@@ -1,135 +1,153 @@
|
|||||||
/**
|
/**
|
||||||
* Theme management class
|
* A utility class that manages the site's theme mode.
|
||||||
*
|
*
|
||||||
* To reduce flickering during page load, this script should be loaded synchronously.
|
* Concepts:
|
||||||
|
* - Mode: dark, light, or system. The latter follows the operating system's preference.
|
||||||
|
* - Theme: The actual theme applied to the DOM, either dark or light. Determined by the mode or system preference.
|
||||||
*/
|
*/
|
||||||
class Theme {
|
class Theme {
|
||||||
static #modeKey = 'mode';
|
/** @type {string} LocalStorage key for the selected theme mode. */
|
||||||
static #modeAttr = 'data-mode';
|
static #storageKey = 'theme';
|
||||||
static #darkMedia = window.matchMedia('(prefers-color-scheme: dark)');
|
|
||||||
static switchable = !document.documentElement.hasAttribute(this.#modeAttr);
|
|
||||||
|
|
||||||
static get DARK() {
|
static Mode = Object.freeze({
|
||||||
return 'dark';
|
DARK: 'dark',
|
||||||
|
LIGHT: 'light',
|
||||||
|
SYSTEM: 'system'
|
||||||
|
});
|
||||||
|
|
||||||
|
static #root = document.documentElement;
|
||||||
|
|
||||||
|
/** @type {MediaQueryList} System dark-mode preference query. */
|
||||||
|
static #mediaDark = window.matchMedia('(prefers-color-scheme: dark)');
|
||||||
|
|
||||||
|
/** @returns {string|null} The theme currently set on the DOM. */
|
||||||
|
static get #domTheme() {
|
||||||
|
return this.#root.dataset.bsTheme || null;
|
||||||
}
|
}
|
||||||
|
|
||||||
static get LIGHT() {
|
/** @returns {string|null} The theme stored on the client. */
|
||||||
return 'light';
|
static get #storedTheme() {
|
||||||
|
return localStorage.getItem(this.#storageKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @returns {string} The theme preferred by the operating system. */
|
||||||
|
static get #systemTheme() {
|
||||||
|
return this.#prefersDark ? this.Mode.DARK : this.Mode.LIGHT;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @returns {boolean} Whether the operating system prefers dark mode. */
|
||||||
|
static get #prefersDark() {
|
||||||
|
return this.#mediaDark.matches;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @returns {string} Theme mode identifier
|
* Applies a theme and optionally persists it as a user preference.
|
||||||
*/
|
|
||||||
static get ID() {
|
|
||||||
return 'theme-mode';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the current visual state of the theme.
|
|
||||||
*
|
*
|
||||||
* @returns {string} The current visual state, either the mode if it exists,
|
* @param {'light'|'dark'} theme
|
||||||
* or the system dark mode state ('dark' or 'light').
|
* @param {{ persist?: boolean, domPersist?: boolean }} [options]
|
||||||
|
* - `persist`: Whether the theme is persisted in localStorage.
|
||||||
|
* - `domPersist`: Whether the theme is persisted in data attributes on the DOM.
|
||||||
*/
|
*/
|
||||||
static get visualState() {
|
static #apply(theme, { persist = false, domPersist = false } = {}) {
|
||||||
if (this.#hasMode) {
|
this.#root.dataset.bsTheme = theme;
|
||||||
return this.#mode;
|
|
||||||
} else {
|
if (persist) {
|
||||||
return this.#sysDark ? this.DARK : this.LIGHT;
|
localStorage.setItem(this.#storageKey, theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (domPersist || persist) {
|
||||||
|
this.#root.toggleAttribute('data-theme-persisted', true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static get #mode() {
|
/** Removes the stored user preference. */
|
||||||
return (
|
static #clearStorage() {
|
||||||
sessionStorage.getItem(this.#modeKey) ||
|
localStorage.removeItem(this.#storageKey);
|
||||||
document.documentElement.getAttribute(this.#modeAttr)
|
this.#root.toggleAttribute('data-theme-persisted', false);
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static get #isDarkMode() {
|
/** Broadcasts a theme change event to dependent modules. */
|
||||||
return this.#mode === this.DARK;
|
static #notify() {
|
||||||
|
window.postMessage({ id: this.eventId }, '*');
|
||||||
}
|
}
|
||||||
|
|
||||||
static get #hasMode() {
|
/** @type {boolean} Whether the current page allows theme toggling. */
|
||||||
return this.#mode !== null;
|
static isToggleable = this.#domTheme === null;
|
||||||
|
|
||||||
|
static eventId = 'theme-updated';
|
||||||
|
|
||||||
|
/** @returns {string} Resolved theme, falling back to the system preference. */
|
||||||
|
static get resolvedTheme() {
|
||||||
|
return this.#storedTheme || this.#systemTheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
static get #sysDark() {
|
/** @returns {boolean} Whether the theme is determined by the system preference. */
|
||||||
return this.#darkMedia.matches;
|
static get isSystemTheme() {
|
||||||
|
return this.#storedTheme === null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @returns {boolean} Whether the resolved theme is dark. */
|
||||||
|
static get isDark() {
|
||||||
|
return this.resolvedTheme === this.Mode.DARK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Maps theme modes to provided values
|
* Creates a mode-indexed value map.
|
||||||
* @param {string} light Value for light mode
|
*
|
||||||
* @param {string} dark Value for dark mode
|
* @template T
|
||||||
* @returns {Object} Mapped values
|
* @param {T} light Value for light mode.
|
||||||
|
* @param {T} dark Value for dark mode.
|
||||||
|
* @returns {{ light: T, dark: T }}
|
||||||
*/
|
*/
|
||||||
static getThemeMapper(light, dark) {
|
static newThemeMap(light, dark) {
|
||||||
return {
|
return {
|
||||||
[this.LIGHT]: light,
|
[this.Mode.LIGHT]: light,
|
||||||
[this.DARK]: dark
|
[this.Mode.DARK]: dark
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** Initializes the theme from the stored value or system preference. */
|
||||||
* Initializes the theme based on system preferences or stored mode
|
|
||||||
*/
|
|
||||||
static init() {
|
static init() {
|
||||||
if (!this.switchable) {
|
if (!this.isToggleable) {
|
||||||
|
this.#clearStorage();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.#darkMedia.addEventListener('change', () => {
|
const storedTheme = this.#storedTheme;
|
||||||
const lastMode = this.#mode;
|
|
||||||
this.#clearMode();
|
|
||||||
|
|
||||||
if (lastMode !== this.visualState) {
|
if (storedTheme) {
|
||||||
this.#notify();
|
this.#apply(storedTheme, { domPersist: true });
|
||||||
|
} else {
|
||||||
|
this.#apply(this.#systemTheme);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.#mediaDark.addEventListener('change', () => {
|
||||||
|
if (this.#storedTheme) {
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.#apply(this.#systemTheme);
|
||||||
|
this.#notify();
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!this.#hasMode) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.#isDarkMode) {
|
|
||||||
this.#setDark();
|
|
||||||
} else {
|
|
||||||
this.#setLight();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flips the current theme mode
|
* Updates the theme by the specified mode.
|
||||||
|
*
|
||||||
|
* @param {'light'|'dark'|'system'} mode
|
||||||
*/
|
*/
|
||||||
static flip() {
|
static update(mode) {
|
||||||
if (this.#hasMode) {
|
const newTheme = mode === this.Mode.SYSTEM ? this.#systemTheme : mode;
|
||||||
this.#clearMode();
|
|
||||||
} else {
|
if (newTheme !== this.resolvedTheme) {
|
||||||
this.#sysDark ? this.#setLight() : this.#setDark();
|
this.#notify();
|
||||||
}
|
}
|
||||||
this.#notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
static #setDark() {
|
this.#apply(newTheme, { persist: mode !== this.Mode.SYSTEM });
|
||||||
document.documentElement.setAttribute(this.#modeAttr, this.DARK);
|
|
||||||
sessionStorage.setItem(this.#modeKey, this.DARK);
|
|
||||||
}
|
|
||||||
|
|
||||||
static #setLight() {
|
if (mode === this.Mode.SYSTEM) {
|
||||||
document.documentElement.setAttribute(this.#modeAttr, this.LIGHT);
|
this.#clearStorage();
|
||||||
sessionStorage.setItem(this.#modeKey, this.LIGHT);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
static #clearMode() {
|
|
||||||
document.documentElement.removeAttribute(this.#modeAttr);
|
|
||||||
sessionStorage.removeItem(this.#modeKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Notifies other plugins that the theme mode has changed
|
|
||||||
*/
|
|
||||||
static #notify() {
|
|
||||||
window.postMessage({ id: this.ID }, '*');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,13 +8,14 @@ layout: compress
|
|||||||
|
|
||||||
{% include lang.html %}
|
{% include lang.html %}
|
||||||
|
|
||||||
{% if site.theme_mode %}
|
|
||||||
{% capture prefer_mode %}data-mode="{{ site.theme_mode }}"{% endcapture %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<!-- `site.alt_lang` can specify a language different from the UI -->
|
<!-- `site.alt_lang` can specify a language different from the UI -->
|
||||||
<html lang="{{ page.lang | default: site.alt_lang | default: site.lang }}" {{ prefer_mode }}>
|
<html
|
||||||
{% include head.html %}
|
lang="{{ page.lang | default: site.alt_lang | default: site.lang }}"
|
||||||
|
{%- if site.theme_mode == 'light' or site.theme_mode == 'dark' -%}
|
||||||
|
data-bs-theme="{{ site.theme_mode }}"
|
||||||
|
{%- endif -%}
|
||||||
|
>
|
||||||
|
{% include head.html lang=lang %}
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
{% include sidebar.html lang=lang %}
|
{% include sidebar.html lang=lang %}
|
||||||
@@ -25,7 +26,7 @@ layout: compress
|
|||||||
|
|
||||||
<div class="row flex-grow-1">
|
<div class="row flex-grow-1">
|
||||||
<main aria-label="Main Content" class="col-12 col-lg-11 col-xl-9 px-md-4">
|
<main aria-label="Main Content" class="col-12 col-lg-11 col-xl-9 px-md-4">
|
||||||
{% if layout.refactor or layout.layout == 'default' %}
|
{% if layout.layout == 'default' %}
|
||||||
{% include refactor-content.html content=content lang=lang %}
|
{% include refactor-content.html content=content lang=lang %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ content }}
|
{{ content }}
|
||||||
|
|||||||
+30
-12
@@ -1,6 +1,5 @@
|
|||||||
---
|
---
|
||||||
layout: default
|
layout: default
|
||||||
refactor: true
|
|
||||||
---
|
---
|
||||||
|
|
||||||
{% include lang.html %}
|
{% include lang.html %}
|
||||||
@@ -55,20 +54,39 @@ refactor: true
|
|||||||
|
|
||||||
{% if post.image %}
|
{% if post.image %}
|
||||||
{% assign src = post.image.path | default: post.image %}
|
{% assign src = post.image.path | default: post.image %}
|
||||||
{% unless src contains '//' %}
|
|
||||||
{% assign src = post.media_subpath | append: '/' | append: src | replace: '//', '/' %}
|
{% if post.media_subpath %}
|
||||||
{% endunless %}
|
{% unless src contains '://' %}
|
||||||
|
{% assign src = post.media_subpath
|
||||||
|
| append: '/'
|
||||||
|
| append: src
|
||||||
|
| replace: '///', '/'
|
||||||
|
| replace: '//', '/'
|
||||||
|
%}
|
||||||
|
{% endunless %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if post.image.lqip %}
|
||||||
|
{% assign lqip = post.image.lqip %}
|
||||||
|
|
||||||
|
{% if post.media_subpath %}
|
||||||
|
{% unless lqip contains 'data:' %}
|
||||||
|
{% assign lqip = post.media_subpath
|
||||||
|
| append: '/'
|
||||||
|
| append: lqip
|
||||||
|
| replace: '///', '/'
|
||||||
|
| replace: '//', '/'
|
||||||
|
%}
|
||||||
|
{% endunless %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign lqip_attr = 'lqip="' | append: lqip | append: '"' %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% assign alt = post.image.alt | xml_escape | default: 'Preview Image' %}
|
{% assign alt = post.image.alt | xml_escape | default: 'Preview Image' %}
|
||||||
|
|
||||||
{% assign lqip = null %}
|
|
||||||
|
|
||||||
{% if post.image.lqip %}
|
|
||||||
{% capture lqip %}lqip="{{ post.image.lqip }}"{% endcapture %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div class="col-md-5">
|
<div class="col-md-5">
|
||||||
<img src="{{ src }}" alt="{{ alt }}" {{ lqip }}>
|
<img src="{{ src }}" alt="{{ alt }}" {{ lqip_attr }}>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% assign card_body_col = '7' %}
|
{% assign card_body_col = '7' %}
|
||||||
@@ -79,7 +97,7 @@ refactor: true
|
|||||||
<h1 class="card-title my-2 mt-md-0">{{ post.title }}</h1>
|
<h1 class="card-title my-2 mt-md-0">{{ post.title }}</h1>
|
||||||
|
|
||||||
<div class="card-text content mt-0 mb-3">
|
<div class="card-text content mt-0 mb-3">
|
||||||
<p>{% include post-description.html %}</p>
|
<p>{% include post-summary.html %}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="post-meta flex-grow-1 d-flex align-items-end">
|
<div class="post-meta flex-grow-1 d-flex align-items-end">
|
||||||
|
|||||||
+16
-14
@@ -1,6 +1,5 @@
|
|||||||
---
|
---
|
||||||
layout: default
|
layout: default
|
||||||
refactor: true
|
|
||||||
panel_includes:
|
panel_includes:
|
||||||
- toc
|
- toc
|
||||||
tail_includes:
|
tail_includes:
|
||||||
@@ -114,9 +113,7 @@ script_includes:
|
|||||||
<dialog id="toc-popup" class="p-0">
|
<dialog id="toc-popup" class="p-0">
|
||||||
<div class="header d-flex flex-row align-items-center justify-content-between">
|
<div class="header d-flex flex-row align-items-center justify-content-between">
|
||||||
<div class="label text-truncate py-2 ms-4">{{- page.title -}}</div>
|
<div class="label text-truncate py-2 ms-4">{{- page.title -}}</div>
|
||||||
<button id="toc-popup-close" type="button" class="btn mx-1 my-1 opacity-75">
|
<button id="toc-popup-close" type="button" class="btn-close btn-sm mx-3" aria-label="Close"></button>
|
||||||
<i class="fas fa-close"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="toc-popup-content" class="px-4 py-3 pb-4"></div>
|
<div id="toc-popup-content" class="px-4 py-3 pb-4"></div>
|
||||||
</dialog>
|
</dialog>
|
||||||
@@ -127,16 +124,21 @@ script_includes:
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="post-tail-wrapper text-muted">
|
<div class="post-tail-wrapper text-muted">
|
||||||
<!-- categories -->
|
<div class="d-flex justify-content-between align-items-center gap-3 mb-3">
|
||||||
{% if page.categories.size > 0 %}
|
<!-- categories -->
|
||||||
<div class="post-meta mb-3">
|
{% if page.categories.size > 0 %}
|
||||||
<i class="far fa-folder-open fa-fw me-1"></i>
|
<div class="post-meta">
|
||||||
{% for category in page.categories %}
|
<i class="far fa-folder-open fa-fw me-1"></i>
|
||||||
<a href="{{ site.baseurl }}/categories/{{ category | slugify | url_encode }}/">{{ category }}</a>
|
{% for category in page.categories %}
|
||||||
{%- unless forloop.last -%},{%- endunless -%}
|
<a href="{{ site.baseurl }}/categories/{{ category | slugify | url_encode }}/">{{ category }}</a>
|
||||||
{% endfor %}
|
{%- unless forloop.last -%},{%- endunless -%}
|
||||||
</div>
|
{% endfor %}
|
||||||
{% endif %}
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- "Edit this post" link -->
|
||||||
|
{% include post-edit.html lang=lang %}
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- tags -->
|
<!-- tags -->
|
||||||
{% if page.tags.size > 0 %}
|
{% if page.tags.size > 0 %}
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ Moon
|
|||||||
|
|
||||||
## Footnote
|
## Footnote
|
||||||
|
|
||||||
Click the hook will locate the footnote[^footnote], and here is another footnote[^fn-nth-2].
|
Clicking the hook will locate the footnote[^footnote], and here is another footnote[^fn-nth-2].
|
||||||
|
|
||||||
## Inline code
|
## Inline code
|
||||||
|
|
||||||
@@ -113,7 +113,8 @@ Here is the `/path/to/the/file.extend`{: .filepath}.
|
|||||||
|
|
||||||
### Common
|
### Common
|
||||||
|
|
||||||
```text
|
<!-- markdownlint-disable-next-line MD040 -->
|
||||||
|
```
|
||||||
This is a common code snippet, without syntax highlight and line number.
|
This is a common code snippet, without syntax highlight and line number.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ tags: [writing]
|
|||||||
render_with_liquid: false
|
render_with_liquid: false
|
||||||
---
|
---
|
||||||
|
|
||||||
This tutorial will guide you how to write a post in the _Chirpy_ template, and it's worth reading even if you've used Jekyll before, as many features require specific variables to be set.
|
This tutorial will guide you on how to write a post in the _Chirpy_ template, and it's worth reading even if you've used Jekyll before, as many features require specific variables to be set.
|
||||||
|
|
||||||
## Naming and Path
|
## Naming and Path
|
||||||
|
|
||||||
@@ -173,7 +173,7 @@ By default, the image is centered, but you can specify the position by using one
|
|||||||
|
|
||||||
- **Normal position**
|
- **Normal position**
|
||||||
|
|
||||||
Image will be left aligned in below sample:
|
The image will be left aligned in the below sample:
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
{: .normal }
|
{: .normal }
|
||||||
@@ -256,11 +256,9 @@ For normal images:
|
|||||||
```
|
```
|
||||||
{: .nolineno }
|
{: .nolineno }
|
||||||
|
|
||||||
### Video
|
### Social Media Platforms
|
||||||
|
|
||||||
#### Social Media Platform
|
You can embed video/audio from social media platforms with the following syntax:
|
||||||
|
|
||||||
You can embed videos from social media platforms with the following syntax:
|
|
||||||
|
|
||||||
```liquid
|
```liquid
|
||||||
{% include embed/{Platform}.html id='{ID}' %}
|
{% include embed/{Platform}.html id='{ID}' %}
|
||||||
@@ -268,15 +266,21 @@ You can embed videos from social media platforms with the following syntax:
|
|||||||
|
|
||||||
Where `Platform` is the lowercase of the platform name, and `ID` is the video ID.
|
Where `Platform` is the lowercase of the platform name, and `ID` is the video ID.
|
||||||
|
|
||||||
The following table shows how to get the two parameters we need in a given video URL, and you can also know the currently supported video platforms.
|
The following table shows how to get the two parameters we need in a given video/audio URL, and you can also know the currently supported video platforms.
|
||||||
|
|
||||||
| Video URL | Platform | ID |
|
| Video URL | Platform | ID |
|
||||||
| -------------------------------------------------------------------------------------------------- | ---------- | :------------- |
|
| -------------------------------------------------------------------------------------------------------------------------- | ---------- | :----------------------- |
|
||||||
| [https://www.**youtube**.com/watch?v=**H-B46URT4mg**](https://www.youtube.com/watch?v=H-B46URT4mg) | `youtube` | `H-B46URT4mg` |
|
| [https://www.**youtube**.com/watch?v=**H-B46URT4mg**](https://www.youtube.com/watch?v=H-B46URT4mg) | `youtube` | `H-B46URT4mg` |
|
||||||
| [https://www.**twitch**.tv/videos/**1634779211**](https://www.twitch.tv/videos/1634779211) | `twitch` | `1634779211` |
|
| [https://www.**twitch**.tv/videos/**1634779211**](https://www.twitch.tv/videos/1634779211) | `twitch` | `1634779211` |
|
||||||
| [https://www.**bilibili**.com/video/**BV1Q44y1B7Wf**](https://www.bilibili.com/video/BV1Q44y1B7Wf) | `bilibili` | `BV1Q44y1B7Wf` |
|
| [https://www.**bilibili**.com/video/**BV1Q44y1B7Wf**](https://www.bilibili.com/video/BV1Q44y1B7Wf) | `bilibili` | `BV1Q44y1B7Wf` |
|
||||||
|
| [https://www.open.**spotify**.com/track/**3OuMIIFP5TxM8tLXMWYPGV**](https://open.spotify.com/track/3OuMIIFP5TxM8tLXMWYPGV) | `spotify` | `3OuMIIFP5TxM8tLXMWYPGV` |
|
||||||
|
|
||||||
#### Video Files
|
Spotify supports some additional parameters:
|
||||||
|
|
||||||
|
- `compact` - to display a compact player instead (ex. `{% include embed/spotify.html id='3OuMIIFP5TxM8tLXMWYPGV' compact=1 %}`);
|
||||||
|
- `dark` - to force dark theme (ex. `{% include embed/spotify.html id='3OuMIIFP5TxM8tLXMWYPGV' dark=1 %}`).
|
||||||
|
|
||||||
|
### Video Files
|
||||||
|
|
||||||
If you want to embed a video file directly, use the following syntax:
|
If you want to embed a video file directly, use the following syntax:
|
||||||
|
|
||||||
@@ -289,7 +293,7 @@ Where `URL` is a URL to a video file e.g. `/path/to/sample/video.mp4`.
|
|||||||
You can also specify additional attributes for the embedded video file. Here is a full list of attributes allowed.
|
You can also specify additional attributes for the embedded video file. Here is a full list of attributes allowed.
|
||||||
|
|
||||||
- `poster='/path/to/poster.png'` — poster image for a video that is shown while video is downloading
|
- `poster='/path/to/poster.png'` — poster image for a video that is shown while video is downloading
|
||||||
- `title='Text'` — title for a video that appears below the video and looks same as for images
|
- `title='Text'` — title for a video that appears below the video and looks the same as for images
|
||||||
- `autoplay=true` — video automatically begins to play back as soon as it can
|
- `autoplay=true` — video automatically begins to play back as soon as it can
|
||||||
- `loop=true` — automatically seek back to the start upon reaching the end of the video
|
- `loop=true` — automatically seek back to the start upon reaching the end of the video
|
||||||
- `muted=true` — audio will be initially silenced
|
- `muted=true` — audio will be initially silenced
|
||||||
@@ -310,7 +314,7 @@ Consider an example using all of the above:
|
|||||||
%}
|
%}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Audios
|
### Audio Files
|
||||||
|
|
||||||
If you want to embed an audio file directly, use the following syntax:
|
If you want to embed an audio file directly, use the following syntax:
|
||||||
|
|
||||||
@@ -322,7 +326,7 @@ Where `URL` is a URL to an audio file e.g. `/path/to/audio.mp3`.
|
|||||||
|
|
||||||
You can also specify additional attributes for the embedded audio file. Here is a full list of attributes allowed.
|
You can also specify additional attributes for the embedded audio file. Here is a full list of attributes allowed.
|
||||||
|
|
||||||
- `title='Text'` — title for an audio that appears below the audio and looks same as for images
|
- `title='Text'` — title for an audio that appears below the audio and looks the same as for images
|
||||||
- `types` — specify the extensions of additional audio formats separated by `|`. Ensure these files exist in the same directory as your primary audio file.
|
- `types` — specify the extensions of additional audio formats separated by `|`. Ensure these files exist in the same directory as your primary audio file.
|
||||||
|
|
||||||
Consider an example using all of the above:
|
Consider an example using all of the above:
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ For Unix-like systems, you can set up the environment natively for optimal perfo
|
|||||||
1. Follow the [Jekyll installation guide](https://jekyllrb.com/docs/installation/) to install Jekyll and ensure [Git](https://git-scm.com/) is installed.
|
1. Follow the [Jekyll installation guide](https://jekyllrb.com/docs/installation/) to install Jekyll and ensure [Git](https://git-scm.com/) is installed.
|
||||||
2. Clone your repository to your local machine.
|
2. Clone your repository to your local machine.
|
||||||
3. If you forked the theme, install [Node.js][nodejs] and run `bash tools/init.sh` in the root directory to initialize the repository.
|
3. If you forked the theme, install [Node.js][nodejs] and run `bash tools/init.sh` in the root directory to initialize the repository.
|
||||||
4. Run command `bundle` in the root of your repository to install the dependencies.
|
4. Run command `bundle install` in the root of your repository to install the dependencies.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
@@ -105,7 +105,7 @@ Before deploying, check the `_config.yml`{: .filepath} file and ensure the `url`
|
|||||||
|
|
||||||
Now you can choose _ONE_ of the following methods to deploy your Jekyll site.
|
Now you can choose _ONE_ of the following methods to deploy your Jekyll site.
|
||||||
|
|
||||||
### Deploy Using Github Actions
|
### Deploy Using GitHub Actions
|
||||||
|
|
||||||
Prepare the following:
|
Prepare the following:
|
||||||
|
|
||||||
|
|||||||
@@ -10,25 +10,26 @@ The [favicons](https://www.favicon-generator.org/about/) of [**Chirpy**](https:/
|
|||||||
|
|
||||||
## Generate the favicon
|
## Generate the favicon
|
||||||
|
|
||||||
Prepare a square image (PNG, JPG, or SVG) with a size of 512x512 or more, and then go to the online tool [**Real Favicon Generator**](https://realfavicongenerator.net/) and click the button <kbd>Select your Favicon image</kbd> to upload your image file.
|
Prepare a square image (PNG, JPG, or SVG) with a size of 512x512 or more, and then go to the online tool [**Real Favicon Generator**](https://realfavicongenerator.net/) and click the button <kbd>Pick your favicon image</kbd> to upload your image file.
|
||||||
|
|
||||||
In the next step, the webpage will show all usage scenarios. You can keep the default options, scroll to the bottom of the page, and click the button <kbd>Generate your Favicons and HTML code</kbd> to generate the favicon.
|
In the next step, the webpage will show all usage scenarios. You can keep the default options, scroll to the bottom of the page, and click the button <kbd>Next →</kbd> to generate the favicon.
|
||||||
|
|
||||||
## Download & Replace
|
## Download & Replace
|
||||||
|
|
||||||
Download the generated package, unzip and delete the following two from the extracted files:
|
Download the generated package, unzip and delete the following file(s) from the extracted files:
|
||||||
|
|
||||||
- `browserconfig.xml`{: .filepath}
|
|
||||||
- `site.webmanifest`{: .filepath}
|
- `site.webmanifest`{: .filepath}
|
||||||
|
|
||||||
And then copy the remaining image files (`.PNG`{: .filepath} and `.ICO`{: .filepath}) to cover the original files in the directory `assets/img/favicons/`{: .filepath} of your Jekyll site. If your Jekyll site doesn't have this directory yet, just create one.
|
And then copy the remaining image files (`.PNG`{: .filepath}, `.ICO`{: .filepath} and `.SVG`{: .filepath}) to cover the original files in the directory `assets/img/favicons/`{: .filepath} of your Jekyll site. If your Jekyll site doesn't have this directory yet, just create one.
|
||||||
|
|
||||||
The following table will help you understand the changes to the favicon files:
|
The following table will help you understand the changes to the favicon files:
|
||||||
|
|
||||||
| File(s) | From Online Tool | From Chirpy |
|
| File(s) | From Online Tool | From Chirpy |
|
||||||
|---------------------|:---------------------------------:|:-----------:|
|
| ------- | :--------------: | :---------: |
|
||||||
| `*.PNG` | ✓ | ✗ |
|
| `*.PNG` | ✓ | ✗ |
|
||||||
| `*.ICO` | ✓ | ✗ |
|
| `*.ICO` | ✓ | ✗ |
|
||||||
|
| `*.SVG` | ✓ | ✗ |
|
||||||
|
|
||||||
|
|
||||||
<!-- markdownlint-disable-next-line -->
|
<!-- markdownlint-disable-next-line -->
|
||||||
> ✓ means keep, ✗ means delete.
|
> ✓ means keep, ✗ means delete.
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
@mixin color-scheme($mode) {
|
||||||
|
@media (prefers-color-scheme: #{$mode}) {
|
||||||
|
@content;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@mixin text-ellipsis {
|
@mixin text-ellipsis {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
|||||||
@@ -28,3 +28,9 @@ $code-icon-width: 1.75rem !default;
|
|||||||
|
|
||||||
$font-family-base: 'Source Sans Pro', 'Microsoft Yahei', sans-serif !default;
|
$font-family-base: 'Source Sans Pro', 'Microsoft Yahei', sans-serif !default;
|
||||||
$font-family-heading: Lato, 'Microsoft Yahei', sans-serif !default;
|
$font-family-heading: Lato, 'Microsoft Yahei', sans-serif !default;
|
||||||
|
|
||||||
|
/* Theme mode settings */
|
||||||
|
|
||||||
|
$theme-attr: 'data-bs-theme'; /* the attribute used to indicate the resolved theme */
|
||||||
|
$theme-options: light, dark;
|
||||||
|
$theme: null !default; /* set by Jekyll site configuration */
|
||||||
|
|||||||
+38
-23
@@ -1,3 +1,4 @@
|
|||||||
|
@use 'sass:list';
|
||||||
@use '../abstracts/variables' as v;
|
@use '../abstracts/variables' as v;
|
||||||
@use '../abstracts/breakpoints' as bp;
|
@use '../abstracts/breakpoints' as bp;
|
||||||
@use '../abstracts/mixins' as mx;
|
@use '../abstracts/mixins' as mx;
|
||||||
@@ -5,32 +6,36 @@
|
|||||||
@use '../themes/light';
|
@use '../themes/light';
|
||||||
@use '../themes/dark';
|
@use '../themes/dark';
|
||||||
|
|
||||||
:root {
|
$enable-dual: not list.index(v.$theme-options, v.$theme);
|
||||||
font-size: 16px;
|
$enable-light: v.$theme == light or $enable-dual;
|
||||||
|
$enable-dark: v.$theme == dark or $enable-dual;
|
||||||
|
|
||||||
|
@if $enable-light {
|
||||||
|
:root[#{v.$theme-attr}='light'] {
|
||||||
|
@include light.styles;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
html {
|
@if $enable-dark {
|
||||||
@media (prefers-color-scheme: light) {
|
:root[#{v.$theme-attr}='dark'] {
|
||||||
&:not([data-mode]),
|
@include dark.styles;
|
||||||
&[data-mode='light'] {
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $enable-dual {
|
||||||
|
:root:not([#{v.$theme-attr}]) {
|
||||||
|
@include mx.color-scheme(light) {
|
||||||
@include light.styles;
|
@include light.styles;
|
||||||
}
|
}
|
||||||
|
|
||||||
&[data-mode='dark'] {
|
@include mx.color-scheme(dark) {
|
||||||
@include dark.styles;
|
@include dark.styles;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
:root {
|
||||||
&:not([data-mode]),
|
font-size: 16px;
|
||||||
&[data-mode='dark'] {
|
|
||||||
@include dark.styles;
|
|
||||||
}
|
|
||||||
|
|
||||||
&[data-mode='light'] {
|
|
||||||
@include light.styles;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@include bp.lg {
|
@include bp.lg {
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
@@ -103,7 +108,7 @@ main {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background-color: var(--card-hovor-bg);
|
background-color: var(--card-hover-bg);
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: opacity 0.35s ease-in-out;
|
transition: opacity 0.35s ease-in-out;
|
||||||
}
|
}
|
||||||
@@ -314,7 +319,14 @@ main {
|
|||||||
|
|
||||||
.embed-audio {
|
.embed-audio {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: block;
|
|
||||||
|
&.file {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.spotify {
|
||||||
|
border-radius: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
@extend %img-caption;
|
@extend %img-caption;
|
||||||
}
|
}
|
||||||
@@ -349,7 +361,7 @@ main {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.disabled {
|
.disabled {
|
||||||
color: rgb(206, 196, 196);
|
color: rgb(206 196 196);
|
||||||
pointer-events: auto;
|
pointer-events: auto;
|
||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
}
|
}
|
||||||
@@ -362,7 +374,9 @@ main {
|
|||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
border-color: var(--input-focus-border-color) !important;
|
border-color: var(--input-focus-border-color) !important;
|
||||||
background: center !important;
|
background: center !important;
|
||||||
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
|
transition:
|
||||||
|
background-color 0.15s ease-in-out,
|
||||||
|
border-color 0.15s ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
.left {
|
.left {
|
||||||
@@ -384,8 +398,9 @@ main {
|
|||||||
|
|
||||||
/* MathJax */
|
/* MathJax */
|
||||||
mjx-container {
|
mjx-container {
|
||||||
overflow-y: hidden;
|
a {
|
||||||
min-width: auto !important;
|
display: inline-block;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (hover: hover) {
|
@media (hover: hover) {
|
||||||
|
|||||||
@@ -24,7 +24,6 @@
|
|||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
font-size: v.$code-font-size;
|
font-size: v.$code-font-size;
|
||||||
line-height: 1.4rem;
|
line-height: 1.4rem;
|
||||||
word-wrap: normal; /* Fixed Safari overflow-x */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
table {
|
table {
|
||||||
@@ -66,7 +65,7 @@ code {
|
|||||||
&.highlighter-rouge {
|
&.highlighter-rouge {
|
||||||
font-size: v.$code-font-size;
|
font-size: v.$code-font-size;
|
||||||
padding: 3px 5px;
|
padding: 3px 5px;
|
||||||
word-break: break-word;
|
overflow-wrap: break-word;
|
||||||
border-radius: v.$radius-sm;
|
border-radius: v.$radius-sm;
|
||||||
background-color: var(--inline-code-bg);
|
background-color: var(--inline-code-bg);
|
||||||
}
|
}
|
||||||
@@ -79,7 +78,7 @@ code {
|
|||||||
}
|
}
|
||||||
|
|
||||||
a > &.highlighter-rouge {
|
a > &.highlighter-rouge {
|
||||||
padding-bottom: 0; /* show link's underlinke */
|
padding-bottom: 0; /* show link's underline */
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,7 +137,8 @@ div[class^='language-'] {
|
|||||||
height: v.$code-dot-size;
|
height: v.$code-dot-size;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background-color: var(--code-header-muted-color);
|
background-color: var(--code-header-muted-color);
|
||||||
box-shadow: (v.$code-dot-size + v.$code-dot-gap) 0 0
|
box-shadow:
|
||||||
|
(v.$code-dot-size + v.$code-dot-gap) 0 0
|
||||||
var(--code-header-muted-color),
|
var(--code-header-muted-color),
|
||||||
(v.$code-dot-size + v.$code-dot-gap) * 2 0 0
|
(v.$code-dot-size + v.$code-dot-gap) * 2 0 0
|
||||||
var(--code-header-muted-color);
|
var(--code-header-muted-color);
|
||||||
@@ -219,8 +219,9 @@ div {
|
|||||||
@extend %rounded;
|
@extend %rounded;
|
||||||
|
|
||||||
border: 1px solid transparent;
|
border: 1px solid transparent;
|
||||||
height: v.$code-header-height;
|
height: 2rem;
|
||||||
width: v.$code-header-height;
|
width: 2rem;
|
||||||
|
margin-right: 0.125rem;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
background-color: inherit;
|
background-color: inherit;
|
||||||
|
|
||||||
@@ -234,6 +235,7 @@ div {
|
|||||||
}
|
}
|
||||||
|
|
||||||
i {
|
i {
|
||||||
|
font-size: 90%;
|
||||||
color: var(--clipboard-checked-color);
|
color: var(--clipboard-checked-color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -243,7 +245,7 @@ div {
|
|||||||
}
|
}
|
||||||
|
|
||||||
&:not([timeout]):hover {
|
&:not([timeout]):hover {
|
||||||
background-color: rgba(128, 128, 128, 0.37);
|
background-color: rgb(128 128 128 / 37%);
|
||||||
|
|
||||||
i {
|
i {
|
||||||
color: white;
|
color: white;
|
||||||
|
|||||||
@@ -26,9 +26,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
& {
|
font-size: 1rem + (5 - $i) * $size-factor;
|
||||||
font-size: 1rem + (5 - $i) * $size-factor;
|
|
||||||
}
|
|
||||||
} @else {
|
} @else {
|
||||||
font-size: 1.05rem;
|
font-size: 1.05rem;
|
||||||
}
|
}
|
||||||
@@ -238,7 +236,7 @@ main {
|
|||||||
border-spacing: 0;
|
border-spacing: 0;
|
||||||
|
|
||||||
thead {
|
thead {
|
||||||
border-bottom: solid 2px rgba(210, 215, 217, 0.75);
|
border-bottom: solid 2px rgb(210 215 217 / 75%);
|
||||||
|
|
||||||
th {
|
th {
|
||||||
@extend %table-cell;
|
@extend %table-cell;
|
||||||
|
|||||||
@@ -7,49 +7,41 @@
|
|||||||
@-webkit-keyframes popup {
|
@-webkit-keyframes popup {
|
||||||
from {
|
from {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
bottom: 0;
|
bottom: 10%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes popup {
|
@keyframes popup {
|
||||||
from {
|
from {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
bottom: 0;
|
bottom: 10%;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.toast-header {
|
|
||||||
background: none;
|
|
||||||
border-bottom: none;
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toast-body {
|
|
||||||
font-family: Lato, sans-serif;
|
|
||||||
line-height: 1.25rem;
|
|
||||||
|
|
||||||
button {
|
|
||||||
font-size: 90%;
|
|
||||||
min-width: 4rem;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.toast {
|
&.toast {
|
||||||
&.show {
|
&.show {
|
||||||
display: block;
|
|
||||||
min-width: 20rem;
|
|
||||||
border-radius: 0.5rem;
|
|
||||||
-webkit-backdrop-filter: blur(10px);
|
-webkit-backdrop-filter: blur(10px);
|
||||||
backdrop-filter: blur(10px);
|
backdrop-filter: blur(10px);
|
||||||
background-color: rgba(255, 255, 255, 0.5);
|
|
||||||
color: #1b1b1eba;
|
|
||||||
position: fixed;
|
position: fixed;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
bottom: 20%;
|
bottom: 30%;
|
||||||
transform: translateX(-50%);
|
transform: translateX(-50%);
|
||||||
-webkit-animation: popup 0.8s;
|
-webkit-animation: popup 0.8s;
|
||||||
animation: popup 0.8s;
|
animation: popup 0.8s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.toast-body {
|
||||||
|
line-height: 1.25rem;
|
||||||
|
font-family: v.$font-family-heading;
|
||||||
|
}
|
||||||
|
|
||||||
|
button[aria-label='Update'] {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-close {
|
||||||
|
font-size: 0.625rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,10 +93,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
> i {
|
font-size: 0.75rem;
|
||||||
font-size: 1.25rem;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:focus-visible {
|
&:focus-visible {
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ $sidebar-display: 'sidebar-display'; /* the attribute for sidebar display */
|
|||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
width: v.$sidebar-width;
|
width: v.$sidebar-width;
|
||||||
background: var(--sidebar-bg);
|
background: var(--sidebar-bg);
|
||||||
border-right: 1px solid var(--sidebar-border-color);
|
|
||||||
|
|
||||||
/* Hide scrollbar for IE, Edge and Firefox */
|
/* Hide scrollbar for IE, Edge and Firefox */
|
||||||
-ms-overflow-style: none; /* IE and Edge */
|
-ms-overflow-style: none; /* IE and Edge */
|
||||||
@@ -76,11 +75,12 @@ $sidebar-display: 'sidebar-display'; /* the attribute for sidebar display */
|
|||||||
}
|
}
|
||||||
|
|
||||||
.profile-wrapper {
|
.profile-wrapper {
|
||||||
@include mx.mt-mb(2.5rem);
|
|
||||||
@extend %clickable-transition;
|
@extend %clickable-transition;
|
||||||
|
|
||||||
padding-left: 2.5rem;
|
padding-left: 2.5rem;
|
||||||
padding-right: 1.25rem;
|
padding-right: 1.25rem;
|
||||||
|
margin-top: 2.5rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
@include bp.lg {
|
@include bp.lg {
|
||||||
@@ -105,6 +105,8 @@ $sidebar-display: 'sidebar-display'; /* the attribute for sidebar display */
|
|||||||
letter-spacing: 0.25px;
|
letter-spacing: 0.25px;
|
||||||
margin-top: 1.25rem;
|
margin-top: 1.25rem;
|
||||||
margin-bottom: 0.5rem;
|
margin-bottom: 0.5rem;
|
||||||
|
width: -webkit-fit-content;
|
||||||
|
width: -moz-fit-content;
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
color: var(--site-title-color);
|
color: var(--site-title-color);
|
||||||
}
|
}
|
||||||
@@ -114,6 +116,7 @@ $sidebar-display: 'sidebar-display'; /* the attribute for sidebar display */
|
|||||||
color: var(--site-subtitle-color);
|
color: var(--site-subtitle-color);
|
||||||
margin-top: 0.25rem;
|
margin-top: 0.25rem;
|
||||||
word-spacing: 1px;
|
word-spacing: 1px;
|
||||||
|
height: 3rem;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
-moz-user-select: none;
|
-moz-user-select: none;
|
||||||
-ms-user-select: none;
|
-ms-user-select: none;
|
||||||
@@ -207,7 +210,7 @@ $sidebar-display: 'sidebar-display'; /* the attribute for sidebar display */
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
> a {
|
||||||
@extend %button;
|
@extend %button;
|
||||||
@extend %sidebar-link-hover;
|
@extend %sidebar-link-hover;
|
||||||
@extend %clickable-transition;
|
@extend %clickable-transition;
|
||||||
@@ -227,13 +230,102 @@ $sidebar-display: 'sidebar-display'; /* the attribute for sidebar display */
|
|||||||
|
|
||||||
#mode-toggle {
|
#mode-toggle {
|
||||||
@extend %button;
|
@extend %button;
|
||||||
@extend %sidebar-links;
|
|
||||||
@extend %sidebar-link-hover;
|
@extend %sidebar-link-hover;
|
||||||
|
@extend %clickable-transition;
|
||||||
|
|
||||||
|
> i {
|
||||||
|
display: none;
|
||||||
|
|
||||||
|
@at-root :root[data-bs-theme='light'][data-theme-persisted]
|
||||||
|
&[data-theme-mode='light'] {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
@at-root :root[data-bs-theme='dark'][data-theme-persisted]
|
||||||
|
&[data-theme-mode='dark'] {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
@at-root :root:not([data-theme-persisted]) &[data-theme-mode='system'] {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes menu-pop {
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
translate: 0 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
translate: 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes menu-pop {
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
translate: 0 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
translate: 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ .dropdown-menu {
|
||||||
|
background-color: var(--menu-bg);
|
||||||
|
border-color: var(--menu-border-color);
|
||||||
|
box-shadow: var(--menu-shadow-color) 0 1px 4px;
|
||||||
|
border-radius: 0.75rem !important;
|
||||||
|
|
||||||
|
&.show {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.25rem;
|
||||||
|
left: -0.25rem !important;
|
||||||
|
-webkit-animation: menu-pop 0.2s ease-out;
|
||||||
|
animation: menu-pop 0.2s ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-item {
|
||||||
|
border-radius: 0.5rem;
|
||||||
|
color: var(--sidebar-muted-color);
|
||||||
|
font-size: 90%;
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
font-weight: 600;
|
||||||
|
color: var(--menu-active-color);
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: '\f00c';
|
||||||
|
font: var(--fa-font-solid);
|
||||||
|
font-size: 0.75rem;
|
||||||
|
color: var(--sidebar-btn-color);
|
||||||
|
margin-left: auto;
|
||||||
|
padding-left: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active,
|
||||||
|
&:hover,
|
||||||
|
&.active {
|
||||||
|
background-color: var(--menu-highlight-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
> i {
|
||||||
|
color: var(--sidebar-btn-color);
|
||||||
|
margin-right: 0.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-border {
|
.icon-border {
|
||||||
@extend %no-cursor;
|
@extend %no-cursor;
|
||||||
@include mx.ml-mr(calc((v.$sb-btn-gap - $btn-border-width) / 2));
|
@include mx.ml-mr(0.6rem);
|
||||||
|
|
||||||
background-color: var(--sidebar-btn-color);
|
background-color: var(--sidebar-btn-color);
|
||||||
content: '';
|
content: '';
|
||||||
@@ -241,10 +333,6 @@ $sidebar-display: 'sidebar-display'; /* the attribute for sidebar display */
|
|||||||
height: $btn-border-width;
|
height: $btn-border-width;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
margin-bottom: $btn-mb;
|
margin-bottom: $btn-mb;
|
||||||
|
|
||||||
@include bp.xxxl {
|
|
||||||
@include mx.ml-mr(calc((v.$sb-btn-gap-lg - $btn-border-width) / 2));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} /* .sidebar-bottom */
|
} /* .sidebar-bottom */
|
||||||
} /* #sidebar */
|
} /* #sidebar */
|
||||||
|
|||||||
@@ -112,7 +112,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
/* post title in Archvies */
|
/* post title in Archives */
|
||||||
margin-left: 2.5rem;
|
margin-left: 2.5rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
top: 0.1rem;
|
top: 0.1rem;
|
||||||
|
|||||||
@@ -134,9 +134,6 @@
|
|||||||
.page-link {
|
.page-link {
|
||||||
color: var(--btn-patinator-text-color);
|
color: var(--btn-patinator-text-color);
|
||||||
padding: 0 0.6rem;
|
padding: 0 0.6rem;
|
||||||
display: -webkit-box;
|
|
||||||
-webkit-box-pack: center;
|
|
||||||
-webkit-box-align: center;
|
|
||||||
border-radius: 0.5rem;
|
border-radius: 0.5rem;
|
||||||
border: 0;
|
border: 0;
|
||||||
background-color: inherit;
|
background-color: inherit;
|
||||||
@@ -160,7 +157,7 @@
|
|||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
|
|
||||||
.page-link {
|
.page-link {
|
||||||
color: rgba(108, 117, 125, 0.57);
|
color: rgb(108 117 125 / 57%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} /* .page-item */
|
} /* .page-item */
|
||||||
|
|||||||
+11
-1
@@ -127,7 +127,7 @@ header {
|
|||||||
|
|
||||||
.share-mastodon {
|
.share-mastodon {
|
||||||
/* See: https://github.com/justinribeiro/share-to-mastodon#properties */
|
/* See: https://github.com/justinribeiro/share-to-mastodon#properties */
|
||||||
--wc-stm-font-family: v.$font-family-base;
|
--wc-stm-font-family: #{v.$font-family-base};
|
||||||
--wc-stm-dialog-background-color: var(--card-bg);
|
--wc-stm-dialog-background-color: var(--card-bg);
|
||||||
--wc-stm-form-button-border: 1px solid var(--btn-border-color);
|
--wc-stm-form-button-border: 1px solid var(--btn-border-color);
|
||||||
--wc-stm-form-submit-background-color: var(--sidebar-btn-bg);
|
--wc-stm-form-submit-background-color: var(--sidebar-btn-bg);
|
||||||
@@ -148,6 +148,16 @@ header {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.post-edit {
|
||||||
|
line-height: 1.2rem;
|
||||||
|
|
||||||
|
> a {
|
||||||
|
&:hover {
|
||||||
|
@extend %link-hover;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.post-navigation {
|
.post-navigation {
|
||||||
@include bp.lt(bp.get(lg)) {
|
@include bp.lt(bp.get(lg)) {
|
||||||
@include mx.pl-pr(0);
|
@include mx.pl-pr(0);
|
||||||
|
|||||||
+51
-46
@@ -2,34 +2,39 @@
|
|||||||
color-scheme: dark;
|
color-scheme: dark;
|
||||||
|
|
||||||
/* Framework color */
|
/* Framework color */
|
||||||
--main-bg: rgb(27, 27, 30);
|
--main-bg: rgb(27 27 30);
|
||||||
--mask-bg: rgb(68, 69, 70);
|
--mask-bg: rgb(68 69 70);
|
||||||
--main-border-color: rgb(44, 45, 45);
|
--main-border-color: rgb(44 45 45);
|
||||||
|
|
||||||
/* Common color */
|
/* Common color */
|
||||||
--text-color: rgb(175, 176, 177);
|
--text-color: rgb(175 176 177);
|
||||||
--text-muted-color: #868686;
|
--text-muted-color: #868686;
|
||||||
--text-muted-highlight-color: #aeaeae;
|
--text-muted-highlight-color: #aeaeae;
|
||||||
--heading-color: #cccccc;
|
--heading-color: #cccccc;
|
||||||
--label-color: #a7a7a7;
|
--label-color: #a7a7a7;
|
||||||
--blockquote-border-color: rgb(66, 66, 66);
|
--blockquote-border-color: rgb(66 66 66);
|
||||||
--blockquote-text-color: #868686;
|
--blockquote-text-color: #868686;
|
||||||
--link-color: rgb(138, 180, 248);
|
--link-color: rgb(138 180 248);
|
||||||
--link-underline-color: rgb(82, 108, 150);
|
--link-underline-color: rgb(82 108 150);
|
||||||
--button-bg: #1e1e1e;
|
--button-bg: #1e1e1e;
|
||||||
--btn-border-color: #2e2f31;
|
--btn-border-color: #2e2f31;
|
||||||
--btn-backtotop-color: var(--text-color);
|
--btn-backtotop-color: var(--text-color);
|
||||||
--btn-backtotop-border-color: #212122;
|
--btn-backtotop-border-color: #212122;
|
||||||
--card-header-bg: #292929;
|
--card-header-bg: #292929;
|
||||||
--checkbox-color: rgb(118, 120, 121);
|
--checkbox-color: rgb(118 120 121);
|
||||||
--checkbox-checked-color: var(--link-color);
|
--checkbox-checked-color: var(--link-color);
|
||||||
--img-bg: radial-gradient(circle, rgb(22, 22, 24) 0%, rgb(32, 32, 32) 100%);
|
--img-bg: radial-gradient(circle, rgb(22 22 24) 0%, rgb(32 32 32) 100%);
|
||||||
--shimmer-bg: linear-gradient(
|
--shimmer-bg: linear-gradient(
|
||||||
90deg,
|
90deg,
|
||||||
rgba(255, 255, 255, 0) 0%,
|
rgb(255 255 255 / 0%) 0%,
|
||||||
rgba(58, 55, 55, 0.4) 50%,
|
rgb(58 55 55 / 40%) 50%,
|
||||||
rgba(255, 255, 255, 0) 100%
|
rgb(255 255 255 / 0%) 100%
|
||||||
);
|
);
|
||||||
|
--menu-bg: rgb(30 30 30);
|
||||||
|
--menu-border-color: rgb(77 77 77 / 60%);
|
||||||
|
--menu-shadow-color: rgb(4 4 4 / 42%);
|
||||||
|
--menu-active-color: rgb(240 248 255 / 63%);
|
||||||
|
--menu-highlight-bg: rgb(90 91 92 / 12%);
|
||||||
|
|
||||||
/* Sidebar */
|
/* Sidebar */
|
||||||
--site-title-color: #717070;
|
--site-title-color: #717070;
|
||||||
@@ -37,65 +42,65 @@
|
|||||||
--sidebar-bg: #1e1e1e;
|
--sidebar-bg: #1e1e1e;
|
||||||
--sidebar-border-color: #292929;
|
--sidebar-border-color: #292929;
|
||||||
--sidebar-muted-color: #868686;
|
--sidebar-muted-color: #868686;
|
||||||
--sidebar-active-color: rgb(255, 255, 255, 0.95);
|
--sidebar-active-color: rgb(255 255 255 / 95%);
|
||||||
--sidebar-hover-bg: #262626;
|
--sidebar-hover-bg: #262626;
|
||||||
--sidebar-btn-bg: #232328;
|
--sidebar-btn-bg: #232328;
|
||||||
--sidebar-btn-color: #787878;
|
--sidebar-btn-color: #787878;
|
||||||
--avatar-border-color: rgb(206, 206, 206, 0.9);
|
--avatar-border-color: rgb(206 206 206 / 90%);
|
||||||
|
|
||||||
/* Topbar */
|
/* Topbar */
|
||||||
--topbar-bg: rgb(27, 27, 30, 0.64);
|
--topbar-bg: rgb(27 27 30 / 64%);
|
||||||
--topbar-text-color: var(--text-color);
|
--topbar-text-color: var(--text-color);
|
||||||
--search-border-color: rgb(55, 55, 55);
|
--search-border-color: rgb(55 55 55);
|
||||||
--search-icon-color: rgb(100, 102, 105);
|
--search-icon-color: rgb(100 102 105);
|
||||||
--input-focus-border-color: rgb(112, 114, 115);
|
--input-focus-border-color: rgb(112 114 115);
|
||||||
|
|
||||||
/* Home page */
|
/* Home page */
|
||||||
--post-list-text-color: rgb(175, 176, 177);
|
--post-list-text-color: rgb(175 176 177);
|
||||||
--btn-patinator-text-color: var(--text-color);
|
--btn-patinator-text-color: var(--text-color);
|
||||||
--btn-paginator-hover-color: #2e2e2e;
|
--btn-paginator-hover-color: #2e2e2e;
|
||||||
|
|
||||||
/* Posts */
|
/* Posts */
|
||||||
--toc-highlight: rgb(116, 178, 243);
|
--toc-highlight: rgb(116 178 243);
|
||||||
--toc-popup-border-color: #373737;
|
--toc-popup-border-color: #373737;
|
||||||
--tag-hover: rgb(43, 56, 62);
|
--tag-hover: rgb(43 56 62);
|
||||||
--tb-odd-bg: #252526; /* odd rows of the posts' table */
|
--tb-odd-bg: #252526; /* odd rows of the posts' table */
|
||||||
--tb-even-bg: rgb(31, 31, 34); /* even rows of the posts' table */
|
--tb-even-bg: rgb(31 31 34); /* even rows of the posts' table */
|
||||||
--tb-border-color: var(--tb-odd-bg);
|
--tb-border-color: var(--tb-odd-bg);
|
||||||
--footnote-target-bg: rgb(63, 81, 181);
|
--footnote-target-bg: rgb(63 81 181);
|
||||||
--btn-share-color: #6c757d;
|
--btn-share-color: #6c757d;
|
||||||
--btn-share-hover-color: #bfc1ca;
|
--btn-share-hover-color: #bfc1ca;
|
||||||
--card-bg: #1e1e1e;
|
--card-bg: #1e1e1e;
|
||||||
--card-hovor-bg: #464d51;
|
--card-hover-bg: #464d51;
|
||||||
--card-shadow: rgb(21, 21, 21, 0.72) 0 6px 18px 0,
|
--card-shadow:
|
||||||
rgb(137, 135, 135, 0.24) 0 0 0 1px;
|
rgb(21 21 21 / 72%) 0 6px 18px 0, rgb(137 135 135 / 24%) 0 0 0 1px;
|
||||||
--kbd-wrap-color: #6a6a6a;
|
--kbd-wrap-color: #6a6a6a;
|
||||||
--kbd-text-color: #d3d3d3;
|
--kbd-text-color: #d3d3d3;
|
||||||
--kbd-bg-color: #242424;
|
--kbd-bg-color: #242424;
|
||||||
--prompt-text-color: rgb(216, 212, 212, 0.75);
|
--prompt-text-color: rgb(216 212 212 / 75%);
|
||||||
--prompt-tip-bg: rgb(22, 60, 36, 0.64);
|
--prompt-tip-bg: rgb(22 60 36 / 64%);
|
||||||
--prompt-tip-icon-color: rgb(15, 164, 15, 0.81);
|
--prompt-tip-icon-color: rgb(15 164 15 / 81%);
|
||||||
--prompt-info-bg: rgb(7, 59, 104, 0.8);
|
--prompt-info-bg: rgb(7 59 104 / 80%);
|
||||||
--prompt-info-icon-color: #0075d1;
|
--prompt-info-icon-color: #0075d1;
|
||||||
--prompt-warning-bg: rgb(90, 69, 3, 0.88);
|
--prompt-warning-bg: rgb(90 69 3 / 88%);
|
||||||
--prompt-warning-icon-color: rgb(255, 165, 0, 0.8);
|
--prompt-warning-icon-color: rgb(255 165 0 / 80%);
|
||||||
--prompt-danger-bg: rgb(86, 28, 8, 0.8);
|
--prompt-danger-bg: rgb(86 28 8 / 80%);
|
||||||
--prompt-danger-icon-color: #cd0202;
|
--prompt-danger-icon-color: #cd0202;
|
||||||
|
|
||||||
/* Tags */
|
/* Tags */
|
||||||
--tag-border: rgb(59, 79, 88);
|
--tag-border: rgb(59 79 88);
|
||||||
--tag-shadow: rgb(32, 33, 33);
|
--tag-shadow: rgb(32 33 33);
|
||||||
--dash-color: rgb(63, 65, 68);
|
--dash-color: rgb(63 65 68);
|
||||||
--search-tag-bg: #292828;
|
--search-tag-bg: #292828;
|
||||||
|
|
||||||
/* Categories */
|
/* Categories */
|
||||||
--categories-border: rgb(64, 66, 69, 0.5);
|
--categories-border: rgb(64 66 69 / 50%);
|
||||||
--categories-hover-bg: rgb(73, 75, 76);
|
--categories-hover-bg: rgb(73 75 76);
|
||||||
--categories-icon-hover-color: white;
|
--categories-icon-hover-color: white;
|
||||||
|
|
||||||
/* Archive */
|
/* Archive */
|
||||||
--timeline-node-bg: rgb(150, 152, 156);
|
--timeline-node-bg: rgb(150 152 156);
|
||||||
--timeline-color: rgb(63, 65, 68);
|
--timeline-color: rgb(63 65 68);
|
||||||
--timeline-year-dot-color: var(--timeline-color);
|
--timeline-year-dot-color: var(--timeline-color);
|
||||||
|
|
||||||
/* Code highlight colors */
|
/* Code highlight colors */
|
||||||
@@ -103,7 +108,7 @@
|
|||||||
--highlight-bg-color: #151515;
|
--highlight-bg-color: #151515;
|
||||||
--highlighter-rouge-color: #c9def1;
|
--highlighter-rouge-color: #c9def1;
|
||||||
--highlight-lineno-color: #808080;
|
--highlight-lineno-color: #808080;
|
||||||
--inline-code-bg: rgba(255, 255, 255, 0.05);
|
--inline-code-bg: rgb(255 255 255 / 5%);
|
||||||
--code-color: #b0b0b0;
|
--code-color: #b0b0b0;
|
||||||
--code-header-text-color: #6a6a6a;
|
--code-header-text-color: #6a6a6a;
|
||||||
--code-header-muted-color: #353535;
|
--code-header-muted-color: #353535;
|
||||||
@@ -141,11 +146,11 @@
|
|||||||
#archives li:nth-child(odd) {
|
#archives li:nth-child(odd) {
|
||||||
background-image: linear-gradient(
|
background-image: linear-gradient(
|
||||||
to left,
|
to left,
|
||||||
rgb(26, 26, 30),
|
rgb(26 26 30),
|
||||||
rgb(39, 39, 45),
|
rgb(39 39 45),
|
||||||
rgb(39, 39, 45),
|
rgb(39 39 45),
|
||||||
rgb(39, 39, 45),
|
rgb(39 39 45),
|
||||||
rgb(26, 26, 30)
|
rgb(26 26 30)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user