Markdown语法

主要内容:

Markdown是什么?
谁创造了它?
为什么使用它?
谁在用它?
怎么使用它?

正文

1. Markdown是什么?

Markdown是一种轻量级标记语言,它以纯文本形式(易读、易写、易更改)编写文档,并最终以HTML格式发布。
Markdown也可以理解为将以MARKDOWN语法编写的语言转换成HTML内容的工具。

Markdown是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。
相比WYSIWYG编辑器
优点:
1、因为是纯文本,所以只要支持Markdown的地方都能获得一样的编辑效果,可以让作者摆脱排版的困扰,专心写作。
2、操作简单。比如:WYSIWYG编辑时标记个标题,先选中内容,再点击导航栏的标题按钮,选择几级标题。要三个步骤。而Markdown只需要在标题内容前加#即可
缺点:
1、需要记一些语法(当然,是很简单。五分钟学会)。
2、有些平台不支持Markdown编辑模式。

还好,简书是支持Markdown编辑模式的。

1
开启方式:设置->默认编辑器->Markdown编辑器

2.谁创造了它?

它由Aaron Swartz和John Gruber共同设计,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月自杀身亡。
    Aaron_Swartz

3.为什么要用它?

  • 它是易读(看起来舒服)、易写(语法简单)、易更改纯文本。处处体现着极简主义的影子。
  • 兼容HTML,可以转换为HTML格式发布。
  • 跨平台使用。
  • 越来越多的网站支持Markdown。
  • 更方便清晰地组织你的电子邮件。(Markdown-here, Airmail)
  • 摆脱Word(我不是认真的)。

4. 谁在用它?

Markdown的使用者:

  • GitHub
  • 简书
  • Stack Overflow
  • Apollo
  • Moodle
  • Reddit
  • 等等

5.怎么使用它?

如果不算扩展,Markdown的语法绝对简单到让你爱不释手。
Markdown语法主要分为如下几大部分:标题段落区块引用代码区块强调分割线链接图片反斜杠\符号~等。

一、标题

两种方式:
方式1
使用=-标记一级和二级标题。

1
2
3
4
一级标题
=======
二级标题
-------

运行结果,如下:

一级标题

二级标题

方式2:使用#,可表示1-6级标题。

在想要设置为标题的文字前面加#来表示
一个#是一级标题,二个#是二级标题,以此类推。支持六级标题。
注:标准语法一般在#后跟个空格再写文字,貌似简书不加空格也行。
示例:

1
2
3
4
5
6
7
8
```
# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题
```

运行结果,如下:

1
2
3
4
5
6
# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题

段落

段落的前后要有空行,所谓的空行是指没有文字内容。若想在段内强制换行的方式是使用两个以上空格加上回车(引用中换行省略回车)。
段落:以一个空行开始,以一个空行结束,中间的就是一个段落。

二、字体

加粗
要加粗的文字左右分别用两个*号包起来

1
**加粗的字体**

运行结果,如下:
加粗的字体
斜体
要倾斜的文字左右分别用一个*号包起来

1
*要倾斜的字体*

运行结果,如下:
要倾斜的文字
斜体加粗
要倾斜和加粗的文字左右分别用三个*号包起来

1
***倾斜加粗的字体***

运行结果,如下:
倾斜加粗的字体
删除线
要加删除线的文字左右分别用两个~~号包起来

1
~~删除线的使用~~

运行结果,如下:
删除线的使用

三、引用

在引用的文字前加>即可。引用也可以嵌套,如加两个>>三个>>,n个···
貌似可以一直加下去,但没神马卵用

1
2
3
4
5
>这是引用的内容1
>>这是引用的内容2
>>>这是引用的内容3
>>>>这是引用的内容4
>>>>>这是引用的内容5

运行结果,如下:

这是引用的内容1

这是引用的内容2

这是引用的内容3

这是引用的内容4

这是引用的内容5

四、分割线

三个或者三个以上的 - 或者 * 都可以。

1
2
3
4
---
----
***
****

运行结果,如下:




五、图片

1
![图片alt](图片地址 "图片title")

其中,图片alt就是显示图片下面的文字,相当于对图片内容的解释。
图片title是图片的标题,当鼠标移到图片上时显示的内容。title可加也可不加。
示例:

