Markdown 语法学习分享

文章之前

最近想用简书写点东西,发现Markdown挺有意思的,于是结合朋友分享的,和自己查找的一些资料,把Markdown的一些简单的语法记录在此。
Markdown 和 Html 有些相近,但它的语法种类很少,只对应 HTML 标记的一小部分。


特殊符号

在HTML文件中,有两个字符需要特殊处理:&和<,但是在Markdown,你可以自然地书写,它会自动转换。如果你使用的 & 字符是 HTML 字符实体的一部分,它会保留原状,如版权符号 © (<code>&copy;</code>)否则它会被转换成<code> &amp;</code>。
类似的情况也会发生在 “<” 上,如果你写 “4<5",Markdown 会自动转换成 <code>4 &lt;5</code>。但是如果把 < 符号作为 HTML 标签的定界符使用,Markdown 不会对它做任何转换。


区块元素

段落和换行

一个 Markdown 段落前后要有一个以上的空行,若某一行只包含空格和制表符,则该行也会被视为空行,Markdown 会把每个换行符都转成<br /> 标签。
普通段落不该用空格或制表符来缩进,如果你<u>确实</u>想要依赖 Markdown 插入 <br /> 标签的话,在插入处先按入两个以上的空格然后回车。

标题

Markdown 支持两种标题的语法
第一种是是用底线的形式,利用=(最高阶标题)和 -(第二阶标题),例如:
<pre>
这是一级标题 H1
=============
这是二级标题 H2


</pre>

任何数量的 = 和 - 都可以有效果。
另一种则是在行首插入 1 到 6 个 # ,对应到标题 1 到 6 阶,例如:
<pre>

这是 H1

这是 H2

这是 H6

</pre>

你可以选择性地「闭合」标题,这纯粹只是美观用的,而行尾的 # 数量也不用和开头一样(行首的井字符数量决定标题的阶数):
<pre>

这是 H1

这是 H2

这是 H3

</pre>

区块引用 Blockquotes

在 Markdown 文件中建立一个区块引用,只需在每行的最前面加上>

> 巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。
> 这纯粹只是美观用的,
> 巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。
>
> 巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉,
> 只需在每行的最前面加上 ">"

当然你也可以只在整个段落的第一行最前面加上 > :

> 巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。
这纯粹只是美观用的,
巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。

> 巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。
巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。

区块引用可以嵌套(例如:引用内的引用),只要根据层次加上不同数量的>

> 巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。

>>这纯粹只是美观用的,
> 巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。

引用的区块内也可以使用其他的 Markdown 语法,包括标题、列表、代码区块等:

这是一个标题。

> ###### 这是一个标题。

  1. 这是第一行列表项。
  2. 这是第二行列表项。
    >
    > 给出一些例子代码:
    >
    > return shell_exec("echo $input | $markdown_script");

列表

Markdown 支持有序列表和无序列表。
无序列表使用星号、加号或是减号作为列表标记:

*    RED
*    GREEN
*    BLUE

等同于:

+    RED
+    GREEN
+    BLUE

也等同于:

-    RED
-    GREEN
-    BLUE

有序列表则使用数字接着一个英文句点:

1.    RED
2.    GREEN
3.    BLUE
Ps:列表标记上使用的数字并不影响输出的HTML结果:

即可以写成

1.    RED
3.    GREEN
5.    BLUE

也可以写成:

1.    RED
1.    GREEN
1.    BLUE

如果列表项目间用空行分开,在输出 HTML 时 Markdown 就会将项目内容用< p > 标签包起来,举例来说:
* RED

*    BLUE

会被转换为:

<ul>
<li><p>RED</p></li>
<li><p>BLUE</p></li>
</ul>

如果要在列表项目内放进引用,那>就需要缩进:

*  一个列表包含一个引用区块
    > 这是一个引用区块
    > 在这个列表里

如果要放代码区块的话,该区块就需要缩进两次,也就是 8 个空格或是 2 个制表符:
* 一个列表包含一个代码区块
<代码写在这里>

有时候会不小心就产生了一个项目列表,像是下面这样的写法:
1986. What a great season.
即在行首出现<u>数字-句点-空白</u>,要避免这样的情况,可以在句点前面加上反斜杠。

  1986\. What a great season.

代码区块

要在 Markdown 中建立代码区块很简单,只要简单地缩进 4 个空格或是 1 个制表符就可以,例如:

这是一个普通段落:

      这是一个代码区块。

Markdown 会转换成:

<p>这是一个普通段落:</p>

<pre><code>这是一个代码区块。
</code></pre>

一个代码区块会一直持续到没有缩进的那一行(或是文件结尾)。
在代码区块里面, & 、 < 和 > 会自动转成 HTML 实体,只需要将HTML代码复制贴上,再加上缩进就可以了,Markdown 会自动转换,非常简便。

