Markdown

概述

Markdown是一种易读易写的标记语言.它能被生成HTML.Markdown的目标是:成为一种适用于网络的书写语言.

1.兼容HTML

Markdown的格式语法涵盖纯文本可以涵盖的范围,不在Markdown涵盖范围内的可以直接使用HTML标签.

HTML的区块标签------比如<div>,<pre>,<table>,<p>必须在前后文加上空行与其他内容分开,还要求它的开始结尾标签不能有空格缩进或制表符.
HTML的行内标签------比如<span>,<cite>,<del>可以自Markdown的标题,列表,段落里随意使用.
还有一些标签诸如<a>,<img>可以不使用Markdown语法,直接使用HTML标签.

2.特殊字符自动转换

HTML中有两个字符需要特殊处理:一个是<(用于起始标签),一个是&(用于标记HTML字符实体,即预留字符).

Markdown语法可以将字符在需要使用HTML字符实体的地方自动转换为字符实体.例如:

&copy;这种&是字符实体一部分的情况下不会发生转换,而形如AT&T;,网址中的&则不需要输入AT&amp;T,http://images.google.com/images?num=30&amp;q=larry+bird直接输入&就会自动转换.

这种情况也发生在<身上,当<是字符实体一部分是不会发生转换,而当4 < 5这种<为比较符时Markdown会将其转换为4 &lt; 5.

注:code范围内,无论是区块还是行内都会被转换成字符实体.

附:HTML ISO-8859-1 参考手册

区块元素

1.段落和换行

Markdown段落需要空行(只含有空格或制表符也是空行)隔开.普通段落不该用空格或制表符缩进.

两个以上回车就是一个空行,也就是换行.

2.标题

# h1
## h2
### h3
#### h4
##### h5
###### h6
大标题
=
小标题
-

表示

h1

h2

h3

h4

h5
h6

大标题

小标题

区块引用

>   这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.
>
>   这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.
>   这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.


>  这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.

>   ##标题
>
>>  区块引用嵌套
>
>  1.  苹果
>  2.  香蕉
>
>  例子代码:
>  return shell_exec("echo $input | $markdown_script");

区块引用每行开头使用>等同于每段段首使用>,区块可以叠加嵌套>>,区块也可以包含标题,列表,代码片段等等.

这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.

这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.
这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.

这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.这是一个区块引用.

标题

区块引用嵌套

1.苹果
2.香蕉

例子代码:
return shell_exec("echo $input | $markdown_script");

3.列表

无序列表可以使用*,+,-,有序列表使用数字+.的形式,且列表标记上使用的数字不影响输出的HTML结果

*   Red
*   Green
*   Blue

+   Red
+   Green
+   Blue

-   Red
-   Green
-   Blue

1.  Bird
2.  McHale
3.  Parish

1.  Bird
1.  McHale
1.  Parish

3. Bird
1. McHale
8. Parish

输出:

  • Red
  • Green
  • Blue
  • Red
  • Green
  • Blue
  • Red
  • Green
  • Blue
  1. Bird

  2. McHale

  3. Parish

  4. Bird

  5. McHale

  6. Parish

  7. Bird

  8. McHale

  9. Parish

注:如果为了美观,列表可以使用固定缩进,如果列表项之间存在空行的情况下,列表项会被<p>标签包裹.

列表里面的段落也可以使用缩进,列表段落里面的引用缩进一次,代码片段缩进两次(八个空格).行首出现数字加.加空格情况会吞掉数字.为避免这种情况要在.前面加反斜杠\.

*  这是一个列表段落.

*  这是一个列表段落

*  这是一个列表段落.这是一个列表段落
这是一个列表段落.这是一个列表段落

1.  这是一个列表段落.
   
    >  这是一个列表引用.
    >  这是一个列表引用.
        <这是一个代码块>
   1949\. 新中国成立.

输出:

  • 这是一个列表段落.

  • 这是一个列表段落

  • 这是一个列表段落.这是一个列表段落
    这是一个列表段落.这是一个列表段落

  1. 这是一个列表段落.

    这是一个列表引用.
    这是一个列表引用.

  2. 这是一个代码块:
    <这是一个代码块>

  3. 1949. 新中国成立.

4.代码区块

Markdown只需要简单的缩进4个空格(TAB)或一个制表符就可以建立代码片段.输出时缩进会被清除.

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>

输出:

Here is an example of AppleScript:

tell application "Foo"
    beep
end tell

在代码区中,&,<>会自动转换为HTML实体,这样可以使用Markdown很轻易的插入范例用的HTML原始代码,只要粘贴加上缩进就可以了.

<div class="footer">
  &copy; 2004 Foo Corporation
