Markdown 写作指南

后台保存的正文是 Markdown 文本,前台展示时会自动转换为 HTML。

转换流程

  1. 后台把 Markdown 存入数据库的 content 字段。
  2. 前台通过 /api/posts/:slug 读取文章。
  3. 服务端用 markdown-it + highlight.js 渲染为 HTML。
  4. 代码块自动语法高亮,特殊容器也会被解析。

代码块写法

普通代码块用三个反引号加语言名:

ts
const stack = ['Nuxt 4', 'SQLite']
console.log(stack.join(' + '))

带标题的代码块,在语言名后加 title="...":

tsutils.ts
export function greet(name: string): string {
  return `Hello, ${name}!`
}

可运行代码

用 playground 作为语言名,生成纵向(代码在上、预览在下)的可运行代码块,默认就是纵向;用 playground-h 则是横向(代码在左、预览在右)。运行代码被沙箱隔离,不会影响博客本身。

Demo
<h2 style="font-family: sans-serif">你好,AAABLOG</h2>
<button onclick="this.textContent = '你点了我'">点我试试</button>

媒体写法

  • 图片:![替代文字](/demo-1.svg "标题")
  • 视频容器:::: video 视频地址
  • 音乐容器:::: music 音频地址 cover="封面地址"
  • 对比图容器:::: before-after 前图 后图
  • 画廊容器:::: gallery 包住多张图片

视频与音乐组件直接交给浏览器解码,不限制扩展名:视频支持 mp4 / webm / ogg,音频支持 mp3 / flac / wav / m4a / ogg 等,具体以浏览器支持为准。

更完整的示例见《内容样式测试》这篇文章。