简介
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,例如
测试
。在 HTML 中,某些字符是预留的,例如 < 和 >,如果直接使用,浏览器会误以为它们是标签的一部分。要正确显示这些字符,必须在HTML中使用字符实体,比如 > 号的字符实体为 【<】 或 【<】。在Markdown文档中书写的 < 和 & 会被转换为 【<】 和 【&】,如果书写的是 < 则会保持原样。
段落
段落是指HTML中的
标签。空行是指行内什么都没有,或者只有空格和制表符。如果行与行之间有一个以上的空行,则会被转换为不同的
标签,即被视为不同的段落,否则被视为同一段落。
例如:
1
2
3
转换为:
1 2
3
换行
换行是指HTML中的
标签。如果想在同一个段落中换行,那么需要在上一行的结尾输入两个以上的空格然后回车,Markdown会在上一行的结尾插入
。
标题
标题是指HTML中的
第一种是在标题的下一行使用任何数量的=表示一级标题,任何数量的-表示二级标题,最多就两级。
例如:
标题1
=
标题2
-
转换为:
第二种是使用#,格式为#标题内容,#的数量表示标题的级别,最多6个#。
例如:
#标题
##标题
###标题
####标题
#####标题
######标题
#######标题
转换为:
列表
列表分为无序列表和有序列表。
无序列表
无序列表是指HTML中的
例如:
* Red
* Green
* Blue
转换为:
有序列表
有序列表是指HTML中的
例如:
1. Red
1. Green
2. Blue
转换为:
特殊用法
列表中的每一项都可以包含多个段落,每一段最好缩进一样的空格,空格数小于4。
例如:
* 第一段
第二段
转换为:
第一段
第二段
列表可限无限嵌套列表,只需要每次多加4个空格既可。
例如:
* 1
* 2
* 3
转换为:
块引用
即HTML中的
标签,格式为>引用内容。在每个段落的第一行最前面加上> ,就可以引用整个段落,当然也可以在段落的每一行最前面加上> ,效果是一样的。块引用可以无限嵌套块引用,只需要每次多加一个>既可。块引用中可以使用其他Markdown格式如标题、列表等。例如:
>引用1
>>引用2
>>>引用3
转换为:
引用1
引用2
引用3
代码区块
即HTML中的
标签和标签,只需要缩进4个空格即可,从最开始缩进4个空格的那一行到第一次没有缩进4个空格的那一行或者文档末尾都会被转换。
例如:
这是一个普通段落:
这是一个代码区块
1
2
3
转换为:
这是一个普通段落:
这是一个代码区块 1 2
3
分隔线
即HTML中的
标签,格式为一行中用三个以上的星号、减号、下划线,行内不能有其他东西,也可以在星号或是减号中间插入空格。例如:
* * *
***
*****
- - -
---------------------------------------
链接
即HTML中的标签,Markdown支持两种形式的链接语法,行内链接和参考链接。
行内链接
在方块括号后面紧接着圆括号并插入网址链接,如果你还想要加上链接的 title属性,只要在网址后面,用双引号把文字包起来即可。
例如:
[百度](https://www.baidu.com "百度")一下
转换为:
百度一下
参考链接
参考链接是在链接文字的方括号后面再接上另一个方括号,而在第二个方括号里面写入链接标记,在文件的任意处,你可以把这个链接标记的内容定义出来。链接标记内容的形式为:
方括号,里面输入链接文字;
接着一个英文冒号;
接着一个以上的空格;
接着链接的网址;
紧接着 title 属性,可选,可以用单引号、双引号或是圆括号包着。
例如:
[bd]: https://www.baidu.com "百度"
[百度][bd]一下
转换为:
百度一下
隐式链接标记功能让你可以省略指定链接标记,这种情形下,链接标记会视为等同于链接文字,要用隐式链接标记只要在链接文字后面加上一个空的方括号,
例如:
[bd]: https://www.baidu.com "百度"
[bd][]一下
转换为:
bd一下
强调
即HTML中的和标签,Markdown使用*和_作为强调的符号,被*和_包围的会被转换成用 标签包围,用两个*和_包围的会被转换成用 标签包围。
例如:
*斜体*,**粗体**
转换为:
斜体,粗体
代码
即HTML中的
标签,被反引号`包围的会被转换成用
标签包围。
例如:
`代码`
转换为:
代码
图片
即HTML中的标签,Markdown支持两种形式的图片语法,行内图片和参考图片。
行内图片
格式如下:
一个英文感叹号;
接着一个方括号,里面放上图片的替代文字;
接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上可选的 title属性。
例如:
转换为:
参考图片
参考图片是在图片替代文字的方括号后面再接上另一个方括号,而在第二个方括号里面写入图片标记,在文件的任意处,你可以把这个图片标记的内容定义出来。图片标记内容的形式为:
方括号,里面输入图片替代文字;
接着一个英文冒号;
接着一个以上的空格;
接着链接的网址;
紧接着 title 属性,可选,可以用单引号、双引号或是圆括号包着。
例如:
[img]: https://t10.baidu.com/it/u=178918326,3666119923&fm=173&app=12&f=JPEG?w=550&h=367&s=ACD21DC78C5295C647F1F93A0300F012 "参考图片"
![图片][img]
转换为:
自动链接
即HTML中的标签,用尖括号括起来的URL和邮箱地址会被自动转换为超链接,其中邮件地址会被转换为实体编号。
例如:
转换为:
转换为:
转义
Markdown 可以利用反斜杠来插入一些在语法中有特殊意义的符号,格式为\特殊字符,比如以下这些符号:
\ 反斜线
` 反引号
* 星号
_ 底线
{} 花括号
[] 方括号
() 括弧
# 井字号
+ 加号
- 减号
. 英文句点
! 惊叹号
手机扫一扫
移动阅读更方便
你可能感兴趣的文章