jekyll-theme-abd3lraouf 5.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +105 -0
- data/_config.yml +206 -0
- data/_data/assets/cross_origin.yml +62 -0
- data/_data/assets/self_host.yml +51 -0
- data/_data/authors.yml +17 -0
- data/_data/contact.yml +30 -0
- data/_data/locales/bg-BG.yml +83 -0
- data/_data/locales/en.yml +83 -0
- data/_data/locales/es-ES.yml +79 -0
- data/_data/locales/fr-FR.yml +79 -0
- data/_data/locales/hu-HU.yml +81 -0
- data/_data/locales/id-ID.yml +79 -0
- data/_data/locales/ko-KR.yml +79 -0
- data/_data/locales/my-MM.yml +79 -0
- data/_data/locales/pt-BR.yml +79 -0
- data/_data/locales/ru-RU.yml +79 -0
- data/_data/locales/tr-TR.yml +79 -0
- data/_data/locales/uk-UA.yml +79 -0
- data/_data/locales/vi-VN.yml +77 -0
- data/_data/locales/zh-CN.yml +78 -0
- data/_data/share.yml +27 -0
- data/_includes/assets-origin.html +12 -0
- data/_includes/comments/disqus.html +54 -0
- data/_includes/comments/giscus.html +56 -0
- data/_includes/comments/utterances.html +51 -0
- data/_includes/comments.html +5 -0
- data/_includes/datetime.html +21 -0
- data/_includes/favicons.html +17 -0
- data/_includes/footer.html +36 -0
- data/_includes/google-analytics.html +14 -0
- data/_includes/head.html +116 -0
- data/_includes/js-selector.html +104 -0
- data/_includes/jsdelivr-combine.html +32 -0
- data/_includes/lang.html +8 -0
- data/_includes/language-alias.html +70 -0
- data/_includes/mermaid.html +57 -0
- data/_includes/mode-toggle.html +129 -0
- data/_includes/no-linenos.html +10 -0
- data/_includes/post-nav.html +30 -0
- data/_includes/post-paginator.html +88 -0
- data/_includes/post-sharing.html +27 -0
- data/_includes/read-time.html +30 -0
- data/_includes/refactor-content.html +282 -0
- data/_includes/related-posts.html +103 -0
- data/_includes/search-loader.html +46 -0
- data/_includes/search-results.html +11 -0
- data/_includes/sidebar.html +93 -0
- data/_includes/toc.html +16 -0
- data/_includes/topbar.html +70 -0
- data/_includes/trending-tags.html +50 -0
- data/_includes/update-list.html +40 -0
- data/_layouts/archives.html +48 -0
- data/_layouts/categories.html +120 -0
- data/_layouts/category.html +24 -0
- data/_layouts/compress.html +10 -0
- data/_layouts/default.html +74 -0
- data/_layouts/home.html +103 -0
- data/_layouts/page.html +64 -0
- data/_layouts/post.html +159 -0
- data/_layouts/tag.html +23 -0
- data/_layouts/tags.html +23 -0
- data/_plugins/posts-lastmod-hook.rb +14 -0
- data/_sass/addon/commons.scss +1680 -0
- data/_sass/addon/module.scss +151 -0
- data/_sass/addon/syntax.scss +289 -0
- data/_sass/addon/variables.scss +34 -0
- data/_sass/colors/dark-syntax.scss +88 -0
- data/_sass/colors/dark-typography.scss +157 -0
- data/_sass/colors/light-syntax.scss +84 -0
- data/_sass/colors/light-typography.scss +94 -0
- data/_sass/jekyll-theme-abd3lraouf.scss +24 -0
- data/_sass/layout/archives.scss +147 -0
- data/_sass/layout/categories.scss +67 -0
- data/_sass/layout/category-tag.scss +73 -0
- data/_sass/layout/home.scss +184 -0
- data/_sass/layout/post.scss +369 -0
- data/_sass/layout/tags.scss +19 -0
- data/_sass/variables-hook.scss +3 -0
- data/_tabs/about.md +8 -0
- data/_tabs/archives.md +7 -0
- data/_tabs/categories.md +6 -0
- data/_tabs/tags.md +6 -0
- data/assets/404.html +16 -0
- data/assets/css/style.scss +12 -0
- data/assets/feed.xml +61 -0
- data/assets/img/favicons/android-chrome-192x192.png +0 -0
- data/assets/img/favicons/android-chrome-512x512.png +0 -0
- data/assets/img/favicons/apple-touch-icon.png +0 -0
- data/assets/img/favicons/browserconfig.xml +13 -0
- data/assets/img/favicons/favicon-16x16.png +0 -0
- data/assets/img/favicons/favicon-32x32.png +0 -0
- data/assets/img/favicons/favicon.ico +0 -0
- data/assets/img/favicons/mstile-150x150.png +0 -0
- data/assets/img/favicons/site.webmanifest +26 -0
- data/assets/js/data/search.json +18 -0
- data/assets/js/data/swcache.js +55 -0
- data/assets/js/dist/categories.min.js +6 -0
- data/assets/js/dist/commons.min.js +6 -0
- data/assets/js/dist/home.min.js +6 -0
- data/assets/js/dist/misc.min.js +6 -0
- data/assets/js/dist/page.min.js +6 -0
- data/assets/js/dist/post.min.js +6 -0
- data/assets/js/dist/pvreport.min.js +6 -0
- data/assets/js/pwa/app.js +47 -0
- data/assets/js/pwa/sw.js +89 -0
- data/assets/js/pwa/unregister.js +12 -0
- data/assets/robots.txt +10 -0
- data/index.html +4 -0
- metadata +243 -0
@@ -0,0 +1,369 @@
|
|
1
|
+
/*
|
2
|
+
Post-specific style
|
3
|
+
*/
|
4
|
+
|
5
|
+
@mixin btn-sharing-color($light-color, $important: false) {
|
6
|
+
@if $important {
|
7
|
+
color: var(--btn-share-color, $light-color) !important;
|
8
|
+
} @else {
|
9
|
+
color: var(--btn-share-color, $light-color);
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
@mixin btn-post-nav {
|
14
|
+
width: 50%;
|
15
|
+
position: relative;
|
16
|
+
border-color: var(--btn-border-color);
|
17
|
+
}
|
18
|
+
|
19
|
+
@mixin dot($pl: 0.25rem, $pr: 0.25rem) {
|
20
|
+
content: "\2022";
|
21
|
+
padding-left: $pl;
|
22
|
+
padding-right: $pr;
|
23
|
+
}
|
24
|
+
|
25
|
+
%text-color {
|
26
|
+
color: var(--text-color);
|
27
|
+
}
|
28
|
+
|
29
|
+
h1 + .post-meta {
|
30
|
+
span + span::before {
|
31
|
+
@include dot;
|
32
|
+
}
|
33
|
+
|
34
|
+
em {
|
35
|
+
@extend %text-color;
|
36
|
+
|
37
|
+
a {
|
38
|
+
@extend %text-color;
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
img.preview-img {
|
44
|
+
margin: 0;
|
45
|
+
border-radius: 6px;
|
46
|
+
|
47
|
+
&.bg[data-loaded=true] {
|
48
|
+
background: var(--preview-img-bg);
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
.post-tail-wrapper {
|
53
|
+
margin-top: 6rem;
|
54
|
+
border-bottom: 1px double var(--main-border-color);
|
55
|
+
font-size: 0.85rem;
|
56
|
+
|
57
|
+
.post-meta a:not(:hover) {
|
58
|
+
@extend %link-underline;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
.post-tags {
|
63
|
+
line-height: 2rem;
|
64
|
+
}
|
65
|
+
|
66
|
+
.post-navigation {
|
67
|
+
padding-top: 3rem;
|
68
|
+
padding-bottom: 4rem;
|
69
|
+
|
70
|
+
.btn {
|
71
|
+
@include btn-post-nav;
|
72
|
+
|
73
|
+
color: var(--link-color);
|
74
|
+
|
75
|
+
&:hover {
|
76
|
+
background: #2a408e;
|
77
|
+
color: #fff;
|
78
|
+
border-color: #2a408e;
|
79
|
+
}
|
80
|
+
|
81
|
+
&.disabled {
|
82
|
+
@include btn-post-nav;
|
83
|
+
|
84
|
+
pointer-events: auto;
|
85
|
+
cursor: not-allowed;
|
86
|
+
background: none;
|
87
|
+
color: gray;
|
88
|
+
|
89
|
+
&:hover {
|
90
|
+
border-color: none;
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
&.btn-outline-primary.disabled:focus {
|
95
|
+
box-shadow: none;
|
96
|
+
}
|
97
|
+
|
98
|
+
&::before {
|
99
|
+
color: var(--text-muted-color);
|
100
|
+
font-size: 0.65rem;
|
101
|
+
text-transform: uppercase;
|
102
|
+
content: attr(prompt);
|
103
|
+
}
|
104
|
+
|
105
|
+
&:first-child {
|
106
|
+
border-top-right-radius: 0;
|
107
|
+
border-bottom-right-radius: 0;
|
108
|
+
left: 0.5px;
|
109
|
+
}
|
110
|
+
|
111
|
+
&:last-child {
|
112
|
+
border-top-left-radius: 0;
|
113
|
+
border-bottom-left-radius: 0;
|
114
|
+
right: 0.5px;
|
115
|
+
}
|
116
|
+
}
|
117
|
+
|
118
|
+
p {
|
119
|
+
font-size: 1.1rem;
|
120
|
+
line-height: 1.5rem;
|
121
|
+
margin-top: 0.3rem;
|
122
|
+
white-space: normal;
|
123
|
+
}
|
124
|
+
|
125
|
+
} /* .post-navigation */
|
126
|
+
|
127
|
+
@keyframes fade-up {
|
128
|
+
from {
|
129
|
+
opacity: 0;
|
130
|
+
position: relative;
|
131
|
+
top: 2rem;
|
132
|
+
}
|
133
|
+
to {
|
134
|
+
opacity: 1;
|
135
|
+
position: relative;
|
136
|
+
top: 0;
|
137
|
+
}
|
138
|
+
}
|
139
|
+
|
140
|
+
#toc-wrapper {
|
141
|
+
border-left: 1px solid rgba(158, 158, 158, 0.17);
|
142
|
+
position: -webkit-sticky;
|
143
|
+
position: sticky;
|
144
|
+
top: 4rem;
|
145
|
+
transition: top 0.2s ease-in-out;
|
146
|
+
animation: fade-up 0.8s;
|
147
|
+
}
|
148
|
+
|
149
|
+
#toc li a {
|
150
|
+
font-size: 0.8rem;
|
151
|
+
|
152
|
+
&.nav-link:not(.active) {
|
153
|
+
color: inherit;
|
154
|
+
}
|
155
|
+
|
156
|
+
}
|
157
|
+
|
158
|
+
nav[data-toggle=toc] {
|
159
|
+
.nav {
|
160
|
+
.nav > li > a.active {
|
161
|
+
font-weight: 600 !important;
|
162
|
+
}
|
163
|
+
}
|
164
|
+
}
|
165
|
+
|
166
|
+
/* --- Related Posts --- */
|
167
|
+
|
168
|
+
#related-posts {
|
169
|
+
> h3 {
|
170
|
+
@include label(1.1rem, 600);
|
171
|
+
}
|
172
|
+
|
173
|
+
em {
|
174
|
+
@extend %normal-font-style;
|
175
|
+
|
176
|
+
color: var(--relate-post-date);
|
177
|
+
}
|
178
|
+
|
179
|
+
.card {
|
180
|
+
border-color: var(--card-border-color);
|
181
|
+
background-color: var(--card-bg);
|
182
|
+
box-shadow: 0 0 5px 0 var(--card-box-shadow);
|
183
|
+
-webkit-transition: all 0.3s ease-in-out;
|
184
|
+
-moz-transition: all 0.3s ease-in-out;
|
185
|
+
transition: all 0.3s ease-in-out;
|
186
|
+
|
187
|
+
h3 {
|
188
|
+
@extend %text-color;
|
189
|
+
}
|
190
|
+
|
191
|
+
&:hover {
|
192
|
+
-webkit-transform: translate3d(0, -3px, 0);
|
193
|
+
transform: translate3d(0, -3px, 0);
|
194
|
+
box-shadow: 0 10px 15px -4px rgba(0, 0, 0, 0.15);
|
195
|
+
}
|
196
|
+
}
|
197
|
+
|
198
|
+
p {
|
199
|
+
font-size: 0.9rem;
|
200
|
+
margin-bottom: 0.5rem;
|
201
|
+
overflow: hidden;
|
202
|
+
text-overflow: ellipsis;
|
203
|
+
display: -webkit-box;
|
204
|
+
-webkit-line-clamp: 2;
|
205
|
+
-webkit-box-orient: vertical;
|
206
|
+
}
|
207
|
+
|
208
|
+
a:hover {
|
209
|
+
text-decoration: none;
|
210
|
+
}
|
211
|
+
|
212
|
+
ul {
|
213
|
+
list-style-type: none;
|
214
|
+
padding-inline-start: 1.5rem;
|
215
|
+
|
216
|
+
> li::before {
|
217
|
+
background: #c2c9d4;
|
218
|
+
width: 5px;
|
219
|
+
height: 5px;
|
220
|
+
border-radius: 1px;
|
221
|
+
display: block;
|
222
|
+
content: "";
|
223
|
+
position: relative;
|
224
|
+
top: 1rem;
|
225
|
+
right: 1rem;
|
226
|
+
}
|
227
|
+
}
|
228
|
+
}
|
229
|
+
|
230
|
+
#tail-wrapper {
|
231
|
+
min-height: 2rem;
|
232
|
+
|
233
|
+
> div:last-of-type {
|
234
|
+
margin-bottom: 2rem;
|
235
|
+
}
|
236
|
+
|
237
|
+
#disqus_thread {
|
238
|
+
min-height: 8.5rem;
|
239
|
+
}
|
240
|
+
|
241
|
+
}
|
242
|
+
|
243
|
+
.post-tail-bottom a {
|
244
|
+
color: inherit;
|
245
|
+
}
|
246
|
+
|
247
|
+
%btn-share-hovor {
|
248
|
+
color: var(--btn-share-hover-color) !important;
|
249
|
+
}
|
250
|
+
|
251
|
+
.share-wrapper {
|
252
|
+
vertical-align: middle;
|
253
|
+
user-select: none;
|
254
|
+
|
255
|
+
.share-icons {
|
256
|
+
font-size: 1.2rem;
|
257
|
+
|
258
|
+
a {
|
259
|
+
&:not(:last-child) {
|
260
|
+
margin-right: 0.25rem;
|
261
|
+
}
|
262
|
+
|
263
|
+
&:hover {
|
264
|
+
text-decoration: none;
|
265
|
+
|
266
|
+
> i {
|
267
|
+
@extend %btn-share-hovor;
|
268
|
+
}
|
269
|
+
}
|
270
|
+
}
|
271
|
+
|
272
|
+
> i {
|
273
|
+
position: relative;
|
274
|
+
bottom: 1px;
|
275
|
+
|
276
|
+
@extend %cursor-pointer;
|
277
|
+
|
278
|
+
&:hover {
|
279
|
+
@extend %btn-share-hovor;
|
280
|
+
}
|
281
|
+
}
|
282
|
+
|
283
|
+
.fab {
|
284
|
+
&.fa-twitter {
|
285
|
+
@include btn-sharing-color(rgba(29, 161, 242, 1));
|
286
|
+
}
|
287
|
+
|
288
|
+
&.fa-facebook-square {
|
289
|
+
@include btn-sharing-color(rgb(66, 95, 156));
|
290
|
+
}
|
291
|
+
|
292
|
+
&.fa-telegram {
|
293
|
+
@include btn-sharing-color(rgb(39, 159, 217));
|
294
|
+
}
|
295
|
+
|
296
|
+
&.fa-weibo {
|
297
|
+
@include btn-sharing-color(rgb(229, 20, 43));
|
298
|
+
}
|
299
|
+
}
|
300
|
+
|
301
|
+
} /* .share-icons */
|
302
|
+
|
303
|
+
.fas.fa-link {
|
304
|
+
@include btn-sharing-color(rgb(171, 171, 171));
|
305
|
+
}
|
306
|
+
|
307
|
+
} /* .share-wrapper */
|
308
|
+
|
309
|
+
.share-label {
|
310
|
+
@include label(inherit, 400, inherit);
|
311
|
+
|
312
|
+
&::after {
|
313
|
+
content: ":";
|
314
|
+
}
|
315
|
+
}
|
316
|
+
|
317
|
+
.license-wrapper {
|
318
|
+
line-height: 1.2rem;
|
319
|
+
|
320
|
+
> a {
|
321
|
+
color: var(--text-color);
|
322
|
+
|
323
|
+
&:hover {
|
324
|
+
@extend %link-hover;
|
325
|
+
}
|
326
|
+
}
|
327
|
+
|
328
|
+
span:last-child {
|
329
|
+
font-size: 0.85rem;
|
330
|
+
}
|
331
|
+
|
332
|
+
} /* .license-wrapper */
|
333
|
+
|
334
|
+
@media all and (max-width: 576px) {
|
335
|
+
.preview-img[data-src] {
|
336
|
+
margin-top: 2.2rem;
|
337
|
+
}
|
338
|
+
|
339
|
+
.post-tail-bottom {
|
340
|
+
-ms-flex-wrap: wrap-reverse !important;
|
341
|
+
flex-wrap: wrap-reverse !important;
|
342
|
+
|
343
|
+
> div:first-child {
|
344
|
+
width: 100%;
|
345
|
+
margin-top: 1rem;
|
346
|
+
}
|
347
|
+
}
|
348
|
+
}
|
349
|
+
|
350
|
+
@media all and (max-width: 768px) {
|
351
|
+
.post-content > p > img {
|
352
|
+
max-width: calc(100% + 1rem);
|
353
|
+
}
|
354
|
+
}
|
355
|
+
|
356
|
+
/* Hide SideBar and TOC */
|
357
|
+
@media all and (max-width: 849px) {
|
358
|
+
.post-navigation {
|
359
|
+
padding-left: 0;
|
360
|
+
padding-right: 0;
|
361
|
+
margin-left: -0.5rem;
|
362
|
+
margin-right: -0.5rem;
|
363
|
+
}
|
364
|
+
|
365
|
+
.preview-img[data-src] {
|
366
|
+
max-width: 100vw;
|
367
|
+
border-radius: 0;
|
368
|
+
}
|
369
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/*
|
2
|
+
Styles for Tab Tags
|
3
|
+
*/
|
4
|
+
|
5
|
+
.tag {
|
6
|
+
border-radius: 0.7em;
|
7
|
+
padding: 6px 8px 7px;
|
8
|
+
margin-right: 0.8rem;
|
9
|
+
line-height: 3rem;
|
10
|
+
letter-spacing: 0;
|
11
|
+
border: 1px solid var(--tag-border) !important;
|
12
|
+
box-shadow: 0 0 3px 0 var(--tag-shadow);
|
13
|
+
|
14
|
+
span {
|
15
|
+
margin-left: 0.6em;
|
16
|
+
font-size: 0.7em;
|
17
|
+
font-family: 'Oswald', sans-serif;
|
18
|
+
}
|
19
|
+
}
|
data/_tabs/about.md
ADDED
data/_tabs/archives.md
ADDED
data/_tabs/categories.md
ADDED
data/_tabs/tags.md
ADDED
data/assets/404.html
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
layout: page
|
3
|
+
title: "404: Page not found"
|
4
|
+
permalink: /404.html
|
5
|
+
|
6
|
+
redirect_from:
|
7
|
+
- /norobots/
|
8
|
+
- /assets/
|
9
|
+
- /posts/
|
10
|
+
---
|
11
|
+
|
12
|
+
{% include lang.html %}
|
13
|
+
|
14
|
+
<div class="lead">
|
15
|
+
<p>{{site.data.locales[lang].not_found.statment }}</p>
|
16
|
+
</div>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
---
|
2
|
+
---
|
3
|
+
|
4
|
+
/*
|
5
|
+
If the number of TAB files has changed, the following variable is required.
|
6
|
+
And it must be defined before `@import`.
|
7
|
+
*/
|
8
|
+
$tab-count: {{ site.tabs | size | plus: 1 }}; // plus 1 for home tab
|
9
|
+
|
10
|
+
@import "{{ site.theme }}";
|
11
|
+
|
12
|
+
/* append your custom style below */
|
data/assets/feed.xml
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
---
|
2
|
+
layout: compress
|
3
|
+
permalink: /feed.xml
|
4
|
+
# Atom Feed, reference: https://validator.w3.org/feed/docs/atom.html
|
5
|
+
---
|
6
|
+
|
7
|
+
{% capture source %}
|
8
|
+
<feed xmlns="http://www.w3.org/2005/Atom">
|
9
|
+
<id>{{ "/" | absolute_url }}</id>
|
10
|
+
<title>{{ site.title }}</title>
|
11
|
+
<subtitle>{{ site.description }}</subtitle>
|
12
|
+
<updated>{{ site.time | date_to_xmlschema }}</updated>
|
13
|
+
<author>
|
14
|
+
<name>{{ site.social.name }}</name>
|
15
|
+
<uri>{{ "/" | absolute_url }}</uri>
|
16
|
+
</author>
|
17
|
+
<link rel="self" type="application/atom+xml" href="{{ page.url | absolute_url }}"/>
|
18
|
+
<link rel="alternate" type="text/html" hreflang="{{ site.lang }}"
|
19
|
+
href="{{ '/' | absolute_url }}"/>
|
20
|
+
<generator uri="https://jekyllrb.com/" version="{{ jekyll.version }}">Jekyll</generator>
|
21
|
+
<rights> © {{ 'now' | date: '%Y' }} {{ site.social.name }} </rights>
|
22
|
+
<icon>{{ site.baseurl }}/assets/img/favicons/favicon.ico</icon>
|
23
|
+
<logo>{{ site.baseurl }}/assets/img/favicons/favicon-96x96.png</logo>
|
24
|
+
|
25
|
+
{% for post in site.posts limit: 5 %}
|
26
|
+
{% assign post_absolute_url = post.url | absolute_url %}
|
27
|
+
<entry>
|
28
|
+
<title>{{ post.title }}</title>
|
29
|
+
<link href="{{ post_absolute_url }}" rel="alternate" type="text/html" title="{{ post.title }}" />
|
30
|
+
<published>{{ post.date | date_to_xmlschema }}</published>
|
31
|
+
{% if post.last_modified_at %}
|
32
|
+
<updated>{{ post.last_modified_at | date_to_xmlschema }}</updated>
|
33
|
+
{% else %}
|
34
|
+
<updated>{{ post.date | date_to_xmlschema }}</updated>
|
35
|
+
{% endif %}
|
36
|
+
<id>{{ post_absolute_url }}</id>
|
37
|
+
<content src="{{ post_absolute_url }}" />
|
38
|
+
<author>
|
39
|
+
<name>{{ post.author | default: site.social.name }}</name>
|
40
|
+
</author>
|
41
|
+
|
42
|
+
{% if post.categories %}
|
43
|
+
{% for category in post.categories %}
|
44
|
+
<category term="{{ category }}" />
|
45
|
+
{% endfor %}
|
46
|
+
{% endif %}
|
47
|
+
|
48
|
+
{% if post.summary %}
|
49
|
+
<summary>{{ post.summary | strip }}</summary>
|
50
|
+
{% else %}
|
51
|
+
<summary>
|
52
|
+
{% include no-linenos.html content=post.content %}
|
53
|
+
{{ content | strip_html | truncate: 400 }}
|
54
|
+
</summary>
|
55
|
+
{% endif %}
|
56
|
+
|
57
|
+
</entry>
|
58
|
+
{% endfor %}
|
59
|
+
</feed>
|
60
|
+
{% endcapture %}
|
61
|
+
{{ source | replace: '&', '&' }}
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,13 @@
|
|
1
|
+
---
|
2
|
+
layout: compress
|
3
|
+
---
|
4
|
+
|
5
|
+
<?xml version="1.0" encoding="utf-8"?>
|
6
|
+
<browserconfig>
|
7
|
+
<msapplication>
|
8
|
+
<tile>
|
9
|
+
<square150x150logo src="{{ '/assets/img/favicons/mstile-150x150.png' | relative_url }}" />
|
10
|
+
<TileColor>#da532c</TileColor>
|
11
|
+
</tile>
|
12
|
+
</msapplication>
|
13
|
+
</browserconfig>
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,26 @@
|
|
1
|
+
---
|
2
|
+
layout: compress
|
3
|
+
---
|
4
|
+
|
5
|
+
{% assign favicon_path = "/assets/img/favicons" | relative_url %}
|
6
|
+
|
7
|
+
{
|
8
|
+
"name": "{{ site.title }}",
|
9
|
+
"short_name": "{{ site.title }}",
|
10
|
+
"description": "{{ site.description }}",
|
11
|
+
"icons": [
|
12
|
+
{
|
13
|
+
"src": "{{ favicon_path }}/android-chrome-192x192.png",
|
14
|
+
"sizes": "192x192",
|
15
|
+
"type": "image/png"
|
16
|
+
},
|
17
|
+
{
|
18
|
+
"src": "{{ favicon_path }}/android-chrome-512x512.png",
|
19
|
+
"sizes": "512x512",
|
20
|
+
"type": "image/png"
|
21
|
+
}],
|
22
|
+
"start_url": "{{ '/index.html' | relative_url }}",
|
23
|
+
"theme_color": "#2a1e6b",
|
24
|
+
"background_color": "#ffffff",
|
25
|
+
"display": "fullscreen"
|
26
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
---
|
2
|
+
layout: compress
|
3
|
+
swcache: true
|
4
|
+
---
|
5
|
+
|
6
|
+
[
|
7
|
+
{% for post in site.posts %}
|
8
|
+
{
|
9
|
+
"title": {{ post.title | jsonify }},
|
10
|
+
"url": {{ post.url | relative_url | jsonify }},
|
11
|
+
"categories": {{ post.categories | join: ', ' | jsonify }},
|
12
|
+
"tags": {{ post.tags | join: ', ' | jsonify }},
|
13
|
+
"date": "{{ post.date }}",
|
14
|
+
{% include no-linenos.html content=post.content %}
|
15
|
+
"snippet": {{ content | strip_html | strip_newlines | jsonify }}
|
16
|
+
}{% unless forloop.last %},{% endunless %}
|
17
|
+
{% endfor %}
|
18
|
+
]
|
@@ -0,0 +1,55 @@
|
|
1
|
+
---
|
2
|
+
layout: compress
|
3
|
+
|
4
|
+
# The list to be cached by PWA
|
5
|
+
---
|
6
|
+
|
7
|
+
const resource = [
|
8
|
+
|
9
|
+
/* --- CSS --- */
|
10
|
+
'{{ "/assets/css/style.css" | relative_url }}',
|
11
|
+
|
12
|
+
/* --- PWA --- */
|
13
|
+
'{{ "/app.js" | relative_url }}',
|
14
|
+
'{{ "/sw.js" | relative_url }}',
|
15
|
+
|
16
|
+
/* --- HTML --- */
|
17
|
+
'{{ "/index.html" | relative_url }}',
|
18
|
+
'{{ "/404.html" | relative_url }}',
|
19
|
+
{% for tab in site.tabs %}
|
20
|
+
'{{ tab.url | relative_url }}',
|
21
|
+
{% endfor %}
|
22
|
+
|
23
|
+
/* --- Favicons & compressed JS --- */
|
24
|
+
{% assign cache_list = site.static_files | where: 'swcache', true %}
|
25
|
+
{% for file in cache_list %}
|
26
|
+
'{{ file.path | relative_url }}'{%- unless forloop.last -%},{%- endunless -%}
|
27
|
+
{% endfor %}
|
28
|
+
|
29
|
+
];
|
30
|
+
|
31
|
+
/* The request url with below domain will be cached */
|
32
|
+
const allowedDomains = [
|
33
|
+
{% if site.google_analytics.id != empty and site.google_analytics.id %}
|
34
|
+
'www.googletagmanager.com',
|
35
|
+
'www.google-analytics.com',
|
36
|
+
{% endif %}
|
37
|
+
|
38
|
+
'{{ site.url | split: "//" | last }}',
|
39
|
+
|
40
|
+
{% if site.img_cdn contains '//' and site.img_cdn %}
|
41
|
+
'{{ site.img_cdn | split: '//' | last | split: '/' | first }}',
|
42
|
+
{% endif %}
|
43
|
+
|
44
|
+
'fonts.gstatic.com',
|
45
|
+
'fonts.googleapis.com',
|
46
|
+
'cdn.jsdelivr.net',
|
47
|
+
'polyfill.io'
|
48
|
+
];
|
49
|
+
|
50
|
+
/* Requests that include the following path will be banned */
|
51
|
+
const denyUrls = [
|
52
|
+
{% if site.google_analytics.pv.cache_path %}
|
53
|
+
'{{ site.google_analytics.pv.cache_path | absolute_url }}'
|
54
|
+
{% endif %}
|
55
|
+
];
|
@@ -0,0 +1,6 @@
|
|
1
|
+
/*!
|
2
|
+
* Chirpy v5.2.3 (https://github.com/abd3lraouf/jekyll-theme-abd3lraouf/)
|
3
|
+
* © 2019 Cotes Chung
|
4
|
+
* MIT Licensed
|
5
|
+
*/
|
6
|
+
$(function(){$(window).scroll(()=>{50<$(this).scrollTop()&&"none"===$("#sidebar-trigger").css("display")?$("#back-to-top").fadeIn():$("#back-to-top").fadeOut()}),$("#back-to-top").click(()=>($("body,html").animate({scrollTop:0},800),!1))}),$(function(){$(".mode-toggle").click(o=>{const e=$(o.target);let t=e.prop("tagName")==="button".toUpperCase()?e:e.parent();t.blur(),flipMode()})});const ScrollHelper=function(){const o=$("body"),e="data-topbar-visible",t=$("#topbar-wrapper").outerHeight();let l=0,a=!1,r=!1;return{hideTopbar:()=>o.attr(e,!1),showTopbar:()=>o.attr(e,!0),addScrollUpTask:()=>{l+=1,a=a||!0},popScrollUpTask:()=>--l,hasScrollUpTask:()=>0<l,topbarLocked:()=>!0===a,unlockTopbar:()=>a=!1,getTopbarHeight:()=>t,orientationLocked:()=>!0===r,lockOrientation:()=>r=!0,unLockOrientation:()=>r=!1}}();$(function(){const o=$("#sidebar-trigger"),e=$("#search-trigger"),t=$("#search-cancel"),l=$("#main"),a=$("#topbar-title"),r=$("#search-wrapper"),n=$("#search-result-wrapper"),s=$("#search-results"),i=$("#search-input"),c=$("#search-hints"),d=function(){let o=0;return{block(){o=window.scrollY,$("html,body").scrollTop(0)},release(){$("html,body").scrollTop(o)},getOffset(){return o}}}(),p={on(){o.addClass("unloaded"),a.addClass("unloaded"),e.addClass("unloaded"),r.addClass("d-flex"),t.addClass("loaded")},off(){t.removeClass("loaded"),r.removeClass("d-flex"),o.removeClass("unloaded"),a.removeClass("unloaded"),e.removeClass("unloaded")}},f=function(){let o=!1;return{on(){o||(d.block(),n.removeClass("unloaded"),l.addClass("unloaded"),o=!0)},off(){o&&(s.empty(),c.hasClass("unloaded")&&c.removeClass("unloaded"),n.addClass("unloaded"),l.removeClass("unloaded"),d.release(),i.val(""),o=!1)},isVisible(){return o}}}();function u(){return t.hasClass("loaded")}e.click(function(){p.on(),f.on(),i.focus()}),t.click(function(){p.off(),f.off()}),i.focus(function(){r.addClass("input-focus")}),i.focusout(function(){r.removeClass("input-focus")}),i.on("input",()=>{""===i.val()?u()?c.removeClass("unloaded"):f.off():(f.on(),u()&&c.addClass("unloaded"))})}),$(function(){var o=function(){const o="sidebar-display";let e=!1;const t=$("body");return{toggle(){!1===e?t.attr(o,""):t.removeAttr(o),e=!e}}}();$("#sidebar-trigger").click(o.toggle),$("#mask").click(o.toggle)}),$(function(){$('[data-toggle="tooltip"]').tooltip()}),$(function(){const e=$("#search-input"),t=ScrollHelper.getTopbarHeight();let o,l=0;function a(){0!==$(window).scrollTop()&&(ScrollHelper.lockOrientation(),ScrollHelper.hideTopbar())}screen.orientation?screen.orientation.onchange=()=>{var o=screen.orientation.type;"landscape-primary"!==o&&"landscape-secondary"!==o||a()}:$(window).on("orientationchange",()=>{$(window).width()<$(window).height()&&a()}),$(window).scroll(()=>{o=o||!0}),setInterval(()=>{o&&(!function(){var o=$(this).scrollTop();if(!(Math.abs(l-o)<=t)){if(o>l)ScrollHelper.hideTopbar(),e.is(":focus")&&e.blur();else if(o+$(window).height()<$(document).height()){if(ScrollHelper.hasScrollUpTask())return;ScrollHelper.topbarLocked()?ScrollHelper.unlockTopbar():ScrollHelper.orientationLocked()?ScrollHelper.unLockOrientation():ScrollHelper.showTopbar()}l=o}}(),o=!1)},250)}),$(function(){var e="div.post>h1:first-of-type";const t=$(e),n=$("#topbar-title");if(0!==t.length&&!t.hasClass("dynamic-title")&&!n.is(":hidden")){const s=n.text().trim();let l=t.text().trim(),a=!1,r=0;($("#page-category").length||$("#page-tag").length)&&/\s/.test(l)&&(l=l.replace(/[0-9]/g,"").trim()),t.offset().top<$(window).scrollTop()&&n.text(l);let o=new IntersectionObserver(o=>{var e,t;a?(t=$(window).scrollTop(),e=r<t,r=t,t=o[0],e?0===t.intersectionRatio&&n.text(l):1===t.intersectionRatio&&n.text(s)):a=!0},{rootMargin:"-48px 0px 0px 0px",threshold:[0,1]});o.observe(document.querySelector(e)),n.click(function(){$("body,html").animate({scrollTop:0},800)})}}),$(function(){const o=$(".collapse");o.on("hide.bs.collapse",function(){var o="h_"+$(this).attr("id").substring("l_".length);o&&($(`#${o} .far.fa-folder-open`).attr("class","far fa-folder fa-fw"),$(`#${o} i.fas`).addClass("rotate"),$("#"+o).removeClass("hide-border-bottom"))}),o.on("show.bs.collapse",function(){var o="h_"+$(this).attr("id").substring("l_".length);o&&($(`#${o} .far.fa-folder`).attr("class","far fa-folder-open fa-fw"),$(`#${o} i.fas`).removeClass("rotate"),$("#"+o).addClass("hide-border-bottom"))})});
|
@@ -0,0 +1,6 @@
|
|
1
|
+
/*!
|
2
|
+
* Chirpy v5.2.3 (https://github.com/abd3lraouf/jekyll-theme-abd3lraouf/)
|
3
|
+
* © 2019 Cotes Chung
|
4
|
+
* MIT Licensed
|
5
|
+
*/
|
6
|
+
$(function(){$(window).scroll(()=>{50<$(this).scrollTop()&&"none"===$("#sidebar-trigger").css("display")?$("#back-to-top").fadeIn():$("#back-to-top").fadeOut()}),$("#back-to-top").click(()=>($("body,html").animate({scrollTop:0},800),!1))}),$(function(){$(".mode-toggle").click(o=>{const e=$(o.target);let t=e.prop("tagName")==="button".toUpperCase()?e:e.parent();t.blur(),flipMode()})});const ScrollHelper=function(){const o=$("body"),e="data-topbar-visible",t=$("#topbar-wrapper").outerHeight();let l=0,r=!1,a=!1;return{hideTopbar:()=>o.attr(e,!1),showTopbar:()=>o.attr(e,!0),addScrollUpTask:()=>{l+=1,r=r||!0},popScrollUpTask:()=>--l,hasScrollUpTask:()=>0<l,topbarLocked:()=>!0===r,unlockTopbar:()=>r=!1,getTopbarHeight:()=>t,orientationLocked:()=>!0===a,lockOrientation:()=>a=!0,unLockOrientation:()=>a=!1}}();$(function(){const o=$("#sidebar-trigger"),e=$("#search-trigger"),t=$("#search-cancel"),l=$("#main"),r=$("#topbar-title"),a=$("#search-wrapper"),n=$("#search-result-wrapper"),s=$("#search-results"),i=$("#search-input"),c=$("#search-hints"),d=function(){let o=0;return{block(){o=window.scrollY,$("html,body").scrollTop(0)},release(){$("html,body").scrollTop(o)},getOffset(){return o}}}(),p={on(){o.addClass("unloaded"),r.addClass("unloaded"),e.addClass("unloaded"),a.addClass("d-flex"),t.addClass("loaded")},off(){t.removeClass("loaded"),a.removeClass("d-flex"),o.removeClass("unloaded"),r.removeClass("unloaded"),e.removeClass("unloaded")}},u=function(){let o=!1;return{on(){o||(d.block(),n.removeClass("unloaded"),l.addClass("unloaded"),o=!0)},off(){o&&(s.empty(),c.hasClass("unloaded")&&c.removeClass("unloaded"),n.addClass("unloaded"),l.removeClass("unloaded"),d.release(),i.val(""),o=!1)},isVisible(){return o}}}();function f(){return t.hasClass("loaded")}e.click(function(){p.on(),u.on(),i.focus()}),t.click(function(){p.off(),u.off()}),i.focus(function(){a.addClass("input-focus")}),i.focusout(function(){a.removeClass("input-focus")}),i.on("input",()=>{""===i.val()?f()?c.removeClass("unloaded"):u.off():(u.on(),f()&&c.addClass("unloaded"))})}),$(function(){var o=function(){const o="sidebar-display";let e=!1;const t=$("body");return{toggle(){!1===e?t.attr(o,""):t.removeAttr(o),e=!e}}}();$("#sidebar-trigger").click(o.toggle),$("#mask").click(o.toggle)}),$(function(){$('[data-toggle="tooltip"]').tooltip()}),$(function(){const e=$("#search-input"),t=ScrollHelper.getTopbarHeight();let o,l=0;function r(){0!==$(window).scrollTop()&&(ScrollHelper.lockOrientation(),ScrollHelper.hideTopbar())}screen.orientation?screen.orientation.onchange=()=>{var o=screen.orientation.type;"landscape-primary"!==o&&"landscape-secondary"!==o||r()}:$(window).on("orientationchange",()=>{$(window).width()<$(window).height()&&r()}),$(window).scroll(()=>{o=o||!0}),setInterval(()=>{o&&(!function(){var o=$(this).scrollTop();if(!(Math.abs(l-o)<=t)){if(o>l)ScrollHelper.hideTopbar(),e.is(":focus")&&e.blur();else if(o+$(window).height()<$(document).height()){if(ScrollHelper.hasScrollUpTask())return;ScrollHelper.topbarLocked()?ScrollHelper.unlockTopbar():ScrollHelper.orientationLocked()?ScrollHelper.unLockOrientation():ScrollHelper.showTopbar()}l=o}}(),o=!1)},250)}),$(function(){var e="div.post>h1:first-of-type";const t=$(e),n=$("#topbar-title");if(0!==t.length&&!t.hasClass("dynamic-title")&&!n.is(":hidden")){const s=n.text().trim();let l=t.text().trim(),r=!1,a=0;($("#page-category").length||$("#page-tag").length)&&/\s/.test(l)&&(l=l.replace(/[0-9]/g,"").trim()),t.offset().top<$(window).scrollTop()&&n.text(l);let o=new IntersectionObserver(o=>{var e,t;r?(t=$(window).scrollTop(),e=a<t,a=t,t=o[0],e?0===t.intersectionRatio&&n.text(l):1===t.intersectionRatio&&n.text(s)):r=!0},{rootMargin:"-48px 0px 0px 0px",threshold:[0,1]});o.observe(document.querySelector(e)),n.click(function(){$("body,html").animate({scrollTop:0},800)})}});
|