首页 > 解决方案 > 使用不同标记语言的万维网替代版本

问题描述

从理论上讲,使用 TeX 或 Markdown 的 Internet 版本是可能的,对吧?(好吧,MD 网站可能没有那么先进,但没关系)。

所以我的问题是双重的:

  1. 这以前是否曾作为一个想法出现过?
  2. 有人甚至尝试过实现这一点(也许在网络的早期)

先感谢您。

标签: htmlxmltexsgmltroff

解决方案


通过使用标记元语言重新指定 HTML 本身来扩展浏览器以支持除 HTML 之外的其他词汇表的想法是 XML 最初声明的目标。正如 XML 1.0 规范(从 1998 年起)的新闻稿所述

可扩展标记语言 (XML) 是 SGML 的子集,在本文档中有完整描述。它的目标是使通用 SGML 能够在 Web 上以现在可以使用 HTML 的方式提供、接收和处理。XML 被设计为易于实现以及与 SGML 和 HTML 的互操作性。

值得注意的是,SVG 和 MathML 词汇表是使用 XML 作为元语言创建的(例如,分别用于定义 SVG 和 MathML 的元素和属性)。

然而,虽然 XML 在浏览器之外的许多应用程序中取得了成功,但 XHTML2(HTML 被重新指定为具有 XForms 等附加功能的 XML 词汇表)并没有被浏览器采用,并且在 Ian Hickson(谷歌的)领导下的浏览器供应商创建了 WHAT 2004 年工作组开始为我们今天所知的 HTML 5 制定规范过程。HTML 5 允许直接在 HTML 中使用 SVG 和 MathML 词汇表(使用 XML 指定)成为可能。XML 样式的空元素,例如</g>在那些外来词汇中。

HTML 5 的一个主要特性是它向后兼容现有的大量 HTML 内容库,而 XHTML 则需要采用更有限的 XML 解析规则。例如,HTML 允许标记推断/标记省略、“void”元素(SGML 样式的空元素,没有结束元素标记),以及各种形式的属性最小化

HTML(直到第 4 版)最初是使用 SGML 作为标记元语言指定的,SGML 仍然是唯一能够描述 HTML 解析规则的标记元语言,包括那些用于 HTML 5 的标记元语言(参见我的论文/谈话http:// sgmljs.net/blog/blog1701.html了解详情)。虽然浏览器从来没有原生支持完整的 SGML(被限制为 SGML 应用程序只能处理硬编码的 HTML 词汇表),但使用比浏览器直接支持更多的 SGML 功能的想法在 90 年代的浏览器插件中实现,例如在 SoftQuad 的全景 SGML/HyTime 浏览器(链接自http://www.hytime.org/tools/index.html)。

自定义 Wiki 语法(例如 markdown)与数字文本处理本身一样古老。SGML(至少从 1986 年开始)允许您为此目的定义特定于上下文的令牌替换规则。例如,要使 SGML 将一个简单的 markdown 片段格式化为 HTML,您可以使用这样的 SGML prolog:

<!DOCTYPE p [
  <!ELEMENT p - - ANY>
  <!ELEMENT em - - (#PCDATA)>
  <!ENTITY start-em '<em>'>
  <!ENTITY end-em '</em>'>
  <!SHORTREF in-p '*' start-em>
  <!SHORTREF in-em '*' end-em>
  <!USEMAP in-p p>
  <!USEMAP in-em em>
]>
<p>The following text:
   *this*
   will be put into EM
   element tags</p>

推荐阅读