hexo-theme-stellar 1.26.3 → 1.26.5

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 (78) hide show
  1. package/_config.yml +24 -14
  2. package/_data/icons.yml +13 -5
  3. package/layout/_partial/cover/index.ejs +3 -3
  4. package/layout/_partial/main/article/article_footer.ejs +1 -1
  5. package/layout/_partial/main/footer.ejs +2 -2
  6. package/layout/_partial/main/navbar/article_banner.ejs +54 -0
  7. package/layout/_partial/main/navbar/article_top_area.ejs +2 -2
  8. package/layout/_partial/main/navbar/author_banner.ejs +1 -1
  9. package/layout/_partial/main/navbar/dateinfo.ejs +12 -10
  10. package/layout/_partial/main/navbar/nav_tabs_blog.ejs +2 -2
  11. package/layout/_partial/main/navbar/nav_tabs_wiki.ejs +2 -2
  12. package/layout/_partial/main/post_list/post_card.ejs +4 -3
  13. package/layout/_partial/sidebar/index.ejs +1 -1
  14. package/layout/_partial/sidebar/menu.ejs +1 -7
  15. package/layout/_partial/widgets/related.ejs +1 -1
  16. package/layout/categories.ejs +1 -1
  17. package/layout/layout.ejs +8 -0
  18. package/layout/page.ejs +1 -11
  19. package/package.json +1 -1
  20. package/scripts/events/lib/utils.js +16 -0
  21. package/scripts/helpers/icon.js +2 -13
  22. package/scripts/tags/index.js +1 -0
  23. package/scripts/tags/lib/icon.js +27 -0
  24. package/scripts/tags/lib/link.js +2 -2
  25. package/scripts/tags/lib/navbar.js +1 -1
  26. package/scripts/tags/lib/note.js +1 -1
  27. package/scripts/tags/lib/quot.js +15 -12
  28. package/source/css/_common/base.styl +3 -2
  29. package/source/css/_common/button.styl +31 -29
  30. package/source/css/_common/cap.styl +1 -1
  31. package/source/css/_common/device.styl +16 -5
  32. package/source/css/_common/html.styl +1 -0
  33. package/source/css/_common/input.styl +1 -1
  34. package/source/css/_common/title.styl +17 -15
  35. package/source/css/_common/toast.styl +1 -0
  36. package/source/css/_custom.styl +18 -10
  37. package/source/css/_defines/const.styl +2 -1
  38. package/source/css/_defines/theme.styl +6 -4
  39. package/source/css/_layout/layout.styl +3 -2
  40. package/source/css/_layout/list.styl +34 -23
  41. package/source/css/_layout/main.styl +19 -3
  42. package/source/css/_layout/md.styl +48 -92
  43. package/source/css/_layout/pages/archives.styl +12 -4
  44. package/source/css/_layout/partial/article-banner.styl +58 -0
  45. package/source/css/_layout/partial/article-footer.styl +16 -4
  46. package/source/css/_layout/partial/bread-nav.styl +22 -18
  47. package/source/css/_layout/partial/cover.styl +2 -11
  48. package/source/css/_layout/partial/footer.styl +2 -2
  49. package/source/css/_layout/partial/navbar.styl +22 -12
  50. package/source/css/_layout/partial/related.styl +7 -5
  51. package/source/css/_layout/sidebar/footer.styl +1 -0
  52. package/source/css/_layout/sidebar/logo.styl +1 -1
  53. package/source/css/_layout/sidebar/search.styl +18 -15
  54. package/source/css/_layout/sidebar/sidebar.styl +13 -10
  55. package/source/css/_layout/tag-plugins/banner.styl +41 -27
  56. package/source/css/_layout/tag-plugins/common.styl +8 -4
  57. package/source/css/_layout/tag-plugins/copy.styl +2 -1
  58. package/source/css/_layout/tag-plugins/folders.styl +4 -3
  59. package/source/css/_layout/tag-plugins/folding.styl +4 -2
  60. package/source/css/_layout/tag-plugins/hashtag.styl +2 -1
  61. package/source/css/_layout/tag-plugins/icon.styl +12 -0
  62. package/source/css/_layout/tag-plugins/image.styl +1 -1
  63. package/source/css/_layout/tag-plugins/link.styl +1 -1
  64. package/source/css/_layout/tag-plugins/mark.styl +1 -1
  65. package/source/css/_layout/tag-plugins/navbar.styl +9 -22
  66. package/source/css/_layout/tag-plugins/note.styl +5 -3
  67. package/source/css/_layout/tag-plugins/poetry.styl +5 -5
  68. package/source/css/_layout/tag-plugins/quot.styl +24 -24
  69. package/source/css/_layout/tag-plugins/tabs.styl +4 -3
  70. package/source/css/_layout/tag-plugins/timeline.styl +24 -10
  71. package/source/css/_layout/widgets/ghuser.styl +2 -2
  72. package/source/css/_layout/widgets/markdown.styl +2 -2
  73. package/source/css/_layout/widgets/timeline.styl +11 -8
  74. package/source/css/_layout/widgets/toc_common.styl +1 -5
  75. package/source/css/_layout/widgets/toc_wiki.styl +3 -3
  76. package/source/css/_layout/widgets/widgets.styl +3 -3
  77. package/source/css/_plugins/swiper.styl +1 -1
  78. package/source/css/_plugins/tianli_gpt.styl +2 -2
package/_config.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  ######## Stellar info ########
2
2
  stellar:
3
- version: '1.26.3'
3
+ version: '1.26.5'
4
4
  homepage: 'https://xaoxuu.com/wiki/stellar/'
5
5
  repo: 'https://github.com/xaoxuu/hexo-theme-stellar'
6
6
  main_css: /css/main.css
@@ -122,7 +122,7 @@ article:
122
122
  # 如果没有指定横幅,是否根据 tags 作为关键词搜索横幅图片?
123
123
  auto_banner: false # search from https://source.unsplash.com/
