Jimmy那些事儿

Markdown使用手册

Markdown 使用手册

[what] - 一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber).HTML 是一种发布的格式,Markdown 是一种书写的格式。

[why] - 使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。


区块元素

(一)段落和换行

1. 段落

  • 由一个或多个连续的文本行组成,它的前后要有一个以上的空行;
  • 空行的定义是显示上看起来像是空的,便会被视为空行。比方说,若某一行只包含空格和制表符,则该行也会被视为空行。

  • 相邻两行文本,如果中间没有空行会显示在一行中(换行符被转换为空格)

2. 换行

  • 如果需要在段落内加入换行(而非换段落)(<br>),可以在前一行的末尾加入至少两个空格,然后换行写其它的文字

3. 大段落

  • 可加入<br>
  • 普通段落不该用空格或制表符来缩进。

(二)标题

支持两种标题的语法:

1. 类atx形式:在行首插入1-6个#,对应到标题的1到6阶;

一阶 #

二阶 ##

三阶 ###

四阶 ####

五阶 #####
六阶 ######

2. 类Setext形式:底线形式,利用 =(最高阶标题)和 -(第二阶标题);

一阶

二阶


(三)区块引用 Blockquotes

###1. 常规引用:在每行的最前面加上 >

>This is a blockquote with two paragraphs.Lorem ipsum dolor sit ame,
>consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.    

This is a blockquote with two paragraphs. Lorem ipsum dolor sit ame,

consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.

2.嵌套引用:根据层次加上不同数量的 >

> This is the first level of quoting.
> 
>> This is nested blockquote.
>
> Back to the first level.    

This is the first level of quoting.

>

This is nested blockquote.

Back to the first level.

3. 引用区块中可以使用其他的Markdown语法

> ### 这是一个标题
> 
> 1. 这是第一行列
> 
> 给出一些例子代码:
> 
> return shell_exec("echo $input | $markdown_script");

这是一个标题

  1. 这是第一行列

给出一些例子代码:

return shell_exec(“echo $input | $markdown_script”);


(四)列表

1. 有序列表:使用数字接着一个英文句点,然后加一个空格或制表符

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

2. 无序列表:使用星号*、加号+或是减号-作为列表标记,后接一个空格

* 列表
    + 列表
        - 列表
            - 列表
  • 列表
    • 列表
      • 列表
        • 列表

3. 你在列表标记上使用的数字并不会影响输出的 HTML 结果

如果你的列表标记写成:

1.  Bird
1.  McHale
1.  Parish

或甚至是:

3. Bird
1. McHale
8. Parish

你都会得到完全相同的 HTML 输出。

4. 项目标记也可以缩进,最多三个空格

  • Lorem ipsum dolor sit amet, consectetueradipiscingelit.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.

5. 列表项目可以包含多个段落,每个项目下的段落都必须缩进 4 个空格或是 1 个制表符

1.  This is a list item with two paragraphs.
    1.  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.
  1. This is a list item with two paragraphs.

    1. 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.

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

*   A list item with a blockquote:
    > This is a blockquote
    > inside a list item.
  • A list item with a blockquote:

    This is a blockquote inside a list item.

7. 如果要放代码区块的话,该区块就需要缩进两次,也就是 8 个空格或是 2 个制表符

*   一列表项包含一个列表区块:
        <代码写在这>

8. 避免项目列表自动出现(数字-句点-空格),可在之前加\

1986\. What a great season


(五)代码区块

