Markdown 渲染测试页

把本站支持的 Markdown 语法一次性铺开:标题、行内标记、五种 callout、代码块、表格、任务清单、脚注、大图折叠。用来在四档背景之间横向比对排版效果,不是内容文章。

注意

这是一篇测试页,不是内容文章。 它存在的唯一目的是把所有排版元素摆在同一页上, 好在切换背景档位时逐项比对。

⚠ 它的 draftfalse——只有这样才生成页面([...slug].astrogetStaticPaths 里就把草稿过滤掉了,设成 true 连 dev 都打不开)。 代价是它会进文章列表、sitemap、RSS、搜索索引和分类/标签计数。 正式发布前请把 draft 改回 true,或者直接删掉这个文件。

一、标题层级

下面那个一级标题是正文里的 #,和页面顶部由 frontmatter 渲染的标题是两个东西。 平时写文章不该用它(一页只该有一个 h1),这里只为看它的样式。

H1 正文里的一级标题

H2 二级标题 Heading Level 2

H3 三级标题 Heading Level 3

H4 四级标题 Heading Level 4

H5 五级标题 Heading Level 5
H6 六级标题 Heading Level 6

二、行内标记

这一段用来看加粗斜体粗斜体删除线行内代码高亮 以及它们混排时的基线是否齐整。中英混排:this is bold English中文加粗混在一起。

注意本站的一条书写约定:加粗的 ** 不能紧贴中文标点,否则会原样输出。 所以是「这样,对的」而不是「**这样,**错的」。

链接有四种写法,样式应当一致:行内链接带 title 的链接引用式链接、 以及裸地址 https://github.github.com/gfm/

还有几个 HTML 行内元素:按 Ctrl + Shift + R 硬刷新; 化学式 H2O;数学幂 216 = 65536;CSS 带虚线下划线。

转义字符也测一下:*不是斜体*、_不是下划线_、`不是代码`、反斜杠 \ 本身。

三、五种 callout

备注

一般提示。正文里可以放加粗代码链接, 也可以换行——这一行就是第二行。

提示

建议性内容。这五种的语义色不压成一色:它们在传递信息,拉平就把信息弄丢了。

重要

关键信息。这一条故意写得长一点,好看它在窄屏下换行之后左边的对齐还在不在: 决定评论区活跃度的从来不是你用了哪个后端,而是读者能不能不注册就留言。

警告

警告。里面塞一段代码块,看嵌套之后的内边距对不对:

bash
rm -rf .astro node_modules/.astro

注意

危险操作。里面塞一个列表:

一、先部署资源

二、确认目标地址返回 200

三、再洗库

四、引用块

单层引用。引用块和 callout 共用「左边一道线 + 右侧圆角」的形状,但材质要能分辨。

里面也可以有加粗代码和列表:

  • 第一项

  • 第二项

嵌套引用。第二层应当能看出层级,而不是和第一层糊在一起。

五、列表

无序列表,含两级嵌套:

  • 第一项
  • 第二项
    • 嵌套 A
    • 嵌套 B
      • 第三层
  • 第三项,这一项写得长一些,用来看换行之后的悬挂缩进对不对齐:文本应该和上一行的 文字左边对齐,而不是回到项目符号那里。

有序列表:

  1. 第一步
  2. 第二步
    1. 子步骤 2.1
    2. 子步骤 2.2
  3. 第三步

任务清单:

  • 已完成的一项
  • 另一项已完成
  • 未完成的一项
  • 未完成,且带加粗代码

本站平时更偏好顿号编号而不是项目符号(项目符号一眼 AI 味)。它的写法有个硬要求 ——编号之间必须留空行,连写会塌成一段:

一、第一条。

二、第二条。

三、第三条。

六、代码

行内代码:npm run build--surface-radiusgetStaticPaths()

带语言标签的代码块(应当有语言角标和复制按钮):

ts
/** 表情在提交那一刻就被换成 <img> 存进库,不是渲染时查表。 */
export function emojiToImg(text: string): string {
  return text.replace(/:(.+?):/g, (raw, name) => {
    const src = EMOJI_MAP[name];
    return src ? `<img class="wl-emoji" src="${src}" alt="${name}">` : raw;
  });
}
css
/* 材质契约:组件读令牌,档位填令牌 */
:is(.site-card, .site-pill, .site-panel, .site-edge) {
  border-radius: var(--surface-radius);
  outline: var(--surface-edge-w) solid var(--glass-edge);
  outline-offset: calc(-1 * var(--surface-edge-w));
}
bash
ssh -i ~/.ssh/id_ed25519 -p 8443 root@example.com "systemctl status waline"

不带语言的代码块:

这一块没有语言标注,
角标应当留空或隐藏,而不是显示 "undefined"。

超长单行,用来测横向滚动条(不应该把整页撑宽):

js
const veryLongLine = { alpha: 1, bravo: 2, charlie: 3, delta: 4, echo: 5, foxtrot: 6, golf: 7, hotel: 8, india: 9, juliett: 10, kilo: 11, lima: 12, mike: 13 };

七、表格

普通表格:

方案数据在谁那儿读者成本活跃度
giscusGitHub Discussions要 GitHub 账号活跃
Waline自己的库可匿名活跃
Artalk自己的库可匿名缓慢
Disqus第三方要账号 + 广告活跃

三种对齐(左 / 居中 / 右):

左对齐居中右对齐
文本文本123
长一点的文本45678
居中的长文本9

宽表格,用来测 rehypeTableScroll 的横向滚动容器(应当表格自己滚,页面不动):

令牌极光天光纸墨极简浮岛说明
--surface-radius18px18px6px6px10px卡片圆角
--surface-edge-w001px1px2px描边宽度
--surface-sheen四层玻璃高光四层玻璃高光nonenone4px 硬投影::before 那层
--surface-lift————耳语级暖影耳语级暖影6px 硬投影悬停与浮层

八、分隔线

上面一段。


下面一段。分隔线两侧的间距应当对称。

九、图片

行内图片(在句子中间,不应该被折叠):这是一张小图 头像 就在文字里。

下面这张独占一段、且路径以 /diary/ 开头,应当被 rehypePhotoFold 改写成可折叠面板, 并且在展开之前一个字节都不加载

2026 年 7 月 30 日的傍晚435 KB

十、脚注

这句话带一个脚注1,这句话带另一个2。脚注区应当出现在文章最末尾, 并且有回跳箭头。

十一、杂项

连续的中文标点:《书名号》、「引号」、【方括号】、(圆括号)、破折号——以及省略号……

Emoji:🎨 🔍 📌 ⚠️ ✅ ❌ 🚀

一段长中文,用来看行高和字距在这一档下读起来累不累:这个博客基于 Astro 构建,静态输出、 默认零 JS,只有交互组件以 React 孤岛形式加载。写代码之外,我也花很多时间琢磨一些「非技术」 的问题——人生意义、认知提升与独立思考,如何过上美好生活、对抗虚无。慢慢形成自己的思考, 顺带给「财富自由」之类被神化的概念祛魅。

Footnotes

  1. 简短的脚注内容。

  2. 长一些的脚注,用来看它换行之后的缩进。里面也可以有 代码链接

评论

评论加载中……

登录后再评论

注册要用邮箱收个验证码,只为确认邮箱能收信,不会拿去做别的。账号设置