124
124
  # 如果没有指定 excerpt 和 description,将自动取多长的内容作为文章摘要?
125
- auto_excerpt: 200
125
+ auto_excerpt: 128
126
126
  # 分类颜色
127
127
  category_color:
128
128
  '探索号': '#f44336'
@@ -294,6 +294,8 @@ tag_plugins:
294
294
  suffix: https://bu.dusays.com/2022/10/24/63567d3e0ab55.png
295
295
  hashtag:
296
296
  prefix: https://bu.dusays.com/2022/10/24/63567d3e07da3.png
297
+ question:
298
+ prefix: ph:seal-question-fill
297
299
  # {% emoji %}
298
300
  emoji:
299
301
  default: https://gcore.jsdelivr.net/gh/cdn-x/emoji/qq/${name}.gif
@@ -302,6 +304,9 @@ tag_plugins:
302
304
  aru: https://gcore.jsdelivr.net/gh/cdn-x/emoji/aru-l/${name}.gif
303
305
  tieba: https://gcore.jsdelivr.net/gh/cdn-x/emoji/tieba/${name}.png
304
306
  blobcat: https://gcore.jsdelivr.net/gh/norevi/waline-blobcatemojis@1.0/blobs/${name}.png
307
+ icon:
308
+ # 留空时,图标和文字颜色相同
309
+ default_color: accent # theme, accent, red, orange, yellow, green, cyan, blue, purple
305
310
  # {% image %}
306
311
  image:
307
312
  fancybox: false # true, false
@@ -313,7 +318,7 @@ tag_plugins:
313
318
  max-height: 80vh
314
319
  # {% mark %}
315
320
  mark:
316
- default_color: dark # light, dark, red, orange, yellow, green, cyan, blue, purple, warning, error
321
+ default_color: yellow # light, dark, red, orange, yellow, green, cyan, blue, purple, warning, error
317
322
  # {% hashtag %}
318
323
  hashtag:
319
324
  default_color: # red, orange, yellow, green, cyan, blue, purple
@@ -470,9 +475,9 @@ style:
470
475
  darkmode: auto # auto / always / false
471
476
  smooth_scroll: false # true / false 开启时如果目录过长可能无法准确定位
472
477
  font-size:
473
- root: 16px
474
- body: 1rem # 16px
475
- code: 85% # 14px
478
+ root: 16px # 改这个会影响全局所有文字的字号
479
+ body: 17px # 影响正文区域的字号,如果改成 px 则不受 root 影响
480
+ code: 85% # 相较于其所在行的文本大小,建议用百分比
476
481
  codeblock: 0.8125rem # 13px
477
482
  font-family:
478
483
  logo: 'system-ui, "Microsoft Yahei", "Segoe UI", -apple-system, Roboto, Ubuntu, "Helvetica Neue", Arial, "WenQuanYi Micro Hei", sans-serif'
@@ -480,10 +485,12 @@ style:
480
485
  code: 'Menlo, Monaco, Consolas, system-ui, "Courier New", monospace, sans-serif'
481
486
  codeblock: 'Menlo, Monaco, Consolas, system-ui, "Courier New", monospace, sans-serif'
482
487
  text-align: left
488
+ prefix:
489
+ h2: https://api.iconify.design/ci:heading-h2.svg
483
490
  border-radius:
484
491
  card: 12px
485
492
  block: 12px
486
- bar: 12px
493
+ bar: 8px
487
494
  image: 6px
488
495
  color:
489
496
  # 动态颜色(会根据明暗主题重设明度值,只用关心色相和饱和度即可)
@@ -497,8 +504,6 @@ style:
497
504
  link: 'hsl(207 90% 54%)' # 超链接颜色
498
505
  button: 'hsl(192 98% 55%)' # 按钮颜色
499
506
  hover: 'hsl(14 100% 57%)' # 按钮高亮颜色
500
- link:
501
- underline: true # true / false
502
507
  animated_avatar:
503
508
  animate: auto # auto, always
504
509
  background: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/avatar/round/rainbow64@3x.webp
@@ -513,15 +518,20 @@ style:
513
518
  search: 'linear-gradient(to right, #04F3FF, #08FFC6, #DDF730, #FFBD19, #FF1FE0, #C418FF, #04F3FF)'
514
519
  sidebar:
515
520
  # 可以设置:纯色/渐变色/图片作为背景
516
- # background: 'linear-gradient(to bottom, #abc3, #abc3)'
517
- # background: 'linear-gradient(to bottom, #20E2D744, #F9FEA544)'
518
- background: 'url(https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.13/image/sidebar-bg1@small.jpg)'
519
- # 在图片上层增加高斯模糊效果(同时附带饱和度增强效果)
520
- blur: true
521
+ # background: var(--sidebar-bg)
522
+ # background-image: 'linear-gradient(to bottom, var(--sidebar-bg), var(--sidebar-bg))'
523
+ background-image: url(https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.13/image/sidebar-bg1@small.jpg)
524
+ blur-px: 100px
525
+ blur-bg: var(--alpha60)
521
526
  paginator:
522
527
  prev: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/arrow/f049bbd4e88ec.svg
523
528
  next: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/arrow/064b95430caf4.svg
524
529
  error_page: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/404/1c830bfcd517d.svg
530
+ site:
531
+ background-image: #'url(https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.14/image/site-bg1@small.webp)' # 未完全适配,慎用
532
+ blur-px: 100px
533
+ blur-bg: var(--alpha75)
534
+
525
535
 
526
536
  default:
527
537
  avatar: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/avatar/round/3442075.svg
package/_data/icons.yml CHANGED
@@ -1,3 +1,7 @@
1
+ # 小技巧
2
+ # - 如果更换了图标之后变得很大,请把原本的 class 复制到新的图标中
3
+ # - 如果更换了图标之后视觉轻微偏移,可以通过 style="xx" 来修正
4
+
1
5
 