分隔线

你可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。下面每种写法都可以建立分隔线:
* * *
***
*****
- - -
---------------------------------------


区段元素

链接

Markdown 支持两种形式的链接语法: 行内式和参考式两种形式。不管是哪一种,链接文字都是用 [方括号] 来标记。
行内式的链接,只要在方块括号后面紧接着圆括号并插入网址链接即可,如果你还想要加上链接的 title 文字,只要在网址后面,用双引号把 title 文字包起来即可,例如:

这是 [一个有title的链接](http://example.com/ "Title") 例子.
[这个链接](http://example.net/) 没有标题属性.

Markdown 会自动转换为:

<p>这是 <a href="http://example.com/" title="Title">一个有title的链接</a>例子</p>

<p><a href="http://example.net/">这个链接</a> 没有title属性.</p>

也可以使用相对路径

这是 [相对路径](/about/) 链接。

参考式的链接是在链接文字的括号后面再接上另一个方括号,而在第二个方括号里面要填入用以辨识链接的标记(两个方括号中间可以加上一个空格或者不加,最多三个空格):

这是一个参考式的 [链接][id] 例子.

然后,你可以在文件的任意地方,把这个标记的链接内容定义出来:
[id]: http://example.com/ "Optional Title Here"
链接内容定义的形式为:

  • 方括号,里面输入链接文字
  • 接着一个冒号
  • 接着一个以上的空格或制表符
  • 接着链接的网址
  • 选择性地接着 title 内容,可以用单引号、双引号或是圆括号包着

下面这三种链接的定义都是相同:
[foo]: http://example.com/ "Optional Title Here"
[foo]: http://example.com/ 'Optional Title Here'
[foo]: http://example.com/ (Optional Title Here)
注意:Markdown.pl 1.0.1 会忽略单引号包起来的链接 title。
链接网址也可以用方括号包起来:
[id]: http://example.com/ "Optional Title Here"
也可以把 title 属性放到下一行,也可以加一些缩进,若网址太长的话,这样会比较好看:
[id]:http://example.com/longish/path/to/resource/here
"Optional Title Here"
网址定义只有在产生链接的时候用到,并不会直接出现在文件之中。
链接辨别标签可以有字母、数字、空白和标点符号,但是并不区分大小写,因此下面两个链接是一样的:

[link text][a]
[link text][A]

隐式链接标记功能让你可以省略指定链接标记,这种情形下,链接标记会视为等同于链接文字,要用隐式链接标记只要在链接文字后面加上一个空的方括号,如果你要让 "Google" 链接到 google.com,你可以简化成:

[Google][]

然后定义链接内容:
[Google]: http://google.com/

强调

Markdown 使用星号(*)和底线(_)作为标记强调字词的符号,被*_包围的字词会被转成用 <em>标签包围,用两个*_包起来的话,则会被转成 <strong>,例如:

*single asterisks*

_single underscores_

**double asterisks**

__double underscores__

会转成:

<em>single asterisks</em>

<em>single underscores</em>

<strong>double asterisks</strong>

<strong>double underscores</strong>

但是如果*_ 两边都有空白的话,它们就只会被当成普通的符号。

如果要在文字前后直接插入普通的星号或底线,你可以用反斜线:

\*this text is surrounded by literal asterisks\*

代码

如果要标记一小段行内代码,你可以用反引号把它包起来(`),例如:

Use the `printf()` function.

Markdown 会转换为:

<p>Use the <code>printf()</code> function.</p>

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

``There is a literal backtick (`) here.``

在代码区段内,& 和方括号都会被自动地转成 HTML 实体,这使得插入 HTML 原始码变得很容易,Markdown 会把下面这段:

Please don't use any `<blink>` tags.

转为:

<p>Please don't use any <code><blink> </code> tags.</p>

图片

Markdown 使用一种和链接很相似的语法来标记图片,同样也允许两种样式: 行内式和参考式。

行内式的图片语法:

![](/path/to/img.jpg)

![](/path/to/img.jpg "Optional title")

写法说明:

  • 一个惊叹号 !
  • 接着一个方括号,里面放上图片的替代文字
  • 接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上 选择性的 'title' 文字。

参考式的图片语法:

![Alt text][id]

「id」是图片参考的名称,图片参考的定义方式则和链接参考一样:

[id]: url/to/image  "Optional title attribute"

到目前为止, Markdown 还没有办法指定图片的宽高,如果需要的话,可以使用普通的 <img>标签。

反斜杠

Markdown 可以利用反斜杠来插入一些在语法中有其它意义的符号。

  \*literal asterisks\*

Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339

推荐阅读更多精彩内容