hexo-theme-solitude 1.5.0 → 1.5.2
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/.github/ISSUE_TEMPLATE/config.yml +17 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +48 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +35 -0
- package/CONTRIBUTING.md +2 -13
- package/LICENSE +21 -674
- package/README.md +17 -41
- package/README_EN.md +14 -39
- package/SECURITY.md +9 -0
- package/_config.yml +235 -264
- package/languages/{en-US.yml → en.yml} +3 -5
- package/languages/zh-CN.yml +0 -2
- package/languages/zh-TW.yml +0 -2
- package/layout/404.pug +1 -1
- package/layout/includes/body/gadsense.pug +9 -0
- package/layout/includes/console.pug +6 -6
- package/layout/includes/footer.pug +13 -13
- package/layout/includes/inject/body.pug +10 -1
- package/layout/includes/inject/head.pug +6 -4
- package/layout/includes/mixins/pagination.pug +2 -2
- package/layout/includes/nav.pug +2 -2
- package/layout/includes/page/album.pug +9 -9
- package/layout/includes/page/says.pug +5 -5
- package/layout/includes/sidebar.pug +2 -3
- package/layout/includes/widgets/aside/asideInfoCard.pug +1 -1
- package/layout/includes/widgets/aside/asideNewestPost.pug +1 -1
- package/layout/includes/widgets/aside/asideToc.pug +1 -1
- package/layout/includes/widgets/aside/asideWebInfo.pug +8 -8
- package/layout/includes/widgets/home/banner.pug +1 -1
- package/layout/includes/widgets/home/bbTimeList.pug +7 -7
- package/layout/includes/widgets/home/categoryBar.pug +5 -4
- package/layout/includes/widgets/home/categoryGroup.pug +3 -2
- package/layout/includes/widgets/home/postList.pug +11 -5
- package/layout/includes/widgets/home/topGroup.pug +1 -1
- package/layout/includes/widgets/nav/menu.pug +1 -1
- package/layout/includes/widgets/nav/right.pug +6 -6
- package/layout/includes/widgets/page/about/award.pug +3 -3
- package/layout/includes/widgets/page/about/hobbies.pug +1 -1
- package/layout/includes/widgets/page/banner.pug +1 -1
- package/layout/includes/widgets/page/equipment/content.pug +1 -1
- package/layout/includes/widgets/page/links/banner.pug +3 -3
- package/layout/includes/widgets/page/moments/angle.pug +1 -1
- package/layout/includes/widgets/post/award.pug +1 -1
- package/layout/includes/widgets/post/copyright.pug +1 -1
- package/layout/includes/widgets/post/post-ai.pug +1 -1
- package/layout/includes/widgets/post/postMeta.pug +12 -12
- package/layout/includes/widgets/rightside/index.pug +25 -25
- package/layout/includes/widgets/third-party/comments/comment.pug +1 -1
- package/layout/includes/widgets/third-party/music.pug +1 -1
- package/layout/includes/widgets/third-party/search/algolia-search.pug +2 -2
- package/layout/includes/widgets/third-party/search/local-search.pug +1 -1
- package/layout/index.pug +2 -2
- package/package.json +9 -9
- package/plugins.yml +8 -12
- package/scripts/event/cdn.js +10 -0
- package/scripts/event/welcome.js +1 -1
- package/scripts/filter/lazyload.js +2 -3
- package/scripts/helper/related_post.js +1 -1
- package/scripts/helper/stylus.js +11 -3
- package/scripts/tags/card.js +1 -1
- package/scripts/tags/mermaid.js +9 -0
- package/scripts/tags/tabs.js +2 -2
- package/source/css/_global/animation.styl +1 -1
- package/source/css/_global/index.styl +27 -27
- package/source/css/_layout/basic.styl +18 -18
- package/source/css/_layout/header.styl +67 -67
- package/source/css/_layout/index.styl +14 -14
- package/source/css/_mode/index.styl +88 -88
- package/source/css/_page/_about/author.styl +5 -5
- package/source/css/_page/_about/buff.styl +1 -1
- package/source/css/_page/_about/careers.styl +1 -1
- package/source/css/_page/_about/contentinfo.styl +2 -2
- package/source/css/_page/_about/game.styl +2 -2
- package/source/css/_page/_about/like.styl +2 -2
- package/source/css/_page/_about/myphoto.styl +1 -1
- package/source/css/_page/_about/oneself.styl +2 -2
- package/source/css/_page/_about/reward.styl +11 -11
- package/source/css/_page/_about/skills.styl +2 -2
- package/source/css/_page/_about/statistic.styl +4 -4
- package/source/css/_page/_about/tenyear.styl +4 -4
- package/source/css/_page/_gallery/index.styl +7 -7
- package/source/css/_page/_home/category-bar.styl +11 -8
- package/source/css/_page/_home/home-top.styl +16 -16
- package/source/css/_page/_home/index.styl +1 -1
- package/source/css/_page/_home/pagination.styl +22 -22
- package/source/css/_page/_home/recent-post.styl +22 -15
- package/source/css/_page/category.styl +11 -11
- package/source/css/_page/douban.styl +10 -10
- package/source/css/_page/equipment.styl +10 -10
- package/source/css/_page/error.styl +3 -3
- package/source/css/_page/google.styl +32 -0
- package/source/css/_page/index.styl +4 -1
- package/source/css/_page/links.styl +27 -27
- package/source/css/_page/moment.styl +22 -22
- package/source/css/_page/music.styl +16 -14
- package/source/css/_page/says.styl +21 -21
- package/source/css/_page/share.styl +25 -25
- package/source/css/_page/tag.styl +12 -12
- package/source/css/_widgets/_aside/allinfo.styl +12 -12
- package/source/css/_widgets/_aside/flip.styl +3 -6
- package/source/css/_widgets/_aside/index.styl +4 -4
- package/source/css/_widgets/_aside/info.styl +27 -27
- package/source/css/_widgets/_aside/newPost.styl +5 -5
- package/source/css/_widgets/_aside/toc.styl +7 -7
- package/source/css/_widgets/_comment/index.styl +7 -7
- package/source/css/_widgets/_comment/twikoo.styl +66 -50
- package/source/css/_widgets/_comment/waline.styl +45 -44
- package/source/css/_widgets/_extra/console.styl +30 -29
- package/source/css/_widgets/_extra/fullpage.styl +1 -1
- package/source/css/_widgets/_extra/music.styl +11 -11
- package/source/css/_widgets/_extra/pace.styl +2 -2
- package/source/css/_widgets/_extra/rightmenu.styl +8 -8
- package/source/css/_widgets/_mixins/article-sort.styl +7 -7
- package/source/css/_widgets/_mixins/footer.styl +31 -29
- package/source/css/_widgets/_mixins/keyboard.styl +8 -8
- package/source/css/_widgets/_mixins/other.styl +4 -4
- package/source/css/_widgets/_mixins/sidebar.styl +20 -20
- package/source/css/_widgets/_post/_highlight/index.styl +16 -16
- package/source/css/_widgets/_post/_highlight/theme/default.styl +1 -1
- package/source/css/_widgets/_post/_highlight/theme/mac.styl +1 -1
- package/source/css/_widgets/_post/commentBarrage.styl +13 -13
- package/source/css/_widgets/_post/content.styl +27 -26
- package/source/css/_widgets/_post/copyright.styl +11 -11
- package/source/css/_widgets/_post/meta.styl +27 -27
- package/source/css/_widgets/_post/pagination.styl +13 -13
- package/source/css/_widgets/_post/postAI.styl +18 -18
- package/source/css/_widgets/_post/relatedPost.styl +8 -8
- package/source/css/_widgets/_post/tools.styl +30 -30
- package/source/css/_widgets/_search/algolia-search.styl +18 -18
- package/source/css/_widgets/_search/local-search.styl +22 -22
- package/source/css/_widgets/_tags/button.styl +1 -1
- package/source/css/_widgets/_tags/card.styl +12 -12
- package/source/css/_widgets/_tags/fold.styl +11 -11
- package/source/css/_widgets/_tags/index.styl +26 -26
- package/source/css/_widgets/_tags/link.styl +10 -9
- package/source/css/_widgets/_tags/mermaid.styl +4 -0
- package/source/css/_widgets/_tags/note.styl +2 -2
- package/source/css/_widgets/_tags/tabs.styl +10 -10
- package/source/css/_widgets/_tags/timeline.styl +5 -5
- package/source/img/logo.png +0 -0
- package/source/js/comment/twikoo_commentBarrage.js +1 -1
- package/source/js/comment/waline_commentBarrage.js +1 -1
- package/source/js/covercolor/api.js +18 -18
- package/source/js/covercolor/local.js +18 -18
- package/source/js/main.js +5 -5
- package/source/js/music.js +1 -12
- package/source/js/sco-ai.min.js +1 -1
- package/source/js/search/algolia.js +7 -7
- package/source/js/tw_cn.js +2 -2
- package/source/js/universe.min.js +5 -0
- package/source/js/utils.js +2 -2
- package/source/js/waterfall.min.js +1 -0
@@ -3,10 +3,10 @@ const coverColor = () => {
|
|
3
3
|
if (path) {
|
4
4
|
handleApiColor(path);
|
5
5
|
} else {
|
6
|
-
document.documentElement.style.setProperty('--
|
7
|
-
document.documentElement.style.setProperty('--
|
8
|
-
document.documentElement.style.setProperty('--
|
9
|
-
document.documentElement.style.setProperty('--
|
6
|
+
document.documentElement.style.setProperty('--st-main', 'var(--st-theme)');
|
7
|
+
document.documentElement.style.setProperty('--st-main-op', 'var(--st-theme-op)');
|
8
|
+
document.documentElement.style.setProperty('--st-main-op-deep', 'var(--st-theme-op-deep)');
|
9
|
+
document.documentElement.style.setProperty('--st-main-none', 'var(--st-theme-none)');
|
10
10
|
initThemeColor()
|
11
11
|
}
|
12
12
|
}
|
@@ -43,23 +43,23 @@ function img2color(src) {
|
|
43
43
|
|
44
44
|
function setThemeColors(value, r = null, g = null, b = null) {
|
45
45
|
if (value) {
|
46
|
-
document.documentElement.style.setProperty('--
|
47
|
-
document.documentElement.style.setProperty('--
|
48
|
-
document.documentElement.style.setProperty('--
|
49
|
-
document.documentElement.style.setProperty('--
|
46
|
+
document.documentElement.style.setProperty('--st-main', value);
|
47
|
+
document.documentElement.style.setProperty('--st-main-op', value + '23');
|
48
|
+
document.documentElement.style.setProperty('--st-main-op-deep', value + 'dd');
|
49
|
+
document.documentElement.style.setProperty('--st-main-none', value + '00');
|
50
50
|
|
51
51
|
if (r && g && b) {
|
52
52
|
let brightness = Math.round(((parseInt(r) * 299) + (parseInt(g) * 587) + (parseInt(b) * 114)) / 1000);
|
53
53
|
if (brightness < 125) {
|
54
54
|
let cardContents = document.getElementsByClassName('card-content');
|
55
55
|
for (let i = 0; i < cardContents.length; i++) {
|
56
|
-
cardContents[i].style.setProperty('--
|
56
|
+
cardContents[i].style.setProperty('--st-card-bg', 'var(--st-white)');
|
57
57
|
}
|
58
58
|
|
59
59
|
let authorInfo = document.getElementsByClassName('author-info__sayhi');
|
60
60
|
for (let i = 0; i < authorInfo.length; i++) {
|
61
|
-
authorInfo[i].style.setProperty('background', 'var(--
|
62
|
-
authorInfo[i].style.setProperty('color', 'var(--
|
61
|
+
authorInfo[i].style.setProperty('background', 'var(--st-white-op)');
|
62
|
+
authorInfo[i].style.setProperty('color', 'var(--st-white)');
|
63
63
|
}
|
64
64
|
}
|
65
65
|
}
|
@@ -67,10 +67,10 @@ function setThemeColors(value, r = null, g = null, b = null) {
|
|
67
67
|
document.getElementById("coverdiv").classList.add("loaded");
|
68
68
|
initThemeColor();
|
69
69
|
} else {
|
70
|
-
document.documentElement.style.setProperty('--
|
71
|
-
document.documentElement.style.setProperty('--
|
72
|
-
document.documentElement.style.setProperty('--
|
73
|
-
document.documentElement.style.setProperty('--
|
70
|
+
document.documentElement.style.setProperty('--st-main', 'var(--st-theme)');
|
71
|
+
document.documentElement.style.setProperty('--st-main-op', 'var(--st-theme-op)');
|
72
|
+
document.documentElement.style.setProperty('--st-main-op-deep', 'var(--st-theme-op-deep)');
|
73
|
+
document.documentElement.style.setProperty('--st-main-none', 'var(--st-theme-none)');
|
74
74
|
initThemeColor();
|
75
75
|
}
|
76
76
|
}
|
@@ -79,11 +79,11 @@ function initThemeColor() {
|
|
79
79
|
const currentTop = window.scrollY || document.documentElement.scrollTop;
|
80
80
|
let themeColor;
|
81
81
|
if (currentTop > 0) {
|
82
|
-
themeColor = getComputedStyle(document.documentElement).getPropertyValue('--
|
82
|
+
themeColor = getComputedStyle(document.documentElement).getPropertyValue('--st-card-bg');
|
83
83
|
} else if (PAGE_CONFIG.is_post) {
|
84
|
-
themeColor = getComputedStyle(document.documentElement).getPropertyValue('--
|
84
|
+
themeColor = getComputedStyle(document.documentElement).getPropertyValue('--st-main');
|
85
85
|
} else {
|
86
|
-
themeColor = getComputedStyle(document.documentElement).getPropertyValue('--
|
86
|
+
themeColor = getComputedStyle(document.documentElement).getPropertyValue('--st-background');
|
87
87
|
}
|
88
88
|
changeThemeColor(themeColor);
|
89
89
|
}
|
@@ -3,10 +3,10 @@ const coverColor = () => {
|
|
3
3
|
if (path) {
|
4
4
|
localColor(path);
|
5
5
|
} else {
|
6
|
-
document.documentElement.style.setProperty('--
|
7
|
-
document.documentElement.style.setProperty('--
|
8
|
-
document.documentElement.style.setProperty('--
|
9
|
-
document.documentElement.style.setProperty('--
|
6
|
+
document.documentElement.style.setProperty('--st-main', 'var(--st-theme)');
|
7
|
+
document.documentElement.style.setProperty('--st-main-op', 'var(--st-theme-op)');
|
8
|
+
document.documentElement.style.setProperty('--st-main-op-deep', 'var(--st-theme-op-deep)');
|
9
|
+
document.documentElement.style.setProperty('--st-main-none', 'var(--st-theme-none)');
|
10
10
|
initThemeColor()
|
11
11
|
}
|
12
12
|
}
|
@@ -108,23 +108,23 @@ function colorRgb(str) {
|
|
108
108
|
|
109
109
|
function setThemeColors(value, r = null, g = null, b = null) {
|
110
110
|
if (value) {
|
111
|
-
document.documentElement.style.setProperty('--
|
112
|
-
document.documentElement.style.setProperty('--
|
113
|
-
document.documentElement.style.setProperty('--
|
114
|
-
document.documentElement.style.setProperty('--
|
111
|
+
document.documentElement.style.setProperty('--st-main', value);
|
112
|
+
document.documentElement.style.setProperty('--st-main-op', value + '23');
|
113
|
+
document.documentElement.style.setProperty('--st-main-op-deep', value + 'dd');
|
114
|
+
document.documentElement.style.setProperty('--st-main-none', value + '00');
|
115
115
|
|
116
116
|
if (r && g && b) {
|
117
117
|
let brightness = Math.round(((parseInt(r) * 299) + (parseInt(g) * 587) + (parseInt(b) * 114)) / 1000);
|
118
118
|
if (brightness < 125) {
|
119
119
|
let cardContents = document.getElementsByClassName('card-content');
|
120
120
|
for (let i = 0; i < cardContents.length; i++) {
|
121
|
-
cardContents[i].style.setProperty('--
|
121
|
+
cardContents[i].style.setProperty('--st-card-bg', 'var(--st-white)');
|
122
122
|
}
|
123
123
|
|
124
124
|
let authorInfo = document.getElementsByClassName('author-info__sayhi');
|
125
125
|
for (let i = 0; i < authorInfo.length; i++) {
|
126
|
-
authorInfo[i].style.setProperty('background', 'var(--
|
127
|
-
authorInfo[i].style.setProperty('color', 'var(--
|
126
|
+
authorInfo[i].style.setProperty('background', 'var(--st-white-op)');
|
127
|
+
authorInfo[i].style.setProperty('color', 'var(--st-white)');
|
128
128
|
}
|
129
129
|
}
|
130
130
|
}
|
@@ -132,10 +132,10 @@ function setThemeColors(value, r = null, g = null, b = null) {
|
|
132
132
|
document.getElementById("coverdiv").classList.add("loaded");
|
133
133
|
initThemeColor();
|
134
134
|
} else {
|
135
|
-
document.documentElement.style.setProperty('--
|
136
|
-
document.documentElement.style.setProperty('--
|
137
|
-
document.documentElement.style.setProperty('--
|
138
|
-
document.documentElement.style.setProperty('--
|
135
|
+
document.documentElement.style.setProperty('--st-main', 'var(--st-theme)');
|
136
|
+
document.documentElement.style.setProperty('--st-main-op', 'var(--st-theme-op)');
|
137
|
+
document.documentElement.style.setProperty('--st-main-op-deep', 'var(--st-theme-op-deep)');
|
138
|
+
document.documentElement.style.setProperty('--st-main-none', 'var(--st-theme-none)');
|
139
139
|
initThemeColor();
|
140
140
|
}
|
141
141
|
}
|
@@ -144,11 +144,11 @@ function initThemeColor() {
|
|
144
144
|
const currentTop = window.scrollY || document.documentElement.scrollTop;
|
145
145
|
let themeColor;
|
146
146
|
if (currentTop > 0) {
|
147
|
-
themeColor = getComputedStyle(document.documentElement).getPropertyValue('--
|
147
|
+
themeColor = getComputedStyle(document.documentElement).getPropertyValue('--st-card-bg');
|
148
148
|
} else if (PAGE_CONFIG.is_post) {
|
149
|
-
themeColor = getComputedStyle(document.documentElement).getPropertyValue('--
|
149
|
+
themeColor = getComputedStyle(document.documentElement).getPropertyValue('--st-main');
|
150
150
|
} else {
|
151
|
-
themeColor = getComputedStyle(document.documentElement).getPropertyValue('--
|
151
|
+
themeColor = getComputedStyle(document.documentElement).getPropertyValue('--st-background');
|
152
152
|
}
|
153
153
|
changeThemeColor(themeColor);
|
154
154
|
}
|
package/source/js/main.js
CHANGED
@@ -440,10 +440,10 @@ let sco = {
|
|
440
440
|
$console.classList.toggle("on", wleelw_musicPlaying);
|
441
441
|
if (wleelw_musicPlaying) {
|
442
442
|
$meting.aplayer.play();
|
443
|
-
$toggleButton.innerHTML = `<i class="
|
443
|
+
$toggleButton.innerHTML = `<i class="solitude st-pause-fill"></i><span>暂停音乐</span>`;
|
444
444
|
} else {
|
445
445
|
$meting.aplayer.pause();
|
446
|
-
$toggleButton.innerHTML = `<i class="
|
446
|
+
$toggleButton.innerHTML = `<i class="solitude st-play-fill"></i><span>播放音乐</span>`;
|
447
447
|
}
|
448
448
|
rm.hideRightMenu();
|
449
449
|
},
|
@@ -691,8 +691,8 @@ let sco = {
|
|
691
691
|
class hightlight {
|
692
692
|
static createEle(langEl, item) {
|
693
693
|
const fragment = document.createDocumentFragment()
|
694
|
-
const highlightCopyEle = GLOBAL_CONFIG.hightlight.copy ? '<i class="
|
695
|
-
const highlightExpandEle = '<i class="
|
694
|
+
const highlightCopyEle = GLOBAL_CONFIG.hightlight.copy ? '<i class="solitude st-copy-fill"></i>' : '<i></i>'
|
695
|
+
const highlightExpandEle = '<i class="solitude st-arrow-down expand"></i>'
|
696
696
|
|
697
697
|
const hlTools = document.createElement('div')
|
698
698
|
hlTools.className = `highlight-tools`
|
@@ -729,7 +729,7 @@ class hightlight {
|
|
729
729
|
if (GLOBAL_CONFIG.hightlight.limit && itemHeight > GLOBAL_CONFIG.hightlight.limit) {
|
730
730
|
$table.setAttribute('style', `height: ${GLOBAL_CONFIG.hightlight.limit}px`)
|
731
731
|
ele.className = 'code-expand-btn'
|
732
|
-
ele.innerHTML = '<i class="
|
732
|
+
ele.innerHTML = '<i class="solitude st-show-line"></i>'
|
733
733
|
ele.addEventListener('click', (e) => {
|
734
734
|
$table.setAttribute('style', `height: ${itemHeight}px`)
|
735
735
|
e.target.classList.add('expand-done')
|
package/source/js/music.js
CHANGED
@@ -41,18 +41,6 @@ const scoMusic = {
|
|
41
41
|
aplayerLrcContents.style.transform = `translateY(${translateYValue}px)`;
|
42
42
|
}
|
43
43
|
},
|
44
|
-
buttonlist: () => {
|
45
|
-
const aplayerList = document.querySelector(".aplayer-list");
|
46
|
-
if (aplayerList) {
|
47
|
-
document.querySelector(".aplayer-lrc").addEventListener("click", () => {
|
48
|
-
if (aplayerList.classList.contains("aplayer-list-hide")) {
|
49
|
-
aplayerList.classList.remove("aplayer-list-hide");
|
50
|
-
} else {
|
51
|
-
aplayerList.classList.add("aplayer-list-hide");
|
52
|
-
}
|
53
|
-
});
|
54
|
-
}
|
55
|
-
},
|
56
44
|
extractValue: (input) => {
|
57
45
|
const valueRegex = /\("([^\s]+)"\)/g;
|
58
46
|
const match = valueRegex.exec(input);
|
@@ -160,6 +148,7 @@ const scoMusic = {
|
|
160
148
|
document.documentElement.style.setProperty('--vh', `${vh}px`);
|
161
149
|
scoMusic.getCustomPlayList();
|
162
150
|
document.addEventListener("keydown", scoMusic.setKeydown);
|
151
|
+
scoMusic.buttonlist();
|
163
152
|
}
|
164
153
|
};
|
165
154
|
|
package/source/js/sco-ai.min.js
CHANGED
@@ -5,4 +5,4 @@
|
|
5
5
|
* @author 王卓Sco
|
6
6
|
* @license GNU General Public License v3.0
|
7
7
|
*/
|
8
|
-
var ScoAI={root:"https://summary.tianli0.top",aiTalkMode:!1,aiPostExplanation:"",config:GLOBAL_CONFIG.ai,init(){this.scoGPTIsRunning=!1,this.generate(),this.AIEngine()},getTitleAndContent(){const e=document.title,t=document.getElementById("article-container"),n=t.getElementsByTagName("p"),o=t.querySelectorAll("h1, h2, h3, h4, h5");let i="";for(let e of o)i+=e.innerText+" ";for(let e of n)i+=e.innerText.replace(/https?:\/\/[^\s]+/g,"");return(e+" "+i).slice(0,1e3)},generate(){this.aiShowAnimation(this.fetch(this.getTitleAndContent(),this.config.key))},async fetch(e, t){const n=`${this.root}/?content=${encodeURIComponent(e)}&key=${encodeURIComponent(t)}&url=${encodeURIComponent(window.location.href)}`;try{const e=new AbortController,t=await fetch(n,{signal:e.signal});if(t.ok){const e=await t.json();return this.aiPostExplanation=e.summary,e.summary}throw Error("Request failed")}catch(e){return"AbortError"===e.name?console.error("Request timed out"):console.error("Request failed:",e),"获取文章摘要超时。当你出现这个问题时,可能是因为文章过长导致的AI运算量过大, 您可以稍等一下然后重新尝试。"}},aiShowAnimation(e, t=!1){const n=document.querySelector(".ai-explanation"),o=document.querySelector(".ai-tag");if(!n||this.scoGPTIsRunning)return;this.scoGPTIsRunning=!0,this.cleanSuggestions(),o.classList.add("loadingAI"),n.style.display="block",n.innerHTML='生成中...<span class="blinking-cursor"></span>';let i,s,r=!0,a=0,c=!0;const l=new IntersectionObserver((e=>{r=e[0].isIntersecting,r&&requestAnimationFrame(s)}),{threshold:0});e.then((e=>{i=performance.now(),s=()=>{if(a<e.length&&r){const c=performance.now(),g=c-i,d=e.slice(a,a+1),h=/[,。!、?,.!?]/.test(d),u=/[a-zA-Z0-9]/.test(d);g>=(h?100*Math.random()+100:u?10:25)&&(n.innerText=e.slice(0,a+1),i=c,a++,a<e.length?n.innerHTML=e.slice(0,a)+'<span class="blinking-cursor"></span>':(n.innerHTML=e,n.style.display="block",this.scoGPTIsRunning=!1,o.classList.remove("loadingAI"),l.disconnect(),t&&this.createSuggestions())),r&&requestAnimationFrame(s)}},r&&c&&setTimeout((()=>{requestAnimationFrame(s),c=!1}),3e3),l.observe(n)})).catch((e=>{console.error("检索信息失败:",e),n.innerHTML="检索信息失败",n.style.display="block",this.scoGPTIsRunning=!1,o.classList.remove("loadingAI"),l.disconnect()}))},AIEngine(){const e=document.querySelector(".ai-tag");e&&e.addEventListener("click",(()=>{this.scoGPTIsRunning||(this.aiTalkMode=!0,this.aiShowAnimation(Promise.resolve(this.config.talk),!0))}))},cleanSuggestions(){const e=document.querySelector(".ai-suggestions");e?e.innerHTML="":console.error("没有这个元素:'ai-suggestions'")},createSuggestions(){this.aiTalkMode&&this.cleanSuggestions(),this.createSuggestionItemWithAction("这篇文章讲了什么?",(()=>{this.aiShowAnimation(Promise.resolve(this.aiPostExplanation),!0)})),this.config.randomPost&&this.createSuggestionItemWithAction("带我去看看其他文章",(()=>toRandomPost())),this.aiTalkMode=!0},createSuggestionItemWithAction(e, t){const n=document.querySelector(".ai-suggestions");if(!n)return void console.error("无法找到具有class为ai-suggestions的元素");const o=document.createElement("div");o.classList.add("ai-suggestions-item"),o.textContent=e,o.addEventListener("click",t),n.appendChild(o)}};
|
8
|
+
var ScoAI={root:"https://summary.tianli0.top",aiTalkMode:!1,aiPostExplanation:"",config:GLOBAL_CONFIG.ai,init(){this.scoGPTIsRunning=!1,this.generate(),this.AIEngine()},getTitleAndContent(){const e=document.title,t=document.getElementById("article-container"),n=t.getElementsByTagName("p"),o=t.querySelectorAll("h1, h2, h3, h4, h5");let i="";for(let e of o)i+=e.innerText+" ";for(let e of n)i+=e.innerText.replace(/https?:\/\/[^\s]+/g,"");return(e+" "+i).slice(0,1e3)},generate(){this.aiShowAnimation(this.fetch(this.getTitleAndContent(),this.config.key))},async fetch(e, t){const n=`${this.root}/?content=${encodeURIComponent(e)}&key=${encodeURIComponent(t)}&url=${encodeURIComponent(window.location.href)}`;try{const e=new AbortController,t=await fetch(n,{signal:e.signal});if(t.ok){const e=await t.json();return this.aiPostExplanation=e.summary,e.summary}throw Error("Request failed")}catch(e){return"AbortError"===e.name?console.error("Request timed out"):console.error("Request failed:",e),"获取文章摘要超时。当你出现这个问题时,可能是因为文章过长导致的AI运算量过大, 您可以稍等一下然后重新尝试。"}},aiShowAnimation(e, t=!1){const n=document.querySelector(".ai-explanation"),o=document.querySelector(".ai-tag");if(!n||this.scoGPTIsRunning)return;this.scoGPTIsRunning=!0,this.cleanSuggestions(),o.classList.add("loadingAI"),n.style.display="block",n.innerHTML='生成中...<span class="blinking-cursor"></span>';let i,s,r=!0,a=0,c=!0;const l=new IntersectionObserver((e=>{r=e[0].isIntersecting,r&&requestAnimationFrame(s)}),{threshold:0});e.then((e=>{i=performance.now(),s=()=>{if(a<e.length&&r){const c=performance.now(),g=c-i,d=e.slice(a,a+1),h=/[,。!、?,.!?]/.test(d),u=/[a-zA-Z0-9]/.test(d);g>=(h?100*Math.random()+100:u?10:25)&&(n.innerText=e.slice(0,a+1),i=c,a++,a<e.length?n.innerHTML=e.slice(0,a)+'<span class="blinking-cursor"></span>':(n.innerHTML=e,n.style.display="block",this.scoGPTIsRunning=!1,o.classList.remove("loadingAI"),l.disconnect(),t&&this.createSuggestions())),r&&requestAnimationFrame(s)}},r&&c&&setTimeout((()=>{requestAnimationFrame(s),c=!1}),3e3),l.observe(n)})).catch((e=>{console.error("检索信息失败:",e),n.innerHTML="检索信息失败",n.style.display="block",this.scoGPTIsRunning=!1,o.classList.remove("loadingAI"),l.disconnect()}))},AIEngine(){const e=document.querySelector(".ai-tag");e&&e.addEventListener("click",(()=>{this.scoGPTIsRunning||(this.aiTalkMode=!0,this.aiShowAnimation(Promise.resolve(this.config.talk),!0))}))},cleanSuggestions(){const e=document.querySelector(".ai-suggestions");e?e.innerHTML="":console.error("没有这个元素:'ai-suggestions'")},createSuggestions(){this.aiTalkMode&&this.cleanSuggestions(),this.createSuggestionItemWithAction("这篇文章讲了什么?",(()=>{this.aiShowAnimation(Promise.resolve(this.aiPostExplanation),!0)})),this.config.randomPost&&this.createSuggestionItemWithAction("带我去看看其他文章",(()=>toRandomPost())),this.aiTalkMode=!0},createSuggestionItemWithAction(e, t){const n=document.querySelector(".ai-suggestions");if(!n)return void console.error("无法找到具有class为ai-suggestions的元素");const o=document.createElement("div");o.classList.add("ai-suggestions-item"),o.textContent=e,o.addEventListener("click",t),n.appendChild(o)}};
|
@@ -60,7 +60,7 @@ window.addEventListener("load", () => {
|
|
60
60
|
searchClient: algoliasearch(algolia.appId, algolia.apiKey),
|
61
61
|
searchFunction(helper) {
|
62
62
|
if (helper.state.query) {
|
63
|
-
let innerLoading = '<i class="
|
63
|
+
let innerLoading = '<i class="solitude st-loading-line st-spin"></i>';
|
64
64
|
document.getElementById("algolia-hits").innerHTML = innerLoading;
|
65
65
|
helper.search();
|
66
66
|
}
|
@@ -87,7 +87,7 @@ window.addEventListener("load", () => {
|
|
87
87
|
item(data) {
|
88
88
|
const link = data.permalink ? data.permalink : GLOBAL_CONFIG.root + data.path;
|
89
89
|
const result = data._highlightResult;
|
90
|
-
const loadingLogo = document.querySelector("#algolia-hits .
|
90
|
+
const loadingLogo = document.querySelector("#algolia-hits .st-spin");
|
91
91
|
if (loadingLogo) {
|
92
92
|
loadingLogo.style.display = "none";
|
93
93
|
}
|
@@ -100,7 +100,7 @@ window.addEventListener("load", () => {
|
|
100
100
|
</a>`;
|
101
101
|
},
|
102
102
|
empty: function (data) {
|
103
|
-
const loadingLogo = document.querySelector("#algolia-hits .
|
103
|
+
const loadingLogo = document.querySelector("#algolia-hits .st-spin");
|
104
104
|
if (loadingLogo) {
|
105
105
|
loadingLogo.style.display = "none";
|
106
106
|
}
|
@@ -125,10 +125,10 @@ window.addEventListener("load", () => {
|
|
125
125
|
scrollTo: false,
|
126
126
|
showFirstLast: false,
|
127
127
|
templates: {
|
128
|
-
first: '<i class="
|
129
|
-
last: '<i class="
|
130
|
-
previous: '<i class="
|
131
|
-
next: '<i class="
|
128
|
+
first: '<i class="solitude st-show-left-line"></i>',
|
129
|
+
last: '<i class="solitude st-show-right-line"></i>',
|
130
|
+
previous: '<i class="solitude st-arrow-left-bold"></i>',
|
131
|
+
next: '<i class="solitude st-arrow-right-bold"></i>',
|
132
132
|
},
|
133
133
|
cssClasses: {
|
134
134
|
root: "pagination",
|
package/source/js/tw_cn.js
CHANGED
@@ -2,8 +2,8 @@ document.addEventListener('DOMContentLoaded', function () {
|
|
2
2
|
const {translate, lang} = GLOBAL_CONFIG;
|
3
3
|
const {defaultEncoding, translateDelay} = translate;
|
4
4
|
const snackbarData = lang.chs;
|
5
|
-
const msgToTraditionalChinese = '<i class="
|
6
|
-
const msgToSimplifiedChinese = '<i class="
|
5
|
+
const msgToTraditionalChinese = '<i class="solitude st-panben-line"></i><span>轉為繁體</span>';
|
6
|
+
const msgToSimplifiedChinese = '<i class="solitude st-jianben-line"></i><span>转为简体</span>';
|
7
7
|
const targetEncodingCookie = 'translate-chn-cht';
|
8
8
|
const isSnackbar = true;
|
9
9
|
let currentEncoding = defaultEncoding;
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* author: Leonus
|
3
|
+
* email: 990320751@qq.com
|
4
|
+
*/
|
5
|
+
function dark(){window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame;var t,i,e,s,n=.05,h=document.getElementById("universe"),a=!0,o="226,225,224",r=[];function d(){t=window.innerWidth,i=window.innerHeight,e=.216*t,h.setAttribute("width",t),h.setAttribute("height",i)}function c(){s.clearRect(0,0,t,i);for(var e=r.length,n=0;n<e;n++){var h=r[n];h.move(),h.fadeIn(),h.fadeOut(),h.draw()}}function f(){this.reset=function(){this.giant=u(3),this.comet=!this.giant&&!a&&u(10),this.x=m(0,t-10),this.y=m(0,i),this.r=m(1.1,2.6),this.dx=m(n,6*n)+(this.comet+1-1)*n*m(50,120)+.1,this.dy=-m(n,6*n)-(this.comet+1-1)*n*m(50,120),this.fadingOut=null,this.fadingIn=!0,this.opacity=0,this.opacityTresh=m(.2,1-.4*(this.comet+1-1)),this.do=m(5e-4,.002)+.001*(this.comet+1-1)},this.fadeIn=function(){this.fadingIn&&(this.fadingIn=!(this.opacity>this.opacityTresh),this.opacity+=this.do)},this.fadeOut=function(){this.fadingOut&&(this.fadingOut=!(this.opacity<0),this.opacity-=this.do/2,(this.x>t||this.y<0)&&(this.fadingOut=!1,this.reset()))},this.draw=function(){if(s.beginPath(),this.giant)s.fillStyle="rgba(180,184,240,"+this.opacity+")",s.arc(this.x,this.y,2,0,2*Math.PI,!1);else if(this.comet){s.fillStyle="rgba("+o+","+this.opacity+")",s.arc(this.x,this.y,1.5,0,2*Math.PI,!1);for(var t=0;t<30;t++)s.fillStyle="rgba("+o+","+(this.opacity-this.opacity/20*t)+")",s.rect(this.x-this.dx/4*t,this.y-this.dy/4*t-2,2,2),s.fill()}else s.fillStyle="rgba(226,225,142,"+this.opacity+")",s.rect(this.x,this.y,this.r,this.r);s.closePath(),s.fill()},this.move=function(){this.x+=this.dx,this.y+=this.dy,!1===this.fadingOut&&this.reset(),(this.x>t-t/4||this.y<0)&&(this.fadingOut=!0)},setTimeout((function(){a=!1}),50)}function u(t){return Math.floor(1e3*Math.random())+1<10*t}function m(t,i){return Math.random()*(i-t)+t}d(),window.addEventListener("resize",d,!1),function(){s=h.getContext("2d");for(var t=0;t<e;t++)r[t]=new f,r[t].reset();c()}(),function t(){"dark"==document.getElementsByTagName("html")[0].getAttribute("data-theme")&&c(),window.requestAnimationFrame(t)}()}
|
package/source/js/utils.js
CHANGED
@@ -70,7 +70,7 @@ const utils = {
|
|
70
70
|
snackbarShow: (text, showAction, duration) => {
|
71
71
|
const sa = (typeof showAction !== 'undefined') ? showAction : false
|
72
72
|
const dur = (typeof duration !== 'undefined') ? duration : 5000
|
73
|
-
document.styleSheets[0].addRule(':root', '--
|
73
|
+
document.styleSheets[0].addRule(':root', '--st-snackbar-time:' + dur + 'ms!important')
|
74
74
|
Snackbar.show({
|
75
75
|
text: text, showAction: sa, duration: dur, pos: 'top-center'
|
76
76
|
})
|
@@ -185,7 +185,7 @@ const utils = {
|
|
185
185
|
const lightbox = GLOBAL_CONFIG.lightbox
|
186
186
|
|
187
187
|
if (lightbox === 'mediumZoom' && mediumZoom) {
|
188
|
-
mediumZoom(selector, {background: "var(--
|
188
|
+
mediumZoom(selector, {background: "var(--st-card-bg)"});
|
189
189
|
}
|
190
190
|
|
191
191
|
if (lightbox === 'fancybox') {
|
@@ -0,0 +1 @@
|
|
1
|
+
function waterfall(a){function b(a,b){var c=window.getComputedStyle(b);return parseFloat(c["margin"+a])||0}function c(a){return a+"px"}function d(a){return parseFloat(a.style.top)}function e(a){return parseFloat(a.style.left)}function f(a){return a.clientWidth}function g(a){return a.clientHeight}function h(a){return d(a)+g(a)+b("Bottom",a)}function i(a){return e(a)+f(a)+b("Right",a)}function j(a){a=a.sort(function(a,b){return h(a)===h(b)?e(b)-e(a):h(b)-h(a)})}function k(b){f(a)!=t&&(b.target.removeEventListener(b.type,arguments.callee),waterfall(a))}"string"==typeof a&&(a=document.querySelector(a));var l=[].map.call(a.children,function(a){return a.style.position="absolute",a});a.style.position="relative";var m=[];l.length&&(l[0].style.top="0px",l[0].style.left=c(b("Left",l[0])),m.push(l[0]));for(var n=1;n<l.length;n++){var o=l[n-1],p=l[n],q=i(o)+f(p)<=f(a);if(!q)break;p.style.top=o.style.top,p.style.left=c(i(o)+b("Left",p)),m.push(p)}for(;n<l.length;n++){j(m);var p=l[n],r=m.pop();p.style.top=c(h(r)+b("Top",p)),p.style.left=c(e(r)),m.push(p)}j(m);var s=m[0];a.style.height=c(h(s)+b("Bottom",s));var t=f(a);window.addEventListener?window.addEventListener("resize",k):document.body.onresize=k}
|