Markdown
Markdown 是一种轻量级标记语言,创始人为約翰·格魯伯(John Gruber)和亞倫·斯沃茨(Aaron Swartz)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。[1]这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。
Markdown同时还是一个由Gruber编写的Perl脚本:Markdown.pl。它把用markdown语法编写的内容转换成有效的、结构良好的XHTML或HTML内容,并将左尖括号('<')和&号替换成它们各自的字符实体引用。它可以用作单独的脚本,Blosxom和Movable Type的插件又或者BBEdit的文本过滤器.[1]
Markdown也已经被其他人用Perl和别的编程语言重新实现,其中一个Perl模块放在了CPAN(Text::Markdown)上。它基于一个BSD风格的许可证分发并可以作为几个内容管理系统的插件。[2][3]
目录 |
语法示例 [编辑]
这并不是一个详尽的语法介绍, 而且在多数情况下,对于同一个效果,会有不止一种实现的语法。请查看完整的Markdown语法获取更详细的信息。Markdown中一些特定的字符会被解析为格式化命令,但如果添加一个反斜杠('\')在那些有特殊意义的字符前面,那么字符将被理解为字面意义。举个例子,字符组合'\*'会作为一个星号输出,而不是理解为一个强调区段的开始。Markdown也不会转换任何放在区块级XHTML元素中的内容,因此在Markdown文档中可以把一段XHTML代码放置在区块级的XHTML标签中。
段落 [编辑]
一个段落是由一个或多个连续的行构成,段落间靠一个或以上视觉上的空行划分。一般的段落不应该用空格或制表符缩进。
这是一个段落。它有两个句子。 这是另一个段落。它也有 两个句子。
图片 [编辑]

换行 [编辑]
在文本中输入的换行会从最终生成的结果中删除,浏览器会根据可用空间自动换行。如果想强迫换行,可以在行尾插入至少两个空格。
强调 [编辑]
*强调* 或者 _强调_ (示例:斜体)
**加重强调** 或者 __加重强调__ (示例:粗体)
***特别强调*** 或者 ___特别强调___ (示例:粗斜体)
代码 [编辑]
要在Markdown中插入代码,你有两种选择。 一种是把代码用反引号(`)(键盘上Esc键下面的键)包起,例如:
夹杂着`一些代码`的文字内容,
又或者以制表符或至少四个空格缩进的行,例如:
第一行代码
第二行代码
第三行代码
后面一种用法会让Markdown保留所有的空白字符——而与之相反,一般情况下,Markdown会删除所有换行和空格,打乱原有的缩进和排版。
列表 [编辑]
* 无序(没有编号的)列表中的一项
* 一个子项,要以一个制表符或者4个空格缩进
* 无序列表中的另一个项
1. 有序(排好序,有编号的)列表中的一项 - 有序列表中的另一个项
标题 [编辑]
可以在标题内容前输入特定数量的井号('#')来实现对应级别的HTML样式的标题(HTML提供六级标题)。例如:
# 一级标题
#### 四级标题
一级和二级标题还有一种写法:
一级标题 =================== 二级标题 --------------------
断行 [编辑]
如果你真的想在Markdown中插入换行标签<br/>,你可以在行尾输入两个或以上的空格,然后回车。 这样插入换行十分麻烦,但是“每个换行都转换为<br/>”在 Markdown中并不合适,所以只在你确定你需要时手动添加。
引用 [编辑]
引用只需要在被引用的内容段落开头加上右尖括号('>')即可。你可以选择只在开头加一个。也可以在每行前面都加一个,效果是一样的。
> 这一整段的内容都会作为一个HTML的引用元素。 引用元素是会自动优化排版的(reflowable,可回流)。 你可以任意地将引用的内容包含进来,然后所有这些都会 被解析成为单独一个引用元素。
上述内容会转换成以下HTML内容:
<blockquote><p>这一整段的内容都会作为一个HTML的引用元素。引用元素是会自动优化排版的(reflowable,可回流)。 你可以任意地将引用的内容包含进来,然后所有这些都会被解析成为单独一个引用元素。</p></blockquote>
引用可以嵌套。如果要在一个引用里插入一个引用,可以用两个('>')开头。依此类推,根据嵌套层次加相应数量的符号。
> 这是一个引用。这是第一行
这是第二行。
>> 这是一个嵌套的引用。这是第一行。
这是第二行
>
> 外层引用的第三行。前面需要一个视觉上的空行表示内层嵌套的结束,空行前面的('>')可以有可以没有。
链接 [编辑]
链接可以在行内插入:
[链接文字](链接地址) 例子: [Markdown](http://zh.wikipedia.com/wiki/Markdown)
另一种选择是,链接地址可以放在段落后面的脚注,前面放上链接引用标签区分。举例说,先在内容行内插入以下内容:
[链接文字][链接引用标签]
然后在段落的后面(或者文档的结尾)放上以下内容,就可以生成一个链接:
[链接引用标签]: 链接地址 "链接标题"
水平分割线 [编辑]
要生成水平分割线,可以在单独一行里输入3个或以上的短横线、星号或者下划线实现。短横线和星号之间可以输入任意空格。以下每一行都产生一条水平分割线。
* * * *** ***** - - - ---------------------------------------
Markdown的用户 [编辑]
- Apollo 使用Markdown格式化[4]
- Bitbucket 提供Markdown作为编写项目README文档的其中一种标记语言。[5]
- DIASPORA* 使用Markdown格式化用户发送的消息、评论和对话。[6]
- Drupal 有一个Markdown插件[7], initiated in 2008. As of November 2011 it is in use on over 8000 Drupal sites world-wide.
- GitHub 使用Markdown的一个方言版本来格式化评论、消息以及其它内容。[8][9] John Gruber has described this dialect as a "superior variant" for "situations like user-submitted comments".[10]
- G+ Tweaks v1.1151, 一个往Google社交网站G+添加功能的 Greasemonkey 用户脚本。[11]
- Instiki uses a Markdown extension to wiki syntax. The extended syntax is called Maruku.[12]
- Moodle offers Markdown as a markup option.[13]
- Posterous offers Markdown as a markup option.[14]
- Reddit uses Markdown.[15]
- Showoff uses Markdown to format slides of a presentation.[16]
- Squarespace offers Markdown as a blog entry option.[17]
- Stack Overflow and other Stack Exchange Network sites use a modified dialect of Markdown as its default formatting system.[18][19]
- Tumblr allows Markdown edits to posts.[20]
- The WordPress plugin system utilizes a dialect of Markdown in "readme.txt" files submitted by developers, and has plugins for Markdown.[21]
- Second Gear's Elements app for iPhone and iPad gained Markdown capability with its v2 around November of 2010.[22]
- 图灵社区 使用markdown语法供用户写作电子书.
编辑器 [编辑]
作为一种小型标记语言,Markdown很容易阅读,也很容易用普通的文本编辑器编辑。另外也有一些编辑器专为Markdown设计,可以直接预览文档的样式。下面有一些编辑器可供参考:
- Dillinger.io 一个在线Markdown编辑器,提供实时预览以及到 GitHub 和 Dropbox 的拓展连接。
- notepag 另一个在线Markdown编辑器,支持实时预览,提供临时网址和和密码,可以分享给其他人。
- Mou, 一个Mac OS X上的Markdown编辑器。
- MarkdownPad, a full-featured Markdown editor for Windows.
- WMD, a Javascript "WYSIWYM" editor for Markdown (from AttackLab)
- PageDown, 一个Javascript写的 "WYSIWYM"(所见即所得)Markdown编辑器 (来自 StackOverflow)
- 码德编辑器 一个国人开发的基于C#的Markdown编辑器
实现版本 [编辑]
由于Markdown的易读易写,很多人用不同的编程语言实现了多个版本的解析器和生成器。下面是一个按编程语言排序的实现列表。
C [编辑]
- Sundown, 一个用C写的Markdown实现。
- Discount, 一个Markdown标记语言的C语言实现版本。
- peg-markdown, 一个用C写的,使用了PEG (parsing expression grammar)的Markdown实现。
Java [编辑]
- MarkdownJ the pure Java port of Markdown.
- pegdown, a pure-Java Markdown implementation based on a PEG parser
- MarkdownPapers, Java implementation based on a JavaCC parser
- Txtmark, another Markdown implementation written in Java
Lua [编辑]
- markdown.lua, a Markdown implementation in Lua
- Lunamark, a markdown to HTML and LaTeX converter written in Lua, using a PEG grammar
PHP [编辑]
- PHP Markdown and Markdown Extra
- Markdown Viewer for PHP, allows the viewing of a Mardown doc via a local PHP server (a wrapper for PHP Markdown)
其它 [编辑]
- MarkdownSharp, a slightly modified C# implementation of the Markdown markup language. Developed and used by Stack Overflow.
- uedit, a Javascript "WYSIWYM" editor for Markdown
- Markdownr.com, a simple website to preview markdown in real time
- BlueCloth, an implementation of Markdown in Ruby
- Knockoff, a Markdown implementation written in Scala using Parser Combinators
- Actuarius, another Markdown implementation written in Scala using Parser Combinators
- Pandoc, a universal document converter written in Haskell
- Markdown in Python, A Python implementation of Markdown
- ReText, an implementation for Markdown and reStructuredText.
- Blackfriday, another Markdown implementation written in Go
- Misaka, a Python binding for Sundown.
参见 [编辑]
注释 [编辑]
- ^ 1.0 1.1 Markdown 1.0.1 readme source code Daring Fireball - Markdown. 17-Dec-2004.
- ^ MarsEdit 2.3 ties the knot with Tumblr support - Ars Technica. [2009-08-11].
- ^ Review: Practical Django Projects - Ars Technica. [2009-08-11].
- ^ Writeboards support in Apollo!. [2011-11-21].
- ^ Displaying README Text on your Bitbucket Source Tab. [2010-10-01].
- ^ Formatting Text - Diasporial. [2011-11-09].
- ^ Markdown add-on for Drupal. [2011-11-15].
- ^ Making GitHub More Open: Git-backed Wikis - GitHub. [2010-09-01].
- ^ GitHub Flavored Markdown - Introduction. [2011-01-03].
- ^ Daring Fireball Linked List: GitHub Flavored Markdown. [2011-01-03].
- ^ G+ Tweaks v1.1151. [2011-11-08].
- ^ Markup Choices in Instiki. [2010-08-24].
- ^ Formatting text - MoodleDocs. [2012-03-13].
- ^ Markdown - Posterous Help. [2010-06-26].
- ^ Reddit's help document on Markdown. [2010-07-20].
- ^ Showoff project on GitHub. [2011-10-24].
- ^ Squarespace Mini-Reference. [2010-09-30].
- ^ Markdown Editing Help - Stack Overflow. [2010-04-29].
- ^ Three Markdown Gotchas - Blog – Stack Overflow. [2010-04-29].
- ^ Tumblr Preferences. [2011-01-03].
- ^ WordPress Plugins. [2011-02-14].
- ^ Second Gear's Elements App v2. [2010-11-03].
外部链接 [编辑]
- Markdown 語法說明
- 为什么Markdown+R有较大概率成为科技写作主流?
- Official Markdown project at Daring Fireball
- Markdown Wiki
- Introduction to Markdown (tutorial)
- Older Markdown Wiki
- MultiMarkdown (引入更多标记特性和输出选项的改进版Markdown)
- Markdown 工具补完. 小众软件.
- Markdown在线编辑工具. Mahua.