Astro Markdown 功能测试文章
这是一篇专门用于测试 Astro 博客渲染能力的文章。
本文会覆盖常见 Markdown 元素,包括:
- 标题与目录
- 段落
- 粗体与斜体
- 图片
- 表格
- 引用
- 有序列表与无序列表
- 任务列表
- 行内代码
- 代码块
- 链接
- 分隔线
- 删除线
- 嵌套内容
如果你的博客支持自动目录,那么下面这些二级、三级标题应该能够被正确识别。
一、标题与目录测试
这是一个二级标题。
1.1 三级标题
这是三级标题下的正文。
1.1.1 四级标题
这是四级标题。
1.2 另一个三级标题
用于确认目录中多个同级标题是否能够正确显示。
二、文本样式测试
普通正文应该使用博客默认的正文样式。
这是粗体文本。
这是斜体文本。
这是粗体加斜体文本。
这是删除线文本。
这是一个 inline code 行内代码示例。
还可以混合使用,例如:
Astro 的设计理念之一是尽可能减少发送到浏览器的 JavaScript。
三、提示容器测试
提示容器使用引用块语法。第一行写入容器标记;可选标题紧跟在标记后。details 的正文前保留一个空引用行,以分隔 summary 与折叠内容。
查看实现细节
这里是默认折叠的补充内容。它使用原生 details 和 summary,无需客户端 JavaScript。
四、链接测试
普通链接:
自动链接:
站内相对链接:
也可以测试文章链接:
四、图片测试
下面是一张普通 Markdown 图片:

图片下方可以写普通说明文字。
图片测试重点检查:
- 图片最大宽度
- 圆角
- 上下间距
- 移动端缩放
- alt 文本
- 深色模式表现
4.1 宽图测试

4.2 竖图测试

