hexo-theme-solitude 1.5.11 → 1.6.1
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/logo.svg +44 -10
- package/README.md +22 -2
- package/README_zh-cn.md +22 -2
- package/README_zh-tw.md +22 -2
- package/_config.yml +107 -107
- package/languages/en.yml +45 -63
- package/languages/zh-CN.yml +32 -55
- package/languages/zh-TW.yml +32 -55
- package/layout/404.pug +1 -1
- package/layout/includes/console.pug +5 -5
- package/layout/includes/footer.pug +7 -7
- package/layout/includes/head/config.pug +15 -9
- package/layout/includes/head/opengraph.pug +2 -2
- package/layout/includes/head/pwa.pug +6 -6
- package/layout/includes/head.pug +1 -1
- package/layout/includes/inject/body.pug +0 -4
- package/layout/includes/inject/head.pug +1 -2
- package/layout/includes/keyboard.pug +1 -1
- package/layout/includes/loading.pug +1 -1
- package/layout/includes/nav.pug +1 -1
- package/layout/includes/sidebar.pug +19 -3
- package/layout/includes/widgets/home/banner.pug +1 -1
- package/layout/includes/widgets/home/categoryBar.pug +2 -2
- package/layout/includes/widgets/home/categoryGroup.pug +0 -1
- package/layout/includes/widgets/home/postList.pug +74 -29
- package/layout/includes/widgets/home/topGroup.pug +2 -2
- package/layout/includes/widgets/nav/group.pug +2 -2
- package/layout/includes/widgets/nav/right.pug +1 -1
- package/layout/includes/widgets/page/about/award.pug +8 -9
- package/layout/includes/widgets/page/about/hobbies.pug +1 -1
- package/layout/includes/widgets/page/about/other.pug +1 -1
- package/layout/includes/widgets/page/banner.pug +1 -1
- package/layout/includes/widgets/page/links/banner.pug +5 -4
- package/layout/includes/widgets/page/moments/angle.pug +1 -1
- package/layout/includes/widgets/post/award.pug +10 -15
- package/layout/includes/widgets/post/copyright.pug +2 -2
- package/layout/includes/widgets/post/postMeta.pug +10 -10
- package/layout/includes/widgets/randomlink.pug +3 -2
- package/layout/includes/widgets/third-party/comments/twikoo.pug +1 -0
- package/layout/includes/widgets/third-party/comments/waline.pug +1 -0
- package/layout/page.pug +1 -1
- package/package.json +1 -1
- package/plugins.yml +0 -4
- package/scripts/event/cdn.js +6 -11
- package/scripts/event/merge_config.js +19 -3
- package/scripts/event/welcome.js +2 -2
- package/scripts/filter/checkThemeConfig.js +2 -2
- package/scripts/filter/default.js +4 -2
- package/scripts/filter/lazyload.js +18 -5
- package/scripts/filter/randomPosts.js +1 -1
- package/scripts/helper/stylus.js +8 -14
- package/source/css/{_widgets/_comment → _comments}/index.styl +14 -1
- package/source/css/{_widgets/_comment → _comments}/twikoo.styl +3 -0
- package/source/css/_global/index.styl +362 -1
- package/source/css/_highlight/prismjs/line-number.styl +1 -1
- package/source/css/{_widgets/_mixins → _layout}/article-sort.styl +1 -1
- package/source/css/_layout/aside.styl +751 -0
- package/source/css/_layout/capsule.styl +213 -0
- package/source/css/{_widgets/_extra → _layout}/console.styl +7 -6
- package/source/css/{_widgets/_mixins → _layout}/footer.styl +1 -0
- package/source/css/_layout/fullpage.styl +47 -0
- package/source/css/_layout/header.styl +2 -0
- package/source/css/_layout/keyboard.styl +60 -0
- package/source/css/_layout/pace.styl +40 -0
- package/source/css/_layout/rightmenu.styl +79 -0
- package/source/css/{_widgets/_mixins → _layout}/sidebar.styl +30 -20
- package/source/css/_layout/universe.styl +18 -0
- package/source/css/_page/_home/home-top.styl +2 -4
- package/source/css/_page/_home/recent-post.styl +407 -170
- package/source/css/_page/douban.styl +111 -109
- package/source/css/_page/links.styl +5 -5
- package/source/css/_page/share.styl +1 -17
- package/source/css/{_widgets/_post → _post}/content.styl +13 -3
- package/source/css/{_widgets/_post → _post}/tools.styl +3 -9
- package/source/css/index.styl +20 -5
- package/source/css/third_party/snackbar.min.css +1 -0
- package/source/css/{_global/var.styl → var.styl} +7 -1
- package/source/img/avatar.png +0 -0
- package/source/img/default.png +0 -0
- package/source/img/flower.gif +0 -0
- package/source/img/pwa/favicon.ico +0 -0
- package/source/img/pwa/favicon_128.ico +0 -0
- package/source/img/pwa/favicon_16.ico +0 -0
- package/source/img/pwa/favicon_256.ico +0 -0
- package/source/img/pwa/favicon_32.ico +0 -0
- package/source/js/{comment/twikoo_commentBarrage.js → commentBarrage/twikoo.js} +0 -6
- package/source/js/{comment/waline_commentBarrage.js → commentBarrage/waline.js} +0 -2
- package/source/js/main.js +73 -71
- package/source/js/utils.js +1 -1
- package/layout/includes/recent-posts.pug +0 -9
- package/layout/includes/widgets/rightside/index.pug +0 -87
- package/source/css/_layout/basic.styl +0 -308
- package/source/css/_layout/index.styl +0 -125
- package/source/css/_widgets/_aside/allinfo.styl +0 -168
- package/source/css/_widgets/_aside/flip.styl +0 -67
- package/source/css/_widgets/_aside/index.styl +0 -90
- package/source/css/_widgets/_aside/info.styl +0 -263
- package/source/css/_widgets/_aside/newPost.styl +0 -61
- package/source/css/_widgets/_aside/toc.styl +0 -108
- package/source/css/_widgets/_aside/welcome.styl +0 -14
- package/source/css/_widgets/_extra/fullpage.styl +0 -46
- package/source/css/_widgets/_extra/music.styl +0 -218
- package/source/css/_widgets/_extra/pace.styl +0 -39
- package/source/css/_widgets/_extra/rightmenu.styl +0 -78
- package/source/css/_widgets/_mixins/keyboard.styl +0 -59
- package/source/css/_widgets/index.styl +0 -56
- package/source/img/logo.png +0 -0
- package/source/js/rightside.js +0 -221
- /package/source/css/{_widgets/_comment → _comments}/waline.styl +0 -0
- /package/source/css/{_widgets/_mixins → _layout}/other.styl +0 -0
- /package/source/css/{_widgets/_post → _post}/commentBarrage.styl +0 -0
- /package/source/css/{_widgets/_post → _post}/copyright.styl +0 -0
- /package/source/css/{_widgets/_post → _post}/index.styl +0 -0
- /package/source/css/{_widgets/_post → _post}/meta.styl +0 -0
- /package/source/css/{_widgets/_post → _post}/pagination.styl +0 -0
- /package/source/css/{_widgets/_post → _post}/postAI.styl +0 -0
- /package/source/css/{_widgets/_post → _post}/relatedPost.styl +0 -0
- /package/source/css/{_widgets/_search → _search}/algolia-search.styl +0 -0
- /package/source/css/{_widgets/_search → _search}/local-search.styl +0 -0
- /package/source/css/{_widgets/_tags → _tags}/button.styl +0 -0
- /package/source/css/{_widgets/_tags → _tags}/checkbox.styl +0 -0
- /package/source/css/{_widgets/_tags → _tags}/fold.styl +0 -0
- /package/source/css/{_widgets/_tags → _tags}/gallery.styl +0 -0
- /package/source/css/{_widgets/_tags → _tags}/index.styl +0 -0
- /package/source/css/{_widgets/_tags → _tags}/label.styl +0 -0
- /package/source/css/{_widgets/_tags → _tags}/link.styl +0 -0
- /package/source/css/{_widgets/_tags → _tags}/media.styl +0 -0
- /package/source/css/{_widgets/_tags → _tags}/mermaid.styl +0 -0
- /package/source/css/{_widgets/_tags → _tags}/note.styl +0 -0
- /package/source/css/{_widgets/_tags → _tags}/span.styl +0 -0
- /package/source/css/{_widgets/_tags → _tags}/tabs.styl +0 -0
- /package/source/css/{_widgets/_tags → _tags}/timeline.styl +0 -0
- /package/source/js/{lately.min.js → third_party/lately.min.js} +0 -0
- /package/source/js/{sco-ai.min.js → third_party/sco-ai.min.js} +0 -0
- /package/source/js/{universe.min.js → third_party/universe.min.js} +0 -0
- /package/source/js/{waterfall.min.js → third_party/waterfall.min.js} +0 -0
package/source/js/rightside.js
DELETED
@@ -1,221 +0,0 @@
|
|
1
|
-
let rm = {};
|
2
|
-
const addEvent = (element, event, callback) => element.addEventListener(event, callback);
|
3
|
-
rm.stopdragimg = Array.from(document.getElementsByTagName('img'));
|
4
|
-
rm.stopdragimg.forEach(img => addEvent(img, 'dragstart', () => false));
|
5
|
-
rm.showRightMenu = function (e, n = 0, t = 0) {
|
6
|
-
let o = document.getElementById('rightMenu');
|
7
|
-
o.style.top = n + 'px';
|
8
|
-
o.style.left = t + 'px';
|
9
|
-
o.style.display = e ? 'block' : 'none';
|
10
|
-
e ? stopMaskScroll() : document.getElementById('rightmenu-mask').style.display = 'none';
|
11
|
-
};
|
12
|
-
rm.reloadrmSize = function () {
|
13
|
-
let menu = document.querySelector("#rightMenu");
|
14
|
-
menu.style.display = "block";
|
15
|
-
rmWidth = menu.offsetWidth;
|
16
|
-
rmHeight = menu.offsetHeight;
|
17
|
-
menu.style.display = 'none';
|
18
|
-
}
|
19
|
-
async function imageToBlob(e) {
|
20
|
-
const n = new Image();
|
21
|
-
const t = document.createElement("canvas");
|
22
|
-
const o = t.getContext("2d");
|
23
|
-
n.crossOrigin = "";
|
24
|
-
n.src = e;
|
25
|
-
return new Promise((resolve => {
|
26
|
-
n.onload = function () {
|
27
|
-
t.width = this.naturalWidth;
|
28
|
-
t.height = this.naturalHeight;
|
29
|
-
o.drawImage(this, 0, 0);
|
30
|
-
t.toBlob((blob => resolve(blob)), "image/png", .75);
|
31
|
-
};
|
32
|
-
}));
|
33
|
-
}
|
34
|
-
async function copyImage(e) {
|
35
|
-
try {
|
36
|
-
const n = await imageToBlob(e);
|
37
|
-
const t = new ClipboardItem({
|
38
|
-
"image/png": n
|
39
|
-
});
|
40
|
-
await navigator.clipboard.write([t]);
|
41
|
-
} catch (error) {
|
42
|
-
console.error('Failed to copy image: ', error);
|
43
|
-
}
|
44
|
-
}
|
45
|
-
function stopMaskScroll() {
|
46
|
-
addEvent(document.getElementById("rightmenu-mask"), "mousewheel", rm.hideRightMenu);
|
47
|
-
addEvent(document.getElementById("rightMenu"), "mousewheel", rm.hideRightMenu);
|
48
|
-
}
|
49
|
-
rm.downloadimging = false;
|
50
|
-
rm.writeClipImg = async function (e) {
|
51
|
-
if (!rm.downloadimging) {
|
52
|
-
rm.downloadimging = true;
|
53
|
-
utils.snackbarShow("正在下载中,请稍后", false, 10000);
|
54
|
-
rm.hideRightMenu();
|
55
|
-
setTimeout(async function () {
|
56
|
-
await copyImage(e);
|
57
|
-
utils.snackbarShow("复制成功!图片已添加盲水印,请遵守版权协议");
|
58
|
-
rm.downloadimging = false;
|
59
|
-
}, 1000);
|
60
|
-
}
|
61
|
-
};
|
62
|
-
rm.copyUrl = function (e) {
|
63
|
-
const t = document.createElement('input');
|
64
|
-
t.value = e;
|
65
|
-
document.body.appendChild(t);
|
66
|
-
t.select();
|
67
|
-
document.execCommand('copy');
|
68
|
-
document.body.removeChild(t);
|
69
|
-
};
|
70
|
-
rm.insertAtCaret = function (e, n) {
|
71
|
-
const t = e.selectionStart
|
72
|
-
, o = e.selectionEnd;
|
73
|
-
if (document.selection)
|
74
|
-
e.focus(),
|
75
|
-
document.selection.createRange().text = n,
|
76
|
-
e.focus();
|
77
|
-
else if (t || "0" === t) {
|
78
|
-
let i = e.scrollTop;
|
79
|
-
e.value = e.value.substring(0, t) + n + e.value.substring(o, e.value.length),
|
80
|
-
e.focus(),
|
81
|
-
e.selectionStart = t + n.length,
|
82
|
-
e.selectionEnd = t + n.length,
|
83
|
-
e.scrollTop = i
|
84
|
-
} else
|
85
|
-
e.value += n,
|
86
|
-
e.focus()
|
87
|
-
}
|
88
|
-
rm.rightMenuCommentText = function (e) {
|
89
|
-
rm.hideRightMenu();
|
90
|
-
let n = document.getElementsByClassName("el-textarea__inner")[0];
|
91
|
-
let t = document.createEvent("HTMLEvents");
|
92
|
-
t.initEvent("input", !0, !0);
|
93
|
-
let o = replaceAll(e, "\n", "\n> ");
|
94
|
-
n.value = "> " + o + "\n\n",
|
95
|
-
n.dispatchEvent(t);
|
96
|
-
const i = document.querySelector("#post-comment").offsetTop;
|
97
|
-
window.scrollTo(0, i - 80),
|
98
|
-
n.focus(),
|
99
|
-
n.setSelectionRange(-1, -1),
|
100
|
-
document.getElementById("comment-tips") && document.getElementById("comment-tips").classList.add("show")
|
101
|
-
}
|
102
|
-
rm.hideRightMenu = () => rm.showRightMenu(false) || (document.getElementById('rightmenu-mask').style.display = 'none')
|
103
|
-
document.querySelector("#rightMenu").style.display = "block"
|
104
|
-
rmWidth = document.querySelector("#rightMenu").offsetWidth;
|
105
|
-
rmHeight = document.querySelector("#rightMenu").offsetHeight;
|
106
|
-
document.querySelector("#rightMenu").style.display = 'none'
|
107
|
-
let domhref = "", domImgSrc = "", globalEvent = null;
|
108
|
-
rm.switchDarkMode = () => sco.switchDarkMode() || rm.hideRightMenu()
|
109
|
-
rm.rightmenuCopyText = (e) => navigator.clipboard && navigator.clipboard.writeText(e) || utils.snackbarShow("复制文本成功", !1, 2e3) || rm.hideRightMenu()
|
110
|
-
rm.copyPageUrl = () => rm.copyUrl(window.location.href) || utils.snackbarShow("复制本页链接地址成功", !1, 2e3) || rm.hideRightMenu()
|
111
|
-
rm.sharePage = () => rm.copyUrl(url) || utils.snackbarShow("复制本页链接地址成功", !1, 2e3) || rm.hideRightMenu()
|
112
|
-
var selectTextNow = "";
|
113
|
-
let selceText = () => selectTextNow = document.selection ? document.selection.createRange().text : window.getSelection() + "" || ""
|
114
|
-
let replaceAll = (e, n, t) => e.split(n).join(t);
|
115
|
-
document.onmouseup = document.ondbclick = selceText
|
116
|
-
rm.readClipboard = () => navigator.clipboard && navigator.clipboard.readText().then((e => rm.insertAtCaret(globalEvent.target, e)))
|
117
|
-
rm.pasteText = () => rm.readClipboard() || rm.hideRightMenu()
|
118
|
-
rm.copyLink = () => rm.rightmenuCopyText(domhref) || utils.snackbarShow("已复制链接地址")
|
119
|
-
window.oncontextmenu = function (e) {
|
120
|
-
if (document.body.clientWidth <= 768) return;
|
121
|
-
let n = e.clientX + 10;
|
122
|
-
let t = e.clientY;
|
123
|
-
let menuItems = {
|
124
|
-
other: document.getElementsByClassName('rightMenuOther'),
|
125
|
-
plugin: document.getElementsByClassName('rightMenuPlugin'),
|
126
|
-
copytext: document.getElementById('menu-copytext'),
|
127
|
-
pastetext: document.getElementById('menu-pastetext'),
|
128
|
-
commenttext: document.getElementById('menu-commenttext'),
|
129
|
-
newwindow: document.getElementById('menu-newwindow'),
|
130
|
-
copylink: document.getElementById('menu-copylink'),
|
131
|
-
copyimg: document.getElementById('menu-copyimg'),
|
132
|
-
downloadimg: document.getElementById('menu-downloadimg'),
|
133
|
-
search: document.getElementById('menu-search'),
|
134
|
-
music: {
|
135
|
-
toggle: document.getElementById('menu-music-toggle'),
|
136
|
-
back: document.getElementById('menu-music-back'),
|
137
|
-
forward: document.getElementById('menu-music-forward'),
|
138
|
-
playlist: document.getElementById('menu-music-playlist'),
|
139
|
-
copyMusicName: document.getElementById('menu-music-copyMusicName'),
|
140
|
-
}
|
141
|
-
};
|
142
|
-
let y = e.target.href;
|
143
|
-
let M = e.target.currentSrc;
|
144
|
-
let b = false;
|
145
|
-
Array.from(menuItems.other).forEach(item => item.style.display = 'block');
|
146
|
-
globalEvent = e;
|
147
|
-
if (selectTextNow && window.getSelection()) {
|
148
|
-
b = true;
|
149
|
-
menuItems.copytext.style.display = 'block';
|
150
|
-
menuItems.commenttext.style.display = 'block';
|
151
|
-
menuItems.search.style.display = 'block';
|
152
|
-
} else {
|
153
|
-
menuItems.copytext.style.display = 'none';
|
154
|
-
menuItems.commenttext.style.display = 'none';
|
155
|
-
menuItems.search.style.display = 'none';
|
156
|
-
}
|
157
|
-
if (y) {
|
158
|
-
b = true;
|
159
|
-
menuItems.newwindow.style.display = 'block';
|
160
|
-
menuItems.copylink.style.display = 'block';
|
161
|
-
domhref = y;
|
162
|
-
} else {
|
163
|
-
menuItems.newwindow.style.display = 'none';
|
164
|
-
menuItems.copylink.style.display = 'none';
|
165
|
-
}
|
166
|
-
if (M) {
|
167
|
-
b = true;
|
168
|
-
menuItems.copyimg.style.display = 'block';
|
169
|
-
menuItems.downloadimg.style.display = 'block';
|
170
|
-
domImgSrc = M;
|
171
|
-
} else {
|
172
|
-
menuItems.copyimg.style.display = 'none';
|
173
|
-
menuItems.downloadimg.style.display = 'none';
|
174
|
-
}
|
175
|
-
let tagName = e.target.tagName.toLowerCase();
|
176
|
-
if (tagName === 'input' || tagName === 'textarea') {
|
177
|
-
b = true;
|
178
|
-
menuItems.pastetext.style.display = 'block';
|
179
|
-
} else {
|
180
|
-
menuItems.pastetext.style.display = 'none';
|
181
|
-
}
|
182
|
-
if (e.target.nodeName === 'METING-JS') {
|
183
|
-
b = true;
|
184
|
-
Object.values(menuItems.music).forEach(item => item.style.display = 'block');
|
185
|
-
} else {
|
186
|
-
Object.values(menuItems.music).forEach(item => item.style.display = 'none');
|
187
|
-
}
|
188
|
-
Array.from(b ? menuItems.other : menuItems.plugin).forEach(item => item.style.display = 'none');
|
189
|
-
Array.from(b ? menuItems.plugin : menuItems.other).forEach(item => item.style.display = 'block');
|
190
|
-
rm.reloadrmSize();
|
191
|
-
n + rmWidth > window.innerWidth && (n -= rmWidth + 10);
|
192
|
-
t + rmHeight > window.innerHeight && (t -= t + rmHeight - window.innerHeight)
|
193
|
-
rm.showRightMenu(true, t, n);
|
194
|
-
document.getElementById('rightmenu-mask').style.display = 'flex';
|
195
|
-
return false;
|
196
|
-
};
|
197
|
-
function addRightMenuClickEvent() {
|
198
|
-
const addEvent = (id, event, callback) => document.getElementById(id)?.addEventListener(event, callback)
|
199
|
-
addEvent('menu-backward', 'click', () => window.history.back() || rm.hideRightMenu())
|
200
|
-
addEvent('menu-forward', 'click', () => window.history.forward() || rm.hideRightMenu())
|
201
|
-
addEvent('menu-refresh', 'click', () => window.location.reload());
|
202
|
-
addEvent('menu-top', 'click', () => utils.scrollToDest(0, 500) || rm.hideRightMenu())
|
203
|
-
Array.from(document.getElementsByClassName('menu-link')).forEach(element => element.addEventListener('click', rm.hideRightMenu))
|
204
|
-
addEvent('menu-darkmode', 'click', rm.switchDarkMode);
|
205
|
-
addEvent('menu-randomPost', 'click', () => toRandomPost() || rm.hideRightMenu());
|
206
|
-
GLOBAL_CONFIG.comment.commentBarrage && addEvent('menu-commentBarrage', 'click', sco.switchCommentBarrage);
|
207
|
-
addEvent('rightmenu-mask', 'click', rm.hideRightMenu);
|
208
|
-
addEvent('rightmenu-mask', 'contextmenu', () => rm.hideRightMenu() || false)
|
209
|
-
addEvent('menu-copy', 'click', rm.copyPageUrl);
|
210
|
-
addEvent('menu-pastetext', 'click', rm.pasteText);
|
211
|
-
addEvent('menu-copytext', 'click', () => rm.rightmenuCopyText(selectTextNow) || utils.snackbarShow("复制成功,复制和转载请标注本文地址") || rm.hideRightMenu())
|
212
|
-
GLOBAL_CONFIG.comment.enable && addEvent('menu-commenttext', 'click', () => rm.rightMenuCommentText(selectTextNow))
|
213
|
-
addEvent('menu-newwindow', 'click', () => window.open(domhref) || rm.hideRightMenu());
|
214
|
-
addEvent('menu-copylink', 'click', rm.copyLink);
|
215
|
-
addEvent('menu-downloadimg', 'click', () => sco.downloadImage(domImgSrc));
|
216
|
-
addEvent('menu-copyimg', 'click', () => rm.writeClipImg(domImgSrc));
|
217
|
-
addEvent('menu-music-toggle', 'click', sco.musicToggle);
|
218
|
-
addEvent('menu-music-back', 'click', sco.musicSkipBack);
|
219
|
-
addEvent('menu-music-forward', 'click', sco.musicSkipForward);
|
220
|
-
addEvent('menu-music-copyMusicName', 'click', () => rm.rightmenuCopyText(sco.musicGetName()) || utils.snackbarShow("复制歌曲名称成功", false, 3000))
|
221
|
-
}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|