2
6
  solar:documents-bold-duotone: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M5.879 2.879C5 3.757 5 5.172 5 8v8c0 2.828 0 4.243.879 5.121C6.757 22 8.172 22 11 22h2c2.828 0 4.243 0 5.121-.879C19 20.243 19 18.828 19 16V8c0-2.828 0-4.243-.879-5.121C17.243 2 15.828 2 13 2h-2c-2.828 0-4.243 0-5.121.879M8.25 17a.75.75 0 0 1 .75-.75h3a.75.75 0 0 1 0 1.5H9a.75.75 0 0 1-.75-.75M9 12.25a.75.75 0 0 0 0 1.5h6a.75.75 0 0 0 0-1.5zM8.25 9A.75.75 0 0 1 9 8.25h6a.75.75 0 0 1 0 1.5H9A.75.75 0 0 1 8.25 9" clip-rule="evenodd"/><path fill="currentColor" d="M5.235 4.058C5 4.941 5 6.177 5 8v8c0 1.823 0 3.058.235 3.942L5 19.924c-.975-.096-1.631-.313-2.121-.803C2 18.243 2 16.828 2 14v-4c0-2.829 0-4.243.879-5.121c.49-.49 1.146-.707 2.121-.803zm13.53 15.884C19 19.058 19 17.822 19 16V8c0-1.823 0-3.059-.235-3.942l.235.018c.975.096 1.631.313 2.121.803C22 5.757 22 7.17 22 9.999v4c0 2.83 0 4.243-.879 5.122c-.49.49-1.146.707-2.121.803z" opacity=".5"/></svg>
3
7
  solar:chat-square-like-bold-duotone: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="m13.629 20.472l-.542.916c-.483.816-1.69.816-2.174 0l-.542-.916c-.42-.71-.63-1.066-.968-1.262c-.338-.197-.763-.204-1.613-.219c-1.256-.021-2.043-.098-2.703-.372a5 5 0 0 1-2.706-2.706C2 14.995 2 13.83 2 11.5v-1c0-3.273 0-4.91.737-6.112a5 5 0 0 1 1.65-1.651C5.59 2 7.228 2 10.5 2h3c3.273 0 4.91 0 6.113.737a5 5 0 0 1 1.65 1.65C22 5.59 22 7.228 22 10.5v1c0 2.33 0 3.495-.38 4.413a5 5 0 0 1-2.707 2.706c-.66.274-1.447.35-2.703.372c-.85.015-1.275.022-1.613.219c-.338.196-.548.551-.968 1.262" opacity=".5"/><path fill="currentColor" d="M10.99 14.308c-1.327-.978-3.49-2.84-3.49-4.593c0-2.677 2.475-3.677 4.5-1.609c2.025-2.068 4.5-1.068 4.5 1.609c0 1.752-2.163 3.615-3.49 4.593c-.454.335-.681.502-1.01.502c-.329 0-.556-.167-1.01-.502"/></svg>
@@ -10,16 +14,17 @@ default:goback: <svg aria-hidden="true" viewBox="0 0 16 16" fill="currentColor">
10
14
  # 必须包含 class="loading"
11
15
  default:loading: <svg class="loading" style="vertical-align:middle;fill:currentColor;overflow:hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2709"><path d="M832 512c0-176-144-320-320-320V128c211.2 0 384 172.8 384 384h-64zM192 512c0 176 144 320 320 320v64C300.8 896 128 723.2 128 512h64z" p-id="2710"></path></svg>
12
16
 
13
- # 必须包含 class="icon search-icon"
14
- default:search: <svg t="1705074644177" class="icon search-icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1560" width="200" height="200"><path d="M1008.839137 935.96571L792.364903 719.491476a56.783488 56.783488 0 0 0-80.152866 0 358.53545 358.53545 0 1 1 100.857314-335.166073 362.840335 362.840335 0 0 1-3.689902 170.145468 51.248635 51.248635 0 1 0 99.217358 26.444296 462.057693 462.057693 0 1 0-158.255785 242.303546l185.930047 185.725053a51.248635 51.248635 0 0 0 72.568068 0 51.248635 51.248635 0 0 0 0-72.978056z" p-id="1561"></path><path d="M616.479587 615.969233a50.428657 50.428657 0 0 0-61.498362-5.534852 174.655348 174.655348 0 0 1-177.525271 3.484907 49.403684 49.403684 0 0 0-58.833433 6.76482l-3.074918 2.869923a49.403684 49.403684 0 0 0 8.609771 78.10292 277.767601 277.767601 0 0 0 286.992355-5.739847 49.403684 49.403684 0 0 0 8.404776-76.667958z" p-id="1562"></path></svg>
17
+ default:search: <svg t="1705074644177" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1560" width="200" height="200"><path d="M1008.839137 935.96571L792.364903 719.491476a56.783488 56.783488 0 0 0-80.152866 0 358.53545 358.53545 0 1 1 100.857314-335.166073 362.840335 362.840335 0 0 1-3.689902 170.145468 51.248635 51.248635 0 1 0 99.217358 26.444296 462.057693 462.057693 0 1 0-158.255785 242.303546l185.930047 185.725053a51.248635 51.248635 0 0 0 72.568068 0 51.248635 51.248635 0 0 0 0-72.978056z" p-id="1561"></path><path d="M616.479587 615.969233a50.428657 50.428657 0 0 0-61.498362-5.534852 174.655348 174.655348 0 0 1-177.525271 3.484907 49.403684 49.403684 0 0 0-58.833433 6.76482l-3.074918 2.869923a49.403684 49.403684 0 0 0 8.609771 78.10292 277.767601 277.767601 0 0 0 286.992355-5.739847 49.403684 49.403684 0 0 0 8.404776-76.667958z" p-id="1562"></path></svg>
15
18
  default:rss: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M5 21q-.825 0-1.412-.587T3 19q0-.825.588-1.412T5 17q.825 0 1.413.588T7 19q0 .825-.587 1.413T5 21m13.5 0q-.65 0-1.088-.475T16.9 19.4q-.275-2.425-1.312-4.537T12.9 11.1q-1.65-1.65-3.762-2.687T4.6 7.1q-.65-.075-1.125-.512T3 5.5q0-.65.45-1.062t1.075-.363q3.075.275 5.763 1.563t4.737 3.337q2.05 2.05 3.338 4.738t1.562 5.762q.05.625-.363 1.075T18.5 21m-6 0q-.625 0-1.075-.437T10.85 19.5q-.225-1.225-.787-2.262T8.65 15.35q-.85-.85-1.888-1.412T4.5 13.15q-.625-.125-1.062-.575T3 11.5q0-.65.45-1.075t1.075-.325q1.825.25 3.413 1.063t2.837 2.062q1.25 1.25 2.063 2.838t1.062 3.412q.1.625-.325 1.075T12.5 21"/></svg>
