diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 0000000..39c428d
--- /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 0000000..a4bc282
--- /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_BACKUP_37702.yml b/.github/DISCUSSION_TEMPLATE/general_BACKUP_37702.yml
new file mode 100644
index 0000000..18d0f85
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general_BACKUP_37702.yml
@@ -0,0 +1,17 @@
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Following the guidelines can make you more likely to get responses.
+ options:
+ - label: >-
+ I have read and accepted the
+ [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Please describe in detail what you want to share.
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/general_BACKUP_38091.yml b/.github/DISCUSSION_TEMPLATE/general_BACKUP_38091.yml
new file mode 100644
index 0000000..18d0f85
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general_BACKUP_38091.yml
@@ -0,0 +1,17 @@
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Following the guidelines can make you more likely to get responses.
+ options:
+ - label: >-
+ I have read and accepted the
+ [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Please describe in detail what you want to share.
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/general_BACKUP_38288.yml b/.github/DISCUSSION_TEMPLATE/general_BACKUP_38288.yml
new file mode 100644
index 0000000..18d0f85
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general_BACKUP_38288.yml
@@ -0,0 +1,17 @@
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Following the guidelines can make you more likely to get responses.
+ options:
+ - label: >-
+ I have read and accepted the
+ [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Please describe in detail what you want to share.
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/general_BACKUP_38466.yml b/.github/DISCUSSION_TEMPLATE/general_BACKUP_38466.yml
new file mode 100644
index 0000000..18d0f85
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general_BACKUP_38466.yml
@@ -0,0 +1,17 @@
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Following the guidelines can make you more likely to get responses.
+ options:
+ - label: >-
+ I have read and accepted the
+ [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Please describe in detail what you want to share.
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/general_BACKUP_38614.yml b/.github/DISCUSSION_TEMPLATE/general_BACKUP_38614.yml
new file mode 100644
index 0000000..18d0f85
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general_BACKUP_38614.yml
@@ -0,0 +1,17 @@
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Following the guidelines can make you more likely to get responses.
+ options:
+ - label: >-
+ I have read and accepted the
+ [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Please describe in detail what you want to share.
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/general_BASE_37702.yml b/.github/DISCUSSION_TEMPLATE/general_BASE_37702.yml
new file mode 100644
index 0000000..4e879f9
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general_BASE_37702.yml
@@ -0,0 +1,26 @@
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Following the guidelines can make you more likely to get responses.
+ options:
+ - label: >-
+ I have read and accepted the
+ [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
+ required: true
+
+ - type: dropdown
+ attributes:
+ label: What is the topic?
+ options:
+ - Sharing tips and tricks
+ - Just chatting
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Please describe in detail what you want to share.
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/general_BASE_38091.yml b/.github/DISCUSSION_TEMPLATE/general_BASE_38091.yml
new file mode 100644
index 0000000..4e879f9
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general_BASE_38091.yml
@@ -0,0 +1,26 @@
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Following the guidelines can make you more likely to get responses.
+ options:
+ - label: >-
+ I have read and accepted the
+ [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
+ required: true
+
+ - type: dropdown
+ attributes:
+ label: What is the topic?
+ options:
+ - Sharing tips and tricks
+ - Just chatting
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Please describe in detail what you want to share.
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/general_BASE_38288.yml b/.github/DISCUSSION_TEMPLATE/general_BASE_38288.yml
new file mode 100644
index 0000000..4e879f9
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general_BASE_38288.yml
@@ -0,0 +1,26 @@
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Following the guidelines can make you more likely to get responses.
+ options:
+ - label: >-
+ I have read and accepted the
+ [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
+ required: true
+
+ - type: dropdown
+ attributes:
+ label: What is the topic?
+ options:
+ - Sharing tips and tricks
+ - Just chatting
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Please describe in detail what you want to share.
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/general_BASE_38466.yml b/.github/DISCUSSION_TEMPLATE/general_BASE_38466.yml
new file mode 100644
index 0000000..4e879f9
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general_BASE_38466.yml
@@ -0,0 +1,26 @@
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Following the guidelines can make you more likely to get responses.
+ options:
+ - label: >-
+ I have read and accepted the
+ [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
+ required: true
+
+ - type: dropdown
+ attributes:
+ label: What is the topic?
+ options:
+ - Sharing tips and tricks
+ - Just chatting
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Please describe in detail what you want to share.
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/general_BASE_38614.yml b/.github/DISCUSSION_TEMPLATE/general_BASE_38614.yml
new file mode 100644
index 0000000..4e879f9
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general_BASE_38614.yml
@@ -0,0 +1,26 @@
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Following the guidelines can make you more likely to get responses.
+ options:
+ - label: >-
+ I have read and accepted the
+ [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
+ required: true
+
+ - type: dropdown
+ attributes:
+ label: What is the topic?
+ options:
+ - Sharing tips and tricks
+ - Just chatting
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Please describe in detail what you want to share.
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/general_LOCAL_37702.yml b/.github/DISCUSSION_TEMPLATE/general_LOCAL_37702.yml
new file mode 100644
index 0000000..e69de29
diff --git a/.github/DISCUSSION_TEMPLATE/general_LOCAL_38091.yml b/.github/DISCUSSION_TEMPLATE/general_LOCAL_38091.yml
new file mode 100644
index 0000000..e69de29
diff --git a/.github/DISCUSSION_TEMPLATE/general_LOCAL_38288.yml b/.github/DISCUSSION_TEMPLATE/general_LOCAL_38288.yml
new file mode 100644
index 0000000..e69de29
diff --git a/.github/DISCUSSION_TEMPLATE/general_LOCAL_38466.yml b/.github/DISCUSSION_TEMPLATE/general_LOCAL_38466.yml
new file mode 100644
index 0000000..e69de29
diff --git a/.github/DISCUSSION_TEMPLATE/general_LOCAL_38614.yml b/.github/DISCUSSION_TEMPLATE/general_LOCAL_38614.yml
new file mode 100644
index 0000000..e69de29
diff --git a/.github/DISCUSSION_TEMPLATE/general_REMOTE_37702.yml b/.github/DISCUSSION_TEMPLATE/general_REMOTE_37702.yml
new file mode 100644
index 0000000..18d0f85
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general_REMOTE_37702.yml
@@ -0,0 +1,17 @@
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Following the guidelines can make you more likely to get responses.
+ options:
+ - label: >-
+ I have read and accepted the
+ [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Please describe in detail what you want to share.
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/general_REMOTE_38091.yml b/.github/DISCUSSION_TEMPLATE/general_REMOTE_38091.yml
new file mode 100644
index 0000000..18d0f85
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general_REMOTE_38091.yml
@@ -0,0 +1,17 @@
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Following the guidelines can make you more likely to get responses.
+ options:
+ - label: >-
+ I have read and accepted the
+ [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Please describe in detail what you want to share.
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/general_REMOTE_38288.yml b/.github/DISCUSSION_TEMPLATE/general_REMOTE_38288.yml
new file mode 100644
index 0000000..18d0f85
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general_REMOTE_38288.yml
@@ -0,0 +1,17 @@
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Following the guidelines can make you more likely to get responses.
+ options:
+ - label: >-
+ I have read and accepted the
+ [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Please describe in detail what you want to share.
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/general_REMOTE_38466.yml b/.github/DISCUSSION_TEMPLATE/general_REMOTE_38466.yml
new file mode 100644
index 0000000..18d0f85
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general_REMOTE_38466.yml
@@ -0,0 +1,17 @@
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Following the guidelines can make you more likely to get responses.
+ options:
+ - label: >-
+ I have read and accepted the
+ [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Please describe in detail what you want to share.
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/general_REMOTE_38614.yml b/.github/DISCUSSION_TEMPLATE/general_REMOTE_38614.yml
new file mode 100644
index 0000000..18d0f85
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/general_REMOTE_38614.yml
@@ -0,0 +1,17 @@
+body:
+ - type: checkboxes
+ attributes:
+ label: Checklist
+ description: Following the guidelines can make you more likely to get responses.
+ options:
+ - label: >-
+ I have read and accepted the
+ [contributing guidelines](https://github.com/cotes2020/jekyll-theme-chirpy/blob/master/docs/CONTRIBUTING.md).
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Description
+ description: Please describe in detail what you want to share.
+ validations:
+ required: true
diff --git a/.github/DISCUSSION_TEMPLATE/ideas.yml b/.github/DISCUSSION_TEMPLATE/ideas.yml
new file mode 100644
index 0000000..e4c987d
--- /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/workflows/pr-filter.yml b/.github/workflows/pr-filter.yml
new file mode 100644
index 0000000..8e9a18b
--- /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@v4
+
+ - name: Check PR Content
+ id: intercept
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ const script = require('.github/workflows/scripts/pr-filter.js');
+ await script({ github, context, core });
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
new file mode 100644
index 0000000..b0f9713
--- /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 0000000..03f50dc
--- /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)
+ );
+}
+
+module.exports = 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/.gitignore b/.gitignore
index 859686b..a5e9948 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@ Gemfile.lock
# Jekyll cache
.jekyll-cache
+.jekyll-metadata
_site
# RubyGems
@@ -16,5 +17,10 @@ package-lock.json
# IDE configurations
.idea
+.vscode/*
+!.vscode/settings.json
+!.vscode/extensions.json
+!.vscode/tasks.json
# Misc
+_sass/dist
diff --git a/.gitignore.orig b/.gitignore.orig
new file mode 100644
index 0000000..cc49483
--- /dev/null
+++ b/.gitignore.orig
@@ -0,0 +1,30 @@
+# Bundler cache
+.bundle
+vendor
+Gemfile.lock
+
+# Jekyll cache
+.jekyll-cache
+.jekyll-metadata
+_site
+
+# RubyGems
+*.gem
+
+# NPM dependencies
+node_modules
+package-lock.json
+
+# IDE configurations
+.idea
+.vscode/*
+!.vscode/settings.json
+!.vscode/extensions.json
+!.vscode/tasks.json
+
+# Misc
+<<<<<<< HEAD
+=======
+_sass/dist
+assets/js/dist
+>>>>>>> upstream_master
diff --git a/.husky/commit-msg b/.husky/commit-msg
old mode 100755
new mode 100644
index 7f23494..0a4b97d
--- 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 0000000..831991e
--- /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/.vscode/extensions.json b/.vscode/extensions.json
index 6927cd1..082bc94 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 4fcded4..5e8a04f 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 0000000..99ed5c5
--- /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 043b28e..e541574 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 0e074cf..7e57b2a 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 1acf77e..c2186bf 100644
--- a/_config.yml
+++ b/_config.yml
@@ -1,13 +1,13 @@
# The Site Configuration
theme: jekyll-theme-chirpy
lang: en
-timezone: Europe/Istanbul
+timezone: Europe/Istanbul
# See for Jekyll SEO Tag Settings: https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md
-title: Aliberk Sandıkçı
+title: Aliberk Sandıkçı
tagline: Personal Website & Blog
-description: >-
+description: >-
Personal Website & Blog of Aliberk Sandıkçı
url: "https://asandikci.com"
@@ -15,18 +15,28 @@ baseurl: "/"
forgejo:
username: asandikci
- domain: 'git.aliberksandikci.com.tr'
+ domain: "git.asandikci.com"
+
+github:
+ username: asandikci
social:
name: Aliberk Sandıkçı
email: contact@aliberksandikci.com.tr
links:
- - https://git.aliberksandikci.com.tr/asandikci
+ - https://git.asandikci.com/asandikci
+ - https://github.com/asandikci
- https://mastodon.social/@asandikci
- https://www.linkedin.com/in/asandikci
theme_mode: # [light | dark]
+# Web Analytics Settings
+analytics:
+ umami:
+ id: 80f4b239-3529-46be-b7a1-df82c6967a87
+ domain: analytics.yayindasin.org
+
# the avatar on sidebar, support local or CORS resources
avatar: https://asandikci.com/assets/img/pp.png
@@ -38,8 +48,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/
@@ -53,6 +64,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`
@@ -66,9 +78,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.
@@ -80,6 +92,7 @@ paginate: 10
# ------------ 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
@@ -116,10 +129,6 @@ defaults:
values:
layout: page
permalink: /:title/
- - scope:
- path: assets/js/dist
- values:
- swcache: true
sass:
style: compressed
@@ -140,7 +149,7 @@ exclude:
- tools
- README.md
- LICENSE
- - rollup.config.js
+ - "*.config.js"
- package*.json
jekyll-archives:
diff --git a/_data/contact.yml b/_data/contact.yml
index 317906f..7e28f1a 100644
--- a/_data/contact.yml
+++ b/_data/contact.yml
@@ -34,4 +34,16 @@
- type: rss
icon: "fas fa-rss"
- noblank: true
\ No newline at end of file
+ noblank: true
+#
+# - 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
\ No newline at end of file
diff --git a/_data/contact.yml.orig b/_data/contact.yml.orig
new file mode 100644
index 0000000..de876aa
--- /dev/null
+++ b/_data/contact.yml.orig
@@ -0,0 +1,66 @@
+# The contact options.
+
+- type: forgejo
+ icon: "fa-solid fa-code-branch"
+ url: 'https://git.aliberksandikci.com.tr/'
+
+- type: xmpp
+ icon: 'fa fa-xmpp'
+ url: 'xmpp:asandikci@aliberksandikci.com.tr'
+
+- type: email
+ icon: "fas fa-envelope"
+ noblank: false
+
+- type: mastodon
+ icon: 'fa fa-mastodon'
+ url: 'https://mastodon.social/@asandikci/'
+
+- type: linkedin
+ icon: 'fab fa-linkedin'
+ url: 'https://linkedin.com/in/asandikci'
+
+- type: discord
+ icon: 'fa fa-discord'
+ url: 'https://discord.com/users/987999573479944222'
+
+- type: instagram
+ icon: 'fa fa-instagram'
+ url: 'https://instagram.com/aliberksandikci'
+
+- type: codeberg
+ icon: 'fl-codeberg'
+ url: 'https://codeberg.org/asandikci'
+
+- type: rss
+ icon: "fas fa-rss"
+<<<<<<< HEAD
+ noblank: true
+=======
+ noblank: true
+# Uncomment and complete the url below to enable more contact options
+#
+# - type: mastodon
+# icon: 'fab fa-mastodon' # icons powered by
+# url: '' # Fill with your Mastodon account page, rel="me" will be applied for verification
+#
+# - type: linkedin
+# icon: 'fab fa-linkedin' # icons powered by
+# url: '' # Fill with your Linkedin homepage
+#
+# - 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
+>>>>>>> upstream_master
diff --git a/_data/locales/ar.yml b/_data/locales/ar.yml
index c608298..a79e020 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 3e04993..3fb060f 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/cs-CZ.yml b/_data/locales/cs-CZ.yml
index e515c08..cf93f61 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/de-DE.yml b/_data/locales/de-DE.yml
index 6b187b4..6c9d91d 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/el-GR.yml b/_data/locales/el-GR.yml
index ab5fb0e..b6d2a86 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 0dbe713..152d090 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 5529230..8f8d149 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/fi-FI.yml b/_data/locales/fi-FI.yml
index c817d2b..60c9862 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 72b034d..dce83c9 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 b09f2cd..be3a31b 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 29ad156..d772ec3 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 cf7b691..c8dfb44 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/ko-KR.yml b/_data/locales/ko-KR.yml
index 4dd221b..8297634 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/my-MM.yml b/_data/locales/my-MM.yml
index 98848d5..d5bf728 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/pt-BR.yml b/_data/locales/pt-BR.yml
index 4cef833..7ca60a7 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 185407c..868ba95 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 7ab18b1..4d9434d 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 7ec2ee2..decb59c 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 22cb00a..a3f41a0 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 50d8110..768f57c 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 b605073..8fef52e 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/vi-VN.yml b/_data/locales/vi-VN.yml
index 617431a..6c2ceff 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 f828134..5c13410 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 911253b..33a4330 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 0000000..9cd69b4
--- /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 ed99ea8..2d52982 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 c319411..1526b06 100644
--- a/_data/origin/cors.yml
+++ b/_data/origin/cors.yml
@@ -1,32 +1,27 @@
-# 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
+ links:
+ - rel: preconnect
+ - rel: dns-prefetch
-# fonts
-
-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.29.0/dist/tocbot.min.css
+ js: https://cdn.jsdelivr.net/npm/tocbot@4.29.0/dist/tocbot.min.js
fontlogos:
css: https://cdn.jsdelivr.net/npm/font-logos@1/assets/font-logos.css
@@ -35,7 +30,7 @@ forkawesome:
css: https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css
fontawesome:
- css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.5.2/css/all.min.css
+ css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.6.0/css/all.min.css
ballooncss:
css: https://unpkg.com/balloon-css/balloon.min.css
@@ -44,18 +39,18 @@ 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.0.2/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
+ common: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/dayjs.min.js
+ locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/locale/:LOCALE.js
+ relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/plugin/relativeTime.js
+ localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/plugin/localizedFormat.js
-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
+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 ee73bec..4abe81b 100644
--- a/_data/share.yml
+++ b/_data/share.yml
@@ -1,5 +1,4 @@
platforms:
-
- type: Linkedin
icon: "fab fa-linkedin"
link: "https://www.linkedin.com/sharing/share-offsite/?url=URL"
@@ -15,7 +14,7 @@ platforms:
- label: fosstodon.org
link: "https://fosstodon.org/"
- label: mastodon.com.tr
- link: "https://mastodon.com.tr/"
+ link: "https://mastodon.com.tr/"
- type: Twitter
icon: "fa-brands fa-square-x-twitter"
@@ -28,3 +27,50 @@ platforms:
- type: Telegram
icon: "fab fa-telegram"
link: "https://t.me/share/url?url=URL&text=TITLE"
+
+ - 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"
+
+ # Uncomment below if you need to.
+ #
+ # - type: Linkedin
+ # icon: "fab fa-linkedin"
+ # link: "https://www.linkedin.com/sharing/share-offsite/?url=URL"
+ #
+ # - type: Weibo
+ # icon: "fab fa-weibo"
+ # link: "https://service.weibo.com/share/share.php?title=TITLE&url=URL"
+ #
+ # - type: Mastodon
+ # icon: "fa-brands fa-mastodon"
+ # # See: https://github.com/justinribeiro/share-to-mastodon#properties
+ # instances:
+ # - label: mastodon.social
+ # link: "https://mastodon.social/"
+ # - label: mastodon.online
+ # link: "https://mastodon.online/"
+ # - label: fosstodon.org
+ # link: "https://fosstodon.org/"
+ # - label: photog.social
+ # link: "https://photog.social/"
+ #
+ # - type: Bluesky
+ # icon: "fa-brands fa-bluesky"
+ # link: "https://bsky.app/intent/compose?text=TITLE%20URL"
+ #
+ # - type: Reddit
+ # icon: "fa-brands fa-square-reddit"
+ # link: "https://www.reddit.com/submit?url=URL&title=TITLE"
+ #
+ # - type: Threads
+ # icon: "fa-brands fa-square-threads"
+ # link: "https://www.threads.net/intent/post?text=TITLE%20URL"
diff --git a/_includes/analytics/cloudflare.html b/_includes/analytics/cloudflare.html
new file mode 100644
index 0000000..1eeb1a9
--- /dev/null
+++ b/_includes/analytics/cloudflare.html
@@ -0,0 +1,7 @@
+
+
+
diff --git a/_includes/analytics/fathom.html b/_includes/analytics/fathom.html
new file mode 100644
index 0000000..4b603d3
--- /dev/null
+++ b/_includes/analytics/fathom.html
@@ -0,0 +1,7 @@
+
+
+
diff --git a/_includes/analytics/goatcounter.html b/_includes/analytics/goatcounter.html
new file mode 100644
index 0000000..3867fdb
--- /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 0000000..d0aac65
--- /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 0000000..72b2c46
--- /dev/null
+++ b/_includes/analytics/matomo.html
@@ -0,0 +1,14 @@
+
+
+
diff --git a/_includes/analytics/umami.html b/_includes/analytics/umami.html
new file mode 100644
index 0000000..bfcb1d0
--- /dev/null
+++ b/_includes/analytics/umami.html
@@ -0,0 +1,6 @@
+
+
diff --git a/_includes/comments.html b/_includes/comments.html
index 39e521f..fef135f 100644
--- a/_includes/comments.html
+++ b/_includes/comments.html
@@ -1,5 +1,5 @@
-
-{% if page.comments and site.comments.active %}
- {% capture path %}comments/{{ site.comments.active }}.html{% endcapture %}
+
+{% if page.comments and site.comments.provider %}
+ {% capture path %}comments/{{ site.comments.provider }}.html{% endcapture %}
{% include {{ path }} %}
{% endif %}
diff --git a/_includes/comments/disqus.html b/_includes/comments/disqus.html
index e59ed37..2b889a4 100644
--- a/_includes/comments/disqus.html
+++ b/_includes/comments/disqus.html
@@ -10,7 +10,7 @@
this.page.identifier = '{{ page.url }}';
};
- /* Lazy loading */
+ {%- comment -%} Lazy loading {%- endcomment -%}
var disqus_observer = new IntersectionObserver(
function (entries) {
if (entries[0].isIntersecting) {
@@ -28,12 +28,12 @@
{ threshold: [0] }
);
- disqus_observer.observe(document.querySelector('#disqus_thread'));
+ disqus_observer.observe(document.getElementById('disqus_thread'));
- /* Auto switch theme */
+ {%- comment -%} Auto switch theme {%- endcomment -%}
function reloadDisqus() {
if (event.source === window && event.data && event.data.direction === ModeToggle.ID) {
- /* Disqus hasn't been loaded */
+ {%- comment -%} Disqus hasn't been loaded {%- endcomment -%}
if (typeof DISQUS === 'undefined') {
return;
}
@@ -44,7 +44,7 @@
}
}
- if (document.querySelector('.mode-toggle')) {
+ if (document.getElementById('mode-toggle')) {
window.addEventListener('message', reloadDisqus);
}
diff --git a/_includes/comments/giscus.html b/_includes/comments/giscus.html
index 8f04246..f9becfe 100644
--- a/_includes/comments/giscus.html
+++ b/_includes/comments/giscus.html
@@ -2,7 +2,6 @@
-
diff --git a/_includes/google-analytics.html b/_includes/google-analytics.html
deleted file mode 100644
index e5e5119..0000000
--- a/_includes/google-analytics.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
diff --git a/_includes/head.html b/_includes/head.html
index 3d743cd..833b3fa 100644
--- a/_includes/head.html
+++ b/_includes/head.html
@@ -1,120 +1,128 @@
-
-
-
-
-
+
+
+
+
+
+ />
- {%- capture seo_tags -%}
- {% seo title=false %}
- {%- endcapture -%}
+ {%- capture seo_tags -%} {% seo title=false %} {%- endcapture -%}
- {% if page.image %}
- {% assign src = page.image.path | default: page.image %}
-
- {% unless src contains '://' %}
- {%- capture img_url -%}
- {% include img-url.html src=src img_path=page.img_path absolute=true %}
- {%- endcapture -%}
-
- {%- capture old_url -%}{{ src | absolute_url }}{%- endcapture -%}
- {%- capture new_url -%}{{ img_url }}{%- endcapture -%}
-
- {% assign seo_tags = seo_tags | replace: old_url, new_url %}
- {% endunless %}
-
- {% elsif site.social_preview_image %}
- {%- capture img_url -%}
- {% include img-url.html src=site.social_preview_image absolute=true %}
- {%- endcapture -%}
-
- {%- capture og_image -%}
-
- {%- endcapture -%}
-
- {%- capture twitter_image -%}
-
-
- {%- endcapture -%}
-
- {% assign old_meta_clip = '' %}
- {% assign new_meta_clip = og_image | append: twitter_image %}
- {% assign seo_tags = seo_tags | replace: old_meta_clip, new_meta_clip %}
- {% endif %}
-
- {{ seo_tags }}
+ {% if page.image %} {% assign src = page.image.path | default: page.image %}
+ {% unless src contains '://' %} {%- capture img_url -%} {% include
+ media-url.html src=src subpath=page.media_subpath absolute=true %} {%-
+ endcapture -%} {%- capture old_url -%}{{ src | absolute_url }}{%- endcapture
+ -%} {%- capture new_url -%}{{ img_url }}{%- endcapture -%} {% assign seo_tags
+ = seo_tags | replace: old_url, new_url %} {% endunless %} {% elsif
+ site.social_preview_image %} {%- capture img_url -%} {% include media-url.html
+ src=site.social_preview_image absolute=true %} {%- endcapture -%} {%- capture
+ og_image -%}
+
+ {%- endcapture -%} {%- capture twitter_image -%}
+
+
+ {%- endcapture -%} {% assign old_meta_clip = '
+
+ ' %} {% assign new_meta_clip = og_image | append: twitter_image %} {% assign
+ seo_tags = seo_tags | replace: old_meta_clip, new_meta_clip %} {% endif %} {{
+ seo_tags }}
- {%- unless page.layout == 'home' -%}
- {{ page.title | append: ' | ' }}
- {%- endunless -%}
- {{ site.title }}
+ {%- unless page.layout == 'home' -%} {{ page.title | append: ' | ' }} {%-
+ endunless -%} {{ site.title }}
{% include_cached favicons.html %}
- {% if site.resources.ignore_env != jekyll.environment and site.resources.self_hosted %}
-
-
- {% else %}
- {% for cdn in site.data.origin[type].cdns %}
-
-
- {% endfor %}
-
-
- {% endif %}
-
-
- {% if jekyll.environment == 'production' and site.google_analytics.id != empty and site.google_analytics.id %}
-
-
-
-
-
- {% endif %}
+
+ {% unless site.assets.self_host.enabled %} {% for hint in
+ site.data.origin.cors.resource_hints %} {% for link in hint.links %} {%
+ endfor %} {% endfor %} {% endunless %}
-
+ {% unless jekyll.environment == 'production' %}
+
+ {% endunless %}
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
+
+
+
+
{% if site.toc and page.toc %}
-
- {% endif %}
-
- {% if page.layout == 'post' or page.layout == 'page' or page.layout == 'home' %}
-
- {% endif %}
-
- {% if page.layout == 'page' or page.layout == 'post' %}
-
-
+
+ {% endif %} {% if page.layout == 'post' or page.layout == 'page' or
+ page.layout == 'home' %}
+
+ {% endif %} {% if page.layout == 'page' or page.layout == 'post' %}
+
+
{% endif %}
- {% unless site.theme_mode %}
- {% include mode-toggle.html %}
- {% endunless %}
-
- {% include metadata-hook.html %}
+ {% unless site.theme_mode %} {% include mode-toggle.html %} {% endunless %} {%
+ include metadata-hook.html %}
diff --git a/_includes/js-selector.html b/_includes/js-selector.html
index 22eee81..931deb5 100644
--- a/_includes/js-selector.html
+++ b/_includes/js-selector.html
@@ -3,17 +3,10 @@
-{% assign urls = site.data.origin[type].jquery.js
- | append: ','
- | append: site.data.origin[type].bootstrap.js
- | append: ','
- | append: site.data.origin[type].search.js
-%}
+{% assign urls = site.data.origin[type].search.js %}
-{% assign js_dist = '/assets/js/dist/' %}
-
{% if page.layout == 'post' or page.layout == 'page' or page.layout == 'home' %}
{% assign urls = urls | append: ',' | append: site.data.origin[type]['lazy-polyfill'].js %}
@@ -21,7 +14,7 @@
{% assign urls = urls
| append: ','
- | append: site.data.origin[type]['magnific-popup'].js
+ | append: site.data.origin[type].glightbox.js
| append: ','
| append: site.data.origin[type].clipboard.js
%}
@@ -34,7 +27,7 @@
or page.layout == 'category'
or page.layout == 'tag'
%}
- {% assign locale = site.lang | split: '-' | first %}
+ {% assign locale = include.lang | split: '-' | first %}
{% assign urls = urls
| append: ','
@@ -68,47 +61,50 @@
{% assign js = 'commons' %}
{% endcase %}
-{% capture script %}{{ js_dist }}{{ js }}.min.js{% endcapture %}
-
+{% capture script %}/assets/js/dist/{{ js }}.min.js{% endcapture %}
+
+
{% if page.math %}
-
+
{% endif %}
+
+{% if page.layout == 'post' %}
+ {% assign provider = site.pageviews.provider %}
+
+ {% if provider and provider != empty %}
+ {% case provider %}
+ {% when 'goatcounter' %}
+ {% if site.analytics[provider].id != empty and site.analytics[provider].id %}
+ {% include pageviews/{{ provider }}.html %}
+ {% endif %}
+ {% endcase %}
+ {% endif %}
+{% endif %}
+
+{% if page.mermaid %}
+ {% include mermaid.html %}
+{% endif %}
+
{% if jekyll.environment == 'production' %}
{% if site.pwa.enabled %}
-
+
{% endif %}
-
- {% if site.google_analytics.id != empty and site.google_analytics.id %}
- {% include google-analytics.html %}
- {% endif %}
-
-
- {% if site.goatcounter.id != empty and site.goatcounter.id %}
- {% include goatcounter.html %}
- {% endif %}
+
+ {% for analytics in site.analytics %}
+ {% capture str %}{{ analytics }}{% endcapture %}
+ {% assign type = str | split: '{' | first %}
+ {% if site.analytics[type].id and site.analytics[type].id != empty %}
+ {% include analytics/{{ type }}.html %}
+ {% endif %}
+ {% endfor %}
{% endif %}
diff --git a/_includes/lang.html b/_includes/lang.html
index 19558a0..34b50df 100644
--- a/_includes/lang.html
+++ b/_includes/lang.html
@@ -1,7 +1,9 @@
{% comment %}
Detect appearance language and return it through variable "lang"
{% endcomment %}
-{% if site.data.locales[site.lang] %}
+{% if site.data.locales[page.lang] %}
+ {% assign lang = page.lang %}
+{% elsif site.data.locales[site.lang] %}
{% assign lang = site.lang %}
{% else %}
{% assign lang = 'en' %}
diff --git a/_includes/img-url.html b/_includes/media-url.html
similarity index 59%
rename from _includes/img-url.html
rename to _includes/media-url.html
index bb4758c..ea41075 100644
--- a/_includes/img-url.html
+++ b/_includes/media-url.html
@@ -1,25 +1,25 @@
{%- comment -%}
- Generate image final URL based on `site.img_cdn`, `page.img_path`
+ Generate media resource final URL based on `site.cdn`, `page.media_subpath`
Arguments:
- src - required, basic image path
- img_path - optional, relative path of image
+ src - required, basic media resources path
+ subpath - optional, relative path of media resources
absolute - optional, boolean, if true, generate absolute URL
Return:
- image URL
+ media resources URL
{%- endcomment -%}
{% assign url = include.src %}
{%- if url -%}
{% unless url contains ':' %}
- {%- comment -%} Add page image path prefix {%- endcomment -%}
- {% assign url = include.img_path | default: '' | append: '/' | append: url %}
+ {%- comment -%} Add media resources subpath prefix {%- endcomment -%}
+ {% assign url = include.subpath | default: '' | append: '/' | append: url %}
{%- comment -%} Prepend CND URL {%- endcomment -%}
- {% if site.img_cdn %}
- {% assign url = site.img_cdn | append: '/' | append: url %}
+ {% if site.cdn %}
+ {% assign url = site.cdn | append: '/' | append: url %}
{% endif %}
{% assign url = url | replace: '///', '/' | replace: '//', '/' | replace: ':/', '://' %}
diff --git a/_includes/mermaid.html b/_includes/mermaid.html
index 967cfb4..a3a83ed 100644
--- a/_includes/mermaid.html
+++ b/_includes/mermaid.html
@@ -1,29 +1,33 @@
diff --git a/_includes/mode-toggle.html b/_includes/mode-toggle.html
index a347750..113ec37 100644
--- a/_includes/mode-toggle.html
+++ b/_includes/mode-toggle.html
@@ -19,45 +19,32 @@
}
constructor() {
- if (this.hasMode) {
- if (this.isDarkMode) {
- if (!this.isSysDarkPrefer) {
- this.setDark();
- }
- } else {
- if (this.isSysDarkPrefer) {
- this.setLight();
- }
- }
- }
-
let self = this;
- /* always follow the system prefers */
+ {%- comment -%} always follow the system prefers {%- endcomment -%}
this.sysDarkPrefers.addEventListener('change', () => {
if (self.hasMode) {
- if (self.isDarkMode) {
- if (!self.isSysDarkPrefer) {
- self.setDark();
- }
- } else {
- if (self.isSysDarkPrefer) {
- self.setLight();
- }
- }
-
self.clearMode();
}
-
self.notify();
});
- } /* constructor() */
+
+ if (!this.hasMode) {
+ return;
+ }
+
+ if (this.isDarkMode) {
+ this.setDark();
+ } else {
+ this.setLight();
+ }
+ }
get sysDarkPrefers() {
return window.matchMedia('(prefers-color-scheme: dark)');
}
- get isSysDarkPrefer() {
+ get isPreferDark() {
return this.sysDarkPrefers.matches;
}
@@ -65,10 +52,6 @@
return this.mode === ModeToggle.DARK_MODE;
}
- get isLightMode() {
- return this.mode === ModeToggle.LIGHT_MODE;
- }
-
get hasMode() {
return this.mode != null;
}
@@ -77,12 +60,12 @@
return sessionStorage.getItem(ModeToggle.MODE_KEY);
}
- /* get the current mode on screen */
+ {%- comment -%} get the current mode on screen {%- endcomment -%}
get modeStatus() {
- if (this.isDarkMode || (!this.hasMode && this.isSysDarkPrefer)) {
- return ModeToggle.DARK_MODE;
+ if (this.hasMode) {
+ return this.mode;
} else {
- return ModeToggle.LIGHT_MODE;
+ return this.isPreferDark ? ModeToggle.DARK_MODE : ModeToggle.LIGHT_MODE;
}
}
@@ -101,7 +84,9 @@
sessionStorage.removeItem(ModeToggle.MODE_KEY);
}
- /* Notify another plugins that the theme mode has changed */
+ {%- comment -%}
+ Notify another plugins that the theme mode has changed
+ {%- endcomment -%}
notify() {
window.postMessage(
{
@@ -114,21 +99,9 @@
flipMode() {
if (this.hasMode) {
- if (this.isSysDarkPrefer) {
- if (this.isLightMode) {
- this.clearMode();
- } else {
- this.setLight();
- }
- } else {
- if (this.isDarkMode) {
- this.clearMode();
- } else {
- this.setDark();
- }
- }
+ this.clearMode();
} else {
- if (this.isSysDarkPrefer) {
+ if (this.isPreferDark) {
this.setLight();
} else {
this.setDark();
@@ -136,8 +109,8 @@
}
this.notify();
- } /* flipMode() */
- } /* ModeToggle */
+ }
+ }
const modeToggle = new ModeToggle();
diff --git a/_includes/pageviews/goatcounter.html b/_includes/pageviews/goatcounter.html
new file mode 100644
index 0000000..e62fd69
--- /dev/null
+++ b/_includes/pageviews/goatcounter.html
@@ -0,0 +1,19 @@
+
+
diff --git a/_includes/post-description.html b/_includes/post-description.html
new file mode 100644
index 0000000..6c40036
--- /dev/null
+++ b/_includes/post-description.html
@@ -0,0 +1,16 @@
+{%- 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 -%}
+ {%- include no-linenos.html content=post.content -%}
+ {{- content | markdownify | strip_html -}}
+{%- endif -%}
+{%- endcapture -%}
+
+{{- description | strip | truncate: max_length | escape -}}
diff --git a/_includes/refactor-content.html b/_includes/refactor-content.html
index e4abcbc..8d298cd 100644
--- a/_includes/refactor-content.html
+++ b/_includes/refactor-content.html
@@ -97,7 +97,7 @@
{% assign _lazyload = true %}
{%- capture _img_url -%}
- {% include img-url.html src=_src img_path=page.img_path %}
+ {% include media-url.html src=_src subpath=page.media_subpath %}
{%- endcapture -%}
{% assign _path_prefix = _img_url | remove: _src %}
diff --git a/_includes/related-posts.html b/_includes/related-posts.html
index 1ba2f32..37a295b 100644
--- a/_includes/related-posts.html
+++ b/_includes/related-posts.html
@@ -21,6 +21,7 @@
{% assign match_posts = match_posts | push: site.tags[tag] | uniq %}
{% endfor %}
+{% assign match_posts = match_posts | reverse %}
{% assign last_index = match_posts.size | minus: 1 %}
{% assign score_list = '' | split: '' %}
@@ -81,10 +82,7 @@
{% include datetime.html date=post.date lang=include.lang %}
{{ post.title }}
-
- {% include no-linenos.html content=post.content %}
- {{ content | markdownify | strip_html | truncate: 200 | escape }}
-
+
{% include post-description.html %}
diff --git a/_includes/search-loader.html b/_includes/search-loader.html
index be3ca8a..2582580 100644
--- a/_includes/search-loader.html
+++ b/_includes/search-loader.html
@@ -19,7 +19,7 @@
{% capture not_found %}{{ site.data.locales[include.lang].search.no_results }}
{% endcapture %}