+++
title = "乱七八糟:Markdown使用快速教程"
date = 2025-04-08

[taxonomies]
tags = ["乱七八糟"]
+++

前言 本文为 Markdown 教程，内容涵盖 Markdown 的历史、作用、基本语法和显示效果，可以在github将本文的源码拷贝供大家参考和学习。

<!-- more -->

# Markdown 教程

## 零.常用的markdown编辑器

- VSCode的``Markdown Preview Enhanced``插件；
- 跨平台的[obsdian](https://obsidian.md/download)或者[inkdown](https://github.com/1943time/inkdown)，[joplin](https://github.com/laurent22/joplin)或[zettlr](https://github.com/Zettlr/Zettlr)


## 一、Markdown 简介

### 1.1 什么是 Markdown？

Markdown 是一种轻量级标记语言，最初由约翰·格鲁伯（John Gruber）在 2004 年创建，其设计目标在于简洁易读，同时能够快速转换为 HTML。Markdown 被广泛用于撰写文档、博客、论坛帖子以及 README 文档，其直观的语法和高度可读性受到开发者和写作者的一致好评。

### 1.2 Markdown 的历史和作用

- **历史沿革：**  
  2004 年左右，随着互联网内容量的增加以及对纯文本格式的需求不断上升，人们开始寻找一种既能保留纯文本的可读性，又能方便地生成格式化内容（如 HTML）的解决方案。Markdown 应运而生。经过十多年的发展，Markdown 已衍生出多个方言（例如 GitHub Flavored Markdown、CommonMark 等），并被各种编辑器、静态博客生成器（如 Zola、Jekyll、Hugo 等）以及内容管理系统所支持。

- **主要作用：**  
  - **快速排版：** Markdown 语法简单，使用自然语言符号来表示标题、列表、链接、图片等格式。  
  - **跨平台兼容：** 由于基于纯文本格式，Markdown 文件可以在任何文本编辑器中打开和编辑，而且可以很容易地转换成 HTML、PDF 等格式。  
  - **降低学习成本：** 与复杂的 HTML 标记相比，Markdown 的语法简单易懂，非常适合非程序员使用。  
  - **促进内容创作：** 许多博客平台和文档系统都采用 Markdown 作为主要写作格式，降低了内容创作和协作的门槛。

---

## 二、Markdown 基本语法

下面详细介绍 Markdown 常用的语法，并演示其在渲染后显示的效果。

### 2.1 标题

使用井号 `#` 来表示标题，井号的数量表示标题级别（1~6级）。

```markdown
# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题
```

**渲染效果：**

# 这是一级标题  
## 这是二级标题  
### 这是三级标题  
#### 这是四级标题  
##### 这是五级标题  
###### 这是六级标题  

---

### 2.2 强调文本

- *斜体*：在文字两侧加上一个星号 `*` 或下划线 `_`。  
- **加粗**：在文字两侧加上两个星号 `**` 或下划线 `__`。  
- ***斜体加粗***：在文字两侧加上三个星号 `***`。

```markdown
*这是斜体*
_这也是斜体_

**这是加粗**
__这也是加粗__

***这是斜体加粗***
```

**渲染效果：**

*这是斜体*  
_这也是斜体_  

**这是加粗**  
__这也是加粗__  

***这是斜体加粗***

---

### 2.3 列表

#### 无序列表

使用 `-`、`*` 或 `+` 表示无序列表项。

```markdown
- 项目 1
- 项目 2
  - 子项目 2.1
  - 子项目 2.2
- 项目 3
```

**渲染效果：**

- 项目 1  
- 项目 2  
  - 子项目 2.1  
  - 子项目 2.2  
- 项目 3

#### 有序列表

使用数字后面跟点号来表示有序列表：

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

**渲染效果：**

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

---

### 2.4 链接与图片

#### 链接

格式：[链接文字](URL "可选标题")。

```markdown
[GitHub](https://github.com "GitHub 官网")
```

**渲染效果：**  
[GitHub](https://github.com "GitHub 官网")

#### 图片

格式：`![图片替代文本](图片 URL "可选标题")`。

```markdown
![Markdown Logo](https://upload.wikimedia.org/wikipedia/commons/4/48/Markdown-mark.svg "Markdown")
```

**渲染效果：**

![Markdown Logo](https://upload.wikimedia.org/wikipedia/commons/4/48/Markdown-mark.svg)

---

### 2.5 代码

#### 行内代码

使用反引号 `` ` `` 来表示行内代码。

```markdown
使用 `printf()` 函数输出内容。
```

**渲染效果：**  
使用 `printf()` 函数输出内容。

#### 代码块

代码块使用三个反引号（```）包裹，也可以指定语言以便进行语法高亮。

````markdown
```python
def hello():
    print("Hello, World!")
```
````

> 注意：上述代码块中第一行的三个反引号后面紧跟着语言名称（如 `python`），结束时用相同的三个反引号结束。

**渲染效果（依赖编辑器或平台的语法高亮支持）：**

```python
def hello():
    print("Hello, World!")
```

---

### 2.6 引用块

使用 `>` 来表示引用（Blockquote）。

```markdown
> 这是引用的内容，可以用于引用名言或文章片段。
> 
> 多行引用时，每行前面都加上 `>`。
```

**渲染效果：**

> 这是引用的内容，可以用于引用名言或文章片段。  
>   
> 多行引用时，每行前面都加上 `>`。

---

### 2.7 分割线

使用三个或更多的横线 `---`、星号 `***` 或下划线 `___` 来产生水平分割线。

```markdown
---
或者
***
或者
___
```

**渲染效果：**

---

或者

***

或者

___

---

### 2.8 表格

Markdown 表格可以使用管道符 `|` 和短横线 `-` 来创建。

```markdown
| 表头1 | 表头2 | 表头3 |
| :---  | :---: | ---:  |
| 左对齐 | 居中对齐 | 右对齐 |
| 单元格内容 | 更多内容 | 数据 |
```

**渲染效果：**

| 表头1   | 表头2   | 表头3   |
| :------ | :-----: | -------:|
| 左对齐  | 居中对齐 | 右对齐  |
| 单元格内容 | 更多内容 | 数据   |

> **注：**  
> “:---” 表示左对齐；  
> “:---:” 表示居中对齐；  
> “---:” 表示右对齐。

---

## 三、Markdown 高级语法与扩展

不同平台可能支持额外的 Markdown 扩展语法，下面列举一些常见的扩展功能：

### 3.1 脚注

某些 Markdown 方言支持脚注。脚注格式如下：

```markdown
这是一个带脚注的句子.[^1]

[^1]: 这是脚注的内容。
```

**渲染效果：**

这是一个带脚注的句子.[^1]

[^1]: 这是脚注的内容。

### 3.2 任务列表

GitHub Flavored Markdown（GFM）支持任务列表，可以用于表示待办事项。

```markdown
- [x] 完成 Markdown 教程
- [ ] 阅读更多文章
- [ ] 分享教程
```

**渲染效果：**

- [x] 完成 Markdown 教程  
- [ ] 阅读更多文章  
- [ ] 分享教程

---

## 四、Markdown 使用注意事项

1. **空行与段落：**  
   Markdown 使用一个或多个空行来分隔不同的段落。如果要换行但不创建新段落，在行尾添加两个或更多空格后回车即可。

2. **转义字符：**  
   如果想要显示 Markdown 特殊符号而不被解析，比如 `*`、`#`、`\` 等，可以在前面加上反斜杠 `\`。

   ```markdown
   \*这不是斜体，而是普通的星号\*
   ```

   **渲染效果：**  
   \*这不是斜体，而是普通的星号\*

3. **原始文本展示：**  
   为了展示 Markdown 源码而不被渲染，请使用代码块（反引号包围）或适用平台支持的原始文本标签（例如 `{% raw %}` 与 `{% endraw %}`）。

---
**Done.**