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.
Files changed (136) hide show
  1. package/.github/logo.svg +44 -10
  2. package/README.md +22 -2
  3. package/README_zh-cn.md +22 -2
  4. package/README_zh-tw.md +22 -2
  5. package/_config.yml +107 -107
  6. package/languages/en.yml +45 -63
  7. package/languages/zh-CN.yml +32 -55
  8. package/languages/zh-TW.yml +32 -55
  9. package/layout/404.pug +1 -1
  10. package/layout/includes/console.pug +5 -5
  11. package/layout/includes/footer.pug +7 -7
  12. package/layout/includes/head/config.pug +15 -9
  13. package/layout/includes/head/opengraph.pug +2 -2
  14. package/layout/includes/head/pwa.pug +6 -6
  15. package/layout/includes/head.pug +1 -1
  16. package/layout/includes/inject/body.pug +0 -4
  17. package/layout/includes/inject/head.pug +1 -2
  18. package/layout/includes/keyboard.pug +1 -1
  19. package/layout/includes/loading.pug +1 -1
  20. package/layout/includes/nav.pug +1 -1
  21. package/layout/includes/sidebar.pug +19 -3
  22. package/layout/includes/widgets/home/banner.pug +1 -1
  23. package/layout/includes/widgets/home/categoryBar.pug +2 -2
  24. package/layout/includes/widgets/home/categoryGroup.pug +0 -1
  25. package/layout/includes/widgets/home/postList.pug +74 -29
  26. package/layout/includes/widgets/home/topGroup.pug +2 -2
  27. package/layout/includes/widgets/nav/group.pug +2 -2
  28. package/layout/includes/widgets/nav/right.pug +1 -1
  29. package/layout/includes/widgets/page/about/award.pug +8 -9
  30. package/layout/includes/widgets/page/about/hobbies.pug +1 -1
  31. package/layout/includes/widgets/page/about/other.pug +1 -1
  32. package/layout/includes/widgets/page/banner.pug +1 -1
  33. package/layout/includes/widgets/page/links/banner.pug +5 -4
  34. package/layout/includes/widgets/page/moments/angle.pug +1 -1
  35. package/layout/includes/widgets/post/award.pug +10 -15
  36. package/layout/includes/widgets/post/copyright.pug +2 -2
  37. package/layout/includes/widgets/post/postMeta.pug +10 -10
  38. package/layout/includes/widgets/randomlink.pug +3 -2
  39. package/layout/includes/widgets/third-party/comments/twikoo.pug +1 -0
  40. package/layout/includes/widgets/third-party/comments/waline.pug +1 -0
  41. package/layout/page.pug +1 -1
  42. package/package.json +1 -1
  43. package/plugins.yml +0 -4
  44. package/scripts/event/cdn.js +6 -11
  45. package/scripts/event/merge_config.js +19 -3
  46. package/scripts/event/welcome.js +2 -2
  47. package/scripts/filter/checkThemeConfig.js +2 -2
  48. package/scripts/filter/default.js +4 -2
  49. package/scripts/filter/lazyload.js +18 -5
  50. package/scripts/filter/randomPosts.js +1 -1
  51. package/scripts/helper/stylus.js +8 -14
  52. package/source/css/{_widgets/_comment → _comments}/index.styl +14 -1
  53. package/source/css/{_widgets/_comment → _comments}/twikoo.styl +3 -0
  54. package/source/css/_global/index.styl +362 -1
  55. package/source/css/_highlight/prismjs/line-number.styl +1 -1
  56. package/source/css/{_widgets/_mixins → _layout}/article-sort.styl +1 -1
  57. package/source/css/_layout/aside.styl +751 -0
  58. package/source/css/_layout/capsule.styl +213 -0
  59. package/source/css/{_widgets/_extra → _layout}/console.styl +7 -6
  60. package/source/css/{_widgets/_mixins → _layout}/footer.styl +1 -0
  61. package/source/css/_layout/fullpage.styl +47 -0
  62. package/source/css/_layout/header.styl +2 -0
  63. package/source/css/_layout/keyboard.styl +60 -0
  64. package/source/css/_layout/pace.styl +40 -0
  65. package/source/css/_layout/rightmenu.styl +79 -0
  66. package/source/css/{_widgets/_mixins → _layout}/sidebar.styl +30 -20
  67. package/source/css/_layout/universe.styl +18 -0
  68. package/source/css/_page/_home/home-top.styl +2 -4
  69. package/source/css/_page/_home/recent-post.styl +407 -170
  70. package/source/css/_page/douban.styl +111 -109
  71. package/source/css/_page/links.styl +5 -5
  72. package/source/css/_page/share.styl +1 -17
  73. package/source/css/{_widgets/_post → _post}/content.styl +13 -3
  74. package/source/css/{_widgets/_post → _post}/tools.styl +3 -9
  75. package/source/css/index.styl +20 -5
  76. package/source/css/third_party/snackbar.min.css +1 -0
  77. package/source/css/{_global/var.styl → var.styl} +7 -1
  78. package/source/img/avatar.png +0 -0
  79. package/source/img/default.png +0 -0
  80. package/source/img/flower.gif +0 -0
  81. package/source/img/pwa/favicon.ico +0 -0
  82. package/source/img/pwa/favicon_128.ico +0 -0
  83. package/source/img/pwa/favicon_16.ico +0 -0
  84. package/source/img/pwa/favicon_256.ico +0 -0
  85. package/source/img/pwa/favicon_32.ico +0 -0
  86. package/source/js/{comment/twikoo_commentBarrage.js → commentBarrage/twikoo.js} +0 -6
  87. package/source/js/{comment/waline_commentBarrage.js → commentBarrage/waline.js} +0 -2
  88. package/source/js/main.js +73 -71
  89. package/source/js/utils.js +1 -1
  90. package/layout/includes/recent-posts.pug +0 -9
  91. package/layout/includes/widgets/rightside/index.pug +0 -87
  92. package/source/css/_layout/basic.styl +0 -308
  93. package/source/css/_layout/index.styl +0 -125
  94. package/source/css/_widgets/_aside/allinfo.styl +0 -168
  95. package/source/css/_widgets/_aside/flip.styl +0 -67
  96. package/source/css/_widgets/_aside/index.styl +0 -90
  97. package/source/css/_widgets/_aside/info.styl +0 -263
  98. package/source/css/_widgets/_aside/newPost.styl +0 -61
  99. package/source/css/_widgets/_aside/toc.styl +0 -108
  100. package/source/css/_widgets/_aside/welcome.styl +0 -14
  101. package/source/css/_widgets/_extra/fullpage.styl +0 -46
  102. package/source/css/_widgets/_extra/music.styl +0 -218
  103. package/source/css/_widgets/_extra/pace.styl +0 -39
  104. package/source/css/_widgets/_extra/rightmenu.styl +0 -78
  105. package/source/css/_widgets/_mixins/keyboard.styl +0 -59
  106. package/source/css/_widgets/index.styl +0 -56
  107. package/source/img/logo.png +0 -0
  108. package/source/js/rightside.js +0 -221
  109. /package/source/css/{_widgets/_comment → _comments}/waline.styl +0 -0
  110. /package/source/css/{_widgets/_mixins → _layout}/other.styl +0 -0
  111. /package/source/css/{_widgets/_post → _post}/commentBarrage.styl +0 -0
  112. /package/source/css/{_widgets/_post → _post}/copyright.styl +0 -0
  113. /package/source/css/{_widgets/_post → _post}/index.styl +0 -0
  114. /package/source/css/{_widgets/_post → _post}/meta.styl +0 -0
  115. /package/source/css/{_widgets/_post → _post}/pagination.styl +0 -0
  116. /package/source/css/{_widgets/_post → _post}/postAI.styl +0 -0
  117. /package/source/css/{_widgets/_post → _post}/relatedPost.styl +0 -0
  118. /package/source/css/{_widgets/_search → _search}/algolia-search.styl +0 -0
  119. /package/source/css/{_widgets/_search → _search}/local-search.styl +0 -0
  120. /package/source/css/{_widgets/_tags → _tags}/button.styl +0 -0
  121. /package/source/css/{_widgets/_tags → _tags}/checkbox.styl +0 -0
  122. /package/source/css/{_widgets/_tags → _tags}/fold.styl +0 -0
  123. /package/source/css/{_widgets/_tags → _tags}/gallery.styl +0 -0
  124. /package/source/css/{_widgets/_tags → _tags}/index.styl +0 -0
  125. /package/source/css/{_widgets/_tags → _tags}/label.styl +0 -0
  126. /package/source/css/{_widgets/_tags → _tags}/link.styl +0 -0
  127. /package/source/css/{_widgets/_tags → _tags}/media.styl +0 -0
  128. /package/source/css/{_widgets/_tags → _tags}/mermaid.styl +0 -0
  129. /package/source/css/{_widgets/_tags → _tags}/note.styl +0 -0
  130. /package/source/css/{_widgets/_tags → _tags}/span.styl +0 -0
  131. /package/source/css/{_widgets/_tags → _tags}/tabs.styl +0 -0
  132. /package/source/css/{_widgets/_tags → _tags}/timeline.styl +0 -0
  133. /package/source/js/{lately.min.js → third_party/lately.min.js} +0 -0
  134. /package/source/js/{sco-ai.min.js → third_party/sco-ai.min.js} +0 -0
  135. /package/source/js/{universe.min.js → third_party/universe.min.js} +0 -0
  136. /package/source/js/{waterfall.min.js → third_party/waterfall.min.js} +0 -0
