jekyll-theme-chirpy 7.1.1 → 7.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_data/locales/hu-HU.yml +20 -7
- data/_data/origin/cors.yml +4 -4
- data/_includes/analytics/cloudflare.html +0 -1
- data/_includes/analytics/fathom.html +2 -3
- data/_includes/analytics/google.html +1 -1
- data/_includes/analytics/matomo.html +6 -7
- data/_includes/comments/disqus.html +36 -29
- data/_includes/comments/giscus.html +14 -30
- data/_includes/comments/utterances.html +26 -37
- data/_includes/head.html +24 -5
- data/_includes/js-selector.html +3 -26
- data/_includes/jsdelivr-combine.html +4 -4
- data/_includes/pageviews/goatcounter.html +16 -14
- data/_includes/search-loader.html +22 -20
- data/_includes/sidebar.html +1 -3
- data/_includes/toc-status.html +10 -0
- data/_includes/toc.html +4 -8
- data/_layouts/default.html +8 -4
- data/_layouts/home.html +26 -19
- data/_layouts/post.html +29 -2
- data/_sass/abstracts/_breakpoints.scss +73 -0
- data/_sass/abstracts/_index.scss +4 -0
- data/_sass/abstracts/_mixins.scss +80 -0
- data/_sass/{addon/module.scss → abstracts/_placeholders.scss} +22 -55
- data/_sass/{addon/variables.scss → abstracts/_variables.scss} +0 -4
- data/_sass/base/_base.scss +476 -0
- data/_sass/base/_index.scss +4 -0
- data/_sass/base/_reset.scss +41 -0
- data/_sass/{addon/syntax.scss → base/_syntax.scss} +46 -85
- data/_sass/base/_typography.scss +266 -0
- data/_sass/components/_buttons.scss +51 -0
- data/_sass/components/_index.scss +2 -0
- data/_sass/components/_popups.scss +172 -0
- data/_sass/layout/_footer.scss +36 -0
- data/_sass/layout/_index.scss +4 -0
- data/_sass/layout/_panel.scss +70 -0
- data/_sass/layout/_sidebar.scss +258 -0
- data/_sass/layout/_topbar.scss +86 -0
- data/_sass/main.bundle.scss +2 -2
- data/_sass/main.scss +4 -13
- data/_sass/{layout/archives.scss → pages/_archives.scss} +12 -16
- data/_sass/{layout/categories.scss → pages/_categories.scss} +5 -6
- data/_sass/{layout/category-tag.scss → pages/_category-tag.scss} +11 -20
- data/_sass/{layout/home.scss → pages/_home.scss} +54 -70
- data/_sass/pages/_index.scss +7 -0
- data/_sass/{layout/post.scss → pages/_post.scss} +184 -49
- data/_sass/pages/_search.scss +184 -0
- data/_sass/{layout/tags.scss → pages/_tags.scss} +7 -3
- data/_sass/{colors/typography-dark.scss → themes/_dark.scss} +163 -7
- data/_sass/themes/_light.scss +313 -0
- data/_sass/vendors/_bootstrap.scss +5 -0
- data/assets/css/jekyll-theme-chirpy.scss +1 -1
- data/assets/feed.xml +1 -1
- data/assets/js/dist/app.min.js +1 -1
- data/assets/js/dist/categories.min.js +2 -2
- data/assets/js/dist/commons.min.js +2 -2
- data/assets/js/dist/home.min.js +2 -2
- data/assets/js/dist/misc.min.js +2 -2
- data/assets/js/dist/page.min.js +2 -2
- data/assets/js/dist/post.min.js +2 -2
- data/assets/js/dist/sw.min.js +1 -1
- data/assets/js/dist/theme.min.js +4 -0
- metadata +35 -22
- data/_includes/mermaid.html +0 -62
- data/_includes/mode-toggle.html +0 -116
- data/_sass/addon/commons.scss +0 -1542
- data/_sass/colors/syntax-dark.scss +0 -164
- data/_sass/colors/syntax-light.scss +0 -210
- data/_sass/colors/typography-light.scss +0 -112
- data/_sass/dist/bootstrap.css +0 -5
- data/_sass/variables-hook.scss +0 -3
- /data/_includes/{comments.html → comment.html} +0 -0
data/_layouts/home.html
CHANGED
@@ -5,38 +5,45 @@ refactor: true
|
|
5
5
|
|
6
6
|
{% include lang.html %}
|
7
7
|
|
8
|
-
{% assign
|
9
|
-
{% assign
|
8
|
+
{% assign all_pinned = site.posts | where: 'pin', 'true' %}
|
9
|
+
{% assign all_normal = site.posts | where_exp: 'item', 'item.pin != true and item.hidden != true' %}
|
10
10
|
|
11
11
|
{% assign posts = '' | split: '' %}
|
12
12
|
|
13
|
-
<!-- Get pinned posts -->
|
13
|
+
<!-- Get pinned posts on current page -->
|
14
14
|
|
15
|
-
{% assign
|
16
|
-
{% assign
|
15
|
+
{% assign visible_start = paginator.page | minus: 1 | times: paginator.per_page %}
|
16
|
+
{% assign visible_end = visible_start | plus: paginator.per_page %}
|
17
17
|
|
18
|
-
{% if
|
19
|
-
{%
|
20
|
-
{% assign
|
18
|
+
{% if all_pinned.size > visible_start %}
|
19
|
+
{% if all_pinned.size > visible_end %}
|
20
|
+
{% assign pinned_size = paginator.per_page %}
|
21
|
+
{% else %}
|
22
|
+
{% assign pinned_size = all_pinned.size | minus: visible_start %}
|
23
|
+
{% endif %}
|
24
|
+
|
25
|
+
{% for i in (visible_start..all_pinned.size) limit: pinned_size %}
|
26
|
+
{% assign posts = posts | push: all_pinned[i] %}
|
21
27
|
{% endfor %}
|
22
28
|
{% else %}
|
23
|
-
{% assign
|
29
|
+
{% assign pinned_size = 0 %}
|
24
30
|
{% endif %}
|
25
31
|
|
26
|
-
<!-- Get
|
32
|
+
<!-- Get normal posts on current page -->
|
27
33
|
|
28
|
-
{% assign
|
34
|
+
{% assign normal_size = paginator.posts | size | minus: pinned_size %}
|
29
35
|
|
30
|
-
{% if
|
31
|
-
{%
|
32
|
-
{%
|
36
|
+
{% if normal_size > 0 %}
|
37
|
+
{% if pinned_size > 0 %}
|
38
|
+
{% assign normal_start = 0 %}
|
39
|
+
{% else %}
|
40
|
+
{% assign normal_start = visible_start | minus: all_pinned.size %}
|
41
|
+
{% endif %}
|
33
42
|
|
34
|
-
{% assign
|
35
|
-
{% assign default_end = default_beg | plus: default_num | minus: 1 %}
|
43
|
+
{% assign normal_end = normal_start | plus: normal_size | minus: 1 %}
|
36
44
|
|
37
|
-
{%
|
38
|
-
|
39
|
-
{% assign posts = posts | push: default[i] %}
|
45
|
+
{% for i in (normal_start..normal_end) %}
|
46
|
+
{% assign posts = posts | push: all_normal[i] %}
|
40
47
|
{% endfor %}
|
41
48
|
{% endif %}
|
42
49
|
|
data/_layouts/post.html
CHANGED
@@ -6,12 +6,15 @@ panel_includes:
|
|
6
6
|
tail_includes:
|
7
7
|
- related-posts
|
8
8
|
- post-nav
|
9
|
-
|
9
|
+
script_includes:
|
10
|
+
- comment
|
10
11
|
---
|
11
12
|
|
12
13
|
{% include lang.html %}
|
13
14
|
|
14
|
-
|
15
|
+
{% include toc-status.html %}
|
16
|
+
|
17
|
+
<article class="px-1" data-toc="{{ enable_toc }}">
|
15
18
|
<header>
|
16
19
|
<h1 data-toc-skip>{{ page.title }}</h1>
|
17
20
|
{% if page.description %}
|
@@ -95,6 +98,30 @@ tail_includes:
|
|
95
98
|
</div>
|
96
99
|
</header>
|
97
100
|
|
101
|
+
{% if enable_toc %}
|
102
|
+
<div id="toc-bar" class="d-flex align-items-center justify-content-between invisible">
|
103
|
+
<span class="label text-truncate">{{ page.title }}</span>
|
104
|
+
<button type="button" class="toc-trigger btn me-1">
|
105
|
+
<i class="fa-solid fa-list-ul fa-fw"></i>
|
106
|
+
</button>
|
107
|
+
</div>
|
108
|
+
|
109
|
+
<button id="toc-solo-trigger" type="button" class="toc-trigger btn btn-outline-secondary btn-sm">
|
110
|
+
<span class="label ps-2 pe-1">{{- site.data.locales[lang].panel.toc -}}</span>
|
111
|
+
<i class="fa-solid fa-angle-right fa-fw"></i>
|
112
|
+
</button>
|
113
|
+
|
114
|
+
<dialog id="toc-popup" class="p-0">
|
115
|
+
<div class="header d-flex flex-row align-items-center justify-content-between">
|
116
|
+
<div class="label text-truncate py-2 ms-4">{{- page.title -}}</div>
|
117
|
+
<button id="toc-popup-close" type="button" class="btn mx-1 my-1 opacity-75">
|
118
|
+
<i class="fas fa-close"></i>
|
119
|
+
</button>
|
120
|
+
</div>
|
121
|
+
<div id="toc-popup-content" class="px-4 py-3 pb-4"></div>
|
122
|
+
</dialog>
|
123
|
+
{% endif %}
|
124
|
+
|
98
125
|
<div class="content">
|
99
126
|
{{ content }}
|
100
127
|
</div>
|
@@ -0,0 +1,73 @@
|
|
1
|
+
@use 'sass:map';
|
2
|
+
|
3
|
+
$-breakpoints: (
|
4
|
+
// 1 column
|
5
|
+
sm: 576px,
|
6
|
+
md: 768px,
|
7
|
+
// 2 columns
|
8
|
+
lg: 850px,
|
9
|
+
// 3 columns
|
10
|
+
xl: 1200px,
|
11
|
+
xxl: 1400px,
|
12
|
+
xxxl: 1650px
|
13
|
+
);
|
14
|
+
|
15
|
+
@function get($breakpoint) {
|
16
|
+
@return map.get($-breakpoints, $breakpoint);
|
17
|
+
}
|
18
|
+
|
19
|
+
/* Less than the given width */
|
20
|
+
@mixin lt($width) {
|
21
|
+
@media all and (max-width: calc(#{$width} - 1px)) {
|
22
|
+
@content;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
/* Less than or equal to the given width */
|
27
|
+
@mixin lte($width) {
|
28
|
+
@media all and (max-width: $width) {
|
29
|
+
@content;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
@mixin sm {
|
34
|
+
@media all and (min-width: get(sm)) {
|
35
|
+
@content;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
@mixin md {
|
40
|
+
@media all and (min-width: get(md)) {
|
41
|
+
@content;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
@mixin lg {
|
46
|
+
@media all and (min-width: get(lg)) {
|
47
|
+
@content;
|
48
|
+
}
|
49
|
+
}
|
50
|
+
|
51
|
+
@mixin xl {
|
52
|
+
@media all and (min-width: get(xl)) {
|
53
|
+
@content;
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
@mixin xxl {
|
58
|
+
@media all and (min-width: get(xxl)) {
|
59
|
+
@content;
|
60
|
+
}
|
61
|
+
}
|
62
|
+
|
63
|
+
@mixin xxxl {
|
64
|
+
@media all and (min-width: get(xxxl)) {
|
65
|
+
@content;
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
@mixin between($min, $max) {
|
70
|
+
@media all and (min-width: $min) and (max-width: $max) {
|
71
|
+
@content;
|
72
|
+
}
|
73
|
+
}
|
@@ -0,0 +1,80 @@
|
|
1
|
+
@mixin text-ellipsis {
|
2
|
+
overflow: hidden;
|
3
|
+
text-overflow: ellipsis;
|
4
|
+
white-space: nowrap;
|
5
|
+
}
|
6
|
+
|
7
|
+
@mixin mt-mb($value) {
|
8
|
+
margin-top: $value;
|
9
|
+
margin-bottom: $value;
|
10
|
+
}
|
11
|
+
|
12
|
+
@mixin ml-mr($value) {
|
13
|
+
margin-left: $value;
|
14
|
+
margin-right: $value;
|
15
|
+
}
|
16
|
+
|
17
|
+
@mixin pt-pb($val) {
|
18
|
+
padding-top: $val;
|
19
|
+
padding-bottom: $val;
|
20
|
+
}
|
21
|
+
|
22
|
+
@mixin pl-pr($val, $important: false) {
|
23
|
+
@if $important {
|
24
|
+
padding-left: $val !important;
|
25
|
+
padding-right: $val !important;
|
26
|
+
} @else {
|
27
|
+
padding-left: $val;
|
28
|
+
padding-right: $val;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
@mixin placeholder {
|
33
|
+
color: var(--text-muted-color) !important;
|
34
|
+
}
|
35
|
+
|
36
|
+
@mixin placeholder-focus {
|
37
|
+
opacity: 0.6;
|
38
|
+
}
|
39
|
+
|
40
|
+
@mixin label($font-size: 1rem, $font-weight: 600, $color: var(--label-color)) {
|
41
|
+
color: $color;
|
42
|
+
font-size: $font-size;
|
43
|
+
font-weight: $font-weight;
|
44
|
+
}
|
45
|
+
|
46
|
+
@mixin align-center {
|
47
|
+
position: relative;
|
48
|
+
left: 50%;
|
49
|
+
transform: translateX(-50%);
|
50
|
+
}
|
51
|
+
|
52
|
+
@mixin prompt($type, $fa-content, $fa-style: 'solid', $rotate: 0) {
|
53
|
+
&.prompt-#{$type} {
|
54
|
+
background-color: var(--prompt-#{$type}-bg);
|
55
|
+
|
56
|
+
&::before {
|
57
|
+
content: $fa-content;
|
58
|
+
color: var(--prompt-#{$type}-icon-color);
|
59
|
+
font: var(--fa-font-#{$fa-style});
|
60
|
+
|
61
|
+
@if $rotate != 0 {
|
62
|
+
transform: rotate(#{$rotate}deg);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
@mixin slide($append: null) {
|
69
|
+
$basic: transform 0.4s ease;
|
70
|
+
|
71
|
+
@if $append {
|
72
|
+
transition: $basic, $append;
|
73
|
+
} @else {
|
74
|
+
transition: $basic;
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
@mixin max-w-100 {
|
79
|
+
max-width: 100%;
|
80
|
+
}
|
@@ -1,13 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
*/
|
4
|
-
|
5
|
-
/* ---------- scss placeholder --------- */
|
1
|
+
@use 'variables' as v;
|
2
|
+
@use 'mixins' as mx;
|
6
3
|
|
7
4
|
%heading {
|
8
5
|
color: var(--heading-color);
|
9
6
|
font-weight: 400;
|
10
|
-
font-family:
|
7
|
+
font-family: v.$font-family-heading;
|
8
|
+
scroll-margin-top: 3.5rem;
|
11
9
|
}
|
12
10
|
|
13
11
|
%anchor {
|
@@ -81,7 +79,7 @@
|
|
81
79
|
}
|
82
80
|
|
83
81
|
%rounded {
|
84
|
-
border-radius:
|
82
|
+
border-radius: v.$radius-lg;
|
85
83
|
}
|
86
84
|
|
87
85
|
%img-caption {
|
@@ -111,6 +109,10 @@
|
|
111
109
|
-webkit-box-orient: vertical;
|
112
110
|
}
|
113
111
|
|
112
|
+
%text-ellipsis {
|
113
|
+
@include mx.text-ellipsis;
|
114
|
+
}
|
115
|
+
|
114
116
|
%text-highlight {
|
115
117
|
color: var(--text-muted-highlight-color);
|
116
118
|
font-weight: 600;
|
@@ -134,60 +136,25 @@
|
|
134
136
|
}
|
135
137
|
}
|
136
138
|
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
margin-bottom: $value;
|
142
|
-
}
|
143
|
-
|
144
|
-
@mixin ml-mr($value) {
|
145
|
-
margin-left: $value;
|
146
|
-
margin-right: $value;
|
147
|
-
}
|
148
|
-
|
149
|
-
@mixin pt-pb($val) {
|
150
|
-
padding-top: $val;
|
151
|
-
padding-bottom: $val;
|
152
|
-
}
|
153
|
-
|
154
|
-
@mixin pl-pr($val) {
|
155
|
-
padding-left: $val;
|
156
|
-
padding-right: $val;
|
157
|
-
}
|
158
|
-
|
159
|
-
@mixin placeholder {
|
160
|
-
color: var(--text-muted-color) !important;
|
139
|
+
%btn-color {
|
140
|
+
button i {
|
141
|
+
color: #999999;
|
142
|
+
}
|
161
143
|
}
|
162
144
|
|
163
|
-
|
164
|
-
|
145
|
+
%code-snippet-bg {
|
146
|
+
background-color: var(--highlight-bg-color);
|
165
147
|
}
|
166
148
|
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
font-weight: $font-weight;
|
149
|
+
%code-snippet-padding {
|
150
|
+
padding-left: 1rem;
|
151
|
+
padding-right: 1.5rem;
|
171
152
|
}
|
172
153
|
|
173
|
-
|
174
|
-
|
175
|
-
left: 50%;
|
176
|
-
transform: translateX(-50%);
|
154
|
+
%max-w-100 {
|
155
|
+
max-width: 100%;
|
177
156
|
}
|
178
157
|
|
179
|
-
|
180
|
-
|
181
|
-
background-color: var(--prompt-#{$type}-bg);
|
182
|
-
|
183
|
-
&::before {
|
184
|
-
content: $fa-content;
|
185
|
-
color: var(--prompt-#{$type}-icon-color);
|
186
|
-
font: var(--fa-font-#{$fa-style});
|
187
|
-
|
188
|
-
@if $rotate != 0 {
|
189
|
-
transform: rotate(#{$rotate}deg);
|
190
|
-
}
|
191
|
-
}
|
192
|
-
}
|
158
|
+
%panel-border {
|
159
|
+
border-left: 1px solid var(--main-border-color);
|
193
160
|
}
|