Skip to content

Commit 5c4d02c

Browse files
authored
添加设置页 (#362)
1 parent 76862e2 commit 5c4d02c

File tree

20 files changed

+380
-79
lines changed

20 files changed

+380
-79
lines changed

_config.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,6 @@ defaults:
139139

140140
# Theme Settings
141141
theme: minimal-mistakes-jekyll
142-
minimal_mistakes_skin: default # "air", "aqua", "contrast", "dark", "dirt", "neon", "mint", "plum", "sunrise"
143-
minimal_mistakes_skin_dark: dark
144142

145143
# Site Settings
146144
locale: zh
@@ -309,6 +307,7 @@ compress_html:
309307
envs: development
310308

311309
head_scripts:
310+
- /assets/js/settings.js
312311
- /assets/js/theme.js
313312
after_footer_scripts:
314313
- /assets/js/plugins/jquery.auto-redirect.js

_data/navigation.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
main:
22
- title: 常见问题
33
url: /faq.html
4+
- title: 设置
5+
url: /settings.html
46

57
docs:
68
- title: 问题集合

_data/settings.yaml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
appearance_color:
2+
type: radio
3+
default: light
4+
options:
5+
- light
6+
- dark
7+
- auto
8+
appearance_skin_light:
9+
type: radio
10+
default: default
11+
options:
12+
- default
13+
- air
14+
- aqua
15+
- contrast
16+
- dark
17+
- dirt
18+
- neon
19+
- mint
20+
- plum
21+
- sunrise
22+
appearance_skin_dark:
23+
type: radio
24+
default: dark
25+
options:
26+
- default
27+
- air
28+
- aqua
29+
- contrast
30+
- dark
31+
- dirt
32+
- neon
33+
- mint
34+
- plum
35+
- sunrise

_includes/head/custom.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
<link rel="shortcut icon" href="{{ '/favicon.ico' | relative_url }}">
2+
<link rel="stylesheet" id="skin">

_layouts/settings.html

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
layout: document
3+
---
4+
5+
{% for group in page.data %}
6+
7+
{% capture notice %}
8+
9+
## {{ group.title }}
10+
11+
{% for pair in group.settings %}
12+
{% assign name = pair[0] %}
13+
{% assign value = pair[1] %}
14+
{% assign setting = site.data.settings[name] %}
15+
16+
{% if setting.type == 'radio' %}
17+
<div class="notice">
18+
<ul class="task-list">
19+
<li><strong>{{ value.title }}</strong></li>
20+
<li>{{ value.description }}</li>
21+
{% for option in setting.options %}
22+
<li class="task-list-item">
23+
<input type="radio" class="task-list-item-checkbox" name="{{ name }}" value="{{ option }}" id="{{ name }}_{{ option }}"{% if setting.default == option %} checked{% endif %}><label for="{{ name }}_{{ option }}">{{ value.options[option] }}</label>
24+
</li>
25+
{% endfor %}
26+
</ul>
27+
</div>
28+
29+
<script>
30+
settings.onChange("{{ name }}", function (newValue, oldValue) {
31+
var list = document.getElementsByName("{{ name }}");
32+
for (var i = 0; i < list.length; i++) {
33+
list[i].checked = list[i].value === newValue;
34+
list[i].onchange = function () {
35+
if (this.checked) {
36+
settings.set(this.name, this.value);
37+
}
38+
}
39+
}
40+
});
41+
</script>
42+
{% endif %}
43+
{% endfor %}
44+
{% endcapture %}
45+
{{ notice | markdownify }}
46+
{% endfor %}

_sass/minimal-mistakes-plus.scss

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,24 @@
1-
@import "minimal-mistakes";
2-
3-
blockquote {
4-
margin-inline: 0;
5-
font-style: normal;
6-
}
7-
8-
a, span, code, kbd, pre, em, strong, b, i {
9-
overflow-wrap: break-word;
10-
word-wrap: break-word;
11-
word-break: break-word;
12-
}
13-
14-
.m0 {
15-
margin: 0 !important;
16-
}
1+
@import "minimal-mistakes";
2+
3+
blockquote {
4+
margin-inline: 0;
5+
font-style: normal;
6+
}
7+
8+
* {
9+
overflow-wrap: break-word;
10+
word-wrap: break-word;
11+
word-break: break-word;
12+
}
13+
14+
.notice ul:first-child {
15+
margin-top: 0;
16+
}
17+
18+
.task-list-item label {
19+
display: inline
20+
}
21+
22+
.m0 {
23+
margin: 0 !important;
24+
}

assets/css/main.scss

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
---
2-
---
3-
4-
@charset "utf-8";
5-
6-
$sans-serif: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
7-
@import "minimal-mistakes/skins/{{ site.minimal_mistakes_skin | default: 'default' }}";
8-
@import "minimal-mistakes-plus";
1+
---
2+
---
3+
4+
@charset "utf-8";
5+
6+
$sans-serif: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
7+
@import "minimal-mistakes/skins/default";
8+
@import "minimal-mistakes-plus";

assets/css/skins/air.scss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
---
3+
4+
@charset "utf-8";
5+
6+
$sans-serif: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
7+
@import "minimal-mistakes/skins/air";
8+
@import "minimal-mistakes-plus";

assets/css/skins/aqua.scss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
---
3+
4+
@charset "utf-8";
5+
6+
$sans-serif: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
7+
@import "minimal-mistakes/skins/aqua";
8+
@import "minimal-mistakes-plus";

assets/css/skins/contrast.scss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
---
3+
4+
@charset "utf-8";
5+
6+
$sans-serif: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
7+
@import "minimal-mistakes/skins/contrast";
8+
@import "minimal-mistakes-plus";

0 commit comments

Comments
 (0)