package/source/js/main.js CHANGED
@@ -234,17 +234,29 @@ let sco = {
234
234
  }));
235
235
  }
236
236
  },
237
+ musicToggle: function () {
238
+ const $music = document.querySelector('#nav-music');
239
+ const $meting = document.querySelector('meting-js');
240
+ const $console = document.getElementById('consoleMusic');
241
+ const $toggleButton = document.getElementById('menu-music-toggle');
242
+ wleelw_musicPlaying = !wleelw_musicPlaying;
243
+ $music.classList.toggle("playing", wleelw_musicPlaying);
244
+ $console.classList.toggle("on", wleelw_musicPlaying);
245
+ if (wleelw_musicPlaying) {
246
+ $meting.aplayer.play();
247
+ } else {
248
+ $meting.aplayer.pause();
249
+ }
250
+ },
237
251
  switchCommentBarrage: function () {
238
252
  let commentBarrageElement = document.querySelector(".comment-barrage");
239
253
  if (commentBarrageElement) {
240
254
  if (window.getComputedStyle(commentBarrageElement).display === "flex") {
241
255
  commentBarrageElement.style.display = "none";
242
- document.querySelector(".menu-commentBarrage-text").textContent = "显示热评";
243
256
  document.querySelector("#consoleCommentBarrage").classList.remove("on");
244
257
  localStorage.removeItem("commentBarrageSwitch");
245
258
  } else {
246
259
  commentBarrageElement.style.display = "flex";
247
- document.querySelector(".menu-commentBarrage-text").textContent = "关闭热评";
248
260
  document.querySelector("#consoleCommentBarrage").classList.add("on");
249
261
  localStorage.setItem("commentBarrageSwitch", "false");
250
262
  }
@@ -290,12 +302,10 @@ let sco = {
290
302
  document.documentElement.setAttribute('data-theme', 'dark')
291
303
  saveToLocal.set('theme', 'dark', 0.02);
292
304
  utils.snackbarShow(GLOBAL_CONFIG.lang.theme.dark, false, 2000)
293
- GLOBAL_CONFIG.rightside && (document.querySelector(".menu-darkmode-text").textContent = "浅色模式");
294
305
  } else {
295
306
  document.documentElement.setAttribute('data-theme', 'light')
296
307
  saveToLocal.set('theme', 'light', 0.02);
297
308
  utils.snackbarShow(GLOBAL_CONFIG.lang.theme.light, false, 2000)
298
- GLOBAL_CONFIG.rightside && (document.querySelector(".menu-darkmode-text").textContent = "深色模式");
299
309
  }
300
310
  },
301
311
  hideTodayCard: () => document.getElementById('todayCard').classList.add('hide'),
@@ -368,67 +378,6 @@ let sco = {
368
378
  }
369
379
  });
