- PanguHTML:CJK 与拉丁/数字间补空格,标签原样保留、code/pre 内文本不动;详情/时间线短文/RSS 描述三个出口生效(带单测) - 表格改圆角容器 + tbody 斑马纹 + 纵向大留白(classic/vivid 双主题) - pre max-height 30.5em 封顶内部滚动;enhanceProse 注入悬停复制按钮(App 全局委托),按下有 2px 物理感 - 带 id 的 h2-h4 悬停浮现 # 锚点,点击跳转 - 中文字体栈此前已配(PingFang SC 等),无需改动
41 lines
1.5 KiB
Go
41 lines
1.5 KiB
Go
package render
|
|
|
|
import "testing"
|
|
|
|
func TestPanguText(t *testing.T) {
|
|
cases := map[string]string{
|
|
"把MVP搬进仓库": "把 MVP 搬进仓库",
|
|
"今天写了3个小时代码": "今天写了 3 个小时代码",
|
|
"使用Go和Vue3开发": "使用 Go 和 Vue3 开发",
|
|
"纯中文没有混排": "纯中文没有混排",
|
|
"已经隔了空格的 Go 语言": "已经隔了空格的 Go 语言",
|
|
"数字100在前": "数字 100 在前",
|
|
"英文后接标点。followed": "英文后接标点。 followed",
|
|
}
|
|
for in, want := range cases {
|
|
if got := panguText(in); got != want {
|
|
t.Errorf("panguText(%q) = %q, want %q", in, got, want)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestPanguHTML(t *testing.T) {
|
|
cases := map[string]string{
|
|
// 普通文本:处理
|
|
"<p>把MVP搬进仓库</p>": "<p>把 MVP 搬进仓库</p>",
|
|
// 行内 code:不动
|
|
"<p>运行<code>go build ./...</code>即可</p>": "<p>运行<code>go build ./...</code>即可</p>",
|
|
// pre 代码块:整个内部不动
|
|
"<pre><code>把MVP搬进仓库\nfmt.Println(1)</code></pre>": "<pre><code>把MVP搬进仓库\nfmt.Println(1)</code></pre>",
|
|
// 属性里不是文本:不动(src 含字母数字混合不受影响)
|
|
`<img alt="测试图1" src="a1.png">`: `<img alt="测试图1" src="a1.png">`,
|
|
// 嵌套:code 结束后恢复处理
|
|
"<p>先<code>跑起来</code>再看结果100%</p>": "<p>先<code>跑起来</code>再看结果 100%</p>",
|
|
}
|
|
for in, want := range cases {
|
|
if got := PanguHTML(in); got != want {
|
|
t.Errorf("PanguHTML(%q) = %q, want %q", in, got, want)
|
|
}
|
|
}
|
|
}
|