diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000000..39c428df4ea --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,29 @@ +{ + "name": "Jekyll", + "image": "mcr.microsoft.com/devcontainers/jekyll:2-bullseye", + "onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}", + "postCreateCommand": "bash .devcontainer/post-create.sh", + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "zsh" + }, + "extensions": [ + // Liquid tags auto-complete + "killalau.vscode-liquid-snippets", + // Liquid syntax highlighting and formatting + "Shopify.theme-check-vscode", + // Shell + "timonwong.shellcheck", + "mkhl.shfmt", + // Common formatter + "EditorConfig.EditorConfig", + "esbenp.prettier-vscode", + "stylelint.vscode-stylelint", + "yzhang.markdown-all-in-one", + // Git + "mhutchie.git-graph" + ] + } + } +} diff --git a/.devcontainer/post-create.sh b/.devcontainer/post-create.sh new file mode 100644 index 00000000000..a4bc28257f8 --- /dev/null +++ b/.devcontainer/post-create.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +if [ -f package.json ]; then + bash -i -c "nvm install --lts && nvm install-latest-npm" + npm i + npm run build +fi + +# Install dependencies for shfmt extension +curl -sS https://webi.sh/shfmt | sh &>/dev/null + +# Add OMZ plugins +git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting +git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions +sed -i -E "s/^(plugins=\()(git)(\))/\1\2 zsh-syntax-highlighting zsh-autosuggestions\3/" ~/.zshrc + +# Avoid git log use less +echo -e "\nunset LESS" >>~/.zshrc diff --git a/.github/DISCUSSION_TEMPLATE/general.yml b/.github/DISCUSSION_TEMPLATE/general.yml index 4e879f95049..18d0f8585fb 100644 --- a/.github/DISCUSSION_TEMPLATE/general.yml +++ b/.github/DISCUSSION_TEMPLATE/general.yml @@ -9,15 +9,6 @@ body: [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md). required: true - - type: dropdown - attributes: - label: What is the topic? - options: - - Sharing tips and tricks - - Just chatting - validations: - required: true - - type: textarea attributes: label: Description diff --git a/.github/DISCUSSION_TEMPLATE/ideas.yml b/.github/DISCUSSION_TEMPLATE/ideas.yml new file mode 100644 index 00000000000..e4c987d794e --- /dev/null +++ b/.github/DISCUSSION_TEMPLATE/ideas.yml @@ -0,0 +1,7 @@ +body: + - type: textarea + attributes: + label: Description + description: Please describe in detail what you want to share. + validations: + required: true diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index f22921b7049..fed8764ebb8 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1 @@ ko_fi: coteschung -custom: https://sponsor.cotes.page diff --git a/.github/dependabot.yml b/.github/dependabot.yml index bec10467f41..a51f37eb0eb 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -2,18 +2,16 @@ version: 2 updates: - package-ecosystem: "bundler" directory: "/" - versioning-strategy: increase - groups: - bundler: - dependency-type: "production" schedule: interval: "weekly" - package-ecosystem: "npm" directory: "/" versioning-strategy: increase groups: - npm: - dependency-type: "development" + prod-deps: + dependency-type: production + dev-deps: + dependency-type: development schedule: interval: "weekly" - package-ecosystem: "github-actions" @@ -24,3 +22,7 @@ updates: - "major" schedule: interval: "weekly" + - package-ecosystem: "devcontainers" + directory: "/" + schedule: + interval: weekly diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 2e239a45073..cd67b6d2874 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -1,17 +1,39 @@ name: CD + on: push: - tags: - - "v[0-9]+.[0-9]+.[0-9]+" - branches: - - docs + branches: [production] + tags-ignore: ["**"] jobs: - launch: + release: + if: ${{ ! startsWith(github.event.head_commit.message, 'chore(release)') }} + permissions: + contents: write + issues: write + pull-requests: write runs-on: ubuntu-latest steps: - - run: | - curl -X POST -H "Accept: application/vnd.github+json" \ - -H "Authorization: Bearer ${{ secrets.GH_PAT }}" \ - https://api.github.com/repos/${{ secrets.BUILDER }}/dispatches \ - -d '{"event_type":"deploy", "client_payload":{"branch": "${{ github.ref_name }}"}}' + - uses: actions/checkout@v5 + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.3 + bundler-cache: true + + - uses: actions/setup-node@v5 + with: + node-version: lts/* + + - run: npm install + - run: npx semantic-release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GEM_HOST_API_KEY: ${{ secrets.GEM_HOST_API_KEY }} + + publish: + needs: release + uses: ./.github/workflows/publish.yml + secrets: + GH_PAT: ${{ secrets.GH_PAT }} + BUILDER: ${{ secrets.BUILDER }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c7b1f5a692a..118fc715a92 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,19 +1,25 @@ -name: "CI" +name: CI + on: push: - branches-ignore: - - "production" - - "docs" + branches: + - master + - "hotfix/*" paths-ignore: - ".github/**" - "!.github/workflows/ci.yml" - - ".gitignore" + - .gitignore - "docs/**" - - "README.md" - - "LICENSE" + - README.md + - LICENSE pull_request: - paths: - - "**" + paths-ignore: + - ".github/**" + - "!.github/workflows/ci.yml" + - .gitignore + - "docs/**" + - README.md + - LICENSE jobs: build: @@ -21,11 +27,11 @@ jobs: strategy: matrix: - ruby: ["3.0", "3.1", "3.2"] + ruby: ["3.1", "3.2", "3.3"] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: 0 # for posts's lastmod @@ -36,10 +42,12 @@ jobs: bundler-cache: true - name: Setup Node - uses: actions/setup-node@v4 + uses: actions/setup-node@v5 + with: + node-version: lts/* - name: Build Assets run: npm i && npm run build - name: Test Site - run: bash tools/test + run: bash tools/test.sh diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index b09590d4830..e460e49aa67 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -2,6 +2,7 @@ name: "CodeQL" on: push: + branches: ["master"] paths: ["_javascript/**/*.js"] pull_request: paths: ["_javascript/**/*.js"] @@ -23,11 +24,11 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v3 + uses: github/codeql-action/init@v4 with: languages: "${{ matrix.language }}" config-file: .github/codeql/codeql-config.yml @@ -35,9 +36,9 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v3 + uses: github/codeql-action/autobuild@v4 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 + uses: github/codeql-action/analyze@v4 with: category: "/language:${{ matrix.language }}" diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml index d79814a2883..ef14388bc52 100644 --- a/.github/workflows/commitlint.yml +++ b/.github/workflows/commitlint.yml @@ -1,11 +1,15 @@ name: Lint Commit Messages -on: pull_request + +on: + push: + branches: + - master + - "hotfix/*" + pull_request: jobs: commitlint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: wagoid/commitlint-github-action@v5 + - uses: actions/checkout@v5 + - uses: wagoid/commitlint-github-action@v6 diff --git a/.github/workflows/lint-js.yml b/.github/workflows/lint-js.yml new file mode 100644 index 00000000000..205f4790004 --- /dev/null +++ b/.github/workflows/lint-js.yml @@ -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@v5 + + - name: Setup Node.js + uses: actions/setup-node@v5 + with: + node-version: lts/* + + - name: Install Dependencies + run: npm i + + - name: Lint JS + run: npm run lint:js diff --git a/.github/workflows/lint-scss.yml b/.github/workflows/lint-scss.yml new file mode 100644 index 00000000000..48d8a7263b7 --- /dev/null +++ b/.github/workflows/lint-scss.yml @@ -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@v5 + + - name: Setup Node.js + uses: actions/setup-node@v5 + with: + node-version: lts/* + + - name: Install Dependencies + run: npm i + + - name: Lint SCSS + run: npm run lint:scss diff --git a/.github/workflows/pr-filter.yml b/.github/workflows/pr-filter.yml new file mode 100644 index 00000000000..ee3f09db24b --- /dev/null +++ b/.github/workflows/pr-filter.yml @@ -0,0 +1,25 @@ +name: PR Filter + +on: + pull_request_target: + types: [opened, reopened] + +jobs: + check-template: + if: github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name + runs-on: ubuntu-latest + permissions: + pull-requests: write + + steps: + - name: Checkout Code + uses: actions/checkout@v5 + + - name: Check PR Content + id: intercept + uses: actions/github-script@v8 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const { default: filter } = await import('${{ github.workspace }}/.github/workflows/scripts/pr-filter.js'); + await filter({ github, context, core }); diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000000..b0f9713f2ef --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,23 @@ +name: Publish + +on: + push: + branches: + - docs + workflow_call: + secrets: + GH_PAT: + required: true + BUILDER: + required: true + workflow_dispatch: + +jobs: + launch: + runs-on: ubuntu-latest + steps: + - run: | + curl -X POST -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer ${{ secrets.GH_PAT }}" \ + https://api.github.com/repos/${{ secrets.BUILDER }}/dispatches \ + -d '{"event_type":"deploy", "client_payload":{"branch": "${{ github.ref_name }}"}}' diff --git a/.github/workflows/scripts/pr-filter.js b/.github/workflows/scripts/pr-filter.js new file mode 100644 index 00000000000..52e8d526a1b --- /dev/null +++ b/.github/workflows/scripts/pr-filter.js @@ -0,0 +1,36 @@ +function hasTypes(markdown) { + return /## Type of change/.test(markdown) && /-\s\[x\]/i.test(markdown); +} + +function hasDescription(markdown) { + return ( + /## Description/.test(markdown) && + !/## Description\s*\n\s*(##|\s*$)/.test(markdown) + ); +} + +export default async ({ github, context, core }) => { + const pr = context.payload.pull_request; + const body = pr.body === null ? '' : pr.body; + const markdown = body.replace(//g, ''); + const action = context.payload.action; + + const isValid = + markdown !== '' && hasTypes(markdown) && hasDescription(markdown); + + if (!isValid) { + await github.rest.pulls.update({ + ...context.repo, + pull_number: pr.number, + state: 'closed' + }); + + await github.rest.issues.createComment({ + ...context.repo, + issue_number: pr.number, + body: `Oops, it seems you've ${action} an invalid pull request. No worries, we'll close it for you.` + }); + + core.setFailed('PR content does not meet template requirements.'); + } +}; diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index bcf425ae604..1c9913f54e9 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -9,7 +9,7 @@ permissions: pull-requests: write env: - STALE_LABEL: stale + STALE_LABEL: inactive EXEMPT_LABELS: "pending,planning,in progress" MESSAGE: > This conversation has been automatically marked as stale because it has not had recent activity. @@ -20,7 +20,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v9 + - uses: actions/stale@v10 with: # 60 days before marking issues/PRs stale days-before-close: -1 # does not close automatically diff --git a/.github/workflows/pages-deploy.yml.hook b/.github/workflows/starter/pages-deploy.yml similarity index 96% rename from .github/workflows/pages-deploy.yml.hook rename to .github/workflows/starter/pages-deploy.yml index c33b2a6b889..cc28f99fd25 100644 --- a/.github/workflows/pages-deploy.yml.hook +++ b/.github/workflows/starter/pages-deploy.yml @@ -42,7 +42,7 @@ jobs: - name: Setup Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: 3.2 + ruby-version: 3.3 bundler-cache: true - name: Build site @@ -53,7 +53,7 @@ jobs: - name: Test site run: | bundle exec htmlproofer _site \ - \-\-disable-external=true \ + \-\-disable-external \ \-\-ignore-urls "/^http:\/\/127.0.0.1/,/^http:\/\/0.0.0.0/,/^http:\/\/localhost/" - name: Upload site artifact diff --git a/.github/workflows/style-lint.yml b/.github/workflows/style-lint.yml deleted file mode 100644 index f7aa54db344..00000000000 --- a/.github/workflows/style-lint.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: "Style Lint" - -on: - push: - branches-ignore: - - "production" - - "docs" - paths: - - "_sass/**/*.scss" - pull_request: - paths: - - "_sass/**/*.scss" - -jobs: - stylelint: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Node - uses: actions/setup-node@v4 - - run: npm i - - run: npm test diff --git a/.gitignore b/.gitignore index cee9e1210f5..7dd7cefd964 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ Gemfile.lock # Jekyll cache .jekyll-cache +.jekyll-metadata _site # RubyGems @@ -16,6 +17,11 @@ package-lock.json # IDE configurations .idea +.vscode/* +!.vscode/settings.json +!.vscode/extensions.json +!.vscode/tasks.json # Misc +_sass/vendors assets/js/dist diff --git a/.husky/commit-msg b/.husky/commit-msg old mode 100755 new mode 100644 index 7f23494bf04..0a4b97de53a --- a/.husky/commit-msg +++ b/.husky/commit-msg @@ -1,4 +1 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -npx --no -- commitlint --edit ${1} +npx --no -- commitlint --edit $1 diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 00000000000..831991edaef --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,8 @@ +{ + "commands-show-output": false, + "blanks-around-fences": false, + "line-length": false, + "no-inline-html": { + "allowed_elements": ["kbd", "sub"] + } +} diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100644 index 00000000000..c0c1b95a587 --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1,29 @@ +{ + "ignoreFiles": ["_sass/vendors/**"], + "extends": "stylelint-config-standard-scss", + "rules": { + "no-descending-specificity": null, + "shorthand-property-no-redundant-values": null, + "at-rule-no-vendor-prefix": null, + "property-no-vendor-prefix": null, + "selector-no-vendor-prefix": null, + "value-no-vendor-prefix": null, + "selector-not-notation": "simple", + "color-hex-length": "long", + "declaration-block-single-line-max-declarations": 3, + "scss/operator-no-newline-after": null, + "rule-empty-line-before": [ + "always", + { + "ignore": ["after-comment", "first-nested"] + } + ], + "value-keyword-case": [ + "lower", + { + "ignoreProperties": ["/^\\$/"] + } + ], + "media-feature-range-notation": "prefix" + } +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 6927cd1106d..082bc94c026 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,12 +1,3 @@ { - "recommendations": [ - // Liquid tags auto-complete - "killalau.vscode-liquid-snippets", - // Liquid syntax highlighting and formatting - "Shopify.theme-check-vscode", - // Common formatter - "esbenp.prettier-vscode", - "foxundermoon.shell-format", - "stylelint.vscode-stylelint" - ] + "recommendations": ["ms-vscode-remote.remote-containers"] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 4fcded4583b..5e8a04f392e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,23 +2,29 @@ // Prettier "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, - "prettier.trailingComma": "none", // Shopify Liquid "files.associations": { "*.html": "liquid" }, + "[markdown]": { + "editor.defaultFormatter": "yzhang.markdown-all-in-one" + }, // Formatter "[html][liquid]": { "editor.defaultFormatter": "Shopify.theme-check-vscode" }, "[shellscript]": { - "editor.defaultFormatter": "foxundermoon.shell-format" + "editor.defaultFormatter": "mkhl.shfmt" }, // Disable vscode built-in stylelint "css.validate": false, "scss.validate": false, "less.validate": false, // Stylint extension settings - "stylelint.snippet": ["css", "less", "postcss", "scss"], - "stylelint.validate": ["css", "less", "postcss", "scss"] + "stylelint.snippet": ["css", "scss"], + "stylelint.validate": ["css", "scss"], + // Run tasks in macOS + "terminal.integrated.profiles.osx": { + "zsh": { "path": "/bin/zsh", "args": ["-l", "-i"] } + } } diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 00000000000..99ed5c5b749 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,64 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Run Jekyll Server", + "type": "shell", + "command": "./tools/run.sh", + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": [], + "detail": "Runs the Jekyll server with live reload." + }, + { + "label": "Build Jekyll Site", + "type": "shell", + "command": "./tools/test.sh", + "group": { + "kind": "build" + }, + "problemMatcher": [], + "detail": "Build the Jekyll site for production." + }, + { + "label": "Build JS (watch)", + "type": "shell", + "command": "npm run watch:js", + "group": { + "kind": "build" + }, + "problemMatcher": [], + "detail": "Build JS files in watch mode." + }, + { + "label": "Build CSS", + "type": "shell", + "command": "npm run build:css", + "group": { + "kind": "build" + }, + "problemMatcher": [], + "detail": "Build CSS files." + }, + { + "label": "Build JS & CSS", + "type": "shell", + "command": "npm run build", + "group": { + "kind": "build" + }, + "problemMatcher": [], + "detail": "Build JS & CSS for production." + }, + { + "label": "Run Jekyll Server + Build JS (watch)", + "dependsOn": ["Run Jekyll Server", "Build JS (watch)"], + "group": { + "kind": "build" + }, + "detail": "Runs both the Jekyll server with live reload and build JS files in watch mode." + } + ] +} diff --git a/Gemfile b/Gemfile index 043b28eec7a..e5415748ad5 100644 --- a/Gemfile +++ b/Gemfile @@ -4,20 +4,11 @@ source "https://rubygems.org" gemspec -group :test do - gem "html-proofer", "~> 4.4" -end +gem "html-proofer", "~> 5.0", group: :test -# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem -# and associated library. platforms :mingw, :x64_mingw, :mswin, :jruby do gem "tzinfo", ">= 1", "< 3" gem "tzinfo-data" end -# Performance-booster for watching directories on Windows -gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] - -# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem -# do not have a Java counterpart. -gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] +gem "wdm", "~> 0.2.0", :platforms => [:mingw, :x64_mingw, :mswin] diff --git a/README.md b/README.md index 0e074cf8fc6..7e57b2a52e2 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,16 @@ +
+ # Chirpy Jekyll Theme A minimal, responsive, and feature-rich Jekyll theme for technical writing. - [![Gem Version](https://img.shields.io/gem/v/jekyll-theme-chirpy?color=brightgreen)][gem]  - [![CI](https://github.com/cotes2020/jekyll-theme-chirpy/actions/workflows/ci.yml/badge.svg?branch=master&event=push)][ci]  - [![Codacy Badge](https://app.codacy.com/project/badge/Grade/4e556876a3c54d5e8f2d2857c4f43894)][codacy]  - [![GitHub license](https://img.shields.io/github/license/cotes2020/jekyll-theme-chirpy.svg)][license]  - [![996.icu](https://img.shields.io/badge/link-996.icu-%23FF4D5B.svg)](https://996.icu) + [![CI](https://img.shields.io/github/actions/workflow/status/cotes2020/jekyll-theme-chirpy/ci.yml?logo=github)][ci]  + [![Codacy Badge](https://img.shields.io/codacy/grade/4e556876a3c54d5e8f2d2857c4f43894?logo=codacy)][codacy]  + [![GitHub license](https://img.shields.io/github/license/cotes2020/jekyll-theme-chirpy?color=goldenrod)][license]  + [![Gem Version](https://img.shields.io/gem/v/jekyll-theme-chirpy?&logo=RubyGems&logoColor=ghostwhite&label=gem&color=orange)][gem]  + [![Open in Dev Containers](https://img.shields.io/badge/Dev_Containers-Open-deepskyblue?logo=linuxcontainers)][open-container] [**Live Demo** →][demo] @@ -18,7 +20,7 @@ ## Features -- Dark / Light Theme Mode +- Dark Theme - Localized UI language - Pinned Posts on Home Page - Hierarchical Categories @@ -28,13 +30,13 @@ - Syntax Highlighting - Mathematical Expressions - Mermaid Diagrams & Flowcharts -- Dark / Light Mode Images -- Embed Videos -- Disqus / Giscus / Utterances Comments +- Dark Mode Images +- Embed Media +- Comment Systems - Built-in Search - Atom Feeds - PWA -- Google Analytics / GoatCounter +- Web Analytics - SEO & Performance Optimization ## Documentation @@ -54,7 +56,7 @@ For details, see the "[Contributing Guidelines][contribute-guide]". Thanks to [all the contributors][contributors] involved in the development of the project! [![all-contributors](https://contrib.rocks/image?repo=cotes2020/jekyll-theme-chirpy&columns=16)][contributors] - —— Made with [contrib.rocks](https://contrib.rocks) + — Made with [contrib.rocks](https://contrib.rocks) ### Third-Party Assets @@ -70,6 +72,7 @@ This project is published under [MIT License][license]. [ci]: https://github.com/cotes2020/jekyll-theme-chirpy/actions/workflows/ci.yml?query=event%3Apush+branch%3Amaster [codacy]: https://app.codacy.com/gh/cotes2020/jekyll-theme-chirpy/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade [license]: https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/LICENSE +[open-container]: https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/cotes2020/jekyll-theme-chirpy [jekyllrb]: https://jekyllrb.com/ [clipartmax]: https://www.clipartmax.com/middle/m2i8b1m2K9Z5m2K9_ant-clipart-childrens-ant-cute/ [demo]: https://cotes2020.github.io/chirpy-demo/ diff --git a/_config.yml b/_config.yml index 79d451fe0c1..9b9e2b27bbd 100644 --- a/_config.yml +++ b/_config.yml @@ -8,7 +8,7 @@ theme: jekyll-theme-chirpy # otherwise, the layout language will use the default value of '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 # jekyll-seo-tag settings › https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md @@ -16,44 +16,67 @@ timezone: Asia/Shanghai title: Chirpy # the main title -tagline: A text-focused Jekyll theme # it will display as the sub-title +tagline: A text-focused Jekyll theme # it will display as the subtitle description: >- # used by seo meta and the atom feed A minimal, responsive and feature-rich Jekyll theme for technical writing. # Fill in the protocol & hostname for your site. -# e.g. 'https://username.github.io', note that it does not end with a '/'. +# E.g. 'https://username.github.io', note that it does not end with a '/'. url: "" github: - username: github_username # change to your github username + username: github_username # change to your GitHub username twitter: - username: twitter_username # change to your twitter username + username: twitter_username # change to your Twitter username social: # Change to your full name. # It will be displayed as the default author of the posts and the copyright owner in the Footer name: your_full_name email: example@domain.com # change to your email address + fediverse_handle: "@you@domain.com" # change to your fediverse handle or leave empty links: # The first element serves as the copyright owner's link - - https://twitter.com/username # change to your twitter homepage - - https://github.com/username # change to your github homepage + - https://twitter.com/username # change to your Twitter homepage + - https://github.com/username # change to your GitHub homepage # Uncomment below to add more social links # - https://www.facebook.com/username # - https://www.linkedin.com/in/username -google_site_verification: # fill in to your verification string +# Site Verification Settings +webmaster_verifications: + google: # fill in your Google verification code + bing: # fill in your Bing verification code + alexa: # fill in your Alexa verification code + yandex: # fill in your Yandex verification code + baidu: # fill in your Baidu verification code + facebook: # fill in your Facebook verification code # ↑ -------------------------- # The end of `jekyll-seo-tag` settings -google_analytics: - id: # fill in your Google Analytics ID - -goatcounter: - id: # fill in your Goatcounter ID +# Web Analytics Settings +analytics: + google: + id: # fill in your Google Analytics ID + goatcounter: + id: # fill in your GoatCounter ID + umami: + id: # fill in your Umami ID + domain: # fill in your Umami domain + matomo: + id: # fill in your Matomo ID + domain: # fill in your Matomo domain + cloudflare: + id: # fill in your Cloudflare Web Analytics token + fathom: + id: # fill in your Fathom Site ID + +# Page views settings +pageviews: + provider: # now only supports 'goatcounter' # Prefer color scheme setting. # @@ -63,17 +86,17 @@ goatcounter: # # Available options: # -# light - Use the light color scheme -# dark - Use the dark color scheme +# light — Use the light color scheme +# dark — Use the dark color scheme # theme_mode: # [light | dark] -# The CDN endpoint for images. +# The CDN endpoint for media resources. # Notice that once it is assigned, the CDN url -# will be added to all image (site avatar & posts' images) paths starting with '/' +# will be added to all media resources (site avatar, posts' images, audio and video files) paths starting with '/' # # e.g. 'https://cdn.com' -img_cdn: "https://chirpy-img.netlify.app" +cdn: "https://chirpy-img.netlify.app" # the avatar on sidebar, support local or CORS resources avatar: "/commons/avatar.jpg" @@ -86,8 +109,9 @@ social_preview_image: # string, local or CORS resources toc: true comments: - active: # The global switch for posts comments, e.g., 'disqus'. Keep it empty means disable - # The active options are as follows: + # Global switch for the post-comment system. Keeping it empty means disabled. + provider: # [disqus | utterances | giscus] + # The provider options are as follows: disqus: shortname: # fill with the Disqus shortname. › https://help.disqus.com/en/articles/1717111-what-s-a-shortname # utterances settings › https://utteranc.es/ @@ -101,6 +125,7 @@ comments: category: category_id: mapping: # optional, default to 'pathname' + strict: # optional, default to '0' input_position: # optional, default to 'bottom' lang: # optional, default to the value of `site.lang` reactions_enabled: # optional, default to the value of `1` @@ -114,9 +139,9 @@ assets: env: # [development | production] pwa: - enabled: true # the option for PWA feature (installable) + enabled: true # The option for PWA feature (installable) cache: - enabled: true # the option for PWA offline cache + enabled: true # The option for PWA offline cache # Paths defined here will be excluded from the PWA cache. # Usually its value is the `baseurl` of another website that # shares the same domain name as the current website. @@ -131,6 +156,7 @@ baseurl: "" # ------------ The following options are not recommended to be modified ------------------ kramdown: + footnote_backlink: "↩︎" syntax_highlighter: rouge syntax_highlighter_opts: # Rouge Options › https://github.com/jneen/rouge#full-options css_class: highlight @@ -167,10 +193,6 @@ defaults: values: layout: page permalink: /:title/ - - scope: - path: assets/js/dist - values: - swcache: true sass: style: compressed @@ -191,8 +213,9 @@ exclude: - tools - README.md - LICENSE - - rollup.config.js - - package*.json + - purgecss.js + - "*.config.js" + - "package*.json" jekyll-archives: enabled: [categories, tags] diff --git a/_data/contact.yml b/_data/contact.yml index 1ed228a0134..ed40acb7e97 100644 --- a/_data/contact.yml +++ b/_data/contact.yml @@ -26,3 +26,15 @@ # - type: stack-overflow # icon: 'fab fa-stack-overflow' # url: '' # Fill with your stackoverflow homepage +# +# - type: bluesky +# icon: 'fa-brands fa-bluesky' +# url: '' # Fill with your Bluesky profile link +# +# - type: reddit +# icon: 'fa-brands fa-reddit' +# url: '' # Fill with your Reddit profile link +# +# - type: threads +# icon: 'fa-brands fa-threads' +# url: '' # Fill with your Threads profile link diff --git a/_data/locales/ar.yml b/_data/locales/ar.yml index c60829813d5..a79e020091e 100644 --- a/_data/locales/ar.yml +++ b/_data/locales/ar.yml @@ -43,7 +43,7 @@ copyright: meta: باستخدام :PLATFORM السمة :THEME not_found: - statment: عذرا, الرابط التالي غير صالح أو انه يشير إلى صفحة غير موجودة. + statement: عذرا, الرابط التالي غير صالح أو انه يشير إلى صفحة غير موجودة. notification: update_found: يتوفر اصدار جديد للمحتوى. diff --git a/_data/locales/bg-BG.yml b/_data/locales/bg-BG.yml index 3e049938b0d..3fb060fdae3 100644 --- a/_data/locales/bg-BG.yml +++ b/_data/locales/bg-BG.yml @@ -43,7 +43,7 @@ copyright: meta: Създадено чрез :PLATFORM и :THEME тема not_found: - statment: Съжалявам, но на този URL адрес няма налично съдържание. + statement: Съжалявам, но на този URL адрес няма налично съдържание. notification: update_found: Налична е нова версия на съдържанието. diff --git a/_data/locales/ca-ES.yml b/_data/locales/ca-ES.yml new file mode 100644 index 00000000000..e3d5b39ceae --- /dev/null +++ b/_data/locales/ca-ES.yml @@ -0,0 +1,84 @@ +# The layout text of site + +# ----- Commons label ----- + +layout: + post: Entrada + category: Categoria + tag: Etiqueta + +# The tabs of sidebar +tabs: + # format: : + home: Inici + categories: Categories + tags: Etiquetes + archives: Arxiu + about: Sobre + +# the text displayed in the search bar & search results +search: + hint: Cercar + cancel: Cancel·lar + no_results: Ups! No s'han trobat resultats. + +panel: + lastmod: Actualitzat recentment + trending_tags: Etiquetes populars + toc: Taula de continguts + +copyright: + # Shown at the bottom of the post + license: + template: Aquesta entrada està llicenciada sota :LICENSE_NAME per l'autor. + name: CC BY 4.0 + link: https://creativecommons.org/licenses/by/4.0/ + + # Displayed in the footer + brief: Alguns drets reservats. + verbose: >- + Excepte que s'indiqui explícitament, les entrades d'aquest blog estan llicenciades + sota la llicència Creative Commons Attribution 4.0 International (CC BY 4.0) per l'autor. + +meta: Fet amb :PLATFORM utilitzant el tema :THEME + +not_found: + statement: Ho sentim, hem perdut aquesta URL o apunta a alguna cosa que no existeix. + +notification: + update_found: Hi ha una nova versió de contingut disponible. + update: Actualitzar + +# ----- Posts related labels ----- + +post: + written_by: Per + posted: Publicat + updated: Actualitzat + words: paraules + pageview_measure: visites + read_time: + unit: min + prompt: " de lectura" + relate_posts: Entrades relacionades + share: Compartir + button: + next: Següent + previous: Anterior + copy_code: + succeed: Copiat! + share_link: + title: Copiar enllaç + succeed: Enllaç copiat! + +# Date time format. +# See: , +df: + post: + strftime: "%Y/%m/%d" + dayjs: "YYYY/MM/DD" + +# categories page +categories: + category_measure: categories + post_measure: entrades diff --git a/_data/locales/cs-CZ.yml b/_data/locales/cs-CZ.yml index e515c08ff6f..cf93f614a6b 100644 --- a/_data/locales/cs-CZ.yml +++ b/_data/locales/cs-CZ.yml @@ -43,7 +43,7 @@ copyright: meta: Použití :PLATFORM s motivem :THEME not_found: - statment: Omlouváme se, adresu URL jsme špatně umístili nebo odkazuje na něco, co neexistuje. + statement: Omlouváme se, adresu URL jsme špatně umístili nebo odkazuje na něco, co neexistuje. notification: update_found: Je k dispozici nová verze obsahu. diff --git a/_data/locales/da-DK.yml b/_data/locales/da-DK.yml new file mode 100644 index 00000000000..4b41fb389ea --- /dev/null +++ b/_data/locales/da-DK.yml @@ -0,0 +1,86 @@ +# The layout text of site + +# ----- Commons label ----- + +layout: + post: Opslag + category: Kategori + tag: Tag + +# The tabs of sidebar +tabs: + # format: : + 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: En ny version af indholdet er fundet! + update: Opdater + +# ----- Posts related labels ----- + +post: + written_by: Af + posted: Udgivet + updated: Opdateret + words: ord + pageview_measure: visninger + read_time: + unit: min + prompt: læsetid + 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: , +df: + post: + strftime: "%Y/%m/%d" + dayjs: "YYYY/MM/DD" + +# categories page +categories: + category_measure: + singular: kategori + plural: kategorier + post_measure: opslag diff --git a/_data/locales/de-DE.yml b/_data/locales/de-DE.yml index 6b187b4c60d..6c9d91d469b 100644 --- a/_data/locales/de-DE.yml +++ b/_data/locales/de-DE.yml @@ -42,7 +42,7 @@ copyright: meta: Powered by :PLATFORM with :THEME theme not_found: - statment: Entschuldigung, dieser Link verweist auf keine vorhandene Ressource. + statement: Entschuldigung, dieser Link verweist auf keine vorhandene Ressource. notification: update_found: Eine neue Version ist verfügbar. @@ -76,7 +76,7 @@ df: post: strftime: "%d.%m.%Y" dayjs: "DD.MM.YYYY" - + # categories page categories: category_measure: diff --git "a/_data/locales/dv\342\200\221MV.yml" "b/_data/locales/dv\342\200\221MV.yml" new file mode 100644 index 00000000000..680ca1f8b4c --- /dev/null +++ "b/_data/locales/dv\342\200\221MV.yml" @@ -0,0 +1,90 @@ +# The layout text of site in Dhivehi (Maldives) + +# ----- Commons label ----- + +layout: + post: ޕޯސްޓް + category: ނަތީޖާ + tag: ޓެގް + +# The tabs of sidebar +tabs: + # format: : + 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: އޮޕްޑޭޓް + +# ----- Posts related labels ----- + +post: + written_by: ލެކްއޯލް + posted: ޕޯސްޓްކުރެވި + updated: އޮޕްޑޭޓްކުރެވި + words: ބަސް + pageview_measure: ބަނޑުކުރާ + read_time: + unit: މިނެޓް + prompt: އިސްކާރު + relate_posts: އެއްޗެހި ފަހުރަށްދަން + share: ސެއާރް + button: + next: އަދާވަނަ + previous: ކޮނޯނި + copy_code: + succeed: ކޮޕީ ކުރެވި! + share_link: + title: ލިންކް ކޮޕީ ކުރު + succeed: ލިންކް ހަދަންކުރެވި! + +# Date time format. +# See: , +df: + post: + strftime: "%b %e, %Y" + dayjs: "ll" + archives: + strftime: "%b" + dayjs: "MMM" + +categories: + category_measure: + singular: ނަތީޖާ + plural: ނަތީޖާތައް + post_measure: + singular: ޕޯސްޓް + plural: ޕޯސްޓްތައް diff --git a/_data/locales/el-GR.yml b/_data/locales/el-GR.yml index ab5fb0e7c9b..b6d2a866379 100644 --- a/_data/locales/el-GR.yml +++ b/_data/locales/el-GR.yml @@ -43,7 +43,7 @@ copyright: meta: Αξιοποιώντας την :PLATFORM theme :THEME not_found: - statment: Συγνώμη, έχουμε τοποθετήσει λάθος αυτήν την διεύθυνση URL ή υποδεικνύει κάτι που δεν υπάρχει. + statement: Συγνώμη, έχουμε τοποθετήσει λάθος αυτήν την διεύθυνση URL ή υποδεικνύει κάτι που δεν υπάρχει. notification: update_found: Υπάρχει διαθέσιμη μια νέα έκδοση του περιεχομένου. diff --git a/_data/locales/en.yml b/_data/locales/en.yml index 0dbe7136cc1..152d090ac21 100644 --- a/_data/locales/en.yml +++ b/_data/locales/en.yml @@ -43,7 +43,7 @@ copyright: meta: Using the :THEME theme for :PLATFORM. not_found: - statment: Sorry, we've misplaced that URL or it's pointing to something that doesn't exist. + statement: Sorry, we've misplaced that URL or it's pointing to something that doesn't exist. notification: update_found: A new version of content is available. diff --git a/_data/locales/es-ES.yml b/_data/locales/es-ES.yml index 552923086d6..8f8d149ea3e 100644 --- a/_data/locales/es-ES.yml +++ b/_data/locales/es-ES.yml @@ -43,7 +43,7 @@ copyright: meta: Hecho con :PLATFORM usando el tema :THEME not_found: - statment: Lo sentimos, hemos perdido esa URL o apunta a algo que no existe. + statement: Lo sentimos, hemos perdido esa URL o apunta a algo que no existe. notification: update_found: Hay una nueva versión de contenido disponible. diff --git a/_data/locales/fa-IR.yml b/_data/locales/fa-IR.yml new file mode 100644 index 00000000000..7a33deb1209 --- /dev/null +++ b/_data/locales/fa-IR.yml @@ -0,0 +1,91 @@ +# The layout text of site + +# ----- Commons label ----- + +layout: + post: پست + category: دسته‌بندی + tag: برچسب + +# The tabs of sidebar +tabs: + # format: : + home: خانه + categories: دسته‌بندی‌ها + tags: برچسب‌ها + archives: آرشیو + about: درباره + +# the text displayed in the search bar & search results +search: + hint: جستجو + cancel: لغو + no_results: متأسفیم! هیچ نتیجه‌ای یافت نشد. + +panel: + lastmod: آخرین به‌روزرسانی + trending_tags: برچسب‌های پرطرفدار + toc: فهرست مطالب + +copyright: + # Shown at the bottom of the post + license: + template: این پست تحت مجوز :LICENSE_NAME توسط نویسنده منتشر شده است. + name: CC BY 4.0 + link: https://creativecommons.org/licenses/by/4.0/ + + # Displayed in the footer + brief: برخی حقوق محفوظ است. + verbose: >- + به‌جز مواردی که خلاف آن ذکر شده باشد، محتوای پست‌های این وبلاگ + تحت مجوز Creative Commons Attribution 4.0 International (CC BY 4.0) توسط نویسنده منتشر شده‌اند. + +meta: با استفاده از قالب :THEME برای :PLATFORM + +not_found: + statement: متأسفیم، لینک زیر معتبر نیست یا به صفحه‌ای که وجود ندارد اشاره می‌کند. + +notification: + update_found: نسخه جدیدی از محتوا موجود است. + update: به‌روزرسانی + +# ----- Posts related labels ----- + +post: + written_by: نوشته شده توسط + posted: منتشر شده + updated: به‌روزرسانی شده + words: کلمه + pageview_measure: بازدید + read_time: + unit: "دقیقه " + prompt: " زمان مطالعه" + relate_posts: بیشتر بخوانید + share: اشتراک‌گذاری + button: + next: جدیدتر + previous: قدیمی‌تر + copy_code: + succeed: کپی شد! + share_link: + title: کپی لینک + succeed: لینک با موفقیت کپی شد! + +# Date time format. +# See: , +df: + post: + strftime: "%b %e, %Y" + dayjs: "ll" + archives: + strftime: "%b" + dayjs: "MMM" + +# categories page +categories: + category_measure: + singular: دسته‌بندی + plural: دسته‌بندی‌ + post_measure: + singular: پست + plural: پست‌ diff --git a/_data/locales/fi-FI.yml b/_data/locales/fi-FI.yml index c817d2b8580..60c9862054f 100644 --- a/_data/locales/fi-FI.yml +++ b/_data/locales/fi-FI.yml @@ -42,7 +42,7 @@ copyright: meta: Käytetään :PLATFORM iä Teema :THEME not_found: - statment: Valitettavasti tällä URL-osoitteella ei ole saatavilla sisältöä. + statement: Valitettavasti tällä URL-osoitteella ei ole saatavilla sisältöä. notification: update_found: Uusi versio sisällöstä on saatavilla. diff --git a/_data/locales/fr-FR.yml b/_data/locales/fr-FR.yml index 72b034db222..dce83c9f4e4 100644 --- a/_data/locales/fr-FR.yml +++ b/_data/locales/fr-FR.yml @@ -14,7 +14,7 @@ tabs: categories: Catégories tags: Tags archives: Archives - about: A propos de + about: À propos # the text displayed in the search bar & search results search: @@ -32,18 +32,18 @@ copyright: license: template: Cet article est sous licence :LICENSE_NAME par l'auteur. name: CC BY 4.0 - link: https://creativecommons.org/licenses/by/4.0/ + link: https://creativecommons.org/licenses/by/4.0/deed.fr # Displayed in the footer brief: Certains droits réservés. verbose: >- - Sauf mention contraire, les articles de ce site sont publiés sous licence + Sauf mention contraire, les articles de ce site sont publiés sous la licence Creative Commons Attribution 4.0 International (CC BY 4.0) par l'auteur. meta: Propulsé par :PLATFORM avec le thème :THEME not_found: - statment: Désolé, nous avons égaré cette URL ou elle pointe vers quelque chose qui n'existe pas. + statement: Désolé, nous avons égaré cette URL ou elle pointe vers quelque chose qui n'existe pas. notification: update_found: Une nouvelle version du contenu est disponible. diff --git a/_data/locales/hu-HU.yml b/_data/locales/hu-HU.yml index b09f2cdc91a..be3a31b7d63 100644 --- a/_data/locales/hu-HU.yml +++ b/_data/locales/hu-HU.yml @@ -14,24 +14,23 @@ tabs: categories: Kategóriák tags: Címkék archives: Archívum - about: Rólam + about: Bemutatkozás # the text displayed in the search bar & search results search: hint: keresés cancel: Mégse - no_results: Oops! Nincs találat a keresésre. + no_results: Hoppá! Nincs találat a keresésre. panel: lastmod: Legutóbb frissítve trending_tags: Népszerű Címkék toc: Tartalom - links: Blog linkek copyright: # Shown at the bottom of the post license: - template: A bejegyzés :LICENSE_NAME licenccel rendelkezik. + template: A bejegyzést a szerző :LICENSE_NAME licenc alatt engedélyezte. name: CC BY 4.0 link: https://creativecommons.org/licenses/by/4.0/ @@ -42,10 +41,10 @@ copyright: Creative Commons Attribution 4.0 International (CC BY 4.0) licenccel rendelkeznek, hacsak másképp nincs jelezve. -meta: Készítve :PLATFORM motorral :THEME témával +meta: Készítve :THEME témával a :PLATFORM platformra. not_found: - statment: Sajnáljuk, az URL-t rosszul helyeztük el, vagy valami nem létezőre mutat. + statement: Sajnáljuk, az URL-t rosszul helyeztük el, vagy valami nem létezőre mutat. notification: update_found: Elérhető a tartalom új verziója. @@ -73,7 +72,21 @@ post: title: Link másolása succeed: Link sikeresen másolva! +# Date time format. +# See: , +df: + post: + strftime: "%Y. %B. %e." + dayjs: "YYYY. MMMM D." + archives: + strftime: "%B" + dayjs: "MMM" + # categories page categories: - category_measure: kategória - post_measure: bejegyzés + category_measure: + singular: kategória + plural: kategória + post_measure: + singular: bejegyzés + plural: bejegyzés diff --git a/_data/locales/id-ID.yml b/_data/locales/id-ID.yml index 29ad15695c0..d772ec34f1a 100644 --- a/_data/locales/id-ID.yml +++ b/_data/locales/id-ID.yml @@ -43,7 +43,7 @@ copyright: meta: Didukung oleh :PLATFORM dengan tema :THEME not_found: - statment: Maaf, kami gagal menemukan URL itu atau memang mengarah ke sesuatu yang tidak ada. + statement: Maaf, kami gagal menemukan URL itu atau memang mengarah ke sesuatu yang tidak ada. notification: update_found: Versi konten baru tersedia. diff --git a/_data/locales/it-IT.yml b/_data/locales/it-IT.yml index cf7b691bcfd..c8dfb447c2c 100644 --- a/_data/locales/it-IT.yml +++ b/_data/locales/it-IT.yml @@ -42,7 +42,7 @@ copyright: meta: Servizio offerto da :PLATFORM con tema :THEME not_found: - statment: Ci scusiamo, non è stato possibile trovare l'URL in questione. Potrebbe puntare ad una pagina non esistente. + statement: Ci scusiamo, non è stato possibile trovare l'URL in questione. Potrebbe puntare ad una pagina non esistente. notification: update_found: Nuova versione del contenuto disponibile. diff --git a/_data/locales/ja-JP.yml b/_data/locales/ja-JP.yml new file mode 100644 index 00000000000..8e016b997c4 --- /dev/null +++ b/_data/locales/ja-JP.yml @@ -0,0 +1,84 @@ +# The layout text of site + +# ----- Commons label ----- + +layout: + post: 投稿 + category: カテゴリー + tag: タグ + +# The tabs of sidebar +tabs: + # format: : + 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: Some rights reserved. + verbose: >- + Except where otherwise noted, the blog posts on this site are licensed + under the Creative Commons Attribution 4.0 International (CC BY 4.0) License by the author. + +meta: :PLATFORM 用の :THEME を使用しています。 + +not_found: + statement: このURLは存在しないものを指し示しています。 + +notification: + update_found: 新しいバージョンが利用可能です。 + update: 更新 + +# ----- Posts related labels ----- + +post: + written_by: 投稿者 + posted: 投稿日 + updated: 更新日 + words: 語 + pageview_measure: 回閲覧 + read_time: + unit: 分 + prompt: で読めます + relate_posts: さらに読む + share: シェア + button: + next: 次 + previous: 前 + copy_code: + succeed: コピーしました + share_link: + title: リンクをコピー + succeed: リンクをコピーしました + +# Date time format. +# See: , +df: + post: + strftime: "%Y/%m/%d" + dayjs: "YYYY/MM/DD" + +# categories page +categories: + category_measure: カテゴリー + post_measure: 投稿 diff --git a/_data/locales/ko-KR.yml b/_data/locales/ko-KR.yml index 4dd221b9b74..82976349c88 100644 --- a/_data/locales/ko-KR.yml +++ b/_data/locales/ko-KR.yml @@ -43,7 +43,7 @@ copyright: meta: Powered by :PLATFORM with :THEME theme not_found: - statment: 해당 URL은 존재하지 않습니다. + statement: 해당 URL은 존재하지 않습니다. notification: update_found: 새 버전의 콘텐츠를 사용할 수 있습니다. diff --git a/_data/locales/ku-IQ.yml b/_data/locales/ku-IQ.yml new file mode 100644 index 00000000000..bcc53565f92 --- /dev/null +++ b/_data/locales/ku-IQ.yml @@ -0,0 +1,91 @@ +# The layout text of site in Kurdish (Sorani) + +# ----- Commons label ----- + +layout: + post: بابەت + category: هاوپۆل + tag: تاگ + +# The tabs of sidebar +tabs: + # format: : + 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: نوێکردنەوە + +# ----- Posts related labels ----- + +post: + written_by: نووسەر + posted: بڵاوکراوەتەوە + updated: نوێکراوەتەوە + words: وشە + pageview_measure: بینین + read_time: + unit: خولەک + prompt: خوێندنەوە + relate_posts: بابەتی پەیوەندیدار + share: بڵاوکردنەوە + button: + next: نوێتر + previous: کۆنتر + copy_code: + succeed: کۆپی کرا! + share_link: + title: کۆپی بەستەر + succeed: بەستەر بە سەرکەوتوویی کۆپی کرا! + +# Date time format. +# See: , +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: بابەت diff --git a/_data/locales/my-MM.yml b/_data/locales/my-MM.yml index 98848d59b86..d5bf728f9a9 100644 --- a/_data/locales/my-MM.yml +++ b/_data/locales/my-MM.yml @@ -43,7 +43,7 @@ copyright: meta: Powered by :PLATFORM with :THEME theme not_found: - statment: ဝမ်းနည်းပါသည်၊ ကျွန်ုပ်တို့သည် အဆိုပါ URL ကို မှားယွင်းစွာ နေရာချထားခြင်း သို့မဟုတ် ၎င်းသည် မရှိသောအရာကို ညွှန်ပြနေပါသည်။ + statement: ဝမ်းနည်းပါသည်၊ ကျွန်ုပ်တို့သည် အဆိုပါ URL ကို မှားယွင်းစွာ နေရာချထားခြင်း သို့မဟုတ် ၎င်းသည် မရှိသောအရာကို ညွှန်ပြနေပါသည်။ notification: update_found: အကြောင်းအရာဗားရှင်းအသစ်ကို ရနိုင်ပါပြီ။ diff --git a/_data/locales/nl-NL.yml b/_data/locales/nl-NL.yml new file mode 100644 index 00000000000..d7e8016d00d --- /dev/null +++ b/_data/locales/nl-NL.yml @@ -0,0 +1,90 @@ +# The layout text of site + +# ----- Commons label ----- + +layout: + post: Post + category: Categorie + tag: Tag + +# The tabs of sidebar +tabs: + # format: : + home: Startpagina + categories: Categorieën + tags: Tags + archives: Archief + about: Over + +# the text displayed in the search bar & search results +search: + hint: Zoek + cancel: Annuleer + no_results: Oops! Geen resultaat gevonden. + +panel: + lastmod: Recent Bijgewerkt + trending_tags: Trending Tags + toc: Inhoud + +copyright: + # Shown at the bottom of the post + license: + template: Alle posts zijn onder :LICENSE_NAME gepubliceerd door de auteur. + name: CC BY 4.0 + link: https://creativecommons.org/licenses/by/4.0/ + + # Displayed in the footer + brief: Sommige rechten voorbehouden. + verbose: >- + Tenzij anders vermeld, alle posts zijn onder de + Creative Commons Attribution 4.0 International (CC BY 4.0) gepubliceerd door de auteur. + +meta: Gebruikt :THEME + +not_found: + statement: Sorry, we hebben de URL verkeerd geplaatst of hij verwijst naar iets dat niet bestaat. + +notification: + update_found: Nieuwe versie van inhoud beschikbaar. + update: Update + +# ----- Posts related labels ----- +post: + written_by: Door + posted: Posted + updated: Bijgewerkt + words: woorden + pageview_measure: Gelezen + read_time: + unit: min + prompt: lees + relate_posts: Verder Lezen + share: Deel + button: + next: Volgende + previous: Vorige + copy_code: + succeed: Gekopieerd! + share_link: + title: Link kopiëren + succeed: Succesvol gekopieerd! + +# Date time format. +# See: , +df: + post: + strftime: "%b %e, %Y" + dayjs: "ll" + archives: + strftime: "%b" + dayjs: "MMM" + +# categories page +categories: + category_measure: + singular: categorie + plural: categorieën + post_measure: + singular: post + plural: posts diff --git "a/_data/locales/ps\342\200\221AF.yml" "b/_data/locales/ps\342\200\221AF.yml" new file mode 100644 index 00000000000..fca6877238c --- /dev/null +++ "b/_data/locales/ps\342\200\221AF.yml" @@ -0,0 +1,90 @@ +# The layout text of site in Pashto (Afghanistan) + +# ----- Commons label ----- + +layout: + post: لیکنه + category: وېشنيزه + tag: ټګ + +# The tabs of sidebar +tabs: + # format: : + home: کورپاڼه + categories: وېشنيزې + tags: ټګونه + archives: آرشيف + about: په اړه + +# the text displayed in the search bar & search results +search: + hint: لټون + cancel: لغوه + no_results: ها! هېڅ پایله ونه موندل شوه. + +panel: + lastmod: وروستی تازه + trending_tags: مشهور ټګونه + toc: منځپانګه + +copyright: + # Shown at the bottom of the post + license: + template: دا لیکنه د :LICENSE_NAME جواز لاندې د لیکوال له خوا خپره شوې ده. + name: CC BY 4.0 + link: https://creativecommons.org/licenses/by/4.0/ + + # Displayed in the footer + brief: ځینې حقونه خوندي دي. + verbose: >- + تر هغه ځایه چې بل ډول نه وي یاد شوي، د دې سایټ لیکنې + د لیکوال له خوا د کریټېو کامنز د انتساب 4.0 نړیوال (CC BY 4.0) جواز لاندې خپرېږي. + +meta: د :PLATFORM لپاره د :THEME موضوع کاروي. + +not_found: + statement: بښنه غواړو، دغه URL ناسم دی یا هغه څه ته اشاره کوي چې شتون نه لري. + +notification: + update_found: نوې نسخه شتون لري. + update: تازه + +# ----- Posts related labels ----- + +post: + written_by: لیکوال + posted: خپره شوې + updated: تازه شوې + words: کلمې + pageview_measure: کتنې + read_time: + unit: دقیقې + prompt: لوستل + relate_posts: نوره لوستنه + share: شریکول + button: + next: نوی + previous: زوړ + copy_code: + succeed: کاپي شو! + share_link: + title: لینک کاپي کړئ + succeed: لینک بریالي کاپي شو! + +# Date time format. +# See: , +df: + post: + strftime: "%b %e, %Y" + dayjs: "ll" + archives: + strftime: "%b" + dayjs: "MMM" + +categories: + category_measure: + singular: وېشنيزه + plural: وېشنيزې + post_measure: + singular: لیکنه + plural: لیکنې diff --git a/_data/locales/pt-BR.yml b/_data/locales/pt-BR.yml index 4cef833d2e2..7ca60a74b31 100644 --- a/_data/locales/pt-BR.yml +++ b/_data/locales/pt-BR.yml @@ -43,7 +43,7 @@ copyright: meta: Feito com :PLATFORM usando o tema :THEME not_found: - statment: Desculpe, a página não foi encontrada. + statement: Desculpe, a página não foi encontrada. notification: update_found: Uma nova versão do conteúdo está disponível. diff --git a/_data/locales/ru-RU.yml b/_data/locales/ru-RU.yml index 185407c136d..868ba95787f 100644 --- a/_data/locales/ru-RU.yml +++ b/_data/locales/ru-RU.yml @@ -42,7 +42,7 @@ copyright: meta: Использует тему :THEME для :PLATFORM not_found: - statment: Извините, мы перепутали URL-адрес или он указывает на что-то несуществующее. + statement: Извините, мы перепутали URL-адрес или он указывает на что-то несуществующее. notification: update_found: Доступна новая версия контента. @@ -76,7 +76,7 @@ df: post: strftime: "%d.%m.%Y" dayjs: "DD.MM.YYYY" - + # categories page categories: category_measure: diff --git a/_data/locales/sl-SI.yml b/_data/locales/sl-SI.yml index 7ab18b1deec..4d9434d4436 100644 --- a/_data/locales/sl-SI.yml +++ b/_data/locales/sl-SI.yml @@ -43,7 +43,7 @@ copyright: meta: Uporabljena :PLATFORM tema :THEME #Using the :PLATFORM theme :THEME not_found: - statment: Oprostite, hiperpovezava je neustrezna ali vsebina ne obstajata. #Sorry, we've misplaced that URL or it's pointing to something that doesn't exist. + statement: Oprostite, hiperpovezava je neustrezna ali vsebina ne obstajata. #Sorry, we've misplaced that URL or it's pointing to something that doesn't exist. notification: update_found: Novejša različica vsebine je na voljo. #A new version of content is available. diff --git a/_data/locales/sv-SE.yml b/_data/locales/sv-SE.yml index 7ec2ee23303..decb59cf31f 100644 --- a/_data/locales/sv-SE.yml +++ b/_data/locales/sv-SE.yml @@ -43,7 +43,7 @@ copyright: meta: Byggd med :PLATFORM och temat :THEME not_found: - statment: Ursäkta, vi har tappat bort den här webbadressen eller så pekar den på något som inte längre finns. + statement: Ursäkta, vi har tappat bort den här webbadressen eller så pekar den på något som inte längre finns. notification: update_found: Det finns en ny version av innehållet. diff --git a/_data/locales/th.yml b/_data/locales/th.yml index 22cb00aa53a..a3f41a0e16e 100644 --- a/_data/locales/th.yml +++ b/_data/locales/th.yml @@ -43,7 +43,7 @@ copyright: meta: กำลังใช้ธีมของ :PLATFORM ชื่อ :THEME not_found: - statment: ขออภัย เราวาง URL นั้นไว้ผิดที่ หรือมันชี้ไปยังสิ่งที่ไม่มีอยู่ + statement: ขออภัย เราวาง URL นั้นไว้ผิดที่ หรือมันชี้ไปยังสิ่งที่ไม่มีอยู่ notification: update_found: มีเวอร์ชันใหม่ของเนื้อหา diff --git a/_data/locales/tr-TR.yml b/_data/locales/tr-TR.yml index 50d81102f0d..768f57cd1c6 100644 --- a/_data/locales/tr-TR.yml +++ b/_data/locales/tr-TR.yml @@ -43,7 +43,7 @@ copyright: meta: :PLATFORM ve :THEME teması not_found: - statment: Üzgünüz, bu linki yanlış yerleştirdik veya var olmayan bir şeye işaret ediyor. + statement: Üzgünüz, bu linki yanlış yerleştirdik veya var olmayan bir şeye işaret ediyor. notification: update_found: İçeriğin yeni bir sürümü mevcut. diff --git a/_data/locales/uk-UA.yml b/_data/locales/uk-UA.yml index b6050738030..8fef52e8569 100644 --- a/_data/locales/uk-UA.yml +++ b/_data/locales/uk-UA.yml @@ -43,7 +43,7 @@ copyright: meta: Powered by :PLATFORM with :THEME theme not_found: - statment: Вибачте, це посилання вказує на ресурс, що не існує. + statement: Вибачте, це посилання вказує на ресурс, що не існує. notification: update_found: Доступна нова версія вмісту. diff --git a/_data/locales/ur-PK.yml b/_data/locales/ur-PK.yml new file mode 100644 index 00000000000..e5184df171c --- /dev/null +++ b/_data/locales/ur-PK.yml @@ -0,0 +1,90 @@ +# The layout text of site in Urdu (Pakistan) + +# ----- Commons label ----- + +layout: + post: تحریر + category: زمرہ + tag: ٹیگ + +# The tabs of sidebar +tabs: + # format: : + home: گھر + categories: زمروں + tags: ٹیگز + archives: محفوظات + about: تعارف + +# the text displayed in the search bar & search results +search: + hint: تلاش + cancel: منسوخ + no_results: اوہ! کوئی نتیجہ نہیں ملا۔ + +panel: + lastmod: حال ہی میں اپ ڈیٹ + trending_tags: مقبول ٹیگز + toc: مواد + +copyright: + # Shown at the bottom of the post + license: + template: یہ تحریر :LICENSE_NAME کے تحت مصنف کی جانب سے لائسنس یافتہ ہے۔ + name: CC BY 4.0 + link: https://creativecommons.org/licenses/by/4.0/ + + # Displayed in the footer + brief: کچھ حقوق محفوظ ہیں۔ + verbose: >- + جب تک کہ دوسری صورت میں ذکر نہ ہو، اس سائٹ کی تحریریں + مصنف کی جانب سے تخلیقی العام انتساب 4.0 بین الاقوامی (CC BY 4.0) لائسنس کے تحت دستیاب ہیں۔ + +meta: :PLATFORM کے لیے :THEME تھیم استعمال کیا جا رہا ہے۔ + +not_found: + statement: معذرت، یہ URL غلط ہے یا جس چیز کی طرف اشارہ کر رہا ہے وہ موجود نہیں۔ + +notification: + update_found: نیا مواد دستیاب ہے۔ + update: اپ ڈیٹ + +# ----- Posts related labels ----- + +post: + written_by: از + posted: شائع شدہ + updated: اپ ڈیٹ شدہ + words: لفظ + pageview_measure: مشاہدات + read_time: + unit: منٹ + prompt: پڑھیں + relate_posts: مزید مطالعہ + share: شیئر + button: + next: نیا + previous: پرانا + copy_code: + succeed: کاپی ہو گیا! + share_link: + title: لنک کاپی کریں + succeed: لنک کامیابی سے کاپی ہو گیا! + +# Date time format. +# See: , +df: + post: + strftime: "%b %e, %Y" + dayjs: "ll" + archives: + strftime: "%b" + dayjs: "MMM" + +categories: + category_measure: + singular: زمرہ + plural: زمروں + post_measure: + singular: تحریر + plural: تحریریں diff --git a/_data/locales/vi-VN.yml b/_data/locales/vi-VN.yml index 617431a0b65..6c2ceffde38 100644 --- a/_data/locales/vi-VN.yml +++ b/_data/locales/vi-VN.yml @@ -42,7 +42,7 @@ copyright: meta: Trang web này được tạo bởi :PLATFORM với chủ đề :THEME not_found: - statment: Xin lỗi, chúng tôi đã đặt nhầm URL hoặc đường dẫn trỏ đến một trang nào đó không tồn tại. + statement: Xin lỗi, chúng tôi đã đặt nhầm URL hoặc đường dẫn trỏ đến một trang nào đó không tồn tại. notification: update_found: Đã có phiên bản mới của nội dung. diff --git a/_data/locales/zh-CN.yml b/_data/locales/zh-CN.yml index f8281346777..5c134101834 100644 --- a/_data/locales/zh-CN.yml +++ b/_data/locales/zh-CN.yml @@ -42,7 +42,7 @@ copyright: meta: 本站采用 :PLATFORM 主题 :THEME not_found: - statment: 抱歉,我们放错了该 URL,或者它指向了不存在的内容。 + statement: 抱歉,我们放错了该 URL,或者它指向了不存在的内容。 notification: update_found: 发现新版本的内容。 diff --git a/_data/locales/zh-TW.yml b/_data/locales/zh-TW.yml index 911253b6a3f..33a4330bb0f 100644 --- a/_data/locales/zh-TW.yml +++ b/_data/locales/zh-TW.yml @@ -42,7 +42,7 @@ copyright: meta: 本網站使用 :PLATFORM 產生,採用 :THEME 主題 not_found: - statment: 抱歉,您可能正在存取一個已被移動的 URL,或者它從未存在。 + statement: 抱歉,您可能正在存取一個已被移動的 URL,或者它從未存在。 notification: update_found: 發現新版本更新。 diff --git a/_data/media.yml b/_data/media.yml new file mode 100644 index 00000000000..9cd69b4ce95 --- /dev/null +++ b/_data/media.yml @@ -0,0 +1,18 @@ +- extension: mp3 + mime_type: mpeg +- extension: mov + mime_type: quicktime +- extension: avi + mime_type: x-msvideo +- extension: mkv + mime_type: x-matroska +- extension: ogv + mime_type: ogg +- extension: weba + mime_type: webm +- extension: 3gp + mime_type: 3gpp +- extension: 3g2 + mime_type: 3gpp2 +- extension: mid + mime_type: midi diff --git a/_data/origin/basic.yml b/_data/origin/basic.yml index ed99ea850a6..2d5298229d3 100644 --- a/_data/origin/basic.yml +++ b/_data/origin/basic.yml @@ -4,13 +4,6 @@ webfonts: /assets/lib/fonts/main.css # Libraries -jquery: - js: /assets/lib/jquery/jquery.min.js - -bootstrap: - css: /assets/lib/bootstrap/bootstrap.min.css - js: /assets/lib/bootstrap/bootstrap.bundle.min.js - toc: css: /assets/lib/tocbot/tocbot.min.css js: /assets/lib/tocbot/tocbot.min.js @@ -27,13 +20,13 @@ mermaid: dayjs: js: common: /assets/lib/dayjs/dayjs.min.js - locale: /assets/lib/dayjs/locale/en.min.js - relativeTime: /assets/lib/dayjs/plugin/relativeTime.min.js - localizedFormat: /assets/lib/dayjs/plugin/localizedFormat.min.js + locale: /assets/lib/dayjs/locale/en.js + relativeTime: /assets/lib/dayjs/plugin/relativeTime.js + localizedFormat: /assets/lib/dayjs/plugin/localizedFormat.js -magnific-popup: - css: /assets/lib/magnific-popup/magnific-popup.css - js: /assets/lib/magnific-popup/jquery.magnific-popup.min.js +glightbox: + css: /assets/lib/glightbox/glightbox.min.css + js: /assets/lib/glightbox/glightbox.min.js lazy-polyfill: css: /assets/lib/loading-attribute-polyfill/loading-attribute-polyfill.min.css diff --git a/_data/origin/cors.yml b/_data/origin/cors.yml index b6c8674205f..ce99f814109 100644 --- a/_data/origin/cors.yml +++ b/_data/origin/cors.yml @@ -1,52 +1,47 @@ -# CDNs - -cdns: - # Google Fonts +# Resource Hints +resource_hints: - url: https://fonts.googleapis.com + links: + - rel: preconnect + - rel: dns-prefetch - url: https://fonts.gstatic.com - args: crossorigin - - url: https://fonts.googleapis.com - # jsDelivr CDN + links: + - rel: preconnect + opts: [crossorigin] + - rel: dns-prefetch - url: https://cdn.jsdelivr.net - # polyfill.io for math (cdnjs.cloudflare.com/polyfill) - - url: https://cdnjs.cloudflare.com - -# fonts + links: + - rel: preconnect + - rel: dns-prefetch -webfonts: https://fonts.googleapis.com/css2?family=Lato&family=Source+Sans+Pro:wght@400;600;700;900&display=swap +# Web Fonts +webfonts: https://fonts.googleapis.com/css2?family=Lato:wght@300;400&family=Source+Sans+Pro:wght@400;600;700;900&display=swap # Libraries -jquery: - js: https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js - -bootstrap: - css: https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css - js: https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js - toc: - css: https://cdn.jsdelivr.net/npm/tocbot@4.25.0/dist/tocbot.min.css - js: https://cdn.jsdelivr.net/npm/tocbot@4.25.0/dist/tocbot.min.js + css: https://cdn.jsdelivr.net/npm/tocbot@4.36.4/dist/tocbot.min.css + js: https://cdn.jsdelivr.net/npm/tocbot@4.36.4/dist/tocbot.min.js fontawesome: - css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.5.1/css/all.min.css + css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@7.1.0/css/all.min.css search: js: https://cdn.jsdelivr.net/npm/simple-jekyll-search@1.10.0/dest/simple-jekyll-search.min.js mermaid: - js: https://cdn.jsdelivr.net/npm/mermaid@10.8.0/dist/mermaid.min.js + js: https://cdn.jsdelivr.net/npm/mermaid@11.12.0/dist/mermaid.min.js dayjs: js: - common: https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js - locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.10/locale/:LOCALE.min.js - relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.10/plugin/relativeTime.min.js - localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.10/plugin/localizedFormat.min.js - -magnific-popup: - css: https://cdn.jsdelivr.net/npm/magnific-popup@1.1.0/dist/magnific-popup.min.css - js: https://cdn.jsdelivr.net/npm/magnific-popup@1.1.0/dist/jquery.magnific-popup.min.js + common: https://cdn.jsdelivr.net/npm/dayjs@1.11.18/dayjs.min.js + locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.18/locale/:LOCALE.js + relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.18/plugin/relativeTime.js + localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.18/plugin/localizedFormat.js + +glightbox: + css: https://cdn.jsdelivr.net/npm/glightbox@3.3.0/dist/css/glightbox.min.css + js: https://cdn.jsdelivr.net/npm/glightbox@3.3.0/dist/js/glightbox.min.js lazy-polyfill: css: https://cdn.jsdelivr.net/npm/loading-attribute-polyfill@2.1.1/dist/loading-attribute-polyfill.min.css diff --git a/_data/share.yml b/_data/share.yml index d572e6dcb39..edbc02b26b0 100644 --- a/_data/share.yml +++ b/_data/share.yml @@ -18,11 +18,11 @@ platforms: # # - type: Linkedin # icon: "fab fa-linkedin" - # link: "https://www.linkedin.com/sharing/share-offsite/?url=URL" + # link: "https://www.linkedin.com/feed/?shareActive=true&shareUrl=URL" # # - type: Weibo # icon: "fab fa-weibo" - # link: "http://service.weibo.com/share/share.php?title=TITLE&url=URL" + # link: "https://service.weibo.com/share/share.php?title=TITLE&url=URL" # # - type: Mastodon # icon: "fa-brands fa-mastodon" @@ -36,3 +36,15 @@ platforms: # link: "https://fosstodon.org/" # - label: photog.social # link: "https://photog.social/" + # + # - type: Bluesky + # icon: "fa-brands fa-bluesky" + # link: "https://bsky.app/intent/compose?text=TITLE%20URL" + # + # - type: Reddit + # icon: "fa-brands fa-square-reddit" + # link: "https://www.reddit.com/submit?url=URL&title=TITLE" + # + # - type: Threads + # icon: "fa-brands fa-square-threads" + # link: "https://www.threads.net/intent/post?text=TITLE%20URL" diff --git a/_includes/analytics/cloudflare.html b/_includes/analytics/cloudflare.html new file mode 100644 index 00000000000..9faa11ee3b4 --- /dev/null +++ b/_includes/analytics/cloudflare.html @@ -0,0 +1,6 @@ + + diff --git a/_includes/analytics/fathom.html b/_includes/analytics/fathom.html new file mode 100644 index 00000000000..216bb140c00 --- /dev/null +++ b/_includes/analytics/fathom.html @@ -0,0 +1,6 @@ + + diff --git a/_includes/analytics/goatcounter.html b/_includes/analytics/goatcounter.html new file mode 100644 index 00000000000..3867fdba95b --- /dev/null +++ b/_includes/analytics/goatcounter.html @@ -0,0 +1,6 @@ + + diff --git a/_includes/analytics/google.html b/_includes/analytics/google.html new file mode 100644 index 00000000000..dfe4828c5f0 --- /dev/null +++ b/_includes/analytics/google.html @@ -0,0 +1,13 @@ + + + diff --git a/_includes/analytics/matomo.html b/_includes/analytics/matomo.html new file mode 100644 index 00000000000..caaa63e3ce3 --- /dev/null +++ b/_includes/analytics/matomo.html @@ -0,0 +1,13 @@ + + diff --git a/_includes/analytics/umami.html b/_includes/analytics/umami.html new file mode 100644 index 00000000000..bfcb1d09ff6 --- /dev/null +++ b/_includes/analytics/umami.html @@ -0,0 +1,6 @@ + + diff --git a/_includes/comment.html b/_includes/comment.html new file mode 100644 index 00000000000..fef135f0b2f --- /dev/null +++ b/_includes/comment.html @@ -0,0 +1,5 @@ + +{% if page.comments and site.comments.provider %} + {% capture path %}comments/{{ site.comments.provider }}.html{% endcapture %} + {% include {{ path }} %} +{% endif %} diff --git a/_includes/comments.html b/_includes/comments.html deleted file mode 100644 index 39e521facbb..00000000000 --- a/_includes/comments.html +++ /dev/null @@ -1,5 +0,0 @@ - -{% if page.comments and site.comments.active %} - {% capture path %}comments/{{ site.comments.active }}.html{% endcapture %} - {% include {{ path }} %} -{% endif %} diff --git a/_includes/comments/disqus.html b/_includes/comments/disqus.html index e59ed37dd2b..fd12a3c724e 100644 --- a/_includes/comments/disqus.html +++ b/_includes/comments/disqus.html @@ -1,39 +1,26 @@ - - -
-

Comments powered by Disqus.

-
- - diff --git a/_includes/comments/giscus.html b/_includes/comments/giscus.html index 8f042468e62..8058472028f 100644 --- a/_includes/comments/giscus.html +++ b/_includes/comments/giscus.html @@ -1,21 +1,13 @@ - - - diff --git a/_includes/embed/audio.html b/_includes/embed/audio.html new file mode 100644 index 00000000000..bb20688e4b2 --- /dev/null +++ b/_includes/embed/audio.html @@ -0,0 +1,35 @@ +{% assign src = include.src | strip %} +{% assign title = include.title | strip %} +{% assign types = include.types | default: '' | strip | split: '|' %} + +{% unless src contains '://' %} + {%- capture src -%} + {% include media-url.html src=src subpath=page.media_subpath %} + {%- endcapture -%} +{% endunless %} + +

+ + {% if title %} + {{ title }} + {% endif %} +

diff --git a/_includes/embed/bilibili.html b/_includes/embed/bilibili.html index eaa09d84607..0aa5552ddfe 100644 --- a/_includes/embed/bilibili.html +++ b/_includes/embed/bilibili.html @@ -1,10 +1,9 @@ \ No newline at end of file +> diff --git a/_includes/embed/spotify.html b/_includes/embed/spotify.html new file mode 100644 index 00000000000..4e0a848d583 --- /dev/null +++ b/_includes/embed/spotify.html @@ -0,0 +1,22 @@ +{% assign size = 352 %} +{% assign theme = '' %} + +{% if include.compact %} + {% assign size = 152 %} +{% endif %} + +{% if include.dark %} + {% assign theme = '?theme=0' %} +{% endif %} + + diff --git a/_includes/embed/video.html b/_includes/embed/video.html new file mode 100644 index 00000000000..9b6918f7b57 --- /dev/null +++ b/_includes/embed/video.html @@ -0,0 +1,59 @@ +{% assign video_url = include.src %} +{% assign title = include.title %} +{% assign poster_url = include.poster %} +{% assign types = include.types | default: '' | strip | split: '|' %} + +{% unless video_url contains '://' %} + {%- capture video_url -%} + {% include media-url.html src=video_url subpath=page.media_subpath %} + {%- endcapture -%} +{% endunless %} + +{% if poster_url %} + {% unless poster_url contains '://' %} + {%- capture poster_url -%} + {% include media-url.html src=poster_url subpath=page.media_subpath %} + {%- endcapture -%} + {% endunless %} + {% assign poster = 'poster="' | append: poster_url | append: '"' %} +{% endif %} + +{% assign attributes = 'controls' %} + +{% if include.autoplay %} + {% assign attributes = attributes | append: ' ' | append: 'autoplay' %} +{% endif %} + +{% if include.loop %} + {% assign attributes = attributes | append: ' ' | append: 'loop' %} +{% endif %} + +{% if include.muted %} + {% assign attributes = attributes | append: ' ' | append: 'muted' %} +{% endif %} + +

+ + {% if title %} + {{ title }} + {% endif %} +

diff --git a/_includes/embed/youtube.html b/_includes/embed/youtube.html index 640011f885d..8f080021cc4 100644 --- a/_includes/embed/youtube.html +++ b/_includes/embed/youtube.html @@ -1,5 +1,5 @@