Markdown:修订间差异
第153行: | 第153行: | ||
| url = http://drupal.org/project/markdown |
| url = http://drupal.org/project/markdown |
||
}}</ref>,始创于2008年。截止2011年11月,已有8000个建站软件使用了该插件。 |
}}</ref>,始创于2008年。截止2011年11月,已有8000个建站软件使用了该插件。 |
||
* [[ |
* [[Ghost (博客程序)|Ghost]] 使用Markdown的一个标准版本编辑器来格式化撰写的文章。<ref>{{Cite web |
||
| title = Markdown Guide - Ghost Support |
| title = Markdown Guide - Ghost Support |
||
| accessdate = 2015-03-29 |
| accessdate = 2015-03-29 |
2015年4月4日 (六) 02:06的版本
此條目包含指南或教學內容。 (2014年9月5日) |
此條目包含過多行話或專業術語,可能需要簡化或提出進一步解釋。 (2014年1月8日) |
Markdown 是一种轻量级标记语言,创始人为約翰·格魯伯(John Gruber)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的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标签中。
图片
![Foo](http://www.markdown.com/example.png)
换行
在文本中输入的换行会从最终生成的结果中删除,浏览器会根据可用空间自动换行。如果想强迫换行,可以在行尾插入至少两个空格。
强调
*强调* 或者 _强调_ (示例:斜体) **加重强调** 或者 __加重强调__ (示例:粗体) ***特别强调*** 或者 ___特别强调___ (示例:粗斜体)
代码
要在Markdown中插入代码,你有两种选择。 一种是把代码用反引号(`)(键盘上Esc键下面的键)包起,例如:
夹杂着`一些代码`的文字内容,
又或者以制表符或至少四个空格缩进的行,例如:
第一行代码 第二行代码 第三行代码
后面一种用法会让Markdown保留所有的空白字符——而与之相反,一般情况下,Markdown会删除所有换行和空格,打乱原有的缩进和排版。
·文字&其它·
·头像·
·网名·
·生活·
标题
可以在标题内容前输入特定数量的井号('#')来实现对应级别的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],始创于2008年。截止2011年11月,已有8000个建站软件使用了该插件。
- Ghost 使用Markdown的一个标准版本编辑器来格式化撰写的文章。[8]
- GitHub 使用Markdown的一个分支版本来格式化评论、消息以及其它内容。[9][10] John Gruber has described this dialect as a "superior variant" for "situations like user-submitted comments".[11]
- G+ Tweaks v1.1151,一个适用于 Google+ 的 Greasemonkey 用户脚本。[12]
- Instiki uses a Markdown extension to wiki syntax. The extended syntax is called Maruku.[13]
- Moodle 提供 Markdown 作为语法标记语言。[14]
- Posterous 提供 Markdown 作为语法标记语言。[15]
- Reddit 的编辑器使用了 Markdown 语法。[16]
- Showoff 使用 Markdown 作为提交的语法。[17]
- Squarespace 在博客界面下提供 Markdown 编辑器。[18]
- Stack Overflow 以及其他 Stack Exchange Network 网站使用一种 Markdown 的分支作为它的文章格式化系统。[19][20]
- Tumblr 允许在文章中使用 Markdown。[21]
- Typecho 原生支持Markdown编辑器,实时预览. [22]
- The WordPress plugin system utilizes a dialect of Markdown in "readme.txt" files submitted by developers, and has plugins for Markdown.[23]
- Second Gear's Elements app for iPhone and iPad gained Markdown capability with its v2 around November of 2010.[24]
- 图灵社区 使用markdown语法供用户写作电子书.
- 简书 写作网站,支持 Markdown
- 为知笔记 是一种类似 印象笔记 的笔记软件,支持使用Markdown语法编辑笔记
编辑器
作为一种小型标记语言,Markdown很容易阅读,也很容易用普通的文本编辑器编辑。另外也有一些编辑器专为Markdown设计,可以直接预览文档的样式。下面有一些编辑器可供参考:
- Cmd Markdown Cmd Markdown 编辑阅读器,支持实时同步预览,区分写作和阅读模式,支持在线存储,分享文稿网址。
- Dillinger.io 一个在线Markdown编辑器,提供实时预览以及到 GitHub 和 Dropbox 的拓展连接。
- notepag 另一个在线Markdown编辑器,支持实时预览,提供临时网址和和密码,可以分享给其他人。
- 简书 一个在线Markdown编辑器与阅读社区,支持实时预览,提供分享网址。
- Mou 一个Mac OS X上的Markdown编辑器。
- MacDown OS X 上的 Markdown 开源编辑器,作者称其深受 Mou 启发。
- MarkdownPad Windows上的全功能Markdown编辑器。
- WMD a Javascript "WYSIWYM" editor for Markdown (from AttackLab)
- PageDown 一个Javascript写的 "WYSIWYM"(所见即所得)Markdown编辑器 (来自 StackOverflow)
- IPython Notebook 以IPython为后台,利用浏览器做IDE,支持Markdown与LaTex公式。
实现版本
由于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)
Ruby
- kramdown yet-another-markdown-parser but fast, pure Ruby, using a strict syntax definition and supporting several common extensions.
- Redcarpet The safe Markdown parser, reloaded.
- BlueCloth A Ruby implementation of Markdown
- RDiscount Discount (For Ruby) Implementation of John Gruber's Markdown
- Maruku A pure-Ruby Markdown-superset interpreter
其它
- 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
- 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].
- ^ Markdown Guide - Ghost Support. [2015-03-29].
- ^ 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]. (原始内容存档于2013-04-27).
- ^ 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].
- ^ Typecho 0.9 正式版发布. [2013-12-10].
- ^ WordPress Plugins. [2011-02-14].
- ^ Second Gear's Elements App v2. [2010-11-03].