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.
- package/_config.yml +24 -14
- package/_data/icons.yml +13 -5
- package/layout/_partial/cover/index.ejs +3 -3
- package/layout/_partial/main/article/article_footer.ejs +1 -1
- package/layout/_partial/main/footer.ejs +2 -2
- package/layout/_partial/main/navbar/article_banner.ejs +54 -0
- package/layout/_partial/main/navbar/article_top_area.ejs +2 -2
- package/layout/_partial/main/navbar/author_banner.ejs +1 -1
- package/layout/_partial/main/navbar/dateinfo.ejs +12 -10
- package/layout/_partial/main/navbar/nav_tabs_blog.ejs +2 -2
- package/layout/_partial/main/navbar/nav_tabs_wiki.ejs +2 -2
- package/layout/_partial/main/post_list/post_card.ejs +4 -3
- package/layout/_partial/sidebar/index.ejs +1 -1
- package/layout/_partial/sidebar/menu.ejs +1 -7
- package/layout/_partial/widgets/related.ejs +1 -1
- package/layout/categories.ejs +1 -1
- package/layout/layout.ejs +8 -0
- package/layout/page.ejs +1 -11
- package/package.json +1 -1
- package/scripts/events/lib/utils.js +16 -0
- package/scripts/helpers/icon.js +2 -13
- package/scripts/tags/index.js +1 -0
- package/scripts/tags/lib/icon.js +27 -0
- package/scripts/tags/lib/link.js +2 -2
- package/scripts/tags/lib/navbar.js +1 -1
- package/scripts/tags/lib/note.js +1 -1
- package/scripts/tags/lib/quot.js +15 -12
- package/source/css/_common/base.styl +3 -2
- package/source/css/_common/button.styl +31 -29
- package/source/css/_common/cap.styl +1 -1
- package/source/css/_common/device.styl +16 -5
- package/source/css/_common/html.styl +1 -0
- package/source/css/_common/input.styl +1 -1
- package/source/css/_common/title.styl +17 -15
- package/source/css/_common/toast.styl +1 -0
- package/source/css/_custom.styl +18 -10
- package/source/css/_defines/const.styl +2 -1
- package/source/css/_defines/theme.styl +6 -4
- package/source/css/_layout/layout.styl +3 -2
- package/source/css/_layout/list.styl +34 -23
- package/source/css/_layout/main.styl +19 -3
- package/source/css/_layout/md.styl +48 -92
- package/source/css/_layout/pages/archives.styl +12 -4
- package/source/css/_layout/partial/article-banner.styl +58 -0
- package/source/css/_layout/partial/article-footer.styl +16 -4
- package/source/css/_layout/partial/bread-nav.styl +22 -18
- package/source/css/_layout/partial/cover.styl +2 -11
- package/source/css/_layout/partial/footer.styl +2 -2
- package/source/css/_layout/partial/navbar.styl +22 -12
- package/source/css/_layout/partial/related.styl +7 -5
- package/source/css/_layout/sidebar/footer.styl +1 -0
- package/source/css/_layout/sidebar/logo.styl +1 -1
- package/source/css/_layout/sidebar/search.styl +18 -15
- package/source/css/_layout/sidebar/sidebar.styl +13 -10
- package/source/css/_layout/tag-plugins/banner.styl +41 -27
- package/source/css/_layout/tag-plugins/common.styl +8 -4
- package/source/css/_layout/tag-plugins/copy.styl +2 -1
- package/source/css/_layout/tag-plugins/folders.styl +4 -3
- package/source/css/_layout/tag-plugins/folding.styl +4 -2
- package/source/css/_layout/tag-plugins/hashtag.styl +2 -1
- package/source/css/_layout/tag-plugins/icon.styl +12 -0
- package/source/css/_layout/tag-plugins/image.styl +1 -1
- package/source/css/_layout/tag-plugins/link.styl +1 -1
- package/source/css/_layout/tag-plugins/mark.styl +1 -1
- package/source/css/_layout/tag-plugins/navbar.styl +9 -22
- package/source/css/_layout/tag-plugins/note.styl +5 -3
- package/source/css/_layout/tag-plugins/poetry.styl +5 -5
- package/source/css/_layout/tag-plugins/quot.styl +24 -24
- package/source/css/_layout/tag-plugins/tabs.styl +4 -3
- package/source/css/_layout/tag-plugins/timeline.styl +24 -10
- package/source/css/_layout/widgets/ghuser.styl +2 -2
- package/source/css/_layout/widgets/markdown.styl +2 -2
- package/source/css/_layout/widgets/timeline.styl +11 -8
- package/source/css/_layout/widgets/toc_common.styl +1 -5
- package/source/css/_layout/widgets/toc_wiki.styl +3 -3
- package/source/css/_layout/widgets/widgets.styl +3 -3
- package/source/css/_plugins/swiper.styl +1 -1
- 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
|
+
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:
|
|
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:
|
|
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:
|
|
475
|
-
code: 85% #
|
|
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:
|
|
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:
|
|
517
|
-
# background: 'linear-gradient(to bottom,
|
|
518
|
-
background:
|
|
519
|
-
|
|
520
|
-
blur:
|
|
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
|
-
|
|
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
|
-
#
|
|
21
|
-
default:sidebar: <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>
|
|
@@ -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="
|
|
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(' ')}
|
|
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="
|
|
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
|
|
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]) {
|
|
@@ -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="
|
|
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
|
-
|
|
14
|
-
el += `<span class="
|
|
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 +=
|
|
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="
|
|
5
|
-
el += '<nav class="
|
|
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 {
|
|
@@ -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 +=
|
|
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 +=
|
|
88
|
+
el += icon('default:category')
|
|
89
|
+
el += `<span>${cat}</span>`
|
|
89
90
|
el += '</span>';
|
|
90
91
|
}
|
|
91
92
|
}
|
|
@@ -12,13 +12,7 @@ function layoutDiv() {
|
|
|
12
12
|
}
|
|
13
13
|
el += `>`
|
|
14
14
|
if (item.icon?.length > 0) {
|
|
15
|
-
|
|
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) {
|
package/layout/categories.ejs
CHANGED
|
@@ -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/
|
|
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
|
@@ -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
|
};
|
package/scripts/helpers/icon.js
CHANGED
|
@@ -1,16 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
hexo.extend.helper.register('icon', function(key) {
|
|
4
|
-
|
|
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
|
})
|
package/scripts/tags/index.js
CHANGED
|
@@ -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
|
+
}
|
package/scripts/tags/lib/link.js
CHANGED
|
@@ -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
|
|
48
|
+
return '<span class="cap desc footnote"></span>'
|
|
49
49
|
}
|
|
50
50
|
function loadLink() {
|
|
51
|
-
return '<span class="cap link
|
|
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
|
|
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) {
|
package/scripts/tags/lib/note.js
CHANGED