轻松记录您
灵感和创意

Markdown 简明语法

我希望用简洁明了的方式为大家介绍一下 Markdown 的基本语法,进一步向大家揭示 Markdown 的强大之处。

段落和换行#

Markdown 以一段完整的空行作为段落间隔,「完整」的意思是允许你包含 ⌴ space 空格符和 ⇥ tab 制表符。单独的一个 ↵ enter 回车符换行并不被认为另起了一个段落,哪怕你像中文写作一样换行以后用 ⇥ tab 制表符缩进。

我建议大家养成用一个完整的空行分割段落的习惯,这样对于别人阅读你的文章是很友好的,密密麻麻「摩肩接踵」的文字会让人感到头昏脑胀。

标题#

Markdown 支持两种标题的语法,类 Setext 和类 atx 形式。

类 Setext 形式的标题在标题下一行使用连续两个及以上=符号表示一级标题,使用连续两个及以上-符号表示二级标题,例如:

Copy这是一级标题==这是二级标题—

这是一级标题

这是二级标题#

类 Atx 形式则是在行首插入1到6个 # 符号,对应到标题1到6阶, # 符号和标题之间需要一个空格,例如:

Copy# 这是一级标题## 这是二级标题### 这是三级标题#### 这是四级标题##### 这是五级标题###### 这是六级标题

这是一级标题

这是二级标题#

这是三级标题#

这是四级标题#

这是五级标题

这是六级标题

区块引用#

Markdown 标记区块引用是使用类似 e-mail 中用 > 的引用方式,在需要引用的文字之前使用 > 符号即可,注意在 > 符号与引文之间需要一个空格。

当你需要进行区块引用,也就是多段引用时,只需在每段之前都加上 > 符号,包括空行。

引用允许嵌套使用,引文内的引文只需要连续使用 > 符号即可。

引文内任何 Markdown 语法依旧生效,比如列表、标题等。例如

Copy> 这是引文的第一段> 这是引文的第二段>> 这是内嵌的二级引文> ### 引文内还可以使用标题等其他语法标记

这是引文的第一段

这是引文的第二段

这是内嵌的二级引文

引文内还可以使用标题等其他语法标记#

列表#

Markdown 支持非常直观的无序列表和有序列表。

无序列表使用 + 加号、- 减号和 * 星号加空格来标识,列表的嵌套使用 ⌴ space 空格符(建议使用4个)或 ⇥ tab 制表符缩进,例如:

Copy这是一个无序列表+ 项目1+ 项目2+ 项目3这是一个无序列表- 项目1- 项目2  – 项目2.1  – 项目2.2- 项目3 这是一个无序列表* 项目1* 项目2* 项目3  * 项目3.1    * 项目3.1.1

这是一个无序列表

项目1

项目2

项目3

这是一个无序列表

项目1

项目2

项目2.1

项目2.2

项目3

这是一个无序列表

项目1

项目2

项目3

项目3.1.1

项目3.1

有序列表也非常的直观,只需要使用数字接着一个 . 英文句点然后空格,就可以标识一个有序列表了。值得一提的是任何一个数字都可以触发有序列表,并按正确的数序予以显示。例如:

Copy这是一个有序列表1. 项目一2. 项目二3. 项目三这也是一个有序列表8. 项目一1. 项目二3. 项目三

这是一个有序列表

项目一

项目二

项目三

这也是一个有序列表

项目一

项目二

项目三

强调#

Markdown 使用 * 星号和 _ 下划线作为标记强调字词的符号,被 * 或 _ 包围的字词会被显示为斜体,用两个 * 或 _ 包起来的话,则会被显示为粗体,用两个 * 或 _ 包起来的话,则会被显示为粗斜体,例如:

Copy_我是一行斜体字_**我是一行粗体字*****我是一行粗斜体***

我是一行斜体字

我是一行粗体字

我是一行粗斜体

在这里说一句,因为中文字体鲜有斜体设计,大部分字体显示效果都不尽人意,所以不建议大家使用斜体强调中文。

代码标识和代码区块#

作为一名码农常常需要往自己的文稿中写入大量的代码,而代码的排版和显示甚至于使用的字体与普通文字都是很不一样的,Markdown 对于代码区块有很好的支持。值得一提的是,代码区块中的所有输入都会按照原样输出,包括连续的空格。

Markdown 中的代码标识主要有行内代码和代码区块两种。行内代码用一对 反引号(位于键盘 ⎋ esc 键下方)标识。例如:

