Markdown 的基本语法

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。 —— [ 维基百科 ]

由于排版简单、格式转换方便等优点,Markdown 变得越来越流行。支持 Markdown 的编辑器也越来越多,这些编辑器大多扩展了 Markdown 的功能,如表格、脚注、内嵌 HTML 等,导致其功能不完全一致。但是,Markdown 本身的语法种类很少,只对应 HTML 标记的一小部分,这些基本语法是通用的。接下来本文就介绍一下这些基本语法。

段落和换行

一个 Markdown 段落是由一个或多个连续的文本行组成,它的前后要有一个及以上的空行。

段落1

段落2     // 段落2和段落1之间有一个空行

段落3     // 段落3和段落2之间有一个空行

相对应的 HTML 为

<p>段落1</p><p>段落2</p><p>段落3</p>

“由一个或多个连续的文本行组成”这句话其实暗示了 Markdown 允许段落内的强迫换行。但是,在文本中输入的换行会从最终生成的结果中删除,浏览器会根据可用空间自动换行。如果想强迫换行,需要在行尾插入至少两个空格,然后换行。

段落4第一行  
段落4第二行      // 第一行行尾有两个空格

相对应的 HTML 为

<p>段落4第一行<br>段落4第二行</p>

分隔线

可以在一行中用三个及以上的 *-_ 来建立一个分隔线,对应 HTML 中的 <hr>

***
---
___

标题

可以在标题内容前输入特定数量的 # 来实现对应级别的 HTML 样式的标题。

# 一级标题          // => <h1>一级标题</h1>
## 二级标题         // => <h2>二级标题</h2>
### 三级标题        // => <h3>三级标题</h3>
#### 四级标题       // => <h4>四级标题</h4>
##### 五级标题      // => <h5>五级标题</h5>
###### 六级标题     // => <h6>六级标题</h6>

一级和二级标题还有一种写法。

一级标题
=======     // 文本的下面一行为任意数量个“=”
二级标题
-------     // 文本的下面一行为任意数量个“-”

列表

Markdown 支持有序列表和无序列表。无序列表使用 *+ 或是 - 作为列表标记。有序列表使用任意一个数字接一个英文句点作为列表标记。注意使用时列表标记后要加至少一个空格或制表符。

* 无序列表项1
* 无序列表项2
* 无序列表项3        // 一个无序列表只能使用一种列表标记,不然就会输出多个无序列表

1. 有序列表项1
2. 有序列表项2
3. 有序列表项3       // 列表标记上使用的数字不会影响输出结果,不信你全部改成0试试

相对应的 HTML 为

<ul><li>无序列表项1</li><li>无序列表项2</li><li>无序列表项3</li></ul>
<ol><li>有序列表项1</li><li>有序列表项2</li><li>有序列表项3</li></ol>

如果列表项之间有一个及以上的空行,Markdown 会将列表项用 <p> 标签包起来。

* 列表项1
* 列表项2

* 列表项3      // 列表项3和列表项2之间有一个空行

相对应的 HTML 为

<ul><li>列表项1</li><li><p>列表项2</p></li><li><p>列表项3</p></li></ul>

区块引用

Markdown 标记区块引用只需要在被引用的内容段落开头加上 > 即可。你可以选择只在段落开头加一个,也可以在每行前面都加一个,效果是一样的。

> 引用段落第一行
引用段落第二行

或者

> 引用段落第一行
> 引用段落第二行

相对应的 HTML 为

<blockquote><p>引用段落第一行<br>引用段落第二行</p></blockquote>

区块引用可以嵌套。根据层次加上不同数量的 > 或者使用其他的 Markdown 语法,例如:

> > 第二层引用
> # 一级标题
> - 列表项1
> - 列表项2

链接和图片

正常链接有两种书写方式,分别叫做行内链接和参考链接,当然效果是一样的。

[链接文本](链接地址 "提示信息")

或者

[链接文本][标记]
[标记]: 链接地址 "提示信息"       // 这一行可以写在文档的任意地方

相对应的HTML为

<a href="链接地址" title="提示信息">链接文本</a>

另外,用尖括号包起来的内容会被 Markdown 视为自动链接。

<https://www.csdn.net/>     // => <a href="https://www.csdn.net/">https://www.csdn.net/</a>

图片的插入方法类似于正常链接,在 ! 后面接一个方括号,里面放上图片的替代文字,然后接一个括号,里面是图片地址和提示信息。同样它也允许用参考式书写。

![替代文本](图片地址 "提示信息")

或者

![替代文本][标记]
[标记]: 图片地址 "提示信息"       // 这一行可以写在文档的任意地方

相对应的 HTML 为

<img src="图片地址" alt="替代文本" title="提示信息">

代码

要在 Markdown 中建立代码区块很简单,只要简单地缩进 1 个制表符就可以。一个代码区块会一直持续到没有缩进的那一行。

    function sayHello () {
        return 'Hello'
    }

相对应的 HTML 为

<pre>
    <code>function sayHello () {
        return 'Hello'
    }</code>
</pre>

如果要标记一小段行内代码,你可以用 ` 把它包起来

`printf()`      // => <code>printf()</code>

如果要在代码区段内插入`,你可以用多个`来开启和结束代码区段

``(`)``             // => <code>(`)</code>
`` ` ``             // => <code>`</code>
`` `printf()` ``    // => <code>`printf()`</code>

强调文本

Markdown 使用 *_ 作为标记强调文本的符号,被 *_ 包围的本文会被转成用 <em> 标签包围,用两个 *_ 包起来的话,则会被转成 <strong>

*强调文本*          // => <em>强调文本</em>
_强调文本_          // => <em>强调文本</em>
**强调文本**        // => <strong>强调文本</strong>
__强调文本__        // => <strong>强调文本</strong>

转义字符

如果你想在 Markdown 中插入一些在语法中有其它意义的字符,就需要对这些字符转义。例如:

&#35; 这不是标题
\# 这不是标题
&#45; 这不是列表
\- 这不是列表
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章