Markdown 1.0.1

简介
Markdown 是由 John Gruber 于2004年开发一种轻量级标记语言,它是一个面向web作者的 text-to-HTML 转换工具。Markdown编辑器允许您使用纯文本格式编写,然后将其转换为结构有效的XHTML或者HTML,再用各种CSS美化就可以显示出不同的样式。https://daringfireball.net/projects/markdown/dingus 网站可以查看Markdown转换后的HTML源码。
Markdown的格式化语法的主要设计目标是使其尽可能具有可读性,Markdown格式的文档应该可以以纯文本发布,而不是看起来像是由许多标签或格式化指令组成。Markdown语法的最大灵感来源是纯文本电子邮件的格式。Markdown是自由软件,可以在BSD-style的开放源码许可下使用。
 
标准化
Markdown 的语法分为标准语法和扩展语法。Markdown 标准语法自从 V1.0.1(2004)后就再没有更新了,标准语法适用于所有 Markdown 工具。扩展语法可能每个编辑器都不一样,这是由于Markdown 标准语法功能有限,很多需求无法被满足,因此产生了许多第三方的扩展语法,比较流行的扩展语法是 Github 风格的:GitHub Flavored Markdown(GFM)。大部分第三方的扩展语法并不互相兼容,因此若干来自 GitHub、Reddit、Stack Exchange 以及开源社区的重要代表组成了一个小型非公开工作组,打算将 Markdown 标准化,并为了进一步的改进开放该标准。工作组发布了 Standard Markdown 并且有专门的网站 standardmarkdown.com,但发布几天后应 John Gruber 的要求被迫关闭网站和将 Standard Markdown 改名为CommonMark,这个可以参考http://commonmark.org/。
 
编辑器
Typora是免费的,支持 Github 风格的扩展语法GFM。
MarkdownPad2免费版只支持标准语法,专业版支持扩展语法,但是要收费。
 
语法
HTML特殊标签与字符
Markdown 不是想要取代 HTML,它的语法很少,只对应 HTML的一小部分。HTML 是一种发布的格式,Markdown 是一种书写的格式。不是Markdown语法范围内的HTML标签,可以直接在文档中书写。
在HTML块状元素之间的Markdown文本不会被转换为HTML,例如 <div>**测试**</div> 会保持原样,但是在行内元素之间的Markdown文本会被转换为HTML,例如 <span>**测试**</span> 会被转换为 <p><span><strong>测试</strong></span></p>。
在 HTML 中,某些字符是预留的,例如 < 和 >,如果直接使用,浏览器会误以为它们是标签的一部分。要正确显示这些字符,必须在HTML中使用字符实体,比如 > 号的字符实体为 【&lt;】 或 【&#60;】。在Markdown文档中书写的 < 和 & 会被转换为 【&lt;】 和 【&amp;】,如果书写的是 &lt; 则会保持原样。
 
段落
段落是指HTML中的<p>标签。空行是指行内什么都没有,或者只有空格和制表符。如果行与行之间有一个以上的空行,则会被转换为不同的<p>标签,即被视为不同的段落,否则被视为同一段落。
例如:
1
2
 
3
转换为:
<p>1
2</p>
 
<p>3</p>
 
换行
换行是指HTML中的<br>标签。如果想在同一个段落中换行,那么需要在上一行的结尾输入两个以上的空格然后回车,Markdown会在上一行的结尾插入<br />。
 
标题
标题是指HTML中的<h1>标签等。Markdown支持两种格式的标题语法。
第一种是在标题的下一行使用任何数量的=表示一级标题,任何数量的-表示二级标题,最多就两级。
例如:
标题1
=
标题2
-
转换为:
<h1>标题1</h1>
 
<h2>标题2</h2>
第二种是使用#,格式为#标题内容,#的数量表示标题的级别,最多6个#。
例如:
#标题
##标题
###标题
####标题
#####标题
######标题
#######标题
转换为:
<h1>标题</h1>
 
<h2>标题</h2>
 
<h3>标题</h3>
 
<h4>标题</h4>
 
<h5>标题</h5>
 
<h6>标题</h6>
 
<h6>#标题</h6>
 
列表
列表分为无序列表和有序列表。
 
无序列表
无序列表是指HTML中的<ul>标签,格式为* 列表内容,*可以用+和-代替。
例如:
* Red
* Green
* Blue
转换为:
<ul>
<li>Red</li>
<li>Green</li>
<li>Blue</li>
</ul>
 
有序列表
有序列表是指HTML中的<ol>标签,格式为数字英文句号 列表内容,数字不必按顺序,但是推荐按顺序书写。
例如:
1. Red
1. Green
2. Blue
转换为:
<ol>
<li>Red</li>
<li>Green</li>
<li>Blue</li>
</ol>
 
特殊用法
列表中的每一项都可以包含多个段落,每一段最好缩进一样的空格,空格数小于4。
例如:
* 第一段
 
第二段
转换为:
<ul>
<li><p>第一段</p>
 
<p>第二段</p></li>
</ul>
 
列表可限无限嵌套列表,只需要每次多加4个空格既可。
例如:
* 1
* 2
* 3
转换为:
<ul>
<li>1
<ul><li>2
<ul><li>3</li></ul></li></ul></li>
</ul>
 
块引用
即HTML中的<blockquote>标签,格式为>引用内容。在每个段落的第一行最前面加上> ,就可以引用整个段落,当然也可以在段落的每一行最前面加上> ,效果是一样的。块引用可以无限嵌套块引用,只需要每次多加一个>既可。块引用中可以使用其他Markdown格式如标题、列表等。
例如:
>引用1
>>引用2
>>>引用3
转换为:
<blockquote>
<p>引用1</p>
 
