Markdown简介

Markdown是一种用来进行快速写作的轻量「标记语言」,它用简洁的语法代替排版,而不像一般我们用的字处理软件 Word 或 Pages 有大量的排版、字体设置。它使我们专心于码字,用「标记」语法,来代替常见的排版格式。例如此文从内容到格式,甚至插图,键盘就可以通通搞定了。支持Markdown语法创作的编辑器有很多,包括很多网站也支持了Markdown的文字录入,Markdown的写作,以及导出格式十分广泛而且人性化,你可以导出 HTML 格式的文件用来网站发布,也可以十分方便的导出 PDF 格式。

  • 使用 Markdown 的优点

    • 专注你的文字内容而不是排版样式,安心写作。
    • 轻松的导出 HTML、PDF等格式和本身的.md(Markdown)文件。
    • 纯文本,所有的文本编辑器与字处理软件都可以进行编辑。
    • 随时修改你的文章版本,不必像字处理软件生成若干文件版本导致混乱。
    • 可读、直观、学习成本低。
  • 兼容 HTML

Markdown 语法的目标是:成为一种适用于网络的书写语言。
Markdown 不是想要取代 HTML,甚至也没有要和它相近,它的语法种类很少,只对应 HTML 标记的一小部分。Markdown 的构想不是要使得 HTML 文档更容易书写。
Markdown 的理念是,能让文档更容易读、写和随意改。HTML 是一种发布的格式,Markdown 是一种书写的格式。
不在 Markdown 涵盖范围之内的标签,都可以直接在文档里面用 HTML 撰写。不需要额外标注这是 HTML 或是 Markdown;只要直接加标签就可以了。
要制约的只有一些 HTML 区块元素――比如 <div>、<table>、<pre>、<p> 等标签,必须在前后加上空行与其它内容区相隔离,并且它们的开始与结尾标签不能用制表符或空格来缩进。Markdown 的生成器有足够智能,不会在 HTML 区块标签外加上不必要的 <p> 标签。

  • 特殊字符自动转换

在 HTML 文件中,有两个字符需要特殊处理: <&< 符号用于起始标签,&符号则用于标记 HTML 实体,如果你只是想要显示这些字符的原型,你必须要使用实体的形式,如 &lt;&amp;
&字符也是折磨的事情,如果你要输入「AT&T」 ,你必须要写成「AT&T」。而网址中的 & 字符也要转换。比如你要链接到:

http://www.huxinmin.com/images?num=30&q=larry+bird

你必须要把网址转换写为:

http://www.huxinmin.com/images?num=30&amp;q=larry+bird

才能放到链接标签的href属性值。这很容易忽略,这也可能是 HTML 标准检验所检查到的错误中,数量最多的。
Markdown 让你可以自然地书写字符,需要转换的由它来处理好了。如果你使用的 & 字符是 HTML 字符实体部分,它不会被转化,否则它会被转换成 &amp;
所以你如果要在文档中插入一个版权符号 ©,你可以这样写:

&copy;

Markdown 会保留它不动。而若你写:

AT&T

Markdown 就会将它转为:

AT&amp;T

相似的情况也会发生在<符号上,因为Markdown兼容 HTML ,如果你是把 < 符号作为 HTML 标签的定界符使用,那 Markdown 也不会对它做任何转换,但是如果你写:

4 < 5

Markdown 将会把它转换为:

4 &lt; 5

不过需要注意的是,code 范围内,不论是行内还是区块, < 和 & 两个符号都一定会被转换成 HTML 实体,这项特性让你可以很容易地用 Markdown 写 HTML code (和 HTML 相对而言, HTML 语法中,你要把所有的 < 和 & 都转换为 HTML 实体,才能在 HTML 文件里面写出 HTML code。)

  • Markdown官方文档

创始人的 Markdown语法说明