16
19
 
17
20
  # 必须包含 class="active-icon"
18
21
  default:bookmark.active: <svg class="active-icon" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M21 11.098v4.993c0 3.096 0 4.645-.734 5.321c-.35.323-.792.526-1.263.58c-.987.113-2.14-.907-4.445-2.946c-1.02-.901-1.529-1.352-2.118-1.47a2.225 2.225 0 0 0-.88 0c-.59.118-1.099.569-2.118 1.47c-2.305 2.039-3.458 3.059-4.445 2.945a2.238 2.238 0 0 1-1.263-.579C3 20.736 3 19.188 3 16.091v-4.994C3 6.81 3 4.666 4.318 3.333C5.636 2 7.758 2 12 2c4.243 0 6.364 0 7.682 1.332C21 4.665 21 6.81 21 11.098" opacity=".5"/><path fill="currentColor" d="M9 5.25a.75.75 0 0 0 0 1.5h6a.75.75 0 0 0 0-1.5z"/></svg>
19
22
 
20
- # 必须包含 class="icon"
21
- default:sidebar: <svg t="1705412886951" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8331" width="200" height="200"><path d="M638.72 970.666667h-256c-118.186667 0-198.272-25.002667-251.946667-78.72S52.053333 758.186667 52.053333 640V384c0-118.186667 25.002667-198.272 78.72-251.946667S264.533333 53.333333 382.72 53.333333h256c118.186667 0 198.272 25.002667 251.946667 78.72S969.386667 265.813333 969.386667 384v256c0 118.186667-25.002667 198.272-78.72 251.946667S756.906667 970.666667 638.72 970.666667z m-256-853.333334c-100.096 0-165.802667 19.2-206.72 59.946667S116.053333 283.904 116.053333 384v256c0 100.096 19.072 165.802667 59.946667 206.72S282.624 906.666667 382.72 906.666667h256c100.096 0 165.802667-19.072 206.72-59.946667S905.386667 740.096 905.386667 640V384c0-100.096-19.072-165.802667-59.946667-206.72S738.816 117.333333 638.72 117.333333z" p-id="8332"></path><path d="M638.72 970.666667a32 32 0 0 1-32-32V85.333333a32 32 0 0 1 32-32 32 32 0 0 1 32 32v853.333334a32 32 0 0 1-32 32zM340.053333 653.226667a31.914667 31.914667 0 0 1-22.613333-9.386667 32 32 0 0 1 0-45.269333L404.053333 512 317.44 425.386667a32 32 0 0 1 0-45.226667 32 32 0 0 1 45.226667 0l109.226666 109.226667a32 32 0 0 1 0 45.269333L362.666667 643.84a31.914667 31.914667 0 0 1-22.613334 9.386667z" p-id="8333"></path></svg>
23
+ # 侧边栏弹出按钮
24
+ default:sidebar: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-width="1.5"><path d="M2 11c0-3.771 0-5.657 1.172-6.828C4.343 3 6.229 3 10 3h4c3.771 0 5.657 0 6.828 1.172C22 5.343 22 7.229 22 11v2c0 3.771 0 5.657-1.172 6.828C19.657 21 17.771 21 14 21h-4c-3.771 0-5.657 0-6.828-1.172C2 18.657 2 16.771 2 13z"/><path id="sep" stroke-linecap="round" d="M5.5 10h6m-5 4h4m4.5 7V3"/></g></svg>
22
25
  default:pin: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="m12 16.068l-3.771 3.905c-.54.559-.81.839-1.04.935c-.52.22-1.099.032-1.373-.448c-.12-.21-.158-.59-.232-1.35c-.043-.43-.064-.644-.128-.824a1.433 1.433 0 0 0-.835-.864c-.173-.067-.38-.089-.795-.133c-.734-.077-1.101-.116-1.305-.24c-.463-.284-.646-.883-.433-1.422c.094-.237.364-.517.904-1.076L5.456 12l1.238-1.238zl5.306-5.306L18.544 12l2.464 2.55c.54.56.81.84.904 1.076c.213.54.03 1.139-.433 1.423c-.204.124-.57.163-1.305.24c-.414.044-.622.066-.795.133c-.389.149-.69.462-.835.864c-.064.18-.085.394-.128.823c-.075.76-.112 1.14-.232 1.351c-.274.48-.853.669-1.374.448c-.228-.096-.498-.376-1.038-.935z" opacity=".5"/><path fill="currentColor" fill-rule="evenodd" d="M12 16a7 7 0 1 0 0-14a7 7 0 0 0 0 14m0-10c-.284 0-.474.34-.854 1.023l-.098.176c-.108.194-.162.29-.246.354c-.085.064-.19.088-.4.135l-.19.044c-.738.167-1.107.25-1.195.532c-.088.283.164.577.667 1.165l.13.152c.143.167.215.25.247.354c.032.104.021.215 0 .438l-.02.203c-.076.785-.114 1.178.115 1.352c.23.174.576.015 1.267-.303l.178-.082c.197-.09.295-.135.399-.135c.104 0 .202.045.399.135l.178.082c.691.319 1.037.477 1.267.303c.23-.174.191-.567.115-1.352l-.02-.203c-.021-.223-.032-.334 0-.438c.032-.103.104-.187.247-.354l.13-.152c.503-.588.755-.882.667-1.165c-.088-.282-.457-.365-1.195-.532l-.19-.044c-.21-.047-.315-.07-.4-.135c-.084-.064-.138-.16-.246-.354l-.098-.176C12.474 6.34 12.284 6 12 6" clip-rule="evenodd"/></svg>
