hexo-theme-solitude 1.5.11 → 1.6.0

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 (99) 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 +87 -71
  6. package/layout/includes/footer.pug +1 -1
  7. package/layout/includes/inject/head.pug +1 -2
  8. package/layout/includes/loading.pug +1 -1
  9. package/layout/includes/widgets/home/banner.pug +1 -1
  10. package/layout/includes/widgets/home/categoryGroup.pug +0 -1
  11. package/layout/includes/widgets/home/postList.pug +74 -29
  12. package/layout/includes/widgets/nav/group.pug +1 -1
  13. package/layout/page.pug +1 -1
  14. package/package.json +1 -1
  15. package/plugins.yml +0 -4
  16. package/scripts/event/cdn.js +4 -4
  17. package/scripts/event/merge_config.js +9 -1
  18. package/scripts/event/welcome.js +2 -2
  19. package/scripts/filter/checkThemeConfig.js +2 -2
  20. package/scripts/filter/default.js +4 -2
  21. package/scripts/filter/lazyload.js +18 -5
  22. package/scripts/filter/randomPosts.js +1 -1
  23. package/scripts/helper/stylus.js +8 -14
  24. package/source/css/_global/index.styl +362 -1
  25. package/source/css/_layout/aside.styl +751 -0
  26. package/source/css/_layout/capsule.styl +213 -0
  27. package/source/css/_layout/fullpage.styl +47 -0
  28. package/source/css/_layout/keyboard.styl +60 -0
  29. package/source/css/_layout/pace.styl +40 -0
  30. package/source/css/_layout/rightmenu.styl +79 -0
  31. package/source/css/_layout/universe.styl +18 -0
  32. package/source/css/_page/_home/home-top.styl +1 -3
  33. package/source/css/_page/_home/recent-post.styl +407 -170
  34. package/source/css/_page/douban.styl +111 -109
  35. package/source/css/_page/share.styl +1 -17
  36. package/source/css/{_widgets/_post → _post}/content.styl +0 -3
  37. package/source/css/index.styl +20 -5
  38. package/source/css/third_party/snackbar.min.css +1 -0
  39. package/source/css/{_global/var.styl → var.styl} +7 -1
  40. package/source/img/avatar.png +0 -0
  41. package/source/img/default.png +0 -0
  42. package/source/img/pwa/favicon.ico +0 -0
  43. package/source/img/pwa/favicon_128.ico +0 -0
  44. package/source/img/pwa/favicon_16.ico +0 -0
  45. package/source/img/pwa/favicon_256.ico +0 -0
  46. package/source/img/pwa/favicon_32.ico +0 -0
  47. package/source/js/main.js +1 -0
  48. package/layout/includes/recent-posts.pug +0 -9
  49. package/source/css/_layout/basic.styl +0 -308
  50. package/source/css/_layout/index.styl +0 -125
  51. package/source/css/_widgets/_aside/allinfo.styl +0 -168
  52. package/source/css/_widgets/_aside/flip.styl +0 -67
  53. package/source/css/_widgets/_aside/index.styl +0 -90
  54. package/source/css/_widgets/_aside/info.styl +0 -263
  55. package/source/css/_widgets/_aside/newPost.styl +0 -61
  56. package/source/css/_widgets/_aside/toc.styl +0 -108
  57. package/source/css/_widgets/_aside/welcome.styl +0 -14
  58. package/source/css/_widgets/_extra/fullpage.styl +0 -46
  59. package/source/css/_widgets/_extra/music.styl +0 -218
  60. package/source/css/_widgets/_extra/pace.styl +0 -39
  61. package/source/css/_widgets/_extra/rightmenu.styl +0 -78
  62. package/source/css/_widgets/_mixins/keyboard.styl +0 -59
  63. package/source/css/_widgets/index.styl +0 -56
  64. package/source/img/logo.png +0 -0
  65. /package/source/css/{_widgets/_comment → _comments}/index.styl +0 -0
  66. /package/source/css/{_widgets/_comment → _comments}/twikoo.styl +0 -0
  67. /package/source/css/{_widgets/_comment → _comments}/waline.styl +0 -0
  68. /package/source/css/{_widgets/_mixins → _layout}/article-sort.styl +0 -0
  69. /package/source/css/{_widgets/_extra → _layout}/console.styl +0 -0
  70. /package/source/css/{_widgets/_mixins → _layout}/footer.styl +0 -0
  71. /package/source/css/{_widgets/_mixins → _layout}/other.styl +0 -0
  72. /package/source/css/{_widgets/_mixins → _layout}/sidebar.styl +0 -0
  73. /package/source/css/{_widgets/_post → _post}/commentBarrage.styl +0 -0
  74. /package/source/css/{_widgets/_post → _post}/copyright.styl +0 -0
  75. /package/source/css/{_widgets/_post → _post}/index.styl +0 -0
  76. /package/source/css/{_widgets/_post → _post}/meta.styl +0 -0
  77. /package/source/css/{_widgets/_post → _post}/pagination.styl +0 -0
  78. /package/source/css/{_widgets/_post → _post}/postAI.styl +0 -0
  79. /package/source/css/{_widgets/_post → _post}/relatedPost.styl +0 -0
  80. /package/source/css/{_widgets/_post → _post}/tools.styl +0 -0
  81. /package/source/css/{_widgets/_search → _search}/algolia-search.styl +0 -0
  82. /package/source/css/{_widgets/_search → _search}/local-search.styl +0 -0
  83. /package/source/css/{_widgets/_tags → _tags}/button.styl +0 -0
  84. /package/source/css/{_widgets/_tags → _tags}/checkbox.styl +0 -0
  85. /package/source/css/{_widgets/_tags → _tags}/fold.styl +0 -0
  86. /package/source/css/{_widgets/_tags → _tags}/gallery.styl +0 -0
  87. /package/source/css/{_widgets/_tags → _tags}/index.styl +0 -0
  88. /package/source/css/{_widgets/_tags → _tags}/label.styl +0 -0
  89. /package/source/css/{_widgets/_tags → _tags}/link.styl +0 -0
  90. /package/source/css/{_widgets/_tags → _tags}/media.styl +0 -0
  91. /package/source/css/{_widgets/_tags → _tags}/mermaid.styl +0 -0
  92. /package/source/css/{_widgets/_tags → _tags}/note.styl +0 -0
  93. /package/source/css/{_widgets/_tags → _tags}/span.styl +0 -0
  94. /package/source/css/{_widgets/_tags → _tags}/tabs.styl +0 -0
  95. /package/source/css/{_widgets/_tags → _tags}/timeline.styl +0 -0
  96. /package/source/js/{lately.min.js → third_party/lately.min.js} +0 -0
  97. /package/source/js/{sco-ai.min.js → third_party/sco-ai.min.js} +0 -0
  98. /package/source/js/{universe.min.js → third_party/universe.min.js} +0 -0
  99. /package/source/js/{waterfall.min.js → third_party/waterfall.min.js} +0 -0
