1. 标题
支持 CommonMark 标准的六级标题,以 # 数量区分层级。
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
2. 正文与文字样式
基本样式
| 效果 | 语法 |
|---|
| 加粗 | **文字** 或 __文字__ |
| 倾斜 | *文字* 或 _文字_ |
| ==高亮== | ==文字== |
| 上标 | 文字^上标^ |
| 下标 | 文字~下标~ |
删除线 | ~~文字~~ |
**加粗的文字**
*倾斜的文字*
==高亮的文字==
这是^上标^
这是~下标~
~~删除线样式~~
下划线
下划线使用 ++ 包裹,每 2 个 + 表示一条下划线,多层嵌套可增加 + 的数量:
3. 特殊符号
Emoji
遵循 markdown-it-emoji 规范,使用 :emoji_name: 语法。
版权符号
| 字符 | 写法 |
|---|
| © | (c) 或 (C) |
| ® | (r) 或 (R) |
| ™ | (tm) 或 (TM) |
4. 列表
有序列表
无序列表
以 *、+ 或 - 起始均可:
5. 目录
使用 [[TOC]] 在文档中插入自动生成的目录,基于文档标题结构生成。
实现参考:markdown-it-table-of-contents
6. 代码
代码高亮由 highlight.js 提供,语言标识遵循 highlight.js 规范。
行内代码
代码块
```python
def hello():
print("Hello, SoMarkDown!")
```
支持语言包括 python、javascript、typescript、java、c、cpp、bash、sql、json 等,完整列表见 highlight.js 支持的语言。
7. 数学公式
数学公式由 KaTeX 渲染,语法与 LaTeX 一致。
行内公式
行间公式
$$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$
8. 图片
SoMarkDown 将原 Markdown 语法中的”图片占位描述”借用为图片语义理解内容的放置处。在 SoMarkDown 渲染器中,方括号内的文字会作为 AI 对图片的语义描述特殊展示,同时又完全兼容原生 Markdown 的 alt 文字用法。

可通过配置 imgDescEnabled 控制是否显示图片描述:
new SoMarkDown({ imgDescEnabled: true })
9. 表格
SoMarkDown 采用 HTML <table> 标签表示表格,比 Markdown 原生表格语法更通用,且支持合并单元格(rowspan / colspan)。
<table>
<thead>
<tr>
<th>列 A</th>
<th>列 B</th>
<th>列 C</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="2">合并单元格</td>
<td>B1</td>
<td>C1</td>
</tr>
<tr>
<td>B2</td>
<td>C2</td>
</tr>
</tbody>
</table>
10. 图表例(Caption)
Caption 可用于为图片或表格添加标题说明,以 : 起始(英文冒号 + 空格)。
: 图 1 — 用户增长趋势图

规则:
- 必须以
: (英文冒号 + 一个空格)起始
- 必须紧贴目标组件(Table 或 Figure)的上方或下方,中间允许有空行,但不能有其他组件
- 若上下方同时存在 Caption,优先选取上方
实现参考:Pandoc Caption 规范
11. 化学方程式
化学方程式使用 \ce{} 语法,由 mhchem 渲染,需放置在公式环境内。
反应 $\ce{H2 + O2 -> H2O}$ 是放热反应。
$$
\ce{2H2 + O2 ->[\text{点燃}] 2H2O}
$$
12. 化学结构式(SMILES)
化学结构式使用 \smiles{} 语法,由 SmilesDrawer 渲染,同样需要在公式环境内使用。
SoMarkDown 将 SMILES 视为公式环境中的一种特殊符号,原因是:(1) 结构式会出现在化学方程式中;(2) 和数学公式一样存在行内与行间两种排版需求;(3) 与化学方程式的集成方式保持一致。
行内结构式
行间结构式
化学结构方程式(mhchem + SMILES 混合)
SoMarkDown 创新支持在 \ce{} 内嵌入 \smiles{},将化学结构式与方程式语法合并,满足在方程式中表达结构式的需求:
$$
\ce{\smiles{CCO} + \smiles{O} -> \smiles{CC(O)O}}
$$
SMILES 渲染可通过配置调整:
new SoMarkDown({
smiles: {
disableColors: false,
width: 300,
height: 200
}
})
13. 流程图(即将支持)
Mermaid 流程图支持正在开发中,届时将使用以下语法:
```mermaid
graph TD
A[开始] --> B{判断}
B -->|是| C[执行]
B -->|否| D[结束]
```