跳到主要内容

markdown语法整理

· 11 分钟阅读

其设计灵感主要来源于纯文本电子邮件的格式,目标是让人们能够使用易读、易写的纯文本格式编写文档,而且这些文档可以转换为 HTML(Hyper Text Markup Language,超文本标记语言)文档。 简单点说,Markdown 就是由一些简单的符号(如*/-> [] ()#)组成的用于排版的标记语言,其最重要的特点就是可读性强

目前最流行的扩展语法是 GitHub Flavored Markdown,简称 GFM,毕竟 GitHub 是全球最大的程序员「交友」网站

标题

#方式

# h1级标题
## h2级标题
### h3级标题
#### h4级标题
##### h5级标题
###### h6级标题

分割线方式

三个以上的短线 即可

一级标题
===

二级
---

建议使用 # 标记标题,而不是 === 或 ---,因为后者会难以阅读和维护。

  • \= 表示一级标题。
  • - 表示二级标题。
  • 底线符号的数量至少 2 个。
  • 这种语法只支持这两级标题。

粗体和斜体

在 Markdown 中,粗体由两个*或两个_包裹,斜体由 1 个*或 1 个_包裹。 建议粗体使用 2 个*包裹,斜体使用 1 个*包裹,因为*比较常见,而且比_可读性更强。

段落与换行

段落

  • 如果行与行之间没有空行(就是两行中间空的一行),则会被视为同一段落。
  • 如果行与行之间有空行,则会被视为不同的段落。
  • 空行是指行内什么都没有,或者只有空格和制表符。
  • 如果想在段内换行,则需要在上一行的结尾插入两个以上的空格然后按回车键。

为了便于阅读,应该限制每行字符的数量,通常每行不超过 80 个字符,可以在编辑器中进行设置。

换行

  • 当超过 80 个字符后进行换行。
  • 在一句话结束(。或!或?)之后换行。
  • 当 URL 较长时通过引用链接来进行优化。

通常 URL 较长会导致行字符数量超过限制,为了提高可读性,建议通过引用链接来进行优化:

真的长

列表

在 Markdown 中支持使用有序列表和无序列表 有序列表数字序号 + 英文句号 + 空格 + 列表内容 或者 数字序号 + ) + 空格 + 列表内容 来标记

  1. 梅西
  2. C罗
  3. 内马尔

无序列表*或+或- + 空格 + 列表内容来标记。

  • 梅西
  • C罗
  • 内马尔

小提示:使用*/+/-来标记无序列表的效果是相同的。

分割线

在 Markdown 中,分隔线由 3 个以上的*/-/_来标记

  1. 分隔线须使用至少 3 个以上的*/-/_来标记。
  2. 行内不能有其他的字符。
  3. 可以在标记符中间加上空格。

图片

图片替代文字

  1. 图片替代文字在图片无法正常显示时会比较有用,正常情况下可以为空。
  2. 图片地址可以是本地图片的路径也可以是网络图片的地址。
  3. 本地图片支持相对路径和绝对路径两种方式。

链接

连接名称或者我是链接名,支持html标签i标签噢噢噢点我iii

引用链接是把链接地址作为「变量」先在 Markdown 文件的页尾定义好,然后在正文中进行引用。其语法如下:

  • [163]: https://163.com
  • [网易](163)

网址链接在 Markdown 中,将网络地址或邮箱地址使用 <> 包裹起来会被自动转换为超链接。其语法如下。 https://163.com

超链接: 我是链接名

  • 当链接地址为网络地址时要以 http/https 开头,否则会被识别为本地地址。
  • 链接标记不区分大小写。
  • 链接标记可以有字母、数字、空格和标点符号。
  • 定义的链接内容可以放在当前文件的任意位置,建议放在页尾。

代码块

行内代码块

我是行内的console.log(1)

