写作方式
在 src/content/posts/ 下放 .adoc 文件即可,和 .md 完全平权:文件名决定 URL
(本篇是 asciidoc-demo.adoc,对应 /posts/asciidoc-demo),frontmatter 与 Markdown
文章共用同一套字段,目录、侧栏 Archive、CLI 的 posts 命令都会自动收录。
|
Note
|
标题来自 frontmatter。正文开头的
|
frontmatter 字段
| 字段 | 说明 |
|---|---|
|
标题,必填 |
|
日期, |
|
分类,必须是侧栏分类的 slug,必填 |
|
标签数组,可省略 |
|
摘要,可省略 |
|
|
|
|
文本标记
段落里的 粗体、斜体、等宽、上标、下标 都能用。行内链接写成
Asciidoctor 官网;裸 URL 也会自动变成链接。
列表语法与 Markdown 不同,但样式是同一条 CSS:
-
无序列表项
-
嵌套一项
-
-
另一项
-
有序列表第一项
-
第二项
- 术语
-
描述列表,AsciiDoc 特有的写法
- 另一个术语
-
描述文本
-
代码与引用
export function greet(name: string): string {
return `hello, ${name}`;
}
|
Note
|
代码块的语法高亮在 AsciiDoc 这一侧不启用 —— 本站 .post-body pre 的样式统一接管
背景与边框,所以两种格式的代码块观感一致(Markdown 那侧因为走 Shiki,token 会带颜色)。
|
A language that doesn’t affect the way you think about programming is not worth knowing.
Epigrams in Programming
提示框
|
Warning
|
WARNING / NOTE / TIP / IMPORTANT / CAUTION 都是平台写法: |
|
Tip
|
单行的 TIP 也可以直接用 TIP: 文字 写。
|
交叉引用
带显式锚点的小节
把小节想要的锚点写在标题的上方一行,就能固定它的 id(放在代码块里展示, 因为正文字面写出锚点语法会被 Asciidoctor 当成第二个锚点定义):
[[my-anchor]]
=== 小节标题
本次演示的小节锚点是 demo-cross-ref,所以在别处写 带显式锚点的小节 就能跳到它, 链接文字会自动取小节标题。至于没写锚点的小节,id 由标题生成:英文按连字符分词, 中文标题本身就是锚点。
收尾
上面这些结构都由 Asciidoctor 转成 HTML,再由文章路由交给同一套 .post-body 样式,
所以新增 AsciiDoc 排版能力(例如脚注、旁注、包含指令)时,只需要在
src/pages/posts/[…slug].astro 的样式区补规则,不必碰内容层的代码。