simple-jekyll-theme 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/404.html +15 -0
- data/LICENSE.md +21 -0
- data/README.md +267 -0
- data/_includes/comment.html +0 -0
- data/_includes/custom-head.html +0 -0
- data/_includes/footer.html +6 -0
- data/_includes/head.html +40 -0
- data/_includes/icons.html +19 -0
- data/_includes/mathjax.html +21 -0
- data/_includes/navigation.html +26 -0
- data/_includes/post-card.html +20 -0
- data/_includes/tag-cloud.html +20 -0
- data/_includes/toc.html +108 -0
- data/_layouts/compress.html +10 -0
- data/_layouts/default.html +41 -0
- data/_layouts/home.html +25 -0
- data/_layouts/post.html +59 -0
- data/_layouts/tagpage.html +19 -0
- data/_sass/blog.scss +246 -0
- data/_sass/code.scss +150 -0
- data/_sass/definitions.scss +122 -0
- data/_sass/main.scss +377 -0
- data/_sass/mobile.scss +48 -0
- data/_sass/print.scss +107 -0
- data/assets/css/styles.scss +15 -0
- data/assets/css/styles_noncritical.scss +14 -0
- data/assets/js/main.js +234 -0
- data/assets/js/main.min.js +13 -0
- data/assets/js/pagination.js +51 -0
- data/assets/js/pagination.min.js +6 -0
- metadata +191 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 94cbd156d14e902cd391866d0a99dc1a0bb49a478121ba1a4d1ec3294e5cfd4c
|
4
|
+
data.tar.gz: 8c4a72a7e9ac17b259ca57f7491f05cc678c1ffbe61f36f3d50120dcea732e10
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2a438d8ee1e6d2decb682985a263f29c5a7d0274acc2381c58cd9c49b4c67c9e4c18b6519dadb7dddfe85ed937b49a4d13729903ebe60f710575a138a3780a16
|
7
|
+
data.tar.gz: 7a7060f23aa7bd6e702fc29abcff2c7e6305453dd39b7d5fcfb784513c0c814d64cef1892cc73c6d59b7e6d2a6ffdb79b5a3be6d389baf65b6dac1089fe962fb
|
data/404.html
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
title: "404: Page not found"
|
4
|
+
permalink: ./404.html
|
5
|
+
---
|
6
|
+
|
7
|
+
<div style="text-align: center;">
|
8
|
+
{% if site.font-awesome-kit %}
|
9
|
+
<i class="fas fa-dizzy" style="font-size: 500%"></i>
|
10
|
+
{% else %}
|
11
|
+
<svg class="icon" style="font-size: 500%"><use xlink:href="#icon-dizzy-solid"></use></svg>
|
12
|
+
{% endif %}
|
13
|
+
<h1 class="header">404: Page not found</h1>
|
14
|
+
<p>Oops, I may have misplaced that link.</p>
|
15
|
+
</div>
|
data/LICENSE.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2020 Weixuan Zhang
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,267 @@
|
|
1
|
+
![Simple](/docs/head.png)
|
2
|
+
|
3
|
+
<p align="center">
|
4
|
+
<a aria-label="build" href="https://github.com/WeixuanZ/simple-jekyll-theme/actions" target="_blank">
|
5
|
+
<img alt="GitHub Workflow Status" src="https://img.shields.io/github/workflow/status/weixuanz/simple-jekyll-theme/Gem%20Publish?style=flat-square">
|
6
|
+
</a>
|
7
|
+
<a aria-label="version" href="https://github.com/WeixuanZ/simple-jekyll-theme/blob/master/CHANGELOG.md">
|
8
|
+
<img alt="Version" src="https://img.shields.io/github/package-json/v/weixuanz/simple-jekyll-theme?style=flat-square">
|
9
|
+
</a>
|
10
|
+
<a aria-label="license" href="#license" target="_blank">
|
11
|
+
<img alt="License: MIT" src="https://img.shields.io/github/license/weixuanz/simple-jekyll-theme?style=flat-square">
|
12
|
+
</a>
|
13
|
+
</p>
|
14
|
+
|
15
|
+
A minimalistic Jekyll theme created for my blog - https://weixuanz.github.io.
|
16
|
+
|
17
|
+
* GitHub Pages compatible
|
18
|
+
* Optimised for speed (perfect score on PageSpeed Insight):
|
19
|
+
* No JQuery
|
20
|
+
* Minified HTML, CSS and JS
|
21
|
+
* Asynchronous loading of non-critical CSS
|
22
|
+
* Image lazy-loading
|
23
|
+
* And more...
|
24
|
+
* Dark mode support, with animated transition
|
25
|
+
* Mobile friendly
|
26
|
+
* Tag system, with sorted tag clouds
|
27
|
+
* Ajax pagination
|
28
|
+
* Dynamic TOC
|
29
|
+
* Code listings with copy button
|
30
|
+
* RSS Feed and SEO
|
31
|
+
* Google Tag Manager
|
32
|
+
|
33
|
+
<p align="center">
|
34
|
+
<a href="https://weixuanz.github.io/simple-jekyll-theme"><img alt="theme screenshot" src="/screenshot.png" width="400"></a>
|
35
|
+
</p>
|
36
|
+
|
37
|
+
---
|
38
|
+
|
39
|
+
This repository is a clone of that for my website, with commits not related to the theme stripped out, also with modifications for generalisation. For the commenting system (not included in this theme), check out [my fork of Utterances](https://github.com/WeixuanZ/utterances).
|
40
|
+
|
41
|
+
* [Installation](#installation)
|
42
|
+
* [Usage](#usage)
|
43
|
+
* [Metadata](#metadata)
|
44
|
+
* [Google Analytics \(optional\)](#google-analytics-optional)
|
45
|
+
* [Font Awesome Kit \(optional\)](#font-awesome-kit-optional)
|
46
|
+
* [Navigation](#navigation)
|
47
|
+
* [Homepage](#homepage)
|
48
|
+
* [Blog Posts](#blog-posts)
|
49
|
+
* [Customising](#customising)
|
50
|
+
* [Contributing](#contributing)
|
51
|
+
* [Development](#development)
|
52
|
+
* [License](#license)
|
53
|
+
|
54
|
+
|
55
|
+
## Installation
|
56
|
+
|
57
|
+
> If you are hosting your site on GitHub Pages, fork this repository and follow the [Development](#development) setup **instead**, and rename it to `<username>.github.io`. Alternatively, you can use `remote_theme: WeixuanZ/simple-jekyll-theme` by including a whitelisted gem called _jekyll-remote-theme_ in your `_config.yml`, [more details here](https://docs.github.com/en/free-pro-team@latest/github/working-with-github-pages/adding-a-theme-to-your-github-pages-site-using-jekyll#adding-a-jekyll-theme-in-your-sites-_configyml-file).
|
58
|
+
|
59
|
+
Add this line to your Jekyll site's `Gemfile`:
|
60
|
+
|
61
|
+
```ruby
|
62
|
+
gem "simple-jekyll-theme"
|
63
|
+
```
|
64
|
+
|
65
|
+
And then execute:
|
66
|
+
|
67
|
+
```bash
|
68
|
+
$ bundle
|
69
|
+
```
|
70
|
+
|
71
|
+
## Usage
|
72
|
+
|
73
|
+
Add this line to your Jekyll site's `_config.yml`:
|
74
|
+
|
75
|
+
```yaml
|
76
|
+
theme: simple-jekyll-theme
|
77
|
+
```
|
78
|
+
|
79
|
+
The theme provides four layouts:
|
80
|
+
|
81
|
+
* `default.html` — The base layout that lays the foundation for subsequent layouts, can be used for standalone pages.
|
82
|
+
* `home.html` — The layout for your landing-page / home-page / index-page. [[More Info](#homepage)]
|
83
|
+
* `post.html` — The layout for your posts.
|
84
|
+
* `tagpage.html` — The layout for your tag pages.
|
85
|
+
|
86
|
+
Note that you would have to include the corresponding font-matter to specify the layout, since Jekyll’s default settings cannot be overridden by a theme-config.
|
87
|
+
|
88
|
+
|
89
|
+
### Metadata
|
90
|
+
|
91
|
+
Overwrite the default values shown below by providing alternatives in your `_config.yml`.
|
92
|
+
|
93
|
+
```yaml
|
94
|
+
title: Simple Jekyll Theme
|
95
|
+
author: W Zhang
|
96
|
+
tagline: "A minimalistic theme for blogs"
|
97
|
+
description: "Theme for my personal blog https://weixuanz.github.io"
|
98
|
+
url: "https://weixuanz.github.io/simple-jekyll-theme" # no "/" at the end
|
99
|
+
lang: en
|
100
|
+
paginate: 5 # number of posts displayed on each page
|
101
|
+
```
|
102
|
+
|
103
|
+
|
104
|
+
#### Google Analytics (optional)
|
105
|
+
|
106
|
+
You can add Google Analytics through Google Tag Manager, add the following to your `_config.yml`:
|
107
|
+
|
108
|
+
```yaml
|
109
|
+
google-tag-manager-id: GTM-xxxxxx
|
110
|
+
```
|
111
|
+
|
112
|
+
#### Font Awesome Kit (optional)
|
113
|
+
|
114
|
+
You can use the Font Awesome Kit instead of using the default hardcoded svg icons. This is useful if you want to include more icons than the ones defined in `./_includes/icons.html`. You can register for a free kit at https://fontawesome.com.
|
115
|
+
|
116
|
+
```yaml
|
117
|
+
font-awesome-kit: xxxxxxxxxx
|
118
|
+
```
|
119
|
+
|
120
|
+
If the above is specified in `_config.yml`, svg icon definitions will not be included, and `<i />` will be used.
|
121
|
+
|
122
|
+
|
123
|
+
### Navigation
|
124
|
+
|
125
|
+
Add names and paths under the `navigation` key in `_config.yml` to specify links in the navigation bar:
|
126
|
+
|
127
|
+
```yaml
|
128
|
+
navigation:
|
129
|
+
- name: Home
|
130
|
+
link: /
|
131
|
+
- name: About
|
132
|
+
link: /about/
|
133
|
+
```
|
134
|
+
|
135
|
+
Note that the default permalink setting is `pretty`, you need to include `permalink: pretty` in `_config.yml`, or use the corresponding format when specifying `navigation`.
|
136
|
+
|
137
|
+
|
138
|
+
### Homepage
|
139
|
+
|
140
|
+
Add the following to `index.html` of your site:
|
141
|
+
|
142
|
+
```yaml
|
143
|
+
---
|
144
|
+
layout: home
|
145
|
+
title: Home
|
146
|
+
pagination:
|
147
|
+
enabled: true
|
148
|
+
---
|
149
|
+
```
|
150
|
+
|
151
|
+
Please note that for pagination to work, the index file must be in `.html` instead of `.md`.
|
152
|
+
|
153
|
+
All content from the file (if there's any) will be injected above the generated post list by the `home` layout. This will allow you to include non-posts related content to be published on the landing page.
|
154
|
+
|
155
|
+
|
156
|
+
### Blog Posts
|
157
|
+
|
158
|
+
Name your blog posts as `yyyy-mm-dd-name.md` and put them in `./_posts/`. Some important front matter configurations are listed below:
|
159
|
+
|
160
|
+
```yaml
|
161
|
+
---
|
162
|
+
layout: post
|
163
|
+
title: Example
|
164
|
+
author: W Zhang
|
165
|
+
description: This is an example post
|
166
|
+
tag: [example, jekyll]
|
167
|
+
toc: true
|
168
|
+
mathjax: true
|
169
|
+
---
|
170
|
+
```
|
171
|
+
|
172
|
+
A rather unfortunate result of supporting GitHub Pages is that the fantastic Jekyll tag gems cannot be used. I wrote a Python script `./scripts/tag_generator.py` based on [Long Qian's fantastic solution](https://longqian.me/2017/02/09/github-jekyll-tag/). You will need to download it separately if you are using the gem approach, perhaps using:
|
173
|
+
|
174
|
+
```bash
|
175
|
+
wget https://raw.githubusercontent.com/WeixuanZ/simple-jekyll-theme/master/tag_generator.py
|
176
|
+
```
|
177
|
+
|
178
|
+
You can use the provided `./scripts/pre-commit` git hook for automatic execution, or use `yarn run tag` if you cloned this repository.
|
179
|
+
|
180
|
+
On the other hand, if you prefer doing it manually, you simply need to create `.md` files under `./tag/`. For example, `./tag/jekyll.md` for a tag named _jekyll_ may contain the following:
|
181
|
+
|
182
|
+
```yaml
|
183
|
+
---
|
184
|
+
layout: tagpage
|
185
|
+
title: "Tag: jekyll"
|
186
|
+
tag: jekyll
|
187
|
+
---
|
188
|
+
```
|
189
|
+
|
190
|
+
Other than `blockquotes`, this theme also provides `.hint` and `.danger`, with blue and red left border respectively. They are implemented as classes on top of `blockquotes`, you can use the Kramdown syntax:
|
191
|
+
|
192
|
+
```markdown
|
193
|
+
> This is a hint
|
194
|
+
{:.hint}
|
195
|
+
```
|
196
|
+
|
197
|
+
The theme also includes the [lazysizes](https://github.com/aFarkas/lazysizes) package, to enable lazy-loading of images, use `data-src` instead of `src`, and add `lazyload` class.
|
198
|
+
|
199
|
+
```html
|
200
|
+
<figure>
|
201
|
+
<img data-src="/assets/images/example.png" class="lazyload">
|
202
|
+
<figcaption>Example figure</figcaption>
|
203
|
+
</figure>
|
204
|
+
```
|
205
|
+
|
206
|
+
|
207
|
+
### Customising
|
208
|
+
|
209
|
+
To override the default structure and style, simply create the concerned directory at the root of your site, copy the file you wish to customise to that directory, and then edit the file.
|
210
|
+
|
211
|
+
The files you may be particularly interested in:
|
212
|
+
|
213
|
+
```
|
214
|
+
.
|
215
|
+
├── _includes
|
216
|
+
│ ├── footer.html
|
217
|
+
│ ├── head.html -> <head /> in default layout
|
218
|
+
│ ├── custom-head.html -> placeholder for adding more metadata to <head />, e.g. png favicons
|
219
|
+
│ └── comment.html -> placeholder for commenting system
|
220
|
+
├── _sass
|
221
|
+
│ ├── blog.scss -> critical and non-critical styles related to blog posts, e.g. toc
|
222
|
+
│ ├── code.scss
|
223
|
+
│ ├── definitions.scss -> colour, font and mixin definitions
|
224
|
+
│ ├── main.scss -> critical styles
|
225
|
+
│ ├── mobile.scss -> media queries
|
226
|
+
│ └── print.scss
|
227
|
+
└── assets
|
228
|
+
└── js
|
229
|
+
├── main.js ┬> note that the minified versions xxxx.min.js are used
|
230
|
+
└── pagination.js ┘
|
231
|
+
```
|
232
|
+
|
233
|
+
## Contributing
|
234
|
+
|
235
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/weixuanz/simple-jekyll-theme. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](https://contributor-covenant.org) code of conduct.
|
236
|
+
|
237
|
+
|
238
|
+
## Development
|
239
|
+
|
240
|
+
To set up your environment to develop this theme, run `bundle install` and `yarn install`.
|
241
|
+
|
242
|
+
To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using the theme. Add pages, documents, data, etc. like normal to test the theme's contents. As you make modifications to the theme and content, the site will regenerate and you should see the changes in the browser after a refresh, just like normal.
|
243
|
+
|
244
|
+
I recommend using Google's Closure-compiler for minifying JavaScripts. If you have Homebrew installed, it's simply `brew install closure-compiler`. For automatic execution, you can also use the provided git hook.
|
245
|
+
|
246
|
+
When the theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled. To add a custom directory to the theme-gem, please edit the regexp in `simple-jekyll-theme.gemspec` accordingly.
|
247
|
+
|
248
|
+
## License
|
249
|
+
|
250
|
+
The theme is available as open source under the terms of the [MIT License](/LICENSE.md). Please link to this repository in the footer if you overwrite the default one.
|
251
|
+
|
252
|
+
By default, svg icons used (in `./_includes/icons.html`) are from Font Awesome, which are licensed under the [Creative Commons Attribution 4.0 International license](https://creativecommons.org/licenses/by/4.0/). No modifications were made.
|
253
|
+
|
254
|
+
Amazing open-source code used:
|
255
|
+
* Source-codes included in this gem:
|
256
|
+
* [Monokai theme colour definitions](https://gist.github.com/asaaki/1007420)
|
257
|
+
* [Theme switching script by Koos Looijesteijn](https://gist.github.com/kslstn/20f654fd27eb29619040c74fa6526919) (_Modified_)
|
258
|
+
* [jekyll-compress-html](https://github.com/penibelst/jekyll-compress-html) MIT
|
259
|
+
* [jekyll-toc](https://github.com/allejo/jekyll-toc) MIT (_Modification merged upstream_)
|
260
|
+
* Dependencies:
|
261
|
+
* JS libraries:
|
262
|
+
* [Clipboard.js](https://clipboardjs.com)
|
263
|
+
* [lazysizes](https://github.com/aFarkas/lazysizes)
|
264
|
+
* Jekyll plug-ins:
|
265
|
+
* [jekyll-seo-tag](https://github.com/jekyll/jekyll-seo-tag)
|
266
|
+
* [jekyll-sitemap](https://github.com/jekyll/jekyll-sitemap)
|
267
|
+
* [jekyll-feed](https://github.com/jekyll/jekyll-feed)
|
File without changes
|
File without changes
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<footer id="main-footer" class="no-select">
|
2
|
+
<p id="copyleft">Copyleft <span style="display: inline-block; transform: rotate(180deg);">©</span> {{ 'now' | date: "%Y" }} {{ site.author }}</p>
|
3
|
+
<div>
|
4
|
+
Powered by <a href="https://jekyllrb.com" aria-label="jekyll">Jekyll</a> & <a href="https://github.com/WeixuanZ/simple-jekyll-theme" aria-label="theme">Simple</a>.
|
5
|
+
</div>
|
6
|
+
</footer>
|
data/_includes/head.html
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
<head>
|
2
|
+
{% if site.google-tag-manager-id %}
|
3
|
+
<!-- Google Tag Manager -->
|
4
|
+
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
5
|
+
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
6
|
+
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
7
|
+
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
8
|
+
})(window,document,'script','dataLayer','{{ site.google-tag-manager-id }}');</script>
|
9
|
+
<!-- End Google Tag Manager -->
|
10
|
+
{% endif%}
|
11
|
+
|
12
|
+
<!-- Meta -->
|
13
|
+
<meta charset="utf-8">
|
14
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
15
|
+
<title>{{ page.title }} · {{ site.title }}</title>
|
16
|
+
<!-- Fonts -->
|
17
|
+
<link href='https://fonts.gstatic.com' rel='preconnect' crossorigin>
|
18
|
+
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Black+Ops+One&display=swap">
|
19
|
+
<!-- Stylesheets -->
|
20
|
+
<link rel="stylesheet" type="text/css" href="{{ site.url }}/assets/css/styles.css">
|
21
|
+
<link rel="stylesheet" href="{{ site.url }}/assets/css/styles_noncritical.css" media="print" onload="this.media='all'">
|
22
|
+
<noscript><link rel="stylesheet" href="{{ site.url }}/assets/css/styles_noncritical.css"></noscript> <!-- Fallback -->
|
23
|
+
|
24
|
+
{% if site.font-awesome-kit %}
|
25
|
+
<script defer src="https://kit.fontawesome.com/{{ site.font-awesome-kit }}.js" crossorigin="anonymous"></script>
|
26
|
+
{% endif %}
|
27
|
+
|
28
|
+
{% if page.content contains "lazyload" %}
|
29
|
+
<script async src="https://cdn.jsdelivr.net/npm/lazysizes@5/lazysizes.min.js"></script>
|
30
|
+
{% endif %}
|
31
|
+
|
32
|
+
{% if page.mathjax %}
|
33
|
+
{% include mathjax.html %}
|
34
|
+
{% endif %}
|
35
|
+
|
36
|
+
{% feed_meta %}
|
37
|
+
{% seo title=false %}
|
38
|
+
|
39
|
+
{% include custom-head.html %}
|
40
|
+
</head>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<svg aria-hidden="true" style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
2
|
+
<defs>
|
3
|
+
<symbol id="icon-dizzy-solid" viewBox="0 0 31 32">
|
4
|
+
<path d="M15.5 0.5c-8.563 0-15.5 6.938-15.5 15.5s6.938 15.5 15.5 15.5 15.5-6.938 15.5-15.5-6.938-15.5-15.5-15.5zM9.5 13.412l-1.794 1.794c-0.925 0.925-2.362-0.469-1.413-1.412l1.794-1.794-1.794-1.794c-0.938-0.938 0.481-2.35 1.413-1.412l1.794 1.794 1.794-1.794c0.938-0.938 2.35 0.481 1.412 1.412l-1.794 1.794 1.794 1.794c0.95 0.95-0.494 2.337-1.412 1.412l-1.794-1.794zM15.5 26c-2.206 0-4-1.794-4-4s1.794-4 4-4 4 1.794 4 4-1.794 4-4 4zM24.706 13.794c0.95 0.95-0.494 2.337-1.413 1.412l-1.794-1.794-1.794 1.794c-0.925 0.925-2.363-0.469-1.413-1.412l1.794-1.794-1.794-1.794c-0.938-0.938 0.481-2.35 1.413-1.412l1.794 1.794 1.794-1.794c0.938-0.938 2.35 0.481 1.413 1.412l-1.794 1.794 1.794 1.794z"></path>
|
5
|
+
</symbol>
|
6
|
+
<symbol id="icon-adjust-solid" viewBox="0 0 32 32">
|
7
|
+
<path d="M0.5 16c0 8.56 6.94 15.5 15.5 15.5s15.5-6.94 15.5-15.5-6.94-15.5-15.5-15.5-15.5 6.94-15.5 15.5zM16 27.5v-23c6.357 0 11.5 5.144 11.5 11.5 0 6.357-5.144 11.5-11.5 11.5z"></path>
|
8
|
+
</symbol>
|
9
|
+
<symbol id="icon-share-solid" viewBox="0 0 32 32">
|
10
|
+
<path d="M31.481 11.865l-11-9.499c-0.963-0.832-2.48-0.156-2.48 1.135v5.003c-10.039 0.115-18 2.127-18 11.641 0 3.84 2.474 7.644 5.208 9.633 0.853 0.621 2.069-0.158 1.755-1.164-2.834-9.063 1.344-11.469 11.037-11.609v5.495c0 1.294 1.519 1.966 2.48 1.135l11-9.5c0.692-0.598 0.693-1.672 0-2.271z"></path>
|
11
|
+
</symbol>
|
12
|
+
<symbol id="icon-tag-solid" viewBox="0 0 32 32">
|
13
|
+
<path d="M0 15.757v-12.757c0-1.657 1.343-3 3-3h12.757c0.828 0 1.578 0.336 2.121 0.879l13.243 13.243c1.172 1.172 1.172 3.071 0 4.243l-12.757 12.757c-1.172 1.172-3.071 1.172-4.243 0l-13.243-13.243c-0.543-0.543-0.879-1.293-0.879-2.121v0zM7 4c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3z"></path>
|
14
|
+
</symbol>
|
15
|
+
<symbol id="icon-clone-solid" viewBox="0 0 32 32">
|
16
|
+
<path d="M29 0c1.657 0 3 1.343 3 3v18c0 1.657-1.343 3-3 3h-18c-1.657 0-3-1.343-3-3v-18c0-1.657 1.343-3 3-3h18zM11 26c-2.757 0-5-2.243-5-5v-13h-3c-1.657 0-3 1.343-3 3v18c0 1.657 1.343 3 3 3h18c1.657 0 3-1.343 3-3v-3h-13z"></path>
|
17
|
+
</symbol>
|
18
|
+
</defs>
|
19
|
+
</svg>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<script defer type="text/javascript">
|
2
|
+
MathJax = {
|
3
|
+
options: {
|
4
|
+
renderActions: {
|
5
|
+
find_script_mathtex: [10, function (doc) {
|
6
|
+
for (const node of document.querySelectorAll('script[type^="math/tex"]')) {
|
7
|
+
const display = !!node.type.match(/; *mode=display/);
|
8
|
+
const math = new doc.options.MathItem(node.textContent, doc.inputJax[0], display);
|
9
|
+
const text = document.createTextNode('');
|
10
|
+
node.parentNode.replaceChild(text, node);
|
11
|
+
math.start = {node: text, delim: '', n: 0};
|
12
|
+
math.end = {node: text, delim: '', n: 0};
|
13
|
+
doc.math.push(math);
|
14
|
+
}
|
15
|
+
}, '']
|
16
|
+
}
|
17
|
+
}
|
18
|
+
};
|
19
|
+
</script>
|
20
|
+
<script defer src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
|
21
|
+
<script defer id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<nav id="navbar" class="no-select">
|
2
|
+
<div class="container">
|
3
|
+
{% for item in site.navigation %}
|
4
|
+
<a {% if page.url == item.link %}class="current"{% else %}href="{{ site.url }}{{ item.link }}"{% endif %}>{{ item.name }}</a>
|
5
|
+
{% endfor %}
|
6
|
+
<input type="checkbox" id="dark-toggle-box">
|
7
|
+
<label for="dark-toggle-box" id="dark-toggle-label">
|
8
|
+
{% if site.font-awesome-kit %}
|
9
|
+
<i class="fas fa-adjust"></i>
|
10
|
+
{% else %}
|
11
|
+
<svg class="icon"><use xlink:href="#icon-adjust-solid"></use></svg>
|
12
|
+
{% endif %}
|
13
|
+
</label>
|
14
|
+
</div>
|
15
|
+
</nav>
|
16
|
+
<script type="text/javascript">
|
17
|
+
const navbar = document.querySelector('#navbar');
|
18
|
+
const nav_init = navbar.offsetTop;
|
19
|
+
window.addEventListener('scroll', function() {
|
20
|
+
if (this.scrollY >= nav_init) {
|
21
|
+
navbar.classList.add("sticky");
|
22
|
+
} else {
|
23
|
+
navbar.classList.remove("sticky");
|
24
|
+
}
|
25
|
+
})
|
26
|
+
</script>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<a href="{{ site.url }}{{ post.url }}">
|
2
|
+
<div class="card">
|
3
|
+
<div class="post-meta">
|
4
|
+
<span class="date">{{ post.date | date: "%b %-d, %Y" }}</span>
|
5
|
+
{% if post.tags.size > 0 %}
|
6
|
+
|
|
7
|
+
<span class="tag">
|
8
|
+
{%- if site.font-awesome-kit -%}
|
9
|
+
<i class="fas fa-tag"></i>
|
10
|
+
{%- else -%}
|
11
|
+
<svg class="icon"><use xlink:href="#icon-tag-solid"></use></svg>
|
12
|
+
{%- endif -%}
|
13
|
+
{% for tag in post.tags %}<code>{{ tag }}</code>{% endfor %}
|
14
|
+
</span>
|
15
|
+
{% endif %}
|
16
|
+
</div>
|
17
|
+
<span class="post-title">{{ post.title }}</span><br>
|
18
|
+
<span class="post-description">{{ post.description }}</span>
|
19
|
+
</div>
|
20
|
+
</a>
|