Markdown语法(一)

Markdown语法(一)

引子

最近比较有空,在网上逛逛,发现了赛博大善人cloudflare,真是相见恨晚,想不到国外还有如此良心的厂商,不仅有大量免费功能,而且它也是全球最大的CDN厂商,最重要的是,免费套餐也有DDOS防御可用,虽然我应该用不到。

所以我花了不少时间来了解和学习了一下CF(cloudflare,后文都用CF代替,简单明了)有哪些功能,又有哪些羊毛可以薅。

为什么开始学习Markdown语法

因为在了解和学习CF的这个过程中,我用hexo搭建了这个博客,部署在CF上,不需要服务器,没有断电、断网的风险,基本可以说是全天候24小时随时在线。而hexo写博客需要Markdown语法,所以就研究了一下Markdown语法。

Markdown历史

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。
Markdown 语言在 2004 由约翰·格鲁伯(英语:John Gruber)创建。
Markdown 的设计理念是”易读易写”,让人们能够使用简单的纯文本格式来编写结构化文档。
Markdown 编写的文档可以导出 HTML 、Word、图像、PDF、Epub 等多种格式的文档。
Markdown 编写的文档后缀为 .md, .markdown。

Markdown 的核心特点包括

简洁性:使用直观的符号来表示格式,比如用 # 表示标题,用 * 表示列表项。这些符号在视觉上就能传达其含义,即使不进行渲染也具有良好的可读性。
可读性:即使是纯文本形式的 Markdown 文档,也能清晰地展现文档的结构和层次。读者无需专门的软件就能理解内容的组织方式。
便携性:Markdown 文件是纯文本格式,可以在任何文本编辑器中打开和编辑,不依赖特定的软件或操作系统。
转换性:可以轻松转换为 HTML、PDF、Word 文档等多种格式,满足不同的发布需求。

Markdown语法

标题

Markdown 使用 # 号来创建标题,这是从 HTML 的 <h1> 到 <h6> 标签概念演化而来的。
使用 # 号可表示 1-6 级标题,一级标题对应一个 # 号,二级标题对应两个 # 号,以此类推。
下面是 1-6 级标题的效果:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
##### 六级标题

符号与文字间的空格:# 号和标题文字之间必须有一个空格。这是标准的 Markdown 语法要求。

标题的层次结构应该遵循逻辑顺序,不应该跳级使用。良好的标题结构就像一本书的目录,不要从一级标题直接跳到三级标题等。

文本格式

段落

Markdown 段落没有特殊的格式,直接编写文字就好,段落的换行是使用两个以上空格加上回车。

图片转载自菜鸟教程

当然也可以在段落后面使用一个空行来表示重新开始一个段落。

图片转载自菜鸟教程

字体

文本强调是写作中的重要技巧,Markdown 提供了简洁的方式来实现粗体和斜体效果。
Markdown 可以使用以下几种字体:粗体和斜体。

粗体语法:使用两个星号 ** 或两个下划线 __ 包围文字:
这是**粗体文字**使用星号
这是粗体文字使用星号
这是__粗体文字__使用下划线

斜体语法:使用一个星号 * 或一个下划线 _ 包围文字:
这是*斜体文字*使用星号
这是斜体文字使用星号
这是_斜体文字_使用下划线

粗斜体组合:使用三个星号 *** 或三个下划线 ___
***粗斜体文本***
粗斜体文本
粗斜体文本

我发现hexo并不能渲染 __ 和 _ (双下划线和单下划线),而我在菜鸟教程中看到的建议也是尽量使用 *,而不是_,___ (三下划线)倒是能支持。

分隔线

你可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。下面每种写法都可以建立分隔线:

***

* * *

*****

- - -

----------

效果如下:

删除线

如果段落上的文字要添加删除线,只需要在文字的两端加上两个波浪线 ~~ 即可,实例如下:
~~BAIDU.COM~~
BAIDU.COM

下划线

<u>带下划线文本</u>
带下划线文本

脚注

脚注是对文本的补充说明。
Markdown 脚注的格式如下:
[^要注明的文本]
创建脚注格式类似这样 [^RUNOOB]。

菜鸟教程的效果示意图:

你会发现,它似乎也没有生效。

行内代码标记

行内代码用于在正文中标记代码片段、命令、变量名等:
基本语法:

