一篇技术笔记不需要很长,但应该让之后的自己能够看懂:研究什么、做了什么、怎样复现,以及哪些结论还没有得到验证。

这篇文章同时是本博客的 Markdown 写作示例。下面的物理模型是教学示例,不是实验数据或个人科研成果。

先写清楚问题

以一维谐振子为例,我们想观察位置随时间的变化。先写下假设:忽略阻尼,质量和弹簧系数固定,初始速度为零。

$$ m\frac{d^2x}{dt^2}+kx=0,\qquad x(t)=A\cos(\omega t),\quad \omega=\sqrt{\frac{k}{m}}. $$

公式提供模型,代码提供一条可检查的计算路径。

留下最小代码

from math import cos, sqrt

mass = 1.0
spring = 4.0
amplitude = 0.1
omega = sqrt(spring / mass)

for t in (0.0, 0.5, 1.0):
    position = amplitude * cos(omega * t)
    print(f"t={t:.1f} s, x={position:.6f} m")

记录单位比堆积代码更有价值。若以后增加阻尼,应明确改变了哪个假设,并保留原来的测试条件。

符号含义示例值
m质量1 kg
k弹簧系数4 N/m
A初始振幅0.1 m

插入图片与引用

技术笔记的三个组成部分:问题、方法与结果

好的笔记应让读者能够追溯结论,而不只是看到结论。

这句是本文的写作建议,不引用特定作者。引用外部资料时,应附原始链接和访问日期。1

在这个博客写作

  1. 使用项目根目录的 new-post.ps1 创建一篇草稿。
  2. 用 Typora 或 VS Code 编辑 Markdown。
  3. 使用 preview.ps1 在本机检查排版、图片和公式。
  4. 将文章的 draft 改为 false,然后执行 publish.ps1。

每篇文章的 slug 决定稳定地址。标题可以修改,已经公开的 slug 尽量保持不变。图片可以放在文章同目录,并用 ![说明](image.png) 引用;共享图片放在 static/images/。

发布前的最后检查

检查文字是否准确、示例是否标明边界,并确认没有密码、密钥、私人聊天或服务器配置。没有验证的事情,应直接写明“尚未验证”。


  1. 示例代码仅使用 Python 标准库。Markdown 写作语法可参阅 Hugo 官方内容文档。 ↩︎