hexo-theme-solitude 1.4.1 → 1.4.3
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/CONTRIBUTING.md +1 -1
- package/README.md +1 -1
- package/README_EN.md +1 -1
- package/_config.yml +68 -3
- package/languages/en-US.yml +32 -2
- package/languages/zh-CN.yml +33 -2
- package/languages/zh-TW.yml +147 -0
- package/layout/includes/console.pug +4 -0
- package/layout/includes/footer.pug +1 -1
- package/layout/includes/head/config.pug +16 -3
- package/layout/includes/inject/body.pug +18 -9
- package/layout/includes/keyboard.pug +65 -0
- package/layout/includes/layout.pug +8 -0
- package/layout/includes/page/album.pug +39 -0
- package/layout/includes/page/gallery.pug +11 -0
- package/layout/includes/page/links.pug +2 -0
- package/layout/includes/page/moment.pug +28 -0
- package/layout/includes/page/music.pug +1 -4
- package/layout/includes/page/says.pug +1 -3
- package/layout/includes/widgets/home/bb/json.pug +2 -1
- package/layout/includes/widgets/home/bb/local.pug +2 -3
- package/layout/includes/widgets/home/bb/memos.pug +2 -1
- package/layout/includes/widgets/page/about/authorinfo.pug +1 -1
- package/layout/includes/widgets/page/about/hobbies.pug +2 -2
- package/layout/includes/widgets/page/about/motto.pug +17 -15
- package/layout/includes/widgets/page/about/skillsinfo.pug +38 -36
- package/layout/includes/widgets/page/about/tenyear.pug +1 -1
- package/layout/includes/widgets/page/moments/angle.pug +19 -0
- package/layout/includes/widgets/page/says/json.pug +3 -3
- package/layout/includes/widgets/page/says/local.pug +2 -2
- package/layout/includes/widgets/rightside/index.pug +33 -22
- package/layout/includes/widgets/third-party/search/algolia-search.pug +20 -15
- package/layout/includes/widgets/third-party/search/local-search.pug +3 -0
- package/layout/page.pug +6 -0
- package/package.json +1 -1
- package/plugins.yml +12 -4
- package/scripts/event/cdn.js +5 -0
- package/scripts/event/init.js +18 -19
- package/scripts/event/page.js +0 -5
- package/scripts/filter/checkThemeConfig.js +23 -7
- package/scripts/helper/related_post.js +0 -6
- package/scripts/helper/stylus.js +8 -3
- package/source/css/_global/index.styl +1 -5
- package/source/css/_layout/basic.styl +0 -1
- package/source/css/_layout/index.styl +54 -34
- package/source/css/_mode/index.styl +6 -1
- package/source/css/_page/about/index.styl +26 -16
- package/source/css/_page/gallery/index.styl +99 -0
- package/source/css/_page/index.styl +5 -1
- package/source/css/_page/moment.styl +4 -2
- package/source/css/_widgets/_comment/twikoo.styl +21 -18
- package/source/css/_widgets/_mixins/keyboard.styl +59 -0
- package/source/css/_widgets/_search/algolia-search.styl +37 -16
- package/source/css/_widgets/_search/local-search.styl +18 -2
- package/source/css/_widgets/_tags/link.styl +1 -1
- package/source/css/_widgets/index.styl +4 -0
- package/source/css/index.styl +0 -1
- package/source/js/covercolor/api.js +10 -6
- package/source/js/covercolor/local.js +88 -13
- package/source/js/main.js +15 -1
- package/source/js/rightside.js +159 -342
- package/source/js/search/algolia.js +4 -2
- package/source/js/search/local.js +3 -1
- package/source/js/tw_cn.js +76 -0
- package/source/js/utils.js +1 -1
- package/layout/includes/page/not_configured.pug +0 -18
- package/scripts/helper/cdn.js +0 -12
- package/source/img/avatar.png +0 -0
package/source/js/rightside.js
CHANGED
@@ -1,64 +1,36 @@
|
|
1
1
|
let rm = {};
|
2
|
-
|
2
|
+
const addEvent = (element, event, callback) => element.addEventListener(event, callback);
|
3
3
|
rm.stopdragimg = Array.from(document.getElementsByTagName('img'));
|
4
|
-
rm.stopdragimg.forEach(
|
5
|
-
img.addEventListener('dragstart', function () {
|
6
|
-
return false;
|
7
|
-
});
|
8
|
-
});
|
9
|
-
|
4
|
+
rm.stopdragimg.forEach(img => addEvent(img, 'dragstart', () => false));
|
10
5
|
rm.showRightMenu = function (e, n = 0, t = 0) {
|
11
6
|
let o = document.getElementById('rightMenu');
|
12
7
|
o.style.top = n + 'px';
|
13
8
|
o.style.left = t + 'px';
|
14
|
-
|
15
|
-
|
16
|
-
o.style.display = 'block';
|
17
|
-
stopMaskScroll();
|
18
|
-
} else {
|
19
|
-
o.style.display = 'none';
|
20
|
-
}
|
21
|
-
};
|
22
|
-
|
23
|
-
rm.hideRightMenu = function () {
|
24
|
-
rm.showRightMenu(false);
|
25
|
-
document.getElementById('rightmenu-mask').style.display = 'none';
|
9
|
+
o.style.display = e ? 'block' : 'none';
|
10
|
+
e ? stopMaskScroll() : document.getElementById('rightmenu-mask').style.display = 'none';
|
26
11
|
};
|
27
|
-
|
28
|
-
document.querySelector("#rightMenu").style.display = "block"
|
29
|
-
rmWidth = document.querySelector("#rightMenu").offsetWidth;
|
30
|
-
rmHeight = document.querySelector("#rightMenu").offsetHeight;
|
31
|
-
document.querySelector("#rightMenu").style.display = 'none'
|
32
|
-
|
33
12
|
rm.reloadrmSize = function () {
|
34
|
-
document.querySelector("#rightMenu")
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
const
|
44
|
-
|
45
|
-
|
46
|
-
return
|
47
|
-
n.
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
e(n)
|
55
|
-
}
|
56
|
-
), "image/png", .75)
|
57
|
-
}
|
58
|
-
}
|
59
|
-
))
|
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
|
+
}));
|
60
33
|
}
|
61
|
-
|
62
34
|
async function copyImage(e) {
|
63
35
|
try {
|
64
36
|
const n = await imageToBlob(e);
|
@@ -70,286 +42,31 @@ async function copyImage(e) {
|
|
70
42
|
console.error('Failed to copy image: ', error);
|
71
43
|
}
|
72
44
|
}
|
73
|
-
|
74
45
|
function stopMaskScroll() {
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
}
|
85
|
-
), !1)
|
86
|
-
}
|
87
|
-
}
|
88
|
-
|
89
|
-
window.oncontextmenu = function (e) {
|
90
|
-
if (document.body.clientWidth > 768) {
|
91
|
-
let n = e.clientX + 10;
|
92
|
-
let t = e.clientY;
|
93
|
-
let o = document.getElementsByClassName('rightMenuOther');
|
94
|
-
let i = document.getElementsByClassName('rightMenuPlugin');
|
95
|
-
let c = document.getElementById('menu-copytext');
|
96
|
-
let r = document.getElementById('menu-pastetext');
|
97
|
-
let m = document.getElementById('menu-commenttext');
|
98
|
-
let a = document.getElementById('menu-newwindow');
|
99
|
-
let u = document.getElementById('menu-copylink');
|
100
|
-
let l = document.getElementById('menu-copyimg');
|
101
|
-
let h = document.getElementById('menu-downloadimg');
|
102
|
-
let d = document.getElementById('menu-search');
|
103
|
-
let s = document.getElementById('menu-searchBaidu');
|
104
|
-
let g = document.getElementById('menu-music-toggle');
|
105
|
-
let w = document.getElementById('menu-music-back');
|
106
|
-
let f = document.getElementById('menu-music-forward');
|
107
|
-
let p = document.getElementById('menu-music-playlist');
|
108
|
-
let k = document.getElementById('menu-music-copyMusicName');
|
109
|
-
let y = e.target.href;
|
110
|
-
let M = e.target.currentSrc;
|
111
|
-
let b = false;
|
112
|
-
|
113
|
-
for (let j = 0; j < o.length; j++) {
|
114
|
-
o[j].style.display = 'block';
|
115
|
-
}
|
116
|
-
globalEvent = e;
|
117
|
-
|
118
|
-
if (selectTextNow && window.getSelection()) {
|
119
|
-
b = true;
|
120
|
-
c.style.display = 'block';
|
121
|
-
m.style.display = 'block';
|
122
|
-
d.style.display = 'block';
|
123
|
-
s.style.display = 'block';
|
124
|
-
} else {
|
125
|
-
c.style.display = 'none';
|
126
|
-
m.style.display = 'none';
|
127
|
-
s.style.display = 'none';
|
128
|
-
d.style.display = 'none';
|
129
|
-
}
|
130
|
-
|
131
|
-
if (y) {
|
132
|
-
b = true;
|
133
|
-
a.style.display = 'block';
|
134
|
-
u.style.display = 'block';
|
135
|
-
domhref = y;
|
136
|
-
} else {
|
137
|
-
a.style.display = 'none';
|
138
|
-
u.style.display = 'none';
|
139
|
-
}
|
140
|
-
|
141
|
-
if (M) {
|
142
|
-
b = true;
|
143
|
-
l.style.display = 'block';
|
144
|
-
h.style.display = 'block';
|
145
|
-
domImgSrc = M;
|
146
|
-
} else {
|
147
|
-
l.style.display = 'none';
|
148
|
-
h.style.display = 'none';
|
149
|
-
}
|
150
|
-
|
151
|
-
if (e.target.tagName.toLowerCase() === 'input' || e.target.tagName.toLowerCase() === 'textarea') {
|
152
|
-
b = true;
|
153
|
-
r.style.display = 'block';
|
154
|
-
} else {
|
155
|
-
r.style.display = 'none';
|
156
|
-
}
|
157
|
-
|
158
|
-
if (e.target.nodeName === 'METING-JS') {
|
159
|
-
b = true;
|
160
|
-
g.style.display = 'block';
|
161
|
-
w.style.display = 'block';
|
162
|
-
f.style.display = 'block';
|
163
|
-
p.style.display = 'block';
|
164
|
-
k.style.display = 'block';
|
165
|
-
} else {
|
166
|
-
g.style.display = 'none';
|
167
|
-
w.style.display = 'none';
|
168
|
-
f.style.display = 'none';
|
169
|
-
p.style.display = 'none';
|
170
|
-
k.style.display = 'none';
|
171
|
-
}
|
172
|
-
|
173
|
-
if (b) {
|
174
|
-
for (let j = 0; j < o.length; j++) {
|
175
|
-
o[j].style.display = 'none';
|
176
|
-
}
|
177
|
-
for (let j = 0; j < i.length; j++) {
|
178
|
-
i[j].style.display = 'block';
|
179
|
-
}
|
180
|
-
} else {
|
181
|
-
for (let j = 0; j < i.length; j++) {
|
182
|
-
i[j].style.display = 'none';
|
183
|
-
}
|
184
|
-
}
|
185
|
-
|
186
|
-
rm.reloadrmSize();
|
187
|
-
if (n + rmWidth > window.innerWidth) {
|
188
|
-
n -= rmWidth + 10;
|
189
|
-
}
|
190
|
-
|
191
|
-
if (t + rmHeight > window.innerHeight) {
|
192
|
-
t -= t + rmHeight - window.innerHeight;
|
193
|
-
}
|
194
|
-
rm.showRightMenu(true, t, n);
|
195
|
-
document.getElementById('rightmenu-mask').style.display = 'flex';
|
196
|
-
|
197
|
-
return false;
|
198
|
-
}
|
199
|
-
};
|
200
|
-
rm.downloadimging = !1
|
201
|
-
rm.writeClipImg = function (e) {
|
202
|
-
const n = "localhost" === window.location.hostname || "127.0.0.1" === window.location.hostname ? 0 : 1e4;
|
203
|
-
rm.hideRightMenu();
|
204
|
-
utils.snackbarShow("正在下载中,请稍后", !1, n);
|
205
|
-
if (0 == rm.downloadimging) {
|
206
|
-
rm.downloadimging = !0;
|
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();
|
207
55
|
setTimeout(async function () {
|
208
56
|
await copyImage(e);
|
209
57
|
utils.snackbarShow("复制成功!图片已添加盲水印,请遵守版权协议");
|
210
|
-
rm.downloadimging =
|
58
|
+
rm.downloadimging = false;
|
211
59
|
}, 1000);
|
212
60
|
}
|
213
|
-
}
|
214
|
-
|
215
|
-
rm.switchDarkMode = function () {
|
216
|
-
sco.switchDarkMode()
|
217
|
-
rm.hideRightMenu()
|
218
|
-
}
|
219
|
-
|
61
|
+
};
|
220
62
|
rm.copyUrl = function (e) {
|
221
|
-
|
222
|
-
|
223
|
-
t.id = 'copyVal';
|
63
|
+
const t = document.createElement('input');
|
64
|
+
t.value = e;
|
224
65
|
document.body.appendChild(t);
|
225
|
-
t.value = n;
|
226
66
|
t.select();
|
227
|
-
t.setSelectionRange(0, t.value.length);
|
228
67
|
document.execCommand('copy');
|
229
68
|
document.body.removeChild(t);
|
230
|
-
}
|
231
|
-
|
232
|
-
rm.rightmenuCopyText = function (e) {
|
233
|
-
navigator.clipboard && navigator.clipboard.writeText(e),
|
234
|
-
utils.snackbarShow("复制文本成功", !1, 2e3),
|
235
|
-
rm.hideRightMenu()
|
236
|
-
}
|
237
|
-
|
238
|
-
rm.copyPageUrl = function () {
|
239
|
-
var e = window.location.href;
|
240
|
-
rm.copyUrl(e),
|
241
|
-
utils.snackbarShow("复制本页链接地址成功", !1, 2e3),
|
242
|
-
rm.hideRightMenu()
|
243
|
-
}
|
244
|
-
|
245
|
-
rm.sharePage = function () {
|
246
|
-
window;
|
247
|
-
rm.copyUrl(url),
|
248
|
-
utils.snackbarShow("复制本页链接地址成功", !1, 2e3),
|
249
|
-
rm.hideRightMenu()
|
250
|
-
}
|
251
|
-
|
252
|
-
var selectTextNow = "";
|
253
|
-
|
254
|
-
function selceText() {
|
255
|
-
var e;
|
256
|
-
e = document.selection ? document.selection.createRange().text : window.getSelection() + "",
|
257
|
-
selectTextNow = e || ""
|
258
|
-
}
|
259
|
-
|
260
|
-
function replaceAll(e, n, t) {
|
261
|
-
return e.split(n).join(t)
|
262
|
-
}
|
263
|
-
|
264
|
-
function addRightMenuClickEvent() {
|
265
|
-
document.getElementById('menu-backward').addEventListener('click', function () {
|
266
|
-
window.history.back();
|
267
|
-
rm.hideRightMenu();
|
268
|
-
});
|
269
|
-
|
270
|
-
document.getElementById('menu-forward').addEventListener('click', function () {
|
271
|
-
window.history.forward();
|
272
|
-
rm.hideRightMenu();
|
273
|
-
});
|
274
|
-
|
275
|
-
document.getElementById('menu-refresh').addEventListener('click', function () {
|
276
|
-
window.location.reload();
|
277
|
-
});
|
278
|
-
|
279
|
-
document.getElementById('menu-top').addEventListener('click', function () {
|
280
|
-
utils.scrollToDest(0, 500);
|
281
|
-
rm.hideRightMenu();
|
282
|
-
});
|
283
|
-
|
284
|
-
Array.from(document.getElementsByClassName('menu-link')).forEach(function (element) {
|
285
|
-
element.addEventListener('click', rm.hideRightMenu);
|
286
|
-
});
|
287
|
-
|
288
|
-
var menuDarkmode = document.getElementById('menu-darkmode');
|
289
|
-
menuDarkmode.onclick = null;
|
290
|
-
menuDarkmode.addEventListener('click', rm.switchDarkMode);
|
291
|
-
|
292
|
-
document.getElementById('menu-randomPost').addEventListener('click', function () {
|
293
|
-
toRandomPost();
|
294
|
-
});
|
295
|
-
|
296
|
-
if (GLOBAL_CONFIG.comment.commentBarrage) {
|
297
|
-
const menuCommentBarrage = document.getElementById('menu-commentBarrage');
|
298
|
-
menuCommentBarrage.onclick = null;
|
299
|
-
menuCommentBarrage.addEventListener('click', sco.switchCommentBarrage);
|
300
|
-
}
|
301
|
-
|
302
|
-
var rightmenuMask = document.getElementById('rightmenu-mask');
|
303
|
-
rightmenuMask.addEventListener('click', rm.hideRightMenu);
|
304
|
-
rightmenuMask.addEventListener('contextmenu', function () {
|
305
|
-
rm.hideRightMenu();
|
306
|
-
return false;
|
307
|
-
});
|
308
|
-
|
309
|
-
document.getElementById('menu-copy').addEventListener('click', rm.copyPageUrl);
|
310
|
-
document.getElementById('menu-pastetext').addEventListener('click', rm.pasteText);
|
311
|
-
|
312
|
-
document.getElementById('menu-copytext').addEventListener('click', function () {
|
313
|
-
rm.rightmenuCopyText(selectTextNow);
|
314
|
-
utils.snackbarShow("复制成功,复制和转载请标注本文地址");
|
315
|
-
});
|
316
|
-
|
317
|
-
document.getElementById('menu-commenttext').addEventListener('click', function () {
|
318
|
-
rm.rightMenuCommentText(selectTextNow);
|
319
|
-
});
|
320
|
-
|
321
|
-
document.getElementById('menu-newwindow').addEventListener('click', function () {
|
322
|
-
window.open(domhref);
|
323
|
-
rm.hideRightMenu();
|
324
|
-
});
|
325
|
-
|
326
|
-
document.getElementById('menu-copylink').addEventListener('click', rm.copyLink);
|
327
|
-
|
328
|
-
document.getElementById('menu-downloadimg').addEventListener('click', function () {
|
329
|
-
sco.downloadImage(domImgSrc);
|
330
|
-
});
|
331
|
-
|
332
|
-
document.getElementById('menu-copyimg').addEventListener('click', function () {
|
333
|
-
rm.writeClipImg(domImgSrc);
|
334
|
-
});
|
335
|
-
|
336
|
-
document.getElementById('menu-searchBaidu').addEventListener('click', rm.searchBaidu);
|
337
|
-
|
338
|
-
document.getElementById('menu-music-toggle').addEventListener('click', sco.musicToggle);
|
339
|
-
document.getElementById('menu-music-back').addEventListener('click', sco.musicSkipBack);
|
340
|
-
document.getElementById('menu-music-forward').addEventListener('click', sco.musicSkipForward);
|
341
|
-
|
342
|
-
document.getElementById('menu-music-copyMusicName').addEventListener('click', function () {
|
343
|
-
rm.rightmenuCopyText(sco.musicGetName());
|
344
|
-
utils.snackbarShow("复制歌曲名称成功", false, 3000);
|
345
|
-
});
|
346
|
-
}
|
347
|
-
|
348
|
-
document.onmouseup = document.ondbclick = selceText
|
349
|
-
rm.readClipboard = function () {
|
350
|
-
navigator.clipboard && navigator.clipboard.readText().then((e => rm.insertAtCaret(globalEvent.target, e)))
|
351
|
-
}
|
352
|
-
|
69
|
+
};
|
353
70
|
rm.insertAtCaret = function (e, n) {
|
354
71
|
const t = e.selectionStart
|
355
72
|
, o = e.selectionEnd;
|
@@ -357,8 +74,8 @@ rm.insertAtCaret = function (e, n) {
|
|
357
74
|
e.focus(),
|
358
75
|
document.selection.createRange().text = n,
|
359
76
|
e.focus();
|
360
|
-
else if (t || "0"
|
361
|
-
|
77
|
+
else if (t || "0" === t) {
|
78
|
+
let i = e.scrollTop;
|
362
79
|
e.value = e.value.substring(0, t) + n + e.value.substring(o, e.value.length),
|
363
80
|
e.focus(),
|
364
81
|
e.selectionStart = t + n.length,
|
@@ -368,15 +85,9 @@ rm.insertAtCaret = function (e, n) {
|
|
368
85
|
e.value += n,
|
369
86
|
e.focus()
|
370
87
|
}
|
371
|
-
|
372
|
-
rm.pasteText = function () {
|
373
|
-
rm.readClipboard();
|
374
|
-
rm.hideRightMenu()
|
375
|
-
}
|
376
|
-
|
377
88
|
rm.rightMenuCommentText = function (e) {
|
378
89
|
rm.hideRightMenu();
|
379
|
-
|
90
|
+
let n = document.getElementsByClassName("el-textarea__inner")[0];
|
380
91
|
let t = document.createEvent("HTMLEvents");
|
381
92
|
t.initEvent("input", !0, !0);
|
382
93
|
let o = replaceAll(e, "\n", "\n> ");
|
@@ -388,17 +99,123 @@ rm.rightMenuCommentText = function (e) {
|
|
388
99
|
n.setSelectionRange(-1, -1),
|
389
100
|
document.getElementById("comment-tips") && document.getElementById("comment-tips").classList.add("show")
|
390
101
|
}
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
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'),
|
396
140
|
}
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
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))
|
404
221
|
}
|
@@ -1,8 +1,10 @@
|
|
1
|
+
let openSearch
|
2
|
+
|
1
3
|
window.addEventListener("load", () => {
|
2
4
|
const $searchMask = document.getElementById("search-mask");
|
3
5
|
const $searchDialog = document.querySelector("#algolia-search .search-dialog");
|
4
6
|
|
5
|
-
|
7
|
+
openSearch = () => {
|
6
8
|
utils.animateIn($searchMask, "to_show 0.5s");
|
7
9
|
$searchDialog.style.display = "block";
|
8
10
|
setTimeout(() => {
|
@@ -68,7 +70,7 @@ window.addEventListener("load", () => {
|
|
68
70
|
});
|
69
71
|
|
70
72
|
const configure = instantsearch.widgets.configure({
|
71
|
-
hitsPerPage: algolia.hits.per_page
|
73
|
+
hitsPerPage: algolia.hits.per_page || 5,
|
72
74
|
});
|
73
75
|
|
74
76
|
const searchBox = instantsearch.widgets.searchBox({
|
@@ -1,8 +1,10 @@
|
|
1
|
+
let openSearch
|
2
|
+
|
1
3
|
window.onload = () => {
|
2
4
|
let idx, store = [];
|
3
5
|
const $searchMask = document.getElementById("search-mask");
|
4
6
|
const $searchDialog = document.querySelector("#local-search .search-dialog");
|
5
|
-
|
7
|
+
openSearch = () => {
|
6
8
|
utils.animateIn($searchMask, "to_show 0.5s");
|
7
9
|
$searchDialog.style.display = "block";
|
8
10
|
setTimeout(() => {
|