Markdown:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
Haku1998留言 | 贡献
Haku1998留言 | 贡献
第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
* [[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的版本

Markdown 是一种轻量级标记语言,创始人为約翰·格魯伯(John Gruber)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。[1]这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。

Markdown同时还是一个由Gruber编写的Perl脚本:Markdown.pl。它把用markdown语法编写的内容转换成有效的、结构良好的XHTML或HTML内容,并将左尖括号('<')和&号替换成它们各自的字符实体引用。它可以用作单独的脚本,BlosxomMovable 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编辑器,提供实时预览以及到 GitHubDropbox 的拓展连接。
  • 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

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

其它

参见

注释

外部链接