NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
[TOC] ## 简介 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。 Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表格、脚注、内嵌HTML等等),这些功能原初的Markdown尚不具备,它们能让Markdown转换成更多的格式 ## 为什么我选择它(Markdown的优点) * 专注你的文字内容而不是排版样式,安心写作。 * 轻松的导出 HTML、PDF 和本身的 .md 文件。 * 纯文本内容,兼容所有的文本编辑器与字处理软件。 * 随时修改你的文章版本,不必像字处理软件生成若干文件版本导致混乱。 * 可读、直观、学习成本低。 ## 使用上的小问题 Markdown具有一系列的衍生版本,拥有多个版本的解析器和生成器,导致目前不同的Markdown工具集成了不同的功能(基础功能大致相同)。使用这些工具的时候要注意你要用的功能当前工具是否支持。 ## 工具 * window: MarkdownPad、MarkPad * IOS : Mou、Byword * Web端:简书、看云、有道云笔记等 ## 参考文档 * [Markdown官方语法文档(英文)] [note_url_1] * [中文的语法文档] [note_url_cn] [note_url_1]: http://daringfireball.net/projects/markdown/syntax [note_url_cn]: http://www.appinn.com/markdown/ ## 常用语法 ### 段落与换行 段落与段落之间用一个以上的空行表示。 例如: ``` 这是一个段落 这是一个段落 ``` 会被解释为: ``` <p>这是一个段落</p> <p>这是一个段落</p> ``` 不隔一个空行的换行,在一些编辑器中会被解释为换行,即插入一个`<br/>`标签;而在另外一些编辑器中则会被解释为插入一个空格,对于这种编辑器如果只是要换行,可在行尾加两个空格,即可段内换行。 --- ### 粗体和斜体 可以使用星号`*`或下划线`_`指定粗体或者斜体。被`*`或`_`包住的字词会转成斜体。用`**`或`__`包住的则为粗体。你可以随便用你喜欢的样式,唯一的限制是,你用什么符号开启标签,就要用什么符号结束。 例如: *这个是一个斜体的文字* **这是一个粗体的文字** _这是一个斜体的文字_ __这是一个粗体的文字__ *什么符号开启标签,什么符号结束_ 强调也可以插在**文字**中间 _**粗体并斜体**_ 如果有 * 空格 * 的话会被当成普通的符号 使用反斜杠\*直接插入\*星号 结果: *这个是一个斜体的文字* **这是一个粗体的文字** _这是一个斜体的文字_ __这是一个粗体的文字__ *什么符号开启标签,什么符号结束_ 强调也可以插在**文字**中间 _**粗体并斜体**_ 如果有 * 空格 * 的话会被当成普通的符号 使用反斜杠\*直接插入\*星号 --- ### 标题 Mark支持1~6级标题。通过在行首添加不同的`#`表示。你也可以选择类似闭合样式的标题方式,在行尾加入`#`,这只是为了美观。行尾的`#`不需要和行首的一样。标题级别由行首的`#`个数决定。 此外,1级标题和2级标题可以在标题下一行用底线的形式插入`=`(一级标题)或者`-`(二级标题)。任何数量的`=`和`-`都可以实现效果。 例如: ``` # 一级标题 一级标题2 = ## 二级标题 ### 三级标题 ###### 六级标题 ``` 结果: # 一级标题 一级标题2 = ## 二级标题 ### 三级标题 ###### 六级标题 --- ### 引用 在行首插入`> `表示引用 例如: > 这是一个引用示例 结果: ```xml <root> <card type=""/> </root> ``` > 这是一个引用示例 引用可以使用嵌套,只要根据层次加上不同数量的`>` 例如: >> > 引用嵌套 结果: >>> 引用嵌套 --- 在引用中也可以使用其他的Markdown语法,包括标题、列表、代码段等。 例如: > ## 这是一个标题。 > > 1. 这是第一行列表项。 > 2. 这是第二行列表项。 > > 以下是一个代码段: > > public function example():void > { > trace("this is a example"); > } 结果: > ## 这是一个标题。 > > 1. 这是第一行列表项。 > 2. 这是第二行列表项。 > > 以下是一个代码段: > > public function example():void > { > trace("this is a example"); > } --- ### 有序列表和无序列表 #### 无序列表 无序列表使用`*`、`+`或`-`作为列表标记。 例如: * 无序列表1 * 无需列表2 等同于 + 无序列表1 + 无序列表2 等同于 - 无序列表1 - 无序列表2 结果: * 无序列表1 * 无序列表2 #### 有序列表 有序列表使用数字接一个英文的句号 例如: 1. 猫 2. 狗 3. 鸡 结果: 1. 猫 2. 狗 3. 鸡 注:在有序列表上使用的数字并不会影响输出的结果。 如果你写成: 3. 猫 1. 狗 9. 鸡 或者是: 1. 猫 1. 狗 1. 鸡 你都会得到完全相同的输出结果(建议有序列表第一个项目还是从1开始写起,因为有的平台的Markdown可能会支持有序列表的start属性)。 比如在有道云协作中的输出结果为: ![image](http://i2.piimg.com/567571/54eeab8a0f9e83c0.png) 而在看云中的输出结果为: ![image](http://i2.piimg.com/567571/7967de6f43c98942.png) 有的时候会可能不小心产生列表 例如: 110. 这是一个报警电话号码 120. 这是一个急救电话号码 结果: 110. 这是一个报警电话号码 120. 这是一个急救电话号码 要避免这种状况可以在句号前面加上一个反斜杠: 110\. 这是一个报警电话号码 120\. 这是一个急救电话号码 结果: 110\. 这是一个报警电话号码 120\. 这是一个急救电话号码 --- ### 表格 注意:原生的Markdown并没有制作表格的功能。不过现在大部分衍生出来的编辑器基本都具备这功能。 使用Markdown制作表格的示例如下: ``` |名字|性别|年龄|身高| |---|:---:|---:|:---| |小明|男|18|160| |小王|男|21|161| ``` 生成的表格如下: |名字|性别|年龄|身高| |---|:---:|---:|:---| |小明|男|18|160| |小王|男|21|161| 表格代码中`|---|` 决定了此列表格的对齐方式。 * `|---|` 默认方式对齐 * `|:---|` 左对齐 * `|:---:|` 居中对齐 * `|---:|` 右对齐 --- ### 行内代码段和代码区域 #### 行内代码 单行的代码在代码的头部和尾部添加一个 ` 例如: ``` 这是一个单行代码块的示例:`trace("Hello World");` ``` 这是一个单行代码块的示例:`trace("Hello World");` #### 代码区域 有两种方式标记代码区域。一种是行首缩进四个空格或一个制表符就可以了,代码区域会一直持续到没有缩进的那一行或文件结尾。 除了缩进4个空格或者一个制表符外,还有一种为在代码开头上一行输入` ``` `或者` ~~~ ` ,在代码结尾下一行输入` ``` `或` ~~~ ` ,将代码包裹起来。 > 多行代码标签后面必须换行 例如: ``` ··· public function example():void { trace("这是一个多行代码块的示例"); } ··· ``` 结果: ``` public function example():void { trace("这是一个多行代码块的示例"); } ``` --- ### 分割线 你可以在一行中用三个以上的星号、减号、下划线来建立一个分割线。行内不能用其他东西。你也可以在星号或者减号中间插入空格。 以下每种写法都可以建立分割线: *** * * * --- ------------------- ___ --- ### 链接 Markdown支持两种形式的链接语法:行内式和参考式。 不管使用哪一种,链接文字都是用`[]`方括号来标记 #### 行内式 要建立一个行内式的链接,只要在方括号后面紧接圆括号并插入网址链接即可,如果还要加上链接的title文字,只要在网址后面,用双引号把title文字包起来。 例如: 链接到[百度](https://www.baidu.com"这是title文字")示例 结果: 链接到[百度](https://www.baidu.com"这是title文字")示例 #### 参考式 参考式的链接是在链接文字的方括号后面再接上一个方括号,而在第二个方括号里面填入用以辨识链接的标记。接着,你可以在文件的任意位置,把这个标记的链接内容定义出来。因为链接的定义可以放在文件中的任何地方,所以你可以把它放在文件的最后面,就像注解一样。 > 参考式链接在有的平台的编辑器上无法正常使用,如有道云协作 例如: 这是一个参考式[链接][link_1] 的示例 你可以在任意位置将这个标记的链接内容定义出来 你可以在任意位置将这个标记的链接内容定义出来 你可以在任意位置将这个标记的链接内容定义出来 你可以在任意位置将这个标记的链接内容定义出来 [link_1]: https://www.baidu.com/ "这是title文字" 结果: 这是一个参考式[链接][link_1]的示例 你可以在任意位置将这个标记的链接内容定义出来 你可以在任意位置将这个标记的链接内容定义出来 你可以在任意位置将这个标记的链接内容定义出来 你可以在任意位置将这个标记的链接内容定义出来 [link_1]: https://www.baidu.com/ #### 隐式链接标记功能 隐式链接标记功能可以让你省略指定链接标记,这种情况下,链接标记会等同于链接文字,要用隐式链接标记只需要在链接文字后面加上一个空的方括号即可。 例如: 这是一个链接到[百度][] 的例子。 [百度]: https://www.baidu.com/ "title" --- ### 插入图片 插入图片和链接很相似。也允许使用两种样式:行内式和参考式。 #### 行内式 `![代替文字](图片链接 "选择性的添加title文字")` 例如: ![这是一张图片](http://i1.piimg.com/567571/7d83a354ce3ed2a6.png "title文字") 结果: ![这是一张图片](http://i1.piimg.com/567571/7d83a354ce3ed2a6.png "title文字") #### 参考式 ``` ![代替文字][id] [id]: 链接地址 "title" ``` 例如: ![这是一张图片][img] [img]: http://i1.piimg.com/567571/7d83a354ce3ed2a6.png 结果: ![这是一张图片][img] [img]: http://i1.piimg.com/567571/7d83a354ce3ed2a6.png "title" --- ### 脚注 当我们在编写文档时,需要针对某些名词或者例子做出注释,比如说选自某本书或者文章等等,此时可以用到脚注功能。添加脚注只需要在想要加脚注的文字后面插上`[^脚注标记]`。然后你可以在文件任意位置将脚注内容写出来,脚注内容会显示在文件的最后。 > 注意:标注的Markdown中没有脚注,各个平台扩展的定义可能有所不同。 例如: 需要添加脚注的文字[^脚注01] [^脚注01]: 这是一个脚注的注释 结果: 需要添加脚注的文字[^03] [^03]: 这是一个脚注的注释 > ps:看云没有脚注所以看不到结果,附上别的平台工具的脚注效果图一张: ![脚注效果示意图](https://box.kancloud.cn/a288b899e6f237627e76c49dc19b433e_308x169.png) --- ### 转义 markdown支持在以下字符前面插入反斜杠 ``` \ 反斜线 ` 反引号 * 星号 _ 底线 {} 花括号 [] 方括号 () 括弧 # 井字号 + 加号 - 减号 . 英文句点 ! 惊叹号 ``` 插入之后,将不再解析这些字符,而是原样输出。 --- ### 内联HTML markdown 的语法简洁,但有其局限性,所以特意保留了内联html这种方式。任何html标签及其内容,都会原样输出到结果中。也就是说,标签中的星号等作为markdown结构的符号,以及构成html标签和实体的符号,都不会做任何转义。 例子: ``` <font color="red">颜色</font>文字示例 ``` 效果: <font color="red">颜色</font>文字示例