26
+ default:calendar: <svg style="margin-bottom:2px" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M6.94 2c.416 0 .753.324.753.724v1.46c.668-.012 1.417-.012 2.26-.012h4.015c.842 0 1.591 0 2.259.013v-1.46c0-.4.337-.725.753-.725s.753.324.753.724V4.25c1.445.111 2.394.384 3.09 1.055c.698.67.982 1.582 1.097 2.972L22 9H2v-.724c.116-1.39.4-2.302 1.097-2.972c.697-.67 1.645-.944 3.09-1.055V2.724c0-.4.337-.724.753-.724"/><path fill="currentColor" d="M22 14v-2c0-.839-.004-2.335-.017-3H2.01c-.013.665-.01 2.161-.01 3v2c0 3.771 0 5.657 1.172 6.828C4.343 22 6.228 22 10 22h4c3.77 0 5.656 0 6.828-1.172C22 19.658 22 17.772 22 14" opacity=".5"/><path fill="currentColor" d="M18 17a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m-5 4a1 1 0 1 1-2 0a1 1 0 0 1 2 0m0-4a1 1 0 1 1-2 0a1 1 0 0 1 2 0"/></svg>
27
+ default:category: <svg style="margin-bottom:1px" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M2 6.95c0-.883 0-1.324.07-1.692A4 4 0 0 1 5.257 2.07C5.626 2 6.068 2 6.95 2c.386 0 .58 0 .766.017a4 4 0 0 1 2.18.904c.144.119.28.255.554.529L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .848.352C14.098 6 14.675 6 15.828 6h.374c2.632 0 3.949 0 4.804.77c.079.07.154.145.224.224c.77.855.77 2.172.77 4.804V14c0 3.771 0 5.657-1.172 6.828C19.657 22 17.771 22 14 22h-4c-3.771 0-5.657 0-6.828-1.172C2 19.657 2 17.771 2 14z" opacity=".5"/><path fill="currentColor" d="M20 6.238c0-.298-.005-.475-.025-.63a3 3 0 0 0-2.583-2.582C17.197 3 16.965 3 16.5 3H9.988c.116.104.247.234.462.45L11 4c.816.816 1.224 1.224 1.712 1.495a4 4 0 0 0 .849.352C14.098 6 14.675 6 15.829 6h.373c1.78 0 2.957 0 3.798.238"/><path fill="currentColor" fill-rule="evenodd" d="M12.25 10a.75.75 0 0 1 .75-.75h5a.75.75 0 0 1 0 1.5h-5a.75.75 0 0 1-.75-.75" clip-rule="evenodd"/></svg>
23
28
 
24
29
  github:logo: <svg aria-hidden="true" role="img" class="color-icon-primary" viewBox="0 0 16 16" width="1em" height="1em" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg>
25
30
  github:repo: <svg aria-hidden="true" role="img" class="color-icon-primary" viewBox="0 0 16 16" width="1em" height="1em" fill="currentColor" style="user-select:none;overflow:visible"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg>
@@ -30,4 +35,7 @@ github:tag: <svg aria-hidden="true" role="img" class="color-icon-primary" viewBo
30
35
  share:wechat: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/social/b32ef3da1162a.svg
31
36
  share:weibo: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/social/80c07e4dbb303.svg
32
37
  share:email: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/social/a1b00e20f425d.svg
33
- share:link: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/social/8411ed322ced6.svg
38
+ share:link: https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.12/social/8411ed322ced6.svg
39
+
40
+ # quot icons
41
+ ph:seal-question-fill: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 256 256"><path fill="currentColor" d="M225.86 102.82c-3.77-3.94-7.67-8-9.14-11.57c-1.36-3.27-1.44-8.69-1.52-13.94c-.15-9.76-.31-20.82-8-28.51s-18.75-7.85-28.51-8c-5.25-.08-10.67-.16-13.94-1.52c-3.56-1.47-7.63-5.37-11.57-9.14C146.28 23.51 138.44 16 128 16s-18.27 7.51-25.18 14.14c-3.94 3.77-8 7.67-11.57 9.14c-3.25 1.36-8.69 1.44-13.94 1.52c-9.76.15-20.82.31-28.51 8s-7.8 18.75-8 28.51c-.08 5.25-.16 10.67-1.52 13.94c-1.47 3.56-5.37 7.63-9.14 11.57C23.51 109.72 16 117.56 16 128s7.51 18.27 14.14 25.18c3.77 3.94 7.67 8 9.14 11.57c1.36 3.27 1.44 8.69 1.52 13.94c.15 9.76.31 20.82 8 28.51s18.75 7.85 28.51 8c5.25.08 10.67.16 13.94 1.52c3.56 1.47 7.63 5.37 11.57 9.14c6.9 6.63 14.74 14.14 25.18 14.14s18.27-7.51 25.18-14.14c3.94-3.77 8-7.67 11.57-9.14c3.27-1.36 8.69-1.44 13.94-1.52c9.76-.15 20.82-.31 28.51-8s7.85-18.75 8-28.51c.08-5.25.16-10.67 1.52-13.94c1.47-3.56 5.37-7.63 9.14-11.57c6.63-6.9 14.14-14.74 14.14-25.18s-7.51-18.27-14.14-25.18M128 192a12 12 0 1 1 12-12a12 12 0 0 1-12 12m8-48.72v.72a8 8 0 0 1-16 0v-8a8 8 0 0 1 8-8c13.23 0 24-9 24-20s-10.77-20-24-20s-24 9-24 20v4a8 8 0 0 1-16 0v-4c0-19.85 17.94-36 40-36s40 16.15 40 36c0 17.38-13.76 31.93-32 35.28"/></svg>
@@ -3,9 +3,9 @@ function layoutCover() {
3
3
  if (page.wiki) {
4
4
  return partial('wiki_cover')
5
5
  }
6
- if (page.layout === 'post') {
7
- return partial('post_cover')
8
- }
6
+ // if (page.layout === 'post') {
7
+ // return partial('post_cover')
8
+ // }
9
9
  return ''
10
10
  }
