概述
宗旨
Markdown 的目标是实现「易读易写」。
可读性,无论如何,都是最重要的。一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。Markdown 语法受到一些既有 text-to-HTML 格式的影响,包括 Setext、atx、Textile、reStructuredText、Grutatext 和 EtText,而最大灵感来源其实是纯文本电子邮件的格式。
总之, Markdown 的语法全由一些符号所组成,这些符号经过精挑细选,其作用一目了然。比如:在文字两旁加上星号,看起来就像强调。Markdown 的列表看起来,嗯,就是列表。Markdown 的区块引用看起来就真的像是引用一段文字,就像你曾在电子邮件中见过的那样。
兼容 HTML
Markdown语法的目标是:成为一种适用于网络的书写语言。
Markdown 不是想要取代 HTML,甚至也没有要和它相近,它的语法种类很少,只对应 HTML 标记的一小部分。Markdown 的构想不是要使得 HTML 文档更容易书写。在我看来, HTML 已经很容易写了。Markdown 的理念是,能让文档更容易读、写和随意改。HTML 是一种发布的格式,Markdown 是一种书写的格式。就这样,Markdown 的格式语法只涵盖纯文本可以涵盖的范围。
不在 Markdown 涵盖范围之内的标签,都可以直接在文档里面用 HTML 撰写。不需要额外标注这是 HTML 或是 Markdown;只要直接加标签就可以了。
区块语法
段落
Markdown中的段落需要使用一个以上的空行,否则不会认为是单独一个段落。
标题
Markdown支持两种格式标题形式:
类Setext形式使用底线形式,=表示*标题,-表示第二级标题。
*标题
=======
二级标题
-------
用Markdown处理之后,效果如下:
*标题
二级标题
类Atx形式,在行首插入多个#,表示标题级数(支持六级),如下的语法形式:
#一级标题#
##二级标题
###三级标题
####四级标题
最终转化之后效果是这样的:
一级标题
二级标题
三级标题
四级标题
区块引用
使用字符">"(大于号),后面跟着一个空格,表示一个区块引用。
比如下面这种语法
> 区块引用测试
转换之后的效果如下
区块引用测试
区块引用是可以自身嵌套的,可以使用其他的 Markdown 语法,包括标题、列表、代码区块等。
比如下面的效果,可以用嵌套实现
这是一个嵌套标题
这是区块引用自身嵌套
- 这是列表项
下面是嵌入代码
// c++ code
int value = 12345;
列表
无序列表可以使用 星号*、加号+、减号-,作为标记。有序列表使用数字加一个点号。下面的语法描述
* Red
+ Green
- Blue
-
下面是有序列表
1. 小鸟
2. 大象
转换之后的语法
- Red
- Green
- Blue
下面是有序列表
- 小鸟
- 大象
代码区块
代码区块使用四个空格或一个Tab表示。通常这些区块我们并不希望它以一般段落文件的方式去排版,而是照原来的样子显示。比如下面的输入(正常输入前面加上四个空格缩进对齐):
sum = 0
for i=0, i < 100, ++i
sum += i
end for
分割线
可以在一行中使用三个以上的星号*、减号-、下划线表示分割线。比如下面两行:
***
---
实际显示效果是这样的:
区段元素
行内链接
链接的文字使用[方括号]来标记。提示信息可以用双引号包含。
This is [an test](http://test "help")
转换之后是这样的:
This is an test
强调
Markdown使用星号*、和下划线_,作为强调字符。
单个字符包围的表示斜体,两个字符包围的表示黑体。
*italic* _italic_
**bold** __bold__
实际显示效果
italic italic
bold bold
代码
Markdown支持行内代码。使用反引号`(左上角数字键1左边对应的字符)。比如下面形式:
Use `printf()` function
显示为
Use
printf()
function
自动链接和转移字符
自动链接,在名字和url一致的时候,可以用下面形式:
<http://www.help.com/>
显示效果
Markdown支持转移字符,使用反斜杠作为转移符。比如可以使用转移字符输出markdown中使用的关键字符。
- \ 反斜线
- ` 反引号
- 星号
- _ 底线
- {} 花括号
- [] 方括号
- () 括弧
井字号
- 加号
- 减号
- . 英文句点
- ! 惊叹号
可以尝试下:
这里输出中括号[4]。
附加说明
本文是使用Markdown编写的语法学习总结。内容中用到比较多的是代码区块和区块引用,主要是为了表示原始的语法格式和Markdown转换之后的效果对比。
参考
[1] Markdown 语法说明
看完效果
不得不吐槽下,博客园的markdown效果真的太差。完全没法看出来优势。