hexo-theme-shokax 0.2.5 → 0.2.7
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/LICENSE-shoka +21 -0
- package/_config.yml +1 -1
- package/languages/en.yml +9 -9
- package/languages/zh-HK.yml +7 -0
- package/languages/zh-TW.yml +7 -0
- package/layout/_mixin/comment.pug +3 -3
- package/layout/_mixin/widgets.pug +3 -2
- package/layout/_partials/head/head.pug +1 -1
- package/layout/_partials/layout.pug +41 -59
- package/layout/_partials/post/footer.pug +6 -5
- package/package.json +7 -14
- package/scripts/generaters/config.js +3 -3
- package/scripts/helpers/asset.js +23 -2
- package/source/js/_app/library.js +12 -0
- package/source/js/_app/page.js +18 -27
package/LICENSE-shoka
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2020 霜月琉璃
|
|
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 all
|
|
13
|
+
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 THE
|
|
21
|
+
SOFTWARE.
|
package/_config.yml
CHANGED
package/languages/en.yml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
name: English
|
|
2
2
|
|
|
3
3
|
favicon:
|
|
4
|
-
show:
|
|
5
|
-
hide: (´Д`)
|
|
4
|
+
show: (●´3`●) Here we go again.
|
|
5
|
+
hide: (´Д`) It's a disaster!
|
|
6
6
|
|
|
7
7
|
title:
|
|
8
8
|
archive: Archive
|
|
9
9
|
category: Category
|
|
10
10
|
tag: Tag
|
|
11
11
|
all: All
|
|
12
|
-
not_found: Σ( ° △ °|||)︴404!
|
|
12
|
+
not_found: Σ( ° △ °|||)︴404! Nothing can be seen
|
|
13
13
|
category_in: Posted in category "%s"
|
|
14
14
|
tag_in: Posted with tag "%s"
|
|
15
15
|
archive_in: Posted on "%s"
|
|
@@ -22,13 +22,13 @@ menu:
|
|
|
22
22
|
tags: Tags
|
|
23
23
|
about: About
|
|
24
24
|
search: Search
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
updata:
|
|
28
|
-
statistics:
|
|
29
|
-
admiration: Appreciation
|
|
25
|
+
census: Blog Visits Statistics
|
|
26
|
+
aboutsite: About This Site
|
|
27
|
+
updata: Update Log
|
|
28
|
+
statistics: Statistics
|
|
29
|
+
admiration: Appreciation
|
|
30
30
|
friends: Friends
|
|
31
|
-
privacy: Privacy
|
|
31
|
+
privacy: Privacy Policy
|
|
32
32
|
|
|
33
33
|
sidebar:
|
|
34
34
|
overview: Overview
|
package/languages/zh-HK.yml
CHANGED
package/languages/zh-TW.yml
CHANGED
|
@@ -13,7 +13,7 @@ mixin CommentRender()
|
|
|
13
13
|
})
|
|
14
14
|
}, 1000)
|
|
15
15
|
else if wl
|
|
16
|
-
div(class="
|
|
16
|
+
div(class="wrap" id="wcomments")
|
|
17
17
|
- var locale = JSON.stringify(theme.waline.locale)
|
|
18
18
|
- var emoji = JSON.stringify(theme.waline.emoji)
|
|
19
19
|
- var meta = JSON.stringify(theme.waline.meta)
|
|
@@ -38,7 +38,7 @@ mixin CommentRender()
|
|
|
38
38
|
});
|
|
39
39
|
}, 1000)
|
|
40
40
|
else if gt
|
|
41
|
-
div(class="
|
|
41
|
+
div(class="wrap" id="gtcomments")
|
|
42
42
|
script(type="text/javascript" data-pjax).
|
|
43
43
|
const gproxy = theme.gitalk.proxy || undefined
|
|
44
44
|
const gitalk = new Gitalk({
|
|
@@ -53,7 +53,7 @@ mixin CommentRender()
|
|
|
53
53
|
});
|
|
54
54
|
gitalk.render("gtcomments")
|
|
55
55
|
else if gs
|
|
56
|
-
div(class="
|
|
56
|
+
div(class="wrap giscus" id="gscomments")
|
|
57
57
|
script( src="https://giscus.app/client.js"
|
|
58
58
|
data-repo="#{theme.giscus.repo}"
|
|
59
59
|
data-repo-id="#{theme.giscus.repoId}"
|
|
@@ -10,6 +10,7 @@ mixin field(item)
|
|
|
10
10
|
|
|
11
11
|
mixin WRender(item)
|
|
12
12
|
- var tk = theme?.twikoo?.enable
|
|
13
|
+
- var waline = theme.waline.enable
|
|
13
14
|
if theme.widgets.random_posts
|
|
14
15
|
div(class="rpost pjax")
|
|
15
16
|
h2
|
|
@@ -22,10 +23,10 @@ mixin WRender(item)
|
|
|
22
23
|
div(class="rpost pjax")
|
|
23
24
|
h2 最新评论
|
|
24
25
|
ul(class="leancloud-recent-comment" id="new-comment")
|
|
25
|
-
if tk
|
|
26
|
+
if tk || waline
|
|
26
27
|
li(v-for="com in coms" class="item")
|
|
27
28
|
a(v-bind:href="com.href" data-pjax-state="data-pjax-state")
|
|
28
|
-
span(class="breadcrumb") {{com.nick}}@{{com.time}}
|
|
29
|
+
span(class="breadcrumb") {{com.nick}} @ {{com.time}}
|
|
29
30
|
span {{com.text}}
|
|
30
31
|
br
|
|
31
32
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
- var yandexValid = theme?.seo?.yandex,baiduValid = theme?.seo?.baidu
|
|
3
3
|
- var siteTitle = config.title,noBaiduT = theme?.seo?.disable_baidu_transformation
|
|
4
4
|
- var feedLink = full_url_for("/feed.json")
|
|
5
|
-
- var tk= theme?.twikoo?.enable
|
|
5
|
+
- var tk= theme?.twikoo?.enable
|
|
6
6
|
- var wl = theme.waline.enable,gt=theme?.gitalk?.enable
|
|
7
7
|
meta(charset="UTF-8")
|
|
8
8
|
meta(name="viewport" content="width=device-width,initial-scale=1,maximum-scale=2")
|
|
@@ -2,6 +2,10 @@ include ../_mixin/breadcrumb.pug
|
|
|
2
2
|
include ../_mixin/sidebar.pug
|
|
3
3
|
include ../_mixin/widgets.pug
|
|
4
4
|
|
|
5
|
+
- var ignores = []
|
|
6
|
+
if (theme.quicklink.ignores)
|
|
7
|
+
- ignores.push(theme.quicklink.ignores)
|
|
8
|
+
|
|
5
9
|
doctype html
|
|
6
10
|
html(lang=page.language?page.language:config.language, style=theme.grayMode ? 'filter: grayscale(1);':'' )
|
|
7
11
|
head
|
|
@@ -67,65 +71,43 @@ html(lang=page.language?page.language:config.language, style=theme.grayMode ? 'f
|
|
|
67
71
|
!= partial('_partials/footer.pug', {}, {cache: true})
|
|
68
72
|
- var ccIcon = '<i class="ic i-creative-commons"></i>'
|
|
69
73
|
- var ccText = theme.creative_commons.license.toUpperCase()
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
if page.quiz
|
|
108
|
-
| quiz: {
|
|
109
|
-
!= `choice: \'${__('quiz.choice')}\',`
|
|
110
|
-
!= `multiple: \'${__('quiz.multiple')}\',`
|
|
111
|
-
!= `true_false: \'${__('quiz.true_false')}\',`
|
|
112
|
-
!= `essay: \'${__('quiz.essay')}\',`
|
|
113
|
-
!= `gap_fill: \'${__('quiz.gap_fill')}\',`
|
|
114
|
-
!= `mistake: \'${__('quiz.mistake')}\'`
|
|
115
|
-
| },
|
|
116
|
-
| ignores : [
|
|
117
|
-
| function(uri) {
|
|
118
|
-
| return uri.includes('#');
|
|
119
|
-
| },
|
|
120
|
-
| function(uri) {
|
|
121
|
-
| return new RegExp(LOCAL.path+"$").test(uri);
|
|
122
|
-
| }
|
|
123
|
-
if theme.quicklink.ignores
|
|
124
|
-
| ,
|
|
125
|
-
!= _safedump(theme.quicklink.ignores)
|
|
126
|
-
| ]
|
|
127
|
-
| };
|
|
128
|
-
</script>
|
|
74
|
+
script(data-config type="text/javascript").
|
|
75
|
+
var LOCAL = {
|
|
76
|
+
path: `#{_permapath(page.path)}`,
|
|
77
|
+
favicon: {
|
|
78
|
+
show: `#{__('favicon.show')}`,
|
|
79
|
+
hide: `#{__('favicon.hide')}`
|
|
80
|
+
},
|
|
81
|
+
search: {
|
|
82
|
+
placeholder: "!{__('search.placeholder')}",
|
|
83
|
+
empty: "!{__('search.empty')}",
|
|
84
|
+
stats: "!{__('search.stats')}"
|
|
85
|
+
},
|
|
86
|
+
valine: `#{page.valine ? _safedump(page.valine) : 'true'}`,
|
|
87
|
+
chart: `#{page.chart ? 'true' : 'false'}`,
|
|
88
|
+
copy_tex: `#{page.math ? 'true' : 'false'}`,
|
|
89
|
+
katex: `#{page.math ? 'true' : 'false'}`,
|
|
90
|
+
mermaid: `#{page.mermaid ? 'true' : 'false'}`,
|
|
91
|
+
audio: `#{_safedump(page.audio)}`,
|
|
92
|
+
fancybox: `#{page.fancybox !== false ? 'true' : 'false'}`,
|
|
93
|
+
nocopy: `#{page.nocopy ? 'true' : 'false'}`,
|
|
94
|
+
outime: `#{page.outime !== false ? 'true' : 'false'}`,
|
|
95
|
+
template: `#{__('outime.template')}`,
|
|
96
|
+
quiz: {
|
|
97
|
+
choice: `#{__('quiz.choice')}`,
|
|
98
|
+
multiple: `#{__('quiz.multiple')}`,
|
|
99
|
+
true_false: `#{__('quiz.true_false')}`,
|
|
100
|
+
essay: `#{__('quiz.essay')}`,
|
|
101
|
+
gap_fill: `#{__('quiz.gap_fill')}`,
|
|
102
|
+
mistake: `#{__('quiz.mistake')}`
|
|
103
|
+
},
|
|
104
|
+
ignores: [
|
|
105
|
+
(uri) => uri.includes('#'),
|
|
106
|
+
(uri) => new RegExp(LOCAL.path + '$').test(uri),
|
|
107
|
+
!{JSON.stringify(ignores)}
|
|
108
|
+
]
|
|
109
|
+
};
|
|
110
|
+
|
|
129
111
|
script(src="https://polyfill.alicdn.com/polyfill.min.js")
|
|
130
112
|
if theme.advVendors.enable
|
|
131
113
|
each i in _list_vendor_js()
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
div(class="meta")
|
|
2
2
|
if date(post.date) != date(post.updated) || time(post.date) != time(post.updated)
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
if theme.twikoo.enable || theme.waline.pageview
|
|
4
|
+
span(class="icon")
|
|
5
|
+
i(class="ic i-eye")
|
|
6
|
+
span 此文章已被阅读次数:
|
|
7
|
+
span(id="twikoo_visitors" class="waline-pageview-count" data-path=post.path) 正在加载...
|
|
7
8
|
span(class="item")
|
|
8
9
|
span(class="icon")
|
|
9
10
|
i(class="ic i-calendar-check")
|
|
@@ -11,7 +12,7 @@ div(class="meta")
|
|
|
11
12
|
!= __('post.edited')
|
|
12
13
|
time(title=__('post.modified') + __('symbol.colon') + full_date(post.updated) itemprop="dateModified" datetime=moment(post.updated).format())
|
|
13
14
|
!= date(post.updated)
|
|
14
|
-
if theme.waline.pageview && !theme.waline.enable
|
|
15
|
+
if theme.waline.pageview && !theme.waline.enable && !theme.twikoo.enable
|
|
15
16
|
script(type = "module" data-pjax).
|
|
16
17
|
import { pageviewCount } from 'https://unpkg.com/@waline/client/dist/pageview.mjs';
|
|
17
18
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hexo-theme-shokax",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.7",
|
|
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",
|
|
@@ -8,23 +8,19 @@
|
|
|
8
8
|
"license": "GPL-3.0-or-later",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "tsc",
|
|
11
|
-
"build": "pnpm install && tsc"
|
|
12
|
-
"docs:dev": "vuepress dev docs",
|
|
13
|
-
"docs:build": "vuepress build docs"
|
|
11
|
+
"build": "pnpm install && tsc"
|
|
14
12
|
},
|
|
15
13
|
"devDependencies": {
|
|
16
|
-
|
|
14
|
+
|
|
17
15
|
"@types/fancybox": "^3.5.3",
|
|
18
16
|
"@types/hexo": "^3.8.8",
|
|
19
17
|
"@types/jquery": "^3.5.16",
|
|
20
18
|
"@types/js-yaml": "^4.0.5",
|
|
21
19
|
"@types/lozad": "^1.16.1",
|
|
22
|
-
"@types/node": "^
|
|
20
|
+
"@types/node": "^20.1.0",
|
|
23
21
|
"@typescript-eslint/eslint-plugin": "^5.59.0",
|
|
24
22
|
"@typescript-eslint/parser": "^5.59.0",
|
|
25
|
-
|
|
26
|
-
"@vuepress/plugin-docsearch": "2.0.0-beta.61",
|
|
27
|
-
"algoliasearch": "^4.17.0",
|
|
23
|
+
|
|
28
24
|
"eslint": "^8.39.0",
|
|
29
25
|
"eslint-config-standard": "^17.0.0",
|
|
30
26
|
"eslint-plugin-import": "^2.27.5",
|
|
@@ -37,12 +33,9 @@
|
|
|
37
33
|
"theme-shokax-anime": "^0.0.4",
|
|
38
34
|
"theme-shokax-pjax": "^0.0.2",
|
|
39
35
|
"typescript": "^5.0.4",
|
|
40
|
-
"vue": "^3.
|
|
41
|
-
"vuepress": "2.0.0-beta.61",
|
|
42
|
-
"vuepress-plugin-sitemap2": "2.0.0-beta.206"
|
|
36
|
+
"vue": "^3.3.4"
|
|
43
37
|
},
|
|
44
38
|
"dependencies": {
|
|
45
|
-
"js-yaml": "^4.1.0"
|
|
46
|
-
"sass": "^1.62.0"
|
|
39
|
+
"js-yaml": "^4.1.0"
|
|
47
40
|
}
|
|
48
41
|
}
|
|
@@ -3,20 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const hexo_util_1 =
|
|
6
|
+
const hexo_util_1 = require("hexo-util");
|
|
7
7
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
10
10
|
hexo.extend.filter.register('before_generate', () => {
|
|
11
11
|
if (hexo.config.theme_config) {
|
|
12
|
-
hexo.theme.config = hexo_util_1.
|
|
12
|
+
hexo.theme.config = (0, hexo_util_1.deepMerge)(hexo.theme.config, hexo.config.theme_config);
|
|
13
13
|
}
|
|
14
14
|
const data = hexo.locals.get('data');
|
|
15
15
|
if (data.languages) {
|
|
16
16
|
const { i18n } = hexo.theme;
|
|
17
17
|
const mergeLang = lang => {
|
|
18
18
|
if (data.languages[lang]) {
|
|
19
|
-
i18n.set(lang, hexo_util_1.
|
|
19
|
+
i18n.set(lang, (0, hexo_util_1.deepMerge)(i18n.get([lang]), data.languages[lang]));
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
for (const lang of ['en', 'ja', 'zh-CN', 'zh-HK', 'zh-TW']) {
|
package/scripts/helpers/asset.js
CHANGED
|
@@ -41,12 +41,33 @@ hexo.extend.helper.register('_new_comments', function (mode) {
|
|
|
41
41
|
else if (mode === 'waline') {
|
|
42
42
|
return `
|
|
43
43
|
<script type="module" data-pjax>
|
|
44
|
+
let items = []
|
|
44
45
|
import { RecentComments } from 'https://unpkg.com/@waline/client@v2/dist/waline.mjs'
|
|
45
46
|
RecentComments({
|
|
46
|
-
el: '#new-comment',
|
|
47
47
|
serverURL: '${hexo.theme.config.waline.serverURL.replace(/\/+$/, '')}',
|
|
48
48
|
count: 10,
|
|
49
|
-
})
|
|
49
|
+
}).then(({ comments }) => {
|
|
50
|
+
comments.forEach(function (item) {
|
|
51
|
+
let cText = (item.orig.length > 50) ? item.orig.substring(0,50)+'...' : item.orig
|
|
52
|
+
item.url = item.url !== '/' ? '/' + item.url : item.url;
|
|
53
|
+
const siteLink = item.url + "#" + item.objectId
|
|
54
|
+
items.push({
|
|
55
|
+
href: siteLink,
|
|
56
|
+
nick: item.nick,
|
|
57
|
+
time: item.insertedAt.split('T').shift(),
|
|
58
|
+
text: cText
|
|
59
|
+
})
|
|
60
|
+
})
|
|
61
|
+
Vue.createApp({
|
|
62
|
+
data() {
|
|
63
|
+
return {
|
|
64
|
+
coms: items
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}).mount('#new-comment')
|
|
68
|
+
}).catch(function (err) {
|
|
69
|
+
console.error(err)
|
|
70
|
+
})
|
|
50
71
|
</script>
|
|
51
72
|
`;
|
|
52
73
|
}
|
|
@@ -303,3 +303,15 @@ const pageScroll = function (target, offset, complete) {
|
|
|
303
303
|
};
|
|
304
304
|
anime(opt).play();
|
|
305
305
|
};
|
|
306
|
+
let inCloudFlare = true;
|
|
307
|
+
window.addEventListener('DOMContentLoaded', function () {
|
|
308
|
+
inCloudFlare = false;
|
|
309
|
+
});
|
|
310
|
+
if (document.readyState === 'loading') {
|
|
311
|
+
window.addEventListener('load', function () {
|
|
312
|
+
if (inCloudFlare) {
|
|
313
|
+
window.dispatchEvent(new Event('DOMContentLoaded'));
|
|
314
|
+
console.log('%c ☁️cloudflare patch ' + '%c running(rocket & minify)', 'color: white; background: #ff8c00; padding: 5px 3px;', 'padding: 4px;border:1px solid #ff8c00');
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
}
|
package/source/js/_app/page.js
CHANGED
|
@@ -2,35 +2,26 @@ const cardActive = function () {
|
|
|
2
2
|
if (!$dom('.index.wrap')) {
|
|
3
3
|
return;
|
|
4
4
|
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
if (article.hasClass('show')
|
|
8
|
-
article.
|
|
5
|
+
const io = new IntersectionObserver(function (entries) {
|
|
6
|
+
entries.forEach(function (article) {
|
|
7
|
+
if (article.target.hasClass('show')) {
|
|
8
|
+
io.unobserve(article.target);
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const io = new IntersectionObserver(function (entries) {
|
|
14
|
-
entries.forEach(function (article) {
|
|
15
|
-
if (article.target.hasClass('show')) {
|
|
10
|
+
else {
|
|
11
|
+
if (article.isIntersecting || article.intersectionRatio > 0) {
|
|
12
|
+
article.target.addClass('show');
|
|
16
13
|
io.unobserve(article.target);
|
|
17
14
|
}
|
|
18
|
-
|
|
19
|
-
if (article.isIntersecting || article.intersectionRatio > 0) {
|
|
20
|
-
article.target.addClass('show');
|
|
21
|
-
io.unobserve(article.target);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
}, {
|
|
26
|
-
root: null,
|
|
27
|
-
threshold: [0.3]
|
|
28
|
-
});
|
|
29
|
-
$dom.each('.index.wrap article.item, .index.wrap section.item', function (article) {
|
|
30
|
-
io.observe(article);
|
|
15
|
+
}
|
|
31
16
|
});
|
|
32
|
-
|
|
33
|
-
|
|
17
|
+
}, {
|
|
18
|
+
root: null,
|
|
19
|
+
threshold: [0.3]
|
|
20
|
+
});
|
|
21
|
+
$dom.each('.index.wrap article.item, .index.wrap section.item', function (article) {
|
|
22
|
+
io.observe(article);
|
|
23
|
+
});
|
|
24
|
+
$dom('.index.wrap .item:first-child').addClass('show');
|
|
34
25
|
$dom.each('.cards .item', function (element, index) {
|
|
35
26
|
['mouseenter', 'touchstart'].forEach(function (item) {
|
|
36
27
|
element.addEventListener(item, function (event) {
|
|
@@ -50,7 +41,7 @@ const cardActive = function () {
|
|
|
50
41
|
const registerExtURL = function () {
|
|
51
42
|
$dom.each('span.exturl', function (element) {
|
|
52
43
|
const link = document.createElement('a');
|
|
53
|
-
link.href = decodeURIComponent(atob(element.dataset.url).split('').map(function (c) {
|
|
44
|
+
link.href = decodeURIComponent(window.atob(element.dataset.url).split('').map(function (c) {
|
|
54
45
|
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
|
|
55
46
|
}).join(''));
|
|
56
47
|
link.rel = 'noopener external nofollow noreferrer';
|
|
@@ -688,5 +679,5 @@ const siteInit = function () {
|
|
|
688
679
|
window.addEventListener('DOMContentLoaded', siteInit, {
|
|
689
680
|
passive: true
|
|
690
681
|
});
|
|
691
|
-
console.log('%c Theme.ShokaX v' + CONFIG.version + ' %c https://github.com/
|
|
682
|
+
console.log('%c Theme.ShokaX v' + CONFIG.version + ' %c https://github.com/theme-shoka-x/hexo-theme-shokaX ', 'color: white; background: #e9546b; padding:5px 0;', 'padding:4px;border:1px solid #e9546b;');
|
|
692
683
|
console.log('%c by kaitaku ' + '%c https://www.kaitaku.xyz', 'color: white; background: #00bfff; padding: 5px 3px;', 'padding: 4px;border:1px solid #00bfff');
|