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特点[ ]
- 简单性**:Markdown语法简单易学,适合各类用户。
- 可读性**:以纯文本格式呈现,未渲染前也可方便阅读。
- 转换支持**:可以轻松转换为HTML、PDF、Word等多种格式。
- 广泛兼容**:许多平台(如GitHub、Reddit等)和应用程序均支持Markdown。
Markdown基本语法[ ]
以下是一些常用的Markdown语法元素:
标题[ ]
使用 `#` 表示标题,`#` 的数量指示标题级别。
# 一级标题 ## 二级标题 三级标题
强调[ ]
- *斜体*:使用单个星号或下划线:`*斜体*` 或 `_斜体_` 粗体**:使用两个星号或下划线:`**粗体**` 或 `__粗体__`
列表[ ]
无序列表**:使用星号、加号或减号。
项目 1 项目 2
有序列表**:使用数字加点。
1. 第一项 2. 第二项
链接[ ]
创建链接的语法如下:
[链接文本](URL)
图片[ ]
插入图片的语法类似:
![替代文本](图片URL)
块引用[ ]
使用大于符号 (`>`) 表示块引用:
> 这是一个块引用。
代码[ ]
- 行内代码,用反引号包裹:
`代码`
- 代码块,使用三个反引号:
代码块[ ]
水平分隔线:使用三个或更多的短横线、星号或下划线创建水平分隔线:
---
高级功能[ ]
表格:
| 列标题 | 列标题 | |---------|---------| | 行 1 | 行 1 | | 行 2 | 行 2 |
脚注:
这是一个带脚注的文本[^1]。
[^1]: 这是脚注的文本。