程序相关的写作或是标签语言原始码通常会有已经排版好的代码区块,通常这些区块我们并不希望它以一般段落文件的方式去排版,而是照原来的样子显示,Markdown 会用<precode`标签来把代码区块包起来。

1. 建立方法:缩进 4 个空格或是 1 个制表符

这是一个普通段落:

      这是一个代码区块。

Markdown 会转换成:

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

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

这个每行一阶的缩进(4 个空格或是 1 个制表符),都会被移除;

一个代码区块会一直持续到没有缩进的那一行(或是文件结尾)

2. 代码中的特殊符号

在代码区块里面, & 、 < 和 > 会自动转成 HTML 实体,这样的方式让你非常容易使用 Markdown 插入范例用的 HTML 原始码,只需要复制贴上,再加上缩进就可以了


会被转换为:

<pre><code>&lt;div class="footer"&gt;
&amp;copy; 2004 Foo Corporation
&lt;/div&gt;
</code></pre>

3. 代码区块中,一般的 Markdown 语法不会被转换,像星号便只是星号

4. 如果要放代码区块的话,该区块就需要缩进两次,也就是 8 个空格或是 2 个制表符

*   一列表项包含一个列表区块:
        <代码写在这>

5. 代码块:这里使用
###
1

<p>code here<p>
​
1
2
```
<p>code here<p>

**三个

1
2
3
4
5
### 6. 代码高亮:在第一组 ``` 之后添加代码的语言 ###
​```sql
select * from table

1
2
USE st2;
select * from table;


(六)分割线+删除线

1. 分割线

在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西;

也可以在星号或是减号中间插入空格。

***
- - - 

2.删除线

~~删除线~~

删除线


(七)表格

1. 单元格与表头

  • 使用 | 来分隔不同的单元格
  • 使用 - 来分隔表头和其他行


name | age
---- | ---
LearnShare | 12
Mike |  32
name age
LearnShare 12
Mike 32

为了使 Markdown 更清晰,| 和 - 两侧需要至少有一个空格(最左侧和最右侧的 | 外就不需要了)

2. 对齐

在表头下方的分隔线标记中加入 :,即可标记下方单元格内容的对齐方式:

  • :--代表左对齐
  • :--: 代表居中对齐
  • ---: 代表右对齐

    | left | center | right |
    | :--- | :----: | ----: |
    | aaaa | bbbbbb | ccccc |
    | a    | b      | c     |
    
left center right
aaaa bbbbbb ccccc
a b c

如果不使用对齐标记,单元格中的内容默认左对齐;表头单元格中的内容会一直居中对齐(不同的实现可能会有不同表现)

3. 插入其他内容

表格中可以插入其他 Markdown 中的行内标记:

|     name     | age |             blog                |
| ------------ | --- | ------------------------------- |
| _LearnShare_ |  12 | [LearnShare](http://xianbai.me) |
| __Mike__     |  32 | [Mike](http://mike.me)          |
name age blog
LearnShare 12 LearnShare
Mike 32 Mike


区段元素

(一)强调

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

*single asterisks*
_single underscores_   

**double asterisks**
__double underscores__

***double asterisks***

single asterisks

single underscores

double asterisks

double underscores

double asterisks

2. 强调也可以直接插在文字中间

un**frigging**believable

unfriggingbelievable

3. 如果你的 * 和 _ 两边都有空白的话,它们就只会被当成普通的符号;或者利用反斜线\

* single asterisks * 
\* single asterisks 

single asterisks *

* single asterisks


(二)代码

1. 标记行内代码,你可以用反引号把它包起来(`)

Use the `printf()` function.

Use the printf() function.

2. 代码区段内插入反引号,你可以用多个反引号来开启和结束代码区段

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

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

3. 代码区段的起始和结束端都可以放入一个空白,就可以在区段的一开始就插入反引号

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

A single backtick in a code span: `foo`

4. 在代码区段内,& 和尖括号都会被自动地转成 HTML 实体

Please don’t use any <blink> tags.

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


(三)图片