Copy我是可爱的 \⌘ command\ 键,当我设置变量 \int a = 20;\ 时,就可以内嵌行内代码了。

我是可爱的 ⌘ command 键,当我设置变量 int a = 20; 时,就可以内嵌行内代码了。

当需要输入大段的代码时,只需要用一对连续3个  反引号  将代码区块包围(enclose)起来就可以了,第一组反引号后可以标注代码块的语言以帮助编辑器识别,例如:

Copy#include#includeint main(){    printf(“Hello world!”);                   // 教科书的写法    puts(“Hello world!”);                     // 我最喜欢的    puts(“Hello” ” ” “world!”);               // 拼接字符串    std::cout << “Hello world!” << std::endl; // C++风格的教科书写法    return 0;}

还有一种产生区块代码的方式,是在每段的段首使用多于1个 ⇥ tab 制表符或者4个 ⌴ space 空格符进行整体缩进。由于这种方法不方便使用而且极易混淆视听,所以我不推荐大家使用,也不多做介绍了,大家知道即可。

hilight.js 支持的语法有:

1C

ActionScript

Apache

AppleScript

AsciiDoc

AspectJ

AutoHotkey

AVR Assembler

Axapta

Bash

Brainfuck

Cap’n Proto

Clojure REPL

Clojure

CMake

CoffeeScript

C++/cpp

C#

CSS

D

Dart

Delphi

Diff

Django

Dockerfile

DOS .bat

Dust

Elixir

ERB (Embedded Ruby)

Erlang REPL

Erlang

FIX

Fortran

F#

G-code (ISO 6983)

Gherkin

GLSL

Go

Gradle

Groovy

Haml

Handlebars

Haskell

Haxe

HTTP

Ini

Java

JavaScript

JSON

Julia

Kotlin

Lasso

Less

Lisp

LiveCode

LiveScript

Lua

Makefile

Markdown

Mathematica

Matlab

MEL

Mercury

Mizar

Monkey

Nginx

Nimrod

Nix

NSIS

Objective C

OCaml

Oxygene

Parser3

Perl

pf

PHP

PowerShell

Processing

Python profile

Prolog

Protocol Buffers

Puppet

Python

Q

R

RenderMan RIB

Roboconf

RenderMan RSL

Ruby

Oracle Rules Language

Rust

Scala

Scheme

Scilab

SCSS

Smali

Smalltalk

SML

SQL

Stata

STEP Part 21 (ISO 10303-21)

Stylus

Swift

Tcl

TeX

Thrift

Twig

TypeScript

Vala

VB.NET

VBScript in HTML

VBScript

Verilog

VHDL

Vim Script

Intel x86 Assembly

XL

HTML, XML- >

分割线#

你可以在一行中用三个以上的 * 星号、 – 减号、_ 下划线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。下面每种写法都可以建立分隔线:(希望大家多使用分割线来分割自己文章的区块,提高可读性)

Copy—___- – – – – __ _ ___

链接#

Markdown 中对链接和图片采取很舒服的表达方式,我们先来看看链接。

Markdown 支持两种形式的链接语法:行内式和参考式两种形式。

行内式的语法如下:

Copy[链接文字](链接地址)[链接文字](链接地址 “title属性”)

其中(链接地址)如果是绝对地址请不要忘记加上http://,”title”属性是指鼠标移到链接上显示的文字,这个属性还可以应用在空链接上实现特殊的效果,例如:

