frank

Markdown使用文档
1 前言本篇文章介绍Markdown的基础用法,可供参考,欢迎大家纠错。2 概述2.1 用途及宗旨Markdown...
扫描右侧二维码阅读全文
06
2018/07

Markdown使用文档

1 前言

本篇文章介绍Markdown的基础用法,可供参考,欢迎大家纠错。

2 概述

2.1 用途及宗旨

Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。

Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表格、脚注、内嵌HTML等等),这些功能原初的Markdown尚不具备,它们能让Markdown转换成更多的格式,例如LaTeX。Markdown增强版中比较有名的有Markdown Extra、MultiMarkdown、 Maruku等。这些衍生版本要么基于工具,如Pandoc;要么基于网站,如GitHub和Wikipedia,在语法上基本兼容,但在一些语法和渲染效果上有改动。

Markdown的语法简洁明了、学习容易,而且功能比纯文本更强,因此有很多人用它写博客。世界上最流行的博客平台WordPress和大型CMS如JoomlaDrupal都能很好的支持Markdown。完全采用Markdown编辑器的博客平台有GhostTypecho

用于编写说明文档,并且以"README.MD"的文件名保存在软件的目录下面。

除此之外,现在由于我们有了RStudio这样的神级编辑器,我们还可以快速将Markdown转化为演讲PPT、Word产品文档、LaTex论文甚至是用非常少量的代码完成最小可用原型。在数据科学领域,Markdown已经广泛使用,极大地推进了动态可重复性研究的历史进程。

Markdown 的目标是实现「易读易写」。

可读性,无论如何,都是最重要的。一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。Markdown 语法受到一些既有 text-to-HTML 格式的影响,包括 SetextatxTextilereStructuredTextGrutatextEtText,而最大灵感来源其实是纯文本电子邮件的格式。

总之, Markdown 的语法全由一些符号所组成,这些符号经过精挑细选,其作用一目了然。Markdown 的列表看起来,十分规整。Markdown 的区块引用看起来就真的像是引用一段文字,就像你曾在电子邮件中见过的那样。

2.2 特性

Markdown 语法的目标是:成为一种适用于网络的书写语言,所以Markdown兼容html,不在 Markdown 涵盖范围之内的标签,都可以直接在文档里面用 HTML 撰写。不需要额外标注这是 HTML 或是 Markdown,只要直接加标签就可以了。

要制约的只有一些 HTML 区块元素――比如 <div><table><pre><p> 等标签,必须在前后加上空行与其它内容区隔开,还要求它们的开始标签与结尾标签不能用制表符或空格来缩进。Markdown 的生成器有足够智能,不会在 HTML 区块标签外加上不必要的 <p> 标签。

在 HTML 文件中,有两个字符需要特殊处理: <&< 符号用于起始标签,& 符号则用于标记 HTML 实体,如果你只是想要显示这些字符的原型,你必须要使用实体的形式,像是 &lt;&amp;

& 字符尤其让网络文档编写者受折磨,如果你要打「AT&T」 ,你必须要写成「AT&amp;T」。而网址中的 & 字符也要转换。比如你要链接到:

https://www.example.com/images?num=1&q=a+b

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

https://www.example.com/images?num=1&amp;q=a+b

3 语法

3.1 标题

标题从大到小分为H1~H6,需在文字前加上1~6个#

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

一级标题

二级标题

三级标题

四级标题

五级标题
六级标题

tips:最好在文字和#之间加上空格,符合语法规范。

有人问,如果我要输出的标题含有#怎么办。见下文:

##### #1
1

可见空格作用很大。

[/scode]

3.2 列表

3.2.1 有序列表

Markdown下,有序列表直接在文字前加 1. 2. 3. 符号要和文字之间加上一个字符的空格。

1. 起床
2. 洗脸刷牙
3. 吃早饭
4. 上学
  1. 起床
  2. 洗脸刷牙
  3. 吃早饭
  4. 上学

3.2.2 无序列表

熟悉 HTML 的同学肯定知道有序列表与无序列表的区别,无序列表的显示只需要在文字前加上 - 或 * 即可变为无序列表(加上一个字符的空格)

- 数学
- 信息
- 语文
- 英语

* 排比
* 拟人
* 对比
* 反复
  • 数学
  • 信息
  • 语文
  • 英语
  • 排比
  • 拟人
  • 对比
  • 反复

3.2.3 综合

有人问,一条有序列表之后接一条无序列表,为什么显示的结果,第二个无序列表依旧是作为有序列表的第二项显示,带有有序列表的列表符号?

如下的Markdown Source,

1. head
- body

为什么显示的是

  1. head
  2. body

而不是

  1. head
  • body

部分区域与上文所述不符,仍然显示第二种,原因详见下文

上文中的Markdown 规则原则上是 Github Flavored Markdown 的一个子集,而 Github Flavored Markdown 规定的语法如上文所述,所以会呈现这种情况。而不为 Github Flavored Markdown 的子集或不跟他在这一方面相同的Markdown规则则会显示第二种情况。

3.3 引用

细心的你一定发现在上文中所有Markdown显示的结果都被下面的方框括起来了

这就是引用,在文字前加>即可(加上一个字符的空格)

> 从前有座山,山里有个庙,庙里有个老和尚,给小和尚讲故事。

从前有座山,山里有个庙,庙里有个老和尚,给小和尚讲故事。

