hexo-theme-stellar 2.0.0-rc.4 → 2.0.0-rc.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/CHANGELOG.md +29 -0
- package/_config.yml +19 -25
- package/_data/icons.yml +3 -5
- package/layout/_partial/components/collection-item.ejs +1 -0
- package/layout/_partial/head.ejs +5 -30
- package/layout/_partial/main/article/share.ejs +2 -9
- package/layout/_partial/main/listing_nav/wiki.ejs +0 -2
- package/layout/_partial/main/navbar/article_banner.ejs +13 -11
- package/layout/_partial/main/pin_slider.ejs +0 -230
- package/layout/_partial/main/post_list/post_card.ejs +1 -1
- package/layout/_partial/main/post_list/wiki_card.ejs +1 -1
- package/layout/_partial/scripts/defines.ejs +12 -66
- package/layout/_partial/scripts.ejs +1 -1
- package/layout/_partial/search/shortcut.ejs +1 -1
- package/layout/_partial/sidebar/brand.ejs +14 -10
- package/layout/_partial/sidebar/menu.ejs +0 -42
- package/layout/index_wiki.ejs +0 -38
- package/layout/layout.ejs +3 -21
- package/package.json +1 -1
- package/scripts/filters/lib/img_onerror.js +5 -2
- package/scripts/filters/runtime-minify.js +17 -0
- package/scripts/generators/stellar-icons.js +10 -23
- package/scripts/helpers/extension_assets.js +8 -0
- package/scripts/helpers/json_ld.js +0 -1
- package/scripts/helpers/ui_classes.js +1 -5
- package/scripts/lib/client-assets.js +73 -0
- package/scripts/lib/config-schema.js +4 -18
- package/scripts/lib/contribution-registry.js +14 -0
- package/scripts/lib/image-fallback.js +24 -0
- package/scripts/lib/menu.js +1 -1
- package/scripts/lib/models/notebook.js +0 -1
- package/scripts/lib/models/post.js +0 -1
- package/scripts/lib/models/shared.js +3 -8
- package/scripts/lib/models/topic.js +0 -1
- package/scripts/lib/models/wiki.js +2 -4
- package/scripts/lib/seo.js +1 -5
- package/scripts/lib/share-services.js +5 -20
- package/scripts/lib/widget-registry.js +3 -2
- package/scripts/schema/config-rules.js +11 -3
- package/scripts/schema/content-config-rules.js +3 -9
- package/scripts/schema/content-config-schema.js +1 -1
- package/scripts/schema/model-schema.js +6 -7
- package/scripts/tags/lib/dropdown.js +1 -1
- package/scripts/tags/lib/image.js +0 -1
- package/source/css/_appearances/_mixins.styl +29 -19
- package/source/css/_appearances/glass.styl +5 -0
- package/source/css/_appearances/minimal.styl +12 -3
- package/source/css/_common/dropdown.styl +4 -3
- package/source/css/_common/title.styl +14 -7
- package/source/css/_components/collection.styl +3 -0
- package/source/css/_components/layout.styl +57 -5
- package/source/css/_components/list.styl +1 -1
- package/source/css/_components/pages/article-story.styl +15 -5
- package/source/css/_components/pages/article-tech.styl +1 -11
- package/source/css/_components/partial/article-banner.styl +4 -2
- package/source/css/_components/partial/article-share.styl +7 -7
- package/source/css/_components/pin-slider.styl +1 -4
- package/source/css/_components/sidebar/brand.styl +8 -0
- package/source/css/_components/sidebar/search.styl +7 -4
- package/source/css/_components/sidebar/sidebar.styl +4 -2
- package/source/css/_components/tag-plugins/banner.styl +1 -1
- package/source/css/_components/tag-plugins/frame.styl +1 -0
- package/source/css/_components/widgets/toc.styl +90 -18
- package/source/css/_defines/theme_colorful.styl +5 -2
- package/source/js/main.js +56 -21
- package/source/js/runtime/extensions/adaptive-text.js +22 -0
- package/source/js/runtime/extensions/comments.js +54 -63
- package/source/js/runtime/extensions/pin-slider.js +220 -0
- package/source/js/runtime/extensions/reveal.js +15 -11
- package/source/js/search/shortcut.js +0 -15
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.0-rc.5
|
|
4
|
+
|
|
5
|
+
> 发布日期:2026-09-12
|
|
6
|
+
|
|
7
|
+
本节记录从公开候选 `2.0.0-rc.4` 到 `2.0.0-rc.5` 最终文件树的净变化。
|
|
8
|
+
|
|
9
|
+
### 新功能
|
|
10
|
+
|
|
11
|
+
- Leftbar Brand 支持 `ghrepo: owner/repo` 仓库统计,优先于 `ghuser`;搜索按钮移入 Brand,由 `leftbar.brand.search` 控制,默认开启。
|
|
12
|
+
- 完善侧栏初始折叠状态,Tree、Linklist、Related 支持折叠栏;右栏随左栏收起显示紧凑目录,支持悬停和键盘焦点展开,目录活动指示条平滑跟随当前条目。
|
|
13
|
+
- Reveal 支持 `duration/interval/distance/blur`,默认分别为 800ms、200ms、8px、4px,可配置依次播放、位移和模糊。
|
|
14
|
+
|
|
15
|
+
### 修复与改进
|
|
16
|
+
|
|
17
|
+
- 共享客户端配置、图标样式与置顶轮播脚本改为外部资源,集中处理图片失败回退,减少逐页重复 HTML;为 hexo-minify 排除原生 Runtime ESM,保留模块语义。
|
|
18
|
+
- 评论在页面挂载时立即开始加载,第三方资源加载不再阻塞页面初始化;保留页面卸载时取消与清理。
|
|
19
|
+
- 横幅统一使用页面 `cover`,作者页使用作者 `cover`,同步 SEO 图片来源;改进背景文字自适应与头像边框。
|
|
20
|
+
- 调整标题装饰、导航下划线、搜索图标与快捷键提示、侧栏间距、移动正文顶部留白和长目录标题;修复 frame 媒体比例,mark 默认使用主题色并改进暗色配色。
|
|
21
|
+
|
|
22
|
+
### 升级注意(配置变更与破坏性改动)
|
|
23
|
+
|
|
24
|
+
- 删除 Menu 中的 `type: search` 项,改用 `leftbar.brand.search`;搜索需要启用 Provider 且 Brand 有图片或名称。该字段支持主题、Profile、Collection 和 Page 覆盖。
|
|
25
|
+
- 分享服务 `wechat` 改为通用 `qrcode`,移除 `link` 与 `system`;检查 `article.footer.share` 及内容 `footer.share`,当前支持 qrcode、weibo、x、telegram、whatsapp、email。
|
|
26
|
+
- 页面 `banner.image` 改用顶层 `cover`;Collection 不再声明 `banner`,页面 `banner` 仅保留 enabled/avatar/headline/tagline。移除 `article.banner.ratio`,横幅不再使用独立比例配置。
|
|
27
|
+
- 移除 `appearance.typography.heading_prefixes`,标题装饰由主题样式维护。
|
|
28
|
+
- Site Info、Rating、Vote 的服务 endpoint 默认留空,需要自行部署并填写地址;升级后如依赖这些服务,请显式配置对应 endpoint。
|
|
29
|
+
|
|
30
|
+
Full Changelog: [2.0.0-rc.4...2.0.0-rc.5](https://github.com/xaoxuu/hexo-theme-stellar/compare/2.0.0-rc.4...2.0.0-rc.5)
|
|
31
|
+
|
|
3
32
|
## 2.0.0-rc.4
|
|
4
33
|
|
|
5
34
|
> 发布日期:2026-09-10
|
package/_config.yml
CHANGED
|
@@ -38,9 +38,13 @@ leftbar:
|
|
|
38
38
|
default_state: expanded
|
|
39
39
|
# 配置 Leftbar 固定 Brand 内容。
|
|
40
40
|
brand:
|
|
41
|
+
# 控制 Brand 区域的搜索按钮;需要配置 search.provider。
|
|
42
|
+
search: true
|
|
41
43
|
# 设置 Leftbar Brand 的视觉样式;可选值为 regular 或 compact。
|
|
42
44
|
style: regular
|
|
43
|
-
#
|
|
45
|
+
# 设置 Brand 数据区的 GitHub 仓库(owner/repo);留空不显示仓库统计。
|
|
46
|
+
ghrepo: null
|
|
47
|
+
# 设置 Brand 数据区的 GitHub 用户名;未设置 ghrepo 时使用,留空不显示。
|
|
44
48
|
ghuser: null
|
|
45
49
|
# 配置品牌图片。
|
|
46
50
|
image:
|
|
@@ -112,8 +116,6 @@ leftbar:
|
|
|
112
116
|
icon: default:profile
|
|
113
117
|
# 设置菜单链接。
|
|
114
118
|
url: /about/
|
|
115
|
-
# 声明默认的搜索入口。
|
|
116
|
-
- type: search
|
|
117
119
|
# 设置 Leftbar 内容 Widget;空数组表示清空内容区。
|
|
118
120
|
widgets: []
|
|
119
121
|
# 配置 Leftbar 固定底部区域。
|
|
@@ -472,10 +474,6 @@ article:
|
|
|
472
474
|
category_colors:
|
|
473
475
|
# 设置“探索号”分类的颜色。
|
|
474
476
|
探索号: '#f44336'
|
|
475
|
-
# 配置文章页横幅。
|
|
476
|
-
banner:
|
|
477
|
-
# 设置文章页横幅宽高比,数值必须大于 0。
|
|
478
|
-
ratio: 2.5
|
|
479
477
|
# 控制是否显示预计阅读时间。
|
|
480
478
|
show_reading_time: false
|
|
481
479
|
# 设置相关文章最大数量,0 表示不显示相关文章。
|
|
@@ -485,16 +483,14 @@ article:
|
|
|
485
483
|
# 设置文章许可协议;false 表示不显示许可信息。
|
|
486
484
|
license: 本文采用 [署名-非商业性使用-相同方式共享 4.0 国际](https://creativecommons.org/licenses/by-nc-sa/4.0/) 许可协议,转载请注明出处。
|
|
487
485
|
# 设置文章分享服务;普通博客与 Topic 专栏博客默认全部启用,Wiki 与 Notebook 默认关闭,可通过 footer.share 显式开启。
|
|
488
|
-
# 支持
|
|
486
|
+
# 支持 qrcode、weibo、x、telegram、whatsapp、email;空数组表示不显示分享入口。
|
|
489
487
|
share:
|
|
490
|
-
-
|
|
488
|
+
- qrcode
|
|
491
489
|
- weibo
|
|
492
490
|
- x
|
|
493
491
|
- telegram
|
|
494
492
|
- whatsapp
|
|
495
493
|
- email
|
|
496
|
-
- link
|
|
497
|
-
- system
|
|
498
494
|
# 控制文章页页脚是否显示标签。
|
|
499
495
|
show_tags: true
|
|
500
496
|
|
|
@@ -557,16 +553,6 @@ appearance:
|
|
|
557
553
|
code_block: 0.8125rem
|
|
558
554
|
# 设置正文对齐方式;可选值为 left、center、right 或 justify。
|
|
559
555
|
content_align: left
|
|
560
|
-
# 配置各级标题的前缀字符。
|
|
561
|
-
heading_prefixes:
|
|
562
|
-
# 设置二级标题前缀。
|
|
563
|
-
h2: '#'
|
|
564
|
-
# 设置三级标题前缀。
|
|
565
|
-
h3: '='
|
|
566
|
-
# 设置四级标题前缀。
|
|
567
|
-
h4: '|'
|
|
568
|
-
# 设置五级标题前缀。
|
|
569
|
-
h5: ':'
|
|
570
556
|
|
|
571
557
|
# 配置组件形状。
|
|
572
558
|
shape:
|
|
@@ -832,7 +818,7 @@ tags:
|
|
|
832
818
|
# 配置 mark 标签插件。
|
|
833
819
|
mark:
|
|
834
820
|
# 设置 mark 默认颜色。
|
|
835
|
-
default_color:
|
|
821
|
+
default_color: theme
|
|
836
822
|
# 配置 hashtag 标签插件。
|
|
837
823
|
hashtag:
|
|
838
824
|
# 设置 hashtag 默认颜色;null 表示使用主题默认色。
|
|
@@ -891,6 +877,14 @@ features:
|
|
|
891
877
|
reveal:
|
|
892
878
|
# 控制是否启用滚动揭示动画。
|
|
893
879
|
enabled: true
|
|
880
|
+
# 动画持续时间,单位毫秒,须大于或等于 0。
|
|
881
|
+
duration: 800
|
|
882
|
+
# 连续进入视口的元素依次开始播放的间隔,单位毫秒,须大于或等于 0;0 同时播放。
|
|
883
|
+
interval: 200
|
|
884
|
+
# 垂直移动距离,单位像素;正数从下方进入,负数从上方进入,0 仅淡入。
|
|
885
|
+
distance: 8
|
|
886
|
+
# 初始模糊半径,单位像素,须大于或等于 0;0 关闭模糊,较大值会增加渲染开销。
|
|
887
|
+
blur: 4
|
|
894
888
|
# 配置卡片悬停效果。
|
|
895
889
|
card_hover:
|
|
896
890
|
# 控制是否启用鼠标跟随光照。
|
|
@@ -947,7 +941,7 @@ services:
|
|
|
947
941
|
# 配置 site_info_api Provider。
|
|
948
942
|
site_info_api:
|
|
949
943
|
# 设置站点信息查询接口,{href} 会替换为目标网址。
|
|
950
|
-
endpoint: https://api.xaox.cc/site_info/v1?url={href}
|
|
944
|
+
endpoint: # https://api.xaox.cc/site_info/v1?url={href} 需要自行部署服务:https://github.com/xaoxuu/site-info-api
|
|
951
945
|
# 配置评分服务。
|
|
952
946
|
rating:
|
|
953
947
|
# 设置评分 Provider;可选值为 star_vote 或 null。
|
|
@@ -955,7 +949,7 @@ services:
|
|
|
955
949
|
# 配置评分使用的 star_vote Provider。
|
|
956
950
|
star_vote:
|
|
957
951
|
# 设置评分接口地址。
|
|
958
|
-
endpoint: https://star-vote.xaox.cc/api/rating
|
|
952
|
+
endpoint: # https://star-vote.xaox.cc/api/rating 需要自行部署服务:https://github.com/xaoxuu/star-vote
|
|
959
953
|
# 配置投票服务。
|
|
960
954
|
vote:
|
|
961
955
|
# 设置投票 Provider;可选值为 star_vote 或 null。
|
|
@@ -963,7 +957,7 @@ services:
|
|
|
963
957
|
# 配置投票使用的 star_vote Provider。
|
|
964
958
|
star_vote:
|
|
965
959
|
# 设置投票接口地址。
|
|
966
|
-
endpoint: https://star-vote.xaox.cc/api/vote
|
|
960
|
+
endpoint: # https://star-vote.xaox.cc/api/vote 需要自行部署服务:https://github.com/xaoxuu/star-vote
|
|
967
961
|
# 配置内容贡献者服务。
|
|
968
962
|
contributors:
|
|
969
963
|
# 设置贡献者 Provider。
|
package/_data/icons.yml
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
# 通用入口、Shell 与设置
|
|
5
5
|
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>
|
|
6
|
-
default:search: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><!--
|
|
6
|
+
default:search: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><!-- Adapted from Google Material Icons by Material Design Authors - https://github.com/material-icons/material-icons/blob/master/LICENSE --><g fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 8h3M3 13h3M3 18h8M16.83 13.83l3.76 3.76"/><circle cx="14" cy="11" r="4"/></g></svg>
|
|
7
7
|
default:leftbar: <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>
|
|
8
8
|
default:leftbar-toggle: <svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" fill-rule="evenodd" d="M3.172 4.172C2 5.343 2 7.229 2 11v2c0 3.771 0 5.657 1.172 6.828S6.229 21 10 21h5V3h-5C6.229 3 4.343 3 3.172 4.172" clip-rule="evenodd" opacity=".5"/><path fill="currentColor" d="M5.5 9.25a.75.75 0 0 0 0 1.5h6a.75.75 0 0 0 0-1.5zm1 4a.75.75 0 0 0 0 1.5h4a.75.75 0 0 0 0-1.5zM22 13v-2c0-3.771 0-5.657-1.172-6.828c-.974-.975-3.192-1.139-5.828-1.166v17.988c2.636-.027 4.854-.191 5.828-1.166C22 18.657 22 16.771 22 13"/></svg>
|
|
9
9
|
default:settings: <svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><g fill="currentColor"><path fill-rule="evenodd" d="M12.4277 2C11.3139 2 10.2995 2.6007 8.27081 3.80211L7.58466 4.20846C5.55594 5.40987 4.54158 6.01057 3.98466 7C3.42773 7.98943 3.42773 9.19084 3.42773 11.5937V12.4063C3.42773 14.8092 3.42773 16.0106 3.98466 17C4.54158 17.9894 5.55594 18.5901 7.58466 19.7915L8.27081 20.1979C10.2995 21.3993 11.3139 22 12.4277 22C13.5416 22 14.5559 21.3993 16.5847 20.1979L17.2708 19.7915C19.2995 18.5901 20.3139 17.9894 20.8708 17C21.4277 16.0106 21.4277 14.8092 21.4277 12.4063V11.5937C21.4277 9.19084 21.4277 7.98943 20.8708 7C20.3139 6.01057 19.2995 5.40987 17.2708 4.20846L16.5847 3.80211C14.5559 2.6007 13.5416 2 12.4277 2Z" clip-rule="evenodd" opacity=".5"/><path d="M12.4277 8.25C10.3567 8.25 8.67773 9.92893 8.67773 12C8.67773 14.0711 10.3567 15.75 12.4277 15.75C14.4988 15.75 16.1777 14.0711 16.1777 12C16.1777 9.92893 14.4988 8.25 12.4277 8.25Z"/></g></svg>
|
|
@@ -18,7 +18,7 @@ default:github: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" v
|
|
|
18
18
|
default:monitor: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M3 7c0-1.886 0-2.828.586-3.414C4.172 3 5.114 3 7 3h10c1.886 0 2.828 0 3.414.586C21 4.172 21 5.114 21 7v6c0 1.886 0 2.828-.586 3.414C19.828 17 18.886 17 17 17H7c-1.886 0-2.828 0-3.414-.586C3 15.828 3 14.886 3 13z" opacity=".5"/><path fill="currentColor" d="M12.75 17.75h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V17h1.5zM7 6.25h10a.75.75 0 0 1 0 1.5H7a.75.75 0 0 1 0-1.5"/></svg>
|
|
19
19
|
|
|
20
20
|
# 内容标识与翻页
|
|
21
|
-
default:
|
|
21
|
+
default:chevron-left: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="m15 4-8 8 8 8"/></svg>
|
|
22
22
|
default:arrow-left: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><!-- Icon from Solar by 480 Design - https://creativecommons.org/licenses/by/4.0/ --><path fill="currentColor" fill-rule="evenodd" d="M22 6.426v11.148c0 1.847-1.6 3.015-2.903 2.118L13 15.232V8.768l6.097-4.46C20.399 3.411 22 4.58 22 6.426" clip-rule="evenodd" opacity=".5"/><path fill="currentColor" d="M13 7.123v9.754c0 1.616-1.467 2.638-2.661 1.853L2.92 13.853c-1.228-.807-1.228-2.899 0-3.706l7.42-4.877c1.193-.785 2.66.237 2.66 1.853"/></svg>
|
|
23
23
|
default:arrow-right: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><!-- Icon from Solar by 480 Design - https://creativecommons.org/licenses/by/4.0/ --><path fill="currentColor" fill-rule="evenodd" d="M2 6.426v11.148c0 1.847 1.6 3.015 2.903 2.118L11 15.232V8.768l-6.097-4.46C3.601 3.411 2 4.58 2 6.426" clip-rule="evenodd" opacity=".5"/><path fill="currentColor" d="M11 7.123v9.754c0 1.616 1.467 2.638 2.661 1.853l7.418-4.877c1.228-.807 1.228-2.899 0-3.706L13.66 5.27C12.467 4.485 11 5.507 11 7.123"/></svg>
|
|
24
24
|
default:documents: <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>
|
|
@@ -59,14 +59,12 @@ github:fork: <svg aria-hidden="true" role="img" class="color-icon-primary" viewB
|
|
|
59
59
|
github:tag: <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.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z"></path></svg>
|
|
60
60
|
|
|
61
61
|
# 分享按钮
|
|
62
|
-
share:
|
|
62
|
+
share:qrcode: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><!-- Icon from Solar by 480 Design - https://creativecommons.org/licenses/by/4.0/ --><path fill="currentColor" d="M10.553 13.447c-.424-.424-.95-.596-1.535-.675c-.553-.074-1.25-.074-2.086-.074H5.827c-.58 0-1.065 0-1.459.037c-.411.04-.795.124-1.146.34c-.345.21-.634.5-.845.844c-.216.352-.3.735-.34 1.147C2 15.459 2 15.944 2 16.525v.068c0 .884 0 1.597.055 2.17c.056.592.175 1.108.459 1.571c.288.47.682.864 1.152 1.152c.463.284.979.403 1.57.46C5.81 22 6.524 22 7.407 22h.07c.58 0 1.064 0 1.458-.037c.412-.04.795-.124 1.147-.34c.344-.21.633-.5.844-.844c.216-.352.3-.736.34-1.147c.037-.394.037-.879.037-1.46v-1.104c0-.836 0-1.533-.074-2.086c-.079-.584-.251-1.111-.675-1.535m-1.62-11.41c.412.04.795.124 1.147.34c.344.21.633.5.844.845c.216.351.3.735.34 1.146c.037.394.037.879.037 1.46v1.104c0 .836 0 1.533-.074 2.086c-.079.584-.251 1.111-.675 1.535s-.95.596-1.535.675c-.553.074-1.25.074-2.086.074H5.827c-.58 0-1.065 0-1.459-.037c-.411-.04-.795-.124-1.146-.34a2.56 2.56 0 0 1-.845-.844c-.216-.352-.3-.735-.34-1.147C2 8.54 2 8.056 2 7.475v-.068c0-.884 0-1.597.055-2.17c.056-.592.175-1.108.459-1.571c.288-.47.682-.864 1.152-1.152c.463-.284.979-.403 1.57-.46C5.81 2 6.524 2 7.407 2h.07c.58 0 1.064 0 1.458.037M16.593 2h-.068c-.58 0-1.065 0-1.46.037c-.41.04-.794.124-1.146.34c-.344.21-.633.5-.844.845c-.216.351-.3.735-.34 1.146c-.037.394-.037.879-.037 1.46v1.104c0 .836 0 1.533.074 2.086c.079.584.251 1.111.675 1.535s.95.596 1.535.675c.553.074 1.25.074 2.086.074h1.105c.58 0 1.065 0 1.459-.037c.411-.04.795-.124 1.146-.34c.345-.21.634-.5.845-.844c.216-.352.3-.735.34-1.147C22 8.54 22 8.056 22 7.475v-.068c0-.884 0-1.597-.055-2.17c-.056-.592-.175-1.108-.459-1.571a3.5 3.5 0 0 0-1.152-1.152c-.463-.284-.979-.403-1.57-.46C18.19 2 17.477 2 16.594 2" opacity=".5"/><path fill="currentColor" d="M14.093 21.302a.698.698 0 1 1-1.396 0v-2.79h1.396z" opacity=".4"/><path fill="currentColor" d="M21.302 12.698a.7.7 0 0 0-.697.697v3.256H22v-3.256a.7.7 0 0 0-.698-.697" opacity=".5"/><path fill="currentColor" d="M16.076 16.617c-.076.184-.076.417-.076.883s0 .699.076.883a1 1 0 0 0 .541.54c.184.077.417.077.883.077s.699 0 .883-.076a1 1 0 0 0 .54-.541c.077-.184.077-.417.077-.883s0-.699-.076-.883a1 1 0 0 0-.541-.54C18.199 16 17.966 16 17.5 16s-.699 0-.883.076a1 1 0 0 0-.54.541"/><path fill="currentColor" d="M22 18.535v-.023h-1.396c0 .443 0 .74-.016.97c-.015.224-.043.333-.073.405a1.16 1.16 0 0 1-.629.63c-.072.029-.18.056-.405.072c-.23.015-.527.016-.97.016h-1.86V22h1.883c.414 0 .759 0 1.042-.02a2.6 2.6 0 0 0 .844-.175a2.56 2.56 0 0 0 1.384-1.384c.112-.27.156-.549.176-.844c.02-.283.02-.628.02-1.042" opacity=".7"/><path fill="currentColor" d="M12.697 16.616v.035h1.396c0-.668 0-1.116.035-1.458c.034-.33.093-.482.16-.583a1.2 1.2 0 0 1 .321-.32c.101-.068.254-.128.584-.161c.342-.035.79-.036 1.458-.036h1.86v-1.395h-1.896c-.623 0-1.142 0-1.563.043c-.44.044-.85.142-1.218.388c-.28.187-.519.426-.706.706c-.246.368-.343.777-.388 1.217c-.043.421-.043.94-.043 1.564" opacity=".6"/><path fill="currentColor" d="M5.508 18.69c.219.155.528.155 1.146.155c.619 0 .928 0 1.146-.155a.8.8 0 0 0 .2-.199c.154-.218.154-.527.154-1.146s0-.927-.155-1.146A.8.8 0 0 0 7.8 16c-.218-.155-.527-.155-1.146-.155s-.927 0-1.146.155a.8.8 0 0 0-.199.2c-.155.218-.155.527-.155 1.145c0 .619 0 .928.155 1.146a.8.8 0 0 0 .2.2M6.654 8.155c-.618 0-.927 0-1.146-.155a.8.8 0 0 1-.199-.2c-.155-.217-.155-.527-.155-1.145c0-.619 0-.928.155-1.146a.8.8 0 0 1 .2-.2c.218-.154.527-.154 1.145-.154c.619 0 .928 0 1.146.155a.8.8 0 0 1 .2.199c.154.218.154.527.154 1.146s0 .928-.155 1.146A.8.8 0 0 1 7.8 8c-.218.155-.527.155-1.146.155M16.2 8c.218.155.527.155 1.146.155s.927 0 1.146-.155a.8.8 0 0 0 .199-.199c.155-.218.155-.528.155-1.146c0-.619 0-.928-.155-1.146a.8.8 0 0 0-.2-.2c-.218-.154-.527-.154-1.145-.154c-.619 0-.928 0-1.146.155a.8.8 0 0 0-.2.199c-.154.218-.154.527-.154 1.146s0 .928.155 1.146A.8.8 0 0 0 16.2 8"/></svg>
|
|
63
63
|
share:weibo: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><!-- Icon from Simple Icons - https://creativecommons.org/publicdomain/zero/1.0/ --><path fill="currentColor" d="M10.098 20.323c-3.977.391-7.414-1.406-7.672-4.02-.259-2.609 2.759-5.047 6.74-5.441 3.979-.394 7.413 1.404 7.671 4.018.259 2.6-2.759 5.049-6.737 5.439l-.002.004zM9.05 17.219c-.384.616-1.208.884-1.829.602-.612-.279-.793-.991-.406-1.593.379-.595 1.176-.861 1.793-.601.622.263.82.972.442 1.592zm1.27-1.627c-.141.237-.449.353-.689.253-.236-.09-.313-.361-.177-.586.138-.227.436-.346.672-.24.239.09.315.36.18.601l.014-.028zm.176-2.719c-1.893-.493-4.033.45-4.857 2.118-.836 1.704-.026 3.591 1.886 4.21 1.983.64 4.318-.341 5.132-2.179.8-1.793-.201-3.642-2.161-4.149zm7.563-1.224c-.346-.105-.57-.18-.405-.615.375-.977.42-1.804 0-2.404-.781-1.112-2.915-1.053-5.364-.03 0 0-.766.331-.571-.271.376-1.217.315-2.224-.27-2.809-1.338-1.337-4.869.045-7.888 3.08C1.309 10.87 0 13.273 0 15.348c0 3.981 5.099 6.395 10.086 6.395 6.536 0 10.888-3.801 10.888-6.82 0-1.822-1.547-2.854-2.915-3.284v.01zm1.908-5.092c-.766-.856-1.908-1.187-2.96-.962-.436.09-.706.511-.616.932.09.42.511.691.932.602.511-.105 1.067.044 1.442.465.376.421.466.977.316 1.473-.136.406.089.856.51.992.405.119.857-.105.992-.512.33-1.021.12-2.178-.646-3.035l.03.045zm2.418-2.195c-1.576-1.757-3.905-2.419-6.054-1.968-.496.104-.812.587-.706 1.081.104.496.586.813 1.082.707 1.532-.331 3.185.15 4.296 1.383 1.112 1.246 1.429 2.943.947 4.416-.165.48.106 1.007.586 1.157.479.165.991-.104 1.157-.586.675-2.088.241-4.478-1.338-6.235l.03.045z"/></svg>
|
|
64
64
|
share:x: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><!-- Icon from Simple Icons - https://creativecommons.org/publicdomain/zero/1.0/ --><path fill="currentColor" d="M14.234 10.162L22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299l-.929-1.329L3.076 1.56h3.182l5.965 8.532l.929 1.329l7.754 11.09h-3.182z"/></svg>
|
|
65
65
|
share:telegram: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><!-- Icon from Simple Icons - https://creativecommons.org/publicdomain/zero/1.0/ --><path fill="currentColor" d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12a12 12 0 0 0 12-12A12 12 0 0 0 12 0zm4.962 7.224c.1-.002.321.023.465.14a.5.5 0 0 1 .171.325c.016.093.036.306.02.472c-.18 1.898-.962 6.502-1.36 8.627c-.168.9-.499 1.201-.82 1.23c-.696.065-1.225-.46-1.9-.902c-1.056-.693-1.653-1.124-2.678-1.8c-1.185-.78-.417-1.21.258-1.91c.177-.184 3.247-2.977 3.307-3.23c.007-.032.014-.15-.056-.212s-.174-.041-.249-.024q-.159.037-5.061 3.345q-.72.495-1.302.48c-.428-.008-1.252-.241-1.865-.44c-.752-.245-1.349-.374-1.297-.789q.04-.324.893-.663q5.247-2.286 6.998-3.014c3.332-1.386 4.025-1.627 4.476-1.635"/></svg>
|
|
66
66
|
share:whatsapp: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><!-- Icon from Simple Icons - https://creativecommons.org/publicdomain/zero/1.0/ --><path fill="currentColor" d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967c-.273-.099-.471-.148-.67.15c-.197.297-.767.966-.94 1.164c-.173.199-.347.223-.644.075c-.297-.15-1.255-.463-2.39-1.475c-.883-.788-1.48-1.761-1.653-2.059c-.173-.297-.018-.458.13-.606c.134-.133.298-.347.446-.52s.198-.298.298-.497c.099-.198.05-.371-.025-.52s-.669-1.612-.916-2.207c-.242-.579-.487-.5-.669-.51a13 13 0 0 0-.57-.01c-.198 0-.52.074-.792.372c-.272.297-1.04 1.016-1.04 2.479c0 1.462 1.065 2.875 1.213 3.074s2.096 3.2 5.077 4.487c.709.306 1.262.489 1.694.625c.712.227 1.36.195 1.871.118c.571-.085 1.758-.719 2.006-1.413s.248-1.289.173-1.413c-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 0 1-5.031-1.378l-.361-.214l-3.741.982l.998-3.648l-.235-.374a9.86 9.86 0 0 1-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884c2.64 0 5.122 1.03 6.988 2.898a9.82 9.82 0 0 1 2.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.82 11.82 0 0 0 12.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.9 11.9 0 0 0 5.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.82 11.82 0 0 0-3.48-8.413"/></svg>
|
|
67
67
|
share:email: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><!-- Icon from Solar by 480 Design - https://creativecommons.org/licenses/by/4.0/ --><path fill="currentColor" fill-rule="evenodd" d="M3.172 5.172C2 6.343 2 8.229 2 12s0 5.657 1.172 6.828C4.343 20 6.229 20 10 20h4c3.771 0 5.657 0 6.828-1.172C22 17.657 22 15.771 22 12s0-5.657-1.172-6.828C19.657 4 17.771 4 14 4h-4C6.229 4 4.343 4 3.172 5.172m15.404 2.348a.75.75 0 0 1-.096 1.056l-2.196 1.83c-.887.739-1.605 1.338-2.24 1.746-.66.424-1.303.693-2.044.693s-1.384-.269-2.045-.693c-.634-.408-1.352-1.007-2.239-1.745L5.52 8.576a.75.75 0 1 1 .96-1.152l2.159 1.799c.933.777 1.58 1.315 2.128 1.667.529.34.888.455 1.233.455s.704-.115 1.233-.455c.547-.352 1.195-.89 2.128-1.667l2.159-1.8a.75.75 0 0 1 1.056.097" clip-rule="evenodd"/></svg>
|
|
68
|
-
share:link: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><!-- Icon from Solar by 480 Design - https://creativecommons.org/licenses/by/4.0/ --><path fill="currentColor" d="M19.739 4.261a6.867 6.867 0 0 0-9.711 0l-.72.721a.75.75 0 0 0 1.06 1.06l.72-.72a5.367 5.367 0 1 1 7.59 7.59l-.72.72a.75.75 0 0 0 1.06 1.06l.72-.72a6.867 6.867 0 0 0 0-9.71M6.043 9.307a.75.75 0 0 1 0 1.06l-.721.722a5.367 5.367 0 1 0 7.59 7.59l.72-.722a.75.75 0 0 1 1.06 1.06l-.72.722a6.867 6.867 0 0 1-9.71-9.711l.72-.72a.75.75 0 0 1 1.06 0"/><path fill="currentColor" d="M14.693 9.307a.75.75 0 0 1 0 1.06l-4.325 4.326a.75.75 0 1 1-1.06-1.06l4.324-4.326a.75.75 0 0 1 1.06 0"/></svg>
|
|
69
|
-
share:system: <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><!-- Icon from Solar by 480 Design - https://creativecommons.org/licenses/by/4.0/ --><path fill="currentColor" d="M1 13.529c0-4.667 0-7 1.45-8.45s3.783-1.45 8.45-1.45s7 0 8.45 1.45s1.45 3.783 1.45 8.45s0 7-1.45 8.45s-3.783 1.45-8.45 1.45s-7 0-8.45-1.45S1 18.196 1 13.53" opacity=".5"/><path fill="currentColor" d="m17.67 1.907l2.593 2.248c1.785 1.546 2.678 2.32 2.678 3.325c0 1.004-.893 1.778-2.678 3.325l-2.593 2.247c-.785.68-1.177 1.02-1.498.873c-.322-.146-.322-.666-.322-1.704v-1.677c-2.65 0-5.477.988-7.2 2.7c-.525.52-.788.781-.927.715c-.14-.066-.107-.403-.042-1.076c.648-6.721 5.061-8.468 8.169-8.468V2.74c0-1.04 0-1.558.322-1.705c.321-.147.713.193 1.498.873"/></svg>
|
|
70
68
|
|
|
71
69
|
# 标签插件:通用
|
|
72
70
|
copy:copy: <svg class="icon" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><!-- Icon from Solar by 480 Design - https://creativecommons.org/licenses/by/4.0/ --><g fill="currentColor"><path d="M6.59961 11.3974C6.59961 8.67119 6.59961 7.3081 7.44314 6.46118C8.28667 5.61426 9.64432 5.61426 12.3596 5.61426H15.2396C17.9549 5.61426 19.3125 5.61426 20.1561 6.46118C20.9996 7.3081 20.9996 8.6712 20.9996 11.3974V16.2167C20.9996 18.9429 20.9996 20.306 20.1561 21.1529C19.3125 21.9998 17.9549 21.9998 15.2396 21.9998H12.3596C9.64432 21.9998 8.28667 21.9998 7.44314 21.1529C6.59961 20.306 6.59961 18.9429 6.59961 16.2167V11.3974Z"/><path d="M4.17157 3.17157C3 4.34315 3 6.22876 3 10V12C3 15.7712 3 17.6569 4.17157 18.8284C4.78913 19.446 5.6051 19.738 6.79105 19.8761C6.59961 19.0353 6.59961 17.8796 6.59961 16.2167V11.3974C6.59961 8.6712 6.59961 7.3081 7.44314 6.46118C8.28667 5.61426 9.64432 5.61426 12.3596 5.61426H15.2396C16.8915 5.61426 18.0409 5.61426 18.8777 5.80494C18.7403 4.61146 18.4484 3.79154 17.8284 3.17157C16.6569 2 14.7712 2 11 2C7.22876 2 5.34315 2 4.17157 3.17157Z" opacity=".5"/></g></svg>
|
|
@@ -48,6 +48,7 @@ if (entryStyle.length > 0) primaryAttrs += ` style="${escape_html(entryStyle)}"`
|
|
|
48
48
|
<%- `<${tagName} class="${escape_html(entryClasses)}"${primaryAttrs}${safeAttrs}>` %>
|
|
49
49
|
<%- typeof entry.before === 'string' ? entry.before : '' %>
|
|
50
50
|
<% if (entry.icon) { %><span class="ui-icon"><%- icon(entry.icon, 'no-lazy', true) %></span><% } %>
|
|
51
|
+
<% if (!entry.icon && showTitle) { %><span class="ui-collection__initial" aria-hidden="true"><%= (Array.from(entryTitle.trim())[0] || '').replace(/[a-z]/, function(letter) { return letter.toUpperCase() }) %></span><% } %>
|
|
51
52
|
<% if (hasContent) { %>
|
|
52
53
|
<span class="ui-collection__content">
|
|
53
54
|
<% if (entryPrefix.length > 0) { %><span class="ui-collection__prefix"><%= entryPrefix %></span><% } %>
|
package/layout/_partial/head.ejs
CHANGED
|
@@ -97,7 +97,7 @@ function og_args() {
|
|
|
97
97
|
if (page.layout == 'post' && pageConfig.cover) {
|
|
98
98
|
args.twitter_card = 'summary_large_image';
|
|
99
99
|
}
|
|
100
|
-
args.image = pageConfig.cover ||
|
|
100
|
+
args.image = pageConfig.cover || first_content_image(page.content) || config.avatar || (config.email ? gravatar(config.email) : null);
|
|
101
101
|
return Object.assign(args, pageConfig.seo?.openGraph || {});
|
|
102
102
|
}
|
|
103
103
|
|
|
@@ -256,33 +256,8 @@ function generate_canonical() {
|
|
|
256
256
|
<%- page_meta(json_ld(pageViewModel || undefined)) %>
|
|
257
257
|
<%- custom_inject('headEnd') %>
|
|
258
258
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
'--icon-h3-left': 'default:arrow-left',
|
|
264
|
-
'--icon-h3-right': 'default:arrow-right',
|
|
265
|
-
'--icon-quote-left': 'quot:quote-left',
|
|
266
|
-
'--icon-quote-right': 'quot:quote-right'
|
|
267
|
-
};
|
|
268
|
-
let vars = [];
|
|
269
|
-
for (const [name, key] of Object.entries(map)) {
|
|
270
|
-
var raw = stellar_data('icons') && stellar_data('icons')[key];
|
|
271
|
-
if (raw) vars.push(` ${name}: url("data:image/svg+xml,${encodeURIComponent(raw)}");`);
|
|
272
|
-
}
|
|
273
|
-
// 加载占位:由 icons.yml 的 default:loading 提供(内联 SVG 编码为 data URI,URL 直用)
|
|
274
|
-
var loadingRaw = stellar_data('icons') && stellar_data('icons')['default:loading'];
|
|
275
|
-
if (loadingRaw) {
|
|
276
|
-
if (loadingRaw.trim().startsWith('<svg')) {
|
|
277
|
-
vars.push(` --icon-loading: url("data:image/svg+xml,${encodeURIComponent(loadingRaw)}");`);
|
|
278
|
-
} else {
|
|
279
|
-
vars.push(` --icon-loading: url("${loadingRaw}");`);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
return vars.length > 0 ? `:root {\n${vars.join('\n')}\n}` : '';
|
|
283
|
-
})();
|
|
284
|
-
%>
|
|
285
|
-
<% if (iconCssVars) { %>
|
|
286
|
-
<style><%- iconCssVars %></style>
|
|
287
|
-
<% } %>
|
|
259
|
+
<link rel="stylesheet" href="<%- stellar_client_assets().css.href %>">
|
|
260
|
+
<link rel="preload" as="script" href="<%- stellar_client_assets().js.href %>">
|
|
261
|
+
<% var inlineIconCss = stellar_client_assets().css.inline %>
|
|
262
|
+
<% if (inlineIconCss) { %><style><%- inlineIconCss %></style><% } %>
|
|
288
263
|
</head>
|
|
@@ -22,12 +22,6 @@ function renderAction(service) {
|
|
|
22
22
|
if (action.kind === 'toggle') {
|
|
23
23
|
return `<a class="${classes}" onclick="util.toggle("${escape_html(action.target)}")" aria-label="${escape_html(label)}" title="${escape_html(label)}">${iconHtml}</a>`
|
|
24
24
|
}
|
|
25
|
-
if (action.kind === 'copy') {
|
|
26
|
-
return `<a class="${classes}" data-copy-message="${escape_html(__('message.copied'))}" onclick="util.copy("${escape_html(action.target)}", this.dataset.copyMessage)" aria-label="${escape_html(label)}" title="${escape_html(label)}">${iconHtml}</a>`
|
|
27
|
-
}
|
|
28
|
-
if (action.kind === 'native') {
|
|
29
|
-
return `<button type="button" class="${classes}" data-share-title="${escape_html(action.data.title)}" data-share-text="${escape_html(action.data.text)}" data-share-url="${escape_html(action.data.url)}" data-copy-target="${escape_html(action.target)}" data-copy-message="${escape_html(__('message.copied'))}" onclick="util.share(this)" aria-label="${escape_html(label)}" title="${escape_html(label)}">${iconHtml}</button>`
|
|
30
|
-
}
|
|
31
25
|
return ''
|
|
32
26
|
}
|
|
33
27
|
|
|
@@ -39,13 +33,12 @@ function layoutDiv() {
|
|
|
39
33
|
if (!share || !Array.isArray(share.services) || share.services.length === 0) return ''
|
|
40
34
|
var buttons = share.services.map(renderAction).join('')
|
|
41
35
|
if (buttons.length === 0) return ''
|
|
42
|
-
var qrcode = share.services.includes('
|
|
43
|
-
? `<div class="qrcode" id="qrcode
|
|
36
|
+
var qrcode = share.services.includes('qrcode')
|
|
37
|
+
? `<div class="share-qrcode" id="share-qrcode" style="opacity:0;height:0"><img src="https://api.qrserver.com/v1/create-qr-code/?size=256x256&data=${urlenc(share.permalink)}"/></div>`
|
|
44
38
|
: ''
|
|
45
39
|
return `
|
|
46
40
|
<div class="article-share${scrollreveal(' ')}" id="share">
|
|
47
41
|
<div class="body">
|
|
48
|
-
<div class="link"><input class="copy-area" readonly="true" id="copy-link" value="${escape_html(share.permalink)}" /></div>
|
|
49
42
|
<div class="social-wrap dis-select">${buttons}</div>
|
|
50
43
|
${qrcode}
|
|
51
44
|
</div>
|
|
@@ -21,7 +21,6 @@ function layoutDiv() {
|
|
|
21
21
|
el += ' class="active"';
|
|
22
22
|
}
|
|
23
23
|
el += ' href="' + pretty_url(wikiIndex.path) + '">' + __("btn.all_wiki") + '</a>';
|
|
24
|
-
el += '</a>';
|
|
25
24
|
// 项目分类
|
|
26
25
|
for (var tag of wikiIndex.tags) {
|
|
27
26
|
var projects = tag.itemIds.filter(id => wikiIndex.allItems.some(item => item.id === id))
|
|
@@ -31,7 +30,6 @@ function layoutDiv() {
|
|
|
31
30
|
el += ' class="active"';
|
|
32
31
|
}
|
|
33
32
|
el += ' href="' + escape_html(pretty_url(tag.path)) + '">' + escape_html(tag.name) + '</a>';
|
|
34
|
-
el += '</a>';
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
35
|
|
|
@@ -8,7 +8,7 @@ var wikiViewModel = renderViewModel?.collection?.profile === 'wiki' ? renderView
|
|
|
8
8
|
var notebookViewModel = renderViewModel?.collection?.profile === 'notebook' ? renderViewModel : null
|
|
9
9
|
var pageConfig = content_config(page)
|
|
10
10
|
var banner = Object.assign({}, page.author
|
|
11
|
-
? {
|
|
11
|
+
? { avatar: page.author.avatar, tagline: page.author.description }
|
|
12
12
|
: wikiViewModel
|
|
13
13
|
? wikiViewModel.render.article.banner
|
|
14
14
|
: notebookViewModel
|
|
@@ -17,6 +17,8 @@ var banner = Object.assign({}, page.author
|
|
|
17
17
|
? postViewModel.render.article.banner
|
|
18
18
|
: postViewModel ? postViewModel.item.presentation.banner : pageConfig.banner || {})
|
|
19
19
|
|
|
20
|
+
var bannerImage = page.author ? page.author.cover : renderViewModel ? renderViewModel.item.cover : pageConfig.cover
|
|
21
|
+
|
|
20
22
|
// 标题
|
|
21
23
|
if (banner.headline == null) {
|
|
22
24
|
banner.headline = renderViewModel ? renderViewModel.item.title : page.title
|
|
@@ -57,7 +59,7 @@ function layoutTop() {
|
|
|
57
59
|
}
|
|
58
60
|
// AI 成分标签:置于第一行最右(阅读时长右侧);
|
|
59
61
|
// banner 含图片时不用配置色,继承默认文字色(--text-banner)
|
|
60
|
-
|
|
62
|
+
var bannerHasImage = bannerImage && bannerImage.length > 0
|
|
61
63
|
rightHtml += ai_label(renderViewModel ? renderViewModel.item.presentation.article?.aiLabel : pageConfig.article?.aiLabel, 'cap', bannerHasImage)
|
|
62
64
|
if (rightHtml.length > 0) {
|
|
63
65
|
el += `<div class="right">${rightHtml}</div>`
|
|
@@ -98,9 +100,9 @@ function layoutIcon() {
|
|
|
98
100
|
}
|
|
99
101
|
|
|
100
102
|
function layoutBottom() {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
var el_icon = layoutIcon()
|
|
104
|
+
var el_title = layoutTitle()
|
|
105
|
+
var el_subtitle = layoutSubtitle()
|
|
104
106
|
var cls = ''
|
|
105
107
|
if (el_title.length > 0 && el_subtitle.length == 0) {
|
|
106
108
|
cls += ' only-title'
|
|
@@ -124,8 +126,8 @@ function layoutDiv() {
|
|
|
124
126
|
if (banner.enabled === false) {
|
|
125
127
|
return ``
|
|
126
128
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
+
var bottom = layoutBottom()
|
|
130
|
+
var top = layoutTop()
|
|
129
131
|
if (top.length == 0 && bottom.length == 0) {
|
|
130
132
|
return ``
|
|
131
133
|
}
|
|
@@ -133,15 +135,15 @@ function layoutDiv() {
|
|
|
133
135
|
var adaptiveAttr = ``
|
|
134
136
|
var maskHtml = ``
|
|
135
137
|
var el = ``
|
|
136
|
-
if (
|
|
137
|
-
bannerStyle += ` style="--bg-url:url('${
|
|
138
|
+
if (bannerImage?.length > 0) {
|
|
139
|
+
bannerStyle += ` style="--bg-url:url('${bannerImage.replace(/'/g, '%27')}')"`
|
|
138
140
|
// 背景图上方文字颜色自适应
|
|
139
141
|
adaptiveAttr = ` data-text-adaptive="split"`
|
|
140
142
|
}
|
|
141
143
|
el += `<div class="article-banner-wrap${scrollreveal(' ')}">`
|
|
142
144
|
el += `<div class="article banner top"${bannerStyle}>`
|
|
143
|
-
if (
|
|
144
|
-
el += `<img class="lazy bg" data-src="${
|
|
145
|
+
if (bannerImage?.length > 0) {
|
|
146
|
+
el += `<img class="lazy bg" data-src="${bannerImage}">`
|
|
145
147
|
maskHtml = `<div class="banner-mask banner-mask-top" aria-hidden="true"></div><div class="banner-mask banner-mask-bottom" aria-hidden="true"></div>`
|
|
146
148
|
}
|
|
147
149
|
el += `
|