hexo-theme-solitude 1.2.6 → 1.3.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 (261) hide show
  1. package/CONTRIBUTING.md +41 -0
  2. package/README.md +8 -8
  3. package/README_EN.md +6 -6
  4. package/_config.yml +495 -297
  5. package/languages/en-US.yml +105 -8
  6. package/languages/zh-CN.yml +98 -1
  7. package/layout/archive.pug +3 -3
  8. package/layout/category.pug +4 -5
  9. package/layout/includes/console.pug +15 -16
  10. package/layout/includes/footer.pug +26 -28
  11. package/layout/includes/head/config.pug +27 -8
  12. package/layout/includes/head/fest.pug +22 -0
  13. package/layout/includes/head/opengraph.pug +11 -0
  14. package/layout/includes/head.pug +1 -3
  15. package/layout/includes/header.pug +1 -1
  16. package/layout/includes/inject/body.pug +33 -13
  17. package/layout/includes/inject/head.pug +30 -20
  18. package/layout/includes/layout.pug +11 -8
  19. package/layout/includes/loading.pug +1 -64
  20. package/layout/includes/mixins/articleSort.pug +4 -4
  21. package/layout/includes/mixins/pagination.pug +1 -1
  22. package/layout/includes/nav.pug +10 -10
  23. package/layout/includes/page/about.pug +1 -0
  24. package/layout/includes/page/categories.pug +3 -3
  25. package/layout/includes/page/default.pug +1 -1
  26. package/layout/includes/page/echarts.pug +3 -3
  27. package/layout/includes/page/equipment.pug +0 -1
  28. package/layout/includes/page/links.pug +5 -26
  29. package/layout/includes/page/moments.pug +0 -1
  30. package/layout/includes/page/music.pug +19 -0
  31. package/layout/includes/page/not_configured.pug +18 -0
  32. package/layout/includes/page/rss.pug +20 -22
  33. package/layout/includes/page/says.pug +1 -2
  34. package/layout/includes/page/tags.pug +3 -3
  35. package/layout/includes/page/tlink.pug +0 -1
  36. package/layout/includes/sidebar.pug +7 -7
  37. package/layout/includes/widgets/aside/aside.pug +13 -1
  38. package/layout/includes/widgets/aside/asideArchive.pug +5 -3
  39. package/layout/includes/widgets/aside/asideCustom.pug +6 -0
  40. package/layout/includes/widgets/aside/asideHistory.pug +3 -3
  41. package/layout/includes/widgets/aside/asideInfoCard.pug +4 -6
  42. package/layout/includes/widgets/aside/asideNewestPost.pug +1 -1
  43. package/layout/includes/widgets/aside/asideSwitch.pug +0 -11
  44. package/layout/includes/widgets/aside/asideTag.pug +2 -2
  45. package/layout/includes/widgets/aside/asideToc.pug +1 -1
  46. package/layout/includes/widgets/aside/asideWebInfo.pug +6 -6
  47. package/layout/includes/widgets/aside/asideWelcome.pug +1 -1
  48. package/layout/includes/widgets/home/banner.pug +2 -2
  49. package/layout/includes/widgets/home/bbTimeList.pug +3 -3
  50. package/layout/includes/widgets/home/categoryBar.pug +3 -3
  51. package/layout/includes/widgets/home/categoryGroup.pug +2 -2
  52. package/layout/includes/widgets/home/hometop.pug +7 -7
  53. package/layout/includes/widgets/home/postList.pug +12 -8
  54. package/layout/includes/widgets/home/topGroup.pug +17 -13
  55. package/layout/includes/widgets/nav/left.pug +6 -6
  56. package/layout/includes/widgets/nav/menu.pug +4 -4
  57. package/layout/includes/widgets/nav/right.pug +14 -14
  58. package/layout/includes/widgets/page/about/authorinfo.pug +1 -1
  59. package/layout/includes/widgets/page/about/award.pug +11 -9
  60. package/layout/includes/widgets/page/about/contentinfo.pug +7 -7
  61. package/layout/includes/widgets/page/about/hobbies.pug +1 -1
  62. package/layout/includes/widgets/page/about/motto.pug +2 -2
  63. package/layout/includes/widgets/page/about/other.pug +10 -9
  64. package/layout/includes/widgets/page/about/personalities.pug +2 -2
  65. package/layout/includes/widgets/page/about/skillsinfo.pug +10 -12
  66. package/layout/includes/widgets/page/about/tenyear.pug +48 -0
  67. package/layout/includes/widgets/page/banner.pug +2 -2
  68. package/layout/includes/widgets/page/links/banner.pug +12 -14
  69. package/layout/includes/widgets/page/links/linksItem.pug +0 -1
  70. package/layout/includes/widgets/page/moments/angle.pug +7 -12
  71. package/layout/includes/widgets/page/moments/index.pug +7 -2
  72. package/layout/includes/widgets/post/award.pug +12 -8
  73. package/layout/includes/widgets/post/copyright.pug +16 -14
  74. package/layout/includes/widgets/post/postMeta.pug +36 -25
  75. package/layout/includes/widgets/post/postNav.pug +15 -15
  76. package/layout/includes/widgets/randomlink.pug +10 -5
  77. package/layout/includes/widgets/rightside/index.pug +9 -8
  78. package/layout/includes/widgets/third-party/ai/index.pug +12 -0
  79. package/layout/includes/widgets/third-party/comments/comment.pug +6 -1
  80. package/layout/includes/widgets/third-party/comments/twikoo.pug +5 -4
  81. package/layout/includes/widgets/third-party/comments/waline.pug +4 -5
  82. package/layout/includes/widgets/third-party/music.pug +1 -1
  83. package/layout/includes/widgets/third-party/pjax.pug +6 -1
  84. package/layout/includes/widgets/third-party/search/algolia-search.pug +4 -3
  85. package/layout/includes/widgets/third-party/search/index.pug +2 -2
  86. package/layout/includes/widgets/third-party/search/local-search.pug +3 -3
  87. package/layout/index.pug +5 -6
  88. package/layout/page.pug +34 -29
  89. package/layout/post.pug +3 -23
  90. package/layout/tag.pug +3 -3
  91. package/package.json +2 -2
  92. package/scripts/filter/checkThemeConfig.js +0 -5
  93. package/scripts/helper/cdn.js +12 -0
  94. package/scripts/helper/page.js +13 -0
  95. package/scripts/helper/related_post.js +0 -1
  96. package/scripts/tags/button.js +21 -0
  97. package/scripts/tags/card.js +9 -0
  98. package/scripts/tags/checkbox.js +51 -0
  99. package/scripts/tags/fold.js +0 -5
  100. package/scripts/tags/image.js +75 -0
  101. package/scripts/tags/inline-image.js +12 -0
  102. package/scripts/tags/label.js +10 -0
  103. package/scripts/tags/link.js +2 -0
  104. package/scripts/tags/media.js +29 -0
  105. package/scripts/tags/span.js +17 -0
  106. package/scripts/tags/timeline.js +2 -15
  107. package/scripts/tags/u.js +7 -0
  108. package/source/css/_global/animation.css +57 -0
  109. package/source/css/_global/index.styl +5 -20
  110. package/source/css/_global/var.styl +16 -1
  111. package/source/css/_layout/{base.styl → basic.styl} +24 -116
  112. package/source/css/_layout/header.styl +203 -615
  113. package/source/css/_layout/index.styl +29 -271
  114. package/source/css/_mode/index.styl +87 -94
  115. package/source/css/_page/_home/category-bar.styl +74 -0
  116. package/source/css/_page/_home/home-top.styl +541 -0
  117. package/source/css/_page/_home/index.styl +15 -0
  118. package/source/css/_page/_home/pagination.styl +176 -0
  119. package/source/css/_page/_home/recent-post.styl +204 -0
  120. package/source/css/_page/about/index.styl +1 -0
  121. package/source/css/_page/about/tenyear.styl +56 -0
  122. package/source/css/_page/about.styl +555 -626
  123. package/source/css/_page/category.styl +95 -119
  124. package/source/css/_page/douban.styl +126 -0
  125. package/source/css/_page/equipment.styl +100 -99
  126. package/source/css/_page/error.styl +130 -146
  127. package/source/css/_page/home.styl +41 -50
  128. package/source/css/_page/index.styl +42 -10
  129. package/source/css/_page/links.styl +305 -0
  130. package/source/css/_page/moment.styl +51 -51
  131. package/source/css/_page/music.styl +506 -0
  132. package/source/css/_page/rss.styl +62 -67
  133. package/source/css/_page/says.styl +375 -344
  134. package/source/css/_page/tag.styl +15 -13
  135. package/source/css/_widgets/{aside → _aside}/flip.styl +7 -5
  136. package/source/css/_widgets/{aside → _aside}/history.styl +9 -2
  137. package/source/css/_widgets/_aside/index.styl +96 -0
  138. package/source/css/_widgets/{aside → _aside}/info.styl +86 -89
  139. package/source/css/_widgets/{aside → _aside}/newPost.styl +7 -1
  140. package/source/css/_widgets/{aside → _aside}/toc.styl +28 -5
  141. package/source/css/_widgets/{comment → _comment}/index.styl +4 -12
  142. package/source/css/_widgets/{comment → _comment}/twikoo.styl +5 -2
  143. package/source/css/_widgets/{comment → _comment}/waline.styl +21 -5
  144. package/source/css/{_extra → _widgets/_extra}/console.styl +33 -10
  145. package/source/css/_widgets/_extra/fullpage.styl +46 -0
  146. package/source/css/_widgets/_extra/music.styl +218 -0
  147. package/source/css/_widgets/_extra/pace.styl +39 -0
  148. package/source/css/_widgets/_extra/rightmenu.styl +78 -0
  149. package/source/css/_widgets/_mixins/article-sort.styl +93 -0
  150. package/source/css/_widgets/_mixins/footer.styl +273 -0
  151. package/source/css/_widgets/_mixins/other.styl +34 -0
  152. package/source/css/_widgets/_mixins/sidebar.styl +230 -0
  153. package/source/css/_widgets/_post/_highlight/diff.styl +75 -0
  154. package/source/css/_widgets/_post/_highlight/index.styl +144 -0
  155. package/source/css/_widgets/_post/_highlight/theme/default.styl +12 -0
  156. package/source/css/_widgets/_post/_highlight/theme/mac.styl +25 -0
  157. package/source/css/_widgets/_post/_highlight/theme.styl +68 -0
  158. package/source/css/_widgets/_post/commentBarrage.styl +144 -0
  159. package/source/css/_widgets/_post/content.styl +152 -0
  160. package/source/css/_widgets/_post/copyright.styl +98 -0
  161. package/source/css/_widgets/_post/index.styl +20 -0
  162. package/source/css/_widgets/_post/meta.styl +420 -0
  163. package/source/css/_widgets/_post/pagination.styl +177 -0
  164. package/source/css/_widgets/_post/postAI.styl +131 -0
  165. package/source/css/{_post → _widgets/_post}/relatedPost.styl +4 -1
  166. package/source/css/_widgets/_post/tools.styl +249 -0
  167. package/source/css/{_search → _widgets/_search}/algolia-search.styl +4 -0
  168. package/source/css/{_search → _widgets/_search}/local-search.styl +15 -5
  169. package/source/css/_widgets/_tags/button.styl +60 -0
  170. package/source/css/_widgets/_tags/bvideo.styl +8 -0
  171. package/source/css/_widgets/_tags/card.styl +52 -0
  172. package/source/css/_widgets/_tags/checkbox.styl +85 -0
  173. package/source/css/_widgets/_tags/fold.styl +79 -0
  174. package/source/css/_widgets/_tags/image.styl +10 -0
  175. package/source/css/_widgets/_tags/index.styl +61 -0
  176. package/source/css/_widgets/_tags/inline-image.styl +6 -0
  177. package/source/css/_widgets/_tags/label.styl +3 -0
  178. package/source/css/_widgets/_tags/link.styl +80 -0
  179. package/source/css/_widgets/_tags/note.styl +101 -0
  180. package/source/css/_widgets/_tags/span.styl +61 -0
  181. package/source/css/_widgets/_tags/tabs.styl +105 -0
  182. package/source/css/_widgets/_tags/timeline.styl +80 -0
  183. package/source/css/_widgets/index.styl +50 -1
  184. package/source/css/index.styl +0 -25
  185. package/source/js/{commentBarrage.js → extend/comment/twikoo/commentBarrage.js} +0 -4
  186. package/source/js/extend/comment/{twikoo.js → twikoo/twikoo.js} +12 -40
  187. package/source/js/extend/comment/waline/commentBarrage.js +155 -0
  188. package/source/js/extend/comment/{waline.js → waline/waline.js} +10 -11
  189. package/source/js/extend/search/algolia-search.js +1 -5
  190. package/source/js/extend/search/local-search.js +33 -13
  191. package/source/js/main.js +144 -163
  192. package/source/js/music.js +129 -0
  193. package/source/js/utils.js +4 -7
  194. package/source/lib/cover-color.min.js +7 -0
  195. package/source/lib/rightside.min.js +1 -0
  196. package/source/lib/sco-ai.min.js +8 -0
  197. package/source/lib/snackbar.min.css +1 -1
  198. package/source/lib/txmap.min.js +1 -0
  199. package/source/lib/view-image.min.js +1 -1
  200. package/layout/includes/widgets/aside/asidePower.pug +0 -19
  201. package/layout/includes/widgets/home/rencentPost.pug +0 -26
  202. package/source/css/_extra/rightmenu.styl +0 -83
  203. package/source/css/_layout/articleSort.styl +0 -199
  204. package/source/css/_layout/footer.styl +0 -359
  205. package/source/css/_layout/sidebar.styl +0 -226
  206. package/source/css/_page/homeTop.styl +0 -1035
  207. package/source/css/_page/link.styl +0 -433
  208. package/source/css/_post/commentBarrage.styl +0 -149
  209. package/source/css/_post/externalTags.styl +0 -694
  210. package/source/css/_post/highlight.styl +0 -96
  211. package/source/css/_post/index.styl +0 -935
  212. package/source/css/_post/pagination.styl +0 -467
  213. package/source/css/_post/postContent.styl +0 -957
  214. package/source/css/_post/reward.styl +0 -217
  215. package/source/css/_widgets/aside/index.styl +0 -156
  216. package/source/css/_widgets/aside/power.styl +0 -90
  217. package/source/img/logo-horizontal_version.png +0 -0
  218. package/source/img/pwa/16.png +0 -0
  219. package/source/img/pwa/180.png +0 -0
  220. package/source/img/pwa/192.png +0 -0
  221. package/source/img/pwa/32.png +0 -0
  222. package/source/img/pwa/512.png +0 -0
  223. package/source/img/pwa/logo.png +0 -0
  224. package/source/img/pwa/siteicon/splash-1125x2436.png +0 -0
  225. package/source/img/pwa/siteicon/splash-1136x640.png +0 -0
  226. package/source/img/pwa/siteicon/splash-1170x2532.png +0 -0
  227. package/source/img/pwa/siteicon/splash-1179x2556.png +0 -0
  228. package/source/img/pwa/siteicon/splash-1242x2208.png +0 -0
  229. package/source/img/pwa/siteicon/splash-1242x2688.png +0 -0
  230. package/source/img/pwa/siteicon/splash-1248x2778.png +0 -0
  231. package/source/img/pwa/siteicon/splash-1290x2796.png +0 -0
  232. package/source/img/pwa/siteicon/splash-1334x750.png +0 -0
  233. package/source/img/pwa/siteicon/splash-1536x2048.png +0 -0
  234. package/source/img/pwa/siteicon/splash-1620x2160.png +0 -0
  235. package/source/img/pwa/siteicon/splash-1668x2224.png +0 -0
  236. package/source/img/pwa/siteicon/splash-1668x2388.png +0 -0
  237. package/source/img/pwa/siteicon/splash-1792x828.png +0 -0
  238. package/source/img/pwa/siteicon/splash-2048x1536.png +0 -0
  239. package/source/img/pwa/siteicon/splash-2048x2732.png +0 -0
  240. package/source/img/pwa/siteicon/splash-2160x1620.png +0 -0
  241. package/source/img/pwa/siteicon/splash-2208x1242.png +0 -0
  242. package/source/img/pwa/siteicon/splash-2224x1668.png +0 -0
  243. package/source/img/pwa/siteicon/splash-2388x1668.png +0 -0
  244. package/source/img/pwa/siteicon/splash-2436x1125.png +0 -0
  245. package/source/img/pwa/siteicon/splash-2532x1170.png +0 -0
  246. package/source/img/pwa/siteicon/splash-2556x1179.png +0 -0
  247. package/source/img/pwa/siteicon/splash-2688x1242.png +0 -0
  248. package/source/img/pwa/siteicon/splash-2732x2048.png +0 -0
  249. package/source/img/pwa/siteicon/splash-2778x1248.png +0 -0
  250. package/source/img/pwa/siteicon/splash-2796x1290.png +0 -0
  251. package/source/img/pwa/siteicon/splash-640x1136.png +0 -0
  252. package/source/img/pwa/siteicon/splash-750x1334.png +0 -0
  253. package/source/img/pwa/siteicon/splash-828x1792.png +0 -0
  254. package/source/img/solitude-show.jpg +0 -0
  255. package/source/js/extend/covercolor/local.js +0 -160
  256. package/source/js/rightside.js +0 -402
  257. package/source/js/txmap.js +0 -236
  258. package/source/lib/chuckle-post-ai.js +0 -1
  259. /package/source/css/_widgets/{aside → _aside}/allinfo.styl +0 -0
  260. /package/source/css/_widgets/{aside → _aside}/welcome.styl +0 -0
  261. /package/source/img/{theme/avatar.png → avatar.png} +0 -0
