0%

markdown语法

标题

文档

Markdown 支持两种形式的标题, [Setext] [1] 和 [atx] [2].
Setext 样式的标题使用的等号来表示一级标题, 使用连字符表示二级标题. 例如:

1
2
3
4
>This is an H1
=============
This is an H2
>-------------

任意长度的 = 或 - 都是可以的.
Atx 样式的标题每行开头使用 1-6 井号, 对应 1-6 级标题. 例如:

1
2
3
# This is an H1
## This is an H2
###### This is an H6

可选地, 你可以 “关闭” atx 样式的标题. 这纯粹是美化需要 — 如果你认为这样美观一些就用吧. 关>闭标签的井号数量甚至不需要和起始位置的匹配. (起始的井号数量决定了标题的级别.) :

This is an H1

This is an H2

This is an H3

示例

1
2
3
4
5
6
7
8
# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题 ##
这也是一级标题
=========
这是二级标题
-------

效果

这是一级标题

这是二级标题

这是三级标题

这是四级标题

这也是一级标题

这是二级标题

引用

文档

Markdown 使用 email 样式的 > 字符作为块引用. 如果你熟悉 email 消息中的引用段落, 那么你同样可以在 Markdown 中创建块引用. 最好对引用文本采取强制换行并在每一行行首放一个 > :

1
2
3
4
5
6
> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
> consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
> Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
>
> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
> id sem consectetuer libero luctus adipiscing.

Markdown 中可以简便地只在每一个需要强制换行的段落的首行前面加上一个 > :

1
2
3
4
5
6
> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.

> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
id sem consectetuer libero luctus adipiscing.

块引用可以嵌套 (例如, 块引用中包含块引用) , 只需添加额外层级的 > 即可:

1
2
3
4
5
> This is the first level of quoting.
>
> > This is nested blockquote.
>
> Back to the first level.

块引用可以包含 Markdown 元素, 包括标题, 列表和代码块:

1
2
3
4
5
6
7
8
9
> ## This is a header.
>
> 1. This is the first list item.
> 2. This is the second list item.
>
> Here's some example code:
>
> return shell_exec("echo $input | $markdown_script");
>、

任何合适的文本编辑器都应该可以很方便的创建 email 样式的块引用. 例如, 用 BBEdit 就可以选取文本然后从 ‘Text’ 菜单中选择 ‘Increase Quote Level’.

示例

1
2
3
>这是一级引用
>>这是二级引用
>>>>>这是好多级引用

效果

这是一级引用

这是二级引用

这是好多级引用

列表

文档

Markdown 支持有序列表和无序列表.

无序列表使用星号, 加号, 和连字符 — 这些符号是可互换的 — 最为列表标记:

1
2
3
*   Red
* Green
* Blue

等价于:

1
2
3
+   Red
+ Green
+ Blue

以及:

1
2
3
-   Red
- Green
- Blue

有序列表使用数字加句号:

1
2
3
1.  Bird
2. McHale
3. Parish

需要注意的是这里的数字序号对于最终生成 HTML 是没有影响的. 这里 Markdown 输出的 HTML 列表是:

1
2
3
4
5
<ol>
<li>Bird</li>
<li>McHale</li>
<li>Parish</li>
</ol>

即使你把列表写成这样:

1
2
3
1.  Bird
1. McHale
1. Parish

甚至这样:

1
2
3
3. Bird
1. McHale
8. Parish

你都讲得到相同的 HTML 输出. 重点是, 如果你希望你的 Markdown 源码中的列表序号匹配输出的 HTML 列表序号, 你应该使用正常的序号 . 当然, 如果你想简单点, 也可不必这么做.

即使你使用错误的列表序号, 最终生成的列表仍然会以序号 1 开始. 在未来的版本里, Markdown 可能支持以任意数字作为列表起始序号.

List 标记通常从左边开始, 可以用三个及以上的空格来缩进. List 标记后面应该跟一个以上的空格或者一个水平制表符.

为了使列表更美观, 可以用悬挂缩进来格式化列表项:

1
2
3
4
5
6
7
8
9
10
11
12
*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
viverra nec, fringilla in, laoreet vitae, risus.
* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
Suspendisse id sem consectetuer libero luctus adipiscing.
但是这不是必须的:

* Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
viverra nec, fringilla in, laoreet vitae, risus.
* Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
Suspendisse id sem consectetuer libero luctus adipiscing.

如果列表项中包含空行, Markdown 会在 HTML 输出中用

来包裹他们. 例如, 下面的输入:

1
2
*   Bird
* Magic

会输出:

1
2
3
4
<ul>
<li>Bird</li>
<li>Magic</li>
</ul>

但是:

1
2
3
*   Bird

* Magic

会输出:

1
2
3
4
<ul>
<li><p>Bird</p></li>
<li><p>Magic</p></li>
</ul>