五、表格测试
5.1 普通表格
| 项目 | 当前方案 | 推荐方案 | 状态 |
|---|---|---|---|
| 框架 | Astro | Astro | ✅ |
| 部署 | Cloudflare Workers | Workers Static Assets | ✅ |
| 搜索 | Pagefind | Pagefind | ✅ |
| CSS | Token + Component CSS | 保持 | ✅ |
| 内容 | Markdown | Content Collections | 🔄 |
5.2 对齐测试
| 左对齐 | 居中 | 右对齐 |
|---|---|---|
| Alpha | 100 | 1.25 |
| Beta | 200 | 20.50 |
| Gamma | 300 | 999.99 |
5.3 长文本表格
| 功能 | 说明 |
|---|---|
| Astro Static | 在构建阶段生成 HTML,适合博客、个人主页、文档等静态内容站点。 |
| Cloudflare Workers Static Assets | 可以直接部署 Astro 生成的 dist 静态资源,同时保留未来扩展 Worker API 的能力。 |
| Pagefind | 构建阶段建立搜索索引,无需传统后端搜索服务。 |
六、引用测试
普通引用:
这是一级引用。
可以包含多行文本。
嵌套引用:
第一层引用
第二层引用
可以用于测试引用块的左边框、背景和缩进。
七、列表测试
7.1 无序列表
- Astro
- Cloudflare
- Pagefind
- Markdown
- CSS
7.2 嵌套无序列表
- Frontend
- Astro
- TypeScript
- CSS
- Deployment
- Cloudflare Workers
- Wrangler
- Content
- Markdown
- RSS
- Sitemap
7.3 有序列表
- 编写 Markdown
- 运行 Astro Build
- Pagefind 建立索引
- Wrangler 上传
dist - Cloudflare 提供静态资源
7.4 嵌套有序列表
- 构建项目
- Astro 编译
- 生成 HTML
- 优化静态资源
- 构建搜索索引
- 扫描 HTML
- 生成 Pagefind 数据
- 部署网站
7.5 Task List
- Astro 静态构建
- Cloudflare Workers 部署
- Pagefind 搜索
- 完成文章样式
- 完成图片样式
- 完成代码高亮
- 完成移动端测试
八、代码测试
8.1 JavaScript
const site = {
name: "pierlee",
framework: "Astro",
deployment: "Cloudflare Workers",
};
console.log(site);
8.2 TypeScript
interface Post {
title: string;
description: string;
pubDate: Date;
tags: string[];
}
const post: Post = {
title: "Astro Markdown Test",
description: "Testing Markdown rendering.",
pubDate: new Date(),
tags: ["Astro", "Markdown"],
};
8.3 Astro
---
interface Props {
title: string;
}
const { title } = Astro.props;
---
<article>
<h1>{title}</h1>
<slot />
</article>
8.4 CSS
:root {
--color-background: #ffffff;
--color-text: #1d1d1f;
--radius-medium: 0.75rem;
}
article {
max-width: 48rem;
margin-inline: auto;
}
8.5 Shell
npm run check
npm run build
npm run preview
8.6 JSON
{
"scripts": {
"dev": "astro dev",
"build": "astro build && pagefind --site dist",
"preview": "npm run build && wrangler dev"
}
}
九、长段落测试
这一段主要用来测试正文的最大宽度、字号、行高和阅读体验。如果正文内容比较长,那么适当的行宽非常重要。对于中文正文而言,如果内容区域过宽,阅读时视线需要横向移动较长距离;如果过窄,又会导致频繁换行。因此博客正文通常会设置一个适中的 max-width,并通过合理的 line-height 和段落间距来提高长时间阅读时的舒适度。
第二段继续测试段落之间的间距。理想情况下,两个普通段落之间应该存在清晰但不过大的视觉间隔,同时标题与正文、列表、引用、图片之间应该遵循统一的垂直节奏。
十、特殊字符测试
中文标点:
,。!?;:“”‘’()【】《》
英文标点:
, . ! ? ; : " ' ( ) [ ] { }
特殊字符:
© ™ ® → ← ↑ ↓ × ÷ ± ≠ ≈ ≤ ≥
HTML 特殊字符:
<main>、<article>、<section>、<nav>
十一、混合内容测试
下面测试多个 Markdown 元素连续出现时的布局。
推荐技术栈
-
Astro
- 静态优先
- 默认减少客户端 JavaScript
- 适合内容型网站
-
Cloudflare Workers Static Assets
- 全球 CDN
- 部署简单
- 可以未来扩展 Worker API
-
Pagefind
- 静态搜索
- 无需数据库
- 适合博客
相关命令:
npm run build
构建后生成:
dist/
├── index.html
├── about/
├── blog/
├── posts/
├── pagefind/
├── rss.xml
└── sitemap.xml
如果以上内容都能正确显示,说明你的 Markdown 基础样式已经比较完整。
十二、超长标题测试
这是一个用于测试移动端自动换行、目录显示以及标题行高是否合理的非常非常非常非常长的三级标题
如果这个标题在手机屏幕上仍然能够自然换行,并且不会超出文章容器,就说明响应式标题样式正常。
十三、连续代码与正文测试
下面先出现代码块:
.prose {
max-width: 48rem;
margin-inline: auto;
}
然后紧接着正文。
这里主要检查代码块和正文之间是否有足够的上下间距,以及代码块是否会导致整个页面产生横向滚动。
十四、最终检查项
通过这篇文章,可以重点检查:
- 自动目录是否生成
- 目录锚点是否正确
- 滚动定位是否正常
- 标题层级是否合理
- 正文宽度是否舒服
- 图片是否响应式
- 图片是否溢出
- 表格是否支持移动端横向滚动
- 代码块是否横向滚动
- 代码高亮是否正常
- 引用样式是否明显
- 列表缩进是否一致
- 深色模式是否正常
- 链接 hover 是否正常
- focus-visible 是否正常
- 中文排版是否正常
十五、结语
如果这篇测试文章中的所有元素都能够正确显示,那么你的 Astro 博客基础 Markdown 样式已经覆盖了绝大多数常见文章需求。
后续还可以继续测试:
- Footnotes
- Math / KaTeX
- Mermaid
- MDX 组件
- Callout / Admonition
- 图片 Caption
- 代码块文件名
- 代码行高亮
- Heading Anchor
- 自动目录滚动高亮
其中这三张图片你需要自己放到 `public/images/`:
```text
public/images/test-cover.jpg
public/images/test-image.jpg
public/images/test-wide.jpg
public/images/test-portrait.jpg
如果只是测试、不想准备四张图片,也可以全部把路径改成同一张:

另外,如果你使用 Astro Content Collections,记得把最上面的 frontmatter 字段改成与你当前 content.config.ts 的 schema 一致,否则文章本身可能因为 schema 校验失败而无法构建。