Dive Into HTML5:历史(续)

在 Tony 发布他的消息几小时后,Tim Berners-Lee 回复道:

我认为图表应该是这样子的:它们的关系是,EMBED 代表嵌入;而 PRESENT 代表发布源文档。

注意,你可以选择任意组合;如果浏览器不支持其中一个,也不应该破坏整个页面。我觉得这样就可以代表嵌套的图标,而且不需要一个特殊的标记。

<a name=fig1 href="fghjkdfghj" REL="EMBED, PRESENT">Figure </a>

这个建议一直没有实现,但是 ref 属性还是被接受了。

Jim Davis 又说道:

如果能够制定内容的类型就更好了,例如:但是我希望能够使用文件后缀名来指定内容类型。

<IMG HREF="http://nsa.gov/pub/sounds/gorby.au" CONTENT-TYPE=audio/basic>

这一提案也没有被接受,但是后来 Netscape 也添加了一个嵌入多媒体对象的标签<embed>元素。

Jay C. Weber 问道:

我希望在 WWW 浏览器中增加图片显示的功能,但是我觉得不应该一次增加一项媒体格式。这样的话我们对于 MIME 类型机制是不是有些分歧呢?

Marc Andreessen 回复道:

这并不是对 MIME 标准的替代。它只是提供了一种独立于 MIME 的必要的和简单的功能实现。

Jay C. Weber 回复道:

如果 MIME 会影响到我们的决策的话,那就让我们暂时忘记 MIME。我的目的是讨论“我们如何支持嵌入式图像”,而不是“我们如何支持嵌入多种媒体”。另外,下一周有人会提出“让我们为音频增加一个<AUD SRC="file://foobar.com/foo/bar/blargh.snd">吧!”实现一种通用的技术也并不会很困难。

后来的事实证明,Jay 的思想被很好的继承下来。这一点比一个周要长那么一点点,但是 HTML5 也的确增加了<video><audio>两个标签。

针对 Jay 的原始信息,Dave Raggett 说:

真是这样!我希望有一个完整的 image/line 的艺术类型,连同所有可能的格式协商。Tim 说的要支持点击的图片也很重要。

1993年后期,Dave Raggett 提出了一个 HTML 标准的改进版本 HTML+。这一提案也从未被实现,后来由 HTML 2.0 所取代。HTML 2.0 比较“复古”,因为它所规定的东西都已经被广泛使用了。“这一标准汇集、澄清并且正式确定了在1994年6月之前被广泛使用的 HTML 技术。”

Dave 后来基于 HTML+ 草案制定了 HTML 3.0。除了 W3C 自己的参考实现 Arena 外,HTML 3.0 没有其他实现。后来,HTML 3.0 被 HTML 3.2 取代,这是另外一个“复古实现”,因为 HTML 3.2 加入的内容都是已经被广泛应用的技术,例如 table、applet 和浮动文本等,同时,HTML 3.2 也可以向前兼容 HTML 2.0。

Dave 之后又参与设计了 HTML 4.0。HTML 4.0 是由 HTML Tidy 开发的,可以支持 XHTML、XForms、MathML 等等 W3C 其他现代标准。

回到 1993 年,Marc 回复 Dave 说:

实际上,我们或许应该考虑实现一种通用的生成图像的语言,能够让我们在图标、图像或者文本等元素中嵌入外部链接。有没有人注意到类似的跨媒体 intermedia 能力的技术?

intermedia 是布朗大学发起的超文本项目。它在1985年~1991年期间进行开发,可以运行在 A/UX 上面。A/UX 是为早期 Macintosh 计算机准备的类 Unix 的操作系统。

这种“通用的生成图像的语言”的思想在后来被实现出来。很多现代浏览器在 WHATWG 将其作为标准之前就可以支持 SVG (使用嵌入脚本的声明标签语言)和<canvas>(提供面向过程的直接绘制 API)。

Bill Janssen 回复道:

Andrew 和 Slate 也很类似这种系统。Andrew 使用 insets 构建,每一个 insets 都有一些有趣的类型,例如文本、位图、绘制、动画、消息、表格等。inset 支持嵌套,这就可以在一种类型的 inset 中嵌入另外的 inset。例如,一个 inset 可以在文本组件的任意位置,或者是绘图组件的矩形区域内,或者是表格的任意单元格内嵌入另外的文本。

“Andrew” 是 Andrew User Interface System(那段时间它被简单地称为 Andrew 项目)的一个实现。

同时,Thomas Fine 有不同意见:

我觉得在 WWW 中使用图像的最好方式是通过 MIME。我确定 postscript 已经能够支持 MIME 的子类型,并且对于处理混合文本和图像相当在行。但你会说,它是不能点击的。没错,是这样。我觉得在 postscript 中已经可以解决这个问题了。即使没有标准实现。定义一个指定 URL 的锚点命令,使用当前路径作为按钮的封闭区域即可。既然 postscript 已经能够很好的处理路径,那就可以绘制很惊喜的按钮。

显示脚本 display postscript 是一种由 Adobe 和 NeXT 合作开发的能够在屏幕渲染的技术。

这一建议从来没有被实现,但是它那种使用另外的技术来弥补 HTML 的不足的思想却在后来的时间中经常被提到。
1993年3月2日,Tim Berners-Lee 写道:

HTTP2 允许一篇文档包含任意用户说能够处理的类型,不仅仅是已经注册的 MIME 类型。所以我们可以试验一下。我想有一个包含超文本的 postscript 的案例。我不知道仅仅 display postscript 是不是已经足够。Adobe 正在开发一种基于 postscript 的新的媒体格式“PDF”,可以包含连接,并且可以使用合适的浏览器查看。

我想,一种专门为锚点设计的能够允许超链接和图像、视频的通用语言(基于 HyTime?),对这二者都会有好处的。

让 IMG 标签支持 INCLUDE,让它能够指向外部文档类型。如果说 INCLUDE 看上去很像 C++,那么就是用 EMBED 吧,人们会希望能够内置 SGML 源代码。

HyTime 是一种早期的基于 SGML 的超文本文档系统,在早期 HTML 以及后面 XML 中,都曾引起大量讨论。

Tim 的 <INCLUDE> 标签也从来没有实现过,不过你可以看到类似的<object><embed><iframe>

最后在1993年3月12日,Marc Andreessen 回到讨论之中:

重新回到嵌入图片的讨论。我已经接近发布 Mosaic v0.10 了,让它能够支持嵌入 GIF 和 XBM 图像或者是位图,正如前面所说的那样。

现在我们还没准备实现 INCLUDE/EMBED,所以我们使用的是<IMG SRC="url">(不是 ICON,因为不是所有的内联图像都能叫 ICON)。目前,内联图像还没有显式的 content-type。我们会在后面的版本中提供这一功能(连同 MIME 类型)。事实上,我们现在使用的是一般的图像格式,所以不会有文件后缀名的问题。

Leave a Reply