Copy欢迎关注我的微博[@悦华](http://www.weibo.com/quentinchen/)欢迎莅临我的[简书](http://www.jianshu.com/users/6e06e4695b9a/ “这是悦华的简书”)这是[百度](http://www.baidu.com/)[请把鼠标悬停在这里](#no-link “你会看到一条注释”),不要点击

欢迎关注我的微博@悦华

欢迎莅临我的简书

这是百度

请把鼠标悬停在这里,不要点击

参考式的链接是在链接文字的括号后面再接上另一个方括号,而在第二个方括号里面要填入用以辨识链接的标记,接着,在文件的任意处,你可以把这个标记的链接内容定义出来:

Copy欢迎关注我的微博[@悦华][weibo]欢迎莅临我的[简书][jianshu]这是[百度][1][请把鼠标悬停在这里][2],不要点击其间可以有任意多的文本[weibo]:http://www.weibo.com/quentinchen/[jianshu]:http://www.jianshu.com/users/6e06e4695b9a/ “这是悦华的简书”[1]:http://www.baidu.com/[2]:#no-link “你会看到一条注释”

欢迎关注我的微博@悦华

欢迎莅临我的简书

这是百度

请把鼠标悬停在这里,不要点击

其间可以有

任意多的文本

图片#

很明显地,要在纯文字应用中设计一个「自然」的语法来插入图片是有一定难度的。

Markdown 使用一种和链接很相似的语法来标记图片,只需要在链接的语法前面加一个 ! 感叹号就可以了,同样也允许两种样式: 行内式和参考式。

行内式的语法如下:

Copy![替代文字](链接地址)![替代文字](链接地址 “title属性”)

其中[替代文字]是指当图片加载不出来时显示的替代文字以提高文章的可读性,例如:

Copy![Aaron Swartz](http://pic.baike.soso.com/p/20130113/20130113123158-66539251.jpg “Markdown 开发组帅哥 Aaron Swartz”)![这就是一张裂掉的图(╬ ̄皿 ̄)凸](nothing)

图片的参考式插入和链接的参考式是一样的,我就不做过多的赘述了。

想必大家也发现了,由于 Markdown 是纯文本语言,里面是不可能真的插入一张照片的,除非使用工具(后文会介绍)直接拖拽图片进来,否则我们还需要借助图床来插入图片,下面为大家推荐几个好用的图床:

七牛云存储 – 国内大公司云空间,各网速度都挺快

https://t.williamgates.net – 简单好用,速度看网络

Photo Bucket – 据说是BBC官方图床

自动链接#

Markdown 提供了一种快捷方式「自动地」定义链接和 E-mail 地址:直接用一对尖括号把 URL 或 E-mail 地址包住。这表示链接文本就是 URL 本身,E-mail 文本就是 E-mail 本身。这样你就得到了一个可点击的链接,如:

Copy

自动 E-mail 地址工作方式相似,只有一点不同。Markdown 自动的用一些十进制和十六进制数字表示你的 E-mail,以防止遭遇垃圾邮件袭击。 例如:

Copy

会被转换为:

Copy&#x61;&#x64;&#x64;&#x72;&#x65;ss@ex&#x61;m&#x70;&#x6C;e&#x2E;com

浏览器会将它渲染为一个可点击的链接,并正确显示 address@example.com。

这种实体编码的小方法可以骗过一些收集邮件地址的机器人,不过它确实无法骗过所有的机器人。有总比没有强,聊胜于无。能阻止一点就阻止一点好了。

反斜杠#

Markdown 可以利用 \ 反斜杠来插入一些在语法中有其它意义的符号,例如:如果你想要用星号加在文字旁边的方式来做出强调效果,你可以在星号的前面加上反斜杠:

Copy\*我只想用星号来强调这段内容\*

我只想用星号来强调这段内容

Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号:

\ 反斜杠

* 星号

_ 下划线

{} 花括号

[] 方括号

() 园括号

# 井号

+ 加号

– 减号

. 英文句点

! 敢叹号

反引号 <strong>Markdown</strong> 进阶语法# 为适应更多更复杂的描述,尤其是理工科文字工作者的编辑需求,<strong>Markdown</strong> 语言扩展出了 Multi<strong>Markdown</strong> ,简称 MMD。MMD有更多的标识,使得 <strong>Markdown</strong> 的「描述」能力大大增强。(以下介绍的语法并非所有的解释器都能识别,但肯定也会逐渐得到广泛认可) 锚点链接# 锚点是 HTML 文档内部链接的一种形式,既然 <strong>Markdown</strong> 继承于 HTML,是它的一个子集,那应该对锚点也是支持的,所以我们可以使用 Copy 代码在文档的任意一处设置锚点,然后将 Copy[链接文字](链接地址)[链接文字](链接地址 "title属性") 中的 (链接地址) 改为相应的 (#name) 即可。例如: 我在前面「图片」的那个小节设置了一个 id="photo" 的锚点,那么下面的代码将会成功的链接那个锚点: Copy[如何在 <strong>Markdown</strong> 中插入图片](#photo) 如何在 <strong>Markdown</strong> 中插入图片 LaTeX 公式[2]# LaTeX 的数学公式主要有两种,即行内公式(Inline Formulas)和块级公式(Display Formulas)。行内公式内嵌于正文文本中间,与正文文字行高相等;块级公式则单独成行。 行内公式# 用$...$符号包围的 LaTeX 代码,例如: Copy这样的代码可以生成如$x^n+y^n=z^n$这样的行内公式。 这样的代码可以生成如xn+yn=znxn+yn=zn这样的行内公式。 块级公式# 用$$...$$符号包围的 LaTeX 代码: Copy这样的代码可以生成如$$x=\dfrac{-b\pm\sqrt{b^2-4ac}}{2a}$$`这样的块级公式。

这样的代码可以生成如

x=−b±b2−4ac−−−−−−−√2ax=−b±b2−4ac2a这样的块级公式。

对理工科的同学而言,LaTeX 公式的插入是一个非常值得探讨的话题,我在另一篇文章《Markdown 下 LaTeX 公式、编号、对齐》中做了深入的介绍,感兴趣的读者可以打开看看。

表格#

表格是纯文本格式文字比较难以表达的一个部分,Markdown 在这一点上做的也不是非常出彩,下面的例子是一个表格绘制语法的展示:

Copy| 项目        | 价格   |  数量  || ——–   | —–:  | :—-:  || 计算机     | $1600 |   5     || 手机        |   $12   |   12   || 管线        |    $1    |  234  |

项目价格数量

计算机$16005

手机$1212

管线$1234

表格由表头和表项组成,用 |—|符号组隔开即可,其中 |:–| 表示表项左对齐, |:–:| 表示表项居中对齐,|–:| 表示表项右对齐。

删除线#

使用 ~~ 包围文本表示删除线,例如:

Copy~~这是一段错误的文本。~~

这是一段错误的文本。

注脚#

使用 [^keyword] 表示注脚,在文章的任意位置输入 [^keyword]: 脚注内容 可以在文章最后生成注脚。

Copy这是一个注脚[^footnote]的样例。这是第二个注脚[^footnote2]的样例。[^footnote]: 这是一个*注脚*的**文本**。[^footnote2]: 这是另一个*注脚*的**文本**。

这是一个注脚^footnote的样例。

这是第二个注脚^footnote2的样例。

流程图#

Copyst=>start: 开始e=>end: 结束op=>operation: 问你个事儿cond=>condition: 这篇文章写的好么st->op->condcond(yes)->econd(no)->opst=>start: 开始e=>end: 结束op=>operation: 问你个事儿cond=>condition: 这篇文章写的好么st->op->condcond(yes)->econd(no)->op

以及时序图:

Copy李雷->韩梅梅: 韩梅梅,你现在好吗,他好吗?Note right of 韩梅梅: 迟疑了一会儿韩梅梅–>李雷: 我很好,他也很好! 你呢,你还好吗,她好吗?Note left of 李雷: 顿了顿李雷->韩梅梅: 我很好,她刚才告诉我她也很好。Note right of 韩梅梅: 无语凝噎李雷->韩梅梅: 韩梅梅,你现在好吗,他好吗?Note right of 韩梅梅: 迟疑了一会儿韩梅梅–>李雷: 我很好,他也很好! 你呢,你还好吗,她好吗?Note left of 李雷: 顿了顿李雷->韩梅梅: 我很好,她刚才告诉我她也很好。Note right of 韩梅梅: 无语凝噎

提示:想了解更多,请查看流程图语法以及时序图语法

内容目录#

在段落中填写 [TOC] 以显示全文内容的目录结构。

目录

从前码字时我们面临着什么困境

标记语言显神威

到底什么是 Markdown

所以为什么我们要使用 Markdown

Markdown 编辑器推荐#

诚然,简便轻巧的 Markdown 语言只需要一个小小的记事本或者文本编辑就可以轻松胜任,但正所谓「工欲善其事,必先利其器」,「好马还需好鞍配」,Markdown 如果配上一个强大的编辑器,那肯定会让自己感到舒心,让编辑工作事半功倍。

什么样的编辑器才是一个好的编辑器呢?

首先,作为一门「标记型语言」,最重要的就是能够实时查看自己的「标记」效果是否正确。所以,「分屏显示,同屏滚动」是一款优秀编辑器的基本功能。其次,能对 Markdown 的语法有良好的支持,尽可能支持最新的扩展语法

未经允许不得转载:坚果之云 Markdown » Markdown 简明语法
分享到: 更多 (0)

坚果云Markdown轻松记录您 灵感和创意

坚果云Markdown下载坚果云Markdown介绍