Markdown 新语法全览
一、基础排版
支持 粗体、斜体、粗斜体、删除线、高亮标记,以及 行内代码。
中英文混排自动处理空格:使用 PHP 渲染 Markdown,纯中文之间不加多余空格。
引用块:这套渲染器无外部依赖,覆盖技术写作真正用到的语法,遇到不认识的写法一律当普通段落处理,绝不吞内容。
嵌套引用也可以。
二、列表
- 有序列表第一项
- 有序列表第二项
- 嵌套无序项
- 另一个嵌套项
- 有序列表第三项
任务列表(GFM):
- Mermaid 图渲染
- 代码语法高亮
- SVG 直通
- 等你补充的下一篇文章
三、代码与高亮
PHP 代码(自动接 highlight.js 高亮):
function greet(string $name): string {
return "你好, {$name}!";
}
echo greet('World'); // 你好, World!
JavaScript 代码:
const fib = (n) => n <= 1 ? n : fib(n - 1) + fib(n - 2);
console.log(fib(10)); // 55
无语言围栏也能正常渲染:
普通代码块,保留原样不转义
四、Mermaid 美人鱼图
流程图:
graph TD;
A[访客打开页面] --> B{页面里有 mermaid 容器?};
B -->|有| C[按需加载 mermaid.js];
B -->|没有| D[一个字节都不拉];
C --> E[渲染成图];
时序图:
sequenceDiagram
participant U as 用户
participant S as 站点
U->>S: 请求文章页
S-->>U: 返回 HTML
U->>S: site.js 检测代码块
S-->>U: 高亮渲染完成
五、原生 HTML / SVG 直通
下面是一个内联 SVG(不会被段落标签包裹,也不会被转义):
原生 HTML 容器同样直通:
HTML 提示框:div、svg、iframe 等块级标记原样输出,样式由你做主。
六、表格(含对齐)
| 语法 | 示例 | 支持状态 |
|---|---|---|
| 任务列表 | [x] | ✅ 已支持 |
| Mermaid | `mermaid | ✅ 已支持 |
| 脚注 | [^1] | ✅ 已支持 |
| 数学公式 | $E=mc^2$ | ✅ 已支持 |
七、脚注与自动链接
Markdown 渲染器的设计原则是无外部依赖1,适合丢到共享主机上跑。
更多规范见 https://commonmark.org/,也可以访问 我们的首页。
八、待办事项清单
- 把这篇当模板,替换成你自己的内容
- 在后台试试「编辑源文件」按钮
- 给这个分类换一种视图形态(⚙ 按钮)
九、数学公式(KaTeX)
行内公式:质能方程 $E=mc^2$,欧拉公式 $e^{i\pi} + 1 = 0$。价签里的 \$5 不会被误判成公式。
块级公式(高斯积分):
$$\int_0^\infty e^{-x^2}\,dx = \frac{\sqrt{\pi}}{2}$$
麦克斯韦方程组之一:
$$\nabla \cdot \mathbf{B} = 0$$
十、代码块折叠与语言标签
带语言标记的代码块会显示语言标签;高度超过 340px 的默认折叠,点「展开全部」查看完整内容:
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
# 第 {i:02d} 行 —— 演示代码折叠的长示例,关于斐波那契数列的第 {i} 项推导
def fib(n):
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
return a
print([fib(i) for i in range(20)])
短代码块不折叠、只显示语言标签:
SELECT id, title FROM items WHERE status = 'published' ORDER BY updated_at DESC LIMIT 10;不需要 Composer、Python 或 Node,纯 PHP 实现全部语法。
↩