MarkDown一些笔记

MarkDown语法

这里的内容来自对MarkDown BaseMarkDown Syntax的翻译。所有MarkDown不包含的语法,都可以直接使用HTML自己的标记。唯一的限制就是HTML中的块元素,如:<div><table><pre><p>等,必须和周围的内容用空行分开,并且这些块的开始和结束不能缩进。注意:不能在HTML块中使用MarkDown风格的标记。对于MarkDown有的语法也可以直接用HTML标签来代替。MarkDown不会处理代码(code)和HTML块中的MarkDown语法。

段、标题、块引用 强调 列表 链接 图象 代码 其它

段、标题、块引用

段(paragraph)就是一行或多行连续的文字,这些文字由一个或多个空行将它们与其它内容分开。MarkDown支持硬换行(hard wrap),若要在一段内加入一<br />标签,只需在一行的结尾加入两个或多个空格,再按下回车键。
MarkDown提供两种方法来标记标题(header):Setext和atx。Setex风格是以=-做下划线来分别得到一级、二级标题:

 这是一级标题
 ===

 这是二级标题
 ------

=-的数目无关紧要。atx风格则由#做一行的开头引出标题,#的数目对应标题的等级(1~6个#分别对应1~6级标题):

 # 一级标题 #
 ## 二级标题 ##
 .
 .
 .
 ###### 六级标题 ###

标题后面可以跟上任意数目的#号(为了好看,可以跟上与标题等级对应数目的#)。
块引用(blockquote)由>来指示,块引用中可以包含块引用、标题、列表以及代码块。

>引用  
>下面是一些代码
>
>     代码
>
>下面是一些块引用
>>引用中的引用
>   

强调

MarkDown用一对*_以及一对**__来表示强调:

 *<em>强调*
 _<em>强调_
 **<strong>强调**
 __<strong>强调__

*_与要强调的内容间不要有空格。

列表

无序列表(unordered list)由单个*+-引导:

 * 无序表
 + 无序表
 - 无序表

有序列表(ordered list)由数字加.来引导。该数字并不影响列表最后的排序:

 3. 有序表
 1. 有序表

列表的引导符号前最多有3个空格,引导符号后至少要有一个空格或tab。一个表项(list item)中可能会有多个段落,每一个后续的段落的开始要缩进4个空格或1个tab。要在表项中引入块引用,>必须缩进。我这里测试中文表项好像有问题将markdown引擎设为kramdown后就可以了,只是atx风格的标记标题时,若要手动指定header ID就不能在标题后面加上#的样子可在标题的下一行用{: #id}来设置标题的id

MarkDown支持两种风格创建链接:行间(inline)风格和引用(reference)风格。
行间风格由[]将链接文本括起,后面跟着()()中放着链接的地址或地址加title属性:

 [链接文本](地址)
 [链接文本](地址  "title属性")

引用风格可通过名字引用链接,链接的名字在别处定义。链接名可以包含字母、数字、空格,并不区分字母的大小写:

[链接文本][链接名字]

链接名字定义为[]括起链接名后紧跟一:,然后是空格加链接地址:

[链接文本]:  地址   "title属性"
[链接文本]:  地址   (title属性)
[链接文本]:  <地址>  "title属性"

链接的地址可以使用相对路径,链接名的定义可以任意位置。

图像

图像的语法和链接的类似,只是在比链接多一!放在链接文本[]的前面:

![图像替代文字](图像地址 "可选的title属性")
![图像替代文字][图像id]

图像id的定义和链接名的定义是一样的:

[图像id]: 图像地址  "可选的title属性"

MarkDown中不能指定图像的宽、高,要想指定就要用HTML的<img>标签。

代码

代码可放在一对`之间,在代码中&和尖括号<>都被解释为HTML实体。若代码中包含`,可将代码放在一对 ` ` 中:

`` 含有 ` 的代码 ``

要使用代码块,只需将代码的每一行缩进至少4个空格或1个tab就可以了。 注意:代码块其实会转成两个HTML标签:<pre><code>,所以代码块要用空行和周围内容分开。

其它

水平线可由三个或多个*-放在一行来形成。*-间可有空格。
MarkDown中可由\引出转义字符,可被转义的字符有:

  \ ` * _ {} [] () # + - . !
Qing Fan 17 May 2012
blog comments powered by Disqus