Markdown系列(3)- 不同的Markdown语法

不同的Markdown语法


原生Markdown

Markdown语法最早由John Gruber于2004年创立。为了区分于后来出现的各种衍生Markdown语法,故称为原生Markdown

虽然现在使用的Markdown与原生Markdown有所不同,但是衍生的众多Markdown语法也沿袭了很多原生Markdown的语法,所以学习原生的Markdown对学习Markdown有很大的帮助,特别是理解Markdown的理念。

原生Markdown将语法分成区块元素行内元素

  • 区块元素:段落、标题、区块引用、列表(无序和有序)、区块代码、分割线
  • 行内元素:链接、强调(粗体和斜体)、行内代码、图片

可以看出,原生Markdown支持的元素并不多,甚至连表格都不支持,只支持一些基本的元素。

衍生Markdown

自从John Gruber在2004年发布Markdown之后,Markdown进入了自由生长的状态,因为创始人John Gruber自2004年之后就没有更新过Markdown。

由于原生Markdown只是一个轻量级的标记语言,很多功能不具备。为了扩充功能,很多Markdown拓展语法被开发出来。其中,著名的有GFM、PHP Markdown Extra、MultiMarkdown、Pandoc Markdown等等。

1. GFM

原生Markdown发布后,最早在程序员圈内流行。由于Markdown的易读易写,而且对程序员很友好(支持块代码和行内代码),全球最大的代码托管平台Github引入了Markdown,并且对原生Markdown语法进行了拓展,并称之为Github Flavored Markdown,简称GFM。

与原生Markdown的主要不同:

  • 采用围栏式(Fenced式)区块代码:在代码的上下一行用3个反引号,可选择性定义代码语种,并支持代码高亮。

  • 列表嵌套方式:改为每次嵌套缩进两个空格。

  • 支持列表任务:在每个项目列表加入[],完成任务使用[x],如- [x] 任务说明

  • 支持简单表格:

    “`

First HeaderSecond Header
Conter CellConter Cell
Conter CellConter Cell

“`

注意:

① 两侧的竖线|可以省略。

② 第二行的每个单元格至少3个减号---

③ 可以修改每列文字对齐方式:| :--- | :---: | ---: |

  • 支持使用emoji表情::sad:,显示为:sad:。

  • 删除线(新增):用两个波浪号紧密包裹文字,如~~123

2. PHP Markdown Extra

与原生Markdown的主要不同:

  • 内嵌HTML:块标签可以缩进不超过3个空格,且可以在块标签中选择性使用Markdown语法。
  • 文内跳转:可以为区块元素设置id和class属性,实现文章内部跳转。
  • 区块代码:与GFM相似,可以使用围栏式在代码上下行使用3个或以上波浪号~~~包裹,也支持代码高亮。
  • 表格:同GFM。
  • 支持自定义列表
  • 支持脚注:[^1]:脚注内容,脚注名字必须唯一。
  • 支持缩略语
  • 强调:两字词中间的下划线不会被解释成强调。

3. MultiMarkdown

原生Markdown文档只能从纯文本转换为HTML。而MultiMarkdown则扩大了原生Markdown的转换范围,让其可以方便的转换成:

  • HTML/XHTML
  • LaTeX(which can be processed into a PDF)
  • OpenDocument Text document
  • OPML

为了更好的和其他格式兼容,MultiMarkdown借鉴了很多其他格式的语法功能。

与原生Markdown的主要不同:

  • 支持元数据:标题、作者、日期等信息,兼容部分YAML。
  • 支持交叉引用
  • 支持添加链接和图片的属性
  • 图片可以作为区块元素:如果一个图片语言独立成段,会被自动解释为区块元素,图片下会添加一行图片说明。
  • 支持部分复杂表格:兼容PHP Markdown Extra的表格,同时支持多行表头、单元格横向合并、表格分区、表格下行表格说明等。
  • 支持脚注:同PHP Markdown Extra。
  • 支持参考文献(Citations)
  • 支持定义列表:同PHP Markdown Extra。
  • 支持缩略语(Abbreviations):同PHP Markdown Extra。
  • 支持围栏式区块代码:上下行3到5个反引号包裹代码,可定义语法种类,选择性语法高亮。首尾行的反引号数量要一致。
  • 支持MathJax公式
  • 支持上标与下标
  • 支持术语表
  • 支持修订功能(CriticMarkup):可以显示修订痕迹
    • 删除:{--删除的文本--}
    • 添加:{++新增的文本++}
    • 替换:{~~删除的文本~>新增的文本~~}
    • 高亮:{==高亮的文本==}
    • 备注:{>>备注文本<<}
  • 支持内嵌HTML
  • **支持内嵌其他文件:**txt、tet、fodt、html等。
  • 换行方式改为行末使用\
  • 支持目录