列表项可能包含多个段落. 列表项中的每个段落都必须用 4 个空格或一个水平制表符来缩进:

1
2
3
4
5
6
7
8
9
1.  This is a list item with two paragraphs. Lorem ipsum dolor
sit amet, consectetuer adipiscing elit. Aliquam hendrerit
mi posuere lectus.

Vestibulum enim wisi, viverra nec, fringilla in, laoreet
vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
sit amet velit.

2. Suspendisse id sem consectetuer libero luctus adipiscing.

同上, 悬挂缩进只是为了更美观, 而非强制要求:

1
2
3
4
5
6
7
*   This is a list item with two paragraphs.

This is the second paragraph in the list item. You're
only required to indent the first line. Lorem ipsum dolor
sit amet, consectetuer adipiscing elit.

* Another item in the same list.

如果列表项中包含块注释 , 块注释标记 > 需要缩进:

1
2
3
4
*   A list item with a blockquote:

> This is a blockquote
> inside a list item.

如果列表项中有代码块, 代码块需要 双倍 缩进— 8 个空格或者两个水平制表符:

1
2
3
* A list item with a code block:

<code goes here>

有时候无意中出发有序列表, 如下面这样的代码:

1
1986. What a great season.

即使, 如果一行开头满足 number-period-space 模式. 可以通过转义点号来避免这种情况:

1
1986\. What a great season.

示例

代码块和代码

文档

  • 代码块

    预格式化的代码块用于输出编程语言和标记语言. 不同于普通段落, 代码块中的行会被原样呈现. Markdown 会用

     标签包围代码块.

    要在 Markdown 中插入代码块, 只需要将每一行都缩进 4 个空格或者 1 个水平制表符. 例如, 下面的输入:

    This is a normal paragraph:
    
        This is a code block.
    

    Markdown 会生成:

    <p>This is a normal paragraph:</p>
    
    <pre><code>This is a code block.
    </code></pre>
    

    只有一级缩进 — 4 个空格或者 1 个水平制表符 — 会从代码块中的每一行中移除. 例如:

    Here is an example of AppleScript:
    
    tell application "Foo"
        beep
    end tell
    

    会生成:

    <p>Here is an example of AppleScript:</p>
    
    <pre><code>tell application "Foo"
        beep
    end tell
    </code></pre>
    
  • 代码

    要输出一个代码片段, 需要使用重音符号 (`). 不同于预格式的代码块, 代码片段只是在普通段落中标识出代码. 例如:

     Use the `printf()` function.
    

    会生成:

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

    要在代码片段中包含字面量的重音符号, 可以使用多个重音符号作为起始和结束标记:

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

    会生成:

     <p><code>There is a literal backtick (`) here.</code></p>
    

    包含代码片段的重音符号可以包含空格 — 起始标记后一个, 结束标记前一个. 这使你可以在代码片段开始和结束位置使用重音符号的字面量:

     A single backtick in a code span: `` ` ``
    
     A backtick-delimited string in a code span: `` `foo` ``
    

    会生成:

     <p>A single backtick in a code span: <code>`</code></p>
    
     <p>A backtick-delimited string in a code span: <code>`foo`</code></p>
    

    在代码片段中, 英镑符号和尖括号会被转换成相应的字符实体, 这使得包含 HTML 标签很容易. Markdown 会将下面的代码:

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

    转成:

     <p>Please don't use any <code>&lt;blink&gt;</code> tags.</p>
    

    这样写:

     `&#8212;` is the decimal-encoded equivalent of `&mdash;`.
    

    会生成:

     <p><code>&amp;#8212;</code> is the decimal-encoded
     equivalent of <code>&amp;mdash;</code>.</p>
    

文档总结和补充

  1. 选中写好了的代码,然后tab缩进就好了。
  2. 还有一种是通过一对 `` (英文状态下tab键上面那个) 或者 ~ (英文状态下shift+tab上面那个) 将代码包起来。三个反撇号和三个波浪号各一行。再第一个```或~后可以加上代码的语言,这样可以有更好的显示效果。

字体

  • 加粗
    要加粗的文字左右分别用两个*号包起来
  • 斜体
    要倾斜的文字左右分别用一个*号包起来
  • 斜体加粗
    要倾斜和加粗的文字左右分别用三个*号包起来
  • 删除线
    要加删除线的文字左右分别用两个~~号包起来

    示例:

    这是加粗的文字
    这是倾斜的文字
    这是倾斜加粗的文字
    这是添加删除线

    效果如下:

    这是加粗的文字
    这是倾斜的文字
    这是倾斜加粗的文字
    这是添加删除线

4. 分割线

三个或者三个以上的 - 或者 * 都可以。

示例

---
----
***
****

效果

—-



5. 图片

语法&示例

本地:
  ![狗](markdown语法/dog.jpg "狗")

效果

{:width=”30px” height=”10px”}