package/.github/logo.svg CHANGED
@@ -1,13 +1,47 @@
1
- <svg width="230.246382px" height="528.14px" viewBox="0 0 230.246382 528.14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
- <g transform="translate(-226, -116)" fill="#ffffff">
3
- <g transform="translate(226, 116)">
4
- <path d="M57.45,507.17 C87.47,434.44 230.61,428.18 164.36,316.39 C212.12,434.18 9.66,435.54 36.6,528.14 C17.62,500.02 25.38,462.49 52.37,442.85 C75.91,424.74 107.39,421.7 130.58,402.53 C171.31,374.92 166.56,325.05 133.62,293.12 C132.68,292.18 131.28,291.3 130.01,291.17 C119.53,290.08 109.04,289.05 98.53,288.24 C79.12,286.75 60.28,288.9 42.67,297.89 C37.86,300.34 33.03,302.08 27.6,300.14 C33.72,298.92 39.79,297.68 44.87,293.88 C44.79,293.56 44.72,293.24 44.64,292.92 C41.32,293.46 38.49,294.75 34.98,294.61 C52.95,282.27 33.41,281.35 22.36,283.36 C60.84,254.97 50.11,209.81 117.04,223.24 C139.92,175.21 157.05,197.72 184.56,168.99 C179.89,182.55 173.44,195.52 167.6,208.66 C161.44,224.1 147.53,226.31 133.23,229.81 C138.31,228.28 140.3,231.71 142.79,234.8 C178.23,276.79 218.08,323.74 215.23,382.21 C203.29,447.16 91.81,452.67 57.45,507.17 L57.45,507.17 Z M98.73,237.9 C84.56,245.85 62.06,243.13 65.36,266.34 C72.8,249.43 82.85,269.83 98.73,237.9 L98.73,237.9 Z"></path>
5
- <path d="M103.24,292.22 C145.96,290.35 154.28,363.26 122.46,383.67 C75.04,415.94 -15.57,451.75 26.56,523.99 C26.33,524.2 26.11,524.4 25.88,524.61 C-15.13,490.92 3.46,427.39 41.47,399.45 C75.34,371.1 137.8,345.29 103.24,292.22 Z"></path>
6
- <path d="M180.53,61.39 C193.55,71.71 205.68,82.95 214.14,98.2 C235.91,61.72 209.58,23.4 181.1,1.42108547e-14 C225.16,22.33 250.67,81.66 209.34,121.31 C183.34,150.9 113.9,176.15 113.94,217.67 L95.83,217.67 C97.99,174.23 143.39,172.05 127.65,156.15 C117.75,141.99 113.4,126.39 114.33,108.12 C128.05,176.8 164.52,145.45 199.59,112.86 C211.65,96.64 189.69,74.44 180.53,61.4 L180.53,61.39 Z"></path>
7
- <path d="M85.9,78.04 C59.55,88.09 25.27,104.68 32.74,138.16 C42.5,137.44 52.22,136.73 61.94,136.01 C62,136.43 62.07,136.84 62.13,137.26 C26.33,142.58 40.67,154.56 60.06,170.78 C76.17,181.91 90.18,139.63 98.01,129.66 C93.29,140.64 88.5,151.59 83.89,162.61 C80.13,172.92 74.04,181.5 84.12,190.32 C90.76,198.2 93.17,207.28 91.84,217.64 C86.92,218.82 81.9,220.02 76.85,221.22 C83.3,186.96 61.25,189.69 40.71,170.75 C-2.36,130.04 36.14,81.84 85.9,78.04 Z"></path>
8
- <path d="M0.01,197.73 C23.76,225.14 49.6,200.73 64.2,227.4 C56.81,232.31 51.62,239.03 48,246.92 C29.16,243.37 12.18,223.59 0,197.74 L0.01,197.73 Z"></path>
9
- <path d="M39.77,287.74 C34.98,288.66 32.59,293.58 28.57,295.68 C22.5,295.98 16.89,294.03 15.98,287.06 C23.86,286.49 31.01,285.98 38.16,285.46 L39.77,287.73 L39.77,287.74 Z"></path>
10
- <path d="M90.51,244.92 C82.85,248.24 72.72,246.39 69.03,256.91 C77.44,255 86.24,254.41 90.51,244.92 Z" id="路径"></path>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="167px" height="382px" viewBox="0 0 167 382" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>logo</title>
4
+ <defs>
5
+ <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-1">
6
+ <stop stop-color="#FECCCC" offset="0%"></stop>
7
+ <stop stop-color="#39BDE4" offset="100%"></stop>
8
+ </linearGradient>
9
+ <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-2">
10
+ <stop stop-color="#FECCCC" offset="0%"></stop>
11
+ <stop stop-color="#39BDE4" offset="100%"></stop>
12
+ </linearGradient>
13
+ <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-3">
14
+ <stop stop-color="#FECCCC" offset="0%"></stop>
15
+ <stop stop-color="#39BDE4" offset="100%"></stop>
16
+ </linearGradient>
17
+ <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-4">
18
+ <stop stop-color="#FECCCC" offset="0%"></stop>
19
+ <stop stop-color="#39BDE4" offset="100%"></stop>
20
+ </linearGradient>
21
+ <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-5">
22
+ <stop stop-color="#FECCCC" offset="0%"></stop>
23
+ <stop stop-color="#39BDE4" offset="100%"></stop>
24
+ </linearGradient>
25
+ <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-6">
26
+ <stop stop-color="#FECCCC" offset="0%"></stop>
27
+ <stop stop-color="#39BDE4" offset="100%"></stop>
28
+ </linearGradient>
29
+ <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-7">
30
+ <stop stop-color="#FECCCC" offset="0%"></stop>
31
+ <stop stop-color="#39BDE4" offset="100%"></stop>
32
+ </linearGradient>
33
+ </defs>
34
+ <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
35
+ <g id="画板" transform="translate(-167, -59)" fill-rule="nonzero">
36
+ <g id="logo" transform="translate(167, 59)">
37
+ <path d="M41.451978,366.819156 C63.2265115,314.167618 167.050853,309.635807 118.99746,228.707504 C153.639423,313.979396 6.78825531,314.963943 26.3287594,382 C12.5619158,361.643046 18.1905094,334.473897 37.7672802,320.255882 C54.8416479,307.145482 77.6751693,304.944731 94.4956701,291.066964 C124.038533,271.079215 120.593196,234.976751 96.7006861,211.861618 C96.0188719,211.181122 95.003404,210.544062 94.0822296,210.449951 C86.4807269,209.660866 78.8719708,208.915216 71.2487081,208.328832 C57.1699707,207.250174 43.5046739,208.806627 30.7315382,215.314771 C27.2426805,217.088403 23.7393162,218.348044 19.8007514,216.943617 C24.2397968,216.06042 28.6425756,215.162745 32.3272735,212.411806 C32.2692467,212.180148 32.2184733,211.948489 32.1604466,211.716831 C29.7523369,212.107754 27.6996411,213.041626 25.1537179,212.940276 C38.187974,204.006961 24.0149432,203.340944 16,204.796046 C43.9108611,184.243631 36.1280248,151.550884 84.6746446,161.273284 C101.270292,126.502854 113.695267,142.798552 133.649212,122 C130.261901,131.816511 125.583495,141.205903 121.347543,150.718363 C116.879484,161.895865 106.790085,163.495754 96.4178058,166.029514 C100.102504,164.921899 101.545919,167.404984 103.352001,169.641932 C129.057846,200.039816 157.962415,234.0284 155.895212,276.356675 C147.234722,323.376027 66.3744621,327.364889 41.451978,366.819156 L41.451978,366.819156 Z M71.3937749,171.88612 C61.1157889,177.641375 44.7957688,175.672282 47.1893718,192.474732 C52.5858584,180.23305 59.8754674,195.001253 71.3937749,171.88612 L71.3937749,171.88612 Z" id="形状" fill="url(#linearGradient-1)"></path>
38
+ <path d="M75.3032249,211.025533 C106.026327,209.673873 112.009852,262.374155 89.125744,277.126764 C55.0225258,300.451933 -10.1418056,326.335859 20.1569835,378.551856 C19.9915736,378.703647 19.8333554,378.848209 19.6679454,379 C-9.82536916,354.648437 3.54407043,308.728139 30.8798638,288.53275 C55.238278,268.041007 100.157869,249.385209 75.3032249,211.025533 Z" id="路径" fill="url(#linearGradient-2)"></path>
39
+ <path d="M131.122758,44.5611246 C140.518488,52.0520972 149.271959,60.2108697 155.377019,71.2803786 C171.087083,44.8006616 152.086349,16.9853448 131.534092,0 C163.329472,16.2086645 181.738463,59.2744981 151.913155,88.0552212 C133.150561,109.533698 83.0400028,127.861901 83.0688683,158 L70,158 C71.5587386,126.468232 104.321114,124.885836 92.9625284,113.344512 C85.81831,103.066201 82.6791837,91.7426379 83.3503072,78.4810034 C93.2511837,128.333716 119.56933,105.577709 144.877183,81.9216245 C153.58014,70.1480222 137.732964,54.0337208 131.122758,44.5683833 L131.122758,44.5611246 Z" id="路径" fill="url(#linearGradient-3)"></path>
40
+ <path d="M62.2292659,56 C43.1451334,63.2999022 18.3176548,75.3501886 23.7278434,99.6686688 C30.7965771,99.1456907 37.8363406,98.6299763 44.876104,98.1069982 C44.9195594,98.4120687 44.9702573,98.7098757 45.0137126,99.0149462 C19.0853656,102.879173 29.4711895,111.580947 43.5145037,123.362481 C55.1822598,131.44685 65.3290794,100.736416 71,93.4946222 C67.581514,101.470038 64.1123302,109.423663 60.7735123,117.428132 C58.0503116,124.916888 53.6395956,131.149043 60.9400911,137.555525 C65.7491476,143.279229 67.4946034,149.874563 66.5313436,157.399637 C62.9680065,158.25674 59.3322439,159.12837 55.6747536,160 C60.3462016,135.11496 44.3763678,137.097919 29.5001597,123.34069 C-1.69352472,93.7706384 26.1903121,58.760162 62.2292659,56 Z" id="路径" fill="url(#linearGradient-4)"></path>
41
+ <path d="M0.00732087227,143 C17.3943925,162.502948 36.3115265,145.13458 47,164.110998 C41.5898754,167.604594 37.7903427,172.386054 35.1401869,178 C21.3476636,175.47408 8.91682243,161.400081 0,143.007115 L0.00732087227,143 Z" id="路径" fill="url(#linearGradient-5)"></path>
42
+ <path d="M29,207.557191 C25.5771332,208.185531 23.8692728,211.545785 20.9966372,212.980039 C16.6591005,213.184933 12.6502732,211.853125 12,207.092765 C17.6309374,206.703468 22.740227,206.355149 27.8495166,206 L29,207.550361 L29,207.557191 Z" id="路径" fill="url(#linearGradient-6)"></path>
43
+ <path d="M66,177 C60.2942272,179.492077 52.7486034,178.10342 50,186 C56.264432,184.566305 62.8193669,184.123436 66,177 Z" id="路径" fill="url(#linearGradient-7)"></path>
44
+ </g>
11
45
  </g>