4. Pandoc’s Markdown

Pandoc本身是一个多格式文档的转换工具,所以Pandoc Markdown与MultiMarkdown的设计目的相似,使Markdown可以转换成更多的不同格式。因为Pandoc支持的格式很多,这也就使得Pandoc’s Markdown非常的丰富。

与原生Markdown的主要不同:

  • 强制换行支持两种方式:行尾两个空格换行,反斜杠换行。
  • Atx式标题(即井号式标题)之前一定要预留空行
  • 区块引用之前一定要预留空行
  • 围栏式区块代码之前必须留空行
  • 支持行区块
  • 可生成不同形式的列表
  • 支持连续编号的范例清单
  • 支持定义列表
  • 支持简单表格、多行表格、格框表格和管线表格四种样式
  • 支持文件标题区块(类似元数据)
  • 支持删除线
  • 支持上标下标
  • 支持数学公式
  • 支持内嵌TeX

5. CommonMark

由于创始人自2004年之后就没有更新过Markdown语法,众多的遗留问题没有得到解决,加上扩展语法的自由发展和Markdown编辑器的涌现,导致了很严重的方言和兼容性问题。因此,有人希望对Markdown语法进行规整和同意,建立一套Markdown的语法规范。

CommonMark正是这样的产物。CommonMark与一般的衍生语法不同,它的目的不是扩展Markdown的标准。

可惜此举得到Markdown创世人John Gruber的强力反对,所以至今CommonMark并没有得到广泛的认可。但是就CommonMark本身而言,它规范了Markdown的各项语法,有许多可取之处。

与原生Markdown的主要不同:

  • 定义了优先级别:区块语法的优先级别大于行内语法。
  • 支持围栏式区块代码
  • 支持1)作为有序列表的项目标记
  • 支持\作为换行符
  • 列表嵌套采用行首内容对其,而非4个空格
  • Setext式标题(即底线式标题)支持多行

CommonMark基本没有新增内容,主要是对语法规范进行说明,对理解Markdown很有帮助。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vsc-markdown-image是一款在Visual Studio Code(VSC)编辑器中用于在Markdown文档中插入图像的插件。Markdown是一种轻量级的标记语言,用于快速编写和格式化文本,而vsc-markdown-image可以帮助我们更方便地将图像添加到Markdown文档中。 使用vsc-markdown-image插件非常简单。首先,在VSC编辑器中打开一个Markdown文档。然后,在你想要插入图像的位置,输入以下代码: ``` ![描述](图像路径) ``` 其中,描述是一个可选的文本,用于描述图像,图像路径是指图像在计算机中的位置。你可以将图像路径指向本地文件系统或者网络上的图像URL。 插入图像后,VSC编辑器会自动将该图像显示在Markdown文档中,并使用描述作为图像的替代文本。你可以通过将鼠标悬停在图像上来查看描述,或者点击图像来进一步查看。 此外,vsc-markdown-image还提供了一系列功能,如自动完成和语法高亮。它能够快速识别和显示图像路径,减少了手动输入的错误。此外,它还可以自动调整图像的大小和位置,以匹配你的Markdown文档的布局。 总之,vsc-markdown-image是一款非常实用的插件,可以帮助你在Markdown文档中轻松插入和管理图像。它提供了简单易用的功能,使你的文档更加丰富和有吸引力。无论你是要创建一个技术文档、一篇博客还是一本电子书,vsc-markdown-image都能提供便利的图像插入和管理方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值