排版测试:文字在这里的样子
文字、代码高亮、数理化生公式,以及表格、动画和交互画布的排版测试。
这是一篇排版测试文章。从一行文字到一张可以操作的画布,试着让不同形式的内容,都能安静、清楚地放在同一个页面里。
文字 · 代码 · 数学 · 物理 · 化学 · 生物 · 表格 · 交互表格 · 动画 · Canvas
文字与层次
一个安静的页面,应该把注意力留给内容。这里用稍长一点的段落观察行宽、行距,以及中文和 English 混排时的节奏。读到句子的末尾,再自然地转到下一行,文字之间留出一点呼吸的空间。
强调、引用与列表
这是加粗文字、斜体文字、删除文字,以及行内代码 const greeting = 'hello'。也可以打开项目页,或看看 MotionFlux。
清楚的层次、舒服的间距,就足够支撑一次阅读。
长一点的引用,也应该保留段落本身的节奏。
- 中英文、数字 0123456789 和标点自然地排在一起。
- 列表可以嵌套:
- 公式、表格与代码都属于内容。
- 不需要为每种内容重新设计一篇文章。
- 先看电脑上的整体阅读效果。
- 再看手机上的行宽和横向滚动。
- 最后试试下面的交互。
- 标题、引用与列表
- 公式与代码高亮
- 动画、Canvas 与交互表格
代码高亮
代码块按标注的语言高亮,保留缩进,支持复制。较长的代码可以在块内横向滚动。
type Sample = { name: string; values: number[] }
function mean({ name, values }: Sample): string {
// 让数字与文字保持同样清楚的表达。
const average = values.reduce((sum, value) => sum + value, 0) / values.length
return `${name}: ${average.toFixed(2)}`
}
console.log(mean({ name: 'Sylvan', values: [2, 4, 8, 16] }))from math import sin, pi
def wave(t: float, amplitude: float = 1.0) -> float:
"""一条最简单的正弦波。"""
return amplitude * sin(2 * pi * t)
samples = [wave(i / 100) for i in range(101)]
print(f"Peak: {max(samples):.3f}")数学公式
行内公式可以自然地嵌入句子,例如 ,或描述函数 。独立公式居中显示,长公式在小屏幕上可以横向滚动。
分式、根号、多行推导和矩阵:
物理公式
简谐运动的位移为 。对时间求导,可以得到速度与加速度:
矢量、偏导与物理单位同样可以排版:
化学公式
化学式使用 \ce{...} 语法,支持元素下标、离子电荷、反应箭头与同位素。例如水 、硫酸根 和碳同位素 。
生物公式
米氏方程描述一种常用的酶动力学模型,其中 为底物浓度, 为米氏常数:
相应的简化反应过程可以写成:
在满足 Hardy–Weinberg 平衡假设的二等位基因模型中,等位基因频率与基因型频率的关系为:
这些公式用于排版演示;具体模型的使用仍需要相应的实验条件与假设。
静态表格
普通 Markdown 表格支持列对齐、行内公式、链接与强调。窄屏幕上可以在表格内左右滑动。
| 物理量 | 符号 | 示例值 | 单位 |
|---|---|---|---|
| 振幅 | 0.8 | ||
| 频率 | 1.5 | ||
| 角频率 | 9.42 | ||
| 周期 | 0.67 |
交互表格
点击列标题排序,输入关键词筛选,或切换到下一页。点击「编辑数据」可以修改数值,下面的均值会随之更新。「重置表格」恢复原始数据。
动画
一颗小球沿着轨道往返。点击「运行示例」开始,拖动滑杆改变周期;也可以随时停止。系统开启「减少动态效果」时,动画保持静止。
Canvas 交互画布
拖动滑杆,观察振幅与频率如何改变一条波。点击画布内的「播放波形」,还可以让它随时间移动。
写作时怎么使用
以上内容都由文章正文中的 Markdown 渲染,后续文章也可以直接使用:
- 代码:使用带语言名的代码块,如
typescript、python、sql。 - 数学和物理:行内用
$...$,独立公式用单独成行的$$包围 LaTeX。 - 化学和生物反应:在公式内使用
\ce{...}。 - 静态表格:使用 Markdown 的竖线表格语法。
- 交互表格:使用
interactive-table代码块,内容为上面示例中的 JSON。 - 动画、画布与其他交互:使用
animation、canvas或html-live代码块,写入 HTML、CSS 和 JavaScript。
展开演示下方的「查看示例源码」即可查看和复制。交互示例在独立的沙盒中运行,使用内联代码和本地数据,不依赖外部脚本。