Cosolar 发布于
>=2.26.0
halo-theme-cosolar v1.1.9
| 类型 | 内容 |
|---|---|
| ✨ 新功能 | head 输出 Open Graph / Twitter Card 元标签,修复微信 / Telegram / QQ 分享链接无预览标题封面 |
| ✨ 新功能 | 阅读页左上角知识库 logo 优先使用知识库 spec.logo,未配置则显示内置书本图标 |
| 🐛 修复 | 页脚 legal_links 未配置时抛出 EL1001E(null 无法转布尔)导致整个页面渲染中断 |
| 🔧 调整 | 防御性加固 JS:规避正文标题、灯箱键盘/触摸、排序重应用等处的空指针运行时异常 |
1、Open Graph / Twitter Card 分享元标签(src/fragments/head.html)
分享文章链接到 Telegram、微信、QQ 等即时通讯时,预览卡片此前拿不到文章标题与封面(仅有 <title>,外部解析不稳定)。现于 head 公共片段输出完整分享元标签:
- 输出
og:site_name/og:type/og:title/og:description/og:url/og:image与twitter:card(summary_large_image)。 - 通过
?./?:链式回退:文章页取文章标题、摘要、封面,独立页面取其对应字段,其它页面回退到站点标题、副标题、logo,全站通用。 og:url由site.url + permalink拼成绝对地址。
2、阅读页知识库 logo 来源调整(src/doc.html)
阅读页左上角知识库 logo 的来源优先级调整:
- 优先读取知识库自身的
spec.logo字段;配置了即显示该图片(32×32、object-fit:contain自适应)。 - 未配置
spec.logo时显示内置书本 SVG 图标,不再回退到网站 logo(basic.logo_image)。
3、页脚配置缺失导致的渲染中断修复(src/fragments/footer.html)
后台「页脚设置」的 legal_links 分组未配置时,legalLinks?.privacy_enabled ? … : … 这类「可选链结果直接作三元条件」的写法会因 null 无法转 Boolean 抛出 EL1001E,使整个页面渲染中断(响应头已发出后连接被提前关闭)。
修复:四个条件的布尔位统一改用 ?: false 兜底后再取 URL,未配置时安全输出空值,页面完整渲染。后续新增 Thymeleaf 表达式请遵循「先判空 / 先 ?: 兜底」的写法。
4、前端脚本防御性加固(src/js/post.ts · photos.ts · index.ts)
为运行时的边界情况补充兜底,交互表现不变:
post.ts:正文标题为空元素时,锚点 id 生成由取别名!改为?? "",避免null.replace运行时报错。photos.ts:灯箱键盘 / 触摸回调在元素被移除时安全退出;确认弹窗cleanup先判空再取引用。index.ts:排序重应用对内容区 / 列表容器改用可选链与空值兜底。
资源下载
- halo-theme-cosolar-1.1.9.zip
