markdown学习笔记

转译:原文链接

介绍

Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(英语:John Gruber)。Markdown是面向Web编写的文本到HTML转换工具。Markdown允许使用易于阅读和编写的纯文本格式进行编写,然后将其转换为结构上有效的XHTML(或HTML)。

基础知识

段落

段落是一个或多个连续的文本行,由一个或多个空行分隔(空行看起来像空白的任何行,仅包含空格或制表符的行被视为空白行)。普通段落不应该以空格或制表符缩进。

标题

Markdown提供了两种标题样式:Setext和atx。对于Setext风格的标题<h1><h2>,使用等号(=)和连字符(-)区分。创建atx样式的标题,则通过在行开头放置1-6个井号(#),井号数量等于HTML标题级别

块引用

块引用使用电子邮件样式的尖括号(>)表示。

Markdown code:
Markdown标题段落块引用示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
A First Level Header
====================

A Second Level Header
---------------------

Now is the time for all good men to come to
the aid of their country. This is just a
regular paragraph.

The quick brown fox jumped over the lazy
dog's back.

### Header 3

> This is a blockquote.
>
> This is the second paragraph in the blockquote.
>
> ## This is an H2 in a blockquote
HTML code:
Markdown标题段落块引用对应HTML代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<h1>A First Level Header</h1>

<h2>A Second Level Header</h2>

<p>Now is the time for all good men to come to
the aid of their country. This is just a
regular paragraph.</p>

<p>The quick brown fox jumped over the lazy
dog's back.</p>

<h3>Header 3</h3>

<blockquote>
<p>This is a blockquote.</p>

<p>This is the second paragraph in the blockquote.</p>

<h2>This is an H2 in a blockquote</h2>
</blockquote>

短语强调

Markdown使用星号(*)和下划线(_)表示强调。

  • 星号(*):对应HTML(< em >),斜体强调标签,更强烈的强调,表示内容的强调点。
  • 下划线(_):对应HTML(< strong >),粗体强调标签,强调,表示内容的重要性。
Markdown code:
Markdown短语强调示例
1
2
3
4
5
Some of these words *are emphasized*.
Some of these words _are emphasized also_.

Use two asterisks for **strong emphasis**.
Or, if you prefer, __use two underscores instead__.
HTML code:
Markdown短语强调对应HTML代码
1
2
3
4
5
<p>Some of these words <em>are emphasized</em>.
Some of these words <em>are emphasized also</em>.</p>

<p>Use two asterisks for <strong>strong emphasis</strong>.
Or, if you prefer, <strong>use two underscores instead</strong>.</p>

列表

列表分为无序列表(项目符号)和有序列表(编号)。

无序列表

无序列表(项目符号)使用星号(*),加号(+)和连字符(-)作为列表标记。

Markdown code:
  • 星号(*):
    Markdown无序列表星号(*)示例
    1
    2
    3
    *   Candy.
    * Gum.
    * Booze.
  • 加号(+):
    Markdown无序列表加号(+)示例
    1
    2
    3
    +   Candy.
    + Gum.
    + Booze.
  • 连字符(-):
    Markdown无序列表连字符(-)示例
    1
    2
    3
    -   Candy.
    - Gum.
    - Booze.

全部输出相同HTML代码:

HTML code:
Markdown短语强调对应HTML代码
1
2
3
4
5
<ul>
<li>Candy.</li>
<li>Gum.</li>
<li>Booze.</li>
</ul>

有序列表

有序列表(编号)使用常规数字后跟句点(.)作为列表标记。

Markdown code:
Markdown有序列表示例
1
2
3
1.  Red
2. Green
3. Blue
HTML code:
Markdown有序列表对应HTML代码
1
2
3
4
5
<ol>
<li>Red</li>
<li>Green</li>
<li>Blue</li>
</ol>

如果在项目间插入空白行,则将获得列表项目段落标签<p>,可以通过将段落缩进4个空格或一个制表符来创建多段落列表项:

Markdown code:
Markdown列表插入空白行示例
1
2
3
4
5
*   A list item.

With multiple paragraphs.

* Another item in the list.
HTML code:
Markdown列表插入空白行对应HTML代码
1
2
3
4
5
<ul>
<li><p>A list item.</p>
<p>With multiple paragraphs.</p></li>
<li><p>Another item in the list.</p></li>
</ul>

链接

Markdown支持两种创建链接的样式:内联样式(inline) 和 引用样式(reference)。对于这两种样式都可以使用方括号([])来界定要转换为链接的文本。

内联样式

内联样式的链接在链接文本后立即使用括号:

Markdown code:
Markdown内联样式链接示例
1
This is an [example link](http://example.com/).
HTML code:
Markdown内联样式链接对应HTML代码
1
2
<p>This is an <a href="http://example.com/">
example link</a>.</p>

(可选)还可以在括号中包括title属性:

Markdown code:
Markdown内联样式链接(包含title属性)示例
1
This is an [example link](http://example.com/ "With a Title").
HTML code:
Markdown内联样式链接(包含title属性)对应HTML代码
1
2
<p>This is an <a href="http://example.com/" title="With a Title">
example link</a>.</p>

引用样式

引用样式的链接可以按名称引用链接,名称是在文档的其他位置定义的:

Markdown code:
Markdown引用样式链接示例
1
2
3
4
5
6
I get 10 times more traffic from [Google][1] than from
[Yahoo][2] or [MSN][3].

[1]: http://google.com/ "Google"
[2]: http://search.yahoo.com/ "Yahoo Search"
[3]: http://search.msn.com/ "MSN Search"
HTML code:
Markdown引用样式链接对应HTML代码
1
2
3
4
<p>I get 10 times more traffic from <a href="http://google.com/"
title="Google">Google</a> than from <a href="http://search.yahoo.com/"
title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/"
title="MSN Search">MSN</a>.</p>

title同样为可选项,链接名称可以包含字母,数字和空格,但不区分大小写:

Markdown code:
Markdown引用样式链接示例
1
2
3
4
I start my morning with a cup of coffee and
[The New York Times][NY Times].

[ny times]: http://www.nytimes.com/
HTML code:
Markdown引用样式链接对应HTML代码
1
2
<p>I start my morning with a cup of coffee and
<a href="http://www.nytimes.com/">The New York Times</a>.</p>

图片

图片语法非常类似链接语法,标题都为可选项,分为内联样式和参考样式:

内联样式

Markdown code:
Markdown内联样式图片示例
1
![alt text](/path/to/img.jpg "Title")

参考样式

Markdown code:
Markdown参考样式图片示例
1
2
3
![alt text][id]

[id]: /path/to/img.jpg "Title"

上述示例产生相同输出:

HTML code:
Markdown引用样式链接对应HTML代码
1
<img src="/path/to/img.jpg" alt="alt text" title="Title" />

代码引用

在常规段落中,可以通过将文本用反引号引起来来创建代码引用。任何 与符号(&)和尖括号(< 或 >)将自动转换为HTML代码。这使得使用Markdown编写HTML示例代码变得容易:

Markdown code:
Markdown代码引用示例
1
2
3
4
I strongly recommend against using any `<blink>` tags.

I wish SmartyPants used named entities like `&mdash;`
instead of decimal-encoded entites like `&#8212;`.
HTML code:
Markdown代码引用对应HTML代码
1
2
3
4
5
6
<p>I strongly recommend against using any
<code>&lt;blink&gt;</code> tags.</p>

<p>I wish SmartyPants used named entities like
<code>&amp;mdash;</code> instead of decimal-encoded
entites like <code>&amp;#8212;</code>.</p>

要指定整个预格式化代码块,请在该块的每一行缩进4个空格或1个制表符。就像使用码引用 与符号(&)和尖括号(< 或 >)将被自动转义。

Markdown code:
Markdown代码引用示例
1
2
3
4
5
6
If you want your page to validate under XHTML 1.0 Strict,
you've got to put paragraph tags in your blockquotes:

<blockquote>
<p>For example.</p>
</blockquote>
HTML code:
Markdown代码引用对应HTML代码
1
2
3
4
5
6
7
<p>If you want your page to validate under XHTML 1.0 Strict,
you've got to put paragraph tags in your blockquotes:</p>

<pre><code>&lt;blockquote&gt;
&lt;p&gt;For example.&lt;/p&gt;
&lt;/blockquote&gt;
</code></pre>

语法

作者

BE

发布于

2020-09-18

更新于

2021-08-15

许可协议