这篇文章专门用来演示当前博客已经补上的 Firefly 风格写作能力。
它不是说明文档的替代品,更像一张渲染样张:以后改样式、改 Markdown 管线、升级依赖时,只要打开这篇文章,就能快速确认每一种增强内容有没有正常显示。
数学公式
行内公式可以直接写在段落里,比如 。它应该和普通文字自然排在同一行,而不是像代码一样生硬。
块级公式适合放推导:
再来一个稍微长一点的例子:
Mermaid 图表
下面是一张流程图。它从普通 mermaid 代码块渲染出来,不需要手写 SVG。
flowchart LR A[写下 MDX] --> B[Astro 内容集合] B --> C[Markdown 增强管线] C --> D[文章页面] D --> E[读者阅读]时序图也可以写:
sequenceDiagram participant Writer as 写作者 participant Blog as 博客 participant Reader as 读者 Writer->>Blog: 提交 MDX 文章 Blog->>Blog: 渲染公式、图表和组件 Reader->>Blog: 打开文章 Blog-->>Reader: 返回完整阅读页面提示框
提示框使用 remark-directive 的容器语法,写起来接近 Firefly。
:::note title=“普通说明” 适合补充背景信息,不打断正文节奏。 :::
:::tip title=“写作建议” 如果一段内容可以帮助读者少走弯路,就适合放进提示框。 :::
:::warning title=“注意事项” 外部 iframe 和 GitHub 数据都依赖第三方服务,可访问性会受到网络环境影响。 :::
:::danger title=“危险操作” 不要把密码、Token、私有链接、后台截图或未处理的原始照片写进公开文章。 :::
GitHub 仓库卡片
GitHub 卡片用于在文章中引用项目。它会先展示基础信息,再在浏览器里尝试读取 GitHub API 补全 stars、forks 和语言。
withastro/astro GitHub repository Repository Stars -- Forks --也可以手写标题和描述,用于网络不可用时保持良好展示:
mermaid-js/mermaid 用文本语法生成流程图、时序图、甘特图等图表。 Repository Stars -- Forks --iframe 嵌入
iframe 用封装组件输出,默认带懒加载、标题和响应式比例。
剧透和折叠内容
当正文里有答案、补充解释或较长内容时,可以用折叠块。
展开查看一个隐藏说明
这里是折叠内容。它默认不会占用太多注意力,但读者想深入时可以主动展开。
展开查看一个小结
这个折叠块默认展开,用来展示 open 属性的效果。
代码块增强
普通代码块仍然支持语言标签和复制按钮:
type WritingFeature = { name: string; enabled: boolean;};
const features: WritingFeature[] = [ { name: "math", enabled: true }, { name: "mermaid", enabled: true }, { name: "callout", enabled: true },];
console.log(features.filter((feature) => feature.enabled));没有标注语言时,文章页也会尝试推断:
const message = "hello enhanced writing";console.log(message);一次性检查清单
如果这篇文章里每个小节都正常显示,说明下面这些能力都已经就位:
- 数学公式渲染。
- Mermaid 图表渲染。
:::note、:::tip、:::warning、:::danger提示框。- GitHub 仓库卡片。
- iframe 响应式嵌入。
- 剧透和折叠内容。
- 代码块语言标签和复制按钮。
这就是当前博客的增强写作基线。以后新增更多写作组件时,也可以继续把示例补到这篇文章里。