什么是 Markdown
Markdown
是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。并且Markdown
有多种拓展,使其更加完整,成为一个成熟的文本编辑语言。目前许多的博客程序都采用Markdown
作为编辑语言,例如Typecho
。作为一名博主,应该要适当的了解Markdown
。
基础语法
这些语法在你利用博客程序书写文章是经常会用到。
标题
我们常用若干个#
来标记标题,有多少个#
就是几级标题,相当于html
中的<h1><h2><h3><h4><h5><h6>
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
同时按住Shift
和3(#)
来打出#
块引用
我们常用>
来标记块引用,有多少个>
就是几级引用,相当于html
中的<blockquote><p>
> 引用内容
>> 二级引用
>>> 三级引用
>>>> 四级引用
效果如下:
引用内容
二级引用
三级引用
四级引用
列表
我们用-
或*
来标记无序列表,相当于html
中的<ul><li>
。在一个列表项前追加 4 个空格,可使其成为嵌套列表。
- 肥宅快乐薯片
- 肥宅快乐水
- 百事
- 可口
- 肥宅快乐番
效果如下:
- 肥宅快乐薯片
肥宅快乐水
- 百事
- 可口
- 肥宅快乐番
我们使用阿拉伯数字 + .
来标记有序列表,相当于html
中的<ol><li>
。和无序列表一样,追加四个空格构造嵌套列表。
1. 打开冰箱门
2. 将大象塞进去
1. 将大象推到冰箱门前
2. 对准屁股,用力推
3. 关上冰箱门
效果如下:
- 打开冰箱门
将大象塞进去
- 将大象推到冰箱门前
- 对准屁股,用力推
- 关上冰箱门
文本样式
我们用两个*
包裹文本来标记粗体文本,两个~
包裹文本来标记删除线文本,_
或者*
包裹文本来标记斜体文本。
**粗体文本**
~~被删除的文本~~
*斜体文本* _斜体文本_
分割线
用三个及以上的-
来标记一个分割线:
---
或者
--------
可以继续往后延长,但效果相同
超链接
我们用以下语法来标记超链接,使一段文本被点击后跳转到一个指定的链接,相当于html
中的<a>
[文本](跳转地址)
图片
我们用以下语法在文章中插入一个图片,相当于html
中的<img>
。

记忆方法:在超链接前面加上一个半角字符——!
代码块
用一个`
包裹文本来标记一个行内代码块
,相当于html
中的<code>
。
`一段行内代码块`
用三个`
独立占一行,包裹代码,使其成为块级代码块,相当于html
中的<pre><code>
%```
代码(正常使用时请去掉%)
%```
在三个`
之后加上代码语言,可规范代码块内的代码高亮。
%```代码语言
与此语言相同的代码(正常使用时请去掉%)
%```
例如:
%```php
php代码(正常使用时请去掉%)
%```
摘要分隔符
用<!--more-->
定义分割正文与摘要内容,这样程序在拉取摘要时就只会拉取<!--more-->
之前的内容。
摘要内容,同时输出在正文中
<!--more-->
正文内容,不输出在摘要之中
拓展语法
这里有一些比较高级的语法~
复选框
你可以用复选框来制作任务清单,它相当于一个被禁用的<input>复选框
- [ ] 未完成的复选框
- [x] 被完成的复选框
Typecho不支持此语法
表格
表头|表头|表头
:-:|:-:|:-:
表项|表项|表项
表项|表项|表项
简单分析下,构造表格是必须要有一下的字符,同时声明表格的内的对齐方式。
-: 代表右对齐
:-: 代表居中
:- 代表左对齐
而|
可以看做是表格线。举个例子。
-:|:-:|:-
这个代表,第一竖列文本右对齐,第二竖列居中,第三竖列左对齐。
这有点类似html
中的<colgroup>
,用于定义表格各列文本的样式。
那么,我们姑且把这个东西叫做colgroup
。
在colgroup
之前的,是表头。在colgroup
之后的,是表项。都用以下方式书写。
单元格|单元格|单元格
然后,把他们合起来,就是一个完整的表格。
表头|表头|表头
-:|:-:|:-
表项|表项|表项
表项|表项|表项
效果如下:
表头 | 表头 | 表头 |
---|---|---|
表项 | 表项 | 表项 |
表项 | 表项 | 表项 |
内嵌 html
许多 markdown 编辑器只需要直接输入 html 标签即可嵌套html,但有的需要用!!!
框住,比如typecho
。
!!!
<!DOCTYPE html>
<html>
<!-- ...... -->
</html>
!!!
数学公式
比如,这是一个质能守恒公式
:
$$E=mc^2$$
那么,如何书写这样的公式?我们通常用$
包裹文本来书写数学公式。$公式内容$
来定义一个行内公式,插入在文本段落之中。$$公式内容$$
是一个独立的公式,它会被换行并且居中,类似块级元素。
用^
标记上标,如:$x^4$
x4
用_
标记下表,如:$x_1$
x1
用{}
标记组合,如:${16}_{8}O{2+}_{2}$
以下内容您可能无法理解,请不要逞强,免得疯掉。以下内容均来自:DanielGavin
汉字、字体与格式
汉字形式,符号:mbox{},如:$V_{\mbox{初始}}$
字体控制,符号:displaystyle,如:$\displaystyle \frac{x+y}{y+z}$
下划线符号,符号:underline,如:$\underline{x+y}$
标签,符号tag{数字},如:$\tag{11}$
上大括号,符号:overbrace{算式},如:$\overbrace{a+b+c+d}^{2.0}$
下大括号,符号:underbrace{算式},如:$a+\underbrace{b+c}_{1.0}+d$
上位符号,符号:stacrel{上位符号}{基位符号},如:$\vec{x}\stackrel{\mathrm{def}}{=}{x_1,\dots,x_n}$
占位符
两个quad空格,符号:qquad,如:$x \qquad y$
quad空格,符号:quad,如:$x \quad y$
大空格,符号,如:$x \ y$
中空格,符号:,如:$x : y$
小空格,符号,,如:$x , y$
没有空格,符号``,如:$xy$
紧贴,符号!,如:$x ! y$
定界符与组合
括号,符号:()big(big) Big(Big) bigg(bigg) Bigg(Bigg),如:$()\big(\big) \Big(\Big) \bigg(\bigg) \Bigg(\Bigg)$
中括号,符号:[],如:$[x+y]$
大括号,符号:{ },如:${x+y}$
自适应括号,符号:left right,如:$\left(x\right)$,$\left(x{yz}\right)$
组合公式,符号:{上位公式 choose 下位公式},如:${n+1 \choose k}={n \choose k}+{n \choose k-1}$
组合公式,符号:{上位公式 atop 下位公式},如:$\sum_{k_0,k_1,\ldots>0 \atop k_0+k_1+\cdots=n}A_{k_0}A_{k_1}\cdots$
四则运算
加法运算,符号:+,如:$x+y=z$
减法运算,符号:-,如:$x-y=z$
加减运算,符号:pm,如:$x \pm y=z$
减甲运算,符号:mp,如:$x \mp y=z$
乘法运算,符号:times,如:$x \times y=z$
点乘运算,符号:cdot,如:$x \cdot y=z$
星乘运算,符号:ast,如:$x \ast y=z$
除法运算,符号:div,如:$x \div y=z$
斜法运算,符号:/,如:$x/y=z$
分式表示,符号:frac{分子}{分母},如:$\frac{x+y}{y+z}$
分式表示,符号:{分子} voer {分母},如:${x+y} \over {y+z}$
绝对值表示,符号:||,如:$|x+y|$
高级运算
平均数运算,符号:overline{算式},如:$\overline{xyz}$
开二次方运算,符号:sqrt,如:$\sqrt x$
开方运算,符号:sqrt[开方数]{被开方数},如:$\sqrt[3]{x+y}$
对数运算,符号:log,如:$\log(x)$
极限运算,符号:lim,如:$\lim^{x \to \infty}_{y \to 0}{\frac{x}{y}}$
极限运算,符号:displaystyle lim,如:$\displaystyle \lim^{x \to \infty}_{y \to 0}{\frac{x}{y}}$
求和运算,符号:sum,如:$\sum^{x \to \infty}_{y \to 0}{\frac{x}{y}}$
求和运算,符号:displaystyle sum,如:$\displaystyle \sum^{x \to \infty}_{y \to 0}{\frac{x}{y}}$
积分运算,符号:int,如:$\int^{\infty}_{0}{xdx}$
积分运算,符号:displaystyle int,如:$\displaystyle \int^{\infty}_{0}{xdx}$
微分运算,符号:partial,如:$\frac{\partial x}{\partial y}$
矩阵表示,符号:begin{matrix} end{matrix},如:$\left[ \begin{matrix} 1 &2 &\cdots &4\5 &6 &\cdots &8\\vdots &\vdots &\ddots &\vdots\13 &14 &\cdots &16\end{matrix} \right]$
逻辑运算
等于运算,符号:=,如:$x+y=z$
大于运算,符号:>,如:$x+y>z$
小于运算,符号:<,如:$x+y<z$
大于等于运算,符号:geq,如:$x+y \geq z$
小于等于运算,符号:leq,如:$x+y \leq z$
不等于运算,符号:neq,如:$x+y \neq z$
不大于等于运算,符号:ngeq,如:$x+y \ngeq z$
不大于等于运算,符号:notgeq,如:$x+y \not\geq z$
不小于等于运算,符号:nleq,如:$x+y \nleq z$
不小于等于运算,符号:notleq,如:$x+y \not\leq z$
约等于运算,符号:approx,如:$x+y \approx z$
恒定等于运算,符号:equiv,如:$x+y \equiv z$
集合运算
属于运算,符号:in,如:$x \in y$
不属于运算,符号:notin,如:$x \notin y$
不属于运算,符号:notin,如:$x \not\in y$
子集运算,符号:subset,如:$x \subset y$
子集运算,符号:supset,如:$x \supset y$
真子集运算,符号:subseteq,如:$x \subseteq y$
非真子集运算,符号:subsetneq,如:$x \subsetneq y$
真子集运算,符号:supseteq,如:$x \supseteq y$
非真子集运算,符号:supsetneq,如:$x \supsetneq y$
非子集运算,符号:notsubset,如:$x \not\subset y$
非子集运算,符号:notsupset,如:$x \not\supset y$
并集运算,符号:cup,如:$x \cup y$
交集运算,符号:cap,如:$x \cap y$
差集运算,符号:setminus,如:$x \setminus y$
同或运算,符号:bigodot,如:$x \bigodot y$
同与运算,符号:bigotimes,如:$x \bigotimes y$
实数集合,符号:mathbb{R},如:mathbb{R}
自然数集合,符号:mathbb{Z},如:mathbb{Z}
空集,符号:emptyset,如:$\emptyset$
数学符号
无穷,符号:infty,如:$\infty$
虚数,符号:imath,如:$\imath$
虚数,符号:jmath,如:$\jmath$
数学符号,符号hat{a},如:$\hat{a}$
数学符号,符号check{a},如:$\check{a}$
数学符号,符号breve{a},如:$\breve{a}$
数学符号,符号tilde{a},如:$\tilde{a}$
数学符号,符号bar{a},如:$\bar{a}$
矢量符号,符号vec{a},如:$\vec{a}$
数学符号,符号acute{a},如:$\acute{a}$
数学符号,符号grave{a},如:$\grave{a}$
数学符号,符号mathring{a},如:$\mathring{a}$
一阶导数符号,符号dot{a},如:$\dot{a}$
二阶导数符号,符号ddot{a},如:$\ddot{a}$
上箭头,符号:uparrow,如:$\uparrow$
上箭头,符号:Uparrow,如:$\Uparrow$
下箭头,符号:downarrow,如:$\downarrow$
下箭头,符号:Downarrow,如:$\Downarrow$
左箭头,符号:leftarrow,如:$\leftarrow$
左箭头,符号:Leftarrow,如:$\Leftarrow$
右箭头,符号:rightarrow,如:$\rightarrow$
右箭头,符号:Rightarrow,如:$\Rightarrow$
底端对齐的省略号,符号:ldots,如:$1,2,\ldots,n$
中线对齐的省略号,符号:cdots,如:$x_1^2 + x_2^2 + \cdots + x_n^2$
竖直对齐的省略号,符号:vdots,如:$\vdots$
斜对齐的省略号,符号:ddots,如:$\ddots$
流程图
首先了解一下表示流程图方向的字符:
TB 从上到下
BT 从下到上
RL 从右到左
LR 从左到右
TD 同TB
然后,用相关语法构造图形:
id + [文字描述]矩形
id + (文字描述)圆角矩形
id + >文字描述]不对称的矩形
id + {文字描述}菱形
id + ((文字描述))圆形
不同的链接方式:
A --> B A带箭头指向B
A --- B A不带箭头指向B
A -.- B A用虚线指向B
A -.-> B A用带箭头的虚线指向B
A ==> B A用加粗的箭头指向B
A -- 描述 --- B A不带箭头指向B并在中间加上文字描述
A -- 描述 --> B A带箭头指向B并在中间加上文字描述
A -. 描述 .-> B A用带箭头的虚线指向B并在中间加上文字描述
A == 描述 ==> B A用加粗的箭头指向B并在中间加上文字描述
示例:
mermaid
graph LR
start[开始] --> input[输入A,B,C]
input --> conditionA{A是否大于B}
conditionA -- YES --> conditionC{A是否大于C}
conditionA -- NO --> conditionB{B是否大于C}
conditionC -- YES --> printA[输出A]
conditionC -- NO --> printC[输出C]
conditionB -- YES --> printB[输出B]
conditionB -- NO --> printC[输出C]
printA --> stop[结束]
printC --> stop
printB --> stop
流程图内容参考自lkkwxy
共 6 条评论
已阅√
(附:你胡说!明明是PHP)
MD 是世界上最好的(标记)语言
PHP 是世界上最好的后端语言(逃)
省去排版,确实很方便~!话说wordpress也支持了嘛?
诶,貌似有些wp插件插件支持(没用过wp说实话我也不清楚)
超详细,比百度头几个教程还详细,刚好昨天查过一下,个站想支持markdown语法~~想开个读者编辑板块~
诶,我也是边学习边整理的,喜欢就好。
读者编辑听起来蛮有意思的,期待