Markdown语法基础

Reference:
Mardown语法说明

Markdown的宗旨:Markdown的目标是实现易读易写。可读性无论如何都是最重要的。

与HTML的兼容

Markdown对HTML兼容,Markdown之外的标签可以使用HTML撰写。
需要注意的是HTML区块标签需要在前后加上空行和其他内容隔开,且要求开始和结尾标签不能用制表符(tab)或空格来缩进。
在HTML区块标签间的Markdown格式语法不会被处理,但Markdown语法在HTML区段标签间是有效的,同时HTML区段标签也可以在Markdown段落中直接使用,。

&与<

在Markdown的HTML区段中的如果出现这两个特殊字符,Markdown在转换时会将其自动转换为HTML的实体。


区块元素

链接

Markdown的链接有行内式和参考式两种,行内式易写,参考式易读。

行内式链接

语法为中括号+小括号,中括号中是链接文字,小括号内为链接和title(title在鼠标悬停在链接上显示的提示信息),链接可以为同一主机的相对地址,title用双引号包起来,title可有可无。

链接使用+地址定义:

This is [an example](http://example.com/ "Title") inline link.

参考式链接

语法为中括号+中括号,第二个中括号中为链接的标识,然后在任何位置(一般为文末或者段后)用标记:链接地址+"title"的方式将链接内容定义出来即可,链接标识不区分大小写,可以为空,为空时为隐式标识,即标识为前面中括号中的内容。

链接使用:

This is [an example][id] reference-style link.

地址定义:

[id]: http://example.com/  "Optional Title Here"

强调

Markdown可为段落中的文字加斜体粗体删除线三种方式来进行内容强调。方法是为要强调的文字前后分别加***~~,其中斜体粗体分别会为文字加上<em><strong>标签。


代码

如果要标记一小段的行内代码,可以使用反引号`将其包起来,如果要在代码段中使用反引号,可以使用一个以上的反引号的开始和结束代码段:代码段中有`。行内代码中的&<>同样会被转换为对应的HTML实体。


图片

插入图片和插入连接的语法基本相同,也分为行内式和参考式,区别是插入图片需要在前面加上!,第一个[]中是图片的替代文字,并不会显示。Markdown不支持指定图片宽高,如果有需求可以使用HTML的<img>标签。


区段元素

段落和换行

Markdown的段落由一个或多个连续的文本行组成,一个段落的前后要求各有至少一个的空白行。
Markdown允许段落中换行(插入换行符),并不会把换行符都转换为<br />,连按两个空格再换行,Markdown才会将此换行符转为<br />


标题

Markdown的标题支持Setext(底线)和atx两种形式的标题,但一般使用atx形式,即在行首插入1~6个#,对应1~6阶标题。


区块引用

Markdown使用>标记区块引用,Markdown允许只在段落的首行添加>标记,同时区块引用可以嵌套,添加不同数量>即可,而且在区块内也可以使用Markdown语法。

区块(示例)

三级区块


列表

  1. Markdown的列表可分为有序列表和无序列表。有序列表使用数字接一个英文句点作为标记,数字可以是乱序的(会自动排),但最好保持有序。无序列表使用*,+-作为标记,他们的功能一样,建议在做列表嵌套时使用不同的标记来做区分。第一级的列表标记一般放在最左边,但也可以缩进(最多3个空格,4个空格=一个tab,会被视为嵌套)
  • 注意:如果列表项目间用空行分开,在输出HTML时项目内容将会用<p>标签包起来。
  • 列表的项目下允许有多个段落,每个项目下的段落都必须缩进一个tab。
  • 列表项目中可以嵌套区块引用,需要在区块前加空行,并对区块进行一个tab的缩进,如下:

    嵌套的区块

  • 列表项目中还可以嵌套代码块,代码块需要前面加空行,并进行两个tab的缩进,如下:

    // 这就是代码
    printf("hello, world");
    
  • 列表下也可以嵌套表格

    |左对齐标题 |右对齐标题 |居中对齐标题 |
    |:– |–: |:–: |
    |短文本 |中等文本 |稍微长一点的文本 |
    |稍微长一点的文本|短文本 |中等文本 |

  • 如果一定会在句首出现数字+句点+空白,那么可以在句点前加上反斜杠\

表格

和其他区块一样,表格前也需要有空白行,使用|来区分列,第一行为标题,第二行指明同一列的文字对齐方式:--表示左对齐,--:表示右对齐,:-:表示居中对齐,---表示默认对齐方式,即标题居中内容靠左。表示对齐的符号可以有多个-,但-:加起来要不少于三个。
示例:

左对齐标题 右对齐标题 居中对齐标题
短文本 中等文本 稍微长一点的文本
稍微长一点的文本 短文本 中等文本

代码区块

Markdown中使用一个tab的缩进和一个段落(前后加空行)即可插入代码块,代码块会持续到没有没有缩进的那一行,也可以不使用缩进,而是在代码块的前后加上各加一行三个(或以上)反引号`
在转换的时候,Markdown会将代码用<pre><code>标签包起来,在代码块中,Markdown语法不会被转换,而缩进的制表符也会被移除,同时&<>这种HTML特殊符号也会自动转为HTML实体,例如:

<div class="footer">
    &copy; 2004 Foo Corporation
</div>

分隔线

可以使用三个及以上的*-和减号来建立一个分隔线,分隔线行内不能有其它东西(*-之间可以插入空格),例如:


分隔线还有分隔出单独一段的效果,为了避免直接在文字后加-,而和Setext(底线)标题语法混淆,分隔线前应留一个空白行,或建议使用****


其他

自动链接

Markdown支持用比较简短自动链接形式来处理网址和电子邮箱,只需要用尖括号包起来即可。
如邮箱youxiang@qq.com,网址http://www.baidu.com。值得一提的是邮箱地址的字符会被Markdown转换为对应的16进制码的HTML实体,以防御一些邮箱收集机器人。


反斜杠

Markdown中的语法符号要直接显示而不表示语义的时候,可以在符号前面加\来转义。
对应的符号有:

\   反斜杠
`   反引号
*   星号
_   底线
{}  大括号
[]  中括号
()  小括号
#   井号
+   加号
-   减号
.   英文句点
!   惊叹号

-------------This article is over, thank you for reading -------------