Markdown简易入手教程
文章目录
前言
IT开发,离不开进度项目管理工具。我们主要用的开源的redmine程序(Redmine是用Ruby开发的基于web的项目管理软件)。尤其是在日本IT,使用的尤其多。redmine除了支持html外,还支持Markdown语法。今天主要介绍下markdown的语法。关于redmine请参考redmine网站http://www.redmine.org/。
Markdown简介
Markdown是一种轻量级标记语言,创始人为約翰·格魯伯(英語:John Gruber)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。
由于Markdown的轻量化、易读易写特性,并且对于图片,图表、数学式都有支援,目前许多网站都广泛使用 Markdown 来撰写说明文件或是用于论坛上发表讯息。例如:GitHub、reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge等。甚至Markdown能被使用来撰写电子书。
Markdown版本
2004年
John Gruber创造了 Markdown 语言。Markdown: https://daringfireball.net/projects/markdown/
2014年
启动了标准化Markdown项目。由于作者Gruber反对使用Markdown名字,被更名为CommonMark。CommonMark.org发布了规范、参考实现和测试套件的几个版本。CommonMark网站: https://spec.commonmark.org/
2016年
发布了RFC 7763和RFC 7764。RFC 7763从原始变体引入了MIME类型text/markdown。RFC 7764讨论并注册了 MultiMarkdown, GitHub Flavored Markdown (GFM), Pandoc, CommonMark, and Markdown 等markdown变体
2017年
GitHub发布了基于CommonMark的GitHub Flavored Markdown(GFM)的正式规范。
2019年
CommonMark最新版本是0.29 (2019-04-06发布)。
Markdown语法
Markdown语法没有一个统一的标准,不同的工具或平台采用的标准不一样,所以有些语法规则和功能是有差异的。
1.换行
连续2个空格。
|
|
效果如下:
这是第一行,后面有两个空格。
这是第二行,后面没有空格。
这还是第二行。
2.字体设置-斜体、粗体、删除线
斜体: 用 * 或者 _ 来包括对象,* 或者 _必须成对使用
粗体: 用 ** 来包括对象
加粗斜体: 用 *** 来包括对象
删除线: 用 ~~ 来包括对象
例如:
|
|
效果如下:
这是斜体
这也是斜体
这是粗体
这是加粗斜体
这是删除线
3.分级标题
分级标题有两种写法,推荐第一种写法。
第一种写法是用#,总共有6级标题。语法如下:
一级标题:用#
二级标题:用##
三级标题:用###
四级标题:用####
五级标题:用#####
六级标题:用######
例如,第一种写法:
|
|
效果如下:
这是一级标题
这是二级标题
这是三级标题
这是四级标题
这是五级标题
这是六级标题
第二种写法是用 = 和 - 字符来表示,总共有2级标题,= 和 -可以多个连续。语法如下:
一级标题: 用 =
二级标题: 用 -
例如,第二种写法
|
|
效果如下:
这是一级标题
这是二级标题
4.超链接
Markdown 支持两种形式的链接语法: 行内式和参考式。行内式一般使用较多。
4.1行内式
语法说明:
[链接文字](链接地址 "链接标题")
[]里写链接文字,()里写链接地址, ()中的”“可以为链接指定title属性,title属性可加可不加。title属性的效果是鼠标悬停在链接上会出现指定的title文字。链接地址与链接标题前有一个空格。
例如,鼠标悬停后,第二个网址会提示“None网址”。
|
|
效果如下:
我的个人网站None
我的个人网站None,带有title属性
4.2参考式
参考式超链接一般用在学术论文上面,或者另一种情况,如果某一个链接在文章中多处使用,那么使用引用的方式创建链接将非常好,它可以让你对链接进行统一的管理。
语法说明:
[链接文字][链接标记]
参考式链接分为两部分,[链接文字]和[链接标记]。可以在文本的任意位置添加[链接标记]部分,格式是[链接标记]:链接地址 "链接标题"
,链接地址与链接标题前有一个空格。
如果链接文字本身可以做为链接标记,你也可以写成[链接文字][]
。可以在文本的任意位置添加[链接文字]部分,格式是[链接文字]:链接地址
。
例如,
|
|
效果如下:
我的网站名字是None,主要介绍在日本从事IT方面遇到的问题,记录解决方案和学习历程。现在已经发布了python教程。
5.自动链接
Markdown支持以比较简短的自动链接形式来处理网址和电子邮件信箱,只要是用<>包起来, Markdown 就会自动把它转成链接。一般网址的链接文字就和链接地址一样,例如:
|
|
效果如下:
我的网站None的网址是https://inuwashi123.github.io/。
我的邮箱是sai.inuwashi@gmail.com,欢迎大家来信交流。
6.分割线
你可以在一行中用三个以上的星号(*)、减号(-)、底线(-)来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。
|
|
效果如下:
7.代码
插入程序代码的方式有两种,一种是行内代码, 另一种是代码块。
7.1行内代码
语法说明:
`code`
插入行内代码,即插入一个单词或者一句代码的情况,使用`code`这样的形式插入。
7.2代码块
语法说明:
```code
代码内容1
代码内容2
…
```
插入多行代码(也就是插入代码块)。注意: 插入代码块的前方必须有空行。
例如
|
|
效果如下:
测试行内代码,python的print()
函数
测试代码块,python打印hello world程序
|
|
8.引用
在被引用的文本前加上>符号,以及一个空格就可以了,如果只输入了一个>符号会产生一个空白的引用。 两个以上>符号,形成引用的嵌套。两个>就是双层嵌套,三个>就是三层嵌套,以此类推。
例如:
|
|
效果如下:
这是第一层引用。注意>后面需要一个空格
这是两层嵌套。注意>后面需要一个空格。
这是三层嵌套。注意>后面需要一个空格。
引用其它要素
引用的区块内也可以使用其他的Markdown语法,包括标题、列表、代码区块等。
例如:
|
|
效果如下:
行内代码
print()
粗体
斜体
9.列表
列表分为无序列表和有序列表两种。
9.1无序列表
使用 *,+,- 表示无序列表。符号后面一定要有一个空格,起到缩进的作用。
9.2有序列表
有序列表则使用数字接着一个英文句点。英文句点后面一定要有一个空格,起到缩进的作用。
注意,在使用列表时,只要是数字后面加上英文的点,就会无意间产生列表,比如2019. 这时候想表达的是2019年,有些软件把它被误认为是列表。解决方式:在每个点前面加上\就可以了。
无序列表和有序列表同时使用。
例如:
|
|
效果如下:
- 无序列表
- 无序列表
- 无序列表
- 有序列表
有序列表1的内容。 - 有序列表
有序列表2的内容。 - 有序列表
有序列表3的内容。
- 1. 无序列表和有序列表混合使用
无序列表和有序列表混合使用1的内容。 - 2. 无序列表和有序列表混合使用
无序列表和有序列表混合使用2的内容。 - 3. 无序列表和有序列表混合使用
无序列表和有序列表混合使用3的内容。
2019. 表示的是2019年,不是列表2019
10.插入图片
图片的创建方式与超链接相似,而且和超链接一样也有两种写法,行内式和参考式写法。
语法中图片Alt的意思是如果图片因为某些原因不能显示,就用定义的图片Alt文字来代替图片。 图片Title则和链接中的Title一样,表示鼠标悬停与图片上时出现的文字。 Alt 和 Title 都不是必须的,可以省略,但建议写上。
10.1行内式插入图片
语法说明:
![图片Alt](图片地址 "图片Title")
10.2参考式插入图片
语法说明:
![图片Alt][标记]
在文档的后面需要写上[标记]:图片地址 "Title"
例如:
|
|
效果如下:
行内式
参考式
11.表格
语法说明:
|
|
- |、-、:之间的多余空格会被忽略,不影响布局。
- 默认标题栏居中对齐,内容居左对齐。
- -:表示内容和标题栏居右对齐,:-表示内容和标题栏居左对齐,:-:表示内容和标题栏居中对齐。
- 内容和|之间的多余空格会被忽略,每行第一个|和最后一个|可以省略,-的数量至少有一个
例如,默认的表格样式
|
|
效果如下:
标题栏1 | 标题栏2 | 标题栏3 |
---|---|---|
第一行内容1 | 第一行内容2 | 第一行内容3 |
第二行 | 第二行 | 第二行 |
例如,居中对齐表格样式
|
|
效果如下:
标题栏1 | 标题栏2 | 标题栏3 |
---|---|---|
第一行内容1 | 第一行内容2 | 第一行内容3 |
第二行 | 第二行 | 第二行 |
例如,第二列居中对齐表格样式
|
|
效果如下:
标题栏1 | 标题栏2 | 标题栏3 |
---|---|---|
第一行内容1 | 第一行内容2 | 第一行内容3 |
第二行 | 第二行 | 第二行 |
12.反斜杠转义字符
通过上面的学习,我们知道# * < 等字符都是格式化字符,如果我们真的要用这些字符该怎么处理呢?
答案就是反斜杠(\)转义字符。
Markdown为以下字符提供反斜杠转义: 转义字符|中文名称 - | - \|反斜杠 `|反引号 *|星号 _|下划线 {}|大括号 []|方括号 ()|括弧 #|井号 +|加号 -|减号(连字符) .|小数点 !|感叹号
例如:
|
|
效果如下:
# 这里的#表示的不是一级标题,因为反斜杠将其转义位普通的#字符。
这里的`表示的也不是行内代码,而是普通的`。
参考资料:
维基百科 https://zh.wikipedia.org/wiki/Markdown
Markdown: https://daringfireball.net/projects/markdown/
CommonMark: https://spec.commonmark.org/
Markdown语法:https://daringfireball.net/projects/markdown/syntax
https://www.jianshu.com/p/8c1b2b39deb0
转载请注明本网址。