✨ feat(vscode): 代码阅读修改的卡片里标出改了哪儿(改值旧值划掉接新值、加行 + 淡绿底、删行 − 淡红底划掉、说明按词 / 字标增删)

This commit is contained in:
cruldra committed 2026-09-30 08:46:24 +08:00
1 parent 3b7ce69842
commit 707d85c324
6 files changed
+283 -51

No files matched your search

@@ -1,5 +1,5 @@
import { describe, expect, it } from 'vitest'
import { renderMarkdown } from './markdown'
import { renderMarkdown, renderMarkdownDiff } from './markdown'
describe('renderMarkdown', () => {
it('一行文字是一个段落;段内换行是软换行,空行分段', () => {
@@ -45,3 +45,19 @@ describe('renderMarkdown', () => {
expect(renderMarkdown('[文档](https://example.com "")')).toBe('<p><a href="https://example.com">文档</a></p>\n')
})
})
describe('renderMarkdownDiff', () => {
it('照常排版,新加的字包进 <ins>、删掉的包进 <del>', () => {
expect(renderMarkdownDiff([{ text: '放锁' }, { text: '前', change: 'del' }, { text: '都', change: 'add' }, { text: '必须比对 `token`' }]))
.toBe('<p>放锁<del class="cr-diff-word">前</del><ins class="cr-diff-word">都</ins>必须比对 <code>token</code></p>\n')
})
it('跨行的一截逐行包,新加的列表项留住列表记号', () => {
expect(renderMarkdownDiff([{ text: '- a\n' }, { text: '- b\n- c', change: 'add' }]))
.toBe('<ul>\n<li>a</li>\n<li><ins class="cr-diff-word">b</ins></li>\n<li><ins class="cr-diff-word">c</ins></li>\n</ul>\n')
})
it('行中间的一截不把前面的字当块记号', () => {
expect(renderMarkdownDiff([{ text: '共 ' }, { text: '# 3', change: 'add' }])).toBe('<p>共 <ins class="cr-diff-word"># 3</ins></p>\n')
})
})