refactor: 用 marked.js 替换手写 Markdown 渲染器
Deploy PR-Helper / deploy (push) Successful in 30s

- 引入 marked.js(~40KB)作为专业 Markdown 解析引擎
- markdown.js 精简为 20 行薄封装,保留 renderMarkdown 兼容别名
- CSS 从 .md-* 选择器改为标准 HTML 标签选择器
- 支持 GFM(表格、任务列表、删除线)、代码块语法高亮
- 天然处理流式不完整 Markdown(未闭合代码块等)
This commit is contained in:
2026-06-21 16:23:14 +08:00
parent 496e3ba71e
commit 6dfd01445d
6 changed files with 38 additions and 190 deletions
+18 -21
View File
@@ -49,7 +49,7 @@
}
/* Markdown rendered content (inside review suggestions) */
.review-content .md-code-block {
.review-content pre {
background: #1e293b;
color: #e2e8f0;
padding: 12px 14px;
@@ -60,16 +60,13 @@
line-height: 1.5;
font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
}
.review-content .md-code-block[data-lang]::before {
content: attr(data-lang);
display: block;
font-size: 10px;
color: #94a3b8;
margin-bottom: 4px;
text-transform: uppercase;
letter-spacing: 0.05em;
.review-content pre code {
background: none;
color: inherit;
padding: 0;
font-size: inherit;
}
.review-content .md-inline-code {
.review-content code {
background: #f1f5f9;
padding: 1px 5px;
border-radius: 4px;
@@ -77,40 +74,40 @@
font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
color: #be185d;
}
.review-content .md-p {
.review-content p {
margin: 6px 0;
line-height: 1.6;
}
.review-content .md-h1, .review-content .md-h2, .review-content .md-h3 {
.review-content h1, .review-content h2, .review-content h3 {
font-weight: 600;
margin: 10px 0 4px;
}
.review-content .md-h1 { font-size: 1.2em; }
.review-content .md-h2 { font-size: 1.1em; }
.review-content .md-h3 { font-size: 1em; }
.review-content .md-ul, .review-content .md-ol {
.review-content h1 { font-size: 1.2em; }
.review-content h2 { font-size: 1.1em; }
.review-content h3 { font-size: 1em; }
.review-content ul, .review-content ol {
margin: 6px 0;
padding-left: 20px;
}
.review-content .md-li {
.review-content li {
margin: 2px 0;
line-height: 1.5;
}
.review-content .md-link {
.review-content a {
color: #2563eb;
text-decoration: underline;
}
.review-content .md-link:hover {
.review-content a:hover {
color: #1d4ed8;
}
.review-content .md-blockquote {
.review-content blockquote {
border-left: 3px solid #d1d5db;
padding-left: 12px;
color: #6b7280;
margin: 8px 0;
font-style: italic;
}
.review-content .md-hr {
.review-content hr {
border: none;
border-top: 1px solid #e5e7eb;
margin: 12px 0;