概述
Markdown 的目标是实现「易读易写」。
可读性,无论如何,都是最重要的。一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。Markdown 语法受到一些既有 text-to-HTML 格式的影响,包括 Setext、atx、Textile、reStructuredText、Grutatext 和 EtText,而最大灵感来源其实是纯文本电子邮件的格式。
总之, Markdown 的语法全由一些符号所组成,这些符号经过精挑细选,其作用一目了然。比如:在文字两旁加上星号,看起来就像强调。Markdown 的列表看起来,嗯,就是列表。Markdown 的区块引用看起来就真的像是引用一段文字,就像你曾在电子邮件中见过的那样。
一.Markdown的优点
- 专注你的文字内容而不是排版样式,安心写作。
- 轻松的导出 HTML、PDF 和本身的 .md 文件。
- 纯文本内容,兼容所有的文本编辑器与字处理软件。
- 随时修改你的文章版本,不必像字处理软件生成若干文件版本导致混乱。
- 可读、直观、学习成本低。
二.Markdown的语法规则
段落和换行
一个 Markdown 段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行(空行的定义是显示上看起来像是空的,便会被视为空行。比方说,若某一行只包含空格和制表符,则该行也会被视为空行)。普通段落不该用空格或制表符来缩进。
「由一个或多个连续的文本行组成」这句话其实暗示了 Markdown 允许段落内的强迫换行(插入换行符),这个特性和其他大部分的 text-to-HTML 格式不一样(包括 Movable Type 的「Convert Line Breaks」选项),其它的格式会把每个换行符都转成 < br/> 标签。
如果你确实想要依赖 Markdown 来插入 < br/> 标签的话,在插入处先按入两个以上的空格然后回车。
的确,需要多费点事(多加空格)来产生 < br/> ,但是简单地「每个换行都转换为
」的方法在 Markdown 中并不适合, Markdown 中 email 式的 区块引用 和多段落的 列表 在使用换行来排版的时候,不但更好用,还更方便阅读。
标题
标题能显示出文章的结构。行首插入1-6个 # ,每增加一个 # 表示更深入层次的内容,对应到标题的深度>由 1-6 阶。
H1 :# Header 1 H2 :## Header 2 H3 :### Header 3 H4 :#### Header 4 H5 :##### Header 5 H6 :###### Header 6
区块引用
1.Markdown 标记区块引用是使用类似 email 中用 > 的引用方式。在每行的最前面加上 ,也允许你偷懒只在整个段落的第一行最前面加上 >:
2.区块引用可以嵌套(例如:引用内的引用),只要根据层次加上不同数量的 :
3.引用的区块内也可以使用其他的 Markdown 语法,包括标题、列表、代码区块等:
列表
Markdown 支持有序列表和无序列表
1.有序列表
使用数字接着一个英文句点:1. Red 2. Green 3. Blue很重要的一点是,在有序列表中,你在列表标记上使用的数字并不会影响输出的 HTML 结果。
2.无序列表
使用星号、加号或是减号作为列表标记:* Red * Green * Blue等同于
+ Red + Green + Blue等同于
- Red - Green - Blue
代码区块
和程序相关的写作或是标签语言原始码通常会有已经排版好的代码区块,通常这些区块我们并不希望它以一般段落文件的方式去排版,而是照原来的样子显示,Markdown 会用 pre 和 code 标签来把代码区块包起来。
分隔线
你可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。下面每种写法都可以建立分隔线:
图片与链接
插入链接与插入图片的语法很像,区别在一个 !号
图片为:   链接为: []()
强调
Markdown 使用星号()和底线(_)作为标记强调字词的符号,被 或 _ 包围的字词会被转成用 em 标签包围,
用两个 * 或 _ 包起来的话,则会被转成 strong
代码
如果要标记一小段行内代码,你可以用反引号把它包起来(`)
如果是复杂的代码块,Markdown 会用 pre 和 code 标签来把代码区块包起来
自动链接
Markdown 支持以比较简短的自动链接形式来处理网址和电子邮件信箱,只要是用尖括号包起来, Markdown 就会自动把它转成链接。一般网址的链接文字就和链接地址一样,例如: