Markdown 是一种轻量级标记语言,于 2004 年由约翰·格鲁伯(John Gruber)创建。Markdown 的目标是实现「易读易写」。
一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。
Markdown 使用少量简单的语法 对文本进行样式化 。大多数情况下,Markdown 只是普通的文本,加上一些非字母字符,比如 #
、*
、-
等。
Markdown 的理念是,能让文档更容易读、写和随意改。HTML 是一种发布的格式,Markdown 是一种书写的格式。就这样,Markdown 的格式语法只涵盖纯文本可以涵盖的范围。不在 Markdown 涵盖范围之内的标签,都可以直接在文档里面用 HTML 书写。
Markdown不止是HTML的简化版,更重要的是txt的升级版、Word的轻量版,是笔记的最佳载体。
按照 Markdown 编辑器的使用环境,可以将它们归纳为三类:
MarkdownPad 被很多人称赞为windows下最好用的Markdown编辑器之一。其支持键盘快捷键和工具栏操作,支持即时HTML预览及自动滚动至当前编辑位置、自定义配色方案、字体、大小和布局等,可以导出HTML和PDF。
Mou 是一个面向开发者的Markdown编辑器。其具有语法高亮、实时预览、同步滚动、自动保存、自动补全、自定义主题和以CSS/HTML/PDF格式导出文件等特性。
Typora 是非常有名、非常好用的 Markdown编辑器。支持数学编辑、可与 Word 进行格式转换、进行多种文档格式转换等,并且流畅度和反应速度都很快。
Visual Studio Code 是一个轻量级但功能强大的代码编辑器。支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展。
Sublime Text 界面简约大方,定位专业,功能强大,并具有良好的扩展功能。支持的编程语言有十几种,并可通过第三方插件无限扩充。
参考文档:标准 Markdown 语法指南(John Gruber)
对于未被 Markdown 语法涵盖的任何标记,只需使用 HTML 本身。没有必要对其进行前缀或分隔,只需使用这些标记即可。唯一的限制是块级的HTML元素,如 <div>
, <table>
, <pre>
, <p>
等标签,必须用空行分隔周围的内容,块的开始和结束标记不应缩进制表符或空格。应注意,在 HTML 区块标签间的 Markdown 格式语法将不会被处理。
功能 | 快捷键参考(因各编辑器差异,具体键位视实际使用的编辑器设置为准) |
---|---|
标题 | Ctrl+1…6 |
加粗 | Ctrl+B |
斜体 | Ctrl+I |
有序列表 | Ctrl+O |
无序列表 | Ctrl+U |
任务列表 | Ctrl+C |
引用 | Ctrl+Q |
插入代码 | Ctrl+K |
插入链接 | Ctrl+L |
插入图片 | Ctrl+G |
分割线 | Ctrl+R |
要创建标题,只要在标题文本前添加 1~6个 # 字符即可,使用的 #数量 将决定标题的大小,总共六级标题。建议在#号后加一个 空格,这是最标准的 Markdown 语法。
# 标题1 ## 标题2 ### 标题3 #### 标题4 ##### 标题5 ###### 标题6
示例:标题
标题索引(内容目录):合理的创建标题,有助于目录的生成。使用 [TOC] 以创建当前文档目录(由于编辑器的差异,对目录创建的语法支持及语法规则应视实际使用的编辑器而定)。
示例:标题索引(目录)
强调文本
可以使用粗体、斜体来表示强调,文本突出表示标记。
用 2个星号 * 或 下划线 _ 包含一段文本就是粗体的语法,
用 1个星号 * 或 下划线 _ 包含一段文本就是斜体的语法,
用 2个波浪线 ~ 包含一段文本就是删除文本的语法,
用 2个等号 = 包含一段文本就是标记文本的语法(未生效时可使用 HTML 标签 替代),
使用 HTML 标签 包含一段文本就是下划线的语法。
粗体文本:**粗体文本** __粗体文本__ 斜体文本:*斜体文本* _斜体文本_ 删除文本:~~删除文本~~ 标记文本:==标记文本== 下划线:<u>下划线文本</u>
示例:粗体、斜体、删除、标记、下划线
粗体文本
斜体文本
删除文本
下划线文本
键盘文本
使用 HTML 的 标签。
加粗:<kbd>Ctrl/Command</kbd> + <kbd>B</kbd> 斜体:<kbd>Ctrl/Command</kbd> + <kbd>I</kbd>
示例:键盘文本
Markdown的列表支持有序列表、无序列表以及特殊的任务列表。
行尾回车换行后会自动接续列表,再次按Tab会标记段落并更换列表符/再次按回车会清除列表符以作换行。
需要注意的是,用于标记列表的实际数字对Markdown输出的HTML结果没有任何影响。顺序不等或相同的数字都将得到完全相同的HTML输出。
1. 有序列表1 2. 有序列表2 4. 有序列表3
示例:有序列表(数字编号不影响最终输出的HTML结果)
列表嵌套可使列表项包含多个段落。列表项中的 每个后续段落必须缩进 4个空格 或 1个制表符,代码块需要缩进 8个空格 或 2个制表符:
1. 有序列表1 有序列表1的 段落 > 有序列表1的 引用 //有序列表1的 代码块 use the printf() function; 1. 有序列表2
示例:有序列表中的的多个段落
值得注意的是,以下示例中的编写会意外地触发一个有序列表,为了避免这种情况,可以反斜线 \ 转义句点:
2022. 北京冬季奥运会 2022\. 北京冬季奥运会
示例:为避免触发有序列表,应对句点进行转义
无序列表有3种列表符,分别用于表示1级列表、2级列表、3级列表。
- 1级列表 * 2级列表 * 2级列表 + 3级列表 + 3级列表 - 1级列表 - 1级列表
示例:无序列表
- [ ] 任务列表(待办任务) - [x] 任务列表(完成任务)
示例:任务列表
区块引用是在段落开头使用 右尖括号 > ,并紧跟一个 空格 来引用文本。也可再次添加 > 嵌套引用。
> 引用1 >> 引用2 > > 引用1
示例:引用及其嵌套
引用的区块中也可以包含其它Markdown元素,包括标题、列表、代码块等。
> ## 标题 > > 1. 有序列表1 > 2. 有序列表2 > > - 无序列表 > - 无序列表 > > 代码示例: > > use the printf() function;
示例:引用及其它元素嵌套
在代码块中,符号(&) 和尖括号(<和>) 会被自动转换为HTML实体。这使得使用Markdown包含HTML源代码变得非常容易——只需粘贴并缩进它,Markdown就可对特殊字符自动转义,减免了处理编码特殊字符的麻烦。
引用代码时,如果引用的语句只有一段,仅作为普通段落中的代码,可使用 1个反引号 ` 将其包起来。反引号中的文本不会被格式化。
Use the `printf()` function;
示例:代码片
引用代码时,如果引用的语句为多行,可在代码行首缩进 4个空格 或 1个制表符 (Tab) ,也可以使用 3个反引号 ` 置于代码的首行和末行。
示例:代码块
语法高亮:要将代码或文本格式化为各自的不同块,可使用 3个反引号 ` 包裹一段代码,并在首行反引号后面指明 语言标识符
。
示例:代码块 语法高亮
```[语言标识符] 在这里插入代码 ``` 注意:markdown支持的编程语言取决于您使用的编辑器,编辑器需要检测语言并进行语法高亮显示。例如: ```javascript // An highlighted block var foo = "bar"; ```
示例:链接、图像
插入链接与插入图片的语法很像,区别在一个 ! 号
链接: [链接标题文字](URL地址 可选title属性) 图像:![图像描述文字](URL地址 可选title属性)
示例:链接、图像
Markdown支持两种链接样式:内联链接 和 引用链接。在这两种样式中,链接文字都是用 方括号 [] 来标记。链接和图像使用方式相同。
创建内联链接,将链接文字包含在 方括号 [] 中,并紧跟着 小括号 () 。在括号内,指定链接的URL,可选地,空格 后面跟着链接的 title属性,用 双引号(推荐)、单引号 或 小括号 包围起来。
例如:
This is an example inline link.
This link has title attribute.
如果你引用的是同一路径下的本地资源,可以使用相对路径:
See my About page for details.
引用链接是在链接文字的括号后面再接上 第二组方括号 [],在其中填入用以 辨识链接的标签:
This is an example reference-style link.
然后,在文档中的任何地方,都可以像这样 在一行中定义链接标签:
你可以将title属性放在下一行,并为其使用额外的空格或制表符,使用更长的URL时看起来更好:
辨识链接的标签名 可由字母、数字、空格和标点符号组成,它们是 不区分大小写 的。例如,以下这两个链接是等价的:
[link text][a]
[link text][A]
允许你省略链接标签的名称,在这种情况下,链接文字本身 将用作名称。只需在链接文字后面加上 一组空的方括号。你可以简单地写:
然后定义链接:
由于链接名称可能包含空格,此快捷方式甚至 适用于链接文字中的多个单词:
Visit Baidu Products for more information.
然后定义链接:
Markdown支持以比较简短的自动链接形式来处理URL和电子邮件地址:只需用 尖括号 <>(推荐)环绕URL/电子邮件地址 或 直接书写 其地址即可,Markdown 就会自动把它转成链接。这意味着,你可以 显示URL或电子邮件地址的实际文本,并让它成为可点击的链接。
其它:脚注(扩展语法)
脚注的解释自动追加到文末(脚注的语法支持及语法规则应视实际使用的编辑器而定)。
示例:脚注
注意:为使多个脚注能够跳转脚注及回到链接,脚注编号应每组对应、#与跳转id后面的值应相同。
Markdown 制作表格使用 竖线 | 来分隔不同的单元格,使用 横线 - 来分隔表头和其他行。
单元格的宽度可以不同,无需在列内准确对齐。标题行的每一列中必须至少有一个横线 (推荐3个以上)。
| 表头 | 表头 | | - | - | |单元格|单元格|
示例:一个简单的表格是这么创建的
列1 | 列2 |
---|---|
1 | 2 |
1 | 2 |
对齐方式:在标题行中横线的左侧、右侧或两侧加入冒号 : ,以靠左、靠右或居中对齐列中的文本。
使用 :---: 设置内容和标题 居中对齐 使用 :--- 设置内容和标题 居左对齐 使用 ---: 设置内容和标题 居右对齐 例如: |第一列 | 第二列|第三列 | |:----------:|----------:|:----------| |第一列文本居中|第二列文本居右|第二列文本居左|
示例:表格对齐
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
在一行中使用 3个以上 连字符 – 、星号 * 或 下划线 _ 。行内不能有其他字符,但可以在其中插入空格。
示例:分隔线
拓展
LaTeX 数学公式 语法列表查询:https://katex.org/docs/supported.html
LaTeX 数学公式 在线编辑工具:https://www.latexlive.com、https://latex.codecogs.com/eqneditor/editor.php
现已有不同的Markdown工具集成并丰富了更多的功能,如较为复杂的数学公式、流程图、时序图等,虽有多种工具的支持呈现,但更为复杂的功能或许专业的图形界面工具(如XMind思维导图等)会更为方便、更有效率。选择适合自己的书写方法时,语法支持及语法规则还应视实际使用的编辑器而定。
数学公式:当你需要在编辑器中插入数学公式时,可以使用 2个美元符 $ 包裹 TeX 或 LaTeX 格式的数学公式来实现。
$$ \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. $$
示例:数学公式
上标和下标:上标使用符号 ^ 包围、下标使用符号 ~ 包围。编辑器不支持时,可分别使用 HTML 标签 <sup>(superscript)和 <sub>(subscript)替代。
上标和下标:2^10^,H~2~O HTML 标签:2<sup>10</sup>,H<sub>2</sub>O
示例:上标和下标
210, H2O
使用 HTML 标签方式: 210, H2O
Mermaid 流程图 语法文档:https://mermaid.js.org/syntax/flowchart
Mermaid 时序图 语法文档:https://mermaid.js.org/syntax/sequenceDiagram
Mermaid 甘特图 语法文档:https://mermaid.js.org/syntax/gantt
Markdown 允许使用 反斜线 \ 转义 来插入一些在语法中有特殊意义的符号,以使其输入为普通字符。
转义字符
Markdown 为下列字符提供反斜线转义:
\ 反斜线
` 反引号
* 星号
_ 下划线
{} 花括号
[] 方括号
() 小括号
# 井号
+ 加号
- 减号(连字符)
. 英文句点
! 感叹号
出现带有换行的段落、上下行为不同的 Markdown 语法时,尽量在换行后再多添加一个空行、以将其格式化为段落。使用空行将多个段落、不同的语法内容隔开,可以使最终输出结果最大兼容不同的 Markdown编辑器、同步于编辑时的源文档排版结构。未添加空行将出现部分编辑器略过换行、未正确生成段落而将多个段落文字连续满行显示,而紧凑的语法内容未得到正常格式化使得语法失效或混乱。
使用以上 Markdown 基本语法说明中给出“(推荐)”标示的选项。如 “自动链接” 中推荐使用 尖括号 <> 将链接地址包围,可最大兼容生成链接,而直接书写链接地址时部分编辑器未能生成自动链接。
基于以上 Markdown基本语法的 第三方增强语法支持,以下仅作举例说明。
表情符号支持列表 表情备忘单:https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md
@cat :+1: 这个 PR 看起来很棒 - 可以合并了! :laughing:
键入 @ 符号将显示项目中的人员或团队列表。列表会在您键入时进行过滤。提及团队时,输入 @组织/团队名称,该团队的所有成员将收到关注对话的提醒。
自动填写结果仅限于仓库协作者和该线程上的任何其他参与者。
带尺寸的图片:空格=宽x高
居中的图片:#pic_center
右对齐的图片:#pic_right
CSDN编写的文档在其它编辑器打开时,其中设置过对齐属性的图像可能显示失败,须恢复为源链接:
为适配兼容其它 Markdown编辑器,可使用HTML 等标签:
<p style="text-align: center;"> <img src="https://img-blog.csdnimg.cn/20210405103436678.png"/> </p>
Markdown在程序员中使用非常广泛, 是一种规范文本格式的简洁文本格式,文中如有疏漏还见谅,后续会继续补充完善哒😘。
VanBlog所有文章均使用Markdown格式书写.
本文作者:GYC
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!