Markdown语法目录

  • 标题
  • 列表
  • 引用
  • 图片与链接
    • 行内式
    • 参考式
  • 粗体与斜体
  • 代码
    • 行内代码
    • 缩进代码
    • 六个```包裹的代码
  • 分割线
  • 段落
    段落的前后要有空行,所谓的空行是指没有文字内容。若想在段内强制换行的方式是使用两个或以上空格加上回车(引用中换行省略回车)。
  • 表格
  • 反斜杠
  • 删除线
  • 注脚
  • 标签分类
  • 锚点
  • 内容目录
  • 待办事宜 Todo 列表
  • 流程图和时序图
  • LaTeX 公式
    • $ 表示行内公式
    • 表示整行公式

  • 标题
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

效果:

一级标题

二级标题

三级标题

四级标题

五级标题
六级标题
  • 列表

    • 无序列表
      使用 *,+,- 表示无序列表。
     - 无序列表项 一
     - 无序列表项 二
     - 无序列表项 三
    

    效果

    • 无序列表项 一

    • 无序列表项 二

    • 无序列表项 三

    • 有序列表

    • 有序列表
      则使用数字接着一个英文句点。

     1. 有序列表项 一
     2. 有序列表项 二
     3. 有序列表项 三
    

    效果

    1. 有序列表项 一
    2. 有序列表项 二
    3. 有序列表项 三
  • 引用
    引用需要在被引用的文本前加上>符号。

>>> 嵌套引用1
>> 嵌套引用2
> 引用

效果

嵌套引用1
嵌套引用2
引用

  • 图片与链接
    插入链接与插入图片的语法很像,区别在一个!号,而且都有两种形式,行内式和参考式。
    • 行内式
      图片为:![]()
      链接为:[]()
    • 参考式
      ![图片Alt][标记]
      [链接文字][链接标记]
      然后在在文档的任意位置写上
      [标记]:图片地址 “Title”
      [链接标记]:链接地址 “链接标题”
  #行内式
  ![图灵社区](http://www.turingbook.com/Content/img/Turing.Gif)
  [胡新敏的个人博客](https://www.huxinmin.com)
  #参考式
  [胡新敏的个人博客][1]
  ![图灵社区Logo][2]
  [1]: http://www.ituring.com.cn "胡新敏的个人博客"
  [2]: http://www.turingbook.com/Content/img/Turing.Gif "图灵社区Logo"

效果
图灵社区
胡新敏的个人博客
[胡新敏的个人博客][1]
![图灵社区Logo][2]
[1]: http://www.ituring.com.cn "胡新敏的个人博客"
[2]: http://www.turingbook.com/Content/img/Turing.Gif "图灵社区Logo"

  • 粗体与斜体
    使用**或__表示粗体。
    使用*或_表示斜体。
**粗体1** 
__粗体2__
*斜体1*   
_斜体2_

效果
粗体1
粗体2
斜体1
斜体2

  • 代码
    • 行内代码
      使用两个`将代码包含即可
`行内代码`

效果
行内代码
- 缩进代码
缩进 4 个空格或是 1 个制表符
一个代码区块会一直持续到没有缩进的那一行(或是文件结尾)。

        缩进代码

效果

    缩进代码
- 六个```包裹的代码  

 \`\`\`
        六个\`\`\`包裹的代码
  \`\`\`

效果

六个```包裹的代码
  • 分割线
    分割线的语法只需要三个 * 号
    ***

效果


  • 段落
    段落的前后要有空行,所谓的空行是指没有文字内容。若想在段内强制换行的方式是使用两个或以上空格加上回车(引用中换行省略回车)。

  • 表格
    用|表示表格纵向边界,表头和表内容用-隔开,并可用:进行对齐设置,两边都有:则表示居中,若不加:则默认左对齐。
    详细说明:

    • -:为右对齐
    • :-为左对齐
    • :-:为居中对齐
    • -为默认左对齐
      注意:-这样的分隔符至少要有1个
| 序号 | 交易名 | 交易说明 |
| -: | :-: | :- |
|   1  | prfcfg | 菜单配置 |
|   2  | gentmo | 编译所有交易 |
|   100000  | sysdba | 数据库表模型汇总 |

效果

序号 交易名 交易说明
1 prfcfg 菜单配置
2 gentmo 编译所有交易
100000 sysdba 数据库表模型汇总
  • 反斜杠
    使用\表示反斜杠,相当于反转义作用。在你不想显示Markdown标记时可以使用反斜杠。
    Markdown支持的转义字符列表:

    • \ 反斜线
    • ` 反引号
    • * 星号
    • _ 底线
    • {} 花括号
    • [] 方括号
    • () 括弧
    • # 井字号
    • + 加号
    • - 减号
    • . 英文句点
    • ! 惊叹号
  • 删除线
    使用~~表示删除线。

~~这是一条删除线~~

效果
这是一条删除线

  • 注脚
    使用[^注脚名字]表示注脚。

这是一个注脚测试\[^1\]
\[^1\]: 这是一个测试,用来阐释注脚。

效果
这是一个注脚测试[1]

  • 标签分类
    一般在文首输入tags添加标签,categories添加分类:
 tags: 
   - Markdown
   - 语言
   categories:
  - 技术
  • 锚点
    Markdown默认只会在标题上生成ID锚点,且只支持英文,如果要自定义锚点的话,只能有html的标签形式来实现。
#生成的标题id="point-",中文被忽略
# point锚点

效果

point锚点

  • 内容目录
    在段落中填写 [TOC] 以显示全文内容的目录结构。
    一些markdown编辑器不支持此语法

  • 待办事宜 Todo 列表
    使用带有 [ ][x](未完成或已完成)项的列表语法撰写一个待办事宜列表

[]todo
[x]nottodo

一些markdown编辑器不支持此语法

  • 流程图
    一些markdown编辑器不支持此语法,不过可以安装插件flowchart.js来支持
    这里不再赘述。

  • LaTeX 公式

    • $ 表示行内公式
    • 表示整行公式

这里不再赘述。

Markdown编辑器推荐

在下一篇文章,我将介绍和讲解一些好用的markdown编辑器。