hexo-theme-shokax 0.3.9 → 0.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/_config.yml +0 -23
- package/layout/_mixin/comment.pug +1 -34
- package/layout/_mixin/segment.pug +1 -1
- package/layout/_partials/head/head.pug +1 -4
- package/layout/_partials/layout.pug +2 -2
- package/package.json +13 -13
- package/scripts/generaters/index.js +3 -2
- package/scripts/plugin/check.js +1 -1
- package/source/js/_app/fireworks.js +13 -13
- package/source/js/_app/library/anime.js +2 -3
package/README.md
CHANGED
@@ -80,7 +80,10 @@ AGPL许可证主要目的是限制修改后的分发行为,避免未经许可
|
|
80
80
|
| hexo-theme-shoka | amehime | 本项目的父主题 |
|
81
81
|
|
82
82
|
## 开发者们
|
83
|
-
|
83
|
+
Hexo 主题: \
|
84
|
+
[](https://github.com/theme-shoka-x/hexo-theme-shokaX/graphs/contributors) \
|
85
|
+
ShokaX 文档: \
|
86
|
+
[](https://github.com/theme-shoka-x/shokaX-docs/graphs/contributors) \
|
84
87
|
|
85
88
|
## 特别鸣谢
|
86
89
|
[<img src="https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.png" width="25%">](https://jb.gg/OpenSourceSupport)
|
package/_config.yml
CHANGED
@@ -183,29 +183,6 @@ waline:
|
|
183
183
|
pageSize: 10 # 每页评论条数
|
184
184
|
pageview: false # 是否开启浏览量统计,可独立开启
|
185
185
|
|
186
|
-
# https://github.com/gitalk/gitalk/blob/master/readme-cn.md
|
187
|
-
gitalk:
|
188
|
-
clientID:
|
189
|
-
clientSecret:
|
190
|
-
repo:
|
191
|
-
owner:
|
192
|
-
admin:
|
193
|
-
proxy: # 选填
|
194
|
-
|
195
|
-
# https://giscus.app/zh-CN
|
196
|
-
giscus:
|
197
|
-
repo:
|
198
|
-
repoId:
|
199
|
-
category:
|
200
|
-
categoryId:
|
201
|
-
mapping:
|
202
|
-
strict:
|
203
|
-
reactionsEnabled:
|
204
|
-
emitMetadata:
|
205
|
-
inputPosition:
|
206
|
-
commentTheme:
|
207
|
-
lang:
|
208
|
-
|
209
186
|
summary:
|
210
187
|
enable: false
|
211
188
|
introduce: "我是基于ChatGPT-turbo-3.5实现的AI助手,在此网站上负责整理和概括文章" # AI自我介绍
|
@@ -1,6 +1,6 @@
|
|
1
1
|
mixin CommentRender()
|
2
2
|
!= shokax_inject('comment')
|
3
|
-
- var tk = theme?.twikoo?.enable,wl = theme?.waline?.enable
|
3
|
+
- var tk = theme?.twikoo?.enable,wl = theme?.waline?.enable
|
4
4
|
if page.comment !== false && !theme.experiments.disableThemeComment
|
5
5
|
if tk
|
6
6
|
div(class="wrap" id="tcomments")
|
@@ -37,38 +37,5 @@ mixin CommentRender()
|
|
37
37
|
dark: 'html[data-theme="dark"]'
|
38
38
|
});
|
39
39
|
}, 1000)
|
40
|
-
else if gt
|
41
|
-
div(class="wrap" id="gtcomments")
|
42
|
-
script(type="text/javascript" data-pjax).
|
43
|
-
const gproxy = theme.gitalk.proxy || undefined
|
44
|
-
const gitalk = new Gitalk({
|
45
|
-
clientID: '#{theme.gitalk.clientID}',
|
46
|
-
clientSecret: '#{theme.gitalk.clientSecret}',
|
47
|
-
repo: '#{theme.gitalk.repo}',
|
48
|
-
owner: '#{theme.gitalk.owner}',
|
49
|
-
admin: #{theme.gitalk.admin},
|
50
|
-
id: location.pathname, // Ensure uniqueness and length less than 50
|
51
|
-
distractionFreeMode: false, // Facebook-like distraction free mode
|
52
|
-
proxy: "#{gproxy}"
|
53
|
-
});
|
54
|
-
gitalk.render("gtcomments")
|
55
|
-
else if gs
|
56
|
-
div(class="wrap giscus" id="gscomments")
|
57
|
-
script( src="https://giscus.app/client.js"
|
58
|
-
data-repo="#{theme.giscus.repo}"
|
59
|
-
data-repo-id="#{theme.giscus.repoId}"
|
60
|
-
data-category="#{theme.giscus.category}"
|
61
|
-
data-category-id="#{theme.giscus.categoryId}"
|
62
|
-
data-mapping="#{theme.giscus.mapping}"
|
63
|
-
data-strict="#{theme.giscus.strict}"
|
64
|
-
data-reactions-enabled="#{theme.giscus.reactionsEnabled}"
|
65
|
-
data-emit-metadata="#{theme.giscus.emitMetadata}"
|
66
|
-
data-input-position="#{theme.giscus.inputPosition}"
|
67
|
-
data-theme="#{theme.giscus.commentTheme}"
|
68
|
-
data-lang="#{theme.giscus.lang}"
|
69
|
-
data-loading="lazy"
|
70
|
-
crossorigin="anonymous"
|
71
|
-
async
|
72
|
-
)
|
73
40
|
|
74
41
|
|
@@ -11,7 +11,7 @@ mixin SMRender(item)
|
|
11
11
|
div(class="cover" style=`background: linear-gradient(to bottom right, ${random_color()}, ${random_color()});`)
|
12
12
|
else
|
13
13
|
div(class="cover")
|
14
|
-
!= _url(link1, '<img data-src="'+
|
14
|
+
!= _url(link1, '<img data-src="'+ _cover(item) +'" alt="article cover">', {itemprop: 'url', title: postText})
|
15
15
|
div(class="info")
|
16
16
|
+PMRender(item)
|
17
17
|
h3
|
@@ -3,7 +3,7 @@
|
|
3
3
|
- var siteTitle = config.title,noBaiduT = theme?.seo?.disable_baidu_transformation
|
4
4
|
- var feedLink = full_url_for("/feed.json")
|
5
5
|
- var tk= theme?.twikoo?.enable
|
6
|
-
- var wl = theme.waline.enable
|
6
|
+
- var wl = theme.waline.enable
|
7
7
|
meta(charset="UTF-8")
|
8
8
|
meta(name="viewport" content="width=device-width,initial-scale=1,maximum-scale=2")
|
9
9
|
meta(name="theme-color" content="#222")
|
@@ -54,9 +54,6 @@ if tk
|
|
54
54
|
script(src=theme.twikoo.link)
|
55
55
|
else if wl
|
56
56
|
link(rel="stylesheet" href="https://unpkg.com/@waline/client@v2/dist/waline.css")
|
57
|
-
else if gt
|
58
|
-
link(rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css")
|
59
|
-
script(src="https://unpkg.com/gitalk/dist/gitalk.min.js")
|
60
57
|
|
61
58
|
- var qw = theme?.qweather?.enable
|
62
59
|
if qw
|
@@ -2,7 +2,7 @@ include ../_mixin/breadcrumb.pug
|
|
2
2
|
include ../_mixin/sidebar.pug
|
3
3
|
include ../_mixin/widgets.pug
|
4
4
|
|
5
|
-
-
|
5
|
+
- ignores = []
|
6
6
|
if (theme.quicklink.ignores)
|
7
7
|
- ignores.push(theme.quicklink.ignores)
|
8
8
|
|
@@ -40,7 +40,7 @@ html(lang=page.language?page.language:config.language, style=theme.grayMode ? 'f
|
|
40
40
|
- var coverImage = theme.experiments.fixedCover || "https://7ed.net/bing/api"
|
41
41
|
img(src=coverImage)
|
42
42
|
else
|
43
|
-
- var covers =
|
43
|
+
- var covers = _cover_index(page, 6)
|
44
44
|
if covers.length === 6
|
45
45
|
ul
|
46
46
|
each image in covers
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "hexo-theme-shokax",
|
3
|
-
"version": "0.3.
|
3
|
+
"version": "0.3.10",
|
4
4
|
"description": "a hexo theme based on shoka",
|
5
5
|
"main": "index.js",
|
6
6
|
"repository": "https://github.com/theme-shoka-x/hexo-theme-shokaX",
|
@@ -18,31 +18,31 @@
|
|
18
18
|
"@types/js-yaml": "^4.0.9",
|
19
19
|
"@types/lozad": "^1.16.4",
|
20
20
|
"@types/mocha": "^10.0.6",
|
21
|
-
"@types/node": "^20.10.
|
22
|
-
"@typescript-eslint/eslint-plugin": "^6.
|
23
|
-
"@typescript-eslint/parser": "^6.
|
21
|
+
"@types/node": "^20.10.6",
|
22
|
+
"@typescript-eslint/eslint-plugin": "^6.17.0",
|
23
|
+
"@typescript-eslint/parser": "^6.17.0",
|
24
24
|
"chai": "^4.3.10",
|
25
|
-
"eslint": "^8.
|
25
|
+
"eslint": "^8.56.0",
|
26
26
|
"eslint-config-standard": "~17",
|
27
27
|
"eslint-plugin-chai-friendly": "^0.7.2",
|
28
|
-
"eslint-plugin-import": "^2.29.
|
29
|
-
"eslint-plugin-n": "^16.
|
28
|
+
"eslint-plugin-import": "^2.29.1",
|
29
|
+
"eslint-plugin-n": "^16.6.1",
|
30
30
|
"eslint-plugin-promise": "^6.1.1",
|
31
31
|
"eslint-plugin-vue": "^9.19.2",
|
32
32
|
"hexo-fs": "^4.1.1",
|
33
33
|
"hexo-util": "^3.1.0",
|
34
|
-
"instantsearch.js": "^4.
|
35
|
-
"jsdom": "^23.0
|
34
|
+
"instantsearch.js": "^4.63.0",
|
35
|
+
"jsdom": "^23.1.0",
|
36
36
|
"mocha": "^10.2.0",
|
37
|
-
"typescript": "^5.3.
|
38
|
-
"vue": "^3.
|
37
|
+
"typescript": "^5.3.3",
|
38
|
+
"vue": "^3.4.5"
|
39
39
|
},
|
40
40
|
"dependencies": {
|
41
|
-
"esbuild": "^0.19.
|
41
|
+
"esbuild": "^0.19.11",
|
42
42
|
"hexo": "^7.0.0",
|
43
43
|
"js-yaml": "^4.1.0",
|
44
44
|
"lozad": "^1.16.0",
|
45
|
-
"theme-shokax-anime": "^0.0.
|
45
|
+
"theme-shokax-anime": "^0.0.6",
|
46
46
|
"theme-shokax-pjax": "^0.0.2"
|
47
47
|
},
|
48
48
|
"engines": {
|
@@ -15,7 +15,7 @@ hexo.extend.generator.register('index', function (locals) {
|
|
15
15
|
let pages;
|
16
16
|
const config = hexo.config;
|
17
17
|
const sticky = locals.posts.find({ sticky: true }).sort(config.index_generator.order_by);
|
18
|
-
const posts = locals.posts.find({ sticky: { $
|
18
|
+
const posts = locals.posts.find({ sticky: { $in: [false, undefined] } }).sort(config.index_generator.order_by);
|
19
19
|
const paginationDir = config.pagination_dir || 'page';
|
20
20
|
const path = config.index_generator.path || '';
|
21
21
|
const categories = locals.categories;
|
@@ -96,7 +96,8 @@ hexo.extend.generator.register('index', function (locals) {
|
|
96
96
|
data: {
|
97
97
|
__index: true,
|
98
98
|
catlist,
|
99
|
-
sticky
|
99
|
+
sticky,
|
100
|
+
current: 1,
|
100
101
|
}
|
101
102
|
}];
|
102
103
|
}
|
package/scripts/plugin/check.js
CHANGED
@@ -18,7 +18,7 @@ Some features will be disabled or render incorrectly`);
|
|
18
18
|
hexo.log.warn('[SXEC 201] Essential information(title, desc, lang, etc) config incorrectly, Page will render incorrectly');
|
19
19
|
}
|
20
20
|
if (hexo.theme.config.gitalk.clientID || hexo.theme.config.giscus.repo) {
|
21
|
-
hexo.log.
|
21
|
+
hexo.log.warn('You are using an deprecated feature and it was removed in the v0.3.10');
|
22
22
|
}
|
23
23
|
});
|
24
24
|
hexo.on('generateAfter', function () {
|
@@ -9,7 +9,7 @@ const canvasEl = document.createElement('canvas');
|
|
9
9
|
canvasEl.style.cssText = 'position:fixed;top:0;left:0;pointer-events:none;z-index:9999999';
|
10
10
|
document.body.appendChild(canvasEl);
|
11
11
|
const ctx = canvasEl.getContext('2d');
|
12
|
-
const
|
12
|
+
const numberOfParticles = 30;
|
13
13
|
let pointerX = 0;
|
14
14
|
let pointerY = 0;
|
15
15
|
const tap = 'click';
|
@@ -25,7 +25,7 @@ function updateCoords(e) {
|
|
25
25
|
pointerX = e.clientX || (e.touches && e.touches[0].clientX);
|
26
26
|
pointerY = e.clientY || (e.touches && e.touches[0].clientY);
|
27
27
|
}
|
28
|
-
function
|
28
|
+
function setParticleDirection(p) {
|
29
29
|
const angle = theme_shokax_anime_1.default.random(0, 360) * Math.PI / 180;
|
30
30
|
const value = theme_shokax_anime_1.default.random(50, 180);
|
31
31
|
const radius = [-1, 1][theme_shokax_anime_1.default.random(0, 1)] * value;
|
@@ -34,7 +34,7 @@ function setParticuleDirection(p) {
|
|
34
34
|
y: p.y + radius * Math.sin(angle)
|
35
35
|
};
|
36
36
|
}
|
37
|
-
function
|
37
|
+
function createParticle(x, y) {
|
38
38
|
const p = {
|
39
39
|
x,
|
40
40
|
y,
|
@@ -50,7 +50,7 @@ function createParticule(x, y) {
|
|
50
50
|
};
|
51
51
|
p.color = colors[theme_shokax_anime_1.default.random(0, colors.length - 1)];
|
52
52
|
p.radius = theme_shokax_anime_1.default.random(16, 32);
|
53
|
-
p.endPos =
|
53
|
+
p.endPos = setParticleDirection(p);
|
54
54
|
return p;
|
55
55
|
}
|
56
56
|
function createCircle(x, y) {
|
@@ -74,22 +74,22 @@ function createCircle(x, y) {
|
|
74
74
|
};
|
75
75
|
return p;
|
76
76
|
}
|
77
|
-
function
|
77
|
+
function renderParticle(targets) {
|
78
78
|
for (const target of targets) {
|
79
79
|
target.draw();
|
80
80
|
}
|
81
81
|
}
|
82
|
-
function
|
82
|
+
function animateParticles(x, y) {
|
83
83
|
const circle = createCircle(x, y);
|
84
|
-
const
|
85
|
-
for (let i = 0; i <
|
86
|
-
|
84
|
+
const particles = [];
|
85
|
+
for (let i = 0; i < numberOfParticles; i++) {
|
86
|
+
particles.push(createParticle(x, y));
|
87
87
|
}
|
88
88
|
(0, theme_shokax_anime_1.default)().timeline().add({
|
89
|
-
targets:
|
89
|
+
targets: particles,
|
90
90
|
duration: theme_shokax_anime_1.default.random(1200, 1800),
|
91
91
|
easing: 'easeOutExpo',
|
92
|
-
update:
|
92
|
+
update: renderParticle,
|
93
93
|
x: p => p.endPos.x,
|
94
94
|
y: p => p.endPos.y,
|
95
95
|
radius: 0.1
|
@@ -97,7 +97,7 @@ function animateParticules(x, y) {
|
|
97
97
|
targets: circle,
|
98
98
|
duration: theme_shokax_anime_1.default.random(1200, 1800),
|
99
99
|
easing: 'easeOutExpo',
|
100
|
-
update:
|
100
|
+
update: renderParticle,
|
101
101
|
radius: theme_shokax_anime_1.default.random(80, 160),
|
102
102
|
lineWidth: 0,
|
103
103
|
alpha: {
|
@@ -133,7 +133,7 @@ function initFireworks() {
|
|
133
133
|
}
|
134
134
|
render.play();
|
135
135
|
updateCoords(e);
|
136
|
-
|
136
|
+
animateParticles(pointerX, pointerY);
|
137
137
|
}, false);
|
138
138
|
setCanvasSize();
|
139
139
|
window.addEventListener('resize', setCanvasSize, false);
|
@@ -81,7 +81,7 @@ const transition = (target, type, complete, begin) => {
|
|
81
81
|
};
|
82
82
|
exports.transition = transition;
|
83
83
|
const pageScroll = (target, offset, complete) => {
|
84
|
-
|
84
|
+
(0, theme_shokax_anime_1.default)({
|
85
85
|
targets: typeof offset === 'number' && typeof target !== 'number' ? target.parentNode : document.scrollingElement,
|
86
86
|
duration: 500,
|
87
87
|
easing: 'easeInOutQuad',
|
@@ -89,7 +89,6 @@ const pageScroll = (target, offset, complete) => {
|
|
89
89
|
complete() {
|
90
90
|
complete && complete();
|
91
91
|
}
|
92
|
-
};
|
93
|
-
(0, theme_shokax_anime_1.default)(opt).play();
|
92
|
+
}).play();
|
94
93
|
};
|
95
94
|
exports.pageScroll = pageScroll;
|