Update critical file(s) according to Chirpy v7.1.0

This commit is contained in:
GitHub Actions 2024-09-01 12:45:16 +00:00
parent 00252fd7b8
commit 6ae7825809
14 changed files with 299 additions and 23 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

3
.gitignore vendored
View File

@ -17,9 +17,10 @@ package-lock.json
# IDE configurations # IDE configurations
.idea .idea
.vscode .vscode/*
!.vscode/settings.json !.vscode/settings.json
!.vscode/extensions.json !.vscode/extensions.json
!.vscode/tasks.json
# Misc # Misc
_sass/dist _sass/dist

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

11
Gemfile
View File

@ -2,8 +2,13 @@
source "https://rubygems.org" source "https://rubygems.org"
gem "jekyll-theme-chirpy", "~> 7.0", ">= 7.0.1" gem "jekyll-theme-chirpy", "~> 7.1"
group :test do gem "html-proofer", "~> 5.0", group: :test
gem "html-proofer", "~> 5.0"
platforms :mingw, :x64_mingw, :mswin, :jruby do
gem "tzinfo", ">= 1", "< 3"
gem "tzinfo-data"
end end
gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]

View File

@ -47,8 +47,7 @@ Please see the [theme's docs](https://github.com/cotes2020/jekyll-theme-chirpy#d
## Contributing ## Contributing
The contents of this repository are automatically updated when new releases are made to the [main repository][chirpy]. 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.
If you have problems using it, or would like to participate in improving it, please go to the main repository for feedback!
## License ## License

View File

@ -16,20 +16,20 @@ timezone:
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, responsive and feature-rich Jekyll theme for technical writing. A minimal, responsive and feature-rich Jekyll theme for technical writing.
# Fill in the protocol & hostname for your site. # Fill in the protocol & hostname for your site.
# e.g. 'https://username.github.io', note that it does not end with a '/'. # E.g. 'https://username.github.io', note that it does not end with a '/'.
url: "" 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.
@ -38,8 +38,8 @@ social:
email: example@domain.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
@ -70,8 +70,10 @@ analytics:
domain: # fill in your Matomo domain domain: # fill in your Matomo domain
cloudflare: cloudflare:
id: # fill in your Cloudflare Web Analytics token id: # fill in your Cloudflare Web Analytics token
fathom:
id: # fill in your Fathom Site ID
# Pageviews settings # Page views settings
pageviews: pageviews:
provider: # now only supports 'goatcounter' provider: # now only supports 'goatcounter'
@ -83,8 +85,8 @@ pageviews:
# #
# 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]
@ -106,7 +108,7 @@ social_preview_image: # string, local or CORS resources
toc: true toc: true
comments: comments:
# Global switch for the post comment system. Keeping it empty means disabled. # Global switch for the post-comment system. Keeping it empty means disabled.
provider: # [disqus | utterances | giscus] provider: # [disqus | utterances | giscus]
# The provider options are as follows: # The provider options are as follows:
disqus: disqus:
@ -136,9 +138,9 @@ assets:
env: # [development | production] env: # [development | production]
pwa: pwa:
enabled: true # the option for PWA feature (installable) enabled: true # The option for PWA feature (installable)
cache: 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. # Paths defined here will be excluded from the PWA cache.
# Usually its value is the `baseurl` of another website that # Usually its value is the `baseurl` of another website that
# shares the same domain name as the current website. # shares the same domain name as the current website.
@ -190,10 +192,6 @@ defaults:
values: values:
layout: page layout: page
permalink: /:title/ permalink: /:title/
- scope:
path: assets/js/dist
values:
swcache: true
sass: sass:
style: compressed style: compressed

View File

@ -26,3 +26,15 @@
# - 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

@ -36,3 +36,15 @@ platforms:
# link: "https://fosstodon.org/" # link: "https://fosstodon.org/"
# - label: photog.social # - label: photog.social
# link: "https://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"

@ -1 +1 @@
Subproject commit b9c58cf485a7dcbc833e698d67dd1850bdc93eb3 Subproject commit a231bc7e2c67198e604950cb2be9147a0b2020c0

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"

89
tools/test.sh Executable file
View File

@ -0,0 +1,89 @@
#!/usr/bin/env bash
#
# Build and test the site content
#
# Requirement: html-proofer, jekyll
#
# Usage: See help information
set -eu
SITE_DIR="_site"
_config="_config.yml"
_baseurl=""
help() {
echo "Build and test the site content"
echo
echo "Usage:"
echo
echo " bash $0 [options]"
echo
echo "Options:"
echo ' -c, --config "<config_a[,config_b[...]]>" Specify config file(s)'
echo " -h, --help Print this information."
}
read_baseurl() {
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
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
opt="$1"
case $opt in
-c | --config)
_config="$2"
shift
shift
;;
-h | --help)
help
exit 0
;;
*)
# unknown option
help
exit 1
;;
esac
done
main