<blockquote>
<p>引用2</p>
 
<blockquote>
<p>引用3</p>
</blockquote>
</blockquote>
</blockquote>
 
代码区块
即HTML中的<pre>标签和<code>标签,只需要缩进4个空格即可,从最开始缩进4个空格的那一行到第一次没有缩进4个空格的那一行或者文档末尾都会被转换。
例如:
这是一个普通段落:
 
这是一个代码区块
1
2
3
转换为:
<p>这是一个普通段落:</p>
 
<pre><code>这是一个代码区块
1
2
</code></pre>
 
<p>3</p>
 
分隔线
即HTML中的<hr />标签,格式为一行中用三个以上的星号、减号、下划线,行内不能有其他东西,也可以在星号或是减号中间插入空格。
例如:
* * *
***
*****
- - -
---------------------------------------
 
链接
即HTML中的<a>标签,Markdown支持两种形式的链接语法,行内链接和参考链接。
 
行内链接
在方块括号后面紧接着圆括号并插入网址链接,如果你还想要加上链接的 title属性,只要在网址后面,用双引号把文字包起来即可。
例如:
[百度](https://www.baidu.com "百度")一下
转换为:
<p><a href="https://www.baidu.com" title="百度">百度</a>一下</p>
 
参考链接
参考链接是在链接文字的方括号后面再接上另一个方括号,而在第二个方括号里面写入链接标记,在文件的任意处,你可以把这个链接标记的内容定义出来。链接标记内容的形式为:
方括号,里面输入链接文字;
接着一个英文冒号;
接着一个以上的空格;
接着链接的网址;
紧接着 title 属性,可选,可以用单引号、双引号或是圆括号包着。
例如:
[bd]: https://www.baidu.com "百度"
[百度][bd]一下
转换为:
<p><a href="https://www.baidu.com" title="百度">百度</a>一下</p>
 
隐式链接标记功能让你可以省略指定链接标记,这种情形下,链接标记会视为等同于链接文字,要用隐式链接标记只要在链接文字后面加上一个空的方括号,
例如:
[bd]: https://www.baidu.com "百度"
[bd][]一下
转换为:
<p><a href="https://www.baidu.com" title="百度">bd</a>一下</p>
 
强调
即HTML中的<em>和<strong>标签,Markdown使用*和_作为强调的符号,被*和_包围的会被转换成用<em> 标签包围,用两个*和_包围的会被转换成用<strong> 标签包围。
例如:
*斜体*,**粗体**
转换为:
<p><em>斜体</em>,<strong>粗体</strong></p>
 
代码
即HTML中的<code>标签,被反引号`包围的会被转换成用<code> 标签包围。
例如:
`代码`
转换为:
<p><code>代码</code></p>
 
图片
即HTML中的<img>标签,Markdown支持两种形式的图片语法,行内图片和参考图片。
 
行内图片
格式如下:
一个英文感叹号;
接着一个方括号,里面放上图片的替代文字;
接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上可选的 title属性。
例如:
![图片](https://t10.baidu.com/it/u=178918326,3666119923&fm=173&app=12&f=JPEG?w=550&h=367&s=ACD21DC78C5295C647F1F93A0300F012 "图片")
转换为:
<p><img src="https://t10.baidu.com/it/u=178918326,3666119923&amp;fm=173&amp;app=12&amp;f=JPEG?w=550&amp;h=367&amp;s=ACD21DC78C5295C647F1F93A0300F012" alt="图片" title="图片" /></p>
 
参考图片
参考图片是在图片替代文字的方括号后面再接上另一个方括号,而在第二个方括号里面写入图片标记,在文件的任意处,你可以把这个图片标记的内容定义出来。图片标记内容的形式为:
方括号,里面输入图片替代文字;
接着一个英文冒号;
接着一个以上的空格;
接着链接的网址;
紧接着 title 属性,可选,可以用单引号、双引号或是圆括号包着。
例如:
[img]: https://t10.baidu.com/it/u=178918326,3666119923&fm=173&app=12&f=JPEG?w=550&h=367&s=ACD21DC78C5295C647F1F93A0300F012 "参考图片"
![图片][img]
转换为:
<p><img src="https://t10.baidu.com/it/u=178918326,3666119923&amp;fm=173&amp;app=12&amp;f=JPEG?w=550&amp;h=367&amp;s=ACD21DC78C5295C647F1F93A0300F012" alt="图片" title="参考图片" /></p>
 
自动链接
即HTML中的<a>标签,用尖括号括起来的URL和邮箱地址会被自动转换为超链接,其中邮件地址会被转换为实体编号。
例如:
<https://www.baidu.com>
转换为:
<p><a href="https://www.baidu.com">https://www.baidu.com</a></p>
 
<address@example.com>
转换为:
<p><a href="&#x6D;&#97;il&#116;o:&#x61;&#x64;&#100;&#114;&#101;&#x73;&#115;&#64;&#x65;&#120;&#97;&#x6D;&#x70;&#108;&#x65;&#x2E;c&#111;&#x6D;">&#x61;&#x64;&#100;&#114;&#101;&#x73;&#115;&#64;&#x65;&#120;&#97;&#x6D;&#x70;&#108;&#x65;&#x2E;c&#111;&#x6D;</a></p>
 
转义
Markdown 可以利用反斜杠来插入一些在语法中有特殊意义的符号,格式为特殊字符,比如以下这些符号:
反斜线
` 反引号
* 星号
_ 底线
{} 花括号
[] 方括号
() 括弧
# 井字号
+ 加号
- 减号
. 英文句点
! 惊叹号
原文地址:https://www.cnblogs.com/gjb724332682/p/8859850.html