@@ -3,15 +3,10 @@
3
3
  hexo.extend.filter.register('before_post_render', () => {
4
4
  const logger = hexo.log;
5
5
  const theme = hexo.theme.config;
6
- const config = hexo.config;
7
6
  if (theme.hometop.banner.enable && !theme.hometop.banner.icon) {
8
7
  logger.error('\n 启用banner的情况下,必须提供 icon 图片!\n 请在主题配置文件中设置 hometop.banner.icon 选项。');
9
8
  logger.error('\n If banner is enabled, icon image must be supplied! \n Please set the hometop.banner.icon option in the theme configuration file.');
10
9
  process.exit(-1);
11
10
  }
12
- if (config.language !== 'zh-CN' && config.language !== 'en-US') {
13
- logger.error('\n 请在站点配置文件中设置 language 选项为 zh-CN 或 en-US。');
14
- process.exit(-1);
15
- }
16
11
  }
17
12
  );
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ hexo.extend.helper.register('cdn_url_for', function(path) {
4
+ const {config, theme} = this
5
+ const cdnPrefix = theme.cdn.prefix;
6
+ const urlFor = hexo.extend.helper.get('url_for').bind(this);
7
+ if (cdnPrefix) {
8
+ return cdnPrefix + urlFor(path);
9
+ } else {
10
+ return urlFor(path);
11
+ }
12
+ });
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ const { stripHTML, escapeHTML } = require('hexo-util')
3
+ hexo.extend.helper.register('page_description', function () {
4
+ const { config, page } = this
5
+ let description = page.description || page.content || page.title || config.description
6
+
7
+ if (description) {
8
+ description = escapeHTML(stripHTML(description).substring(0, 150)
9
+ .trim()
10
+ ).replace(/\n/g, ' ').replace(/\s+/g, ' ');
11
+ return description
12
+ }
13
+ })
@@ -35,7 +35,6 @@ hexo.extend.helper.register('related_posts', function (currentPost, allPosts) {
35
35
  return ''
36
36
  }
37
37
  let result = ''
38
- const hexoConfig = hexo.config
39
38
  const config = hexo.theme.config
40
39
 
41
40
  const limitNum = config.related_post.limit || 6
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ const urlFor = require("hexo-util").url_for.bind(hexo);
4
+
5
+ function btn(args) {
6
+ args = args.join(" ").split(",");
7
+ let url = args[0] || "";
8
+ let text = args[1] || "";
9
+ let icon = args[2] || "";
10
+ let option = args[3] || "";
11
+
12
+ url = url.trim();
13
+ text = text.trim();
14
+ icon = icon.trim();
15
+ option = option.trim();
16
+
17
+ return `<button class="btn-sco ${option}" onclick="location.href = '${urlFor(url)}'"
18
+ title="${text}">${icon.length ? `<i class="${icon}"></i>` : ""}${text.length ? `<span>${text}</span>` : ""}</button>`;
19
+ }
20
+
21
+ hexo.extend.tag.register("btn", btn, { ends: false });
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ hexo.extend.tag.register('card', function (args, content) {
4
+ args = args.join(' ').split(',');
5
+ let icon = args[0] || 'no-icon';
6
+ let color = args[1] || 'info';
7
+ let title = args[2] || '';
8
+ return `<div class="card card-${color}"><div class="card-title"><i class="scoicon ${icon}"></i>${title}</div>${hexo.render.renderSync({text: content, engine: 'markdown'})}</div>`
9
+ }, {ends: true});
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ function postCheckbox(args) {
4
+ args = args.join(' ').split(',')
5
+ var cls = ''
6
+ var text = ''
7
+ var checked = false
8
+ if (args.length > 1) {
9
+ cls = (args[0] || '').trim()
10
+ if (cls.length > 0) {
11
+ cls = ' ' + cls
12
+ }
13
+ if (cls.indexOf('checked') > -1) {
14
+ checked = true
15
+ }
16
+ text = (args[1] || '').trim()
17
+ } else if (args.length > 0) {
18
+ text = (args[0] || '').trim()
19
+ }
20
+ if (text.length > 0) {
21
+ return `<div class='checkbox${cls}'><input type="checkbox" ${ checked ? 'checked="checked"' : '' }/>
22
+ ${hexo.render.renderSync({text: text, engine: 'markdown'}).split('\n').join('')}
23
+ </div>`
24
+ }
25
+ }
26
+ function postRadio(args) {
27
+ args = args.join(' ').split(',')
28
+ var cls = ''
29
+ var text = ''
30
+ var checked = false
31
+ if (args.length > 1) {
32
+ cls = (args[0] || '').trim()
33
+ if (cls.length > 0) {
34
+ cls = ' ' + cls
35
+ }
36
+ if (cls.indexOf('checked') > -1) {
37
+ checked = true
38
+ }
39
+ text = (args[1] || '').trim()
40
+ } else if (args.length > 0) {
41
+ text = (args[0] || '').trim()
42
+ }
43
+ if (text.length > 0) {
44
+ return `<div class='checkbox${cls}'><input type="radio" ${ checked ? 'checked="checked"' : '' }/>
45
+ ${hexo.render.renderSync({text: text, engine: 'markdown'}).split('\n').join('')}
46
+ </div>`
47
+ }
48
+ }
49
+
50
+ hexo.extend.tag.register('checkbox', postCheckbox);
51
+ hexo.extend.tag.register('radio', postRadio);
@@ -1,8 +1,3 @@
1
- /**
2
- * Fold
3
- * from acrylic
4
- */
5
-
6
1
  'use strict'
7
2
 
8
3
  function postTabs(args, content) {
@@ -0,0 +1,75 @@
1
+ 'use strict';
2
+
3
+ hexo.extend.tag.register('image', function(args) {
4
+ args = args.join(' ').split(', ');
5
+ let url = args[0].trim();
6
+ let alt = '';
7
+ let bg = '';
8
+ let style = '';
9
+ if (args.length > 1) {
10
+ for (let i = 1; i < args.length; i++) {
11
+ let tmp = args[i].trim();
12
+ if (tmp.includes('alt=')) {
13
+ alt = tmp.substring(4, tmp.length);
14
+ } else if (tmp.includes('width=')) {
15
+ style += 'width:' + tmp.substring(6, tmp.length) + ';';
16
+ } else if (tmp.includes('height=')) {
17
+ style += 'height:' + tmp.substring(7, tmp.length) + ';';
18
+ } else if (tmp.includes('bg=')) {
19
+ bg = tmp.substring(3, tmp.length);
20
+ }
21
+ }
22
+ }
23
+ function img(url, alt, style) {
24
+ let img = '';
25
+ img += '<img class="img" src="' + url + '"';
26
+ if (alt.length > 0) {
27
+ img += ' alt="' + alt + '"';
28
+ }
29
+ if (style.length > 0) {
30
+ img += ' style="' + style + '"';
31
+ }
32
+ img += '/>';
33
+ return img;
34
+ }
35
+
36
+ let ret = '';
37
+ ret += '<div class="img-wrap">';
38
+ ret += '<div class="img-bg"';
39
+ if (bg.length > 0) {
40
+ ret += ' style="background:' + bg + '"';
41
+ }
42
+ ret += '>';
43
+ ret += img(url, alt, style);
44
+ ret += '</div>';
45
+
46
+ if (alt.length > 0) {
47
+ ret += '<span class="image-caption">' + alt + '</span>';
48
+ }
49
+
50
+ ret += '</div>';
51
+ return ret;
52
+ });
53
+
54
+ hexo.extend.tag.register('inlineimage', function(args) {
55
+ args = args.join(' ').split(', ');
56
+ let url = args[0].trim();
57
+ let ret = '';
58
+ ret += '<img no-lazy class="inline" src="' + url + '"';
59
+ let style = '';
60
+ if (args.length > 1) {
61
+ for (let i = 1; i < args.length; i++) {
62
+ let tmp = args[i].trim();
63
+ if (tmp.includes('height=')) {
64
+ style += 'height:' + tmp.substring(7, tmp.length) + ';';
65
+ }
66
+ }
67
+ }
68
+ if (style.length > 0) {
69
+ ret += ' style="' + style + '"';
70
+ } else {
71
+ ret += ' style="height:1.5em"';
72
+ }
73
+ ret += '/>';
74
+ return ret;
75
+ });
@@ -0,0 +1,12 @@
1
+ 'use strict'
2
+
3
+ const urlFor = require('hexo-util').url_for.bind(hexo)
4
+
5
+ function inlineImg (args) {
6
+ const img = args[0]
7
+ const height = args[1] ? `style="height:${args[1]}"` : ''
8
+
9
+ return `<img class="inline-img" src="${urlFor(img)}" ${height}/>`
10
+ }
11
+
12
+ hexo.extend.tag.register('inlineimage', inlineImg, { ends: false })
@@ -0,0 +1,10 @@
1
+ 'use strict'
2
+
3
+ function addLabel (args, content) {
4
+ const text = args[0]
5
+ const className = args[1] || 'default'
6
+
7
+ return `<label class="hl-label bg-${className}">${text}</label> `
8
+ }
9
+
10
+ hexo.extend.tag.register('label', addLabel, { ends: false })
@@ -1,3 +1,5 @@
1
+ 'use strict'
2
+
1
3
  function link(args) {
2
4
  let urlNoProtocol = args[2].replace(/^https?\:\/\//i, "");
3
5
  let imgUrl = "https://api.iowen.cn/favicon/" + urlNoProtocol + ".png";
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ function postAudio(args) {
4
+ let src = args[0].trim()
5
+ return `<div class="audio"><audio controls preload><source src='${src}' type='audio/mp3'>Your browser does not support the audio tag.</audio></div>`;
6
+ }
7
+
8
+ function postVideo(args) {
9
+ let src = args[0].trim()
10
+ return `<div class="video"><video controls preload><source src='${src}' type='video/mp4'>Your browser does not support the video tag.</video></div>`;
11
+ }
12
+
13
+ function postVideos(args, content) {
14
+ args = args.join(' ').split(',')
15
+ var cls = args[0]
16
+ if (cls.length > 0) {
17
+ cls = ' ' + cls
18
+ }
19
+ var col = Number(args[1]) || 0;
20
+ if (col > 0) {
21
+ return `<div class="videos${cls}" col='${col}'>${content}</div>`
22
+ } else {
23
+ return `<div class="videos${cls}">${content}</div>`
24
+ }
25
+ }
26
+
27
+ hexo.extend.tag.register('audio', postAudio);
28
+ hexo.extend.tag.register('video', postVideo);
29
+ hexo.extend.tag.register('videos', postVideos, {ends: true});
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ function postP(args) {
4
+ args = args.join(' ').split(',')
5
+ let p0 = args[0].trim()
6
+ let p1 = args[1].trim()
7
+ return `<p class='p ${p0}'>${p1}</p>`;
8
+ }
9
+ function postSpan(args) {
10
+ args = args.join(' ').split(',')
11
+ let p0 = args[0].trim()
12
+ let p1 = args[1].trim()
13
+ return `<span class='p ${p0}'>${p1}</span>`;
14
+ }
15
+
16
+ hexo.extend.tag.register('p', postP);
17
+ hexo.extend.tag.register('span', postSpan);
@@ -1,8 +1,4 @@
1
- /**
2
- * timeline.js | https://volantis.js.org/v3/tag-plugins/#Timeline
3
- */
4
-
5
- "use strict";
1
+ "use strict"
6
2
 
7
3
  function postTimeline(args, content) {
8
4
  if (args.length > 0) {
@@ -15,21 +11,12 @@ function postTimeline(args, content) {
15
11
  function postTimenode(args, content) {
16
12
  args = args.join(" ").split(",");
17
13
  var time = args[0];
18
- return `<div class="timenode"><div class="meta"><p>${hexo.render.renderSync({
19
- text: time,
20
- engine: "markdown",
21
- })}</p></div><div class="body">${hexo.render
14
+ return `<div class="timenode"><div class="meta"><p>${time}</p></div><div class="body">${hexo.render
22
15
  .renderSync({ text: content, engine: "markdown" })
23
16
  .split("\n")
24
17
  .join("")}</div></div>`;
25
18
  }
26
19
 
27
- // {% timeline %}
28
- // ... timenode ...
29
- // {% endtimeline %}
30
20
  hexo.extend.tag.register("timeline", postTimeline, { ends: true });
31
21
 
32
- // {% timenode time %}
33
- // what happened
34
- // {% endtimenode %}
35
22
  hexo.extend.tag.register("timenode", postTimenode, { ends: true });
@@ -0,0 +1,7 @@
1
+ "use strict"
2
+
3
+ function u(args, content) {
4
+ return `<u>${hexo.render.renderSync({text: text, engine: 'markdown'}).split('\n').join('')}</u>`;
5
+ }
6
+
7
+ hexo.extend.tag.register("u", u, { ends: false });
@@ -753,4 +753,61 @@
753
753
  100% {
754
754
  transform: translate(0, -4px)
755
755
  }
756
+ }
757
+
758
+ @media screen and (min-width: 768px) {
759
+ @keyframes showCover {
760
+ from {
761
+ opacity: 0;
762
+ transform: rotate(10deg) translateY(-8%) scale(1.8);
763
+ }
764
+ to {
765
+ opacity: 0.5;
766
+ transform: rotate(10deg) translateY(-10%) scale(2);
767
+ }
768
+ }
769
+ }
770
+
771
+ @keyframes blinking-cursor {
772
+ 0% {
773
+ transform: scale(.6)
774
+ }
775
+
776
+ 25% {
777
+ transform: scale(1)
778
+ }
779
+
780
+ 50% {
781
+ transform: scale(.6)
782
+ }
783
+
784
+ 75% {
785
+ transform: scale(1)
786
+ }
787
+
788
+ 100% {
789
+ transform: scale(.6)
790
+ }
791
+ }
792
+
793
+ @keyframes AILoading {
794
+ 0% {
795
+ opacity: 1
796
+ }
797
+
798
+ 25% {
799
+ opacity: .3
800
+ }
801
+
802
+ 50% {
803
+ opacity: 1
804
+ }
805
+
806
+ 75% {
807
+ opacity: .3
808
+ }
809
+
810
+ 100% {
811
+ opacity: 1
812
+ }
756
813
  }
@@ -6,7 +6,10 @@
6
6
  --sco-none #00000000
7
7
  --sco-gray #999999
8
8
  --sco-gray-op #9999992b
9
+ --sco-cyan #00bcd4
10
+ --sco-cyan-op #00bcd42b
9
11
  --sco-vip #e5a80d
12
+ --sco-life #57bd6a
10
13
  --sco-main var(--sco-theme)
11
14
  --sco-main-op var(--sco-theme-op)
12
15
  --sco-main-op-deep var(--sco-theme-op-deep)
@@ -51,26 +54,8 @@
51
54
  --card-box-shadow 0 3px 8px 6px rgba(7, 17, 27, 0.06)
52
55
  --card-hover-box-shadow 0 3px 8px 6px rgba(7, 17, 27, 0.15)
53
56
  --offset 0px
54
-
55
- // highlight
56
- --hl-color #eff
57
- --hl-bg #212121
58
- --hltools-bg #1c1c1c
59
- --hltools-color rgba(238, 255, 255, 0.8)
60
- --hlnumber-bg #212121
61
- --hlnumber-color rgba(238, 255, 255, 0.5)
62
57
  --hlscrollbar-bg #121212
63
- --hlexpand-bg linear-gradient(180deg, rgba(33, 33, 33, 0.6), rgba(33, 33, 33, 0.9))
64
-
65
- // ai摘要
66
- --ai-post-bg rgba(255, 255, 255, 0.32)
67
- --ai-border 1px solid #e3e8f7bd
68
- --ai-tag-bg rgba(48, 52, 63, 0.86)
69
- --ai-cursor #333
70
-
71
- // 个性定位
72
- --icat-card-welcome #49b1f5
73
58
 
74
59
  +maxWidth768()
75
- --style-border 0px solid var(--sco-none) !important
76
- --style-border-hover 0px solid var(--sco-main) !important
60
+ --style-border 0px solid var(--sco-none)
61
+ --style-border-hover 0px solid var(--sco-main)
@@ -7,4 +7,19 @@ $dark_theme_none = hexo-config('theme_color.dark_none')
7
7
  $light_theme = convert(hexo-config('theme_color.light'))
8
8
  $light_theme_op = convert(hexo-config('theme_color.light_op'))
9
9
  $light_theme_op_deep = convert(hexo-config('theme_color.light_op_deep'))
10
- $light_theme_none = hexo-config('theme_color.light_none')
10
+ $light_theme_none = hexo-config('theme_color.light_none')
11
+
12
+ $todayCardColor = convert(hexo-config('hometop.recommendList.color'))
13
+
14
+ // highlight code
15
+ if hexo-config('hightlight.theme') == 'default'
16
+ $hl_bg_light = #fff
17
+ $hltools_bg_light = #f7f7f9
18
+ $hl_bg_dark = #1b1c20
19
+ $hltools_bg_dark = #21232a
20
+
21
+ else if hexo-config('hightlight.theme') == 'mac'
22
+ $hl_bg_light = #FFFFFF
23
+ $hltools_bg_light = #E7E7E7
24
+ $hl_bg_dark = #1C1E1E
25
+ $hltools_bg_dark = #2A282A
@@ -31,47 +31,17 @@ i.scoicon
31
31
  font-size 22px
32
32
  line-height 1
33
33
 
34
- svg.scoicon
35
- width 1em
36
- height 1em
37
- vertical-align -0.15em
38
- fill currentColor
39
- overflow hidden
40
-
41
- svg.scoicon.tab
42
- width 1.5em
43
- height 1.5em
44
- vertical-align -0.15em
45
- fill currentColor
46
- overflow hidden
47
- padding-right 5px
48
-
49
- #page img
50
- border-radius 12px
51
-
52
- #page p a:not(.headerlink)
53
- text-decoration none
54
- border-bottom 2px solid var(--sco-lighttext)
55
- color var(--sco-fontcolor)
56
- font-weight 700
57
- padding 0 4px
58
- border-radius 4px 4px 0 0
59
-
60
- #page p a:hover
61
- text-decoration none
62
-
63
34
  h1
64
35
  font-size 2em
65
36
  margin .67em 0
66
37
 
67
38
  h1, h2, h3, h4, h5, h6
39
+ padding-top 0
40
+ padding-left 0
41
+ font-weight 700
68
42
  position relative
69
- margin 1rem 0 .7rem
43
+ margin 1rem 0 0.7rem
70
44
  color var(--sco-fontcolor)
71
- font-weight 700
72
-
73
- h1 code, h2 code, h3 code, h4 code, h5 code, h6 code
74
- font-size inherit !important
75
45
 
76
46
  hr
77
47
  box-sizing content-box
@@ -85,7 +55,7 @@ pre
85
55
  a
86
56
  color var(--sco-fontcolor)
87
57
  text-decoration none
88
- transition all .2s ease 0s
58
+ transition all .3s ease 0s
89
59
  overflow-wrap break-word
90
60
  -webkit-user-drag none
91
61
 
@@ -125,7 +95,7 @@ button, input
125
95
  overflow visible
126
96
 
127
97
  input::placeholder
128
- color var(--sco-gray)!important
98
+ color var(--sco-gray) !important
129
99
 
130
100
  button, select
131
101
  text-transform none
@@ -217,12 +187,10 @@ button
217
187
  padding 0
218
188
  outline 0
219
189
  border none
190
+ color var(--sco-fontcolor)
220
191
  background 0 0
221
192
  cursor pointer
222
193
 
223
- a:hover
224
- color var(--sco-lighttext)
225
-
226
194
  img
227
195
  max-width 100%
228
196
  transition all .2s ease 0s;
@@ -232,8 +200,10 @@ img:not([src]), img[src=""]
232
200
  opacity 0
233
201
 
234
202
  .img-alt
235
- margin -.5rem 0 .5rem
236
- color #858585
203
+ font-size 12px
204
+ margin 0
205
+ margin-top 8px
206
+ color var(--sco-secondtext)
237
207
 
238
208
  .img-alt:hover
239
209
  text-decoration none !important
@@ -255,27 +225,7 @@ img:not([src]), img[src=""]
255
225
  .pull-right
256
226
  float right
257
227
 
258
- .button--animated
259
- position relative
260
- z-index 1
261
- transition color 1s ease 0s
262
-
263
- .button--animated::before
264
- position absolute
265
- inset 0
266
- z-index -1
267
- background var(--btn-hover-color)
268
- content ""
269
- transition transform .5s ease-out 0s
270
- transform scaleX(0)
271
- transform-origin 0 50%
272
-
273
- .button--animated:hover::before
274
- transition-timing-function cubic-bezier(.45, 1.64, .47, .66)
275
- transform scaleX(1)
276
-
277
228
  blockquote
278
- border-left .2rem solid #49b1f5
279
229
  border: var(--style-border-always);
280
230
  background-color: var(--sco-secondbg);
281
231
  color: var(--sco-secondtext);
@@ -283,6 +233,13 @@ blockquote
283
233
  margin: 1rem 0;
284
234
  padding: .5rem .8rem
285
235
 
236
+ a
237
+ color var(--blockquote-color)
238
+
239
+ p
240
+ margin 0 !important
241
+ padding: 0
242
+
286
243
  .pullquote
287
244
  position relative
288
245
  max-width 45%
@@ -296,53 +253,12 @@ blockquote
296
253
  right 0
297
254
  margin 1em 0 0 .5em
298
255
 
299
-
300
- blockquote a
301
- color var(--blockquote-color)
302
-
303
- blockquote p
304
- margin 0 !important
305
- padding: 0
306
-
307
256
  li, ul
308
257
  list-style none
309
258
  display block
310
259
  margin 0
311
260
  padding 0
312
261
 
313
- .li-style
314
- width 100%
315
- height 25px
316
- text-align center
317
-
318
- .fireworks
319
- position fixed
320
- top 0
321
- left 0
322
- z-index 9999
323
- pointer-events none
324
-
325
- .katex-wrap
326
- overflow auto
327
-
328
- .katex-wrap::-webkit-scrollbar
329
- display none
330
-
331
- .video-container
332
- position relative
333
- overflow hidden
334
- margin-bottom .8rem
335
- padding-top 56.25%
336
- height 0
337
-
338
- .video-container iframe
339
- position absolute
340
- top 0
341
- left 0
342
- margin-top 0
343
- width 100%
344
- height 100%
345
-
346
262
  ::-webkit-scrollbar
347
263
  width 6px
348
264
  height 6px
@@ -363,11 +279,12 @@ li, ul
363
279
  [data-theme=dark] img
364
280
  filter brightness(1)
365
281
 
366
- a.extend.next
367
- right 0
282
+ a.extend
283
+ .next
284
+ right 0
368
285
 
369
- a.extend.prev
370
- left 0
286
+ .prev
287
+ left 0
371
288
 
372
289
  .table-wrap
373
290
  margin 1rem 0
@@ -380,13 +297,4 @@ table thead
380
297
  background var(--sco-secondbg)
381
298
 
382
299
  b, strong
383
- color var(--sco-lighttext)
384
-
385
- h1, h2, h3, h4, h5, h6
386
- margin-top 1rem
387
- padding-top 0
388
- padding-left 0 !important
389
- font-weight 700
390
-
391
- figure
392
- margin-top .5rem !important
300
+ color var(--sco-lighttext)