如果代码块内想使用反引号(`),外层需要连续两个反引号,比如: vscode使用 Ctrl + ` 打开终端

多行代码块:

四个空格开头,或者以tab开头: var a = 1 alert(a)

围栏写法:

  console.log(1)
alert(1)

使用规范

除行内代码可以使用 ` 包裹以外,如果我们想转义或强调某些字符,也可以使用 ` 包裹:

我是想用强调 rm -f * /跑路,具体查看readme.md

如果代码超过 1 行,请使用围栏代码块(扩展语法),并显式地声明语言,这样做便于阅读,并且可以显示语法高亮。 但如果我们编写的是简单的代码片段,使用 4 个空格缩进的代码块也许更清晰:👇

克隆代码

git clone xxx

进入目录

cd xxx

安装模块

npm install

很多 Shell 命令都要粘贴到终端中去执行,因此最好避免在 Shell 命令中使用任何换行操作;可以在行尾使用一个\,这样既能避免命令换行,又能提高源码的可读性。

建议不要在没有输出内容的 Shell 命令前加 \$。在命令没有输出内容的情况下,\$是没有必要的,因为内容全是命令,我们不会把命令和输出的内容混淆。

$ npm install 不如直接 npm install

console.log(1)
1
不如使用:
$ console.log(1)
// 1

引用

在 Markdown 中,引用由 > + 引用内容来标记

  1. 多行引用也可以在每一行的开头都插入 >
  2. 在引用中可以嵌套引用。
  3. 在引用中可以使用其他的 Markdown 语法(记得加空格哦)。
  4. 段落与换行的格式在引用中也是适用的。

建议在引用的标记符号 > 之后添加一个空格
建议每一行引用都使用符号 >
不要在引用中添加空行: 👇

> 仰天大笑出门去
>
> 我辈岂是蓬蒿人
强于
> 行到水穷处

> 坐看云起时

转义

当我们想在 Markdown 文件中插入一些标记符号,但又不想让这些符号被渲染时,可以使用 \ 进行转义

\ 反斜线
` 反引号
* 米号???
_ 下划线
{} 花括号
[] 中括号
() 括号
# 井号
+
-
. 句号英文
! 感叹号

GFM语法:

删除线

可以使用 ~~ + 删除的文本 + ~~ 实现删除线的效果👇,必须是两个~

后面的文字被删除掉了

表情符号

可以使用emoji表情代码,:表情代码:,vscode 好像还不支持,其实直接输入法输进去就好啦😄

😄

超链接

打开百度 www.baidu.com, 在GFM语法自动链接只识别以 www 或 http://开头的 URL 地址。 如果不想使用自动链接,也可以使用 www.baidu.com

表格

  • 单元格使用 | 来分隔,为了阅读更清晰,建议最前和最后都使用 |。
  • 单元格和 | 之间的空格会被移除。
  • 表头与其他行使用-来分隔。
  • 表格对齐格式如下:
    • 左对齐(默认没有:认为左对齐) :---
    • 右对齐 ---:
    • 居中对齐 :---:
  • 块级元素(代码区块、引用区块)不能插入表格中。
左对齐左对齐左对齐左对齐居中居中居中居中居中居中居中居中右对齐右对齐右对齐右对齐右对齐右对齐
左对齐居中右对齐

任务列表

  • 任务列表以- + 空格开头,由 [空格或者x] + 内容 组成。

  • x 可以小写,也可以大写,有些编辑器可能不支持大写,所以为避免解析错误,推荐使用小写的 x。

  • 当方括号中的字符为空格时,复选框是未选中状态,为 x 时是选中状态。

  • 完成

  • 未完成

    • 小明
    • 小红

锚点

锚点,也称为书签,用来标记文档的特定位置,使用锚点可以跳转到当前文档或其他文档中指定的标记位置。语法为 [描述](#锚点名)

Markdown 会被渲染成 HTML 页面,在 HTML 页面中可以通过锚点实现跳转;GitHub、GitBook 项目文档中的目录也是通过锚点实现跳转的。

  • 锚点名建议使用字母和数字,当然中文也是被支持的,但不排除有些网站支持得不够好。
  • 锚点名是区分英文大小写的。
  • 在锚点名中不能含有空格,也不能含有特殊字符。

送你上去

折叠菜单

折叠菜单

折叠的内容。

console.log(123)

书写风格

关于空格

一些需要加空格的情况:

  • 英文标点符号(如,.;:?)与后面的字符之间需要加空格,与前面的字符之间不需要加空格。
  • 当在中文、英文中使用 >(半角)标识路径时,两边都需要加空格。

不需要加的:

  • 中文标点符号和数字、中文、英文之间不需要添加空格。
  • 数字和百分号之间不需要添加空格。
  • 数字和单位符号之间不需要添加空格。
  • 英文和数字组合成的名字之间不需要添加空格。
  • 当/(半角)表示「或」、「路径」时,与前后的字符之间均不加空格。
  • 货币符号后不加空格。
  • 负号后不加空格。

全角和半角

  • 在中文排版中,要使用全角标点符号。
  • 在英文排版中,要使用半角标点符号。

书写工具

vscode推荐插件

推荐使用ctrl + k (同时按下后松手) + v 侧边预览 或者 ctrl + shift + v 直接新tab预览

  • Markdown All in One 支持一些markdown文本格式化,路径自动联想等。很实用!!!
  • Paste Image 在 Markdown 文件中插入图片一直不太方便,通常需要经历「截图」→「保存」→「导入」这几个步骤,使用 Paste Image 这个插件能够直接从剪切板粘贴图片到 Markdown 文件中,也就是说,插入图片只需两步就可以了,即「截图」→「粘贴」。
    方法 1,调出命令行面板,输入[Paste Image],按回车键后,截图就被插入到文件中了
    方法 2,使用快捷键:Ctrl+Alt+V(Windows 系统)/Command+Option+V(macOS 系统)
    粘贴的图片会被保存到当前编辑的文件所在的文件夹中,格式为 PNG,并以当前时间命名。 小提示:如果快捷键有冲突,我们可以自定义快捷键。操作步骤:【管理】→【键盘快捷方式】→ 输入[Past Image]→ 双击快捷键 → 输入新的快捷键组合 → 按回车键保存。
  • Markdown Preview Enhanced Typora 支持的所有 Markdown 语法,包括 GFM、数学公式、图表、目录等,MPE 基本都支持。如果你已经很熟悉 Typora 的使用,那么使用 MPE 也会很轻松。除此之外,MPE 还支持引用文件和制作幻灯片,这两个功能绝对会让你眼前一亮。
  • 插入目录
    • 直接在文件中输入[TOC]然后按回车键,这种方式比较通用,在 Typora 中也可以正常渲染。
    • 调出命令行面板,输入[TOC],在联想出来的命令列表中单击[Markdown Preview Enhanced:Create TOC],保存后可正常渲染目录。
  • 引用文件
    • 引用 Markdown 文件 @import "reademe.md"
    • 引用图片 @import "heart.png",甚至设置图片大小 @import "heart.png" {width="10px" alt="给你小心心"}
    • 引用 csv 文件,被引用的 csv 文件会被直接解析成表格
  • 导出文件
    • 导出 HTML 文件 在 MPE 中,把 Markdown 格式的文件导出为 HTML 文件非常简单,只需在预览界面上,单击鼠标右键,选择【HTML】→【HTML(offline)】即可,HTML 文件会被导出到与当前 Markdown 文件同级的目录中。可是在默认情况下,当 Markdown 文件有改动时,HTML 文件并不会同步更新,如果想做到这一点,需要在 Markdown 文件头部加上如下代码。
       ---
      export_on_save:
      html: true
      ---
    • 导出 PDF 文件(Puppeteer)
  • 幻灯片

    MPE 使用 reveal.js 来渲染幻灯片,这比直接使用 reveal.js 来创建幻灯片更加简单便捷。 👇

---
presentation:
theme: black.css
---
<!-- slide -->
# 第一页 在新的markdown文件中打开

第二页

可以切换主题:

- beige.css
- black.css
- blood.css
- league.css
- moon.css
- night.css
- serif.css
- simple.css
- sky.css
- solarized.css
- white.css
- none.css
- white.css(默认)