Markdown

来自站长百科
跳转至: 导航、​ 搜索

Markdown是一种轻量级的标记语言,用于格式化纯文本。它由John Gruber于2004年创建,旨在使撰写和阅读结构化文档变得简单,而无需复杂的HTML语法。Markdown广泛用于文档、博客和笔记等场景,因其简单性和灵活性备受欢迎。

Markdown概述[ ]

John Gruber在2004年创造了Markdown语言,这一语言在语法上与亚伦·斯沃茨(Aaron Swartz)进行了大量的共同合作。Markdown的目标是鼓励用户使用“易于阅读、易于撰写的纯文本格式”,并能选择性地转换为有效的XHTML(或HTML)。其中,最重要的设计原则是可读性,即语言应便于直接阅读,而非依赖于格式化指令(如RTF和HTML)。因此,它沿袭了当前电子邮件标记格式的惯例,同时借鉴了多种早期标记语言,如Setext、Textile以及reStructuredText。

标准化[ ]

Markdown已成为一种典型的非正式规范,用于转换为HTML,并逐渐形成了参考实现。随着时间的发展,许多Markdown实现应运而生,主要是为了在基本语法之上增加额外功能,例如表格、脚注、定义列表(技术上称为HTML描述列表)以及在HTML块内部使用Markdown。这些实现中的一些行为与最初的参考实现有所偏离。同时,非正式规范中一些模糊之处也引起了用户的关注,促使部分Markdown解析器的开发者努力推动语言的标准化。

2016年3月,发布了RFC 7763和RFC 7764。RFC 7763引入了MIME类型`text/markdown`,而RFC 7764则讨论并注册了多个Markdown变体,包括MultiMarkdown、GitHub Flavored Markdown (GFM)、Pandoc、CommonMark及Markdown本身。

CommonMark[ ]

自2012年起,包括Jeff Atwood和John MacFarlane在内的一个小组启动了Markdown的标准化工作。该社区建立了一个网站,旨在汇集可供文档作者和开发人员使用的各种工具和资源,以及不同Markdown实现的开发者。2014年9月,Gruber反对在这一工作中继续使用“Markdown”这个名称,最终将其更名为CommonMark。CommonMark发布了规范、参考实现和测试包的多个版本,并计划于2018年发布最终的1.0规范和测试包。

GitHub Flavored Markdown (GFM)[ ]

2017年,GitHub发布了基于CommonMark的GitHub Flavored Markdown (GFM)的正式规范。GFM在遵循CommonMark规范的基础上,增加了如表格、删除线、自动链接和任务列表等扩展功能。此外,GitHub相应地修改了其站点上使用的解析器,要求一些文档格式的变更,例如,GFM要求创建标题的哈希符号与空格字符分隔。

Markdown Extra[ ]

Markdown Extra是一种轻量级的标记语言,基于在PHP(最初)、Python和Ruby中实现的Markdown。它增加了一些普通Markdown语法所不具备的功能,并且被多个内容管理系统(如Drupal、TYPO3和MediaWiki)所支持。Markdown Extra为Markdown添加了以下功能:

  • HTML块内的Markdown标记
  • 具有id/class属性的元素
  • 围栏代码块
  • 表格
  • 定义清单
  • 脚注

Markdown特点[ ]

  1. 简单性**:Markdown语法简单易学,适合各类用户。
  2. 可读性**:以纯文本格式呈现,未渲染前也可方便阅读。
  3. 转换支持**:可以轻松转换为HTML、PDF、Word等多种格式。
  4. 广泛兼容**:许多平台(如GitHub、Reddit等)和应用程序均支持Markdown。

Markdown基本语法[ ]

以下是一些常用的Markdown语法元素:

标题[ ]

使用 `#` 表示标题,`#` 的数量指示标题级别。

# 一级标题
## 二级标题
三级标题

强调[ ]

- *斜体*:使用单个星号或下划线:`*斜体*` 或 `_斜体_`
粗体**:使用两个星号或下划线:`**粗体**` 或 `__粗体__`

列表[ ]

无序列表**:使用星号、加号或减号。

项目 1
项目 2

有序列表**:使用数字加点。

1. 第一项
2. 第二项

链接[ ]

创建链接的语法如下:

[链接文本](URL)

图片[ ]

插入图片的语法类似:

![替代文本](图片URL)

块引用[ ]

使用大于符号 (`>`) 表示块引用:

> 这是一个块引用。

代码[ ]

- 行内代码,用反引号包裹:

`代码`
- 代码块,使用三个反引号:

代码块[ ]

水平分隔线:使用三个或更多的短横线、星号或下划线创建水平分隔线:

---

高级功能[ ]

表格:

| 列标题  | 列标题  |
|---------|---------|
| 行 1   | 行 1   |
| 行 2   | 行 2   |

脚注:

这是一个带脚注的文本[^1]。
[^1]: 这是脚注的文本。

相关条目[ ]