370
380
  },
371
- downloadImage: function (imageUrl, filename = 'photo') {
372
- if (rm.downloadimging) {
373
- utils.snackbarShow("有正在进行中的下载,请稍后再试");
374
- return;
375
- }
376
-
377
- rm.hideRightMenu();
378
- rm.downloadimging = true;
379
- utils.snackbarShow("正在下载中,请稍后", false, 10000);
380
-
381
- let img = new Image();
382
- img.setAttribute("crossOrigin", "anonymous");
383
- img.onload = function () {
384
- let canvas = document.createElement("canvas");
385
- canvas.width = img.width;
386
- canvas.height = img.height;
387
- let ctx = canvas.getContext("2d");
388
- ctx.drawImage(img, 0, 0, img.width, img.height);
389
-
390
- let dataUrl = canvas.toDataURL("image/png");
391
- let link = document.createElement("a");
392
- link.download = filename;
393
- link.href = dataUrl;
394
-
395
- let clickEvent = new MouseEvent("click");
396
- link.dispatchEvent(clickEvent);
397
-
398
- utils.snackbarShow("图片已添加盲水印,请遵守版权协议");
399
- rm.downloadimging = false;
400
- };
401
- img.src = imageUrl;
402
- },
403
- musicToggle: function () {
404
- const $music = document.querySelector('#nav-music');
405
- const $meting = document.querySelector('meting-js');
406
- const $console = document.getElementById('consoleMusic');
407
- const $toggleButton = document.getElementById('menu-music-toggle');
408
- wleelw_musicPlaying = !wleelw_musicPlaying;
409
- $music.classList.toggle("playing", wleelw_musicPlaying);
410
- $console.classList.toggle("on", wleelw_musicPlaying);
411
- if (wleelw_musicPlaying) {
412
- $meting.aplayer.play();
413
- $toggleButton.innerHTML = `<i class="solitude st-pause-fill"></i><span>暂停音乐</span>`;
414
- } else {
415
- $meting.aplayer.pause();
416
- $toggleButton.innerHTML = `<i class="solitude st-play-fill"></i><span>播放音乐</span>`;
417
- }
418
- rm.hideRightMenu();
419
- },
420
- musicSkipBack: function () {
421
- document.querySelector('meting-js').aplayer.skipBack()
422
- rm.hideRightMenu()
423
- },
424
- musicSkipForward: function () {
425
- document.querySelector('meting-js').aplayer.skipForward()
426
- rm.hideRightMenu()
427
- },
428
- musicGetName: function () {
429
- const titles = Array.from(document.querySelectorAll('.aplayer-title')).map(e => e.innerText);
430
- return titles[0];
431
- },
432
381
  scrollToComment: function () {
433
382
  utils.scrollToDest(utils.getEleTop(document.getElementById('post-comment')), 300)
434
383
  },