1. 行内式

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

    ![图片名称](/path/to/img.jpg "Optional title")    
    ![图片名称](https://avatars2.githubusercontent.com/u/3265208?v=3&s=100 "GitHub,Social Coding")
    

    GitHub

    2. 参考式

  • 「id」是图片参考的名称
    ![Alt text][id]
    
[id]: url/to/image  "Optional title attribute"    

3. 指定图片大小

通过直接插入<img>标签来指定相关属性

<img src="https://avatars2.githubusercontent.com/u/3265208?v=3&s=100" alt="GitHub" title="GitHub,Social Coding" width="50" height="50" />

GitHub


(四)链接

1. 行内式:

[link text](URL 'title text')

(1)普通链接

[Google](http://www.google.com/)

Google

(2)指向本地文件的链接

[icon.png](./images/icon.png)

icon.png

(3)包含 ‘title’ 的链接

Google

Google

2. 参考式

参考式链接的写法相当于行内式拆分成两部分,并通过一个识别符来连接两部分。参考式能尽量保持文章结构的简单,也方便统一管理 URL。

(1)定义链接

[Google][1]   这个链接用 1 作为网址变量

Google
第二个方括号内为链接独有的 识别符,可以是字母、数字、空白或标点符号。识别符是 不区分大小写 的;

(2)定义链接内容

[1]: http://www.google.com/ "Google"   
然后在文档的结尾为变量赋值(网址)

其格式为:[识别符]: URL 'title'

(3)也可以省略 识别符,使用链接文本作为 识别符

[Google][]
[Google]: http://www.google.com/ "Google"

参考式相对于行内式有一个明显的优点,就是可以在多个不同的位置引用同一个 URL。

3. 超链接

使用 <> 括起来的 URL 或 邮箱地址 会被自动转换为超链接

<http://www.google.com/>
<123@email.com>

http://www.google.com/
123@email.com

该方式适合行内较短的链接,会使用 URL 作为链接文字。


其他

(一)转义符

反斜线(\)用于插入在 Markdown 语法中有特殊作用的字符

\
`
*
_
{}
[]
()
#
+
-
.
!


(二)页内跳转

1. MarkDown实现

* [主标题1](#1)
    * [副标题1.1](#1.1)
        * [次级副标题1.1.1](#1.1.1)
    * [副标题1.2](#one-point-two)
<h1 id="1">主标题1</h1>
文本内容。。。
<h2 id="1.1">副标题1.1</h2>
文本内容。。。
<h3 id="1.1.1">次级副标题1.1.1</h3>
文本内容。。。
<h2 id="one-point-two">副标题1.2</h2>
这是为了演示id也可以设置成英文字母

主标题1


文本内容。。。

副标题1.1


文本内容。。。

次级副标题1.1.1


文本内容。。。

副标题1.2


这是为了演示id也可以设置成英文字母


2.html标签实现:利用 HTML 元素创建 “锚”

(1)定义一个锚(id):

<span id="jump">跳转到的地方</span>

区块元素

(2)使用markdown语法:

[点击跳转](#jump)

区块元素

* [主标题1](#1)
    * [副标题1.1](#1.1)
        * [次级副标题1.1.1](#1.1.1)
    * [副标题1.2](#one-point-two)

<span id="1"></span>

# 主标题1
文本内容。。。

<span id="1.1"></span>

## 副标题1.1
文本内容。。。

<span id="1.1.1"></span>

### 次级副标题1.1.1
文本内容。。。

<span id="one-point-two"></span>

## 副标题1.2
这是为了演示id也可以设置成英文字母

3. Markdown 原生支持的页内跳转

* [Cat and dog](#cat-and-dog)
    * [Cat](#cat)
        * [A little cat](#a-little-cat)
    * [Dog](#dog)

## Cat and dog

一只单身狗和一只高冷猫的故事。。。

### Cat

有一天高冷猫遇见了单身狗。。。

#### A little cat

高冷猫生的很小巧但是脾气不是很好。。。

### Dog

Cat and dog

一只单身狗和一只高冷猫的故事。。。

Cat

有一天高冷猫遇见了单身狗。。。

A little cat

高冷猫生的很小巧但是脾气不是很好。。。

Dog

4. MarkdownPad2 原生支持的页内跳转

<a name="myAnchor"></a>
## My Header ##
This is some content in my first section.
[Go To Section One](#myAnchor)

My Header

This is some content in my first section.
Go To Section One