如果我想每行只显示一个分句,只需在每句话前加>(加上一个字符的空格)

> 从前有座山
> 山里有个庙
> 庙里有个老和尚
> 给小和尚讲故事

从前有座山
山里有个庙
庙里有个老和尚
给小和尚讲故事

又有人问了,我如果想在引用中实现Markdown效果,又该怎么办呢。瞧我的😎

> #### 四级标题
> - a
> - b
> - c
> - d

四级标题

  • a
  • b
  • c
  • d

在引用中还想引用,该如何实现?只需将>嵌套即可

> 微软
> > 美国
>
> 索尼
> > 日本
>
> 阿里
> > 中国

微软

美国

索尼

日本

阿里

中国

千万不要遗漏空格,养成符号后加空格的好习惯

3.4 插入文字链接

格式:[文字] (链接地址)

为了显示,在中括号和小括号之间加了空格,实际上不要加

[百度](www.baidu.com)

百度

3.5 插入图片

格式:! [图片标题] (图片地址)

为了显示,在感叹号和中括号、中括号和小括号之间加了空格,实际上不要加

![Markdown](https://cdn1.4leaf.top/Markdown.png)

Markdown

3.6 粗体字和斜体字

3.6.1 粗体字

将文字用两个*或两个_括起来即可(不需要加空格)

**我很粗!**
__我非常的粗!__

我很粗!

我非常的粗!

3.6.2 斜体字

将文字用一个*或一个_括起来即可(不需要加空格)

*我很斜!*
_我非常的斜!_

我很斜!
我非常的斜!

3.6.3 粗斜体字

**_我既粗又斜_**
__*我既粗又斜*__

我既粗又斜
我既粗又斜

3.6.4 备注

各个标记间可以混合使用,若想实现文字的其它样式,请使用html😜

3.7 代码块

在一段代码的前后个套上3个`,若想标注何种语言,在开头处加上即可

img

printf("helloworld")

cpp可以改成pascal等。不加也可以。

还有一种段代码块,见下文:

请输入`:wq`以退出并存档vim

请输入:wq以退出并存档vim。

3.8 复选框

类似无序列表,可以实现 todo-list 等功能,见下文

- [x] 上学
- [ ] 不上学 
  • [x] 上学
  • [ ] 不上学

3.9 表格

这是Markdown中较难的语法,有两种方式可以实现

  • 简单方式
Name | Subject | Score
- | :-: | -:
Frank | Maths | 100
Joy | Chinese | 96
Mike | English | 100
Ben | Sciense | 49
NameSubjectScore
FrankMaths100
JoyChinese96
MikeEnglish100
BenSciense49
  • 原生方式
| Name | Subject | Score |
| - | :-: | -: |
| Frank | Maths | 100 |
| Joy | Chinese | 96 |
| Mike | English | 100 |
| Ben | Sciense | 49 |
NameSubjectScore
FrankMaths100
JoyChinese96
MikeEnglish100
BenSciense49

不管是哪种方法,表格都分为三部分,第一行为表头,第二行为表格对齐方式,第三行开始每行代表一个表行:

每个格子的内容需要用|隔开,单词和|之间留一个空格,在原生的方式中,两边也需要|

第二行的对齐方式有三种:

  • “ - ”:左对齐
  • “ -: ”:右对齐
  • “ :-: ”:居中对齐

同样对齐符号间也需要用空格和|隔开

我们看下面这个例子:

| 参数 | 说明 | 备注
| - | - | - |
| -l | use a long listing format | 以长列表方式显示所有文件和文件夹的详细信息
| -r | reversr order while sorting | 将所有文件和文件夹按照修改时间逆序排序

| 参数 | 说明 | 备注 |
| - | - | - |
| -l | use a long listing format | 以长列表方式显示所有文件和文件夹的详细信息 |
| -r | reversr order while sorting | 将所有文件和文件夹按照修改时间逆序排序 |

有的人可能会认为参数那一栏太窄了,这种不堪的视觉效果往往让强迫症患者难以接受。还好,html就可以弥补Markdown的缺陷,甚至可以为表格锦上添花。比如可以使用<th><td>来调整表格单元宽度,用"bgcolor=[color]"以调整不同单元格的背景颜色。

部分区域没有完全支持html,所以与上文所述不符

3.9 小结

我们在此学会了Markdown主要的8种语法,是不是很有呢?再也不用担心写不出华丽的文章了。

4 工具

学会了如此多的语法,怎么能没有神之编辑器呢?当然,里可以用vim、sublime text来写,甚至使用记事本,但是,怎么能不用专业的Markdown编辑器呢?

个人极力推荐的一款Markdown编辑器,很简洁,功能较强,使用方便。但是对html支持较差,但最终渲染效果取决于你所用的Markdown渲染是否支持。

小众软件推荐,是在线Markdown编辑器,界面较为简陋。

广为人知的博客类平台,需登陆注册后方可使用,属于 Github Flavored Markdown 的一个子集。

专为印象笔记(Evernote)打造的Markdown编辑器,功能强大。

4 预告

以上就是常规Markdown的使用方法,后面我会讲Markdown高级的流程图时序图LaTeX 公式以及在特定情况下更多拓展的功能,再见!

请大家多多支持!

Last modification:August 19th, 2018 at 10:49 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment