Markdown

1. Markdown 是什么?

Markdown 由 John Gruber 和 Aaron Swartz 在 2004 年创建,是一种轻量级标记语言,旨在让用户以纯文本的方式编写格式化文档,同时保持易读性和易写性。它的设计理念是“内容与格式分离”,用户只需使用简单的标记符号(如 #* 等)即可定义标题、列表、链接等格式,生成的文档可以轻松转换为 HTML、PDF 或其他格式。

特点:

简单易学:语法直观,学习曲线平缓。
跨平台支持:几乎所有现代编辑器和平台(如 GitHub、Jupyter Notebook、Notion、VS Code)都支持 Markdown。
可读性强:即使不渲染,Markdown 源文件也易于阅读。
灵活性:可以嵌入 HTML 代码,扩展功能。
用途广泛:常用于技术文档、博客、README 文件、笔记整理等。

应用场景:

编程相关:GitHub README、Jupyter Notebook 文档、API 文档。
写作:博客(如 Hugo、Jekyll)、技术文章。
笔记:Obsidian、Notion 等工具中的知识管理。
学术:撰写论文草稿或实验报告。


2. Markdown 的基础语法

以下是 Markdown 的核心语法,涵盖了最常用的格式化功能。我会逐一讲解,并提供示例代码和渲染效果的说明。

2.1 标题(Headers)

Markdown 使用 # 符号定义标题,# 的数量表示标题的层级(1 到 6 级,类似于 HTML 的 <h1><h6>)。

语法

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

渲染效果

# 一级标题 → 大号标题(相当于 <h1>
## 二级标题 → 稍小号标题(相当于 <h2>
以此类推。

注意

# 后需加一个空格。
标题常用于文档结构化,清晰划分内容层次。

替代语法(仅限一级和二级标题):

一级标题
========

二级标题
--------

这种方式较少使用,但仍被支持。


2.2 段落和换行(Paragraphs and Line Breaks)

Markdown 的段落由一行或多行文本组成,段落之间用空行分隔。

语法

这是一个段落。可以在一行内写很多内容,换行不会影响渲染。

这是另一个段落。

渲染效果

每个段落会被渲染为 HTML 的 <p> 标签。
段内换行(按 Enter)不会产生新段落,除非有空行。

换行
在行尾添加两个或更多空格并按 Enter,可以强制换行(不产生新段落)。

语法

第一行  (两个空格)
第二行

渲染效果

第一行
第二行

2.3 强调(Emphasis)

Markdown 支持文本的加粗和斜体,用于强调内容。

语法

斜体:用单个 *_ 包裹文本。
加粗:用两个 *_ 包裹文本。
加粗斜体:用三个 *_ 包裹文本。

*斜体* 或 _斜体_
**加粗** 或 __加粗__
***加粗斜体*** 或 ___加粗斜体___

渲染效果

斜体<em>
加粗<strong>
加粗斜体<strong><em>

注意

不要在 *_ 与文本之间加空格,否则无效。
尽量保持 *_ 风格一致(例如,全程用 *)。


2.4 列表(Lists)

Markdown 支持有序列表无序列表,类似于 HTML 的 <ol><ul>

无序列表(Unordered Lists)

使用 *-+ 作为列表项的标记。

语法

- 项目 1
- 项目 2
  - 子项目 2.1
  - 子项目 2.2
* 项目 3
+ 项目 4

渲染效果

项目 1
项目 2

子项目 2.1
子项目 2.2

项目 3
项目 4

注意

标记后需加空格。
子列表通过缩进(通常 2 或 4 个空格)实现。

有序列表(Ordered Lists)

使用数字加点号(如 1.)定义列表项。

语法

1. 第一项
2. 第二项
   1. 子项 2.1
   2. 子项 2.2
3. 第三项

渲染效果

第一项
第二项

子项 2.1
子项 2.2

第三项

注意

数字可以不按顺序(如全写 1.),渲染时会自动递增。
子列表同样通过缩进来嵌套。


2.5 链接(Links)

Markdown 支持插入超链接,分为内联链接和引用链接。

内联链接

语法

[链接文字](URL "可选标题")

示例

[访问 GitHub](https://github.com "GitHub 首页")

渲染效果
访问 GitHub

注意

URL 可以是完整地址(如 https://)或相对路径。
可选标题("...")在鼠标悬停时显示,部分渲染器支持。

引用链接

将链接定义放在文档其他位置,避免正文冗长。

语法

这是一个[链接][id]。

[id]: https://github.com "GitHub 首页"

渲染效果
与内联链接相同,但正文更简洁。

自动链接

直接写入 URL 或邮箱地址,会自动转为链接。

语法

https://github.com
<user@example.com>

渲染效果

https://github.com
user@example.com


2.6 图片(Images)

图片语法与链接类似,但前面加 !

语法

![替代文本](图片URL "可选标题")

示例

![Markdown 图标](https://markdown-here.com/img/icon256.png "Markdown")

渲染效果

显示图片,替代文本 在图片加载失败时显示。
可选标题 在鼠标悬停时显示(视渲染器而定)。

注意

图片URL可以是本地路径或网络地址。
引用风格的图片链接也支持,类似引用链接。


2.7 代码(Code)

Markdown 支持内联代码和代码块,用于展示程序代码或命令。

内联代码

用单个反引号(`)包裹代码。

语法

使用 `print("Hello, World!")` 输出文本。

渲染效果
使用 print("Hello, World!") 输出文本。

代码块

用三个反引号(“ ““`)或三个波浪号(~~~)包裹多行代码,可指定语言以启用语法高亮。

语法

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

**渲染效果**:
```python
def hello():
    print("Hello, World!")

注意

常见语言(如 pythonjavascripthtml)会被高亮显示。
缩进代码块(每行前加 4 个空格或 1 个制表符)是另一种方式,但较少使用。


2.8 引用(Blockquotes)

用于引用文本,常用于强调或标注出处。

语法

> 这是一段引用。
> 可以在多行延续。
>
> - 引用中可以嵌套列表
> - 或者其他格式

渲染效果

这是一段引用。
可以在多行延续。

引用中可以嵌套列表
或者其他格式

注意

> 后需加空格。
多段引用只需在段首加 >,空行分隔段落。


2.9 分隔线(Horizontal Rules)

用于分隔内容,增强文档结构。

语法

---
***
____

渲染效果
一条水平线(<hr>)。

注意

三者效果相同,需独占一行,前面无空格。
符号之间可以有空格(如 - - -)。


2.10 表格(Tables)

Markdown 支持简单的表格,部分扩展(如 GitHub Flavored Markdown)增强了功能。

语法

| 列1 | 列2 | 列3 |
|-----|-----|-----|
| 内容1 | 内容2 | 内容3 |
| 内容4 | 内容5 | 内容6 |

渲染效果

列1 列2 列3
内容1 内容2 内容3
内容4 内容5 内容6

对齐方式
通过在分隔线中添加冒号(:)控制对齐。

语法

| 左对齐 | 居中 | 右对齐 |
|:-------|:----:|-------:|
| 内容1  | 内容2 | 内容3  |

渲染效果

左对齐 居中 右对齐
内容1 内容2 内容3

注意

列宽会自动调整,管道符(|)不必对齐。
表格在某些渲染器中可能不支持,需确认环境。


2.11 转义字符(Escaping Characters)

若需显示 Markdown 特殊字符(如 *#),使用反斜杠()转义。

语法

* 不会变成斜体
# 不会变成标题

渲染效果

不会变成斜体

不会变成标题

常见转义字符
*, _, #, (, ), [, ], <, >, , “`, !, |, ., :


2.12 脚注(Footnotes)

部分 Markdown 扩展支持脚注,用于补充说明。

语法

这是一个句子[^1]。

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

渲染效果
这是一个句子1

注意

脚注标识(如 [^1])可以是任意唯一字符串。
脚注定义可以放在文档任意位置。


2.13 任务列表(Task Lists)

GitHub Flavored Markdown 支持任务列表,用于待办事项。

语法

- [x] 已完成任务
- [ ] 未完成任务

渲染效果

已完成任务
未完成任务

注意

[x] 表示选中,[ ] 表示未选中。
仅在支持 GFM 的环境(如 GitHub)有效。


3. Markdown 的使用场景与工具

3.1 常用工具

编辑器

VS Code:支持 Markdown 预览和插件(如 Markdown All in One)。
Typora:所见即所得的 Markdown 编辑器,适合初学者。
Obsidian:知识管理和笔记工具,基于 Markdown。
Notion:支持 Markdown 导入/导出。

平台

GitHub:README、Issues、Pull Requests 使用 Markdown。
GitLabBitbucket:类似 GitHub。
Jupyter Notebook:支持 Markdown 单元格。
Hexo/Jekyll:博客框架,文章用 Markdown 编写。

在线工具

Dillinger:在线 Markdown 编辑器。
StackEdit:支持云同步的 Markdown 编辑器。

3.2 实际使用建议

项目文档:在 GitHub 编写 README.md,使用标题、列表、代码块展示项目信息。
学习笔记:用 Typora 或 Obsidian 整理课程笔记,结合表格和代码块记录算法或代码片段。
博客写作:用 Markdown 撰写技术文章,发布到 Hugo 或 Medium。
实验报告:用 Markdown 编写结构化报告,导出为 PDF 或 HTML。


4. Markdown 的扩展与限制

4.1 扩展

许多平台对 Markdown 进行了扩展,增加了功能:

GitHub Flavored Markdown (GFM)

支持任务列表、表格、自动链接、删除线(~~文本~~)。
支持代码块语言高亮。

Pandoc Markdown

支持复杂的脚注、定义列表、数学公式(LaTeX)。
可转换为多种格式(如 PDF、Word)。

R Markdown

结合 R 语言,用于数据分析报告。
支持动态生成图表和代码输出。

Obsidian Markdown

支持双向链接([[页面]])、嵌入文件。

4.2 限制

标准不统一:不同平台支持的语法略有差异(如表格、脚注)。
复杂格式支持有限:如高级排版、动态内容需依赖 HTML 或扩展。
依赖渲染器:Markdown 文件需通过工具或平台渲染为 HTML 或其他格式。

解决方法

使用支持 GFM 的工具(如 GitHub、VS Code)以获得最广泛兼容性。
借助 Pandoc 转换复杂文档。
嵌入 HTML 或 CSS 实现高级格式化。


5. 学习 Markdown 的建议

以下是学习和应用 Markdown 的具体建议:

快速上手

花 30 分钟阅读本文的语法部分,尝试在 Typora 或 VS Code 中练习。
参考 GitHub 的 Mastering Markdown。

实践项目

为你的 AI 项目(如机器学习模型)写一个 README.md,包含项目简介、安装步骤、代码示例。
在 Jupyter Notebook 中用 Markdown 单元格记录实验过程。

工具集成

安装 VS Code 的 Markdown 插件(如 Markdown Preview Enhanced)。
尝试 Obsidian 管理学习笔记,构建知识图谱。

进阶学习

学习 GFM 和 Pandoc Markdown,掌握表格、脚注、数学公式。
探索 R Markdown 或 Quarto,用于学术报告或数据可视化。

常见问题处理

语法不生效:检查空格、缩进,或确认平台支持。
渲染差异:在目标平台(如 GitHub)预览效果。
复杂需求:嵌入 HTML 或使用扩展工具。


6. 示例:完整的 Markdown 文档

以下是一个综合示例,展示 Markdown 在 AI 项目文档中的应用:

# 项目:手写数字识别

## 概述
本项目使用 **卷积神经网络 (CNN)** 实现 MNIST 手写数字识别,基于 *PyTorch* 框架。

## 安装

1. 安装 Python 3.8+。
2. 安装依赖:
   ```bash
   pip install torch torchvision

模型结构

参数
Conv2D 32 filters, 3×3
MaxPooling 2×2
Dense 128 units, ReLU

代码示例

import torch.nn as nn

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(1, 32, 3)
        self.pool = nn.MaxPool2d(2, 2)
        self.fc1 = nn.Linear(32 * 13 * 13, 128)
        self.fc2 = nn.Linear(128, 10)

结果

模型在 MNIST 测试集上达到 98.5% 的准确率。

参考资料

PyTorch 官方文档
MNIST 数据集

渲染效果

结构清晰,包含标题、段落、列表、表格、代码块、引用和链接。
适合作为 GitHub 项目的 README 文件。


7. 总结

Markdown 是一种简单而强大的标记语言,特别适合技术文档和笔记整理。其核心语法(标题、列表、链接、代码等)易于掌握,扩展功能(如 GFM、Pandoc)进一步增强了灵活性。你可以通过 Markdown 高效记录实验、撰写文档和分享成果。

下一步行动

下载 Typora 或 VS Code,创建一个简单的 Markdown 文件,尝试本文介绍的语法。
为你的 AI 项目写一个 README.md,上传到 GitHub。
探索 Pandoc 或 Obsidian,提升 Markdown 的高级用法。


这是脚注内容。 ↩︎

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容