Markdown的各种扩展

简介:

Markdown的各种扩展

PHP Markdown Extra

Markdown的php解析与实现,并且增加了许多有用的扩展。PHP Markdown Extra其中几个比较重要的改进有:

  • 支持在html块元素中插入markdown语法
  • 支持为一些元素添加id或class,比如为header添加id属性,用带锚点的链接导航。例如:

  
  
  1. [Link back to header 1](#header1)
  2.  
  3. Header 1 {#header1}
  4. ========
  5.  
  6. ## Header 2 ## {#header2}

支持元素包括header、code block、link、image

  • 支持将代码块用`或者~包起来,这样可以避免一些二义,还可以为代码块添加id或class

  
  
  1. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2. {.html #example-1}
  3. <p>paragraph <b>emphasis</b>
  4. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • 支持手写的表格:

  
  
  1. | Function name | Description |
  2. | ------------- | ------------------------------ |
  3. | `help()` | Display the help window. |
  4. | `destroy()` | **Destroy your computer!** |
  • 支持dl和dt在markdown中的对应语法
  • 支持脚注引用

  
  
  1. That's some text with a footnote.[^1]
  2.  
  3. [^1]: And that's the footnote.
  • 支持专有名词abbr
  • 避免下划线出现在单词中间,导致斜体输出

Maruku

在”始作俑者PHP Markdown Extra”后,很多基于Ruby的Markdown解释器开始浮现。其中,Maruku号称:

  • 支持原生Markdown
  • 支持所有PHP Markdown Extra的特性
  • 支持新的元数据语法,实际上就是给元素添加属性的能力
  • 支持公式格式输出

Maruku的语法详见这里

不过,该项目已经停止维护了。

kramdown

同样是ruby开发的解释器,kramdown吸取了Maruku几乎所有的特点,功能更为强大。其中有特点的功能有:

  1. 改进了一些二义语法
  2. 引入EOB标记^作为块元素的分隔符
  3. 手写table的语法更加强大一些,支持table中的header和footer
  4. 同样支持ALD(Attribute List Definitions属性列表定义)
  5. 还支持注释,以及在转化时配置一些转化选项

Github-Page推荐使用这个解释器

RDiscount

RDiscount又是一个基于Ruby开发的解释器,不过它是基于Discount的语法移植的,所以语法规则需要参考Discount。其语法支持几种上面没有提到过的特性:

  • 文本居中,即输出: <center>
  • 图片大小定义: ![dust mite](http://dust.mite =150x150)
  • 输出alpha列表: <ol type='a'></ol>

Redcarpet

Redcarpet是一个转化库,可以在标准Markdown的基础上,配置一些额外的功能:

  • 单词中间的_不处理
  • 转化PHP-Markdown风格的手写表格
  • 转化PHP-Markdown风格的带包含的代码块,也可禁用标准markdown的代码块语法
  • 自动link生成
  • 删除线支持:~~good~~
  • 高亮标签<mark></mark>通过==highlighted==输出
  • 引用标签<q></q>通过"quote"输出
  • 转化PHP-Markdown风格脚注
  • 一些二义性的约束支持

Github支持

Github Page对于上述的基于Ruby的markdown是支持的,从这里可以看到。另外,Github对于Issue、comments等,还定义了GFM(GitHub Flavored Markdown),其中的语法一般基本来源于上面的提到的东西。除此之外,github还支持一些额外的特性:

  • 支持把列表变成带勾选框的任务列表

  
  
  1. - [x] @mentions, #refs, [links](), **formatting**, and <del>tags</del> are supported
  2. - [x] list syntax is required (any unordered or ordered list supported)
  3. - [x] this is a complete item
  4. - [ ] this is an incomplete item
  • 站内对分支、问题、用户等对象的直接引用
  • 表情 
原文发布时间:2014-07-11
    本文来自云栖合作伙伴“linux中国”
    目录
    相关文章
    |
    7月前
    |
    自然语言处理 开发者 Python
    Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的 HTML 内容。Markdown 的语法简洁明了、学习容易,而且功能比纯文本更强。
    Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的 HTML 内容。Markdown 的语法简洁明了、学习容易,而且功能比纯文本更强。
    |
    9月前
    Markdown支持的语言详解
    Markdown是轻量级标记语言,用于创建HTML文档。主要特性包括:标题(#)、列表(无序/有序)、链接和图片(![描述](地址)、[文字](地址))、粗体/斜体(**/__,*/_)、代码块(`)、表格(|)、引用(&gt;)、水平线(***)、强调(*或_)和数学公式(LaTeX语法)。不同解析器可能支持更多扩展功能。
    56 0
    |
    9月前
    |
    JavaScript 前端开发 Java
    小笔记:表 - 各种语言的 CommonMark Markdown解析器 实现
    小笔记:表 - 各种语言的 CommonMark Markdown解析器 实现
    265 1
    |
    Rust JavaScript Docker
    提升 Markdown 文档协作:Let's Markdown介绍与部署
    Let's Markdown 是一个开源项目,旨在简化 Markdown 文档的创建、编辑和共享。快速、最小的网络编辑器,使标记编辑协作,每个人都可以访问。它提供了一套工具和功能,使 Markdown 文档的处理变得更加轻松和高效。使用Rust和React.js构建。有关详细信息,请参阅GitHub仓库。
    377 3
    提升 Markdown 文档协作:Let's Markdown介绍与部署
    |
    前端开发 JavaScript 数据格式
    Markdown支持的语言
    Markdown支持的语言
    |
    程序员
    markdown模式的一些语法
    markdown模式的一些语法
    73 0
    |
    程序员
    快速学会MarkDown语言
    快速学会MarkDown语言
    |
    JavaScript
    快捷转换/互转 Markdown 文档和 TypeScript/TypeDoc 注释
    作为文档工具人,经常需要把代码里面的注释转换成语义化的 Markdown 文档,有时也需要进行反向操作。以前是写正则表达式全局匹配,时间长了这种方式也变得繁琐乏味。所以写了脚本来互转,增加一些便捷性。
    134 0
    快捷转换/互转 Markdown 文档和 TypeScript/TypeDoc 注释
    |
    SQL ice
    性能数据markdown
    ecs.g7.4xlarge
    74 0
    |
    JSON 前端开发 数据格式
    MarkDown高级语法,兼容MarkText
    3.原始 HTML 任何介于<>之间的看起来像 HTML 标记的文本都将被解析为原始 HTML 标记并呈现为 HTML 而不会转义。
    171 0
    MarkDown高级语法,兼容MarkText

    热门文章

    最新文章