Markdown 简介
Markdown 是什么?
Markdown是一种轻量级标记语言,它以纯文本形式 (易读、易写、易更改) 编写文档,并最终以 HTML 格式发布。
Markdown也可以理解为将以 Markdown 语法编写的语言转换成 HTML 内容的工具。
谁创造了它?
它由Aaron Swartz和John共同设计,Aaron Swartz就是那位于去年(2013 年 1 月 11 日)自杀,有着开挂一般人生经历的程序员。维基百科对他的介绍是:软件工程师、作家、政治组织者、互联网活动家、维基百科人。
- 14 岁参与 RSS 1.0 规格标准的制订。
- 2004年入读斯坦福,之后退学。
- 2005年创建Infogami,之后与Reddit合并成为其合伙人。
- 2010年创立求进会(Demand Progress),积极参与禁止网络盗版法案(SOPA)活动,最终该提案被撤回。
- 2011年 7 月 19 日,因被控从 MIT 和 JSTOR 下载 480 万篇学术论文并以免费形式上传于网络被捕。
- 2013年 1 月自杀身亡。
为什么要使用它?
- 它是易读(看起来舒服)、易写(语法简单)、易更改纯文本。处处体现着极简主义的影子。
- 兼容 HTML,可以转换为 HTML 格式发布。
- 跨平台使用。
- 越来越多的网站支持 Markdown。
- 更方便清晰地组织你的电子邮件。(Markdown-here, Airmail)
- 摆脱 Word
怎么使用?
如果不算扩展,Markdown 的语法绝对简单到让你爱不释手。
Markdown 语法主要分为如下几大部分:
标题,段落,区块引用,代码区块,强调,列表,分割线,链接,图片,反斜杠 \
,符号’`’。
谁在用?
Markdown 的使用者:
- GitHub
- 简书
- Stack Overflow
- Apollo
- Moodle
- 等等
语法介绍
标题
两种形式:
使用
=
和-
标记一级和二级标题。一级标题
=========
二级标题---------
使用
#
,可表示 1-6 级标题。# 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题
段落
段落的前后要有空行,所谓的空行是指没有文字内容。若想在段内强制换行的方式是使用两个以上空格加上回车(引用中换行省略回车)。
区块引用
区块引用需要在被引用的文本前加上 >
符号。
> 这是一个区块引用实例,
> Markdown.
这是一个区块引用实例,
Markdown.
Markdown 也允许你偷懒只在整个段落的第一行最前面加上 >
:
> 平生不会相思,
才会相思,
便害相思。
> 空一缕余香在此,
盼千金游子何之。
平生不会相思, 才会相思, 便害相思。
空一缕余香在此, 盼千金游子何之。
引用的多层嵌套
区块引用可以嵌套(例如:引用内的引用), 只要根据层次加上不同数量的 >
:
>>> 锄禾日当午,汗滴禾下土。 - 李绅
>> 山有木兮木有枝,心悦君兮君不知。 - 越人歌
> 去年今日此门中,人面桃花相映红。 - 崔护
锄禾日当午,汗滴禾下土。 - 李绅
山有木兮木有枝,心悦君兮君不知。 - 越人歌
去年今日此门中,人面桃花相映红。 - 题都城南庄
锚点
网页中,锚点其实就是页内超链接,也就是链接本文档内部的某些元素,实现当前页面中的跳转。比如我这里写下一个锚点,点击跳转到指定章节。
[点击跳转至区块引用](#区块引用)
代码区块
代码区块的建立是在每行加上 4 个空格或者一个制表符(如同写代码一样)。如 普通段落:
void main() { printf(“Hello, Markdown.”); }
代码区块:
void main()
{
printf("Hello, Markdown.");
}
注意:需要和普通段落之间存在空行。
强调
Markdown 使用星号*
和底线_
作为标记强调字词的符号。
斜体
*花自飘零水自流*
花自飘零水自流
粗体
**花自飘零水自流**
花自飘零水自流
删除线
~~花自飘零水自流~~
花自飘零水自流
列表
使用·
、+
、或-
标记无序列表,如:
-(+*)第一项 -(+*)第二项 - (+*)第三项
注意:标记后面最少有一个_空格_或_制表符_。若不在引用区块中,必须和前方段落之间存在空行。
效果:
- 第一项
- 第二项
- 第三项
有序列表的标记方式是将上述的符号换成数字,并辅以.
,如:
1 . 第一项 2 . 第二项 3 . 第三项
效果:
- 第一项
- 第二项
- 第三项
分割线
分割线最常使用就是三个或以上*
,还可以使用-
和_
。
链接
Markdown 支持两种形式的链接语法:行内式和参考式两种形式,行内式一般使用较多。
行内式
[]
里写链接文字,()
里写链接地址,()
中的 ""
中可以为链接指定 title 属性,title 属性可加可不加。title 属性的效果是鼠标悬停在链接上会出现指定的 title 文字。[链接文字](链接地址 "链接标题")
这样的形式。链接地址与链接标题前有一个空格。
[MPPL: Markdown to PDF with Pandoc via Latex](https://github.com/Dunky-Z/MPPL)
[MPPL: Markdown to PDF with Pandoc via Latex](https://github.com/Dunky-Z/MPPL "MPPL")
参考式
参考式超链接一般用在学术论文上面,或者另一种情况,如果某一个链接在文章中多处使用,那么使用引用的方式创建链接将非常好,它可以让你对链接进行统一的管理。
参考式链接分为两部分,文中的写法 [链接文字][链接标记]
,在文本的任意位置添加 [链接标记]:链接地址 "链接标题"
, 链接地址与链接标题前有一个空格。
全球最大的搜索引擎网站是 [Google][1]。
[1]:http://www.google.com "Google"
全球最大的搜索引擎网站是 Google。
图片
图片的创建方式与超链接相似,而且和超链接一样也有两种写法,行内式和参考式写法。
语法中图片 Alt 的意思是如果图片因为某些原因不能显示,就用定义的图片 Alt 文字来代替图片。图片 Title 则和链接中的 Title 一样,表示鼠标悬停与图片上时出现的文字。Alt 和 Title 都不是必须的,可以省略,但建议写上。
图片行内式
![图片 Alt](图片地址 "图片Title")
![](https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/Markdown-mark.svg/2880px-Markdown-mark.svg.png)
图片参考式
在文档要插入图片的地方写 ![图片 Alt][标记]
。
在文档的最后写上 [标记]:图片地址 "Title"
。
![MarkdownLogo][MarkdownLogo]
[MarkdownLogo]:../img/Markdown-mark.png "MarkdownLogo"
反斜杠\
相当于反转义作用。使符号成为普通符号。
代码
对于程序员来说这个功能是必不可少的,插入程序代码的方式有两种,一种是利用缩进 (Tab), 另一种是利用 “`” 符号 (一般在 ESC 键下方) 包裹代码。
- 插入行内代码,即插入一个单词或者一句代码的情况,使用 `code` 这样的形式插入。
- 插入多行代码,可以使用缩进或者 ``` code ```, 具体看示例。
代码行内式
PHP 打印堆栈信息 `debug_backtrace()`。
PHP 打印堆栈信息
debug_backtrace()
。
缩进式多行代码
缩进 4 个空格或是 1 个制表符。
一个代码区块会一直持续到没有缩进的那一行 (或是文件结尾)。
$closure = function () use($name) {
return $name;
}
$closure = function () use($name) {
return $name;
}
用六个 ` 包裹多行代码
> ```c # 为了能够在 Markdown 里演示,所以加了>符号
#include <stdio.h>
int main()
{
printf("Hello, World!\n");
return 0;
}
> ```
#include <stdio.h>
int main()
{
printf("Hello, World!\n");
return 0;
}
内容目录
在段落中填写 [TOC]
以显示全文内容的目录结构。
表格
- 不管是哪种方式, 第一行为表头, 第二行分隔表头和主体部分, 第三行开始每一行为一个表格行。
- 列于列之间用管道符
|
隔开。原生方式的表格每一行的两边也要有管道符。 - 第二行还可以为不同的列指定对齐方向。默认为左对齐, 在
-
右边加上:
就右对齐。
简单方式:
诗名|作者|朝代
-|-|-
白头吟|卓文君|两汉
锦瑟|李商隐|唐代
登科后|孟郊|唐代
诗名 | 作者 | 朝代 |
---|---|---|
白头吟 | 卓文君 | 两汉 |
锦瑟 | 李商隐 | 唐代 |
登科后 | 孟郊 | 唐代 |
原生方式:
|诗名|作者|朝代|
|-|-|-|
|白头吟|卓文君|两汉|
|锦瑟|李商隐|唐代|
|登科后|孟郊|唐代|
诗名 | 作者 | 朝代 |
---|---|---|
白头吟 | 卓文君 | 两汉 |
锦瑟 | 李商隐 | 唐代 |
登科后 | 孟郊 | 唐代 |
为表格第二列指定方向:
诗名|名句
-|-:
梦微之|君埋泉下泥销骨。
上邪|上邪,我欲与君相知,长命无绝衰。
诗名 | 名句 |
---|---|
梦微之 | 君埋泉下泥销骨。 |
上邪 | 上邪,我欲与君相知,长命无绝衰。 |
注脚
在需要添加注脚的文字后加上脚注名字[^注脚名字]
, 称为加注。 然后在文本的任意位置(一般在最后)添加脚注, 脚注前必须有对应的脚注名字。
使用 Markdown[^1] 可以效率的书写文档,直接转换成 HTML[^2]。
[^1]: Markdown 是一种纯文本标记语言
[^2]: HyperText Markup Language 超文本标记语言
LaTeX 公式
$ 表示行内公式
质能守恒方程可以用一个很简洁的方程式 $E=mc^2$ 来表达。
质能守恒方程可以用一个很简洁的方程式$E=mc^2$来表达。
$$ 表示整行公式
$$\sum_{i=1}^n a_i=0$$
$$f(x_1,x_x,\ldots,x_n) = x_1^2 + x_2^2 + \cdots + x_n^2 $$
$$\sum^{j-1}_{k=0}{\widehat{\gamma}_{kj} z_k}$$
$$\sum_{i=1}^n a_i=0$$
尝试一下
- Chrome下的插件诸如
stackedit
与markdown-here
等非常方便,也不用担心平台受限。 - 在线的Cmd Markdown 编辑阅读器 - 作业部落出品。
- Windowns下的Typora — a markdown editor, markdown reader。
- Mac下的 Mou 是国人贡献的,口碑很好。
- Linux下的 ReText 不错。
当然,最终境界永远都是笔下是语法,心中格式化。
注意:不同的 Markdown 解释器或工具对相应语法(扩展语法)的解释效果不尽相同,具体可参见工具的使用说明。 虽然有人想出面搞一个所谓的标准化的 Markdown,没想到还惹怒了健在的创始人 John Gruber。
以上基本是所有 traditonal Markdown 的语法。
关于其它扩展语法可参见具体工具的使用说明。