有谁知道 Markdown 是否存在 MIME 类型?我想是的text/plain
,但有更具体的吗?
5 回答
tl;博士:text/markdown
自 2016 年 3 月起
2016 年 3 月,在 IETFtext/markdown
注册为RFC7763。
以前,应该是text/x-markdown
。下面的文字描述了 2016 年 3 月之前的情况,当时 RFC7763 还是一个草案。
没有官方推荐Gruber 的定义,但是官方邮件列表上的讨论相当激烈,最终选择了text/x-markdown
.
这一结论后来受到质疑,得到了证实,并且可以被 IMO 视为共识。
这是缺乏官方 mime 类型的唯一合乎逻辑的结论:text/
几乎在任何地方都将提供适当的默认值,x-
因为我们没有使用官方类型,markdown
而不是gruber.
或其他什么,因为该类型现在如此普遍。
不过,关于 Markdown 的不同“风味”仍然存在未知数。我想有人应该注册一个官方类型,这应该很容易,但我怀疑除了 John Gruber 之外还有人敢这样做,因为他最近证明了他对 Markdown 的依恋。
IETF 上有一个草稿text/markdown
,但内容似乎根本没有描述 Markdown,所以在它变得更完整之前我不会使用它。
没有官方标准类型,但text/markdown
似乎是最常见的事实上的类型。大多数浏览器和其他相当复杂的客户端可能会看到该text/
部分并默认为text/plain
无论如何,因此没有太大区别。
不过需要注意的是:层次结构下的所有类型在相关 RFC 标准中的字符类型text/
默认为ISO-8859-1。从那以后,世界上大部分地区都转向了UTF-8。因此,除非您确定不会使用任何有趣的字符(或生活在旧的 Windows 世界中),否则您可能希望按如下方式指定它:
text/markdown; charset=UTF-8
看起来text/markdown将成为标准。
根据2016 年的 RFC7763 “The text/markdown type”</a>,一般的 MIME 类型是
text/markdown; charset=UTF-8
其中charset
参数是必需的,但不是必需的UTF-8
。
该 RFC 还指定了一个可选variant
参数,并且 Internet 编号分配机构维护了一个Markdown 变体注册表,
通过该注册表可以指定 Markdown 的特定变体,例如,
text/markdown; charset=UTF-8; variant=Original
text/markdown; charset=UTF-8; variant=GFM
text/markdown; charset=UTF-8; variant=CommonMark
一些变体允许更多参数,如
RFC7764“降价指南”</a> 中所述,例如,您可以添加变extensions=-startnum
体pandoc
以指定对方言的调整,尽管我不知道 pandoc 如何/是否实际解释它。
为什么需要字符集?
RFC2046 “MIME Part Two”</a> 从 1996 年开始将 US-ASCII 设置为默认字符集,但也表示
任何未来的“文本”子类型的规范必须指定它们是否也将使用“字符集”参数,并且可能还会限制其值。
然后RFC2616 “HTTP/1.1”</a> 从 1999 年开始指定 ISO-8859-1 作为text/*
通过 HTTP 传输的默认字符集,并且随着 Web 成为主要的通信模式,这成为text/*
媒体类型的假定默认编码。
如果没有明确的字符集或注册的 mime-type-specific 默认值,text/*
则被认为是 US-ASCII,除非所述文本通过 HTTP 传输,在这种情况下,它被认为是 ISO-8859-1。
RFC 6657“关于文本媒体类型中“字符集”参数处理的 MIME 更新”</a> 试图通过要求所有新媒体类型注册明确指定如何确定字符集来澄清这种差异,最好将其包含在有效负载中由于 HTML 允许使用
<meta charset=UTF-8>
.
text/markdown
注册将参数
指定charset
为“必需”。因此,使用 content-type of
text/markdown
在技术上是无效的,并且此类内容的字符集可以合法地解释为 undefined、invalid、US-ASCII、ISO-8859-1 或 UTF-8 中的任何一种,实际上它几乎一直是。
从 2008 年发现这个线程:http: //www.mail-archive.com/markdown-discuss@six.pairlist.net/msg00973.html
似乎mime类型text/vnd.daringfireball.markdown
应该由Markdown的作者注册,在此之前可以将Markdown mime类型指定为text/x-markdown
.