让你提交的 Markdown Pro 起来
Markdown 也需要规范?
是的。虽然我们往往将 Markdown 作为 HTML 生成语言使用,但 Markdown 设计之初就希望保证其代码在纯文本界面下的可读性。你的控制台、编辑器不会优化文字的排版(一般都会用等宽字体),但是浏览器会,因此就算你的 Markdown 写的非常的混乱,在浏览器(或者 通过浏览器套壳实现的 所见即所得编辑器,比如 Typora)里看起来依旧非常正常。为了照顾 强迫症患者 这种需求,我们需要给 Markdown 一个规范。
中文文案的通用规范
详情请参考《中文文案排版指北》,下面仅指出两个重点。
盘古之白
中文和西文、数字之间加空格。按照 BV13M4y157Xc 中的说法,中西文之间的间隔应该是全角的四分之一宽,但是四分之一空格既不方便打也不方便用等宽字体显示,所以统一使用普通空格代替。(按照某位不知名人士的说法,聪明的浏览器会忽略这个空格,愚蠢的终端需要这个空格)
哦,我的天呐,你居然连 Markdown 是什么都不知道,真是见鬼!
我真想用隔壁苏珊大妈 20" 的靴子狠狠的踢你的屁股,你这个坏东西!
需要注意的是,如果西文后面直接接符号,则不需要空格。
我们的代码托管在 GitHub。
全角标点
除非是西文整句,否则全部使用中文标点。下面这个例句中,引号以内的西文整句使用了西文标点,引号以外使用了中文标点。
俗话说得好,“Too young, too simple.”
规范英文拼写
GitHub 是一个英文社区,所以我们需要规范英文拼写。(这句话是 Copilot 补出来的)
错误示范(出处):
我们的客户有 github、foursquare、microsoft corporation、google、facebook, inc.。
我们的客户有 GITHUB、FOURSQUARE、MICROSOFT CORPORATION、GOOGLE、FACEBOOK, INC.。
我们的客户有 Github、FourSquare、MicroSoft Corporation、Google、FaceBook, Inc.。
我们的客户有 gitHub、fourSquare、microSoft Corporation、google、faceBook, Inc.。
OSA 和下属项目的规范拼写如下:
- HITSZ OSA
其余下属项目的规范拼写仍在讨论中。
有一些特殊情况可以不规范拼写,如大标题(但更常见的做法是使用 CSS 属性来将规范拼写的标题显示为全大写)。
Markdown 的规范
禁止滥用 **加粗**
不要把加粗当标题用。如果需要强调且单独成段,建议用下面提到的 Admotions 代替。
合理放置 超链接
一般来讲,一个段落里不应该给同一个名词超链接加上超链接两次。
PS:如果需要直接放网址,有专门的 Markdown 语法。以下两种写法是等价的:
[https://example.com](https://example.com)
<https://example.com>
GitHub issue 里的网址甚至可以不用加 <>
。
空行
标题和正文之间应该空一行。注意,Markdown 段落之间也需要空一行。
用 linter 偷懒
推荐以下两个 linter:
- markdownlint-cli2:顾名思义,它是一个 Markdown 文件的 linter,可以检查诸如错误使用
**
的问题。但是默认的规则有点苛刻了,建议关闭这些规则:MD024(禁止多处相同的标题)、MD026(禁止标题以西文标点结束)。此外,也有 VS Code 插件版。 - autocorrect:专门用于规范中英文混写的文案,可惜不检测规范拼写。
插件版本有一个比较烦人的缺点,就是修复提示很可能会打断你写文的思路。如果不希望被这种问题所困,建议改成仅保存时自动修复。
另外,还有一个专门用来检测规范拼写的程序 typos-cli。
项目限定内容
Wiki
Wiki 使用了 Material for MkDocs,加了一些 Markdown 扩展来让它有更丰富的功能,比如:
代码高亮
<!-- ```py 也行 -->
```python
for i in range(10):
print(i)
```
效果:
for i in range(10):
print(i)
MkDocs 使用 Pygments 进行语法分割,支持的语言见 Pygments 文档。
按键(代替<kbd>)
++ctrl++
-> Ctrl++ctrl+shift+esc++
-> Ctrl+Shift+Esc
参考:https://facelessuser.github.io/pymdown-extensions/extensions/keys/
Admonitions
!!! info "这个可以代替 Markdown 的引用"
指的是 `> 引用内容` 的语法
效果:
这个可以代替 Markdown 的引用
指的是 > 引用内容
的语法
参考:https://squidfunk.github.io/mkdocs-material/reference/admonitions/