Markdown 标记语言介绍

Markdown 是一个轻量级的标记语言。标记语言1听起来很可怕。但其实 Markdown 只是一个简单的格式化文本的方法,它可以在各种设备上显示好看的文字。它甚至不支持设置字体、颜色和字号。

效果很简单,输入:

轻量级标记语言
============
来自维基百科:
> 轻量级标记语言是一类用简单句法描述简单格式
的文本语言。轻量级标记语言作为一种标记语言,
它的语法简单,可方便地使用简单的文本编辑器
输入,原生格式接近自然语言。
例子:
- Markdown
- BBCode(论坛里常用)
- Wikitext(使用 MediaWiki,如维基百科)
轻量级标记语言

来自维基百科:

轻量级标记语言是一类用简单句法描述简单格式 的文本语言。轻量级标记语言作为一种标记语言, 它的语法简单,可方便地使用简单的文本编辑器 输入,原生格式接近自然语言。 例子:

  • Markdown
  • BBCode(论坛里常用)
  • Wikitext(使用 MediaWiki,如维基百科)

Markdown 用来做什么?

Markdown 在技术人员中应当非常流行。GitHub、Stack Overflow 和 Reddit 这些技术人员经常逛的网站都支持 Markdown。不过显而易见,在国内并非如此。然而如果见到做技术的英语公民,他要是不会 Markdown,那真可以惊讶一番。 对了,作家也应该用 Markdown

Markdown 在 ASCII 字母和符号之上打造。在英语的环境中,如果你打字时很想强调某些内容,你可能很自然地就使用了 *星号*。斜体是英文表达强调的一种格式。不幸的是,中文没人这么玩,甚至中文都不用斜体(中文的斜体是伪斜体2)。不过摆脱语言的壁垒之后,理解 Markdown 的用处并非难事。

与标记语言相对的另一种格式化文字的方法是,所见即所得(What You See Is What You Get,WYSIWYG)。中国软件世界的天下一定是和 WYSIWYG 同步的,没有那么多人知道标记语言。

Word 2013 工具栏

WYSIWYG 并不是不好。只是你没有办法知道底层的格式化标签做了什么事情。回忆一下,有多少次你从网页里复制黏贴到 Word 里的时候,格式和间距总是不对。有的时候,你都没法找到究竟是哪个格式需要更改。对于技术人员,依赖不可控制的隐形标签是很危险的。当你需要比较差异、版本控制和编辑历史的时候尤其糟糕。所以我们才需要使用简单的并且可以看见的格式符号。

在代码中的文档很多也是用标记语言写就。科学论文也经常使用 TeX 来写作。

Markdown 怎么写?

Markdown 一直是随 Web 而生的,通常它会被转换成 HTML 格式查看。甚至 Markdown 文本里本身也可以插入 HTML 标签。比起 HTML 的 <p>文字</p>,Markdown 要简单自由的多。

结果 Markdown
粗体 **文本**
强调 *文本*
删除线 ~~文本~~
链接 [标题](http://)
行内代码 `代码`
图片 ![图片替换文本](http://)
列表 * 项目
引用 > 引用
H1 # 标题
H2 ## 标题
H3 ### 标题

在现实中,Markdown 有更多的细致语法需要深究,所以网上的中文教程跳跃不小。这不如把学习建立在使用(练习)之上。 CommonMark 建立了简要的帮助10 分钟交互式教程,Chen Yaojun 翻译了他们,你一定不要错过这个教程。 英文原版简要介绍10 分钟交互式教程

除此之外,有相当多的各种篇幅的中文教程。简书WowUbuntu少数派张弛的傻瓜教程。可以作为参考。

对于使用 Markdown 的平台,像 GitHub 自然就有完整的教程,Markdown BasicsGitHub Flavored Markdown。Ghost 的编辑器有如上表一般的帮助以及 Markdown Guide

国内少有网站使用 Markdown,简书是不可多得的一家。简书有教程来解释 Markdown,但是编辑器里找不到任何帮助,对新手基本上是负分。

简书编辑器

Markdown 预览工具

这方面的工具各个平台、Web 都有,选择特别多:

Markdown 的纷争和未来

Markdown 是很简便的标记语言,这也是它流行的原因之一。John Gruber(Daring Fireball 博主)在 2004 年创造了 Markdown,也 11 年没有再他的博客上更新语法,他拒绝对语言的细节问题作出限制。加入 GitHub 后,无数对 Markdown 的改进接踵而至,所以产生了几乎是最流行的 Markdown 方言——GitHub Flavored Markdown

如今如此多的预览工具,天知道这些解析器会有什么行为3。所以 Stack Overflow 的创始人 Jeff Atwood 想要用 CommonMark4 来为 Markdown 设立一个统一的标准

现在这个标准已经迭代到了很多个版本,已经出现了许多种语言的不同实现,JavaScript 这有一个很有意思的实现,markdown-it。我相信这个标准能在很多 CJK 文字与格式化符号的细微末节上有诸多帮助。

  1. HTML 是通过 SGML 定义出来的,HTML 5 之后算是分道扬镳。DTD 是 SGML 用来定义标记语言的工具。XML 是一种 SGML 定义的标记语言。除此之外,reStructuredText 也是一种优秀的标记语言,它被 Python 用来写文档。AsciiDoc 是另外一种不错的标记语言。Wikitext 是及其糟糕的标记语言。 

  2. 斜体分为 oblique type 和 italic type。伪斜体是前者,字形从正方形改为平行四边形;后者是倾斜同时随着字形变化。这两个类型在中文里被统称为了斜体。 

  3. CommonMark 的各处细节语法 http://spec.commonmark.org/。 

  4. John Gruber 最后告诉他们,Standard Markdown 这种文艺矫情名字快去死。 

标签:

最近更新: