Markdown Q&A

发表于:
标签:
编辑 删除

参考:

  1. Markdown 官方语法说明:http://daringfireball.net/projects/markdown/syntax
  2. 在线 Markdown 编辑器:Dillinger http://dillinger.io/

Markdown 中没有我需要的标签怎么办?

直接使用 HTML,甚至可以使用 script 标签,

Markdown 中嵌套 HTML 有什么规则?

1. 嵌套 HTML 块元素(Block-level elements)
按照官方文档说明,在 Markdown 中书写 HTML 块标签(例如:div, table, pre, p 等)时,需要在开始标签和结束标签前后分别添加空行和周围的 Markdown 隔开。如下:

this is a Markdown line

<p>
  this is a HTML tag
</p>

this is another Markdown line

但是实际中,不加空行也解析出同样的 HTML,个人暂时还没有看出来有什么影响。
2. 嵌套 HTML 行内元素(Inline elements / Span-level elements)
HTML 行内标签可以在 Markdown 中随意使用

HTML 中是否可以嵌套 Markdown?

可以,但有限制。
1. HTML 块元素中的 Markdown 不会解析。如:

<p>
  **this is a markdown line**
</p>

结果如下:

**this is a markdown line**

2. HTML 行内元素中的 Markdown 会解析,如:

<span> this line in **HTML** span tag </span>

结果如下:

this line in HTML span tag

那 HTML 和 Markdown 是否可以多层嵌套?

当然,只要遵守各自嵌套的规则即可,如

this <strong>is a *markdown markdown*</strong> line

结果如下:

this is a html markdown line

那么 Markdown 如何处理恶意标签,如 script 标签?

默认并不过滤 script 标签,官方在线编辑器:http://daringfireball.net/projects/markdown/dingus

HTML 中的特殊字符如 <, & 是如何处理?

处理基本和 HTML 本身的机制相同,但更智能,如在代码块和单行代码中,会自动转义<>。

注:本站编辑器使用的 WMD 对 Markdown 语法有扩展,但后端解析用的 Redcarpet 并没有这些扩展,所以导致前端预览和最终的显示有出入。