mirror of
https://github.com/cotes2020/chirpy-starter.git
synced 2025-07-01 20:08:55 +10:00
Compare commits
22 Commits
Author | SHA1 | Date | |
---|---|---|---|
3b07fccfc4 | |||
a8cd88041d | |||
fc54bc5574 | |||
bf93d1383d | |||
23942a94b3 | |||
66a784cb71 | |||
b8446c9b7b | |||
479cdc35c7 | |||
ff41859240 | |||
c2a7480e65 | |||
4abf09ed60 | |||
2327ec8d83 | |||
45ff5ba1bf | |||
1d16d381fd | |||
1a82b8970f | |||
d84dd10ca5 | |||
14988e3c10 | |||
53ccb821cb | |||
81cfa313af | |||
c9806df6fa | |||
67a9ca60de | |||
e6b807ee6f |
26
.github/workflows/pages-deploy.yml
vendored
26
.github/workflows/pages-deploy.yml
vendored
@ -25,29 +25,5 @@ jobs:
|
|||||||
ruby-version: 2.7
|
ruby-version: 2.7
|
||||||
bundler-cache: true
|
bundler-cache: true
|
||||||
|
|
||||||
- name: Check baseurl
|
|
||||||
run: |
|
|
||||||
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:
|
|
||||||
JEKYLL_ENV: production
|
|
||||||
run: |
|
|
||||||
bundle exec jekyll b -d "_site$BASE_URL"
|
|
||||||
|
|
||||||
- name: Test Site
|
|
||||||
run: |
|
|
||||||
bash tools/test.sh
|
|
||||||
|
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
run: |
|
run: bash tools/deploy.sh
|
||||||
if [[ -n $BASE_URL ]]; then
|
|
||||||
mv _site$BASE_URL _site-rename
|
|
||||||
rm -rf _site
|
|
||||||
mv _site-rename _site
|
|
||||||
fi
|
|
||||||
|
|
||||||
bash tools/deploy.sh
|
|
||||||
|
6
.gitignore
vendored
6
.gitignore
vendored
@ -1,11 +1,13 @@
|
|||||||
# hidden files
|
# hidden files
|
||||||
.*
|
.*
|
||||||
!.github
|
!.git*
|
||||||
|
!.editorconfig
|
||||||
|
!.nojekyll
|
||||||
|
!.travis.yml
|
||||||
|
|
||||||
# bundler cache
|
# bundler cache
|
||||||
_site
|
_site
|
||||||
vendor
|
vendor
|
||||||
Gemfile.lock
|
|
||||||
|
|
||||||
# rubygem
|
# rubygem
|
||||||
*.gem
|
*.gem
|
||||||
|
21
404.html
21
404.html
@ -1,21 +0,0 @@
|
|||||||
---
|
|
||||||
layout: page
|
|
||||||
title: "404: Page not found"
|
|
||||||
permalink: /404.html
|
|
||||||
|
|
||||||
redirect_from:
|
|
||||||
- /norobots/
|
|
||||||
- /assets/
|
|
||||||
- /posts/
|
|
||||||
|
|
||||||
dynamic_title: true
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="lead">
|
|
||||||
<p>Sorry, we've misplaced that URL or it's pointing to something that doesn't exist. </p>
|
|
||||||
<p>
|
|
||||||
<a href="{{ '/' | relative_url }}">Head back Home</a>
|
|
||||||
to try finding it again, or search for it on the
|
|
||||||
<a href="{{ 'archives' | relative_url }}">Archives page</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
12
Gemfile
12
Gemfile
@ -1,11 +1,8 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
source "https://rubygems.org"
|
source "https://rubygems.org"
|
||||||
|
|
||||||
gem "jekyll-theme-chirpy", "~> 3.3"
|
gem "jekyll-theme-chirpy", "~> 5.0", ">= 5.0.2"
|
||||||
|
|
||||||
group :jekyll_plugins do
|
|
||||||
# If you have any plugins, put them here!
|
|
||||||
# gem "jekyll-xxx", "~> x.y"
|
|
||||||
end
|
|
||||||
|
|
||||||
group :test do
|
group :test do
|
||||||
gem "html-proofer", "~> 3.18"
|
gem "html-proofer", "~> 3.18"
|
||||||
@ -20,3 +17,6 @@ end
|
|||||||
|
|
||||||
# Performance-booster for watching directories on Windows
|
# Performance-booster for watching directories on Windows
|
||||||
gem "wdm", "~> 0.1.1", :install_if => Gem.win_platform?
|
gem "wdm", "~> 0.1.1", :install_if => Gem.win_platform?
|
||||||
|
|
||||||
|
# Jekyll <= 4.2.0 compatibility with Ruby 3.0
|
||||||
|
gem "webrick", "~> 1.7"
|
||||||
|
73
README.md
73
README.md
@ -1,33 +1,31 @@
|
|||||||
# Chirpy Starter
|
# Chirpy Starter [](https://rubygems.org/gems/jekyll-theme-chirpy) [][mit]
|
||||||
|
|
||||||
[](https://rubygems.org/gems/jekyll-theme-chirpy)
|
When installing the [**Chirpy**][chirpy] theme through [RubyGems.org][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. If you have ever installed this theme gem, you can use the command `bundle info --path jekyll-theme-chirpy` to locate these files.
|
||||||
[][mit]
|
|
||||||
|
|
||||||
The startup template for [**Jekyll Theme Chirpy**][chirpy].
|
The Jekyll organization claims that this is to leave the ball in the user’s court, but this also results in users not being able to enjoy the out-of-the-box experience when using feature-rich themes.
|
||||||
|
|
||||||
When installing the Chirpy 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 (use the command `bundle info --path jekyll-theme-chirpy` to locate). To fully use all the features of Chirpy, you also need to copy other critical files/directories from the theme's gem to your Jekyll site.
|
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
|
||||||
# The critical files/directories to run Chirpy theme
|
.
|
||||||
|
├── _config.yml
|
||||||
├── _data
|
├── _data
|
||||||
├── _plugins
|
├── _plugins
|
||||||
├── _tabs
|
├── _tabs
|
||||||
├── _config.yml
|
└── index.html
|
||||||
├── app.js
|
|
||||||
├── feed.xml
|
|
||||||
├── index.html
|
|
||||||
├── robots.txt
|
|
||||||
├── sw.js
|
|
||||||
└── 404.html
|
|
||||||
```
|
```
|
||||||
|
|
||||||
We extracted all the necessary content of **Chirpy** theme's gem to help you quickly use the theme.
|
In order to save your time, and to prevent you from missing some files when 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.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
Follow the instructions in the [Jekyll Docs](https://jekyllrb.com/docs/installation/) to complete the installation of `Ruby`, `RubyGems`, `Jekyll` and `Bundler`.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
[Use this template][usetemplate] to generate a new repository, and then execute:
|
[**Use this template**][use-template] to generate a brand new repository and name it `<GH_USERNAME>.github.io`, where `GH_USERNAME` represents your GitHub username.
|
||||||
|
|
||||||
[usetemplate]: https://github.com/cotes2020/chirpy-starter/generate
|
Then clone it to your local machine and run:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ bundle
|
$ bundle
|
||||||
@ -35,46 +33,7 @@ $ bundle
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
### Customing Stylesheet
|
Please see the [theme's docs](https://github.com/cotes2020/jekyll-theme-chirpy#documentation).
|
||||||
|
|
||||||
Creare a new file `/assets/css/style.scss` in your Jekyll site.
|
|
||||||
|
|
||||||
And then add the following content:
|
|
||||||
|
|
||||||
```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`.
|
|
||||||
|
|
||||||
### Updating
|
|
||||||
|
|
||||||
Please note that files and directories in this project may change as the [`jekyll-theme-chirpy`][chirpy] is updated. When updating, please ensure that the file directory structure of your Jekyll site is the same as that of this project.
|
|
||||||
|
|
||||||
And then execute:
|
|
||||||
|
|
||||||
```console
|
|
||||||
$ bundle update jekyll-theme-chirpy
|
|
||||||
```
|
|
||||||
|
|
||||||
## Documentation
|
|
||||||
|
|
||||||
See the [theme's docs](https://github.com/cotes2020/jekyll-theme-chirpy#documentation).
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
@ -82,4 +41,6 @@ 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/
|
||||||
|
[use-template]: https://github.com/cotes2020/chirpy-starter/generate
|
||||||
|
[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
|
||||||
|
60
_config.yml
60
_config.yml
@ -3,18 +3,21 @@
|
|||||||
# 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,
|
# Change the following value to '/PROJECT_NAME' ONLY IF your site type is GitHub Pages Project sites
|
||||||
# change below value to '/projectname'.
|
# and doesn't have a custom domain.
|
||||||
baseurl: ''
|
baseurl: ''
|
||||||
|
|
||||||
# the HTML language tag › https://www.w3.org/International/questions/qa-choosing-language-tags
|
# The language of the webpage › http://www.lingoes.net/en/translator/langcode.htm
|
||||||
lang: en-US
|
# If it has the same name as one of the files in folder `_data/locales`, the layout language will also be changed,
|
||||||
|
# otherwise, the layout language will use the default value of 'en'.
|
||||||
|
lang: en
|
||||||
|
|
||||||
# Change to your timezone › http://www.timezoneconverter.com/cgi-bin/findzone/findzone
|
# Change to your timezone › http://www.timezoneconverter.com/cgi-bin/findzone/findzone
|
||||||
timezone: Asia/Shanghai
|
timezone: Asia/Shanghai
|
||||||
|
|
||||||
# jekyll-seo-tag settings › https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md
|
# jekyll-seo-tag settings › https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md
|
||||||
# --------------------------
|
# ↓ --------------------------
|
||||||
|
|
||||||
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 sub-title
|
||||||
@ -47,18 +50,16 @@ social:
|
|||||||
# - https://www.linkedin.com/in/username
|
# - https://www.linkedin.com/in/username
|
||||||
|
|
||||||
google_site_verification: google_meta_tag_verification # change to your verification string
|
google_site_verification: google_meta_tag_verification # change to your verification string
|
||||||
# --------------------------
|
|
||||||
|
# ↑ --------------------------
|
||||||
|
|
||||||
|
|
||||||
google_analytics:
|
google_analytics:
|
||||||
id: '' # Fill with your Google Analytics ID
|
id: '' # fill in your Google Analytics ID
|
||||||
|
# Google Analytics pageviews report settings
|
||||||
pv:
|
pv:
|
||||||
# The Google Analytics pageviews switch.
|
proxy_endpoint: # fill in the Google Analytics superProxy endpoint of Google App Engine
|
||||||
# DO NOT enable it unless you know how to deploy the Google Analytics superProxy.
|
cache_path: # the local PV cache data, friendly to visitors from GFW region
|
||||||
enabled: false
|
|
||||||
# the next options only valid when `google_analytics.pv` is enabled.
|
|
||||||
proxy_url: ''
|
|
||||||
proxy_endpoint: ''
|
|
||||||
cache: false # pv data local cache, good for the users from GFW area.
|
|
||||||
|
|
||||||
# Prefer color scheme setting.
|
# Prefer color scheme setting.
|
||||||
#
|
#
|
||||||
@ -78,17 +79,23 @@ theme_mode: # [light|dark]
|
|||||||
# will be added to all image (site avatar & posts' images) paths starting with '/'
|
# will be added to all image (site avatar & posts' images) paths starting with '/'
|
||||||
#
|
#
|
||||||
# e.g. 'https://cdn.com'
|
# e.g. 'https://cdn.com'
|
||||||
img_cdn: ''
|
img_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.
|
# boolean type, the global switch for ToC in posts.
|
||||||
toc: true
|
toc: true
|
||||||
|
|
||||||
disqus:
|
comments:
|
||||||
comments: false # boolean type, the global switch for posts comments.
|
active: # The global switch for posts comments, e.g., 'disqus'. Keep it empty means disable
|
||||||
shortname: '' # Fill with your Disqus shortname. › https://help.disqus.com/en/articles/1717111-what-s-a-shortname
|
# The active 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/
|
||||||
|
utterances:
|
||||||
|
repo: # <gh-username>/<repo>
|
||||||
|
issue_term: # < url | pathname | title | ...>
|
||||||
|
|
||||||
paginate: 10
|
paginate: 10
|
||||||
|
|
||||||
@ -105,16 +112,11 @@ kramdown:
|
|||||||
line_numbers: true
|
line_numbers: true
|
||||||
start_line: 1
|
start_line: 1
|
||||||
|
|
||||||
# DO NOT change this unless you're a Pro user on Jekyll and Web development,
|
|
||||||
# Or you think you're smart enough to change other relevant URLs within this template.
|
|
||||||
permalink: /posts/:title/
|
|
||||||
|
|
||||||
collections:
|
collections:
|
||||||
tabs:
|
tabs:
|
||||||
output: true
|
output: true
|
||||||
sort_by: order
|
sort_by: order
|
||||||
|
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
-
|
-
|
||||||
scope:
|
scope:
|
||||||
@ -124,6 +126,9 @@ defaults:
|
|||||||
layout: post
|
layout: post
|
||||||
comments: true # Enable comments in posts.
|
comments: true # Enable comments in posts.
|
||||||
toc: true # Display TOC column in posts.
|
toc: true # Display TOC column in posts.
|
||||||
|
# DO NOT modify the following parameter unless you are confident enough
|
||||||
|
# to update the code of all other post links in this project.
|
||||||
|
permalink: /posts/:title/
|
||||||
-
|
-
|
||||||
scope:
|
scope:
|
||||||
path: _drafts
|
path: _drafts
|
||||||
@ -136,7 +141,6 @@ defaults:
|
|||||||
values:
|
values:
|
||||||
layout: page
|
layout: page
|
||||||
permalink: /:title/
|
permalink: /:title/
|
||||||
dynamic_title: true # Hide title in mobile screens.
|
|
||||||
|
|
||||||
sass:
|
sass:
|
||||||
style: compressed
|
style: compressed
|
||||||
@ -151,9 +155,6 @@ compress_html:
|
|||||||
envs: [development]
|
envs: [development]
|
||||||
|
|
||||||
exclude:
|
exclude:
|
||||||
- vendor
|
|
||||||
- Gemfile
|
|
||||||
- Gemfile.lock
|
|
||||||
- '*.gem'
|
- '*.gem'
|
||||||
- '*.gemspec'
|
- '*.gemspec'
|
||||||
- tools
|
- tools
|
||||||
@ -162,8 +163,7 @@ exclude:
|
|||||||
- LICENSE
|
- LICENSE
|
||||||
- gulpfile.js
|
- gulpfile.js
|
||||||
- node_modules
|
- node_modules
|
||||||
- package.json
|
- package*.json
|
||||||
- package-lock.json
|
|
||||||
|
|
||||||
jekyll-archives:
|
jekyll-archives:
|
||||||
enabled: [categories, tags]
|
enabled: [categories, tags]
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
-
|
-
|
||||||
type: github
|
type: github
|
||||||
icon: 'fab fa-github-alt'
|
icon: 'fab fa-github'
|
||||||
-
|
-
|
||||||
type: twitter
|
type: twitter
|
||||||
icon: 'fab fa-twitter'
|
icon: 'fab fa-twitter'
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
# The date format
|
|
||||||
|
|
||||||
tooltip: "%a, %b %e, %Y, %l:%M %p %z"
|
|
||||||
|
|
||||||
post:
|
|
||||||
long: "%b %e, %Y"
|
|
||||||
short: "%b %e"
|
|
@ -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
|
|
91
_data/locales/en.yml
Normal file
91
_data/locales/en.yml
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Post
|
||||||
|
category: Category
|
||||||
|
tag: Tag
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Home
|
||||||
|
categories: Categories
|
||||||
|
tags: Tags
|
||||||
|
archives: Archives
|
||||||
|
about: About
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: search
|
||||||
|
cancel: Cancel
|
||||||
|
no_results: Oops! No result founds.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Recent Update
|
||||||
|
trending_tags: Trending Tags
|
||||||
|
toc: Contents
|
||||||
|
|
||||||
|
# The liquid date format › http://strftime.net/
|
||||||
|
date_format:
|
||||||
|
tooltip: '%a, %b %e, %Y, %l:%M %p %z'
|
||||||
|
post:
|
||||||
|
long: '%b %e, %Y'
|
||||||
|
short: '%b %e'
|
||||||
|
archive_month: '%b'
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: This post is licensed under :LICENSE_NAME by the author.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Some rights reserved.
|
||||||
|
verbose: >-
|
||||||
|
Except where otherwise noted, the blog posts on this site are licensed
|
||||||
|
under the Creative Commons Attribution 4.0 International (CC BY 4.0) License by the author.
|
||||||
|
|
||||||
|
meta: Powered by :PLATFORM with :THEME theme.
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Sorry, we've misplaced that URL or it's pointing to something that doesn't exist.
|
||||||
|
hint_template: :HEAD_BAK to try finding it again, or search for it on the :ARCHIVES_PAGE.
|
||||||
|
head_back: Head back Home
|
||||||
|
archives_page: Archives page
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: By
|
||||||
|
posted: Posted
|
||||||
|
updated: Updated
|
||||||
|
timeago:
|
||||||
|
day: days ago
|
||||||
|
hour: hours ago
|
||||||
|
minute: minutes ago
|
||||||
|
just_now: just now
|
||||||
|
words: words
|
||||||
|
pageview_measure: views
|
||||||
|
read_time:
|
||||||
|
unit: min
|
||||||
|
prompt: read
|
||||||
|
relate_posts: Further Reading
|
||||||
|
share: Share
|
||||||
|
button:
|
||||||
|
next: Newer
|
||||||
|
previous: Older
|
||||||
|
copy_code:
|
||||||
|
succeed: Copied!
|
||||||
|
share_link:
|
||||||
|
title: Copy link
|
||||||
|
succeed: Link copied successfully!
|
||||||
|
# pinned prompt of posts list on homepage
|
||||||
|
pin_prompt: Pinned
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: categories
|
||||||
|
post_measure: posts
|
91
_data/locales/id-ID.yml
Normal file
91
_data/locales/id-ID.yml
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: Postingan
|
||||||
|
category: Kategori
|
||||||
|
tag: Tagar
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: Beranda
|
||||||
|
categories: Kategori
|
||||||
|
tags: Tagar
|
||||||
|
archives: Arsip
|
||||||
|
about: Tentang
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: Cari
|
||||||
|
cancel: Batal
|
||||||
|
no_results: Ups! Tidak ada hasil yang ditemukan.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: Postingan Terbaru
|
||||||
|
trending_tags: Tagar Terpopuler
|
||||||
|
toc: Konten
|
||||||
|
|
||||||
|
# The liquid date format › http://strftime.net/
|
||||||
|
date_format:
|
||||||
|
tooltip: "%a, %e %b, %Y, %l:%M %p"
|
||||||
|
post:
|
||||||
|
long: "%e %b, %Y"
|
||||||
|
short: "%e %b"
|
||||||
|
archive_month: "%b"
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: Postingan ini dilisensikan di bawah :LICENSE_NAME oleh penulis.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: Sebagian konten dilindungi.
|
||||||
|
verbose: >-
|
||||||
|
Kecuali jika dinyatakan, Postingan blog di situs ini dilisensikan
|
||||||
|
di bawah Lisensi Creative Commons Attribution 4.0 International (CC BY 4.0) oleh penulis.
|
||||||
|
|
||||||
|
meta: Didukung oleh :PLATFORM dengan tema :THEME.
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: Maaf, kami gagal menemukan URL itu atau memang mengarah ke sesuatu yang tidak ada.
|
||||||
|
hint_template: :HEAD_BAK untuk mencoba mencari kembali, atau cari di :ARCHIVES_PAGE.
|
||||||
|
head_back: Kembali ke Beranda
|
||||||
|
archives_page: Halaman Arsip
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: Oleh
|
||||||
|
posted: Diterbitkan
|
||||||
|
updated: Diperbarui
|
||||||
|
timeago:
|
||||||
|
day: hari yang lalu
|
||||||
|
hour: jam yang lalu
|
||||||
|
minute: menit yang lalu
|
||||||
|
just_now: baru saja
|
||||||
|
words: kata
|
||||||
|
pageview_measure: dilihat
|
||||||
|
read_time:
|
||||||
|
unit: menit
|
||||||
|
prompt: baca
|
||||||
|
relate_posts: Postingan Lainya
|
||||||
|
share: Bagikan
|
||||||
|
button:
|
||||||
|
next: Terbaru
|
||||||
|
previous: Terlama
|
||||||
|
copy_code:
|
||||||
|
succeed: Disalin!
|
||||||
|
share_link:
|
||||||
|
title: Salin tautan
|
||||||
|
succeed: Tautan berhasil disalin!
|
||||||
|
# pinned prompt of posts list on homepage
|
||||||
|
pin_prompt: Disematkan
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: kategori
|
||||||
|
post_measure: Postingan
|
91
_data/locales/ko-KR.yml
Normal file
91
_data/locales/ko-KR.yml
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: 포스트
|
||||||
|
category: 카테고리
|
||||||
|
tag: 태그
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: 홈
|
||||||
|
categories: 카테고리
|
||||||
|
tags: 태그
|
||||||
|
archives: 아카이브
|
||||||
|
about: 정보
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: 검색
|
||||||
|
cancel: 취소
|
||||||
|
no_results: 검색 결과가 없습니다.
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: 최근 업데이트
|
||||||
|
trending_tags: 인기 태그
|
||||||
|
toc: 바로가기
|
||||||
|
|
||||||
|
# The liquid date format › http://strftime.net/
|
||||||
|
date_format:
|
||||||
|
tooltip: '%F, %R %z'
|
||||||
|
post:
|
||||||
|
long: '%Y년 %m월 %d일'
|
||||||
|
short: '%m월 %d일'
|
||||||
|
archive_month: '%b월'
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: 이 기사는 저작권자의 :LICENSE_NAME 라이센스를 따릅니다.
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: 일부 권리 보유
|
||||||
|
verbose: >-
|
||||||
|
명시되지 않는 한 이 사이트의 블로그 게시물은 작성자의
|
||||||
|
Creative Commons Attribution 4.0 International(CC BY 4.0) 라이선스에 따라 사용이 허가되었습니다.
|
||||||
|
|
||||||
|
meta: Powered by :PLATFORM with :THEME theme.
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: 해당 URL은 존재하지 않습니다.
|
||||||
|
hint_template: :HEAD_BAK을 눌러 다시 찾거나 :ARCHIVES_PAGE에서 검색해 주세요.
|
||||||
|
head_back: 홈으로 돌아가기
|
||||||
|
archives_page: 아카이브 페이지
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: By
|
||||||
|
posted: 게시
|
||||||
|
updated: 업데이트
|
||||||
|
timeago:
|
||||||
|
day: 일 전
|
||||||
|
hour: 시간 전
|
||||||
|
minute: 분 전
|
||||||
|
just_now: 방금
|
||||||
|
words: 단어
|
||||||
|
pageview_measure: 조회
|
||||||
|
read_time:
|
||||||
|
unit: 분
|
||||||
|
prompt: 읽는 시간
|
||||||
|
relate_posts: 관련된 글
|
||||||
|
share: 공유하기
|
||||||
|
button:
|
||||||
|
next: 다음 글
|
||||||
|
previous: 이전 글
|
||||||
|
copy_code:
|
||||||
|
succeed: 복사되었습니다!
|
||||||
|
share_link:
|
||||||
|
title: 링크 복사하기
|
||||||
|
succeed: 링크가 복사되었습니다!
|
||||||
|
# pinned prompt of posts list on homepage
|
||||||
|
pin_prompt: 핀
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: 카테고리
|
||||||
|
post_measure: 포스트
|
90
_data/locales/zh-CN.yml
Normal file
90
_data/locales/zh-CN.yml
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
# The layout text of site
|
||||||
|
|
||||||
|
# ----- Commons label -----
|
||||||
|
|
||||||
|
layout:
|
||||||
|
post: 文章
|
||||||
|
category: 分类
|
||||||
|
tag: 标签
|
||||||
|
|
||||||
|
# The tabs of sidebar
|
||||||
|
tabs:
|
||||||
|
# format: <filename_without_extension>: <value>
|
||||||
|
home: 首页
|
||||||
|
categories: 分类
|
||||||
|
tags: 标签
|
||||||
|
archives: 归档
|
||||||
|
about: 关于
|
||||||
|
|
||||||
|
# the text displayed in the search bar & search results
|
||||||
|
search:
|
||||||
|
hint: 搜索
|
||||||
|
cancel: 取消
|
||||||
|
no_results: 搜索结果为空
|
||||||
|
|
||||||
|
panel:
|
||||||
|
lastmod: 最近更新
|
||||||
|
trending_tags: 热门标签
|
||||||
|
toc: 文章内容
|
||||||
|
|
||||||
|
# The liquid date format › http://strftime.net/
|
||||||
|
date_format:
|
||||||
|
tooltip: '%F, %R %z'
|
||||||
|
post:
|
||||||
|
long: '%F'
|
||||||
|
short: '%m-%d'
|
||||||
|
archive_month: '%m月'
|
||||||
|
|
||||||
|
copyright:
|
||||||
|
# Shown at the bottom of the post
|
||||||
|
license:
|
||||||
|
template: 本文由作者按照 :LICENSE_NAME 进行授权
|
||||||
|
name: CC BY 4.0
|
||||||
|
link: https://creativecommons.org/licenses/by/4.0/
|
||||||
|
|
||||||
|
# Displayed in the footer
|
||||||
|
brief: 保留部分权利。
|
||||||
|
verbose: >-
|
||||||
|
除非另有说明,本网站上的博客文章均由作者按照知识共享署名 4.0 国际 (CC BY 4.0) 许可协议进行授权。
|
||||||
|
|
||||||
|
meta: 本站由 :PLATFORM 生成,采用 :THEME 主题。
|
||||||
|
|
||||||
|
not_found:
|
||||||
|
statment: 抱歉,我们放错了该 URL,或者它指向了不存在的内容。
|
||||||
|
hint_template: :HEAD_BAK尝试再次查找它,或在:ARCHIVES_PAGE上搜索它。
|
||||||
|
head_back: 返回主页
|
||||||
|
archives_page: 归档页面
|
||||||
|
|
||||||
|
# ----- Posts related labels -----
|
||||||
|
|
||||||
|
post:
|
||||||
|
written_by: 作者
|
||||||
|
posted: 发表于
|
||||||
|
updated: 更新于
|
||||||
|
timeago:
|
||||||
|
day: 天前
|
||||||
|
hour: 小时前
|
||||||
|
minute: 分钟前
|
||||||
|
just_now: 刚刚
|
||||||
|
words: 字
|
||||||
|
pageview_measure: 次浏览
|
||||||
|
read_time:
|
||||||
|
unit: 分钟
|
||||||
|
prompt: 阅读
|
||||||
|
relate_posts: 相关文章
|
||||||
|
share: 分享
|
||||||
|
button:
|
||||||
|
next: 下一篇
|
||||||
|
previous: 上一篇
|
||||||
|
copy_code:
|
||||||
|
succeed: 已复制!
|
||||||
|
share_link:
|
||||||
|
title: 分享链接
|
||||||
|
succeed: 链接已复制!
|
||||||
|
# pinned prompt of posts list on homepage
|
||||||
|
pin_prompt: 顶置
|
||||||
|
|
||||||
|
# categories page
|
||||||
|
categories:
|
||||||
|
category_measure: 个分类
|
||||||
|
post_measure: 篇文章
|
@ -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.
|
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: About
|
title: About
|
||||||
icon: fas fa-info
|
icon: fas fa-info-circle
|
||||||
order: 4
|
order: 4
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
layout: tags
|
layout: tags
|
||||||
title: Tags
|
title: Tags
|
||||||
icon: fas fa-tags
|
icon: fas fa-tag
|
||||||
order: 2
|
order: 2
|
||||||
---
|
---
|
||||||
|
8
app.js
8
app.js
@ -1,8 +0,0 @@
|
|||||||
---
|
|
||||||
layout: compress
|
|
||||||
---
|
|
||||||
|
|
||||||
/* Registering Service Worker */
|
|
||||||
if('serviceWorker' in navigator) {
|
|
||||||
navigator.serviceWorker.register('{{ "/sw.js" | relative_url }}');
|
|
||||||
};
|
|
60
feed.xml
60
feed.xml
@ -1,60 +0,0 @@
|
|||||||
---
|
|
||||||
layout: compress
|
|
||||||
# Atom Feed, reference: https://validator.w3.org/feed/docs/atom.html
|
|
||||||
---
|
|
||||||
|
|
||||||
{% capture source %}
|
|
||||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
|
||||||
<id>{{ "/" | absolute_url }}</id>
|
|
||||||
<title>{{ site.title }}</title>
|
|
||||||
<subtitle>{{ site.description }}</subtitle>
|
|
||||||
<updated>{{ site.time | date_to_xmlschema }}</updated>
|
|
||||||
<author>
|
|
||||||
<name>{{ site.social.name }}</name>
|
|
||||||
<uri>{{ "/" | absolute_url }}</uri>
|
|
||||||
</author>
|
|
||||||
<link rel="self" type="application/atom+xml" href="{{ page.url | absolute_url }}"/>
|
|
||||||
<link rel="alternate" type="text/html" hreflang="{{ site.lang | default: 'en' }}"
|
|
||||||
href="{{ '/' | absolute_url }}"/>
|
|
||||||
<generator uri="https://jekyllrb.com/" version="{{ jekyll.version }}">Jekyll</generator>
|
|
||||||
<rights> © {{ 'now' | date: '%Y' }} {{ site.social.name }} </rights>
|
|
||||||
<icon>{{ site.baseurl }}/assets/img/favicons/favicon.ico</icon>
|
|
||||||
<logo>{{ site.baseurl }}/assets/img/favicons/favicon-96x96.png</logo>
|
|
||||||
|
|
||||||
{% for post in site.posts limit: 5 %}
|
|
||||||
{% assign post_absolute_url = post.url | absolute_url %}
|
|
||||||
<entry>
|
|
||||||
<title>{{ post.title }}</title>
|
|
||||||
<link href="{{ post_absolute_url }}" rel="alternate" type="text/html" title="{{ post.title }}" />
|
|
||||||
<published>{{ post.date | date_to_xmlschema }}</published>
|
|
||||||
{% if post.last_modified_at %}
|
|
||||||
<updated>{{ post.last_modified_at | date_to_xmlschema }}</updated>
|
|
||||||
{% else %}
|
|
||||||
<updated>{{ post.date | date_to_xmlschema }}</updated>
|
|
||||||
{% endif %}
|
|
||||||
<id>{{ post_absolute_url }}</id>
|
|
||||||
<content src="{{ post_absolute_url }}" />
|
|
||||||
<author>
|
|
||||||
<name>{{ site.social.name }}</name>
|
|
||||||
</author>
|
|
||||||
|
|
||||||
{% if post.categories %}
|
|
||||||
{% for category in post.categories %}
|
|
||||||
<category term="{{ category }}" />
|
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if post.summary %}
|
|
||||||
<summary>{{ post.summary | strip }}</summary>
|
|
||||||
{% else %}
|
|
||||||
<summary>
|
|
||||||
{% include no-linenos.html content=post.content %}
|
|
||||||
{{ content | strip_html | truncate: 400 }}
|
|
||||||
</summary>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
</entry>
|
|
||||||
{% endfor %}
|
|
||||||
</feed>
|
|
||||||
{% endcapture %}
|
|
||||||
{{ source | replace: '&', '&' }}
|
|
10
robots.txt
10
robots.txt
@ -1,10 +0,0 @@
|
|||||||
---
|
|
||||||
permalink: robots.txt
|
|
||||||
# The robots rules
|
|
||||||
---
|
|
||||||
|
|
||||||
User-agent: *
|
|
||||||
|
|
||||||
Disallow: /norobots/
|
|
||||||
|
|
||||||
Sitemap: {{ '/sitemap.xml' | absolute_url }}
|
|
60
sw.js
60
sw.js
@ -1,60 +0,0 @@
|
|||||||
---
|
|
||||||
layout: compress
|
|
||||||
# PWA service worker
|
|
||||||
---
|
|
||||||
|
|
||||||
self.importScripts('{{ "/assets/js/data/cache-list.js" | relative_url }}');
|
|
||||||
|
|
||||||
var cacheName = 'chirpy-{{ "now" | date: "%Y%m%d.%H%M" }}';
|
|
||||||
|
|
||||||
function isExcluded(url) {
|
|
||||||
const regex = /(^http(s)?|^\/)/; /* the regex for CORS url or relative url */
|
|
||||||
for (const rule of exclude) {
|
|
||||||
if (!regex.test(url) ||
|
|
||||||
url.indexOf(rule) != -1) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
self.addEventListener('install', (e) => {
|
|
||||||
self.skipWaiting();
|
|
||||||
e.waitUntil(
|
|
||||||
caches.open(cacheName).then((cache) => {
|
|
||||||
return cache.addAll(include);
|
|
||||||
})
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
self.addEventListener('fetch', (e) => {
|
|
||||||
e.respondWith(
|
|
||||||
caches.match(e.request).then((r) => {
|
|
||||||
/* console.log(`[sw] method: ${e.request.method}, fetching: ${e.request.url}`); */
|
|
||||||
return r || fetch(e.request).then((response) => {
|
|
||||||
return caches.open(cacheName).then((cache) => {
|
|
||||||
if (!isExcluded(e.request.url)) {
|
|
||||||
if (e.request.method === "GET") {
|
|
||||||
/* console.log('[sw] Caching new resource: ' + e.request.url); */
|
|
||||||
cache.put(e.request, response.clone());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return response;
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
})
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
self.addEventListener('activate', (e) => {
|
|
||||||
e.waitUntil(
|
|
||||||
caches.keys().then((keyList) => {
|
|
||||||
return Promise.all(keyList.map((key) => {
|
|
||||||
if(key !== cacheName) {
|
|
||||||
return caches.delete(key);
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
})
|
|
||||||
);
|
|
||||||
});
|
|
109
tools/deploy.sh
109
tools/deploy.sh
@ -1,28 +1,80 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#
|
#
|
||||||
# Deploy the content of _site to 'origin/<pages_branch>'
|
# Build, test and then deploy the site content to 'origin/<pages_branch>'
|
||||||
|
#
|
||||||
|
# Requirement: html-proofer, jekyll
|
||||||
|
#
|
||||||
|
# Usage: See help information
|
||||||
|
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
PAGES_BRANCH="gh-pages"
|
PAGES_BRANCH="gh-pages"
|
||||||
|
|
||||||
_no_branch=false
|
SITE_DIR="_site"
|
||||||
|
|
||||||
|
_opt_dry_run=false
|
||||||
|
|
||||||
|
_config="_config.yml"
|
||||||
|
|
||||||
|
_no_pages_branch=false
|
||||||
|
|
||||||
_backup_dir="$(mktemp -d)"
|
_backup_dir="$(mktemp -d)"
|
||||||
|
|
||||||
|
_baseurl=""
|
||||||
|
|
||||||
|
help() {
|
||||||
|
echo "Build, test and then deploy the site content to 'origin/<pages_branch>'"
|
||||||
|
echo
|
||||||
|
echo "Usage:"
|
||||||
|
echo
|
||||||
|
echo " bash ./tools/deploy.sh [options]"
|
||||||
|
echo
|
||||||
|
echo "Options:"
|
||||||
|
echo ' -c, --config "<config_a[,config_b[...]]>" Specify config file(s)'
|
||||||
|
echo " --dry-run Build site and test, but not deploy"
|
||||||
|
echo " -h, --help Print this information."
|
||||||
|
}
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
if [[ -z ${GITHUB_ACTION+x} ]]; then
|
if [[ -z ${GITHUB_ACTION+x} && $_opt_dry_run == 'false' ]]; then
|
||||||
echo "ERROR: This script is not allowed to run outside of GitHub Action."
|
echo "ERROR: It is not allowed to deploy outside of the GitHub Action envrionment."
|
||||||
|
echo "Type option '-h' to see the help information."
|
||||||
exit -1
|
exit -1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Gemfile could be changed by `bundle install` in actions workflow
|
_baseurl="$(grep '^baseurl:' _config.yml | sed "s/.*: *//;s/['\"]//g;s/#.*//")"
|
||||||
if [[ -n $(git ls-files | grep Gemfile.lock) && -n \
|
}
|
||||||
$(git status Gemfile.lock --porcelain) ]]; then
|
|
||||||
git checkout -- Gemfile.lock
|
build() {
|
||||||
|
# clean up
|
||||||
|
if [[ -d $SITE_DIR ]]; then
|
||||||
|
rm -rf "$SITE_DIR"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# build
|
||||||
|
JEKYLL_ENV=production bundle exec jekyll b -d "$SITE_DIR$_baseurl" --config "$_config"
|
||||||
|
}
|
||||||
|
|
||||||
|
test() {
|
||||||
|
bundle exec htmlproofer \
|
||||||
|
--disable-external \
|
||||||
|
--check-html \
|
||||||
|
--allow_hash_href \
|
||||||
|
"$SITE_DIR"
|
||||||
|
}
|
||||||
|
|
||||||
|
resume_site_dir() {
|
||||||
|
if [[ -n $_baseurl ]]; then
|
||||||
|
# Move the site file to the regular directory '_site'
|
||||||
|
mv "$SITE_DIR$_baseurl" "${SITE_DIR}-rename"
|
||||||
|
rm -rf "$SITE_DIR"
|
||||||
|
mv "${SITE_DIR}-rename" "$SITE_DIR"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_gh() {
|
||||||
if [[ -z $(git branch -av | grep "$PAGES_BRANCH") ]]; then
|
if [[ -z $(git branch -av | grep "$PAGES_BRANCH") ]]; then
|
||||||
_no_branch=true
|
_no_pages_branch=true
|
||||||
git checkout -b "$PAGES_BRANCH"
|
git checkout -b "$PAGES_BRANCH"
|
||||||
else
|
else
|
||||||
git checkout "$PAGES_BRANCH"
|
git checkout "$PAGES_BRANCH"
|
||||||
@ -30,7 +82,7 @@ init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
backup() {
|
backup() {
|
||||||
mv _site/* "$_backup_dir"
|
mv "$SITE_DIR"/* "$_backup_dir"
|
||||||
mv .git "$_backup_dir"
|
mv .git "$_backup_dir"
|
||||||
|
|
||||||
# When adding custom domain from Github website,
|
# When adding custom domain from Github website,
|
||||||
@ -46,6 +98,7 @@ flush() {
|
|||||||
|
|
||||||
shopt -s dotglob nullglob
|
shopt -s dotglob nullglob
|
||||||
mv "$_backup_dir"/* .
|
mv "$_backup_dir"/* .
|
||||||
|
[[ -f ".nojekyll" ]] || echo "" >".nojekyll"
|
||||||
}
|
}
|
||||||
|
|
||||||
deploy() {
|
deploy() {
|
||||||
@ -56,7 +109,7 @@ deploy() {
|
|||||||
git add -A
|
git add -A
|
||||||
git commit -m "[Automation] Site update No.${GITHUB_RUN_NUMBER}"
|
git commit -m "[Automation] Site update No.${GITHUB_RUN_NUMBER}"
|
||||||
|
|
||||||
if $_no_branch; then
|
if $_no_pages_branch; then
|
||||||
git push -u origin "$PAGES_BRANCH"
|
git push -u origin "$PAGES_BRANCH"
|
||||||
else
|
else
|
||||||
git push -f
|
git push -f
|
||||||
@ -65,9 +118,43 @@ deploy() {
|
|||||||
|
|
||||||
main() {
|
main() {
|
||||||
init
|
init
|
||||||
|
build
|
||||||
|
test
|
||||||
|
resume_site_dir
|
||||||
|
|
||||||
|
if $_opt_dry_run; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
setup_gh
|
||||||
backup
|
backup
|
||||||
flush
|
flush
|
||||||
deploy
|
deploy
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while (($#)); do
|
||||||
|
opt="$1"
|
||||||
|
case $opt in
|
||||||
|
-c | --config)
|
||||||
|
_config="$2"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--dry-run)
|
||||||
|
# build & test, but not deploy
|
||||||
|
_opt_dry_run=true
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-h | --help)
|
||||||
|
help
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# unknown option
|
||||||
|
help
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
main
|
main
|
||||||
|
@ -1,67 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# Using HTML-proofer to test site.
|
|
||||||
#
|
|
||||||
# Requirement: https://github.com/gjtorikian/html-proofer
|
|
||||||
#
|
|
||||||
# Usage: bash /path/to/test.sh [indicated path]
|
|
||||||
|
|
||||||
DEST=_site
|
|
||||||
URL_IGNORE=cdn.jsdelivr.net
|
|
||||||
|
|
||||||
_build=false
|
|
||||||
|
|
||||||
help() {
|
|
||||||
echo "Usage:"
|
|
||||||
echo
|
|
||||||
echo " bash ./tools/test.sh [options]"
|
|
||||||
echo
|
|
||||||
echo "Options:"
|
|
||||||
echo " --build Run Jekyll build before test."
|
|
||||||
echo " -d, --dir <path> Specify the test path."
|
|
||||||
echo " -h, --help Print this information."
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ -n $1 && -d $1 ]]; then
|
|
||||||
DEST=$1
|
|
||||||
fi
|
|
||||||
|
|
||||||
while (($#)); do
|
|
||||||
opt="$1"
|
|
||||||
case $opt in
|
|
||||||
--build)
|
|
||||||
_build=true
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-d | --dir)
|
|
||||||
if [[ ! -d $2 ]]; then
|
|
||||||
echo -e "Error: path '$2' doesn't exist\n"
|
|
||||||
help
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
DEST=$2
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-h | --help)
|
|
||||||
help
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# unknown option
|
|
||||||
help
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if $_build; then
|
|
||||||
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
|
|
Reference in New Issue
Block a user