11
11
  %>
@@ -122,7 +122,7 @@ function layoutDiv() {
122
122
  function qrcode() {
123
123
  if (theme.article.share.includes('wechat')) {
124
124
  return `
125
- <div class="qrcode" id="qrcode-wechat" style="visibility:hidden;height:0">
125
+ <div class="qrcode" id="qrcode-wechat" style="opacity:0;height:0">
126
126
  <img src="https://api.qrserver.com/v1/create-qr-code/?size=256x256&data=${page.permalink}"/>
127
127
  </div>
128
128
  `
@@ -2,7 +2,7 @@
2
2
  const content = theme.footer.content?.replace('${author.name}', (config.author || 'Anonymity'))?.replace('${theme.name}', stellar_info('name'))?.replace('${theme.version}', stellar_info('version'))?.replace('${theme.tree}', stellar_info('tree'))
3
3
  function layoutDiv() {
4
4
  var el = ''
5
- el += `<footer class="page-footer${scrollreveal(' ')} fs12">`
5
+ el += `<footer class="page-footer${scrollreveal(' ')} footnote">`
6
6
  el += '<hr>'
7
7
  // sitemap
8
8
  if (theme.footer.sitemap && Object.keys(theme.footer.sitemap).length > 0) {
@@ -13,7 +13,7 @@ function layoutDiv() {
13
13
  continue
14
14
  }
15
15
  el += '<div class="sitemap-group">'
16
- el += '<span class="fs14">' + group + '</span>'
16
+ el += '<span class="fs15">' + group + '</span>'
17
17
  items.forEach((item, i) => {
18
18
  el += '<a href="' + url_for(md_link(item)) + '">'
19
19
  el += __(md_text(item))
@@ -0,0 +1,54 @@
1
+ <%
2
+
3
+ var banner_url = page.banner || ''
4
+
5
+ function layoutTitle() {
6
+ const title = page.h1 != null ? page.h1 : page.title
7
+ if (title && title.length > 0) {
8
+ return `<h1 class="text title"><span>${title}</span></h1>`
9
+ } else {
10
+ return ''
11
+ }
12
+ }
13
+
14
+ function layoutBottom() {
15
+ const article_title = layoutTitle()
16
+ if (article_title.length > 0) {
17
+ return `
18
+ <div class="bottom">
19
+ <div class="text-area">
20
+ ${article_title}
21
+ </div>
22
+ </div>
23
+ `
24
+ } else {
25
+ return ``
26
+ }
27
+ }
28
+
29
+ function layoutDiv() {
30
+ const top = partial('article_top_area')
31
+ const bottom = layoutBottom()
32
+ if (top.trim().length == 0 && bottom.length == 0) {
33
+ return ``
34
+ }
35
+ var style = ``
36
+ var el = ``
37
+ el += `<div class="article banner top">`
38
+ if (banner_url.length > 0) {
39
+ el += `<img class="bg" src="${banner_url}">`
40
+ if (page.poster?.color) {
41
+ style += ' style="--text-banner:' + page.poster?.color + '"'
42
+ }
43
+ }
44
+ el += `
45
+ <div class="content"${style}>
46
+ ${top}
47
+ ${bottom}
48
+ </div>
49
+ `
50
+ el += `</div>`
51
+ return el
52
+ }
53
+ %>
54
+ <%- layoutDiv() %>
@@ -5,11 +5,11 @@ function layoutDiv() {
5
5
  }
6
6
  var el = ''
7
7
  // 1.main
8
- el += `<div class="bread-nav fs12">`
8
+ el += `<div class="top bread-nav footnote">`
9
9
  // 2.left
10
10
  el += `<div class="left">`
11
11
  // 3.left.top: 面包屑导航
12
- el += `<div id="breadcrumb">`
12
+ el += `<div class="flex-row" id="breadcrumb">`
13
13
  // 首页
14
14
  el += `<a class="cap breadcrumb" href="${url_for(config.root)}">${__("btn.home")}</a>`
15
15
  if (theme.wiki.tree[page.wiki]) {
@@ -2,7 +2,7 @@
2
2
  function layoutDiv() {
3
3
  const author = page.author
4
4
  var el = ``
5
- el += `<div class="tag-plugin banner author">`
5
+ el += `<div class="banner author top">`
6
6
  if (author.banner) {
7
7
  el += `<img class="bg" src="${author.banner}">`
8
8
  }
@@ -1,27 +1,29 @@
1
1
  <%
2
2
  function layoutDiv() {
3
3
  // 作者
4
- const author = theme.authors ? (theme.authors[page.author] || theme.default_author) : null
5
4
  var el = ''
6
- el += `<div id="post-meta">`
5
+ el += `<div class="flex-row" id="post-meta">`
7
6
  if (page.wiki) {
8
- el += `<span class="author">${__("meta.updated") + __("symbol.colon")}</span>`
7
+ el += `<span class="text created">${__("meta.updated") + __("symbol.colon")}`
9
8
  el += `<time datetime="${date_xml(page.updated)}">${date(page.updated, config.date_format)}</time>`
10
9
  el += `</span>`
11
10
  } else {
11
+ const author = theme.authors ? (theme.authors[page.author] || theme.default_author) : null
12
12
  if (author) {
13
- const link = `<a href="${url_for(author.path)}">${author.name}</a>`
14
- el += `<span class="author">${__("meta.created_author", link) + __("symbol.colon")}</span>`
15
- } else {
16
- el += `<span class="author">${__("meta.created") + __("symbol.colon")}</span>`
13
+ el += `<a class="author" href="${url_for(author.path)}">${author.name}</a>`
14
+ el += `<span class="sep"></span>`
17
15
  }
18
16
  // 发布日期
19
- el += `<span class="created">`
17
+ el += `<span class="text created">`
18
+ if (!author) {
19
+ el += `${__("meta.created") + __("symbol.colon")}`
20
+ }
20
21
  el += `<time datetime="${date_xml(page.date)}">${date(page.date, config.date_format)}</time>`
21
22
  el += `</span>`
22
23
  // 更新日期
23
- el += `<span class="updated">`
24
- el += `${__("symbol.comma") + __("meta.updated") + __("symbol.colon")}`
24
+ el += `<span class="sep updated"></span>`
25
+ el += `<span class="text updated">`
26
+ el += `${__("meta.updated") + __("symbol.colon")}`
25
27
  el += `<time datetime="${date_xml(page.updated)}">${date(page.updated, config.date_format)}</time>`
26
28
  el += `</span>`
27
29
  }
@@ -1,8 +1,8 @@
1
1
  <%
2
2
  function layoutDiv() {
3
3
  var el = '';
4
- el += '<div class="nav-wrap">';
5
- el += '<nav class="sub post cap">';
4
+ el += '<div class="navbar top">';
5
+ el += '<nav class="post">';
6
6
  if (is_home()) {
7
7
  el += '<a class="active" href="' + url_for(config.index_generator.path) + '">' + __("btn.recent_publish") + '</a>';
8
8
  } else {
@@ -1,8 +1,8 @@
1
1
  <%
2
2
  function layoutDiv() {
3
3
  var el = '';
4
- el += '<div class="nav-wrap">';
5
- el += '<nav class="sub wiki cap">';
4
+ el += '<div class="navbar top">';
5
+ el += '<nav class="wiki">';
6
6
  // 所有项目
7
7
  el += '<a';
8
8
  if (page.filter === false) {
@@ -69,9 +69,9 @@ function div_default() {
69
69
  // meta
70
70
  el += '<div class="meta cap">';
71
71
  el += '<span class="cap" id="post-meta">';
72
-
72
+ el += icon('default:calendar')
73
73
  // time
74
- el += __("meta.created") + '&nbsp;' + '<time datetime="' + date_xml(post.date) + '">' + date(post.date, config.date_format) + '</time>';
74
+ el += `<time datetime="${date_xml(post.date)}">${date(post.date, config.date_format)}</time>`
75
75
  el += '</span>';
76
76
  // cat
77
77
  if (post.categories && post.categories.length > 0) {
@@ -85,7 +85,8 @@ function div_default() {
85
85
  if (cats.length > 0) {
86
86
  let cat = cats.shift();
87
87
  el += '<span class="cap breadcrumb"' + category_color(cat) + '>';
88
- el += cat;
88
+ el += icon('default:category')
89
+ el += `<span>${cat}</span>`
89
90
  el += '</span>';
90
91
  }
91
92
  }
@@ -115,7 +115,7 @@ function layoutFooterDiv() {
115
115
  el += ' onclick="' + item.onclick + '"';
116
116
  }
117
117
  el += '>';
118
- el += item.icon;
118
+ el += icon(item.icon, 'no-lazy')
119
119
  el += '</a>';
120
120
  }
121
121
  }
@@ -12,13 +12,7 @@ function layoutDiv() {
12
12
  }
13
13
  el += `>`
14
14
  if (item.icon?.length > 0) {
15
- if (item.icon.startsWith('<')) {
16
- el += item.icon
17
- } else if (theme.icons[item.icon]) {
18
- el += theme.icons[item.icon]
19
- } else {
20
- el += `<img no-lazy src="${item.icon}">`
21
- }
15
+ el += icon(item.icon, 'no-lazy')
22
16
  } else {
23
17
  el += `<span>${__(item.title)}</span>`
24
18
  }
@@ -10,7 +10,7 @@ function relatedPostsInTopic() {
10
10
  var el = ''
11
11
  el += `<widget class="widget-wrapper${scrollreveal(' ')} post-list">`
12
12
  el += `<div class="widget-header dis-select">`
13
- el += `<span class="name">${__('btn.topic') + __('symbol.colon') + topic.name}</span>`
13
+ el += `<span class="name">${__('btn.topic') + __('symbol.colon') + (topic.name || topic.title)}</span>`
14
14
  el += `</div>`
15
15
  el += `<div class="widget-body">`
16
16
  for (let post of topic.pages) {
@@ -13,7 +13,7 @@ if (page.menu_id == undefined) {
13
13
  <% site.categories.sort('path').each(function(category){ %>
14
14
  <div>
15
15
  <a class="<%= category.parent ? 'cat child' : 'cat'%>" href="<%= url_for(category.path) %>">
16
- <span class='name'><%- category.name %></span>
16
+ <span class='name'><%- icon('default:category') %><%- category.name %></span>
17
17
  <span class='badge'>(<%- category.posts.length %>)</span>
18
18
  </a>
19
19
  </div>
package/layout/layout.ejs CHANGED
@@ -25,10 +25,18 @@ if (page.indent != null) {
25
25
  indent = article_type === 'story'
26
26
  }
27
27
 
28
+ var site_background = ''
29
+ if (theme.style.site && theme.style.site['background-image']) {
30
+ site_background += `<div class="sitebg">`
31
+ site_background += `<div class="siteblur"></div>`
32
+ site_background += `</div>`
33
+ }
34
+
28
35
  var html = `<!DOCTYPE html>`
29
36
  html += `<html lang="${page.lang}">`
30
37
  html += partial('_partial/head')
31
38
  html += `<body>`
39
+ html += site_background
32
40
  html += partial('_partial/cover/index')
33
41
  html += `<div class="l_body ${page_type} ${article_type}" id="start" layout="${page.layout}" ${indent ? 'text-indent' : ''}>`
34
42
  html += `<aside class="l_left">`
package/layout/page.ejs CHANGED
@@ -22,15 +22,6 @@ if (page.title == null) {
22
22
  }
23
23
  }
24
24
 
25
- function layoutTitle() {
26
- const title = page.h1 != null ? page.h1 : page.title
27
- if (title && title.length > 0) {
28
- return `<h1 class="article-title"><span>${title}</span></h1>`
29
- } else {
30
- return ''
31
- }
32
- }
33
-
34
25
  function articleClass() {
35
26
  var str = `md-text content${scrollreveal(' ')}`
36
27
  if (isUsingHeti) {
@@ -48,10 +39,9 @@ function layoutDiv() {
48
39
  el += partial('_partial/main/navbar/nav_tabs_blog')
49
40
  }
50
41
  if (page.h1 || page.title || (page.content && page.content.length > 0)) {
51
- el += partial('_partial/main/navbar/article_top_area')
42
+ el += partial('_partial/main/navbar/article_banner')
52
43
  }
53
44
  el += `<article class="${articleClass()}">`
54
- el += layoutTitle()
55
45
  if (page.content && page.content.length > 0) {
56
46
  el += page.content
57
47
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hexo-theme-stellar",
3
- "version": "1.26.3",
3
+ "version": "1.26.5",
4
4
  "description": "Elegant and powerful theme for Hexo.",
5
5
  "main": "package.json",
6
6
  "scripts": {
@@ -70,4 +70,20 @@ module.exports = hexo => {
70
70
  return ret.join('&');
71
71
  }
72
72
  };
73
+ hexo.utils = {
74
+ icon: (key, args) => {
75
+ const { icons } = hexo.theme.config
76
+ var result = ''
77
+ if (icons[key]) {
78
+ result = icons[key]
79
+ } else {
80
+ result = key
81
+ }
82
+ if (result.startsWith('/') || result.startsWith('https://') || result.startsWith('http://')) {
83
+ return `<img ${args?.length > 0 ? args : ''} src="${result}" />`
84
+ } else {
85
+ return result
86
+ }
87
+ }
88
+ };
73
89
  };
@@ -1,16 +1,5 @@
1
1
  'use strict';
2
2
 
3
- hexo.extend.helper.register('icon', function(key) {
4
- const { icons } = hexo.theme.config
5
- var result = ''
6
- if (icons[key]) {
7
- result = icons[key]
8
- } else {
9
- result = key
10
- }
11
- if (result.startsWith('/') || result.startsWith('https://') || result.startsWith('http://')) {
12
- return `<img src="${result}" />`
13
- } else {
14
- return result
15
- }
3
+ hexo.extend.helper.register('icon', function(key, args) {
4
+ return hexo.utils.icon(key, args)
16
5
  })
@@ -29,6 +29,7 @@ hexo.extend.tag.register('checkbox', require('./lib/checkbox')(hexo, 'checkbox')
29
29
  hexo.extend.tag.register('radio', require('./lib/checkbox')(hexo, 'radio'))
30
30
  hexo.extend.tag.register('copy', require('./lib/copy')(hexo))
31
31
  hexo.extend.tag.register('emoji', require('./lib/emoji')(hexo))
32
+ hexo.extend.tag.register('icon', require('./lib/icon')(hexo))
32
33
  hexo.extend.tag.register('frame', require('./lib/frame')(hexo))
33
34
  hexo.extend.tag.register('image', require('./lib/image')(hexo))
34
35
  hexo.extend.tag.register('link', require('./lib/link')(hexo))
@@ -0,0 +1,27 @@
1
+ /**
2
+ * icon.js v1.0 | https://github.com/xaoxuu/hexo-theme-stellar/
3
+ * 格式与官方标签插件一致使用空格分隔,中括号内的是可选参数(中括号不需要写出来)
4
+ *
5
+ * {% icon key [color:color] [style:css] %}
6
+ *
7
+ */
8
+
9
+ 'use strict'
10
+
11
+ module.exports = ctx => function(args) {
12
+ args = ctx.args.map(args, ['color', 'style'], ['key'])
13
+ if (args.color == null) {
14
+ args.color = ctx.theme.config.tag_plugins.icon.default_color
15
+ }
16
+ var el = ''
17
+ el += '<span class="tag-plugin colorful icon"'
18
+ el += ' ' + ctx.args.joinTags(args, ['color']).join(' ')
19
+ el += '>'
20
+ var more = ''
21
+ if (args.style) {
22
+ more += `style="${args.style}"`
23
+ }
24
+ el += ctx.utils.icon(args.key, more)
25
+ el += '</span>'
26
+ return el
27
+ }
@@ -45,10 +45,10 @@ module.exports = ctx => function(args) {
45
45
  return '<span class="title">' + (args.title || args.url) + '</span>'
46
46
  }
47
47
  function loadDesc() {
48
- return '<span class="cap desc fs12"></span>'
48
+ return '<span class="cap desc footnote"></span>'
49
49
  }
50
50
  function loadLink() {
51
- return '<span class="cap link fs12">' + full_url_for(args.url) + '</span>'
51
+ return '<span class="cap link footnote">' + full_url_for(args.url) + '</span>'
52
52
  }
53
53
 
54
54
  if (args.desc) {
@@ -18,7 +18,7 @@ module.exports = ctx => function(args) {
18
18
  if (args.links) {
19
19
  args.links = args.links.split(' ')
20
20
  }
21
- var el = `<div class="tag-plugin navbar"><nav class="cap">`
21
+ var el = `<div class="tag-plugin navbar"><nav>`
22
22
  for (let link of args.links) {
23
23
  const matches = link.match(/\[(.*?)\]\((.*?)\)/i)
24
24
  if (matches?.length > 2) {
@@ -24,7 +24,7 @@ module.exports = ctx => function(args) {
24
24
  el += '>'
25
25
  // title
26
26
  if (title && title.length > 0) {
27
- el += '<div class="title">' + title + '</div>'
27
+ el += `<div class="title">${title}</div>`
28
28
  }
29
29
  // content
30
30
  el += '<div class="body">'