12
46
  </g>
13
47
  </svg>
package/README.md CHANGED
@@ -8,13 +8,33 @@
8
8
 
9
9
  <p align="center">An elegant Hexo theme that supports lazy loading, PWA, Latex, and multiple comment systems.</p>
10
10
 
11
+ ![npm package](https://img.shields.io/npm/v/hexo-theme-solitude?color=blue&logo=npm)
11
12
  ![release](https://img.shields.io/github/package-json/v/valor-x/hexo-theme-solitude/master?color=%231ab1ad&label=release)
12
- ![https://img.shields.io/npm/v/hexo-theme-solitude?color=%09%23bf00ff](https://img.shields.io/npm/v/hexo-theme-solitude?color=%09%23bf00ff)
13
13
  ![license](https://img.shields.io/github/license/valor-x/hexo-theme-solitude?color=FF5531)
14
- ![hexo version](https://img.shields.io/badge/hexo-6.3.0+-0e83c)
15
14
  [![Stars](https://img.shields.io/github/stars/valor-x/hexo-theme-solitude)](https://github.com/valor-x/hexo-theme-solitude/stargazers)
16
15
  [![GitHub all releases](https://img.shields.io/github/downloads/valor-x/hexo-theme-solitude/total)](https://github.com/valor-x/hexo-theme-solitude/releases/latest)
17
16
 
17
+ ![hexo version](https://img.shields.io/badge/hexo-7.0.0+-blue?logo=hexo&logoColor=white)
18
+ ![node version](https://img.shields.io/badge/node-14.0.0-white?logo=node.js&logoColor=white)
19
+
20
+ ![Latex](https://img.shields.io/badge/latex-20B2AA?logo=Latex)
21
+ ![Ads](https://img.shields.io/badge/Google_Ads-black?logo=googleads)
22
+ ![algolia](https://img.shields.io/badge/algolia-457AFF?logo=algolia)
23
+
24
+ ![cdnjs](https://img.shields.io/badge/cdnjs-orange?logo=Cloudflare&logoColor=white)
25
+ ![A11y](https://img.shields.io/badge/A11y-green?logo=%C3%8Ele-de-France%20Mobilit%C3%A9s&logoColor=white)
26
+ ![mermaid](https://img.shields.io/badge/mermaid-ff3670?logo=mermaid&logoColor=white)
27
+ [![pwa](https://img.shields.io/badge/pwa-red?logo=pwa)](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps)
28
+
29
+ [![twiter](https://img.shields.io/badge/@efu__oo-gray?logo=x)](https://twitter.com/efu_oo)
30
+ [![TG](https://img.shields.io/badge/efuome-gray?logo=Telegram&logoColor=white)](https://t.me/efuome)
31
+
32
+ ![JetBrains](https://img.shields.io/badge/jetbrains-support-black?logo=jetbrains)
33
+ ![DuoLingo](https://img.shields.io/badge/duolingo-support-black?logo=duolingo&logoColor=white)
34
+
35
+ [![gitee](https://img.shields.io/badge/Gitee-red?logo=gitee)](https://gitee.com/nsjjd_w/hexo-theme-solitude)
36
+ [![gitlab](https://img.shields.io/badge/GitLab-blue?logo=gitlab)](https://gitlab.com/efu/hexo-theme-solitude)
37
+
18
38
  [Preview](https://solitude-demo.efu.me/) 丨 [Documentation](https://solitude-docs.efu.me/)
19
39
 
20
40
  </div>
package/README_zh-cn.md CHANGED
@@ -8,13 +8,33 @@
8
8
 
9
9
  <p align="center">一款优雅的 Hexo 主题,支持懒加载、PWA、Latex以及多种评论系统。</p>
10
10
 
11
+ ![npm package](https://img.shields.io/npm/v/hexo-theme-solitude?color=blue&logo=npm)
11
12
  ![release](https://img.shields.io/github/package-json/v/valor-x/hexo-theme-solitude/master?color=%231ab1ad&label=release)
12
- ![https://img.shields.io/npm/v/hexo-theme-solitude?color=%09%23bf00ff](https://img.shields.io/npm/v/hexo-theme-solitude?color=%09%23bf00ff)
13
13
  ![license](https://img.shields.io/github/license/valor-x/hexo-theme-solitude?color=FF5531)
14
- ![hexo version](https://img.shields.io/badge/hexo-6.3.0+-0e83c)
15
14
  [![Stars](https://img.shields.io/github/stars/valor-x/hexo-theme-solitude)](https://github.com/valor-x/hexo-theme-solitude/stargazers)
16
15
  [![GitHub all releases](https://img.shields.io/github/downloads/valor-x/hexo-theme-solitude/total)](https://github.com/valor-x/hexo-theme-solitude/releases/latest)
17
16
 
17
+ ![hexo version](https://img.shields.io/badge/hexo-7.0.0+-blue?logo=hexo&logoColor=white)
18
+ ![node version](https://img.shields.io/badge/node-14.0.0-white?logo=node.js&logoColor=white)
19
+
20
+ ![Latex](https://img.shields.io/badge/latex-20B2AA?logo=Latex)
21
+ ![Ads](https://img.shields.io/badge/Google_Ads-black?logo=googleads)
22
+ ![algolia](https://img.shields.io/badge/algolia-457AFF?logo=algolia)
23
+
24
+ ![cdnjs](https://img.shields.io/badge/cdnjs-orange?logo=Cloudflare&logoColor=white)
25
+ ![A11y](https://img.shields.io/badge/A11y-green?logo=%C3%8Ele-de-France%20Mobilit%C3%A9s&logoColor=white)
26
+ ![mermaid](https://img.shields.io/badge/mermaid-ff3670?logo=mermaid&logoColor=white)
27
+ [![pwa](https://img.shields.io/badge/pwa-red?logo=pwa)](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps)
28
+
29
+ [![twiter](https://img.shields.io/badge/@efu__oo-gray?logo=x)](https://twitter.com/efu_oo)
30
+ [![TG](https://img.shields.io/badge/efuome-gray?logo=Telegram&logoColor=white)](https://t.me/efuome)
31
+
32
+ ![JetBrains](https://img.shields.io/badge/jetbrains-support-black?logo=jetbrains)
33
+ ![DuoLingo](https://img.shields.io/badge/duolingo-support-black?logo=duolingo&logoColor=white)
34
+
35
+ [![gitee](https://img.shields.io/badge/Gitee-red?logo=gitee)](https://gitee.com/nsjjd_w/hexo-theme-solitude)
36
+ [![gitlab](https://img.shields.io/badge/GitLab-blue?logo=gitlab)](https://gitlab.com/efu/hexo-theme-solitude)
37
+
18
38
  [预览](https://solitude-demo.efu.me/) 丨 [文档](https://solitude-docs.efu.me/)
19
39
 
20
40
  </div>
package/README_zh-tw.md CHANGED
@@ -8,13 +8,33 @@
8
8
 
9
9
  <p align="center">一款優雅的 Hexo 主題,支援懶載入、PWA、Latex以及多種評論系統。</p>
10
10
 
11
+ ![npm package](https://img.shields.io/npm/v/hexo-theme-solitude?color=blue&logo=npm)
11
12
  ![release](https://img.shields.io/github/package-json/v/valor-x/hexo-theme-solitude/master?color=%231ab1ad&label=release)
12
- ![https://img.shields.io/npm/v/hexo-theme-solitude?color=%09%23bf00ff](https://img.shields.io/npm/v/hexo-theme-solitude?color=%09%23bf00ff)
13
13
  ![license](https://img.shields.io/github/license/valor-x/hexo-theme-solitude?color=FF5531)
14
- ![hexo version](https://img.shields.io/badge/hexo-6.3.0+-0e83c)
15
14
  [![Stars](https://img.shields.io/github/stars/valor-x/hexo-theme-solitude)](https://github.com/valor-x/hexo-theme-solitude/stargazers)
16
15
  [![GitHub all releases](https://img.shields.io/github/downloads/valor-x/hexo-theme-solitude/total)](https://github.com/valor-x/hexo-theme-solitude/releases/latest)
17
16
 
17
+ ![hexo version](https://img.shields.io/badge/hexo-7.0.0+-blue?logo=hexo&logoColor=white)
18
+ ![node version](https://img.shields.io/badge/node-14.0.0-white?logo=node.js&logoColor=white)
19
+
20
+ ![Latex](https://img.shields.io/badge/latex-20B2AA?logo=Latex)
21
+ ![Ads](https://img.shields.io/badge/Google_Ads-black?logo=googleads)
22
+ ![algolia](https://img.shields.io/badge/algolia-457AFF?logo=algolia)
23
+
24
+ ![cdnjs](https://img.shields.io/badge/cdnjs-orange?logo=Cloudflare&logoColor=white)
25
+ ![A11y](https://img.shields.io/badge/A11y-green?logo=%C3%8Ele-de-France%20Mobilit%C3%A9s&logoColor=white)
26
+ ![mermaid](https://img.shields.io/badge/mermaid-ff3670?logo=mermaid&logoColor=white)
27
+ [![pwa](https://img.shields.io/badge/pwa-red?logo=pwa)](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps)
28
+
29
+ [![twiter](https://img.shields.io/badge/@efu__oo-gray?logo=x)](https://twitter.com/efu_oo)
30
+ [![TG](https://img.shields.io/badge/efuome-gray?logo=Telegram&logoColor=white)](https://t.me/efuome)
31
+
32
+ ![JetBrains](https://img.shields.io/badge/jetbrains-support-black?logo=jetbrains)
33
+ ![DuoLingo](https://img.shields.io/badge/duolingo-support-black?logo=duolingo&logoColor=white)
34
+
35
+ [![gitee](https://img.shields.io/badge/Gitee-red?logo=gitee)](https://gitee.com/nsjjd_w/hexo-theme-solitude)
36
+ [![gitlab](https://img.shields.io/badge/GitLab-blue?logo=gitlab)](https://gitlab.com/efu/hexo-theme-solitude)
37
+
18
38
  [預覽](https://solitude-demo.efu.me/) 丨 [文档](https://solitude-docs.efu.me/)
19
39
 
20
40
  </div>
package/_config.yml CHANGED
@@ -26,10 +26,10 @@ site:
26
26
  custom: Solitude
27
27
  # 网页icon
28
28
  # Web icon
29
- siteIcon: /img/logo.png
29
+ siteIcon: /img/pwa/favicon.ico
30
30
  # 页脚的Logo、加载动画默认的logo
31
31
  # Logo in the footer, default logo for loading animation
32
- icon: /img/logo.png
32
+ icon: /img/avatar.png
33
33
 
34
34
  # 导航栏
35
35
  # NavBar
@@ -37,27 +37,27 @@ nav:
37
37
  # logo 箱子
38
38
  # logo group
39
39
  group:
40
- # 项目: # 分类名称
41
- # Solitude: https://github.com/valor-x/hexo-theme-solitude || /img/logo.png # 子菜单名称(submenu name): 链接地址(address) || 图标(icon)
40
+ # 项目: # 分类名称
41
+ # Solitude: https://github.com/valor-x/hexo-theme-solitude || /img/logo.png # 子菜单名称(submenu name): 链接地址(address) || 图标(icon)
42
42
 
43
43
  # 中心菜单
44
44
  # center menu
45
45
  menu:
46
- # 首页: / # 显示名称:路径 / Display name: path
47
- # 文库: # 显示名称 / Display name
48
- # 文章列表: /archives/ || st-folder-fill # 子菜单名称:路径 || 图标 / Submenu name: path || icon
49
- # 全部分类: /categories/ || st-checkbox-multiple-blank-fill
50
- # 全部标签: /tags/ || st-price-tag-fill
51
- # 友链:
52
- # 友链鱼塘: /moments/ || st-wifi-fill
53
- # 友情链接: /links/ || st-group-fill
54
- # 宝藏博主: javascript:travelling() || st-gift-fill
55
- # 我的:
56
- # 装备: /equipment/ || st-laptop-line
57
- # 工具箱: /tlink/ || st-tools-fill
58
- # 音乐馆: /music/ || st-disc-fill
59
- # 关于:
60
- # 关于本站: /about/ || st-contacts-fill
46
+ # 首页: / # 显示名称:路径 / Display name: path
47
+ # 文库: # 显示名称 / Display name
48
+ # 文章列表: /archives/ || st-folder-fill # 子菜单名称:路径 || 图标 / Submenu name: path || icon
49
+ # 全部分类: /categories/ || st-checkbox-multiple-blank-fill
50
+ # 全部标签: /tags/ || st-price-tag-fill
51
+ # 友链:
52
+ # 友链鱼塘: /moments/ || st-wifi-fill
53
+ # 友情链接: /links/ || st-group-fill
54
+ # 宝藏博主: javascript:travelling() || st-gift-fill
55
+ # 我的:
56
+ # 装备: /equipment/ || st-laptop-line
57
+ # 工具箱: /tlink/ || st-tools-fill
58
+ # 音乐馆: /music/ || st-disc-fill
59
+ # 关于:
60
+ # 关于本站: /about/ || st-contacts-fill
61
61
 
62
62
  # 右侧按钮
63
63
  # Button on the right
@@ -69,11 +69,11 @@ nav:
69
69
  # 左至右
70
70
  # from left to right
71
71
  custom:
72
- # - name: 开往 - 友链接力 # 显示文字 / Displayed text
73
- # url: https://www.travellings.cn/go.html # 跳转链接 / Jump link
74
- # icon: st-train-line # 图标 / Icon
75
- # onclick: # 点击事件 / Click event
76
- # id: travellings_button # id
72
+ # - name: 开往 - 友链接力 # 显示文字 / Displayed text
73
+ # url: https://www.travellings.cn/go.html # 跳转链接 / Jump link
74
+ # icon: st-train-line # 图标 / Icon
75
+ # onclick: # 点击事件 / Click event
76
+ # id: travellings_button # id
77
77
 
78
78
  # 首页顶部样式
79
79
  # Home top style
@@ -93,31 +93,31 @@ hometop:
93
93
  # Carousel icon
94
94
  # tip: 76x76 size
95
95
  icon:
96
- # HTML: # 名字 / Name
97
- # img: https://7.isyangs.cn/34/65f2e42921677-34.png # 图片 / Image
98
- # color: "#e9572b" # 背景色 / Background color
99
- # JS:
100
- # img: https://7.isyangs.cn/34/65f2e43ceddda-34.png
101
- # color: "#f7cb4f"
102
- # Docker:
103
- # img: https://7.isyangs.cn/34/65f2e45462045-34.png
104
- # color: "#57b6e6"
105
- # Flutter:
106
- # img: https://7.isyangs.cn/34/65f2e47acbe98-34.png
107
- # color: "#ffffff"
108
- # WebPack:
109
- # img: https://7.isyangs.cn/34/65f2e488bf8ed-34.png
110
- # color: "#2e3a41"
111
- # Git:
112
- # img: https://7.isyangs.cn/34/65f2e499066fa-34.png
113
- # color: "#df5b40"
96
+ # HTML: # 名字 / Name
97
+ # img: https://7.isyangs.cn/34/65f2e42921677-34.png # 图片 / Image
98
+ # color: "#e9572b" # 背景色 / Background color
99
+ # JS:
100
+ # img: https://7.isyangs.cn/34/65f2e43ceddda-34.png
101
+ # color: "#f7cb4f"
102
+ # Docker:
103
+ # img: https://7.isyangs.cn/34/65f2e45462045-34.png
104
+ # color: "#57b6e6"
105
+ # Flutter:
106
+ # img: https://7.isyangs.cn/34/65f2e47acbe98-34.png
107
+ # color: "#ffffff"
108
+ # WebPack:
109
+ # img: https://7.isyangs.cn/34/65f2e488bf8ed-34.png
110
+ # color: "#2e3a41"
111
+ # Git:
112
+ # img: https://7.isyangs.cn/34/65f2e499066fa-34.png
113
+ # color: "#df5b40"
114
114
 
115
115
  # 左下跳转按钮
116
116
  # Banner lower left jump button
117
117
  group:
118
- # 热门: /tags/热门/ || st-fire-fill || linear-gradient(to right,#f65,#ffbf37)
119
- # 教程: /tags/教程/ || st-book-mark-fill || linear-gradient(to right,#358bff,#15c6ff)
120
- # 精选: /tags/精选/ || st-star-smile-fill || linear-gradient(to right,#18e7ae,#1eebeb)
118
+ # 热门: /tags/热门/ || st-fire-fill || linear-gradient(to right,#f65,#ffbf37)
119
+ # 教程: /tags/教程/ || st-book-mark-fill || linear-gradient(to right,#358bff,#15c6ff)
120
+ # 精选: /tags/精选/ || st-star-smile-fill || linear-gradient(to right,#18e7ae,#1eebeb)
121
121
 
122
122
  # 右侧置顶列表(在文章的front matter中添加“recommend: true”)
123
123
  # Right top list (add "recommend: true" in the front matter of the article)
@@ -257,7 +257,7 @@ aside:
257
257
  # 高亮显示标签列表
258
258
  # Highlighted tag list
259
259
  list:
260
- # - "Solitude"
260
+ # - "Solitude"
261
261
 
262
262
  # 侧边栏归档
263
263
  # aside archive
@@ -291,6 +291,14 @@ aside:
291
291
  # Format: yyyy-MM-dd hh-mm-ss
292
292
  runtime: "2023-04-20 00:00:00"
293
293
 
294
+ # 首页文章配置信息
295
+ # Configure information on the home page
296
+ index_post_list:
297
+ direction: column # row / column
298
+ content: 3 # 1: post.description / 2: 自动获取description或截取内容(Automatically get descriptions or screenshots) / 3: 只使用截取内容(Use only screenshots) / false: 不显示内容(No content is displayed)
299
+ length: 500 # 截取内容的长度 : The length of the screenshot content
300
+ cover: both # left: 在左侧 : left / right: 在右侧 : right / both: 两侧 : both
301
+
294
302
  # 页面默认设置
295
303
  # page default settings
296
304
  page:
@@ -301,7 +309,7 @@ page:
301
309
  # 默认图片
302
310
  # default cover
303
311
  cover:
304
- # - /img/default.png # 默认图片 / default cover
312
+ # - /img/default.png # 默认图片 / default cover
305
313
 
306
314
  # 文章页默认设置
307
315
  # post default settings
@@ -310,7 +318,7 @@ post:
310
318
  # 文章默认图片
311
319
  # default cover
312
320
  cover:
313
- # - # 默认图片 / default cover
321
+ # - # 默认图片 / default cover
314
322
  # 文章发布默认地址
315
323
  # default post locate
316
324
  locate: 衡阳
@@ -410,20 +418,20 @@ footer:
410
418
  # 底部导航栏
411
419
  # Bottom navigation bar
412
420
  group:
413
- # 导航:
414
- # 归档: /archives/
415
- # 分类: /categories/
416
- # 标签: /tags/
417
- # 服务:
418
- # 阿里云: https://aliyun.com/
419
- # 51la统计: https://v6.51.la/
420
- # 百度统计: https://tongji.baidu.com/
421
- # 支持:
422
- # 打赏记录: /about/
423
- # 协议:
424
- # Cookies: /cookies/
425
- # 用户协议: /privacy/
426
- # 版权协议: /copyright/
421
+ # 导航:
422
+ # 归档: /archives/
423
+ # 分类: /categories/
424
+ # 标签: /tags/
425
+ # 服务:
426
+ # 阿里云: https://aliyun.com/
427
+ # 51la统计: https://v6.51.la/
428
+ # 百度统计: https://tongji.baidu.com/
429
+ # 支持:
430
+ # 打赏记录: /about/
431
+ # 协议:
432
+ # Cookies: /cookies/
433
+ # 用户协议: /privacy/
434
+ # 版权协议: /copyright/
427
435
 
428
436
  # 页脚随机友链
429
437
  # Random links at footer
@@ -502,7 +510,7 @@ music:
502
510
  capsule:
503
511
  enable:
504
512
  false
505
- # 歌单id / playlist id
513
+ # 歌单id / playlist id
506
514
  id: 8407304077
507
515
  # 播放列表的服务商。netease:网易云 / tencent:腾讯 / kugou:酷狗 / xiami:小米 / baidu:百度
508
516
  # Music service provider. netease: Netease Cloud / tencent: Tencent / kugou: Kugou / xiaomi: Xiaomi / baidu: Baidu
@@ -566,6 +574,7 @@ keyboard:
566
574
  # lazyload
567
575
  lazyload:
568
576
  enable: false
577
+ field: site # post, site
569
578
  # 加载中显示图片
570
579
  # Loading display image
571
580
  placeholder: /img/loading.gif
@@ -659,8 +668,8 @@ search:
659
668
  # - Solitude
660
669
  # - Hexo
661
670
  algolia:
662
- # hits:
663
- # per_page: 6
671
+ # hits:
672
+ # per_page: 6
664
673
  local:
665
674
  preload: false
666
675
  CDN:
@@ -737,10 +746,10 @@ comment:
737
746
  # 仅需要填写验证代码即可,譬如:codeva-KReTIJu5us
738
747
  # Only need to fill in the verification code, such as: codeva-KReTIJu5us
739
748
  verify_site:
740
- # - name: google-site-verification
741
- # content: xxxxxx
742
- # - name: baidu-site-verification
743
- # content: xxxxxxx
749
+ # - name: google-site-verification
750
+ # content: xxxxxx
751
+ # - name: baidu-site-verification
752
+ # content: xxxxxxx
744
753
 
745
754
  # CSS 前缀
746
755
  # CSS prefix
@@ -750,13 +759,21 @@ verify_site:
750
759
  # After opening css_prefix, some CSS will be automatically prefixed. (Will increase 20% of the volume)
751
760
  css_prefix: false
752
761
 
762
+ # Font 字体
763
+ # Font
764
+ font:
765
+ font-size: 16px
766
+ code-font-size: 16px
767
+ font-family: '"PingFang SC","Hiragino Sans GB","Microsoft YaHei"'
768
+ code-font-family: '"monospace", "monospace"'
769
+
753
770
  # 插入代码到头部 </head> 之前 和 底部 </body> 之前
754
771
  # Insert code before </head> and before </body>
755
772
  # 插入额外代码 如:统计,广告等
756
773
  # Insert additional code such as: statistics, advertising, etc.
757
774
  extends:
758
775
  head: # 在head中插入 / Insert in head
759
- # - <script src="https://cdn.bootcdn.net/ajax/libs/pace/1.2.4/pace.min.js"></script>
776
+ # - <script src="https://cdn.bootcdn.net/ajax/libs/pace/1.2.4/pace.min.js"></script>
760
777
  body: # 在body中插入 / Insert in body
761
778
 
762
779
  # PWA
@@ -827,5 +844,4 @@ CDN:
827
844
  # swiper_css:
828
845
  # swiper_js:
829
846
  # busuanzi_js:
830
- # snackbar_css:
831
847
  # snackbar_js:
@@ -17,7 +17,7 @@ div#footer_deal
17
17
  a.deal_link(href=url_for(trim(array[0])), title=label)
18
18
  i.solitude(class=array[1])
19
19
 
20
- div#footer_mini_logo.footer_mini_logo(title=_p('nav.backtop'), onclick="sco.toTop()")
20
+ div#footer_mini_logo.nolazyload.footer_mini_logo(title=_p('nav.backtop'), onclick="sco.toTop()")
21
21
  img(src=theme.site.icon, alt=_p('nav.backtop'))
22
22
 
23
23
  each value, label in rightInfo
@@ -2,7 +2,6 @@ each item in theme.verify_site || []
2
2
  meta(name=item.name, content=item.content)
3
3
 
4
4
  link(rel="stylesheet", href=url_for(theme.cdn.solitude_css))
5
- link(rel="stylesheet", href=url_for(theme.cdn.snackbar_css))
6
5
 
7
6
  // aplayer
8
7
  if theme.capsule.enable || theme.music.enable
@@ -78,7 +77,7 @@ script.
78
77
  )(window)
79
78
 
80
79
  console.log(
81
- "%c Program: Hexo %c Theme: Solitude %c Version: v1.5.11",
80
+ "%c Program: Hexo %c Theme: Solitude %c Version: v1.6.0",
82
81
  "border-radius:5px 0 0 5px;padding: 5px 10px;color:white;background:#ff3842;",
83
82
  "padding: 5px 10px;color:white;background:#3e9f50;",
84
83
  "border-radius:0 5px 5px 0;padding: 5px 10px;background:#0084ff;color:white;"
@@ -5,7 +5,7 @@ div(id="loading-box" onclick="preloader.endLoading();" style="zoom:1")
5
5
  script.
6
6
  const preloader = {
7
7
  endLoading: () => {
8
- document.getElementById('loading-box').classList.add('loaded');
8
+ document.getElementById('loading-box').classList.toggle('loaded');
9
9
  },
10
10
  initLoading: () => {
11
11
  document.getElementById('loading-box').classList.remove('loaded');
@@ -20,4 +20,4 @@ div.tags-group-all
20
20
  .tags-group-icon-pair
21
21
  each key in pair
22
22
  .tags-group-icon(style=`background: ${theme.hometop.banner.icon[key].color}`)
23
- img(src=theme.hometop.banner.icon[key].img, title=key)
23
+ img.nolazyload(src=theme.hometop.banner.icon[key].img, title=key)
@@ -3,7 +3,6 @@
3
3
 
4
4
  if group
5
5
  .categoryGroup
6
-
7
6
  each item in group
8
7
  - var array = item[1].split('||')
9
8
  .categoryItem
@@ -1,34 +1,79 @@
1
+ mixin cover
2
+ a(href=url_for(post.path), title=post.title)
3
+ img.post_bg(src=url_for(post.cover), alt=post.title)
4
+
5
+ mixin info
6
+ div.recent-post-info-top
7
+ div.recent-post-info-top-tips
8
+ if post.sticky && is_home()
9
+ span.article-meta.sticky-warp
10
+ i.solitude.st-thumbtack-solid.sticky.orange
11
+ span.sticky.orange= _p('home.recent-post.sticky')
12
+ each category in post.categories.data
13
+ span.original= category.name
14
+
15
+ if post.prev == null && is_home()
16
+ span.original= _p('home.recent-post.new')
17
+
18
+ a.unvisited-post(href=url_for(post.path))= _p('home.recent-post.read')
19
+
20
+ a.article-title(href=url_for(post.path), title=post.title)= post.title
21
+
22
+ case theme.index_post_list.content
23
+ when false
24
+ break
25
+ when 1
26
+ .content!= post.description
27
+ when 2
28
+ if post.description
29
+ .content!= post.description
30
+ else
31
+ - const content = strip_html(post.content)
32
+ - let expert = content.substring(0, theme.index_post_list.length)
33
+ - content.length > theme.index_post_list.length ? expert += ' ...' : ''
34
+ .content!= expert
35
+ default
36
+ - const content = strip_html(post.content)
37
+ - let expert = content.substring(0, theme.index_post_list.length)
38
+ - content.length > theme.index_post_list.length ? expert += ' ...' : ''
39
+ .content!= expert
40
+
41
+ div.article-meta-wrap
42
+ span.article-meta.tags
43
+ each tag in post.tags.data
44
+ a.article-meta__tags(href=tag.path, onclick="event.stopPropagation();")
45
+ span.tags-punctuation=tag.name
46
+
47
+ span.post-meta-date
48
+ time(datetime=moment(post.date))
49
+
50
+ - const { direction, cover } = theme.index_post_list
51
+
52
+ if direction === 'row'
53
+ - var position = cover === 'both' ? index % 2 === 0 ? 0 : 1 : cover === 'left' ? 0 : 1
54
+
1
55
  div.recent-post-item(onclick="pjax.loadUrl('" + url_for(post.path) + "')")
2
- div.post_cover
3
- a(href=url_for(post.path), title=post.title)
4
- img.post_bg(src=url_for(post.cover), alt=post.title)
5
- div.recent-post-info
6
- div.recent-post-info-top
7
- div.recent-post-info-top-tips
8
- if post.sticky && is_home()
9
- span.article-meta.sticky-warp
10
- i.solitude.st-thumbtack-solid.sticky.orange
11
- span.sticky.orange= _p('home.recent-post.sticky')
12
- each category in post.categories.data
13
- span.original= category.name
14
-
15
- if post.prev == null && is_home()
16
- span.original= _p('home.recent-post.new')
17
-
18
- a.unvisited-post(href=url_for(post.path))= _p('home.recent-post.read')
19
-
20
- a.article-title(href=url_for(post.path), title=post.title)= post.title
21
-
22
- div.article-meta-wrap
23
- span.article-meta.tags
24
- each tag in post.tags.data
25
- a.article-meta__tags(href=tag.path, onclick="event.stopPropagation();")
26
- span.tags-punctuation=tag.name
27
-
28
- span.post-meta-date
29
- time(datetime=moment(post.date))
56
+ if direction === 'column'
57
+ div.post_cover
58
+ +cover()
59
+ div.recent-post-info
60
+ +info()
61
+ else
62
+ case position
63
+ when 0
64
+ div.post_cover
65
+ +cover()
66
+ div.recent-post-info
67
+ +info()
68
+ when 1
69
+ div.recent-post-info
70
+ +info()
71
+ div.post_cover
72
+ +cover()
73
+
74
+
30
75
  if (theme.google_adsense && theme.google_adsense.enable && theme.google_adsense.auto_ads === false)
31
- if (index + 1) % 3 == 0
76
+ if (index + 1) % 3 === 0
32
77
  div.recent-post-item.google-ads-warp
33
78
  ins.adsbygoogle(style="display:block; text-align:center;", data-ad-layout="in-article", data-ad-format="fluid", data-ad-client=theme.google_adsense.client, data-ad-slot=theme.google_adsense.slot)
34
79
  script.
@@ -9,5 +9,5 @@ if menu
9
9
  - var array = data.split('||')
10
10
  a.back-menu-item(href=url_for(trim(array[0])), title=index)
11
11
  if array[1]
12
- img.back-menu-item-icon(src=trim(array[1]), alt=index)
12
+ img.nolazyload.back-menu-item-icon(src=trim(array[1]), alt=index)
13
13
  span.back-menu-item-text= label
package/layout/page.pug CHANGED
@@ -22,7 +22,7 @@ block content
22
22
  include includes/page/moment
23
23
  when 'douban'
24
24
  include includes/widgets/page/banner
25
- include includes/page/default
25
+ != page.content
26
26
  when 'music'
27
27
  include includes/page/music
28
28
  default