hexo-theme-solitude 1.7.7 → 1.7.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -9
- package/README_zh-cn.md +13 -9
- package/README_zh-tw.md +13 -9
- package/_config.yml +35 -8
- package/languages/en.yml +26 -1
- package/languages/zh-CN.yml +26 -1
- package/languages/zh-TW.yml +26 -1
- package/layout/includes/head/config.pug +32 -1
- package/layout/includes/inject/body.pug +12 -22
- package/layout/includes/inject/head.pug +2 -2
- package/layout/includes/layout.pug +4 -0
- package/layout/includes/rightmenu.pug +80 -0
- package/layout/index.pug +2 -2
- package/package.json +1 -1
- package/plugins.yml +0 -4
- package/scripts/event/cdn.js +6 -1
- package/scripts/event/merge_config.js +173 -62
- package/scripts/tags/gallery.js +27 -44
- package/scripts/tags/link.js +40 -13
- package/source/css/_global/function.styl +6 -1
- package/source/css/_highlight/prismjs/line-number.styl +2 -1
- package/source/css/_layout/article-container.styl +3 -1
- package/source/css/{_page/_home → _layout}/recent-post.styl +5 -0
- package/source/css/_layout/rightmenu.styl +1 -1
- package/source/css/_page/_about/reward.styl +0 -2
- package/source/css/_page/_home/{banner.styl → carousel.styl} +6 -3
- package/source/css/_page/_home/home-top.styl +0 -4
- package/source/css/_page/_home/home.styl +3 -7
- package/source/css/_page/other.styl +1 -1
- package/source/css/_page/says.styl +1 -1
- package/source/css/_tags/button.styl +1 -1
- package/source/css/_tags/gallery.styl +97 -57
- package/source/js/main.js +23 -24
- package/source/js/right_menu.js +230 -0
- package/source/js/search/algolia.js +10 -0
- package/source/js/search/local.js +13 -13
- package/source/js/tw_cn.js +102 -52
- package/source/css/_post/content.styl +0 -0
- /package/source/css/{_page/_home → _layout}/pagination.styl +0 -0
@@ -1,67 +1,107 @@
|
|
1
1
|
#article-container
|
2
|
-
.gallery-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
height 250px
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
user-select none
|
2
|
+
figure.gallery-group
|
3
|
+
position: relative
|
4
|
+
float: left
|
5
|
+
overflow: hidden
|
6
|
+
margin: 6px 4px
|
7
|
+
width: calc(50% - 8px)
|
8
|
+
height: 250px
|
9
|
+
border-radius: 8px
|
10
|
+
background: var(--efu-black)
|
11
|
+
-webkit-transform: translate3d(0, 0, 0)
|
13
12
|
|
14
|
-
+
|
15
|
-
width 100%
|
13
|
+
+maxWidth600()
|
14
|
+
width: calc(100% - 8px)
|
16
15
|
|
17
16
|
&:hover
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
img
|
18
|
+
opacity: .4
|
19
|
+
transform: translate3d(0, 0, 0)
|
20
|
+
|
21
|
+
.gallery-group-name::after
|
22
|
+
transform: translate3d(0, 0, 0)
|
23
|
+
|
24
|
+
p
|
25
|
+
opacity: 1
|
26
|
+
transform: translate3d(0, 0, 0)
|
27
|
+
|
28
|
+
img
|
29
|
+
position: relative
|
30
|
+
margin: 0
|
31
|
+
max-width: none
|
32
|
+
width: calc(100% + 20px)
|
33
|
+
height: 250px
|
34
|
+
backface-visibility: hidden
|
35
|
+
opacity: .8
|
36
|
+
transition: all .3s, filter 375ms ease-in .2s
|
37
|
+
transform: translate3d(-10px, 0, 0)
|
38
|
+
object-fit: cover
|
39
|
+
border none
|
22
40
|
|
23
|
-
|
24
|
-
|
25
|
-
|
41
|
+
figcaption
|
42
|
+
position: absolute
|
43
|
+
top: 0
|
44
|
+
left: 0
|
45
|
+
padding: 30px
|
46
|
+
width: 100%
|
47
|
+
height: 100%
|
48
|
+
color: var(--efu-white)
|
49
|
+
text-transform: uppercase
|
50
|
+
backface-visibility: hidden
|
26
51
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
52
|
+
& > a
|
53
|
+
position: absolute
|
54
|
+
top: 0
|
55
|
+
right: 0
|
56
|
+
bottom: 0
|
57
|
+
left: 0
|
58
|
+
z-index: 1000
|
59
|
+
opacity: 0
|
31
60
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
61
|
+
p
|
62
|
+
@extend .limit-more-line
|
63
|
+
margin: 0
|
64
|
+
padding: 8px 0 0
|
65
|
+
letter-spacing: 1px
|
66
|
+
font-size: 1.1em
|
67
|
+
line-height: 1.5
|
68
|
+
opacity: 0
|
69
|
+
transition: opacity .35s, transform .35s
|
70
|
+
transform: translate3d(100%, 0, 0)
|
71
|
+
-webkit-line-clamp: 4
|
38
72
|
|
39
|
-
.
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
font-
|
45
|
-
|
73
|
+
.gallery-group-name
|
74
|
+
@extend .limit-more-line
|
75
|
+
position: relative
|
76
|
+
margin: 0
|
77
|
+
padding: 8px 0
|
78
|
+
font-weight: bold
|
79
|
+
font-size: 1.65em
|
80
|
+
line-height: 1.5
|
81
|
+
-webkit-line-clamp: 2
|
46
82
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
left 0
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
83
|
+
&:after
|
84
|
+
position: absolute
|
85
|
+
bottom: 0
|
86
|
+
left: 0
|
87
|
+
width: 100%
|
88
|
+
height: 2px
|
89
|
+
background: var(--efu-white)
|
90
|
+
content: ''
|
91
|
+
transition: transform .35s
|
92
|
+
transform: translate3d(-100%, 0, 0)
|
93
|
+
|
94
|
+
.gallery-group-main
|
95
|
+
overflow: auto
|
96
|
+
padding: 0 0 16px
|
97
|
+
|
98
|
+
.gallery-item
|
99
|
+
min-height 5rem
|
100
|
+
width 24.97%
|
101
|
+
padding 4px
|
102
|
+
position relative
|
57
103
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
width 80%
|
63
|
-
color var(--efu-white)
|
64
|
-
font-size 1.1em
|
65
|
-
transition left .35s
|
66
|
-
letter-spacing 1px
|
67
|
-
text-wrap break-word
|
104
|
+
img
|
105
|
+
max-width: 100%;
|
106
|
+
border-radius: 0;
|
107
|
+
margin 0
|
package/source/js/main.js
CHANGED
@@ -30,6 +30,7 @@ const sidebarFn = () => {
|
|
30
30
|
if (utils.isHidden($toggleMenu)) {
|
31
31
|
if ($mobileSidebarMenus.classList.contains('open')) closeMobileSidebar()
|
32
32
|
}
|
33
|
+
sco.reflashEssayWaterFall();
|
33
34
|
})
|
34
35
|
}
|
35
36
|
|
@@ -204,6 +205,7 @@ class toc {
|
|
204
205
|
|
205
206
|
let lastSayHello = "";
|
206
207
|
let wleelw_musicPlaying = false
|
208
|
+
let right_menu = false
|
207
209
|
|
208
210
|
let sco = {
|
209
211
|
hideCookie: function () {
|
@@ -238,14 +240,17 @@ let sco = {
|
|
238
240
|
const $music = document.querySelector('#nav-music');
|
239
241
|
const $meting = document.querySelector('meting-js');
|
240
242
|
const $console = document.getElementById('consoleMusic');
|
241
|
-
const $
|
243
|
+
const $rm_text = document.querySelector('#menu-music-toggle span');
|
244
|
+
const $rm_icon = document.querySelector('#menu-music-toggle i');
|
242
245
|
wleelw_musicPlaying = !wleelw_musicPlaying;
|
243
246
|
$music.classList.toggle("playing", wleelw_musicPlaying);
|
244
247
|
$console.classList.toggle("on", wleelw_musicPlaying);
|
245
248
|
if (wleelw_musicPlaying) {
|
246
249
|
$meting.aplayer.play();
|
250
|
+
right_menu && ($rm_text.textContent = GLOBAL_CONFIG.right_menu.music.stop) && ($rm_icon.className = 'solitude st-pause-fill')
|
247
251
|
} else {
|
248
252
|
$meting.aplayer.pause();
|
253
|
+
right_menu && ($rm_text.textContent = GLOBAL_CONFIG.right_menu.music.start) && ($rm_icon.className = 'solitude st-play-fill')
|
249
254
|
}
|
250
255
|
},
|
251
256
|
switchCommentBarrage: function () {
|
@@ -255,10 +260,12 @@ let sco = {
|
|
255
260
|
commentBarrageElement.style.display = "none";
|
256
261
|
document.querySelector("#consoleCommentBarrage").classList.remove("on");
|
257
262
|
localStorage.removeItem("commentBarrageSwitch");
|
263
|
+
right_menu && rm.barrage(true)
|
258
264
|
} else {
|
259
265
|
commentBarrageElement.style.display = "flex";
|
260
266
|
document.querySelector("#consoleCommentBarrage").classList.add("on");
|
261
267
|
localStorage.setItem("commentBarrageSwitch", "false");
|
268
|
+
right_menu && rm.barrage(false)
|
262
269
|
}
|
263
270
|
}
|
264
271
|
},
|
@@ -302,15 +309,16 @@ let sco = {
|
|
302
309
|
document.documentElement.setAttribute('data-theme', 'dark')
|
303
310
|
saveToLocal.set('theme', 'dark', 0.02);
|
304
311
|
utils.snackbarShow(GLOBAL_CONFIG.lang.theme.dark, false, 2000)
|
312
|
+
right_menu && rm.mode(true)
|
305
313
|
} else {
|
306
314
|
document.documentElement.setAttribute('data-theme', 'light')
|
307
315
|
saveToLocal.set('theme', 'light', 0.02);
|
308
316
|
utils.snackbarShow(GLOBAL_CONFIG.lang.theme.light, false, 2000)
|
317
|
+
right_menu && rm.mode(false)
|
309
318
|
}
|
310
319
|
},
|
311
320
|
hideTodayCard: () => document.getElementById('todayCard').classList.add('hide'),
|
312
321
|
toTop: () => utils.scrollToDest(0),
|
313
|
-
|
314
322
|
showConsole: function () {
|
315
323
|
let el = document.getElementById('console')
|
316
324
|
if (el && !el.classList.contains('show')) {
|
@@ -335,7 +343,7 @@ let sco = {
|
|
335
343
|
el && GLOBAL_CONFIG.runtime && (el.innerText = utils.timeDiff(new Date(GLOBAL_CONFIG.runtime), new Date()) + GLOBAL_CONFIG.lang.time.day)
|
336
344
|
},
|
337
345
|
toTalk: function (txt) {
|
338
|
-
const inputs = ["#wl-edit", ".el-textarea__inner"]
|
346
|
+
const inputs = ["#wl-edit", ".el-textarea__inner", "#veditor"]
|
339
347
|
for (let i = 0; i < inputs.length; i++) {
|
340
348
|
let el = document.querySelector(inputs[i])
|
341
349
|
if (el != null) {
|
@@ -349,6 +357,7 @@ let sco = {
|
|
349
357
|
el.setSelectionRange(-1, -1)
|
350
358
|
}
|
351
359
|
}
|
360
|
+
utils.snackbarShow(GLOBAL_CONFIG.lang.totalk, !1, 2e3);
|
352
361
|
},
|
353
362
|
initbbtalk: function () {
|
354
363
|
if (document.querySelector('#bber-talk')) {
|
@@ -387,10 +396,10 @@ let sco = {
|
|
387
396
|
const hours = timeNow.getHours();
|
388
397
|
const lang = GLOBAL_CONFIG.aside.sayhello;
|
389
398
|
const greetings = [{
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
399
|
+
start: 0,
|
400
|
+
end: 5,
|
401
|
+
text: lang.goodnight
|
402
|
+
},
|
394
403
|
{
|
395
404
|
start: 6,
|
396
405
|
end: 10,
|
@@ -660,19 +669,14 @@ let sco = {
|
|
660
669
|
item.textContent = utils.diffDate(timeVal, true)
|
661
670
|
item.style.display = 'inline'
|
662
671
|
})
|
663
|
-
}
|
672
|
+
},
|
664
673
|
}
|
665
674
|
|
666
675
|
const addHighlight = () => {
|
667
676
|
const highlight = GLOBAL_CONFIG.highlight;
|
668
677
|
if (!highlight) return;
|
669
678
|
|
670
|
-
const {
|
671
|
-
copy,
|
672
|
-
expand,
|
673
|
-
limit,
|
674
|
-
syntax
|
675
|
-
} = highlight;
|
679
|
+
const {copy, expand, limit, syntax} = highlight;
|
676
680
|
const $isPrismjs = syntax === 'prismjs';
|
677
681
|
const $isShowTool = highlight.enable || copy || expand || limit;
|
678
682
|
const expandClass = !expand === true ? 'closed' : ''
|
@@ -773,13 +777,7 @@ const addHighlight = () => {
|
|
773
777
|
|
774
778
|
const addCopyright = () => {
|
775
779
|
if (!GLOBAL_CONFIG.copyright) return
|
776
|
-
const {
|
777
|
-
limit,
|
778
|
-
author,
|
779
|
-
link,
|
780
|
-
source,
|
781
|
-
info
|
782
|
-
} = GLOBAL_CONFIG.copyright
|
780
|
+
const {limit, author, link, source, info} = GLOBAL_CONFIG.copyright
|
783
781
|
const handleCopy = (e) => {
|
784
782
|
e.preventDefault()
|
785
783
|
const copyText = window.getSelection(0).toString()
|
@@ -834,8 +832,8 @@ class tabs {
|
|
834
832
|
}
|
835
833
|
|
836
834
|
window.refreshFn = () => {
|
837
|
-
if (PAGE_CONFIG.is_home) {
|
838
|
-
sco.changeTimeFormat(document.querySelectorAll('#recent-posts time'))
|
835
|
+
if (PAGE_CONFIG.is_home || PAGE_CONFIG.is_page) {
|
836
|
+
sco.changeTimeFormat(document.querySelectorAll('#recent-posts time, .webinfo-item time'))
|
839
837
|
GLOBAL_CONFIG.runtime && sco.addRuntime()
|
840
838
|
} else {
|
841
839
|
sco.changeTimeFormat(document.querySelectorAll('#post-meta time'))
|
@@ -852,8 +850,9 @@ window.refreshFn = () => {
|
|
852
850
|
sco.categoriesBarActive()
|
853
851
|
sco.listenToPageInputPress()
|
854
852
|
sco.addNavBackgroundInit()
|
853
|
+
sco.reflashEssayWaterFall()
|
855
854
|
GLOBAL_CONFIG.lazyload.enable && utils.lazyloadImg()
|
856
|
-
GLOBAL_CONFIG.lightbox && utils.lightbox(document.querySelectorAll("#article-container img:not(.flink-avatar)"))
|
855
|
+
GLOBAL_CONFIG.lightbox && utils.lightbox(document.querySelectorAll("#article-container img:not(.flink-avatar,.gallery-group img)"))
|
857
856
|
GLOBAL_CONFIG.randomlink && randomLinksList()
|
858
857
|
PAGE_CONFIG.comment && initComment()
|
859
858
|
PAGE_CONFIG.toc && toc.init();
|
@@ -0,0 +1,230 @@
|
|
1
|
+
var selectTextNow = "";
|
2
|
+
let selectText = () => selectTextNow = document.selection ? document.selection.createRange().text : window.getSelection() + "" || ""
|
3
|
+
document.onmouseup = document.ondbclick = selectText
|
4
|
+
|
5
|
+
const rm = {
|
6
|
+
mask: document.getElementById("rightmenu-mask"),
|
7
|
+
menu: document.getElementById("rightMenu"),
|
8
|
+
width: document.querySelector("#rightMenu").offsetWidth,
|
9
|
+
height: document.querySelector("#rightMenu").offsetHeight,
|
10
|
+
domhref: "",
|
11
|
+
domsrc: "",
|
12
|
+
globalEvent: null,
|
13
|
+
menuItems: {
|
14
|
+
other: document.getElementsByClassName('rightMenuOther'),
|
15
|
+
plugin: document.getElementsByClassName('rightMenuPlugin'),
|
16
|
+
back: document.getElementById('menu-backward'),
|
17
|
+
forward: document.getElementById('menu-forward'),
|
18
|
+
refresh: document.getElementById('menu-refresh'),
|
19
|
+
top: document.getElementById('menu-top'),
|
20
|
+
copy: document.getElementById('menu-copytext'),
|
21
|
+
paste: document.getElementById('menu-pastetext'),
|
22
|
+
comment: document.getElementById('menu-commenttext'),
|
23
|
+
new: document.getElementById('menu-newwindow'),
|
24
|
+
copyLink: document.getElementById('menu-copylink'),
|
25
|
+
copyImg: document.getElementById('menu-copyimg'),
|
26
|
+
downloadImg: document.getElementById('menu-downloadimg'),
|
27
|
+
search: document.getElementById('menu-search'),
|
28
|
+
barrage: document.getElementById('menu-commentBarrage'),
|
29
|
+
music: [
|
30
|
+
toggle = document.getElementById('menu-music-toggle'),
|
31
|
+
back = document.getElementById('menu-music-back'),
|
32
|
+
forward = document.getElementById('menu-music-forward'),
|
33
|
+
copyMusicName = document.getElementById('menu-music-copyMusicName'),
|
34
|
+
]
|
35
|
+
},
|
36
|
+
showRightMenu: (e, x = 0, y = 0) => {
|
37
|
+
rm.menu.style.top = y + 'px';
|
38
|
+
rm.menu.style.left = x + 'px';
|
39
|
+
rm.menu.style.display = e ? 'block' : 'none';
|
40
|
+
e ? stopMaskScroll() : rm.mask.style.display = 'none';
|
41
|
+
},
|
42
|
+
hideRightMenu: () => {
|
43
|
+
rm.showRightMenu(false)
|
44
|
+
rm.mask.style.display = 'none'
|
45
|
+
},
|
46
|
+
reLoadSize: () => {
|
47
|
+
rm.menu.style.display = "block";
|
48
|
+
rm.width = rm.menu.offsetWidth;
|
49
|
+
rm.height = rm.menu.offsetHeight;
|
50
|
+
rm.menu.style.display = 'none';
|
51
|
+
},
|
52
|
+
copyText: (e) => {
|
53
|
+
navigator.clipboard && navigator.clipboard.writeText(e)
|
54
|
+
utils.snackbarShow(GLOBAL_CONFIG.lang.copy.success, false, 2000)
|
55
|
+
rm.hideRightMenu()
|
56
|
+
},
|
57
|
+
pasteText: () => rm.readClipboard(),
|
58
|
+
readClipboard: () => navigator.clipboard && navigator.clipboard.readText().then((e => rm.insertAtCaret(rm.globalEvent.target, e))),
|
59
|
+
insertAtCaret: (e, n) => {
|
60
|
+
const t = e.selectionStart
|
61
|
+
, o = e.selectionEnd;
|
62
|
+
if (document.selection)
|
63
|
+
e.focus(),
|
64
|
+
document.selection.createRange().text = n,
|
65
|
+
e.focus();
|
66
|
+
else if (t || "0" === t) {
|
67
|
+
let i = e.scrollTop;
|
68
|
+
e.value = e.value.substring(0, t) + n + e.value.substring(o, e.value.length),
|
69
|
+
e.focus(),
|
70
|
+
e.selectionStart = t + n.length,
|
71
|
+
e.selectionEnd = t + n.length,
|
72
|
+
e.scrollTop = i
|
73
|
+
} else
|
74
|
+
e.value += n,
|
75
|
+
e.focus()
|
76
|
+
},
|
77
|
+
downloadImage: async function (imageUrl = rm.domsrc, filename = 'photo') {
|
78
|
+
try {
|
79
|
+
const response = await fetch(imageUrl);
|
80
|
+
const blob = await response.blob();
|
81
|
+
const url = URL.createObjectURL(blob);
|
82
|
+
const link = document.createElement('a');
|
83
|
+
link.href = url;
|
84
|
+
link.download = filename || 'image.jpg';
|
85
|
+
link.style.display = 'none';
|
86
|
+
document.body.appendChild(link);
|
87
|
+
link.click();
|
88
|
+
document.body.removeChild(link);
|
89
|
+
URL.revokeObjectURL(url);
|
90
|
+
} catch (error) {
|
91
|
+
utils.snackbarShow(GLOBAL_CONFIG.right_menu.img_error, false, 2000)
|
92
|
+
}
|
93
|
+
},
|
94
|
+
copyImage: async function (imgUrl = this.domsrc) {
|
95
|
+
try {
|
96
|
+
const response = await fetch(imgUrl);
|
97
|
+
const blob = await response.blob();
|
98
|
+
const data = new ClipboardItem({
|
99
|
+
'image/png': blob
|
100
|
+
});
|
101
|
+
await navigator.clipboard.write([data]);
|
102
|
+
|
103
|
+
utils.snackbarShow(GLOBAL_CONFIG.lang.copy.success, false, 3e3)
|
104
|
+
} catch (error) {
|
105
|
+
utils.snackbarShow(GLOBAL_CONFIG.right_menu.img_error, false, 2000)
|
106
|
+
}
|
107
|
+
},
|
108
|
+
mode: (darkmode) => (darkmode ? document.querySelector('.menu-darkmode-text').textContent = GLOBAL_CONFIG.right_menu.mode.light : document.querySelector('.menu-darkmode-text').textContent = GLOBAL_CONFIG.right_menu.mode.dark) && rm.hideRightMenu(),
|
109
|
+
barrage: (enable) => (enable ? document.querySelector(".menu-commentBarrage-text").textContent = GLOBAL_CONFIG.right_menu.barrage.open : document.querySelector(".menu-commentBarrage-text").textContent = GLOBAL_CONFIG.right_menu.barrage.close) && rm.hideRightMenu()
|
110
|
+
}
|
111
|
+
|
112
|
+
function stopMaskScroll() {
|
113
|
+
utils.addEventListenerPjax(rm.menu, "mousewheel", rm.hideRightMenu)
|
114
|
+
utils.addEventListenerPjax(rm.mask, "mousewheel", rm.hideRightMenu)
|
115
|
+
utils.addEventListenerPjax(rm.mask, "click", rm.hideRightMenu)
|
116
|
+
}
|
117
|
+
|
118
|
+
window.oncontextmenu = (ele) => {
|
119
|
+
if (document.body.clientWidth <= 768) return;
|
120
|
+
let x = ele.clientX + 10;
|
121
|
+
let y = ele.clientY;
|
122
|
+
Array.from(rm.menuItems.other).forEach(item => item.style.display = 'block');
|
123
|
+
|
124
|
+
rm.globalEvent = ele
|
125
|
+
|
126
|
+
let display = false
|
127
|
+
let link = ele.target.href
|
128
|
+
let src = ele.target.currentSrc
|
129
|
+
|
130
|
+
if (selectTextNow && window.getSelection()) {
|
131
|
+
display = true;
|
132
|
+
rm.menuItems.copy.style.display = 'block';
|
133
|
+
rm.menuItems.comment.style.display = 'block';
|
134
|
+
rm.menuItems.search.style.display = 'block';
|
135
|
+
} else {
|
136
|
+
rm.menuItems.copy.style.display = 'none';
|
137
|
+
rm.menuItems.comment.style.display = 'none';
|
138
|
+
rm.menuItems.search.style.display = 'none';
|
139
|
+
}
|
140
|
+
|
141
|
+
if (link) {
|
142
|
+
display = true;
|
143
|
+
rm.menuItems.new.style.display = 'block';
|
144
|
+
rm.menuItems.copyLink.style.display = 'block';
|
145
|
+
rm.domhref = link;
|
146
|
+
} else {
|
147
|
+
rm.menuItems.new.style.display = 'none';
|
148
|
+
rm.menuItems.copyLink.style.display = 'none';
|
149
|
+
}
|
150
|
+
|
151
|
+
if (src) {
|
152
|
+
display = true
|
153
|
+
rm.menuItems.copyImg.style.display = 'block'
|
154
|
+
rm.menuItems.downloadImg.style.display = 'block'
|
155
|
+
rm.domsrc = src
|
156
|
+
} else {
|
157
|
+
rm.menuItems.copyImg.style.display = 'none';
|
158
|
+
rm.menuItems.downloadImg.style.display = 'none';
|
159
|
+
}
|
160
|
+
|
161
|
+
let tagName = ele.target.tagName.toLowerCase();
|
162
|
+
if (tagName === 'input' || tagName === 'textarea') {
|
163
|
+
display = true;
|
164
|
+
rm.menuItems.paste.style.display = 'block';
|
165
|
+
} else {
|
166
|
+
rm.menuItems.paste.style.display = 'none';
|
167
|
+
}
|
168
|
+
|
169
|
+
if (tagName === 'meting-js') {
|
170
|
+
display = true;
|
171
|
+
rm.menuItems.music.forEach(item => item.style.display = 'block');
|
172
|
+
} else {
|
173
|
+
rm.menuItems.music.forEach(item => item.style.display = 'none');
|
174
|
+
}
|
175
|
+
|
176
|
+
Array.from(display ? rm.menuItems.other : rm.menuItems.plugin).forEach(item => item.style.display = 'none');
|
177
|
+
Array.from(display ? rm.menuItems.plugin : rm.menuItems.other).forEach(item => item.style.display = 'block');
|
178
|
+
rm.reLoadSize()
|
179
|
+
x + rm.width > window.innerWidth && (x -= rm.width + 10);
|
180
|
+
y + rm.height > window.innerHeight && (y -= y + rm.height - window.innerHeight)
|
181
|
+
rm.mask.style.display = 'flex';
|
182
|
+
rm.showRightMenu(true, x, y);
|
183
|
+
return false;
|
184
|
+
}
|
185
|
+
|
186
|
+
!function () {
|
187
|
+
rm.menuItems.back.addEventListener('click', () => window.history.back() || rm.hideRightMenu());
|
188
|
+
rm.menuItems.forward.addEventListener('click', () => window.history.forward() || rm.hideRightMenu());
|
189
|
+
rm.menuItems.refresh.addEventListener('click', () => window.location.reload())
|
190
|
+
rm.menuItems.top.addEventListener('click', () => sco.toTop() || rm.hideRightMenu());
|
191
|
+
|
192
|
+
if (GLOBAL_CONFIG.right_menu.music) {
|
193
|
+
rm.menuItems.music[0].addEventListener('click', () => {
|
194
|
+
sco.musicToggle()
|
195
|
+
rm.hideRightMenu()
|
196
|
+
})
|
197
|
+
rm.menuItems.music[1].addEventListener('click', () => {
|
198
|
+
document.querySelector('meting-js').aplayer.skipBack()
|
199
|
+
rm.hideRightMenu()
|
200
|
+
})
|
201
|
+
rm.menuItems.music[2].addEventListener('click', () => {
|
202
|
+
document.querySelector('meting-js').aplayer.skipForward()
|
203
|
+
rm.hideRightMenu()
|
204
|
+
})
|
205
|
+
rm.menuItems.music[3].addEventListener('click', () => {
|
206
|
+
const title = Array.from(document.querySelectorAll('.aplayer-title')).map(e => e.innerText)[0];
|
207
|
+
rm.copyText(title)
|
208
|
+
})
|
209
|
+
}
|
210
|
+
|
211
|
+
rm.menuItems.copy.addEventListener('click', () => {
|
212
|
+
if (GLOBAL_CONFIG.copyright) {
|
213
|
+
const {limit, author, link, source, info} = GLOBAL_CONFIG.copyright
|
214
|
+
if (selectTextNow.length > limit) {
|
215
|
+
selectTextNow = `${selectTextNow}\n\n${author}\n${link}${window.location.href}\n${source}\n${info}`
|
216
|
+
}
|
217
|
+
}
|
218
|
+
rm.copyText(selectTextNow)
|
219
|
+
rm.hideRightMenu()
|
220
|
+
})
|
221
|
+
|
222
|
+
rm.menuItems.paste.addEventListener('click', () => rm.pasteText() && rm.hideRightMenu())
|
223
|
+
rm.menuItems.comment.addEventListener('click', () => rm.hideRightMenu() || sco.toTalk(selectTextNow))
|
224
|
+
rm.menuItems.new.addEventListener('click', () => window.open(rm.domhref) && rm.hideRightMenu())
|
225
|
+
rm.menuItems.search.addEventListener('click', () => rm.hideRightMenu())
|
226
|
+
rm.menuItems.downloadImg.addEventListener('click', () => rm.downloadImage() && rm.hideRightMenu())
|
227
|
+
rm.menuItems.copyImg.addEventListener('click', () => rm.copyImage() && rm.hideRightMenu())
|
228
|
+
}()
|
229
|
+
|
230
|
+
right_menu = true
|
@@ -32,6 +32,16 @@ window.addEventListener("load", () => {
|
|
32
32
|
|
33
33
|
const searchClickFn = () => {
|
34
34
|
utils.addEventListenerPjax(document.querySelector("#search-button > .search"), "click", openSearch);
|
35
|
+
|
36
|
+
GLOBAL_CONFIG.right_menu && document.getElementById("menu-search").addEventListener("click", function (){
|
37
|
+
rm.hideRightMenu();
|
38
|
+
openSearch();
|
39
|
+
let t=document.getElementsByClassName('ais-SearchBox-input')[0];
|
40
|
+
let evt = document.createEvent('HTMLEvents');
|
41
|
+
evt.initEvent('input', true,true)
|
42
|
+
t.value = selectTextNow
|
43
|
+
t.dispatchEvent(evt)
|
44
|
+
})
|
35
45
|
};
|
36
46
|
|
37
47
|
const searchFnOnce = () => {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
window.onload = () => {
|
2
|
-
let
|
2
|
+
let store = [];
|
3
3
|
const $searchMask = document.getElementById("search-mask");
|
4
4
|
const $searchDialog = document.querySelector("#local-search .search-dialog");
|
5
5
|
window.openSearch = () => {
|
@@ -37,11 +37,21 @@ window.onload = () => {
|
|
37
37
|
|
38
38
|
const searchClickFn = () =>{
|
39
39
|
utils.addEventListenerPjax(document.querySelector("#search-button > .search"), "click", openSearch);
|
40
|
+
|
41
|
+
GLOBAL_CONFIG.right_menu && document.getElementById("menu-search").addEventListener("click", function (){
|
42
|
+
rm.hideRightMenu();
|
43
|
+
openSearch();
|
44
|
+
let t=document.getElementsByClassName('search-box-input')[0];
|
45
|
+
let evt = document.createEvent('HTMLEvents');
|
46
|
+
evt.initEvent('input', true,true)
|
47
|
+
t.value = selectTextNow
|
48
|
+
t.dispatchEvent(evt)
|
49
|
+
})
|
40
50
|
}
|
41
51
|
|
42
52
|
searchClickFn();
|
43
53
|
|
44
|
-
function
|
54
|
+
function init() {
|
45
55
|
fetch(GLOBAL_CONFIG.localsearch.path)
|
46
56
|
.then(response => response.text())
|
47
57
|
.then(data => {
|
@@ -59,16 +69,6 @@ window.onload = () => {
|
|
59
69
|
'content': content
|
60
70
|
});
|
61
71
|
}
|
62
|
-
|
63
|
-
idx = lunr(function () {
|
64
|
-
this.ref('link');
|
65
|
-
this.field('title', {boost: 10});
|
66
|
-
this.field('content');
|
67
|
-
|
68
|
-
store.forEach(function (doc) {
|
69
|
-
this.add(doc);
|
70
|
-
}, this);
|
71
|
-
});
|
72
72
|
})
|
73
73
|
.catch(err => console.error("Error loading search data:", err));
|
74
74
|
}
|
@@ -169,7 +169,7 @@ window.onload = () => {
|
|
169
169
|
}
|
170
170
|
paginationContainer.appendChild(paginationList);
|
171
171
|
}
|
172
|
-
|
172
|
+
init();
|
173
173
|
initUI();
|
174
174
|
window.addEventListener('DOMContentLoaded', (event) => {
|
175
175
|
initUI();
|