开发者社区> 玄学酱> 正文

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中国”

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MarkDown高级语法,兼容MarkText
3.原始 HTML 任何介于<>之间的看起来像 HTML 标记的文本都将被解析为原始 HTML 标记并呈现为 HTML 而不会转义。
25 0
Markdown如何实现首行缩进?
Markdown如何实现首行缩进?
89 0
开发一个 vscode 插件,提升 markdown 排版可读性🌿
开发一个 vscode 插件,提升 markdown 排版可读性🌿
196 0
VSCode使less文件实时转换成css代码【扩展插件(Easy LESS)】
VSCode使less文件实时转换成css代码【扩展插件(Easy LESS)】
274 0
DocView 现在支持自定义 Markdown 模版了!
有小伙伴反馈说希望可以自定义 Markdown 模版,这样就可以导出自己想要的样式了!这个功能可以有,毕竟大家不可能都生成一模一样的文档。现在来一起看看如何实现自定义模版吧!
27 0
Markdown 额外语法支持-有道云笔记
有道云笔记内置Markdown编辑器和使用指南,非技术类笔记用户,千万不要被「标记」、「语言」吓到,Markdown的语法十分简单,常用的标记符号不超过十个,用于日常写作记录绰绰有余,不到半小时就能完全掌握。
54 0
Markdown 规范
Rules This document contains a description of all rules, what they are checking for, as well as an examples of documents that break the rule and corrected versions of the examples. Any rule whose heading is struck through is deprecated, but still provided for backward-compatibility. <a name="md001">
234 0
Markdown 额外语法支持 - GitHub Flavored Markdown
Syntax highlighting 语法突显 下面是一个例子,告诉你如何使用 GitHub 语法突显标记: function fancyAlert(arg) { if(arg) { $.facebox({div:'#foo'}) } } 您也可以简单地将代码缩进四个空格:
49 0
VuePress 博客优化之拓展 Markdown 语法
「这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战」。
180 0
【 Markdown 】Markdown 编辑器语法常用格式 ( 整理中 ... )(二)
【 Markdown 】Markdown 编辑器语法常用格式 ( 整理中 ... )(二)
93 0
+关注
玄学酱
这个时候,玄酱是不是应该说点什么...
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载