1
![宠物](http://baiducdn.pig66.com/uploadfile/2017/0511/20170511074935785.jpg "宠物狗狗")

运行结果,如下:
宠物

六、超链接

语法:

1
[超链接名字](超链接地址 "超链接title")

其中,”超链接title”可加也可不加。
示例:

1
2
[简书](http://jianshu.com "访问简书主页")
[百度](http://www.baidu.com "访问百度主页")

运行结果,如下:
简书
百度
注:Markdown本身语法不支持链接在新页面中打开,貌似简书做了处理,是可以的。别的平台可能就不行了,如果想要在新页面中打开的话可以用html语言的a标签代替。

1
<a href="超链接地址" target="_blank">超链接名</a>

示例

1
<a href="https://www.jianshu.com/u/1f5ac0cf6a8b" target="_blank">简书</a>

七、列表

有序列表
有序列表:使用 数字 加一个英文句点.

1
2
3
4
5
1. 有序列表
2. 有序列表
3. 有序列表
4. 有序列表
5. 有序列表

运行结果,如下:

  1. 有序列表
  2. 有序列表
  3. 有序列表
  4. 有序列表
  5. 有序列表

无序列表
语法:
无序列表用" - + *"任何一种都可以

1
2
3
- 列表内容1
+ 列表内容2
* 列表内容3

注意:- + * 跟内容之间都要有一个空格,且结束列表时,需要中间空一行。
运行结果,如下:

  • 列表内容1
  • 列表内容2
  • 列表内容3

列表嵌套
上一级和下一级之间敲三个空格即可

1
2
3
4
- 一级无序列表内容1
- 二级无序列表内容2
- 二级无序列表内容2
- 二级无序列表内容2

运行结果,如下:

  • 一级无序列表内容1
    • 二级无序列表内容2
    • 二级无序列表内容2
    • 二级无序列表内容2
1
2
3
4
+ 一级无序列表内容1
+ 二级无序列表内容2
+ 二级无序列表内容2
+ 二级无序列表内容2

运行结果,如下:

  • 一级无序列表内容1
    • 二级无序列表内容2
    • 二级无序列表内容2
    • 二级无序列表内容2
1
2
3
4
* 一级无序列表内容1
* 二级无序列表内容2
* 二级无序列表内容2
* 二级无序列表内容2

运行结果,如下:

  • 以及无序列表内容1
    • 二级无序列表内容2
    • 二级无序列表内容2
    • 二级无序列表内容2

特别注意,如下这种情况:

  • 一级无序列表内容1
    • 二级无序列表内容2
    • 二级无序列表内容2
    • 二级无序列表内容2
      • 三级无序列表内容3
      • 三级无序列表内容3
      • 三级无序列表内容3
    • 二级无序列表内容2
  • 一级无序列表内容1
    (不知道为什么?加入字体高亮度显示时,会出错)

运行结果,如下:

  • 一级无序列表内容1
    • 二级无序列表内容2
    • 二级无序列表内容2
    • 二级无序列表内容2
      • 三级无序列表内容3
      • 三级无序列表内容3
      • 三级无序列表内容3
    • 二级无序列表内容2
  • 一级无序列表内容1

注意:这里想说明的是不同级别之间要有换行,如果不换行,默认还是上一级别。但是,这里实验可以发现这个问题已经不存在啦。

八、表格

语法:

1
2
3
4
表头|表头|表头
---|:--:|---:
内容|内容|内容
内容|内容|内容

说明:
第二行分割表头和内容。
- 有一个就行,为了对齐,多加了几个
文字默认居左
■两边加:表示文字居中
■右边加:表示文字居右
注:原生的语法两边都要用 | 包起来。此处省略
示例:

1
2
3
4
5
姓名|技能|排行
----|:--:|--:
刘备|哭|大哥
关羽|打|二哥
张飞|骂|二哥

运行结果,如下:(表语与上文要空一行,否则会错乱

姓名 技能 排行
刘备 大哥
关羽 二哥
张飞 二哥

九、代码

语法:
单行代码:代码之间分别用一个反引号包起来

1
`代码内容`

代码块:代码之间分别用三个反引号包起来,且两边的反引号单独占一行

1
2
3
4
5
```
代码...
代码...
代码...
```

示例:
单行代码

1
`create database hero;`

运行结果,如下:
create database hero;
代码块

1
2
3
4
5
6
```
function fun(){
echo "这是一句非常牛逼的代码";
}
fun();
```

运行结果,如下:

1
2
3
4
function fun(){
echo "这是一句非常牛逼的代码";
}
fun();

十、流程图

1
2
3
4
5
6
7
8
9
```flow
st=>start: 开始
op=>operation: My Operation
cond=>condition: Yes or No?
e=>end
st->op->cond
cond(yes)->e
cond(no)->op
&```

运行结果,如下:

1
2
3
4
5
6
7
8
st=>start: 开始
op=>operation: My Operation
cond=>condition: Yes or No?
e=>end
st->op->cond
cond(yes)->e
cond(no)->op
&

(注意,这里并未打印出流程图,不知道什么原因?)

十一、显示网址

写法1:

1
2
3
超链接:[连接名称](网址 , 标题)
[我是链接名](http://www.izhangbo.cn, "我是标题")
[<i class="icon-refresh"></i> 点我刷新](/sonfilename/)

写法2:

1
2
3
4
另一种超链接写法:[链接名][链接代号]
[here][3]
然后在别的地方定义 3 这个详细链接信息,
[3]: http://www.izhangbo.cn "聚牛团队"

直接展示链接的写法:

1
<http://www.izhangbo.cn>

十二、反引号

code格式:反引号
Use the printf() function.

1
``There is a literal backtick (`) here.针对在代码区段内插入反引号的情况``

There is a literal backtick (`) here.针对在代码区段内插入反引号的情况

十三、缩进

markdown段落中如何产生缩进?

因为markdown的段落定义是由一个或多个连续的文本组成,中间的多个空格和tab会被认为是一个空格。
但是有时候确实需要这样的空格或tab缩进格式时怎么办?

  • 方法1:(有效,注意后面的分号)
    直接写
    半方大的空白 或 
    全方大的空白 或 
    不断行的空白格 或 

  • 方法2:(无效)
    输入法切换到全角,双击空格键~
    搜狗输入法切换全角与半角的快捷键:
    Shift + 空格,即可切换半角/全角。按住Shift,点击空格一次,即可互相切换。
    这个方法我遇到一个问题:首段不能缩进!

  • 方法3:(无效)

    1
    > your text

这个是引用的样式

  • 方法4:(无效)
    1
    <a>    test</a>

参考文献

Markdown基本语法 网址:https://www.jianshu.com/p/191d1e21f7ed
younghz/Markdown 网址:https://github.com/younghz/Markdown
掌握这几种 Markdown 语法
Markdown 语法说明 (简体中文版)

------------------------ The End ------------------------
0%