使用一个反引号 ` 包围代码:

使用 `git commit` 命令提交代码
变量 `userName` 存储用户名
在终端中输入 `npm install` 安装依赖

效果如下:
使用 git commit 命令提交代码
变量 userName 存储用户名
在终端中输入 npm install 安装依赖

包含反引号的代码

当代码本身包含反引号时,使用两个反引号包围。

1
要显示反引号,使用 `` `code` `` 这样的格式

— 你看到这一段内容,是使用三个反引号包裹的,你应该知道怎么处理这种情况了吧。

文本高亮

两种写法,其中==方式hexo中不支持, <mark>方式支持。

这是==高亮文本==
这是==高亮文本==
这是<mark>高亮文本</mark>
这是高亮文本

列表

Markdown 支持有序列表和无序列表。

无序列表

无序列表使用星号(*)、加号(+)或是减号(-)作为列表标记,这些标记后面要添加一个空格,然后再填写内容:

* 第一项
* 第二项
* 第三项
+ 第一项
+ 第二项
+ 第三项
- 第一项
- 第二项
- 第三项

效果如下:

  • 第一项
  • 第二项
  • 第三项
  • 第一项
  • 第二项
  • 第三项
  • 第一项
  • 第二项
  • 第三项

有序列表

有序列表用于展示有顺序要求的步骤或项目。

有序列表使用数字并加上 . 号来表示,如:

1. 第一项
2. 第二项
3. 第三项

效果如下:

  1. 第一项
  2. 第二项
  3. 第三项

数字可以不连续
Markdown 会自动修正数字顺序:

1. 第一项
3. 第二项(实际显示为2)
7. 第三项(实际显示为3)

  1. 第一项
  2. 第二项(实际显示为2)
  3. 第三项(实际显示为3)

如果第一项就不是从1开始的,那么就会从指定的数字开始,如下:

5. 第五项
6. 第六项
7. 第七项

  1. 第五项
  2. 第六项
  3. 第七项

这里教程说的,和hexo中的表现又不一样(实际上它续接了前面列表的编号),我也调试了很久,并没有解决这个问题。确实各个markdown编辑器的表现有很大差异。

列表嵌套

列表可以嵌套使用,创建多层次的结构:

无序列表嵌套:
1
2
3
4
5
6
7
8
9
- 水果
- 苹果
- 红苹果
- 绿苹果
- 香蕉
- 橙子
- 蔬菜
- 胡萝卜
- 白菜
  • 水果
    • 苹果
      • 红苹果
      • 绿苹果
    • 香蕉
    • 橙子
  • 蔬菜
    • 胡萝卜
    • 白菜
有序列表嵌套:
1
2
3
4
5
6
7
1. 准备阶段
1. 收集资料
2. 制定计划
2. 执行阶段
1. 开始实施
2. 监控进度
3. 总结阶段
  1. 准备阶段
    1. 收集资料
    2. 制定计划
  2. 执行阶段
    1. 开始实施
    2. 监控进度
  3. 总结阶段
混合嵌套:
1
2
3
4
5
6
7
1. 主要任务
- 子任务A
- 子任务B
1. 详细步骤1
2. 详细步骤2
- 子任务C
2. 次要任务
  1. 主要任务
    • 子任务A
    • 子任务B
      1. 详细步骤1
      2. 详细步骤2
    • 子任务C
  2. 次要任务

列表混合嵌套只需在子列表中的选项前面添加两个或四个空格即可:

1
2
3
4
5
6
1. 第一项:
- 第一项嵌套的第一个元素
- 第一项嵌套的第二个元素
2. 第二项:
- 第二项嵌套的第一个元素
- 第二项嵌套的第二个元素
  1. 第一项:
    • 第一项嵌套的第一个元素
    • 第一项嵌套的第二个元素
  2. 第二项:
    • 第二项嵌套的第一个元素
    • 第二项嵌套的第二个元素
任务列表(复选框列表)
1
2
3
- [ ] 未完成的任务
- [x] 已完成的任务
- [ ] 另一个未完成的任务
  • 未完成的任务
  • 已完成的任务
  • 另一个未完成的任务

实践一下子

今天完成了哪些语法学习:

  1. 标题
    1. 六种级别标题
  2. 文本格式
    1. 段落
    2. 字体,粗体、斜体、删除线、分隔线等
    3. 行内代码标记
    4. 文本高亮
  3. 列表
    • 有序列表
    • 无序列表
    • 列表嵌套
  • 标题
  • 文本格式
  • 列表

哪个最难?

列表嵌套

哪个比较简单

标题咯

完成情况记录

  1. 标题
  2. 文本格式
  3. 列表
    • [] 有序列表
    • [] 无序列表
    • 列表嵌套