markdown
Markdown是一种轻量级标记语言,由约翰·格鲁伯(John Gruber)创立。它允许人们使用易读易写的纯文本格式编写文档,并将其转换为有效的XHTML(或HTML)文档。Markdown吸收了电子邮件中已有的纯文本标记的特性。由于其轻量化和易读易写的特点,以及对图片、图表和数学式的支持,许多网站广泛使用Markdown来编写帮助文档或在论坛上发布消息。一些使用Markdown的知名网站包括GitHub、Reddit、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(最初)、Python和Ruby中实现的Markdown。它添加了普通Markdown语法不具备的功能。内容管理系统支持Markdown Extra,例如Drupal,TYPO3和MediaWiki。
它为Markdown添加了以下功能:
语法
Markdown是一种简单的格式化文本的方法,在任何设备上看起来都很棒。它不会做任何花哨的事情,比如改变字体大小、颜色或类型——只是基本的,使用你已经知道的键盘符号。
常用语法
LaTex公式
Markdown亦可用于编辑LaTex公式,可跨平台编辑、跨环境显示。