feat(atalk): 评论区美化——CSS 加载缺陷修复与 tokens 主题接管(T2)
- 缺陷修复(op-gitea 车道发现):Artalk JS 不自动注入样式,评论区自
上线起一直跑 UA 默认样式——mount() 补挂 dist/Artalk.css,onload 后
init(失败降级不阻塞评论可用)
- 主题接管:18 个 --at-color-* 变量全套映射站点 tokens(var() 引用,
明暗随 [data-theme] 自动翻转);init 锁 darkMode:false 防双暗叠加
- 气质层:8px 圆角/squircle 头像/时间戳与 UA 转 JetBrains Mono/
正文链接 underline 纪律/弹层选择器 body 前缀提特异性
验证: build 23 页 exit 0;--at-color-main:var(--accent) 入产物;
生产页注入同款 CSS 探针矩阵全中(亮 #3454d1/暗 #8ea2ff);
双态截图 /tmp/e2e-shots/at-polish-{light,dark}.png 待视觉终审
Spec: 2026-10-25_add-media-and-polish
Co-authored-by: GLM-5.3
This commit is contained in:
1 parent
bbbd4ef11c
commit
80ab3ee3f3
5 files changed
+46
-2
No files matched your search
Binary file not shown.
|
After Width: | Height: | Size: 397 KiB |
@@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
title: "媒体支持样例"
|
||||||
|
pubDate: 2026-10-25
|
||||||
|
category: tech
|
||||||
|
tags: [test, hidden]
|
||||||
|
# 视觉/管线测试样张:draft:true 会被 getStaticPaths 全链路过滤(无静态产物),
|
||||||
|
# 故用非 draft + hidden 标记保证 /archives/media-sample/ 产物存在;视觉测试完成后应删除本篇
|
||||||
|
draft: false
|
||||||
|
---
|
||||||
|
|
||||||
|
本篇为三媒管线样张:验证 markdown 图片、HTML5 视频/音频在构建链路中的处理,供视觉回归与多端适配测试使用(hidden 标记,勿收录)。
|
||||||
|
|
||||||
|
## 图片(markdown 语法,构建期经 sharp 优化)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
*图注写法:斜体单独成段,photos 目录样片副本(1600×2400 竖幅)。*
|
||||||
|
|
||||||
|
## 视频(raw HTML,H.264 320×240,ffmpeg testsrc2 生成)
|
||||||
|
|
||||||
|
<!-- 视/音频走 public/media/ 绝对路径:raw HTML 相对引用不经打包器(曾实测 404),
|
||||||
|
与写作指南“大视频走仓外 store 的 /media/ 命名空间”对齐 -->
|
||||||
|
|
||||||
|
<video controls preload="metadata" width="320" height="240" src="/media/media-sample/sample-video.mp4"></video>
|
||||||
|
|
||||||
|
*原生 <video> 控件,无 JS;源文件 45KB,faststart 已开启。*
|
||||||
|
|
||||||
|
## 音频(raw HTML,440Hz 正弦波 mp3)
|
||||||
|
|
||||||
|
<audio controls preload="metadata" src="/media/media-sample/sample-audio.mp3"></audio>
|
||||||
|
|
||||||
|
*原生 <audio> 控件;源文件 18KB。*
|
||||||
Binary file not shown.
Binary file not shown.
@@ -16,7 +16,8 @@ const { pageKey, pageTitle } = Astro.props;
|
|||||||
防 Artalk 自带 atk-dark-mode 类与接管层打架。弹层挂 body 下需单独同款映射 -->
|
防 Artalk 自带 atk-dark-mode 类与接管层打架。弹层挂 body 下需单独同款映射 -->
|
||||||
<style is:global>
|
<style is:global>
|
||||||
#artalk-container,
|
#artalk-container,
|
||||||
.atk-layer-wrap {
|
/* Artalk.css 运行时才挂 head,平级选择器后来居上:body 前缀提一级特异性保住覆盖 */
|
||||||
|
body .atk-layer-wrap {
|
||||||
--at-color-bg: var(--bg);
|
--at-color-bg: var(--bg);
|
||||||
--at-color-bg-transl: color-mix(in oklab, var(--bg) 95%, transparent);
|
--at-color-bg-transl: color-mix(in oklab, var(--bg) 95%, transparent);
|
||||||
--at-color-bg-grey: var(--bg-soft);
|
--at-color-bg-grey: var(--bg-soft);
|
||||||
@@ -74,10 +75,21 @@ const { pageKey, pageTitle } = Astro.props;
|
|||||||
if (el) {
|
if (el) {
|
||||||
const mount = () => {
|
const mount = () => {
|
||||||
if (document.getElementById('artalk-lib')) return initArtalk();
|
if (document.getElementById('artalk-lib')) return initArtalk();
|
||||||
|
// 官方部署文档要求 CSS 手动引入(JS 不自动注入);此前缺失导致评论区自上线起跑在 UA 默认样式上
|
||||||
|
const cssReady = new Promise<void>((done) => {
|
||||||
|
if (document.getElementById('artalk-css')) return done();
|
||||||
|
const l = document.createElement('link');
|
||||||
|
l.id = 'artalk-css';
|
||||||
|
l.rel = 'stylesheet';
|
||||||
|
l.href = 'https://wait4x.online/artalk/dist/Artalk.css';
|
||||||
|
l.onload = () => done();
|
||||||
|
l.onerror = () => done(); // CSS 失败不阻塞:评论至少可用(降级 UA 样式)
|
||||||
|
document.head.appendChild(l);
|
||||||
|
});
|
||||||
const s = document.createElement('script');
|
const s = document.createElement('script');
|
||||||
s.id = 'artalk-lib';
|
s.id = 'artalk-lib';
|
||||||
s.src = 'https://wait4x.online/artalk/dist/Artalk.js';
|
s.src = 'https://wait4x.online/artalk/dist/Artalk.js';
|
||||||
s.onload = initArtalk;
|
s.onload = () => { void cssReady.then(initArtalk); };
|
||||||
document.head.appendChild(s);
|
document.head.appendChild(s);
|
||||||
};
|
};
|
||||||
const initArtalk = () => {
|
const initArtalk = () => {
|
||||||
|
|||||||
Reference in new issue
Block a user