aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.editorconfig19
-rw-r--r--.gitattributes16
-rw-r--r--.github/workflows/pages-deploy.yml71
-rw-r--r--.gitignore22
-rw-r--r--.gitmodules3
-rw-r--r--.nojekyll1
-rw-r--r--Gemfile28
-rw-r--r--LICENSE21
-rw-r--r--README.md45
-rw-r--r--_config.yml199
-rw-r--r--_data/contact.yml28
-rw-r--r--_data/share.yml25
-rw-r--r--_plugins/posts-lastmod-hook.rb14
-rw-r--r--_posts/.placeholder1
-rw-r--r--_tabs/about.md8
-rw-r--r--_tabs/archives.md5
-rw-r--r--_tabs/categories.md5
-rw-r--r--_tabs/tags.md5
m---------assets/lib0
-rw-r--r--index.html4
20 files changed, 520 insertions, 0 deletions
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..2b740bf
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,19 @@
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+trim_trailing_whitespace = true
+# Unix-style newlines with a newline ending every file
+end_of_line = lf
+insert_final_newline = true
+
+[*.{js,css,scss}]
+quote_type = single
+
+[*.{yml,yaml}]
+quote_type = double
+
+[*.md]
+trim_trailing_whitespace = false
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..262d6bd
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,16 @@
+# Set default behavior to automatically normalize line endings.
+* text=auto
+
+# Force bash scripts to always use LF line endings so that if a repo is accessed
+# in Unix via a file share from Windows, the scripts will work.
+*.sh text eol=lf
+
+# Force batch scripts to always use CRLF line endings so that if a repo is accessed
+# in Windows via a file share from Linux, the scripts will work.
+*.{cmd,[cC][mM][dD]} text eol=crlf
+*.{bat,[bB][aA][tT]} text eol=crlf
+
+# Denote all files that are truly binary and should not be modified.
+*.png binary
+*.jpg binary
+*.ico binary
diff --git a/.github/workflows/pages-deploy.yml b/.github/workflows/pages-deploy.yml
new file mode 100644
index 0000000..a0de59d
--- /dev/null
+++ b/.github/workflows/pages-deploy.yml
@@ -0,0 +1,71 @@
+name: "Build and Deploy"
+on:
+ push:
+ branches:
+ - main
+ - master
+ paths-ignore:
+ - .gitignore
+ - README.md
+ - LICENSE
+
+ # Allows you to run this workflow manually from the Actions tab
+ 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
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ 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@v3
+
+ - name: Setup Ruby
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: 3 # reads from a '.ruby-version' or '.tools-version' file if 'ruby-version' is omitted
+ bundler-cache: true
+
+ - name: Build site
+ run: bundle exec jekyll b -d "_site${{ steps.pages.outputs.base_path }}"
+ env:
+ JEKYLL_ENV: "production"
+
+ - name: Test site
+ run: |
+ bundle exec htmlproofer _site --disable-external --check-html --allow_hash_href
+
+ - name: Upload site artifact
+ uses: actions/upload-pages-artifact@v1
+ with:
+ path: "_site${{ steps.pages.outputs.base_path }}"
+
+ 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@v1
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0124b68
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,22 @@
+# Bundler cache
+.bundle
+vendor
+Gemfile.lock
+
+# Jekyll cache
+.jekyll-cache
+_site
+
+# RubyGems
+*.gem
+
+# NPM dependencies
+node_modules
+package-lock.json
+
+# IDE configurations
+.idea
+.vscode
+
+# Misc
+assets/js/dist
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..58062c5
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "assets/lib"]
+ path = assets/lib
+ url = https://github.com/cotes2020/chirpy-static-assets.git
diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/.nojekyll
@@ -0,0 +1 @@
+
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..dc98cd5
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+source "https://rubygems.org"
+
+gem "jekyll-theme-chirpy", "~> 5.6", ">= 5.6.1"
+
+group :test do
+ gem "html-proofer", "~> 3.18"
+end
+
+# 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]
+
+# Lock jekyll-sass-converter to 2.x on Linux-musl
+if RUBY_PLATFORM =~ /linux-musl/
+ gem "jekyll-sass-converter", "~> 2.0"
+end
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..a6f6c9f
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 Cotes Chung
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..9b4e987
--- /dev/null
+++ b/README.md
@@ -0,0 +1,45 @@
+# Chirpy Starter [![Gem Version](https://img.shields.io/gem/v/jekyll-theme-chirpy)](https://rubygems.org/gems/jekyll-theme-chirpy) [![GitHub license](https://img.shields.io/github/license/cotes2020/chirpy-starter.svg?color=blue)][mit]
+
+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.
+
+The Jekyll team 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.
+
+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
+.
+├── _config.yml
+├── _plugins
+├── _tabs
+└── index.html
+```
+
+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.
+
+## Prerequisites
+
+Follow the instructions in the [Jekyll Docs](https://jekyllrb.com/docs/installation/) to complete the installation of the basic environment. [Git](https://git-scm.com/) also needs to be installed.
+
+## Installation
+
+Sign in to GitHub and [**use this template**][use-template] to generate a brand new repository and name it `USERNAME.github.io`, where `USERNAME` represents your GitHub username.
+
+Then clone it to your local machine and run:
+
+```
+$ bundle
+```
+
+## Usage
+
+Please see the [theme's docs](https://github.com/cotes2020/jekyll-theme-chirpy#documentation).
+
+## License
+
+This work is published under [MIT][mit] License.
+
+[gem]: https://rubygems.org/gems/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
diff --git a/_config.yml b/_config.yml
new file mode 100644
index 0000000..7ed3e72
--- /dev/null
+++ b/_config.yml
@@ -0,0 +1,199 @@
+# The Site Configuration
+
+# Import the theme
+theme: jekyll-theme-chirpy
+
+# Change the following value to '/PROJECT_NAME' ONLY IF your site type is GitHub Pages Project sites
+# and doesn't have a custom domain.
+baseurl: ""
+
+# The language of the webpage › http://www.lingoes.net/en/translator/langcode.htm
+# 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
+timezone:
+
+# jekyll-seo-tag settings › https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md
+# ↓ --------------------------
+
+title: Chirpy # the main title
+
+tagline: A text-focused Jekyll theme # it will display as the sub-title
+
+description: >- # used by seo meta and the atom feed
+ A minimal, responsive and feature-rich Jekyll theme for technical writing.
+
+# fill in the protocol & hostname for your site, e.g., 'https://username.github.io'
+url: ""
+
+github:
+ username: github_username # change to your github username
+
+twitter:
+ username: twitter_username # change to your twitter username
+
+social:
+ # Change to your full name.
+ # It will be displayed as the default author of the posts and the copyright owner in the Footer
+ name: your_full_name
+ email: example@domain.com # change to your email address
+ links:
+ # The first element serves as the copyright owner's link
+ - https://twitter.com/username # change to your twitter homepage
+ - https://github.com/username # change to your github homepage
+ # Uncomment below to add more social links
+ # - https://www.facebook.com/username
+ # - https://www.linkedin.com/in/username
+
+google_site_verification: # fill in to your verification string
+
+# ↑ --------------------------
+# The end of `jekyll-seo-tag` settings
+
+google_analytics:
+ id: # fill in your Google Analytics ID
+ # Google Analytics pageviews report settings
+ pv:
+ proxy_endpoint: # fill in the Google Analytics superProxy endpoint of Google App Engine
+ cache_path: # the local PV cache data, friendly to visitors from GFW region
+
+# Prefer color scheme setting.
+#
+# Note: Keep empty will follow the system prefer color by default,
+# and there will be a toggle to switch the theme between dark and light
+# on the bottom left of the sidebar.
+#
+# Available options:
+#
+# light - Use the light color scheme
+# dark - Use the dark color scheme
+#
+theme_mode: # [light|dark]
+
+# The CDN endpoint for images.
+# Notice that once it is assigned, the CDN url
+# will be added to all image (site avatar & posts' images) paths starting with '/'
+#
+# e.g. 'https://cdn.com'
+img_cdn:
+
+# the avatar on sidebar, support local or CORS resources
+avatar:
+
+# boolean type, the global switch for TOC in posts.
+toc: true
+
+comments:
+ active: # The global switch for posts comments, e.g., 'disqus'. Keep it empty means disable
+ # 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 | ...>
+ # Giscus options › https://giscus.app
+ giscus:
+ repo: # <gh-username>/<repo>
+ repo_id:
+ category:
+ category_id:
+ mapping: # optional, default to 'pathname'
+ 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
+
+paginate: 10
+
+# ------------ The following options are not recommended to be modified ------------------
+
+kramdown:
+ syntax_highlighter: rouge
+ syntax_highlighter_opts: # Rouge Options › https://github.com/jneen/rouge#full-options
+ css_class: highlight
+ # default_lang: console
+ span:
+ line_numbers: false
+ block:
+ line_numbers: true
+ start_line: 1
+
+collections:
+ tabs:
+ output: true
+ sort_by: order
+
+defaults:
+ - scope:
+ path: "" # An empty string here means all files in the project
+ type: posts
+ values:
+ layout: post
+ comments: true # Enable comments 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:
+ path: _drafts
+ values:
+ comments: false
+ - scope:
+ path: ""
+ type: tabs # see `site.collections`
+ values:
+ layout: page
+ permalink: /:title/
+ - scope:
+ path: assets/img/favicons
+ values:
+ swcache: true
+ - scope:
+ path: assets/js/dist
+ values:
+ swcache: true
+
+sass:
+ style: compressed
+
+compress_html:
+ clippings: all
+ comments: all
+ endings: all
+ profile: false
+ blanklines: false
+ ignore:
+ envs: [development]
+
+exclude:
+ - "*.gem"
+ - "*.gemspec"
+ - tools
+ - README.md
+ - CHANGELOG.md
+ - LICENSE
+ - rollup.config.js
+ - node_modules
+ - package*.json
+
+jekyll-archives:
+ enabled: [categories, tags]
+ layouts:
+ category: category
+ tag: tag
+ permalinks:
+ tag: /tags/:name/
+ category: /categories/:name/
diff --git a/_data/contact.yml b/_data/contact.yml
new file mode 100644
index 0000000..76b667a
--- /dev/null
+++ b/_data/contact.yml
@@ -0,0 +1,28 @@
+# The contact options.
+
+- type: github
+ icon: "fab fa-github"
+
+- 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
+# Uncomment and complete the url below to enable more contact options
+#
+# - type: mastodon
+# icon: 'fab fa-mastodon' # icons powered by <https://fontawesome.com/>
+# url: '' # Fill with your Mastodon account page, rel="me" will be applied for verification
+#
+# - type: linkedin
+# icon: 'fab fa-linkedin' # icons powered by <https://fontawesome.com/>
+# url: '' # Fill with your Linkedin homepage
+#
+# - type: stack-overflow
+# icon: 'fab fa-stack-overflow'
+# url: '' # Fill with your stackoverflow homepage
diff --git a/_data/share.yml b/_data/share.yml
new file mode 100644
index 0000000..c1d4d63
--- /dev/null
+++ b/_data/share.yml
@@ -0,0 +1,25 @@
+# Sharing options at the bottom of the post.
+# Icons from <https://fontawesome.com/>
+
+platforms:
+ - type: Twitter
+ icon: "fab fa-twitter"
+ link: "https://twitter.com/intent/tweet?text=TITLE&url=URL"
+
+ - type: Facebook
+ icon: "fab fa-facebook-square"
+ link: "https://www.facebook.com/sharer/sharer.php?title=TITLE&u=URL"
+
+ - type: Telegram
+ icon: "fab fa-telegram"
+ link: "https://t.me/share/url?url=URL&text=TITLE"
+
+ # 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: "http://service.weibo.com/share/share.php?title=TITLE&url=URL"
diff --git a/_plugins/posts-lastmod-hook.rb b/_plugins/posts-lastmod-hook.rb
new file mode 100644
index 0000000..1fd6ecf
--- /dev/null
+++ b/_plugins/posts-lastmod-hook.rb
@@ -0,0 +1,14 @@
+#!/usr/bin/env ruby
+#
+# Check for changed posts
+
+Jekyll::Hooks.register :posts, :post_init do |post|
+
+ commit_num = `git rev-list --count HEAD "#{ post.path }"`
+
+ if commit_num.to_i > 1
+ lastmod_date = `git log -1 --pretty="%ad" --date=iso "#{ post.path }"`
+ post.data['last_modified_at'] = lastmod_date
+ end
+
+end
diff --git a/_posts/.placeholder b/_posts/.placeholder
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/_posts/.placeholder
@@ -0,0 +1 @@
+
diff --git a/_tabs/about.md b/_tabs/about.md
new file mode 100644
index 0000000..ddb2bc4
--- /dev/null
+++ b/_tabs/about.md
@@ -0,0 +1,8 @@
+---
+# the default layout is 'page'
+icon: fas fa-info-circle
+order: 4
+---
+
+> Add Markdown syntax content to file `_tabs/about.md`{: .filepath } and it will show up on this page.
+{: .prompt-tip }
diff --git a/_tabs/archives.md b/_tabs/archives.md
new file mode 100644
index 0000000..c3abc59
--- /dev/null
+++ b/_tabs/archives.md
@@ -0,0 +1,5 @@
+---
+layout: archives
+icon: fas fa-archive
+order: 3
+---
diff --git a/_tabs/categories.md b/_tabs/categories.md
new file mode 100644
index 0000000..2d241be
--- /dev/null
+++ b/_tabs/categories.md
@@ -0,0 +1,5 @@
+---
+layout: categories
+icon: fas fa-stream
+order: 1
+---
diff --git a/_tabs/tags.md b/_tabs/tags.md
new file mode 100644
index 0000000..c8e213a
--- /dev/null
+++ b/_tabs/tags.md
@@ -0,0 +1,5 @@
+---
+layout: tags
+icon: fas fa-tag
+order: 2
+---
diff --git a/assets/lib b/assets/lib
new file mode 160000
+Subproject 24ebdb708f3f5451df953cb5f9deb3ad4433404
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..1357b08
--- /dev/null
+++ b/index.html
@@ -0,0 +1,4 @@
+---
+layout: home
+# Index page
+---