@@ -581,13 +530,13 @@ let sco = {
581
530
  });
582
531
  },
583
532
  addNavBackgroundInit: function () {
584
- var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
533
+ const scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
585
534
  if (scrollTop !== 0) {
586
- var pageHeader = document.getElementById("page-header");
535
+ const pageHeader = document.getElementById("page-header");
587
536
  if (pageHeader) {
588
537
  pageHeader.classList.add("nav-fixed", "nav-visible");
589
538
  }
590
- var cookiesWindow = document.getElementById("cookies-window");
539
+ const cookiesWindow = document.getElementById("cookies-window");
591
540
  if (cookiesWindow) {
592
541
  cookiesWindow.style.display = 'none';
593
542
  }
@@ -656,9 +605,63 @@ let sco = {
656
605
  element.dispatchEvent(new Event("input"));
657
606
  });
658
607
  },
608
+ owoBig() {
609
+ const type = GLOBAL_CONFIG.comment.type;
610
+ const owoSelectors = {
611
+ body: type === 'twikoo' ? '.OwO-body' : '.wl-emoji-popup',
612
+ item: type === 'twikoo' ? '.OwO-items li' : '.wl-tab-wrapper button'
613
+ };
614
+
615
+ let owoBig = document.getElementById('owo-big');
616
+ if (!owoBig) {
617
+ owoBig = document.createElement('div');
618
+ owoBig.id = 'owo-big';
619
+ document.body.appendChild(owoBig);
620
+ }
621
+
622
+ const debounce = (func, wait) => {
623
+ let timeout;
624
+ return function (...args) {
625
+ const later = () => {
626
+ clearTimeout(timeout);
627
+ func(...args);
628
+ };
629
+ clearTimeout(timeout);
630
+ timeout = setTimeout(later, wait);
631
+ };
632
+ };
633
+
634
+ const showOwoBig = (event) => {
635
+ const target = event.target;
636
+ const owoItem = target.closest(owoSelectors.item);
637
+ if (owoItem && target.closest(owoSelectors.body)) {
638
+ const imgSrc = owoItem.querySelector('img')?.src;
639
+ if (imgSrc) {
640
+ owoBig.innerHTML = `<img src="${imgSrc}" style="max-width: 100%; height: auto;">`;
641
+ owoBig.style.display = 'block';
642
+ positionOwoBig(owoItem);
643
+ }
644
+ }
645
+ };
646
+
647
+ const hideOwoBig = (event) => {
648
+ if (event.target.closest(owoSelectors.item) && event.target.closest(owoSelectors.body)) {
649
+ owoBig.style.display = 'none';
650
+ }
651
+ };
652
+
653
+ function positionOwoBig(owoItem) {
654
+ const itemRect = owoItem.getBoundingClientRect();
655
+ owoBig.style.left = `${itemRect.left - (owoBig.offsetWidth / 4)}px`;
656
+ owoBig.style.top = `${itemRect.top}px`;
657
+ }
658
+
659
+ document.addEventListener('mouseover', debounce(showOwoBig, 100));
660
+ document.addEventListener('mouseout', hideOwoBig);
661
+ }
659
662
  }
