Markdown 入门指北

几种不同的Markdown语法标准

  • 原生Markdown
  • GFM(Github Flavored Markdown):
    • 采用围栏式(Fenced式)区块代码:在代码的上下一行用3个反引号,可选择性定义代码语种,并支持代码高亮。
    • 列表嵌套方法:改为每次嵌套缩进两个空格。
    • 支持任务列表:在每个列表项目加入[ ],完成任务用 [x]
    • 支持简单表格
  • PFM(Pandoc Flavored Markdown):
    • 支持简单表格、多行表格、格框表格和管线表格四种表格样式
    • 支持文件标题区块(类似元数据)
    • 支持上标、下标
    • 支持数字公式
    • 支持内嵌TeX
  • MultiMarkdown
    • 支持元数据:标题、作者、日期等信息,兼容部分YAML。
    • 支持添加链接和图片的属性。
    • 支持部分复杂表格:兼容PHP Markdown Extra的表格,同时可以——多行表头,单元格横向合并,表格分区,表格下行表格说明等。
    • 支持脚注:同PHP Markdown Extra中的脚注。
    • 支持参考文献(Citations)

参考:

Markdown语法

(0)换行和转义

换行: 文字末尾两个或以上的空格.
转义: \

(1)一级/二级题目

第一种方式,使用# 号标记,可表示 1-6 级标题

另一种方式,使用等号和横线:
一级题目和正文之间用”====”分开
如果是二级题目,则用“—-”分开

题目
=====
正文

(2) 标题

Atx-风格的标题在每行的开头使用1-6个#号字符,分别对应标题级别1-6

(3) 列表

无序列表可使用星号“*”、加号“+”和连字符 “-”

*   Red
*   Green
*   Blue

有序列表用“数字. ”的方式

1. RED
2. GREEN

(4)代码块

在行内插入一句代码的话,将代码用两个包括起来即可,这是夹杂着一些代码的文字内容。
在每行开头,或者段落开头使用>符号也可以引用一个段落,直到遇到空行段落结束。
如果是代码块,可以在行首增加Tab,注意除了每行开头都有Tab之外, 每行结束也要有两个及以上空格表示一行结束。 代码块在遇到没有TAB缩进的一行,或者文件末尾时自动结束。
除此之外还有使用三个”`”,或者 的方式包围代码块:

void bubble_sort(int* a, int size)
{
_DEBUG_ENTER(bubble_sort);

int i,j;
for(i=1; i<size-1; i++)
for(j=0; j<size-i; j++)
{
if(a[j]>a[j+1])
{
swap_array(&a[j],&a[j+1]);
}
}
}

(5)引用

只需要在行开头增加>符号+空格即可:

这是一行引用的文字

引用结束前要有包括两个以上空格的“空行”作为引用结束的标记。

(6)强调

Markdown 使用星号(*)和底线(_)作为标记强调字词的符号,被 *_ 包围的字词会被转为粗斜体. 例如:
强调 或者 _强调_
加重强调 或者 加重强调

(7)超链接

使用 <> 包括的 URL 或邮箱地址会被自动转换为超链接,例如:

[微博](http://weibo.com)  效果是这样的:

微博

(8)图片

使用![]来放置图片, 例如:

![sebug.net](http://ssvq5.sinaapp.com/sv4/img/ssv_logo_3ee2.png "sebug.net") 效果如下

sebug.net

Markdown历史

Markdown是一种轻量级标记语言,创始人为John Gruber。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。

自从John Gruber2004年发布Markdown之后,Markdown进入了自由生长的状态,因为创始人John Gruber打自2004年之后就没有更新过Markdown。因为原生Markdown只是一个轻量级的标记语言,很多功能不具备。为了扩充Markdown的功能,很多Markdown拓展语法被开发出来,其中著名的有GFM、PHP Markdown Extra、MultiMarkdown、Pandoc Markdown(PFM)等等:

  • GFM: Github扩展的Markdown语法,这种衍生Markdown叫做Github Flavored Markdown,简称 GFM。与原生Markdown主要区别:
    • 采用围栏式(Fenced式)区块代码:在代码的上下一行用3个反引号 ```,可选择性定义代码语种,并支持代码高亮;
    • 列表嵌套缩进两个空格;
    • 支持任务列表:[x]
    • 支持简单表格
      • 删除线(新增):用两个波浪号~~
  • MultiMarkdown: 原生markdown文档只能从纯文本转换HTML。而MultiMarkdown则是扩大了原生markdown的转换范围,让其可以方便的转换成:HTML/XHTML、LaTeX、OPML。与原生Markdown主要区别:
    • 支持YAML元数据
    • 支持脚注
    • 支持部分复杂表格
    • 支持参考文献(Citations)
    • 支持栅栏式区块代码:上下行3到5个反引号包裹代码
    • 支持MathJax公式(区块与行内)
    • 支持上标与下标
    • 支持目录:添加目录
  • Pandoc’s Markdown(PFM)
    • 围栏式区块代码
    • 区块引用之前一定要预留空行

参考: