Markdown 语法一篇搞定
前言
Markdown作为一款轻量级的标记语言, 功能上自然不比Word等重量级产品齐全.
但是它胜在语法简单,故学习成本很低,让作者可以更加专注于内容写作而不用花费精力在排版格式上.
博主目前所用就是Markdown语言,下面就是Markdown的语法介绍.
学习Markdown一本书 <了不起的Markdown>
和一个中文官网就够了.
请配合右侧导航使用,想看哪部分就点哪部分
本篇语法介绍=
了不起的Markdown
+中文官网
+菜鸟教程
.
能多详尽,就多详尽. 剩下的就练呗.
<无他,唯手熟尔>
第一节 标题语法
Markdown 标题有两种格式.
1.使用==
和--
标记一级和二级标题
栗子:
一级标题
============
效果如下(左边为编辑器写的内容,右边是呈现效果.下同):
============之上的内容, 全部是一级标题内容(直到md查到换行符)
同样的,
---------------------之上的内容, 全部是二级标题内容(直到md查到换行符)
栗子:
二级标题
---------------------
效果如下:
=
与-
至少是两个, 而且==
与--
只分别表示一级与二级标题!
==
跟--
我们一般不用, 知道就行.主要用的标题是下面这种写法.
2.使用n个#
号标记一级到六级标题
使用一个#加空格是一级标题,以此类推.
#号语法建议顶格写,开头不要空格,#与标题内容空一格!标题等级尽量连续使用,不建议跳级使用!
效果图:
标题语法总结
- 有两种标题语法
==与--
和#
,区别是==只代表一级标题,--只表示二级标题,==与--
注意空白行作为内容分切 - 行首插入n个#+space+标题内容,即可表示n级标题.
#
号与space
显示的是扩展语法html的<kbd>#</kbd>的用法.
- 标题语法只用
#
语法, 因为==
与--
语法后期影响开发人员阅读与维护. - 建议标题所在行前后都空一行
- 不要有多余的空格, 行尾也不要有空格;标题的结尾也不要有别的标点符号
- 建议一个文档的文档名用一级标题, 正文中的标题从二级标题开始逐级增加,不要跳级.
第二节 强调语法
粗体
粗体语法:**
+内容+**
(两个星星) 或者 __
+内容+__
(两个下划线)来加粗内容.
效果:加粗内容 加粗内容
斜体
斜体语法:*
+斜体内容+*
或者_
+斜体内容+_
效果: 星号斜体内容 下划线斜体内容
粗斜体
粗斜体语法:***
+内容+***
或者 ___
+内容+___
效果: 星粗斜体 下划线粗斜体
动态效果如图所示:
删除线
删除线是拓展语法GFM(GitHub Flavored Markdown)[1].
删除线语法:~~
+ 内容 + ~~
渲染结果:
内 容
语法符号与内容之间不能有空格, 内容内部可以有空格.
下划线
下划线可以通过 HTML 的 <u> 标签来实现:
<u>带下划线文本</u>
带下划线文本
强调语法总结
- 粗体,斜体and粗斜体统一使用星号
*
作为语法符号,不使用下划线_
, 方便写作人员阅读与维护.
- 强调语法标记的内部不要有空格, 至少直接与语法符号相接的内容不要有空格
- 如**错误例子 ** ; 正确 例子
第三节 段落与换行
段落
Markdown中的段落由一行或多行文本来构成,不同段落间用空白行来隔开.
不要用空格Space或制表符Tab缩进段
换行
在一行的末尾添加两个或多个空格,然后按回车键,即可创建一个换行(<br>
).段内换行也一样.
段落与换行总结
- 若行与行之间没有空行,则会被视为同一段落.反之, 则被视为不同段落
- 空行的定义: 行内除了空格或者制表符外什么都没有.
- 建议每行超过80个字符之后就换行
- 在一句话结束后再换行.
- 当链接地址较长时先换行再写地址.
第四节 列表
有序列表
要创建有序列表,请在每个列表项前添加数字并紧跟一个英文句点.,即语法如下:
Num+.+Space+内容
数字不必按数学顺序排列,但是列表应当以数字 1 起始.缩进一个或多个列表项可创建嵌套列表.
效果如图所示:
无序列表
要创建无序列表,请在每个列表项前面添加减号 -
、星号 *
或加号 +
,即语法表达如下:
-or+or*+Space+内容
缩进一个或多个列表项可创建嵌套列表。
效果如图:
列表嵌套
要在保留列表连续性的同时在列表中添加另一种元素,请将该元素缩进两个空格或四个空格或一个制表符.
嵌套一个段落
嵌套一个引用
嵌套一段代码
代码块通常采用四个空格或一个制表符缩进。当它们被放在列表中时,请将它们缩进八个空格或两个制表符。
嵌套一个图片
嵌套有序无序列表
多层嵌套
- 多层嵌套语法:
- 第一层列表
Tab + 第二层列表
Tab + Tab + 第三层列表 - 效果:
列表语法总结
- 建议使用减号-标记无序列表
- *易与粗体和斜体混淆
- +不流行
- 若一个列表中,所有的列表项都没有换行,建议使用一个空格.
- 若列表项有换行,建议给无序列表使用三个空格,给有序列表使用两个空格.
且建议在列表项之间空一行. 如图: - 若每个列表项只有一行,建议列表项直接不要有空行.
- 建议在列表的前后都空一行.
第五节 引用
要创建块引用,请在段落前添加一个 >
符号,用一个空行结束当前段落的引用内容。
语法说明:
- 多行引用也可以在每一行开头都插入一个
>
号. - 在引用中可以嵌套引用(套娃).
- 引用块内可以使用其他Markdown语法.
- 在引用块中,段落与换行的格式也是适用的.
多段引用
块引用可以包含多个段落。为段落之间的空白行添加一个 >
符号.
嵌套引用
块引用可以嵌套。n个>
就代表n级引用.一级引用会包含二级引用,以此类推.
二级嵌套示意图
三级嵌套示意图
引用与其他语法嵌套
块引用可以包含其他 Markdown 格式的元素。并非所有元素都可以使用,你需要进行实验以查看哪些元素有效。
引用与标题 列表 强调语法:
列表中的引用:
引用总结
- 建议在
>
语法符号后加一个空格.> 有一个空格
- 若是多行段落引用,建议每一行开头都加一个
>
语法符. - 不要在引用内容中添加空行,除非是结束这一段引用的内容.
第六节 代码语法
单反引号`
如果是段落上的一个函数或片段的代码(或者是中英文的单词或短语)可以用反引号`把它包起来.
如`printf()`函数, 效果是 printf()
函数
转义反引号
如果你要表示为代码的单词或短语中包含一个或多个反引号,则可以通过将单词或短语包裹在双反引号 `` 中.
代码区块
-
要创建代码块,请将代码块的每一行缩进至少四个空格或一个制表符(Tab).
-
也可以用 ``` 包裹一段代码,并指定一种语言(也可以不指定):
这种方式不需要缩进!!!
这个语法也是拓展语法GFM.
许多Markdown处理器都支持受围栏代码块的语法突出显示. 使用此功能,可以为编写代码的任何语言添加颜色突出显示. 如果要语法突出显示,只需要在代码块之前的反引号旁边指定一种语言.C语言的如下:
int main(void)
{
return printf("hello world\n");
}
代码语法总结
- `除了可以包裹行内代码以外,如果我们想转义或者强调某些字符内容,都可以用它来包裹. 如
强调内容
上文都有使用. - 若要展示的代码超过了一行,就使用```围栏代码块,并且指定语言.一是方便阅读,二是可以显示语法高亮
- 但如果我们写的是简单的代码片段, 使用4个空格缩进的代码块, 也许会更清晰.
- 对于Shell命令,需要粘贴到终端里去执行,所以最好避免在shell命令中使用任何转换操作;可以在行尾加一个\符号,这样既可以避免命令换行,有能提高源码可读性.
- 建议在有输出内容的Shell命令行前加$符号, 没有输出内容的命令行前不要加.
如:$ echo "test" test
第七节 插入图片
要添加图像,请使用感叹号 (!), 然后在方括号增加替代文本,图片链接放在圆括号里,括号里的链接后可以增加一个可选的图片标题文本。
插入图片Markdown语法代码:![图片alt](图片链接 "图片title(可写可不写)")。
对应的HTML代码:<img src="图片链接" alt="图片alt" title="图片title">
语法完整如下(使用本地图片):
![这是图片](/assets/img/philly-magic-garden.9c0b4415.jpg "Magic Gardens")
使用Typora或者VScode等编辑器写本地文档,使用本地图片时会用到.
使用网络图片:
![这是图片](https://markdown.com.cn/assets/img/philly-magic-garden.9c0b4415.jpg "Magic Gardens")
渲染结果:
- 注意Markdown没有办法指定图片的高度与宽度,需要的话你可以使用普通的<img> 标签。
<img src="https://markdown.com.cn/assets/img/philly-magic-garden.9c0b4415.jpg" width="50%">
效果:
插入图片总结
- 图片alt只在图片连接挂掉的时候显示出来.如:
- 图片title则是在光标悬停在图片上时,会显示的图片信息.
第八节 分隔线
要创建分隔线,请在单独一行上使用三个或多个星号 (***), 破折号 (---) 或下划线 (___), 并且不能包含其他内容.
为了兼容性,请在分隔线的前后均添加空白行.
分隔线总结
- 分隔线至少使用三个以上的*/-/_来标记
- 分隔线语法所在行内不能有其它字符
- 分隔线语法符号中间可以加空格
如* * * 跟 - - - 跟 _ _ _
第九节 脚注语法
脚注是一种拓展语法GFM,使您可以添加注释和参考,而不会使文档正文混乱.
当您创建脚注时,带有脚注的上标数字会出现在您添加脚注参考的位置.读者可以单击链接以跳至页面底部的脚注内容.
要创建脚注,请在方括号([^1])内添加插入符号和标识符. 标识符可以是数字或单词,但不能包含空格或制表符. 标识符仅将脚注参考与脚注本身相关联-在输出中, 脚注按顺序编号。
在括号内使用另一个插入符号和数字添加脚注, 并用冒号和文本([^1]: My footnote.).
不必在文档末尾添加脚注。您可以将它们放在除列表,块引号和表之类的其他元素之外的任何位置。
脚注完整语法:
被脚注的内容
+[^标识符]
[^标识符]
+:
+脚注内容
效果:
脚注语法[2]
第十节 链接
链接文本放在中括号内,链接地址放在后面的括号中,链接title可选。
超链接Markdown语法代码:[超链接显示名](超链接地址 "超链接title")
对应的HTML代码:
<a href="超链接地址" title="超链接title">超链接显示名</a>
效果渲染如下:
超链接显示名
超链接title是当鼠标悬停在链接上时会出现的文字,这个title是可选的,它放在圆括号中链接地址后面,跟链接地址之间以空格分隔.
自动网址链接
许多Markdown处理器会自动将URL转换为链接。
这意味着如果输入http://www.example.com
即使未使用方括号,您的Markdown处理器也会自动将其转换为链接。效果如下:
若是不想使用自动网址链接,直接用反引号引起来就行了.
直接使用链接地址
直接用尖括号内加网址:
<http://www.example.com> 效果:
带格式的链接
加粗,斜体等格式都可与链接同时用.
加粗:Markdown
斜体:Markdown
删除线:Markdown
等等其他的自己尝试即可.
引用链接
引用链接是把链接显示名,跟链接地址分开写.这样是为了代码的可读性.
引用链接的标准语法是:
[链接文字][链接标记]
空白行
[链接标记]: 链接地址
效果如下:
- 链接标记可以有字母、数字、空格和标点符号
- 链接标记不区分大小写
- 定义的链接内容可以放在当前文件的任意位置,建议放在页尾
- 当链接地址为网络地址时要以 http/https开头,否则会被识别为本地地址
也可以按下面的写法不写链接文字:
效果如下:
正常写法:Google , Github
引用写法:Google2 , github2
不同的 Markdown 应用程序处理URL中间的空格方式不一样。为了兼容性,请尽量使用%20代替空格。
如:[link](https://www.example.com/my%20great%20page
)
第十一节 表格
表格是扩展语法中的一种,具体的内容,官网上写的很好,直接去看吧,偷个懒😂...
注意下对其的语法就行了,没什么难的地方.
Markdown表格语法
菜鸟教程MD表格语法
其他高级语法
其他的高级语法都是扩展语法,具体我把链接放下面,不然文章长度太长..
Markdown标题编号
Markdown定义列表
Markdown任务列表语法
Markdown使用Emoji表情
菜鸟Markdown高级技巧这里有流程图跟甘特图的写法,详细可以点进去看!其中还有扩展html其他的用法,如显示按键的<kbd></kbd>等.