Markdown Renderer Comprehensive Test
用于全面测试 Markdown 渲染系统。 包含基础 Markdown、GFM、代码块、表格、任务列表、数学公式、HTML、脚注等常见功能。
1. 标题测试
H1 一级标题
H2 二级标题
H3 三级标题
H4 四级标题
H5 五级标题
H6 六级标题
2. 普通文本
这是一段普通文本。
这是第二段普通文本,用于测试段落之间的间距。
这一行后面有两个空格 这里应该发生软换行。
这是一段非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常长的文字,用于测试 Markdown 渲染器在长文本情况下的自动换行、最大宽度以及响应式布局。
3. 文本样式
普通文本
斜体 Italic
斜体 Italic
粗体 Bold
粗体 Bold
粗斜体 Bold Italic
粗斜体 Bold Italic
删除线 Strikethrough
粗体里面有 斜体
粗体和斜体混合
粗体删除线
行内代码
普通文字中的 const foo = "bar"; 行内代码。
4. 特殊字符
Markdown 特殊字符:
* 星号
_ 下划线
# 井号
> 大于号
– 减号
+ 加号
` 反引号
反斜杠
特殊符号:
© ® ™ € ¥ £ § ¶ † ‡
中文标点:
,。!?;:“”‘’()【】《》
Emoji:
😀 😭 🤔 🚀 🔥 ❤️ 💀 🤯 🦊 🐱
5. 分隔线
短横线写法:
星号写法:
下划线写法:
6. 无序列表
- 项目 A
- 项目 B
-
项目 C
-
星号列表
- 星号列表
-
星号列表
-
加号列表
- 加号列表
- 加号列表
7. 嵌套无序列表
- 第一层
- 第二层
- 第三层
- 第四层
- 第二层 B
- 第一层 B
8. 有序列表
- 第一项
- 第二项
- 第三项
从其他数字开始:
- 第五项
- 第六项
- 第七项
Markdown 自动编号:
- Apple
- Banana
- Orange
- Watermelon
9. 混合列表
- 第一项
- 子项目 A
- 子项目 B
- 子项目 B.1
- 子项目 B.2
- 第二项
- 子项目 C
10. Task List
- 已完成任务
- 未完成任务
- Markdown
- GFM
- 世界和平
嵌套任务:
- 开发 Markdown Renderer
- Heading
- List
- Code
- Math
- Mermaid
11. 引用
这是一级引用。
第二段引用。
多级引用:
一级引用
二级引用
三级引用
引用中包含其他 Markdown:
引用中的标题
粗体
- List A
- List B
print("Hello from quote")
12. 行内代码
这是一个变量:userName
这是一个命令:npm install
包含 Markdown 字符:
**这里不应该变粗**
# 这里也不是标题
13. 普通代码块
Hello World
This is a plain code block.
# NOT A MARKDOWN HEADING
**NOT BOLD**
14. Python
from dataclasses import dataclass
@dataclass
class User:
name: str
age: int
def hello(user: User) -> str:
return f"Hello, {user.name}! You are {user.age} years old."
if __name__ == "__main__":
user = User("Zhang99", 16)
print(hello(user))
15. JavaScript
const users = [
{
name: "Alice",
age: 18,
},
{
name: "Bob",
age: 20,
},
];
users.forEach((user) => {
console.log(`Hello ${user.name}`);
});
16. TypeScript
interface User {
id: number;
name: string;
admin?: boolean;
}
const user: User = {
id: 99,
name: "Zhang99",
};
function hello(user: User): string {
return `Hello, ${user.name}`;
}
17. C
#include <stdio.h>
int main(void) {
int value = 99;
printf("Hello Markdown!\n");
printf("value = %d\n", value);
return 0;
}
18. C++
#include <iostream>
#include <vector>
#include <string>
int main() {
std::vector<std::string> users = {
"Alice",
"Bob",
"Zhang99"
};
for (const auto& user : users) {
std::cout << "Hello " << user << '\n';
}
return 0;
}
19. Java
public class Main {
public static void main(String[] args) {
String name = "Markdown";
System.out.println("Hello " + name);
}
}
20. C
using System;
public class Program
{
public static void Main()
{
string name = "Markdown";
Console.WriteLine($"Hello {name}");
}
}
21. Rust
fn main() {
let name = "Markdown";
println!("Hello, {name}!");
}
22. Go
package main
import "fmt"
func main() {
name := "Markdown"
fmt.Printf("Hello %s\n", name)
}
23. Bash
#!/usr/bin/env bash
NAME="Markdown"
echo "Hello NAME"
for file in *.md; do
echo "Found:file"
done
24. PowerShell
$name = "Markdown"
Write-Host "Hello $name"
Get-ChildItem -Filter "*.md" | ForEach-Object {
Write-Host $_.Name
}
25. JSON
{
"name": "Markdown Renderer",
"version": "1.0.0",
"features": [
"heading",
"list",
"table",
"code"
],
"enabled": true,
"metadata": {
"author": "Zhang99",
"id": 99
}
}
26. YAML
name: Markdown Renderer
version: 1.0.0
features:
- heading
- list
- table
- code
enabled: true
metadata:
author: Zhang99
id: 99
27. TOML
name = "Markdown Renderer"
version = "1.0.0"
enabled = true
[metadata]
author = "Zhang99"
id = 99
28. HTML 代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Markdown Test</title>
</head>
<body>
<h1>Hello Markdown</h1>
</body>
</html>
29. CSS
.markdown-body {
max-width: 900px;
margin: 0 auto;
line-height: 1.6;
}
.markdown-body code {
font-family: "JetBrains Mono", monospace;
}
30. SQL
SELECT
id,
username,
created_at
FROM users
WHERE active = TRUE
ORDER BY created_at DESC
LIMIT 100;
31. Diff
- const oldName = "Markdown";+ const newName = "Markdown Renderer";- console.log(oldName);+ console.log(newName);32. 链接
普通链接:
带标题:
直接 URL:
自动链接:
邮箱:
33. 图片
远程图片:
带标题:
34. 表格
| Name | Language | Stars |
|---|---|---|
| Linux | C | 999 |
| React | JavaScript | 888 |
| Vue | TypeScript | 777 |
| Django | Python | 666 |
35. 表格对齐
| 左对齐 | 居中 | 右对齐 |
|---|---|---|
| A | B | 100 |
| Hello | World | 999 |
| Markdown | Renderer | 123456 |
36. 表格中的 Markdown
| Feature | Example |
|---|---|
| Bold | Bold |
| Italic | Italic |
| Code | console.log() |
| Delete | Deleted |
| Link | GitHub |
37. 长表格内容
| ID | Description |
|---|---|
| 1 | 短文本 |
| 2 | 这是一段比较长的文本,用于测试表格单元格在内容非常长时究竟会自动换行、撑开整个表格还是出现横向滚动条。 |
| 3 | this_is_a_very_long_variable_name_that_might_break_layout_and_should_be_tested |
38. HTML 内嵌
点击展开 Details
这里是隐藏内容。
- Markdown List
- Markdown Bold
Markdown Code
39. 键盘按键
HTML 扩展:
按下 Ctrl + C
按下 Ctrl + Shift + P
40. 上标和下标
如果支持 HTML:
H2O
E = mc2
Markdown 扩展可能支持:
H2O
X^2^
41. 脚注
这里有一个脚注。
这里还有一个更长的脚注。
42. Definition List
部分 Markdown 实现支持:
Markdown : 一种轻量级标记语言。
HTML : HyperText Markup Language。
CSS : Cascading Style Sheets。
43. 数学公式
行内公式:
E = mc^2
a^2 + b^2 = c^2
\frac{1}{2}
块级公式:
分数:
根号:
求和:
积分:
极限:
矩阵:
44. Mermaid
如果 Markdown Renderer 支持 Mermaid:
flowchart TD
A[用户输入 Markdown] --> B[Markdown Parser]
B --> C[AST]
C --> D[HTML Renderer]
D --> E[最终页面]
B --> F{支持扩展?}
F -->|Yes| G[GFM / Math / Mermaid]
F -->|No| D
45. Mermaid Sequence Diagram
sequenceDiagram
participant U as User
participant M as Markdown Renderer
participant H as HTML
U->>M: Markdown Text
M->>M: Parse
M->>H: Generate HTML
H-->>U: Render Page
46. Mermaid Class Diagram
classDiagram
class MarkdownRenderer {
+parse(markdown)
+render(ast)
}
class Parser {
+tokenize(text)
}
class Renderer {
+renderHTML(ast)
}
MarkdownRenderer --> Parser
MarkdownRenderer --> Renderer
47. Mermaid Pie
pie title Markdown Renderer Features
"Basic Markdown" : 40
"GFM" : 25
"Code Highlight" : 15
"Math" : 10
"Mermaid" : 10
48. Emoji Shortcode
部分 Renderer 支持:
🙂
:heart:
:rocket:
:fire:
:fox_face:
49. 自动链接测试
https://example.com/path/to/page
https://example.com/test?q=markdown&lang=zh
50. Anchor / Heading ID
测试是否自动为标题生成 ID。
例如:
My Test Heading
可能生成:
#my-test-heading
中文:
Markdown 渲染测试
测试中文标题 Anchor。
51. 转义测试
# 不是标题
*不是斜体*
**不是粗体**
- 不是列表
> 不是引用
``` 不是代码 ```
[不是链接](https://example.com)
52. 连续空格测试
普通 多空格。
HTML 空格:
A B
53. 换行测试
第一行 第二行
第一行后面两个空格 第二行
第一行后 HTML Break
第二行
54. 空行测试
上面的文本。
这里中间存在多个空行。
55. 嵌套复杂结构
Markdown Renderer
一个引用区域。
Parser
CommonMark
- GFM
Extension
Renderer
const markdown = "# Hello"; const html = render(markdown);
- Output
Input Output Markdown HTML
56. Unicode
中文:
你好,世界!
日文:
こんにちは世界!
韩文:
안녕하세요 세계!
俄文:
Привет, мир!
阿拉伯文:
مرحبا بالعالم
希腊文:
Γειά σου Κόσμε
Emoji:
🚀🌍🦊🐱❤️🔥💻⚡
57. RTL 文本
58. 超长单词
测试布局是否爆炸:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
超长变量:
this_is_an_extremely_long_variable_name_designed_to_test_horizontal_overflow_behavior_inside_inline_code_elements
59. URL Overflow
https://example.com/this/is/a/very/very/very/very/very/very/very/very/very/very/very/very/long/url/designed/to/test/layout/overflow
60. Code Overflow
THIS_IS_A_VERY_LONG_LINE_WITHOUT_ANY_SPACES_OR_BREAKPOINTS______________________________________________________________________________________________________________END
61. 引号
普通引号:
“Hello World”
‘Hello World’
中文:
“你好世界”
‘你好世界’
62. Markdown Parser 边界情况
code **bold?**
bold **code** bold
delete code delete
*bold italic delete*
63. 不完整 Markdown
下面用于测试 Parser 容错:
**没有结束的粗体
*没有结束的斜体
`没有结束的代码
[没有结束的链接
正常引用
64. 空代码块
65. 代码块中的特殊字符
# Heading
**bold**
*italic*
~~delete~~
[link](https://example.com)
<script>alert("Hello")</script>
{{ template }}
${variable}
<component />
66. HTML 安全测试
渲染系统应该根据安全策略决定是否过滤 HTML。
<script>
console.log("script test");
</script>
下面是真实 HTML:
<script> console.log(“Markdown HTML script test”); </script>iframe:
<iframe src=”about:blank” title=”iframe test”></iframe>67. XSS 转义测试
以下内容用于测试 Sanitizer:
<img src="x" onerror="alert('XSS')">
<a href="javascript:alert('XSS')">
Click
</a>
<div onclick="alert('XSS')">
Click
</div>
渲染器不应该因为展示该测试文档而意外执行不可信脚本。
68. 注释
HTML Comment:
上面存在一条 HTML 注释。
69. Front Matter
部分 Markdown 系统识别文件顶部的 YAML Front Matter:
---
title: Markdown Renderer Test
author: Zhang99
date: 2026-09-26
tags:
- markdown
- test
- renderer
---
70. Admonition
部分 Renderer,例如 MkDocs,支持:
Note
这是 Note。
Warning
这是 Warning。
Danger
这是 Danger。
GitHub 风格可能支持:
Note
这是一条 Note。
Tip
这是一条 Tip。
Important
这是一条 Important。
Warning
这是一条 Warning。
Caution
这是一条 Caution。
71. Checkbox + Table + Code 综合测试
- Parser
const parser = new Parser();
- Renderer
| Renderer | Status |
|---|---|
| HTML | ✅ |
| React | ✅ |
| Terminal | ❓ |
- Extensions
72. Markdown 中的 HTML Table
| Name | Status |
|---|---|
| Markdown | ✅ |
| Math | ❓ |
73. Details 嵌套
第一层
第一层内容。第二层
第二层内容。print("Nested details")
74. 图片尺寸 HTML 测试
75. 删除内容
HTML 删除线
HTML S 标签
Markdown 删除线
76. 文本格式 HTML
Strong
Bold
Emphasis
Italic
Underline
<mark>Highlight</mark>
<small>Small Text</small>
77. Unicode 组合字符
é
é
Å
Å
用于观察字体、Unicode Normalization 和搜索行为。
78. 中文 Markdown 混排
这是中文粗体,这是中文斜体,这是 中文代码。
中文和English混合测试。
变量 markdownRenderer 用于处理 Markdown 文本。
公式 \frac{1}{2} 也可以夹在中文句子里面。
79. 极端嵌套
- L1
- L2
- L3
- L4
- L5
- L6
- L7
- L8
80. 最终综合区域
Markdown Test
Markdown renderer should correctly process:
- Bold
- Italic
- Delete
Code- Links
def markdown(): return "Hello Markdown!"
Feature Status Markdown ✅ GFM ✅ Math ❓ Mermaid ❓ \frac{a+b}{c+d}
Test Complete
如果你能够正常看到:
- 标题层级
- 粗体 / 斜体 / 删除线
- 有序和无序列表
- Task List
- Blockquote
- Code Highlight
- Table
- Link
- Image
- HTML
- Details
- Footnotes
- Math
- Mermaid
- Unicode / Emoji
- 长文本 Overflow
那么这个 Markdown Renderer 的功能已经比较完整。
Markdown Renderer Test — END

评论(0)
暂无评论