一、什么是 Markdown?

Markdown 是一种轻量级的 标记语言,相对于复杂的 HTML 而言,M↓ 易读易写,非常容易学习掌握。

所谓标记语言,就是标识一段文本在文档中的性质的代码。譬如上文中加粗的 标记语言 四个字,在 HTML 中就用 <strong>标记语言</strong> 来标识;又比如一级标题 一、什么是 Markdown? 在 HTML 中就用 <h1>一、什么是 Markdown</h1> 来标识。

从上述例子中可以看出,使用 HTML 非常繁琐。M↓ 对这些标记符号进行了简化处理,非常容易掌握,同时让作者更专注于内容而不是格式,并且源文件阅读起来清晰明了。

可见 M↓ 来源于 HTML,但它不会取代 HTML。因为 M↓ 只对应 HTML 标记的一小部分。但是,不在 M↓ 涵盖范围之内的 HTML 标签,都可以直接在文档里直接撰写。如使用 <kbd>M</kbd> 标签输入 M 键。

二、标准 Markdown 的语法规范

M↓ 语法形式并不单一,譬如 -+* 都可以作为无序列表的标记。本文只选取其中一种形式介绍。

1、标题

# 1级标题
## 2级标题
### 3级标题

根据 # 的数目可以支持 1-6 级标题。

2、段落与强制换行

一行后紧跟两个空格  
可以实现换行,否则
只视作一个空格,无法完成换行。

新段落需要额外空一行。

一行后紧跟两个空格
可以实现换行,否则 只视作一个空格,无法完成换行。

新段落需要额外空一行。

3、加粗、斜体以及删除

__加粗__ 、 _斜体_ 以及 ~~删除~~

加粗斜体 以及 删除

4、列表

- Markdown 支持:
 1. 有序列表;
 2. 无序列表;
- 列表允许嵌套。
  • Markdown 支持:
    1. 有序列表;
    2. 无序列表;
  • 列表允许嵌套。

5、引用与转义符号 \

> Markdown 使用 `\` 插入一些特殊符号,如 \`

Markdown 使用 \ 插入一些特殊符号,如 `

6、代码与强制换行

```markdown
区块代码有两种方式:
1、左侧统一缩进四个空格;
2、用```包围,并可注明语言。
```

段内代码由 ` 包围,如上述的「Markdown 使用 \ 插入一些特殊符号」。

7、超链接、分割线与图片

[博客地址](http://blog.zhaohengbo.com/)

---

![Github头像](https://avatars2.githubusercontent.com/u/10451648?v=3&s=460)

博客地址


Github头像

三、扩展的 Markdown 方言

随着 M↓ 的不断发展,不断有人对其语法进行扩展,其中最重要的就是对表格的支持:

| 项目  | 单价  | 数量 |
| :--   | :--:  | --: |
| 计算机| \$1600| 15   |
| 手机  | \$120 | 340  |
项目 单价 数量
计算机 $1600 15
手机 $120 340

不少 Markdown 方言用 [TOC] 生成文章导航目录,而 kramdown 则使用下面的方法:

* TOC
{:toc}

默认生成的目录列表会添加 id 值 markdown-toc,可以通过 {:toc #my-id} 自定义;目录深度可以通过往 _config.yml 文件中添加 toc_levels 选项来定制,默认为 1..6,表示标题一至标题六全部渲染;如果要把某一标题从文章导航中排除,则在该标题的下一行写上 {:.no_toc}

从上述示例可见 M↓ 扩展语法的实现方法并不统一;除此之外,不同方言支持的语法类型并不完备。

常见的扩展语法类型
脚注1、缩略语(如 M↓)、流程图、时序图、定义型列表(如本例)、上下标、任务清单等等。
常见的扩展语法类型  
:   脚注[^footnote]、缩略语(如 M↓)、流程图、时序图、定义型列表(如本例)、上下标、任务清单等等。

[^footnote]: 这里是脚注

*[M↓]: Markdown

四、Markdown 编辑平台简介

M↓ 已被许多平台支持,如 Typora2、StackEdit3、Classeur4、、GitHub5、Pandoc6、作业部落7、为知笔记8、博客园9、简书10、小书匠11、马克飞象12等。

其中,简书暂不支持 LaTex 公式13,如 $c^2=a^2+b^2$ 。需要与数学公式打交道的可以直接排除;StackEdit、小书匠功能虽然强大到爆炸,但遗憾的是没有移动端;为知笔记可以实现手机电脑同步,并且也拥有多样化的功能,推荐普通用户使用。

值得一提的是 Pandoc,Pandoc 支持多种格式的互相转化。如命令 pandoc file.md -o file.docx 可将 M↓ 编辑的文档转化为 word 格式。

如果您喜欢这篇文章,欢迎转载、演绎或用于商业目的,但请务必保留作者署名以及本文链接!
Copyright © Pandaman