Compare commits

...

55 Commits
v4.0.2 ... main

Author SHA1 Message Date
GitHub Actions
46e2bdfa6e Update critical file(s) according to Chirpy v7.2.4
Some checks failed
Build and Deploy / build (push) Failing after 35s
Build and Deploy / deploy (push) Has been skipped
2024-12-21 19:23:15 +00:00
GitHub Actions
1d4d35af85 Update critical file(s) according to Chirpy v7.2.3
Some checks failed
Build and Deploy / build (push) Failing after 36s
Build and Deploy / deploy (push) Has been skipped
2024-12-15 13:06:48 +00:00
GitHub Actions
aa0fd48ad0 Update critical file(s) according to Chirpy v7.2.2
Some checks failed
Build and Deploy / build (push) Failing after 4m22s
Build and Deploy / deploy (push) Has been skipped
2024-12-06 17:07:40 +00:00
GitHub Actions
333ce4603e Update critical file(s) according to Chirpy v7.2.1
Some checks failed
Build and Deploy / build (push) Failing after 43s
Build and Deploy / deploy (push) Has been skipped
2024-12-05 13:34:44 +00:00
GitHub Actions
59ad287fb0 Update critical file(s) according to Chirpy v7.2.0
Some checks failed
Build and Deploy / build (push) Failing after 1m3s
Build and Deploy / deploy (push) Has been skipped
2024-11-28 09:00:29 +00:00
GitHub Actions
7ab45bd41f Update critical file(s) according to Chirpy v7.1.1 2024-09-23 12:05:45 +00:00
GitHub Actions
6ae7825809 Update critical file(s) according to Chirpy v7.1.0 2024-09-01 12:45:16 +00:00
GitHub Actions
00252fd7b8 Update critical file(s) according to Chirpy v7.0.1 2024-05-18 11:02:10 +00:00
GitHub Actions
32f4cbe2f7 Update critical file(s) according to Chirpy v7.0.0 2024-05-11 08:16:14 +00:00
GitHub Actions
88378f6169 Update critical file(s) according to Chirpy v6.5.5 2024-03-23 18:32:27 +00:00
GitHub Actions
586b285258 Update critical file(s) according to Chirpy v6.5.4 2024-03-22 19:45:34 +00:00
GitHub Actions
c403568b4c Update critical file(s) according to Chirpy v6.5.3 2024-03-07 20:15:44 +00:00
GitHub Actions
b8605de1ba Update critical file(s) according to Chirpy v6.5.2 2024-02-29 19:53:46 +00:00
GitHub Actions
953dbb08e3 Update critical file(s) according to Chirpy v6.5.1 2024-02-26 18:21:19 +00:00
GitHub Actions
b160f258a0 Update critical file(s) according to Chirpy v6.5.0 2024-02-14 16:21:01 +00:00
GitHub Actions
8486ea4ae4 Update critical file(s) according to Chirpy v6.4.2 2024-01-13 14:04:21 +00:00
GitHub Actions
756d37c648 Update critical file(s) according to Chirpy v6.4.1 2024-01-10 18:13:49 +00:00
GitHub Actions
d03f0bbcc7 Update critical file(s) according to Chirpy v6.4.0 2024-01-10 15:12:49 +00:00
Dmitry Kosarev
1efe631e7e
build(deps): specify the minor version number of ruby (#15)
See also: https://github.com/cotes2020/jekyll-theme-chirpy/pull/1431


Co-authored-by: Dmitry Kosarev <kosarevdmlive@outlook.com>
2023-12-28 17:03:08 +08:00
GitHub Actions
1565392b7e Update critical file(s) according to Chirpy v6.3.1 2023-11-12 21:17:50 +00:00
GitHub Actions
aea4a8fc59 Update critical file(s) according to Chirpy v6.3.0 2023-11-10 12:16:23 +00:00
GitHub Actions
f05cdc55b9 Update critical file(s) according to Chirpy v6.2.3 2023-10-10 04:56:49 +00:00
GitHub Actions
bcb2c56f84 Update critical file(s) according to Chirpy v6.2.2 2023-09-10 18:40:05 +00:00
GitHub Actions
c3ef063416 Update critical file(s) according to Chirpy v6.2.1 2023-09-10 16:43:47 +00:00
GitHub Actions
74bf950ae0 Update critical file(s) according to Chirpy v6.2.0 2023-09-10 13:24:09 +00:00
GitHub Actions
2605fedb3f Update critical file(s) according to Chirpy v6.1.0 2023-07-02 13:52:03 +00:00
GitHub Actions
7c3f58dd08 Update critical file(s) according to Chirpy v6.0.1 2023-05-19 16:50:33 +00:00
GitHub Actions
3c5c4e9733 Update critical file(s) according to Chirpy v6.0.0 2023-05-16 19:05:24 +00:00
GitHub Actions
918d7a0bba Update critical file(s) according to Chirpy v5.6.1 2023-03-30 21:48:39 +00:00
GitHub Actions
ff0f0b801e Update critical file(s) according to Chirpy v5.6.0 2023-03-17 18:23:14 +00:00
GitHub Actions
85116817d1 Update critical file(s) according to Chirpy v5.5.2 2023-02-05 19:18:58 +00:00
GitHub Actions
afc1abfdd5 Update critical file(s) according to Chirpy v5.5.1 2023-01-29 22:18:12 +00:00
GitHub Actions
1832a369aa Update critical file(s) according to Chirpy v5.5.0 2023-01-29 21:05:40 +00:00
GitHub Actions
02a5de7732 Update critical file(s) according to Chirpy v5.4.0 2022-12-27 17:32:37 +00:00
GitHub Actions
9b2c9badce Update critical file(s) according to Chirpy v5.3.2 2022-11-25 15:03:09 +00:00
Travis-CI
d9428918ed Update critical file(s) according to Chirpy v5.3.1 2022-10-25 13:31:31 +00:00
Travis-CI
1b74cf9a36 Update critical file(s) according to Chirpy v5.3.0 2022-09-23 13:58:58 +00:00
Travis-CI
e6a207db16 Update critical file(s) according to Chirpy v5.2.1 2022-06-17 16:17:19 +00:00
Travis-CI
6c8b7ca51f Update critical file(s) according to Chirpy v5.2.0 2022-06-09 10:06:34 +00:00
Travis-CI
d1ef8d4273 Update critical file(s) according to Chirpy v5.1.0 2022-02-14 17:30:02 +00:00
Travis-CI
3b07fccfc4 Update critical file(s) according to Chirpy v5.0.2 2022-01-07 18:52:12 +00:00
Travis-CI
a8cd88041d Update critical file(s) according to Chirpy v5.0.1 2022-01-04 19:50:28 +00:00
Cotes Chung
fc54bc5574 Update the doc's link in README 2022-01-04 18:58:52 +08:00
Travis-CI
bf93d1383d Update critical file(s) according to Chirpy v5.0.0 2022-01-02 16:53:02 +00:00
Travis-CI
23942a94b3 Update critical file(s) according to Chirpy v4.3.4 2021-11-29 12:35:47 +00:00
Travis-CI
66a784cb71 Update critical file(s) according to Chirpy v4.3.3 2021-10-24 20:18:05 +00:00
Travis-CI
b8446c9b7b Update critical file(s) according to Chirpy v4.3.2 2021-10-14 18:13:57 +00:00
Travis-CI
479cdc35c7 Update critical file(s) according to Chirpy v4.3.1 2021-10-01 10:58:50 +00:00
Travis-CI
ff41859240 Update critical file(s) according to Chirpy v4.3.0 2021-09-29 20:03:26 +00:00
Cotes Chung
c2a7480e65 Update README 2021-09-26 01:20:50 +08:00
Travis-CI
4abf09ed60 Update critical file(s) according to Chirpy v4.2.1 2021-09-16 13:22:01 +00:00
Travis-CI
2327ec8d83 Update critical file(s) according to Chirpy v4.2.0 2021-09-15 17:53:28 +00:00
Travis-CI
45ff5ba1bf Update critical file(s) according to Chirpy v4.1.1 2021-08-09 08:49:14 +00:00
Travis-CI
1d16d381fd Update critical file(s) according to Chirpy v4.1.0 2021-07-21 16:54:21 +00:00
Cotes Chung
1a82b8970f Update README 2021-07-21 22:33:34 +08:00
26 changed files with 524 additions and 367 deletions

View File

@ -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"
]
}
}
}

View File

@ -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

View File

@ -2,10 +2,18 @@ root = true
[*] [*]
charset = utf-8 charset = utf-8
# 2 space indentation
indent_style = space indent_style = space
indent_size = 2 indent_size = 2
trim_trailing_whitespace = true trim_trailing_whitespace = true
# Unix-style newlines with a newline ending every file # Unix-style newlines with a newline ending every file
end_of_line = lf end_of_line = lf
insert_final_newline = true insert_final_newline = true
[*.{js,css,scss}]
quote_type = single
[*.{yml,yaml}]
quote_type = double
[*.md]
trim_trailing_whitespace = false

View File

@ -1,53 +1,73 @@
name: 'Automatic build' name: "Build and Deploy"
on: on:
push: push:
branches: branches:
- main - main
- master
paths-ignore: paths-ignore:
- .gitignore - .gitignore
- README.md - README.md
- LICENSE - LICENSE
jobs: # Allows you to run this workflow manually from the Actions tab
continuous-delivery: workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v4
with: with:
fetch-depth: 0 # for posts's lastmod fetch-depth: 0
# submodules: true
# If using the 'assets' git submodule from Chirpy Starter, uncomment above
# (See: https://github.com/cotes2020/chirpy-starter/tree/main/assets)
- name: Setup Pages
id: pages
uses: actions/configure-pages@v4
- name: Setup Ruby - name: Setup Ruby
uses: ruby/setup-ruby@v1 uses: ruby/setup-ruby@v1
with: with:
ruby-version: 2.7 ruby-version: 3.3
bundler-cache: true bundler-cache: true
- name: Check baseurl - name: Build site
run: | run: bundle exec jekyll b -d "_site${{ steps.pages.outputs.base_path }}"
baseurl="$(grep '^baseurl:' _config.yml | sed "s/.*: *//;s/['\"]//g;s/#.*//")"
if [[ -n $baseurl ]]; then
echo "BASE_URL=$baseurl" >> $GITHUB_ENV
fi
- name: Build Site
env: env:
JEKYLL_ENV: production JEKYLL_ENV: "production"
run: |
bundle exec jekyll b -d "_site$BASE_URL"
- name: Test Site - name: Test site
run: | run: |
bash tools/test.sh bundle exec htmlproofer _site \
\-\-disable-external \
\-\-ignore-urls "/^http:\/\/127.0.0.1/,/^http:\/\/0.0.0.0/,/^http:\/\/localhost/"
- name: Deploy - name: Upload site artifact
run: | uses: actions/upload-pages-artifact@v3
if [[ -n $BASE_URL ]]; then with:
mv _site$BASE_URL _site-rename path: "_site${{ steps.pages.outputs.base_path }}"
rm -rf _site
mv _site-rename _site
fi
bash tools/deploy.sh deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

