1. 简单百科
  2. markdown

markdown

Markdown是一种轻量级标记语言,由约翰·格鲁伯(John Gruber)创立。它允许人们使用易读易写的纯文本格式编写文档,并将其转换为有效的XHTML(或HTML)文档。Markdown吸收了电子邮件中已有的纯文本标记的特性。由于其轻量化和易读易写的特点,以及对图片、图表和数学式的支持,许多网站广泛使用Markdown来编写帮助文档或在论坛上发布消息。一些使用Markdown的知名网站包括GitHubReddit、Discord、Diaspora、Stack Exchange、OPEN STREET、SourceForge和简书。此外,Markdown还可以用于撰写电子书。Markdown最初的描述存在歧义并引发了一些未解答的问题,导致实现版本与原始版本意外或故意地有所不同。为解决这个问题,Markdown的长期贡献者于2014年发布了CommonMark,这是一个明确的规范和测试套件,用于统一Markdown的实现。

基本用途

Markdown的语法简洁明了、学习容易,而且功能比纯文本更强,因此有很多人用它写博客。世界上最流行的博客平台WordPress和大型CMS如Joomla、Drupal都能很好的支持Markdown。完全采用Markdown编辑器的博客平台有Ghost和Typecho。

用于编写说明文档,并且以“README.md”的文件名保存在软件的目录下面。

除此之外,由于我们有了RStudio这样的神级编辑器,我们还可以快速将Markdown转化为演讲PPT、Word产品文档、LaTeX论文甚至是用非常少量的代码完成最小可用原型。在数据科学领域,Markdown已经广泛使用,极大地推进了动态可重复性研究的历史进程。

使用指南

常用语法

最常见的Markdown格式选项和键盘快捷键:

标题

标题能显示出文章的结构。行首插入1-6个 # ,每增加一个 # 表示更深入层次的内容,对应到标题的深度由 1-6 阶。

• H1 :# Header 1

• H2 :## Header 2

• H3 :### Header 3

• H4 :#### Header 4

• H5 :##### Header 5

• H6 :###### Header 6

文本样式

(带“*”星号的文本样式,在原版Markdown标准中不存在,但在其大部分衍生标准中被添加)

• 链接 :[Title](URL)

• 加粗 :**粗体**

• 斜体字 :*Italics*

• *高亮 :==文本==

• 段落 : 段落之间空一行

• 换行符 : 一行结束时输入两个空格

• 列表 :* 添加星号成为一个新的列表项。

• 引用 :\u003e 引用内容

• 内嵌代码 : `alert('Hello World');`

• 画水平线 (HR) :--------

• 方框:- [ ] -

图片

使用Markdown将图像插入文章,你需要在Markdown编辑器输入 ![]() 。这时在预览面板中会自动创建一个图像上传框。你可以从电脑桌面拖放图片(.png, .gif, .jpg)到上传框, 或者点击图片上传框使用标准的图像上传方式。如果你想通过链接插入网络上已经存在的图片,只要单击图片上传框的左下角的“链接”图标,这时就会呈现图像URL的输入框。想给图片添加一个标题,你需要做的是将标题文本插图中的方括号,e.g;![This is a title]().

脚注

脚注不存在于标准Markdown中。

使用这样的占位符号可以将脚注添加到文本中:[^1]. 另外,你可以使用“n”而不是数字的[^n]所以你可以不必担心使用哪个号码。在您的文章的结尾,你可以如下图所示定义匹配的注脚,URL将变成链接:

写代码

添加内嵌代码可以使用一对回勾号 `alert('Hello World')`.对于插入代码, Ghost支持标准的Markdown代码和GitHub Flavored Markdown (GFM)   。标准Markdown基于缩进代码行或者4个空格位:

GFM 使用三个回勾号```

例子

链接

列表格式

使用Markdown 引用文本:

编辑器

Windows

Typora、Simplenote、Laverna、Boostnote、Inkdrop、Cmd Markdown、马克飞象、Yu Writer、看云、有道云笔记、为知笔记、蚂蚁笔记、scratch(中国社区)

MacOS

Typora、Typed、Ulysses、Falcon

Linux

Typora、原子、GNU Emacs、Remarkable、Haroopad、ReText、UberWriter、Mark My Words

浏览器插件

Markdown Preview、Markdown Here

Android

Draft、JotterPad X、坚果云Markdown

iOS

Byword、simplenote、坚果云Markdown

发展历程

John Gruber在2004年创造了Markdown语言,在语法上有很大一部分是跟亚伦·斯沃茨(Aaron Swartz)共同合作的。这个语言的目的是希望大家使用“易于阅读、易于撰写的纯文字格式,并选择性的转换成有效的XHTML(或是HTML)”。其中最重要的设计是可读性,也就是说这个语言应该要能直接在字面上的被阅读,而不用被一些格式化指令标记(像是RTF与HTML)。因此,它是现行电子邮件标记格式的惯例,虽然它也借鉴了很多早期的标记语言,如:Setext、Texile、reStructuredText。

标准化

Markdown已经成为典型的转换为HTML的非正式规范  和参考实现。随着时间的推移,出现了许多Markdown实现。人们开发这些主要是由于在基本语法之上需要额外的功能 - 例如表格,脚注,定义列表(技术上的HTML描述列表)和HTML块内的Markdown。其中一些行为偏离了最开始的参考实现。与此同时,非正式规范中的一些含糊不清引起了人们的注意。这些问题促使Markdown解析器的一些开发人员努力实现标准化。

2016年3月发布了RFC 7763和RFC 7764。RFC 7763 从原始变体引入了MIME类型 文本/markdown。RFC 7764讨论并注册了MultiMarkdown、GitHub Flavored Markdown (GFM)、Pandoc、CommonMark及Markdown等变体。

Common

从2012年开始,包括Jeff Atwood和John MacFarlane在内的一群人启动了标准化工作。社区网站旨在记录可用于文档作者和开发人员的各种工具和资源,以及各种markdown实现的实现者。 2014年9月,Gruber反对在这一工作中继续使用“Markdown”这个名字,其被更名为CommonMark。  CommonMark发布了规范、参考实现和测试包的几个版本,并计划在2018年宣布最终的1.0规范和测试包。

GFM

2017年,GitHub发布了基于CommonMark的GitHub Flavored Markdown(GFM)的正式规范。除了表格、删除线、自动链接和任务列表被GitHub规范作为扩展添加之外,它遵循CommonMark规范。   GitHub还相应地更改了其站点上使用的解析器,这要求更改某些文档 - 例如,GFM要求创建标题的哈希符号由空格字符分隔。

Extra

Markdown Extra是一种轻量级标记语言,基于在PHP(最初)、PythonRuby中实现的Markdown。它添加了普通Markdown语法不具备的功能。内容管理系统支持Markdown Extra,例如Drupal,TYPO3和MediaWiki。

它为Markdown添加了以下功能:

语法

Markdown是一种简单的格式化文本的方法,在任何设备上看起来都很棒。它不会做任何花哨的事情,比如改变字体大小、颜色或类型——只是基本的,使用你已经知道的键盘符号。

常用语法

LaTex公式

Markdown亦可用于编辑LaTex公式,可跨平台编辑、跨环境显示。

参考资料