Markdown温故知新(2):详解七大标准语法
说明:在 Markdown 中,一行是指由换行符或回车符之外的字符构成的行,而不包含字符的行或仅包含空格或制表符的行则称之为空行。
1、标题
每篇文章都需要标题,不同的层级需要不同大小的标题。要在 Markdown 中实现这种分级标题的效果,只需要在标题前加上井号和空格即可,井号越多,标题越小,最多 6 个井号。具体规则如下:
- 在文本前加 1 个
#
和 1 个空格,文本就会变成一级标题(对应 HTML 中的 H1) - 在文本前加 2 个
#
和 1 个空格,文本就会变成二级标题(对应 HTML 中的 H2) - 在文本前加 3 个
#
和 1 个空格,文本就会变成三级标题(对应 HTML 中的 H3) - 在文本前加 4 个
#
和 1 个空格,文本就会变成四级标题(对应 HTML 中的 H4) - 在文本前加 5 个
#
和 1 个空格,文本就会变成五级标题(对应 HTML 中的 H5) - 在文本前加 6 个
#
和 1 个空格,文本就会变成六级标题(对应 HTML 中的 H6)
一般来说,四级标题就足够用了,所以有些 Markdown 的样式默认只对前 4 级标题做区分。
示例一下,输入文本如下:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
显示效果如下:
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
另外,一级标题还可以在标题的下一行用等号来标识,二级标题还可以在标题的下一行用减号来标识。需要注意的是,这种语法在不同平台会有差异,有些平台只需要一个等号或减号就行,也有些平台至少需要两个,还有些平台则至少需要三个。
换句话说,你至少需要写三个等号或减号才能确保在多数平台上都有效果。当等号或减号的数量达到三个之后,再多写就不会有额外效果了,所以有些人会疯狂的写上很多个等号或减号,其实没必要。
示例一下,输入文本如下:
一级标题
===
二级标题
---
显示效果如下:
一级标题
二级标题
2、强调(粗体 & 斜体)
如果不写任何标记符号,那 Markdown 编辑器对你来说就约等于记事本,可能唯一不同的地方就是无论你在 Markdown 编辑器中输入多少个空格,最终只会呈现一个。
Markdown 默认只支持粗体和斜体,大多数时候这已经足够了。只需要在文本前后都加上星号,星号中的文本就会自动变粗或倾斜。具体规则如下:
- 1、在文本前后各加 1 个
*
,文本就会变成斜体 - 2、在文本前后各加 2 个
*
,文本就会变成粗体 - 3、在文前前后各加 3 个
*
,文本就会变成粗斜体
另外,也可以用下划线来代替星号,效果是一样的。
示例一下,输入文本如下:
科技*改变*生活,代码_改变_世界
科技**改变**生活,代码__改变__世界
科技***改变***生活,代码___改变___世界
显示效果如下:
科技改变生活,代码_改变_世界
科技改变生活,代码__改变__世界
科技改变生活,代码___改变___世界
注意:强调效果可以嵌套到列表行和引用段落中,但不能应用到标题或代码块中。我的理解是因为标题和代码块本身就有强调的意味。
3、列表
Markdown 中的列表有两种,有序列表和无需列表。有序列表的每一行用一个数字、一个英文句点及一个空格来标识,无序列表的每一行用一个减号和一个空格来标识。
有序列表,示例一下,输入文本如下:
1. 长江
2. 珠江
2. 黄河
显示效果如下(你有没有发现黄河前面的 2 被自动纠正为 3 了?):
- 长江
- 珠江
- 黄河
无序列表,示例一下,输入文本如下:
- 重复言说多半是时间上的损失。
- 教育的目的在于使人能够继续教育自己。
- 怕什么真理无穷,进一寸有一寸的欢喜。
显示效果如下:
- 重复言说多半是时间上的损失。
- 教育的目的在于使人能够继续教育自己。
- 怕什么真理无穷,进一寸有一寸的欢喜。
其实,无序列表除了可以用减号来标识之外,还可以用加号或星号来标识。比如上例中的-
就可以换成+
或*
,效果完全一样,甚至可以混用这 3 种符号。
列表嵌套,示例一下,输入文本如下:
- 1、第一章
- 1.1、第一节
- 1.2、第二节
1. 人不仅有好奇心,还有求知欲
2. 追问事物的原理,是为了控制和利用
3. 人发明了巫术,又从中分离出了科学
- 2、第二章
- 2.1、第一节
- 2.2、第二节
- 3、第三章
显示效果如下:
- 1、第一章
- 1.1、第一节
- 1.2、第二节
- 人不仅有好奇心,还有求知欲
- 追问事物的原理,是为了控制和利用
- 人发明了巫术,又从中分离出了科学
- 2、第二章
- 2.1、第一节
- 2.2、第二节
- 3、第三章
引用列表,并且在列表中使用标题、粗体和斜体,示例一下,输入文本如下:
> ## 五大联合国常任理事国
- **中华人民共和国**
- *美利坚合众国*
- 俄罗斯联邦
- 大不列颠及北爱尔兰联合王国
- 法兰西共和国
显示效果如下:
五大联合国常任理事国
- 中华人民共和国
- 美利坚合众国
- 俄罗斯联邦
- 大不列颠及北爱尔兰联合王国
- 法兰西共和国
列表中还可以包含代码块,需要在代码块的前面加上 8 个空格或 2 个制表符。
4、链接 & 图片
文本链接的写法是用一对中括号包裹链接文本,紧接着用一对小括号包裹链接地址,即[链接文本](链接地址)
。另外,还可以给链接加 title,用双引号或单引号包裹并放在链接地址后面,即[链接文本](链接地址 "title文本")
。
示例一下,输入文本如下:
[万能的淘宝](https://www.taobao.com/)
[百度一下](https://www.baidu.com/ "你就知道")
图片链接的写法只需要在文本链接的前面加上一个感叹号即可。当然链接地址得是图片地址,链接文本可写可不写,因为不会显示出来,而且不写也不影响图片的显示。
示例一下,输入文本如下:
![博客园Logo](https://www.cnblogs.com/images/logo_small.gif)
![百度Logo](https://www.baidu.com/img/baidu_jgylogo3.gif "百度一下,你就知道")
显示效果如下:
如果你在本地写作,也想看图片链接的效果,那么你需要把图片拷贝到 Markdown 文件所在的目录中,假如这个图片名称是kid.jpg
,那么写法就是![](kid.jpg)
。或者拷贝到所在目录的子目录中也行,加入子目录名称是imgs
,那么写法就是![](imgs/kid.jpg)
。
引用链接
在实际应用中,链接地址往往是比较长的,而且有时候还需要文章中多次引用某个链接,这时候可以在 Markdown 文件末尾定义一下该链接,并设置一个简短的链接文本,然后就可以在上文中通过链接文本来引用该链接了。
示例一下,输入文本如下:
部分中文搜索用[百度][bd]效果更好,多数英文搜索用[谷歌][gg]效果更好,技术搜索[谷歌][gg]的效果往往要比[百度][bd]的效果好很多。
然而遗憾的是,在中国访问[谷歌][gg]需要翻墙。
[bd]: https://www.baidu.com/ "百度一下,你就知道"
[gg]: https://www.google.com/ "墙外更精彩"
显示效果如下:
部分中文搜索用[百度][bd]效果更好,多数英文搜索用[谷歌][gg]效果更好,技术搜索[谷歌][gg]的效果往往要比[百度][bd]的效果好很多。
然而遗憾的是,在中国访问[谷歌][gg]需要翻墙。
[bd]: https://www.baidu.com/ "百度一下,你就知道"
[gg]: https://www.google.com/ "墙外更精彩"
上面示例的是如何引用文本链接,引用图片链接的方式与引用文本链接的方式完全相同。
自动链接指的是当你输入一个 url 或邮箱地址等链接时,Markdown 会自动将其转换为可访问的链接,写法是将链接地址置于一对尖括号之中。
示例一下,输入文本如下:
<https://www.cnblogs.com/>
https://www.cnblogs.com/ 效果对比行
<luck@qq.com>
luck@qq.com 效果对比行
显示效果如下:
https://www.cnblogs.com/
https://www.cnblogs.com/ 效果对比行
luck@qq.com
luck@qq.com 效果对比行
可能你会发现,在你使用的编辑器中写不写尖括号效果都一样,那是因为你使用的编辑器自带了链接识别功能。在很多博客或网络笔记中,要想链接显示成链接的效果,还是得加尖括号。
5、代码块
在 Markdown 的所有语法中,代码快大概是最能打动程序员的。尽管在程序员之外的人看来,代码快的效果不过是给文本加了个框,但写过文档的程序员都知道 Word 等文字处理软件中代码的显示效果和编辑效果有多糟糕。
代码块有两种:一种是行内代码块,用两个反单引号(也称重音符)包裹一下即可;另一种是多行代码快,在每行代码前加四个空格或一个制表符(Tab)的缩进,然后与上一行文本之间保留一个空行即可。
行内代码块,示例一下,输入文本如下:
JavaScript 在控制台输出消息的语法是 `console.log(message)`。
显示效果如下:
JavaScript 在控制台输出消息的语法是 console.log(message)
。
多行代码快,示例一下,输入文本如下:
class Program {
static void Main(string[] args) {
Console.WriteLine("Hello World!");
}
}
显示效果如下:
class Program {
static void Main(string[] args) {
Console.WriteLine("Hello World!");
}
}
有些工具或平台支持很多语言的代码高亮,现实效果非常好。常见标准中都没有规定这一块,所以如果你想要代码高亮,就得按你所用工具的语法规则来写了。
关于多行代码快,CommonMark 标准中定义了一个相对来说更加方便书写的语法,就是以三个独占一行的反单引号开头,并且以三个独占一行反单引号结尾。这样就不用写缩进了,而且代码块与上一行之间也不必再保留一个空行了。而且常见的各种工具基本都支持,似乎已经成为事实上的标准了。
示例一下,输入文本如下:
class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } }
显示效果如下:
class Program {
static void Main(string[] args) {
Console.WriteLine("Hello World!");
}
}
6、引用
如果需要在文中引入一段有出处的话,就可以采用引用的方式实现。实现的方式是在这段话的开头或上一行加上一个尖括号和一个空格。虽然 Markdown 的引用语法很简洁,但用法却很灵活,几乎可以和任何语法连用,而且很强大,能够逐级嵌套引用。
普通引用,示例一下,输入文本如下:
> 普通文本 **加粗文本** *斜体文本*
> ## 二级标题
> #### 四级标题
显示效果如下:
普通文本 加粗文本 斜体文本
二级标题
四级标题
嵌套引用,示例一下,输入文本如下:
> 一层引用
>> 两层引用
>>> 三层引用
>>>> 四层引用
>>>>> 五层引用
显示效果如下:
一层引用
两层引用
三层引用
四层引用
五层引用
7、分割线
有些作者很喜欢用水平分割线,也称分隔符或横线,在 Markdown 中,分割线的写法与标题的第二种写法十分相似,在新的一行连续输入 3 个或 3 个以上的星号即可。
星号之间可以有空格,且星号还可以用减号或下划线来代替。需要注意的是,如果用减号,那分割线与上面的段落之间需要空出一行,否则分割线就会与上面的段落组成二级标题了。
示例一下,输入文本如下:
***
* * *
---(注意:此行的上一行是空着的)
___
显示效果如下:
8、总结
本文主要讲解了 Markdown 的七大标准语法的用法。掌握了这七大标准语法,就足够应对 Markdown 的一般写作需求了。
通过本文示例可见,Markdown 的语法完全由标点符号构成,且标点符号经过精心挑选,看起来比较直观形象。例如,文本周围的*
看起来像是在强调,分割线看起来就像是横线,列表排列看起来就像是列表。
本文链接:http://www.cnblogs.com/hanzongze/p/markdown-standards.html
版权声明:本文为博客园博主 韩宗泽 原创,作者保留署名权!欢迎通过转载、演绎或其它传播方式来使用本文,但必须在明显位置给出作者署名和本文链接!个人博客,能力有限,若有不当之处,敬请批评指正,谢谢!
Markdown温故知新(2):详解七大标准语法的更多相关文章
- Angular6 学习笔记——组件详解之模板语法
angular6.x系列的学习笔记记录,仍在不断完善中,学习地址: https://www.angular.cn/guide/template-syntax http://www.ngfans.net ...
- 详解Python 切片语法
Python的切片是特别常用的功能,主要用于对列表的元素取值.这篇文章主要介绍了详解Python 切片语法,需要的朋友可以参考下 Python的切片是特别常用的功能,主要用于对列表的元素取值.使用切片 ...
- Kotlin——高级篇(二):高阶函数详解与标准的高阶函数使用
在上面一个章节中,详细的讲解了Kotlin中关于Lambda表达式的语法以及运用,如果还您对其还不甚理解,请参见Kotlin--高级篇(一):Lambda表达式详解.在这篇文章中,多次提到了Kotli ...
- 机器学习——SVM详解(标准形式,对偶形式,Kernel及Soft Margin)
(写在前面:机器学习入行快2年了,多多少少用过一些算法,但由于敲公式太过浪费时间,所以一直搁置了开一个机器学习系列的博客.但是现在毕竟是电子化的时代,也不可能每时每刻都带着自己的记事本.如果可以掏出手 ...
- XML详解一XML语法
XML指可扩展标记语言很类似 HTML,被设计用来传输和存储数据而非显示数据,XML标签没有被预定义需要自行定义标签,标签具有自我描述性,同时XML也是 W3C 的推荐标准. 先来写一个XML脚本de ...
- 【转】详解Java正则表达式语法
(转自: http://www.jb51.net/article/76354.htm) 这篇文章主要介绍了Java正则表达式语法,包括常用正则表达式.匹配验证-验证Email是否正确以及字符串中查询字 ...
- DOCTYPE与浏览器模式详解(标准模式&混杂模式)
关于渲染模式: 在多年以前(IE6诞生以前),各浏览器都处于各自比较封闭的发展中(基本没有兼容性可谈).随着WEB的发展,兼容性问题的解决越来 越显得迫切,随即,各浏览器厂商发布了按照标准模式(遵循各 ...
- Linux目录文件详解FHS标准(2013.09.05)
Linux 目录配置的依据FHS(Filesystem Hierarchy Standard)标准,将目录分成为四种交互作用的形态: 四种形态的具体解释: 可分享的:可以分享给其他系统挂载使用的目录, ...
- MySQL(九)之数据表的查询详解(SELECT语法)二
上一篇讲了比较简单的单表查询以及MySQL的组函数,这一篇给大家分享一点比较难得知识了,关于多表查询,子查询,左连接,外连接等等.希望大家能都得到帮助! 在开始之前因为要多表查询,所以搭建好环境: 1 ...
随机推荐
- idea把菜单栏给点没了...(File、Edit、View、Navigate.......)
第一种方法 找到idea的C盘的配置文件ui.lnf.xml文件 第二种方法 如果是高版本idea,我的是2019.3,双击shift选择Actions,搜索menu 然后重启idea
- [基础]斯坦福cs231n课程视频笔记(二) 神经网络的介绍
目录 Introduction to Neural Networks BP Nerual Network Convolutional Neural Network Introduction to Ne ...
- Transformer模型---decoder
一.结构 1.编码器 Transformer模型---encoder - nxf_rabbit75 - 博客园 2.解码器 (1)第一个子层也是一个多头自注意力multi-head self-atte ...
- 201871010121-王方《面向对象程序设计JAVA》第十五周实验总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/ ...
- Node.js到底是做什么的?这是我看到最好的解释了
作者:贾厂长链接:https://www.zhihu.com/question/33578075/answer/56951771来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- Oracle告Google输了
Oracle告Google输了 boxi • 2016-05-27 • 大公司 Google表示,陪审团的认定代表了Android生态体系.Java开发社区以及依靠开放免费编程语言开发创新消费者产品的 ...
- selenium 定位 页面上两个完全一样的元素
在测试过程中发现页面上有两个保存按钮的元素的xpath一模一样,如下图: google了好久才找到解决办法,发现自己还是比较弱!!!解决方法如下: selenium.click("xpath ...
- (day43)form表单、css
目录 昨日回顾 一.HTTP协议 (一)四大特性 (二)数据格式 (1)请求格式 (2)响应格式 (三)响应状态码 二.HTML (一)什么是HTML (二)注释 (三)文档结构 (四)head内标签 ...
- <console>:14: error: not found: value spark import spark.implicits.
启动 ./spark-shell 出现问题 启动 hadoop, 并创建,解决 hadoop fs -mkdir /directory 解决了
- USACO 利润Profits
洛谷P3009 [USACO11JAN]利润Profits 题解 https://www.luogu.org/problemnew/solution/P3009 JDOJ 2727: USACO 2 ...