Compare commits

..

8 Commits

10 changed files with 33 additions and 212 deletions

View File

@ -13,9 +13,6 @@ jobs:
runs-on: ubuntu-latest
env:
GEMS_PATH: ~/vendor/bundle
steps:
- name: Checkout
uses: actions/checkout@v2
@ -23,22 +20,10 @@ jobs:
fetch-depth: 0 # for posts's lastmod
- name: Setup Ruby
uses: actions/setup-ruby@v1
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
- name: Bundle Caching
uses: actions/cache@v2
with:
path: ${{ env.GEMS_PATH }}
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-
- name: Bundle Install
run: |
bundle config path ${{ env.GEMS_PATH }}
bundle install --jobs 4 --retry 3
bundler-cache: true
- name: Check baseurl
run: |

3
.gitignore vendored
View File

@ -2,9 +2,10 @@
.*
!.github
# jekyll cache
# bundler cache
_site
vendor
Gemfile.lock
# rubygem
*.gem

View File

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

View File

@ -1,9 +1,9 @@
source "https://rubygems.org"
gem "jekyll-theme-chirpy"
gem "jekyll-theme-chirpy", "~> 4.0", ">= 4.0.0"
# If you have any plugins, put them here!
group :jekyll_plugins do
# If you have any plugins, put them here!
# gem "jekyll-xxx", "~> x.y"
end
@ -18,5 +18,5 @@ install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do
gem "tzinfo-data"
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?

View File

@ -1,23 +1,25 @@
# 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]
The startup template for [**Jekyll Theme Chirpy**][chirpy].
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 files/directories and config options from the theme's gem to your Jekyll site. So we extract all the required things of the theme's gem to help you quickly use Chirpy.
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 key files/directories to run/build the **Chirpy** theme are as follows:
```shell
# The critical files/directories to run Chirpy theme
.
├── _data
├── _plugins
├── _tabs
├── _config.yml
── app.js
├── feed.xml
├── index.html
├── robots.txt
├── sw.js
└── 404.html
── index.html
```
So we've extracted all the **Chirpy** gem necessary content here to help you get started quickly.
## Installation
[Use this template][usetemplate] to generate a new repository, and then execute:
@ -55,7 +57,7 @@ $tab-count: {{ site.tabs | size | plus: 1 }};
### Publishing to GitHub Pages
See the `jekyll-theme-chirpy`'s [deployment instructions](https://github.com/cotes2020/jekyll-theme-chirpy#deployment). Note that in order to use GitHub Actions caching to speed up the deployment, you should add the `Gemfile.lock` file to your repository.
See the [deployment instructions](https://github.com/cotes2020/jekyll-theme-chirpy#deployment) of `jekyll-theme-chirpy`.
### Updating
@ -73,7 +75,8 @@ See the [theme's docs](https://github.com/cotes2020/jekyll-theme-chirpy#document
## License
This work is published under [MIT](https://github.com/cotes2020/chirpy-starter/blob/master/LICENSE) 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/
[mit]: https://github.com/cotes2020/chirpy-starter/blob/master/LICENSE

View File

@ -27,8 +27,6 @@ description: >- # used by seo meta and the atom feed
# fill in the protocol & hostname for your site, e.g., 'https://username.github.io'
url: ''
author: your_full_name # change to your full name
github:
username: github_username # change to your github username
@ -36,7 +34,9 @@ twitter:
username: twitter_username # change to your twitter username
social:
name: your_full_name # it will shows as the copyright owner in Footer
# 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@doamin.com # change to your email address
links:
# The first element serves as the copyright owner's link
@ -50,15 +50,11 @@ google_site_verification: google_meta_tag_verification # change to your verifica
# --------------------------
google_analytics:
id: '' # Fill with your Google Analytics ID
id: '' # fill in your Google Analytics ID
# Google Analytics pageviews report settings
pv:
# The Google Analytics pageviews switch.
# DO NOT enable it unless you know how to deploy the Google Analytics superProxy.
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.
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.
#
@ -105,10 +101,6 @@ kramdown:
line_numbers: true
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:
tabs:
output: true
@ -124,6 +116,9 @@ defaults:
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
@ -151,18 +146,15 @@ compress_html:
envs: [development]
exclude:
- vendor
- Gemfile
- Gemfile.lock
- jekyll-theme-chirpy.gemspec
- '*.gem'
- '*.gemspec'
- tools
- docs
- README.md
- LICENSE
- gulpfile.js
- node_modules
- package.json
- package-lock.json
- '*.json'
jekyll-archives:
enabled: [categories, tags]

8
app.js
View File

@ -1,8 +0,0 @@
---
layout: compress
---
/* Registering Service Worker */
if('serviceWorker' in navigator) {
navigator.serviceWorker.register('{{ "/sw.js" | relative_url }}');
};

View File

@ -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.author }}</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.author }} </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.author }}</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: '&', '&amp;' }}

View File

@ -1,10 +0,0 @@
---
permalink: robots.txt
# The robots rules
---
User-agent: *
Disallow: /norobots/
Sitemap: {{ '/sitemap.xml' | absolute_url }}

61
sw.js
View File

@ -1,61 +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('[Service Worker] Fetching resource: ' + e.request.url); */
return r || fetch(e.request).then((response) => {
return caches.open(cacheName).then((cache) => {
if (!isExcluded(e.request.url)) {
/* console.log('[Service Worker] 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);
}
}));
})
);
});