Markdown的各种扩展

日报写手
• 阅读 15152

刚开始接触markdown的时候,觉得好简单好方便,随着使用的深入,发现markdown好像在很多地方有很多不同的实现,语法特性各不相同,顿时陷入迷茫。原文:Markdown的各种扩展

标准markdown的语法:http://daringfireball.net/projects/markdown/syntax

PHP Markdown Extra

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

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

Header 1            {#header1}
========

## Header 2 ##      {#header2}

支持元素包括headercode blocklinkimage

  • 支持将代码块用`或者~包起来,这样可以避免一些二义,还可以为代码块添加id或class
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {.html #example-1}
<p>paragraph <b>emphasis</b>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • 支持手写的表格:
| Function name | Description                    |
| ------------- | ------------------------------ |
| `help()`      | Display the help window.       |
| `destroy()`   | **Destroy your computer!**     |
  • 支持dldt在markdown中的对应语法
  • 支持脚注引用
That's some text with a footnote.[^1]

[^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还支持一些额外的特性:

  • 支持把列表变成带勾选框的任务列表
- [x] @mentions, #refs, [links](), **formatting**, and <del>tags</del> are supported 
- [x] list syntax is required (any unordered or ordered list supported) 
- [x] this is a complete item 
- [ ] this is an incomplete item
  • 站内对分支、问题、用户等对象的直接引用
  • 表情
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
4年前
java反射, 不看你可别后悔
<divid"content\_views"class"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,
Symbol卢 Symbol卢
4年前
markdwon常用语法
什么是markdwon?Markdown是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。Markdown语言在2004由约翰·格鲁伯(英语:JohnGruber)创建。Markdown编写的文档可以导出HTML、Word、图像、PDF、Epub等多种格式的文档。Markdown编写的文档后缀为.md,.markdow
Stella981 Stella981
4年前
Markdown 常用语法
README该文件用来测试和展示书写README的各种markdown语法。GitHub的markdown语法在标准的markdown语法基础上做了扩充,称之为GitHubFlavoredMarkdown。简称GFM,GFM在GitHub上有广泛应用,除了README文件外,issues和wiki均支持markdown语法。
Stella981 Stella981
4年前
AndroidStudio封装SDK的那些事
<divclass"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,2.55,5z"id"raphael
Stella981 Stella981
4年前
Native memory allocation (mmap) failed to map xxx bytes for committing reserved memory
<divid"content\_views"class"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,
Stella981 Stella981
4年前
Markdown语法讲解及MWeb使用教程
写了一个月的博客,忽然感觉Markdown编辑器比较好用,于是就下载了一个本地的Markdown编辑软件学习了一下,刚好软件里自带了一篇英文的指示文档,顺便翻译了一下,通过这个过程也大致熟悉了Markdown语法,以后都会用Markdown来写文章了。通过Markdown编辑器发布了几篇博客,发现以下几个标签比较常用:标题标签
Wesley13 Wesley13
4年前
Java8中的LocalDateTime工具类
<divid"content\_views"class"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,
Stella981 Stella981
4年前
Markdown语法
Markdown基本语法\TOC\优点:1、因为是纯文本,所以只要支持Markdown的地方都能获得一样的编辑效果,可以让作者摆脱排版的困扰,专心写作。2、操作简单。比如:word编辑时标记个标题,先选中内容,再点击导航栏的标题按钮,选择几级标题。要三个步骤。而Markdown只需要在标题内容前加即可缺点:1、需要记一
Stella981 Stella981
4年前
Markdown基本语法
一级标题语法:一级标题二级标题:语法:二级标题三级标题:语法:三级标题四级标题:语法:四级标题五级标题:语法:五级标题六级标题:语法:六级标题分割线:语
SW SW
3年前
如何编辑 .md 文档 (基础)
如何编辑.md文档Markdown是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。Markdown语言在2004由约翰·格鲁伯(英语:JohnGruber)创建。Markdown编写的文档可以导出HTML、Word、图像、PDF、Epub等多种格式的文档。Markdown编写的文档后缀为.md,.markdow
绣鸾 绣鸾
2年前
Markdown文本编辑工具 Typora for Mac
是一款跨平台的Markdown编辑器,支持Windows、MacOS和Linux操作系统。它具有实时预览功能,能够自动将Markdown文本转换为漂亮的排版效果,让用户专注于写作内容而不必关心格式调整。TyporaMac版除了支持常见的Markdown语法
日报写手
日报写手
Lv1
夔府孤城落日斜,每依北斗望京华。
文章
3
粉丝
0
获赞
0