</div>

会被转换成:

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

输出为:

5.分隔线

可以用三个以上的*,-_来建立分隔线

***
---
___

输出:




行内元素

1.链接

Markdown支持两种不同的链接语法:行内式和参考式.

行内式:
行内式的链接只要在方括号后面紧接着圆括号并插入网址链接即可,可以在链接后面加title.
title的,不带title的和相对路径的链接

这是一个行内链接的[例子](http://example.com/ "行内链接") .

[这个链接](http://example.net/) 没有可选标签.

看看我的[About](/about/)页面的详细信息.   

输出:

这是一个行内链接的例子 .

这个链接没有标题属性.

看看我的About页面的详细信息.

参考式:

参考式链接是在链接文字的括号后面再接上另一个方括号,而在第二个方括号里面要填入加以识别的id.

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

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

[id]: http://example.com/ "可选标签"

链接内容定义的形式:

方括号(前面可以选择性地加上至多三个空格来缩进),里面输入链接文字
接着一个冒号
接着一个以上的空格或制表符
接着链接的网址
选择性地接着 title 内容,可以用单引号、双引号或是括弧包着

下面这三种链接都是一样的:

[foo]: http://example.com/ "可选标签"

[foo]: http://example.com/ '可选标签'

[foo]: http://example.com/ (可选标签)

链接可以用尖括号包起来,也可以把title属性放到下一行.
链接识别标签(id)不区分大小写.

隐式链接标记可以省略链接标记,链接标记会等同于链接文字.

[Google][]
[Google]: http://google.com
等同于
[Google][1]
[1]: http://google.com

综合实例:

[google][1]的流量要比[yahoo][2]或[msn][3]多十倍以上.

[1]:http://google.com "google"
[2]:http://search.yahoo.com/ "yahoo search"
[3]:http://search.msn.com/ "msn search"

等同于

[google][]的流量要比[yahoo][]或[msn][]多十倍以上.

[google]:http://google.com "google"
[yahoo]:http://search.yahoo.com/ "yahoo search"
[msn]:http://search.msn.com/ "msn search"

对比来说,行内式:

[google](http://google.com/ "google")的流量要比[yahoo](http://search.yahoo.com/ "yahoo search")或[msn](http://search.msn.com/ "msn search")多十倍.

参考式链接比较来说比较好读.

2.强调

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

*叫医生!*

_叫医生!_

**叫医生!**

__叫医生!__

会转成:

<em>single asterisks</em>

<em>single underscores</em>

<strong>double asterisks</strong>

<strong>double underscores</strong>

强调符号可以插在文字中间:

你好*北京*我来了

如果*或_两边都有空白的话,就会被当成普通的星号或底线,你可以用反斜杠\插入普通的星号或底线.

你好 * 北京*我来了

\*这是一个强调的实例\*

输出:

你好 * 北京*我来了

*这是一个强调的实例*

3.代码

行内代码使用`来标记一小段代码,如果要插入`可以用多个反引号来开启和结束.在代码区段内&<,>都会自动转成HTML实体

使用`print()`函数,

使用``(`)``符号

请不要使用`<blink>`标签

`&#8212;` 是 `&mdash;`的十进制编码.

输出:

使用print()函数,

使用(`)符号

请不要使用<blink>标签

&#8212;&mdash;的十进制编码.

4.图片

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

行内式的图片语法看起来像是:

![没有图片显示我](https://www.baidu.com/img/bd_logo1.png)

![没有图片显示我](https://www.baidu.com/img/bd_logo1.png "百度")

详细叙述如下:

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

参考式的图片语法则长得像这样:

![没有图片显示我][2]

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

[2]: https://www.baidu.com/img/bd_logo1.png  "百度"

输出:

没有图片显示我
没有图片显示我

没有图片显示我

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

其它

1.自动链接.

<http://baidu.com>

<address@example.com>

会转换成:

<a href="http://example.com/">http://example.com/</a>

<a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;
&#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;
&#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;
&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>

输出:

http://baidu.com

address@example.com

2.反斜杠

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

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

可转换为:

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

3.删除线

~~删除线~~

输出

删除线

4.表格

:----:代表居中对齐.-----:代表右对齐

|Tables       |Are           |Cool |
|-------------|:----------:  |----:|
|col 3 is     |right-aligned |$1600| 
|col 2 is     |centered      |$12  | 
|zebra stripes|are neat      |$1   |

输出:

Tables Are Cool
col 3 is right-aligned $1600
col 2 is centered $12
zebra stripes are neat $1
posted @ 2015-03-18 15:55  健达  阅读(247)  评论(0编辑  收藏  举报