30
.gitignore vendored
View File

@ -1,17 +1,27 @@
# hidden files # Bundler cache
.* .bundle
!.git*
!.editorconfig
!.nojekyll
# bundler cache
_site
vendor vendor
Gemfile.lock Gemfile.lock
# rubygem # Jekyll cache
.jekyll-cache
.jekyll-metadata
_site
# RubyGems
*.gem *.gem
# npm dependencies # NPM dependencies
node_modules node_modules
package-lock.json package-lock.json
# IDE configurations
.idea
.vscode/*
!.vscode/settings.json
!.vscode/extensions.json
!.vscode/tasks.json
# Misc
_sass/vendors
assets/js/dist

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "assets/lib"]
path = assets/lib
url = https://github.com/cotes2020/chirpy-static-assets.git

1
.nojekyll Normal file
View File

@ -0,0 +1 @@

3
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"recommendations": ["ms-vscode-remote.remote-containers"]
}

30
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,30 @@
{
// Prettier
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
// 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": "mkhl.shfmt"
},
// Disable vscode built-in stylelint
"css.validate": false,
"scss.validate": false,
"less.validate": false,
// Stylint extension settings
"stylelint.snippet": ["css", "scss"],
"stylelint.validate": ["css", "scss"],
// Run tasks in macOS
"terminal.integrated.profiles.osx": {
"zsh": { "path": "/bin/zsh", "args": ["-l", "-i"] }
}
}

26
.vscode/tasks.json vendored Normal file
View File

@ -0,0 +1,26 @@
{
"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."
}
]
}

22
Gemfile
View File

@ -1,22 +1,14 @@
# frozen_string_literal: true
source "https://rubygems.org" source "https://rubygems.org"
gem "jekyll-theme-chirpy", "~> 4.0", ">= 4.0.2" gem "jekyll-theme-chirpy", "~> 7.2", ">= 7.2.4"
group :jekyll_plugins do gem "html-proofer", "~> 5.0", group: :test
# If you have any plugins, put them here!
# gem "jekyll-xxx", "~> x.y"
end
group :test do platforms :mingw, :x64_mingw, :mswin, :jruby do
gem "html-proofer", "~> 3.18" gem "tzinfo", ">= 1", "< 3"
end
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library.
install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do
gem "tzinfo", "~> 1.2"
gem "tzinfo-data" gem "tzinfo-data"
end end
# Performance-booster for watching directories on Windows gem "wdm", "~> 0.2.0", :platforms => [:mingw, :x64_mingw, :mswin]
gem "wdm", "~> 0.1.1", :install_if => Gem.win_platform?

View File

@ -1,77 +1,37 @@
# Chirpy Starter # Chirpy Starter
[![Gem Version](https://img.shields.io/gem/v/jekyll-theme-chirpy)](https://rubygems.org/gems/jekyll-theme-chirpy) [![Gem Version](https://img.shields.io/gem/v/jekyll-theme-chirpy)][gem]&nbsp;
[![GitHub license](https://img.shields.io/github/license/cotes2020/chirpy-starter.svg?color=blue)][mit] [![GitHub license](https://img.shields.io/github/license/cotes2020/chirpy-starter.svg?color=blue)][mit]
The startup template for [**Jekyll Theme Chirpy**][chirpy]. When installing the [**Chirpy**][chirpy] theme through [RubyGems.org][gem], Jekyll can only read files in the folders
`_data`, `_layouts`, `_includes`, `_sass` and `assets`, as well as a small part of options of the `_config.yml` file
from the theme's gem. If you have ever installed this theme gem, you can use the command
`bundle info --path jekyll-theme-chirpy` to locate these files.
When installing the **Chirpy** theme through [RubyGems][gem], Jekyll can only read files in the folders `_includes`, `_layout`, `_sass` and `assets`, as well as a small part of options of the `_config.yml` file from the theme's gem. (You can find the gem files by using the command `bundle info --path jekyll-theme-chirpy`). To fully use all the features of **Chirpy**, you need to copy the other critical files/directories from the theme's gem to your Jekyll site. The Jekyll team claims that this is to leave the ball in the users court, but this also results in users not being
able to enjoy the out-of-the-box experience when using feature-rich themes.
The critical files/directories to run or build the **Chirpy** theme are as follows: To fully use all the features of **Chirpy**, you need to copy the other critical files from the theme's gem to your
Jekyll site. The following is a list of targets:
```shell ```shell
. .
├── _data ├── _config.yml
├── _plugins ├── _plugins
├── _tabs ├── _tabs
├── _config.yml
└── index.html └── index.html
``` ```
So we've extracted all the **Chirpy** gem necessary content here to help you get started quickly. To save you time, and also in case you lose some files while copying, we extract those files/configurations of the
latest version of the **Chirpy** theme and the [CD][CD] workflow to here, so that you can start writing in minutes.
## Installation
[Use this template][usetemplate] to generate a new repository, and then execute:
[usetemplate]: https://github.com/cotes2020/chirpy-starter/generate
```
$ bundle
```
## Usage ## Usage
### Customing Stylesheet Check out the [theme's docs](https://github.com/cotes2020/jekyll-theme-chirpy/wiki).
Creare a new file `/assets/css/style.scss` in your Jekyll site. ## Contributing
And then add the following content: This repository is automatically updated with new releases from the theme repository. If you encounter any issues or want to contribute to its improvement, please visit the [theme repository][chirpy] to provide feedback.
```scss
---
---
@import "{{ site.theme }}";
// add your style below
```
### Changing the Number of Tabs
When adding or deleting files in the `_tabs` folder, you need to complete the section [Customing Stylesheet](#customing-stylesheet) first, and then add a new line before `@import`:
```scss
$tab-count: {{ site.tabs | size | plus: 1 }};
```
### Publishing to GitHub Pages
See the [deployment instructions](https://github.com/cotes2020/jekyll-theme-chirpy#deployment) of `jekyll-theme-chirpy`.
### Upgrading
First, please modify the target version number of `jekyll-theme-chirpy` in the `Gemfile` (e.g., `gem "jekyll-theme-chirpy", "~> 4.0", ">= 4.0.1"`). In addition, if the major version number is updated, you need to update the critical files to keep them the same as this project.
After that, execute the following command:
```console
$ bundle update jekyll-theme-chirpy
```
## Documentation
See the [theme's docs](https://github.com/cotes2020/jekyll-theme-chirpy#documentation).
## License ## License
@ -79,4 +39,5 @@ This work is published under [MIT][mit] License.
[gem]: https://rubygems.org/gems/jekyll-theme-chirpy [gem]: https://rubygems.org/gems/jekyll-theme-chirpy
[chirpy]: https://github.com/cotes2020/jekyll-theme-chirpy/ [chirpy]: https://github.com/cotes2020/jekyll-theme-chirpy/
[CD]: https://en.wikipedia.org/wiki/Continuous_deployment
[mit]: https://github.com/cotes2020/chirpy-starter/blob/master/LICENSE [mit]: https://github.com/cotes2020/chirpy-starter/blob/master/LICENSE

View File

@ -3,58 +3,79 @@
# Import the theme # Import the theme
theme: jekyll-theme-chirpy theme: jekyll-theme-chirpy
# Only if your site type is GitHub Project sites and doesn't have a custom domain, # The language of the webpage http://www.lingoes.net/en/translator/langcode.htm
# change below value to '/projectname'. # If it has the same name as one of the files in folder `_data/locales`, the layout language will also be changed,
baseurl: '' # otherwise, the layout language will use the default value of 'en'.
lang: en
# the HTML language tag https://www.w3.org/International/questions/qa-choosing-language-tags # Change to your timezone https://kevinnovak.github.io/Time-Zone-Picker
lang: en-US timezone:
# Change to your timezone http://www.timezoneconverter.com/cgi-bin/findzone/findzone
timezone: Asia/Shanghai
# jekyll-seo-tag settings https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md # jekyll-seo-tag settings https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md
# -------------------------- # ↓ --------------------------
title: Chirpy # the main title 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 description: >- # used by seo meta and the atom feed
A minimal, portfolio, sidebar, A minimal, responsive and feature-rich Jekyll theme for technical writing.
bootstrap Jekyll theme with responsive web design
and focuses on text presentation.
# fill in the protocol & hostname for your site, e.g., 'https://username.github.io' # Fill in the protocol & hostname for your site.
url: '' # E.g. 'https://username.github.io', note that it does not end with a '/'.
url: ""
github: github:
username: github_username # change to your github username username: github_username # change to your GitHub username
twitter: twitter:
username: twitter_username # change to your twitter username username: twitter_username # change to your Twitter username
social: social:
# Change to your full name. # Change to your full name.
# It will be displayed as the default author of the posts and the copyright owner in the Footer # It will be displayed as the default author of the posts and the copyright owner in the Footer
name: your_full_name name: your_full_name
email: example@doamin.com # change to your email address email: example@domain.com # change to your email address
links: links:
# The first element serves as the copyright owner's link # The first element serves as the copyright owner's link
- https://twitter.com/username # change to your twitter homepage - https://twitter.com/username # change to your Twitter homepage
- https://github.com/username # change to your github homepage - https://github.com/username # change to your GitHub homepage
# Uncomment below to add more social links # Uncomment below to add more social links
# - https://www.facebook.com/username # - https://www.facebook.com/username
# - https://www.linkedin.com/in/username # - https://www.linkedin.com/in/username
google_site_verification: google_meta_tag_verification # change 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
google_analytics: # ↑ --------------------------
id: '' # fill in your Google Analytics ID # The end of `jekyll-seo-tag` settings
# Google Analytics pageviews report settings
pv: # Web Analytics Settings
proxy_endpoint: # fill in the Google Analytics superProxy endpoint of Google App Engine analytics:
cache_path: # the local PV cache data, friendly to visitors from GFW region 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. # Prefer color scheme setting.
# #
@ -64,33 +85,77 @@ google_analytics:
# #
# Available options: # Available options:
# #
# light - Use the light color scheme # light Use the light color scheme
# dark - Use the dark color scheme # dark Use the dark color scheme
# #
theme_mode: # [light | dark] theme_mode: # [light | dark]
# The CDN endpoint for images. # The CDN endpoint for media resources.
# Notice that once it is assigned, the CDN url # 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' # e.g. 'https://cdn.com'
img_cdn: '' cdn:
# the avatar on sidebar, support local or CORS resources # the avatar on sidebar, support local or CORS resources
avatar: https://cdn.jsdelivr.net/gh/cotes2020/chirpy-images/commons/avatar.jpg avatar:
# boolean type, the global switch for ToC in posts. # The URL of the site-wide social preview image used in SEO `og:image` meta tag.
# It can be overridden by a customized `page.image` in front matter.
social_preview_image: # string, local or CORS resources
# boolean type, the global switch for TOC in posts.
toc: true toc: true
comments:
# Global switch for the post-comment system. Keeping it empty means disabled.
provider: # [disqus | utterances | giscus]
# The provider options are as follows:
disqus: disqus:
comments: false # boolean type, the global switch for posts comments. shortname: # fill with the Disqus shortname. https://help.disqus.com/en/articles/1717111-what-s-a-shortname
shortname: '' # Fill with your Disqus shortname. https://help.disqus.com/en/articles/1717111-what-s-a-shortname # utterances settings https://utteranc.es/
utterances:
repo: # <gh-username>/<repo>
issue_term: # < url | pathname | title | ...>
# Giscus options https://giscus.app
giscus:
repo: # <gh-username>/<repo>
repo_id:
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`
# Self-hosted static assets, optional https://github.com/cotes2020/chirpy-static-assets
assets:
self_host:
enabled: # boolean, keep empty means false
# specify the Jekyll environment, empty means both
# only works if `assets.self_host.enabled` is 'true'
env: # [development | production]
pwa:
enabled: true # The option for PWA feature (installable)
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.
deny_paths:
# - "/example" # URLs match `<SITE_URL>/example/*` will not be cached by the PWA
paginate: 10 paginate: 10
# The base URL of your site
baseurl: ""
# ------------ The following options are not recommended to be modified ------------------ # ------------ The following options are not recommended to be modified ------------------
kramdown: kramdown:
footnote_backlink: "&#8617;&#xfe0e;"
syntax_highlighter: rouge syntax_highlighter: rouge
syntax_highlighter_opts: # Rouge Options https://github.com/jneen/rouge#full-options syntax_highlighter_opts: # Rouge Options https://github.com/jneen/rouge#full-options
css_class: highlight css_class: highlight
@ -106,11 +171,9 @@ collections:
output: true output: true
sort_by: order sort_by: order
defaults: defaults:
- - scope:
scope: path: "" # An empty string here means all files in the project
path: '' # An empty string here means all files in the project
type: posts type: posts
values: values:
layout: post layout: post
@ -119,19 +182,16 @@ defaults:
# DO NOT modify the following parameter unless you are confident enough # DO NOT modify the following parameter unless you are confident enough
# to update the code of all other post links in this project. # to update the code of all other post links in this project.
permalink: /posts/:title/ permalink: /posts/:title/
- - scope:
scope:
path: _drafts path: _drafts
values: values:
comments: false comments: false
- - scope:
scope: path: ""
path: ''
type: tabs # see `site.collections` type: tabs # see `site.collections`
values: values:
layout: page layout: page
permalink: /:title/ permalink: /:title/
dynamic_title: true # Hide title in mobile screens.
sass: sass:
style: compressed style: compressed
@ -146,15 +206,15 @@ compress_html:
envs: [development] envs: [development]
exclude: exclude:
- '*.gem' - "*.gem"
- '*.gemspec' - "*.gemspec"
- tools
- docs - docs
- tools
- README.md - README.md
- LICENSE - LICENSE
- gulpfile.js - purgecss.js
- node_modules - rollup.config.js
- '*.json' - "package*.json"
jekyll-archives: jekyll-archives:
enabled: [categories, tags] enabled: [categories, tags]

View File

@ -1,30 +1,40 @@
# The contact options. # The contact options.
- - type: github
type: github icon: "fab fa-github"
icon: 'fab fa-github-alt'
-
type: twitter
icon: 'fab fa-twitter'
-
type: email
icon: 'fas fa-envelope'
noblank: true # open link in current tab
-
type: rss
icon: 'fas fa-rss'
noblank: true
- type: twitter
icon: "fa-brands fa-x-twitter"
- type: email
icon: "fas fa-envelope"
noblank: true # open link in current tab
- type: rss
icon: "fas fa-rss"
noblank: true
# Uncomment and complete the url below to enable more contact options # Uncomment and complete the url below to enable more contact options
# - #
# type: mastodon # - type: mastodon
# icon: 'fab fa-mastodon' # icons powered by <https://fontawesome.com/> # icon: 'fab fa-mastodon' # icons powered by <https://fontawesome.com/>
# url: '' # Fill with your mastodon account page # url: '' # Fill with your Mastodon account page, rel="me" will be applied for verification
# - #
# type: linkedin # - type: linkedin
# icon: 'fab fa-linkedin' # icons powered by <https://fontawesome.com/> # icon: 'fab fa-linkedin' # icons powered by <https://fontawesome.com/>
# url: '' # Fill with your Linkedin homepage # url: '' # Fill with your Linkedin homepage
# - #
# type: stack-overflow # - type: stack-overflow
# icon: 'fab fa-stack-overflow' # icon: 'fab fa-stack-overflow'
# url: '' # Fill with your stackoverflow homepage # 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

View File

@ -1,7 +0,0 @@
# The date format
tooltip: "%a, %b %e, %Y, %l:%M %p %z"
post:
long: "%b %e, %Y"
short: "%b %e"

View File

@ -1,19 +0,0 @@
# The label text of site.
panel:
lastmod: Recent Update
trending_tags: Trending Tags
toc: Contents
post:
relate_posts: Further Reading
share: Share
button:
next: Newer
previous: Older
search_hint: Search # text show on search bar
pin_prompt: Pinned # pinned prompt
read_time_unit: min # see posts' time to read

View File

@ -1,11 +0,0 @@
# License data
license:
name: CC BY 4.0
link: "https://creativecommons.org/licenses/by/4.0/"
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.

View File

@ -2,26 +2,49 @@
# Icons from <https://fontawesome.com/> # Icons from <https://fontawesome.com/>
platforms: platforms:
- - type: Twitter
type: Twitter icon: "fa-brands fa-square-x-twitter"
icon: "fab fa-twitter"
link: "https://twitter.com/intent/tweet?text=TITLE&url=URL" link: "https://twitter.com/intent/tweet?text=TITLE&url=URL"
-
type: Facebook - type: Facebook
icon: "fab fa-facebook-square" icon: "fab fa-facebook-square"
link: "https://www.facebook.com/sharer/sharer.php?title=TITLE&u=URL" link: "https://www.facebook.com/sharer/sharer.php?title=TITLE&u=URL"
-
type: Telegram - type: Telegram
icon: "fab fa-telegram" icon: "fab fa-telegram"
link: "https://telegram.me/share?text=TITLE&url=URL" link: "https://t.me/share/url?url=URL&text=TITLE"
# Uncomment below if you need to. # Uncomment below if you need to.
# - #
# type: Linkedin # - type: Linkedin
# icon: "fab fa-linkedin" # icon: "fab fa-linkedin"
# link: "https://www.linkedin.com/sharing/share-offsite/?url=URL" # link: "https://www.linkedin.com/sharing/share-offsite/?url=URL"
# #
# - # - type: Weibo
# type: Weibo
# icon: "fab fa-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"
# # 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"

View File

@ -1,8 +1,8 @@
--- ---
title: About # the default layout is 'page'
icon: fas fa-info icon: fas fa-info-circle
order: 4 order: 4
--- ---
> Add Markdown syntax content to file `_tabs/about.md`{: .filepath } and it will show up on this page.
> **Note**: Add Markdown syntax content to file `_tabs/about.md` and it will show up on this page. {: .prompt-tip }

View File

@ -1,7 +1,5 @@
--- ---
layout: archives layout: archives
title: Archives
icon: fas fa-archive icon: fas fa-archive
order: 3 order: 3
--- ---

View File

@ -1,6 +1,5 @@
--- ---
layout: categories layout: categories
title: Categories
icon: fas fa-stream icon: fas fa-stream
order: 1 order: 1
--- ---

View File

@ -1,6 +1,5 @@
--- ---
layout: tags layout: tags
title: Tags
icon: fas fa-tags icon: fas fa-tags
order: 2 order: 2
--- ---

1
assets/lib Submodule

@ -0,0 +1 @@
Subproject commit b9e18a1510e3be5de250ed34205da318b76474e0

View File

@ -1,73 +0,0 @@
#!/usr/bin/env bash
#
# Deploy the content of _site to 'origin/<pages_branch>'
set -eu
PAGES_BRANCH="gh-pages"
_no_branch=false
_backup_dir="$(mktemp -d)"
init() {
if [[ -z ${GITHUB_ACTION+x} ]]; then
echo "ERROR: This script is not allowed to run outside of GitHub Action."
exit -1
fi
# Gemfile could be changed by `bundle install` in actions workflow
if [[ -n $(git ls-files | grep Gemfile.lock) && -n \
$(git status Gemfile.lock --porcelain) ]]; then
git checkout -- Gemfile.lock
fi
if [[ -z $(git branch -av | grep "$PAGES_BRANCH") ]]; then
_no_branch=true
git checkout -b "$PAGES_BRANCH"
else
git checkout "$PAGES_BRANCH"
fi
}
backup() {
mv _site/* "$_backup_dir"
mv .git "$_backup_dir"
# When adding custom domain from Github website,
# the CANME only exist on `gh-pages` branch
if [[ -f CNAME ]]; then
mv CNAME "$_backup_dir"
fi
}
flush() {
rm -rf ./*
rm -rf .[^.] .??*
shopt -s dotglob nullglob
mv "$_backup_dir"/* .
}
deploy() {
git config --global user.name "GitHub Actions"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git update-ref -d HEAD
git add -A
git commit -m "[Automation] Site update No.${GITHUB_RUN_NUMBER}"
if $_no_branch; then
git push -u origin "$PAGES_BRANCH"
else
git push -f
fi
}
main() {
init
backup
flush
deploy
}
main

54
tools/run.sh Executable file
View File

@ -0,0 +1,54 @@
#!/usr/bin/env bash
#
# Run jekyll serve and then launch the site
prod=false
command="bundle exec jekyll s -l"
host="127.0.0.1"
help() {
echo "Usage:"
echo
echo " bash /path/to/run [options]"
echo
echo "Options:"
echo " -H, --host [HOST] Host to bind to."
echo " -p, --production Run Jekyll in 'production' mode."
echo " -h, --help Print this help information."
}
while (($#)); do
opt="$1"
case $opt in
-H | --host)
host="$2"
shift 2
;;
-p | --production)
prod=true
shift
;;
-h | --help)
help
exit 0
;;
*)
echo -e "> Unknown option: '$opt'\n"
help
exit 1
;;
esac
done
command="$command -H $host"
if $prod; then
command="JEKYLL_ENV=production $command"
fi
if [ -e /proc/1/cgroup ] && grep -q docker /proc/1/cgroup; then
command="$command --force_polling"
fi
echo -e "\n> $command\n"
eval "$command"

View File

@ -1,45 +1,76 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# Using HTML-proofer to test site. # Build and test the site content
# #
# Requirement: https://github.com/gjtorikian/html-proofer # Requirement: html-proofer, jekyll
# #
# Usage: bash /path/to/test.sh [indicated path] # Usage: See help information
DEST=_site set -eu
URL_IGNORE=cdn.jsdelivr.net
_build=false SITE_DIR="_site"
_config="_config.yml"
_baseurl=""
help() { help() {
echo "Build and test the site content"
echo
echo "Usage:" echo "Usage:"
echo echo
echo " bash ./tools/test.sh [options]" echo " bash $0 [options]"
echo echo
echo "Options:" echo "Options:"
echo " --build Run Jekyll build before test." echo ' -c, --config "<config_a[,config_b[...]]>" Specify config file(s)'
echo " -d, --dir <path> Specify the test path."
echo " -h, --help Print this information." echo " -h, --help Print this information."
} }
if [[ -n $1 && -d $1 ]]; then read_baseurl() {
DEST=$1 if [[ $_config == *","* ]]; then
# multiple config
IFS=","
read -ra config_array <<<"$_config"
# reverse loop the config files
for ((i = ${#config_array[@]} - 1; i >= 0; i--)); do
_tmp_baseurl="$(grep '^baseurl:' "${config_array[i]}" | sed "s/.*: *//;s/['\"]//g;s/#.*//")"
if [[ -n $_tmp_baseurl ]]; then
_baseurl="$_tmp_baseurl"
break
fi fi
done
else
# single config
_baseurl="$(grep '^baseurl:' "$_config" | sed "s/.*: *//;s/['\"]//g;s/#.*//")"
fi
}
main() {
# clean up
if [[ -d $SITE_DIR ]]; then
rm -rf "$SITE_DIR"
fi
read_baseurl
# build
JEKYLL_ENV=production bundle exec jekyll b \
-d "$SITE_DIR$_baseurl" -c "$_config"
# test
bundle exec htmlproofer "$SITE_DIR" \
--disable-external \
--ignore-urls "/^http:\/\/127.0.0.1/,/^http:\/\/0.0.0.0/,/^http:\/\/localhost/"
}
while (($#)); do while (($#)); do
opt="$1" opt="$1"
case $opt in case $opt in
--build) -c | --config)
_build=true _config="$2"
shift
;;
-d | --dir)
if [[ ! -d $2 ]]; then
echo -e "Error: path '$2' doesn't exist\n"
help
exit 1
fi
DEST=$2
shift shift
shift shift
;; ;;
@ -55,13 +86,4 @@ while (($#)); do
esac esac
done done
if $_build; then main
JEKYLL_ENV=production bundle exec jekyll b
fi
bundle exec htmlproofer "$DEST" \
--disable-external \
--check-html \
--empty_alt_ignore \
--allow_hash_href \
--url_ignore $URL_IGNORE