660
663
 
661
- const AddHighLightTool = () => {
664
+ const addHighlight = () => {
662
665
  const highlight = GLOBAL_CONFIG.highlight;
663
666
  if (!highlight) return;
664
667
 
@@ -810,13 +813,12 @@ window.refreshFn = () => {
810
813
  sco.listenToPageInputPress()
811
814
  sco.addNavBackgroundInit()
812
815
  utils.changeTimeFormat()
813
- GLOBAL_CONFIG.rightside.enable && addRightMenuClickEvent()
814
816
  GLOBAL_CONFIG.lazyload.enable && utils.lazyloadImg()
815
817
  GLOBAL_CONFIG.lightbox && utils.lightbox(document.querySelectorAll("#article-container img:not(.flink-avatar)"))
816
818
  GLOBAL_CONFIG.randomlinks && randomLinksList()
817
819
  PAGE_CONFIG.comment && initComment()
818
820
  PAGE_CONFIG.toc && toc.init();
819
- (PAGE_CONFIG.is_post || PAGE_CONFIG.is_page) && ((AddHighLightTool()) || tabs.init())
821
+ (PAGE_CONFIG.is_post || PAGE_CONFIG.is_page) && ((addHighlight()) || tabs.init())
820
822
  PAGE_CONFIG.is_home && showTodayCard()
821
823
  GLOBAL_CONFIG.covercolor.enable && coverColor()
822
824
  sco.initConsoleState()
@@ -224,7 +224,7 @@ const utils = {
224
224
  }
225
225
  }
226
226
  },
227
- changeTimeFormat(){
227
+ changeTimeFormat() {
228
228
  window.Lately && Lately.init({
229
229
  target: 'time',
230
230
  lang: GLOBAL_CONFIG.lang.lately,
@@ -1,9 +0,0 @@
1
-
2
- if page.posts.length > 0
3
- #recent-posts
4
- h1 Recent Posts
5
- each post in page.posts.sort('date', -1).limit(10).toArray()
6
- .recent-post-item
7
- a(href=url_for(post.path))= post.title
8
- if post.date
9
- time(datetime=post.date.toJSON())= date(post.date, date_format)
@@ -1,87 +0,0 @@
1
- div#rightMenu
2
- div.rightMenu-group.rightMenu-small
3
- div.rightMenu-item#menu-backward
4
- i.solitude.st-arrow-left-line
5
- div.rightMenu-item#menu-forward
6
- i.solitude.st-arrow-right-line
7
- div.rightMenu-item#menu-refresh
8
- i.solitude.st-restart-line
9
- div.rightMenu-item#menu-top
10
- i.solitude.st-arrow-up-line
11
- div.rightMenu-group.rightMenu-line.rightMenuPlugin
12
- div.rightMenu-item#menu-copytext
13
- i.solitude.st-copy-fill
14
- span= _p('rightmenu.copytext')
15
- div.rightMenu-item#menu-pastetext
16
- i.solitude.st-clipboard-fill
17
- span= _p('rightmenu.pastetext')
18
- if theme.comment.enable
19
- a.rightMenu-item#menu-commenttext
20
- i.solitude.st-chat-new-fill
21
- span= _p('rightmenu.commenttext')
22
- div.rightMenu-item#menu-newwindow
23
- i.solitude.st-window-fill
24
- span= _p('rightmenu.newwindow')
25
- div.rightMenu-item#menu-copylink
26
- i.solitude.st-link-line
27
- span= _p('rightmenu.copylink')
28
- div.rightMenu-item#menu-copyimg
29
- i.solitude.st-copy-fill
30
- span= _p('rightmenu.copyimg')
31
- div.rightMenu-item#menu-downloadimg
32
- i.solitude.st-download-cloud-fill
33
- span= _p('rightmenu.downloadimg')
34
- div.rightMenu-item#menu-search
35
- i.solitude.st-search-line
36
- span= _p('rightmenu.search')
37
- div.rightMenu-item#menu-music-toggle
38
- i.solitude.st-play-fill
39
- span= _p('rightmenu.music.toggle')
40
- div.rightMenu-item#menu-music-back
41
- i.solitude.st-skip-back-fill
42
- span= _p('rightmenu.music.back')
43
- div.rightMenu-item#menu-music-forward
44
- i.solitude.st-skip-forward-fill
45
- span= _p('rightmenu.music.forward')
46
- div.rightMenu-item#menu-music-playlist(onclick=`window.open('${theme.capsule.server === 'tencent' ? `https://y.qq.com/n/ryqq/playlist/${theme.capsule.id}` : `https://music.163.com/#/playlist?id=${theme.capsule.id}`}', '_blank');`)
47
- i.solitude.st-play-list-2-line
48
- span= _p('rightmenu.music.playlist')
49
- div.rightMenu-item#menu-music-copyMusicName
50
- i.solitude.st-copy-fill
51
- span= _p('rightmenu.music.copyMusicName')
52
- div.rightMenu-group.rightMenu-line.rightMenuOther
53
- a.rightMenu-item.menu-Link#menu-randomPost
54
- i.solitude.st-signal-tower-fill
55
- span= _p('rightmenu.randomPost')
56
- a.rightMenu-item.menu-link(href="/categories/")
57
- i.solitude.st-checkbox-multiple-blank-fill
58
- span= _p('rightmenu.categories')
59
- a.rightMenu-item.menu-link(href="/tags/")
60
- i.solitude.st-price-tag-fill
61
- span= _p('rightmenu.tags')
62
- div.rightMenu-group.rightMenu-line.rightMenuOther
63
- div.rightMenu-item#menu-copy
64
- i.solitude.st-external-link-fill
65
- span= _p('rightmenu.copyaddress')
66
- if theme.comment.enable && theme.comment.commentBarrage
67
- div.rightMenu-item#menu-commentBarrage
68
- i.solitude.st-chat-fill
69
- span.menu-commentBarrage-text= _p('rightmenu.commentBarrage')
70
- div.rightMenu-item#menu-darkmode
71
- i.solitude.st-moon-clear-fill
72
- case theme.display_mode.type
73
- when 'auto'
74
- when 'light'
75
- span.menu-darkmode-text= _p('rightmenu.dark')
76
- when 'dark'
77
- span.menu-darkmode-text= _p('rightmenu.light')
78
- if theme.translate.enable
79
- div.rightMenu-item#menu-translate
80
- case theme.translate.defaultEncoding
81
- when 2
82
- i.solitude.st-panben-line
83
- span= _p('rightmenu.chs_to_cht')
84
- when 1
85
- i.solitude.st-jianben-line
86
- span= _p('rightmenu.cht_to_chs')
87
- div#rightmenu-mask
@@ -1,308 +0,0 @@
1
- *
2
- box-sizing border-box
3
-
4
- html
5
- line-height 1.15
6
- -webkit-text-size-adjust 100%
7
- text-size-adjust 100%
8
- height: 100%;
9
- font-size: 20px
10
- overflow-y: overlay
11
-
12
- main
13
- display block
14
-
15
- body
16
- position relative
17
- min-height 100%
18
- background var(--efu-background)
19
- color var(--efu-fontcolor)
20
- font-size 16px
21
- font-family "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei"
22
- line-height 2
23
- -webkit-tap-highlight-color transparent
24
- margin 0
25
-
26
- ::selection
27
- background var(--efu-main)
28
- color var(--efu-white)
29
-
30
- i.solitude
31
- font-size 22px
32
- line-height 1
33
-
34
- h1
35
- font-size 2em
36
- margin .67em 0
37
-
38
- h1, h2, h3, h4, h5, h6
39
- padding-top 0
40
- padding-left 0
41
- font-weight 700
42
- position relative
43
- margin 1rem 0 0.7rem
44
- color var(--efu-fontcolor)
45
-
46
- hr
47
- box-sizing content-box
48
- height 0
49
- overflow visible
50
- display: none
51
-
52
- pre
53
- font-family monospace, monospace
54
-
55
- a
56
- color var(--efu-fontcolor)
57
- text-decoration none
58
- transition all .3s ease 0s
59
- overflow-wrap break-word
60
- -webkit-user-drag none
61
-
62
- abbr[title]
63
- border-bottom none
64
- text-decoration underline dotted
65
-
66
- b, strong
67
- font-weight bolder
68
-
69
- code, kbd, samp
70
- font-family monospace, monospace
71
- font-size 1em
72
-
73
- small
74
- font-size 80%
75
-
76
- sub, sup
77
- font-size 75%
78
- line-height 0
79
- position relative
80
- vertical-align baseline
81
-
82
- sub
83
- bottom -.25em
84
-
85
- sup
86
- top -.5em
87
-
88
- button, input, optgroup, select, textarea
89
- font-family inherit
90
- font-size 100%
91
- line-height 1.15
92
- margin 0
93
-
94
- button, input
95
- overflow visible
96
-
97
- input::placeholder
98
- color var(--efu-gray)
99
-
100
- button, select
101
- text-transform none
102
-
103
- [type=button], [type=reset], [type=submit], button
104
- appearance button
105
-
106
- fieldset
107
- padding .35em .75em .625em
108
-
109
- legend
110
- box-sizing border-box
111
- color inherit
112
- display table
113
- max-width 100%
114
- padding 0
115
- white-space normal
116
-
117
- progress
118
- vertical-align baseline
119
-
120
- textarea
121
- overflow auto
122
-
123
- [type=checkbox], [type=radio]
124
- box-sizing border-box
125
- padding 0
126
-
127
- [type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button
128
- height auto
129
-
130
- [type=search]
131
- appearance textfield
132
- outline-offset -2px
133
-
134
- [type=search]::-webkit-search-decoration
135
- appearance none
136
-
137
- input[type=checkbox] + label::before, input[type=radio] + label::before
138
- content ''
139
- display inline-block
140
- width 16px
141
- height 16px
142
- border 1px solid #999
143
- background-color #fff
144
- margin-right 5px
145
- vertical-align middle
146
-
147
- ::-webkit-file-upload-button
148
- appearance button
149
- font inherit
150
-
151
- summary
152
- display list-item
153
-
154
- template
155
- display none
156
-
157
- [hidden]
158
- display none
159
-
160
- input::placeholder
161
- color var(--efu-fontcolor)
162
-
163
- .table-wrap
164
- overflow-x scroll
165
- margin 0 0 1rem
166
-
167
- table
168
- display table
169
- width 100%
170
- border-spacing 0
171
- border-collapse collapse
172
- empty-cells show
173
-
174
- table thead
175
- background rgba(153, 169, 191, .1)
176
-
177
- table td, table th
178
- padding .3rem .6rem
179
- border 1px solid var(--light-grey)
180
- vertical-align middle
181
-
182
- button
183
- padding 0
184
- outline 0
185
- border none
186
- color var(--efu-fontcolor)
187
- background 0 0
188
- cursor pointer
189
-
190
- img
191
- border-style none
192
- max-width 100%
193
- transition all .2s ease 0s
194
- -webkit-user-drag none
195
-
196
- img:not([src]), img[src=""]
197
- opacity 0
198
-
199
- .img-alt
200
- font-size 12px
201
- margin 0
202
- margin-top 8px
203
- color var(--efu-secondtext)
204
-
205
- .is-center
206
- text-align center
207
- display flex
208
- flex-wrap wrap
209
- justify-content center
210
- flex-direction row
211
- align-items center
212
-
213
- .copy-true
214
- user-select all
215
-
216
- .pull-left
217
- float left
218
-
219
- .pull-right
220
- float right
221
-
222
- blockquote
223
- border: var(--style-border-always);
224
- background-color: var(--efu-secondbg);
225
- color: var(--efu-secondtext);
226
- border-radius: 8px;
227
- margin: 1rem 0;
228
- padding: .5rem .8rem
229
-
230
- a
231
- color var(--blockquote-color)
232
-
233
- p
234
- margin 0 !important
235
- padding: 0
236
-
237
- .pullquote
238
- position relative
239
- max-width 45%
240
- font-size 110%
241
-
242
- .left
243
- left 0
244
- margin 1em .5em 0 0
245
-
246
- .right
247
- right 0
248
- margin 1em 0 0 .5em
249
-
250
- li, ul
251
- list-style none
252
- display block
253
- margin 0
254
- padding 0
255
-
256
- ::-webkit-scrollbar
257
- width 6px
258
- height 6px
259
-
260
- ::-webkit-scrollbar-thumb
261
- background var(--efu-scrollbar)
262
- border-radius 8px
263
- cursor pointer
264
-
265
- ::-webkit-scrollbar-thumb:hover
266
- background var(--efu-main)
267
- opacity 1
268
- display block !important
269
-
270
- ::-webkit-scrollbar-track
271
- background-color var(--efu-none)
272
-
273
- [data-theme=dark] img
274
- filter brightness(1)
275
-
276
- a.extend
277
- .next
278
- right 0
279
-
280
- .prev
281
- left 0
282
-
283
- .table-wrap
284
- margin 1rem 0
285
- border-radius 8px
286
-
287
- table td, table th
288
- border var(--style-border-always)
289
-
290
- table thead
291
- background var(--efu-secondbg)
292
-
293
- b, strong
294
- color var(--efu-lighttext)
295
-
296
- .button--animated
297
- border-radius 8px
298
- transition .3s
299
- position relative
300
-
301
- if hexo-config('fancybox')
302
- a.fancybox
303
- border-bottom 0
304
- padding 0
305
- margin auto
306
- display contents
307
- width fit-content
308
- user-select none