4

我有多个 HTML 文件,它们只有一点点不同——这里和那里有一些文本和 Javascript 常量。我想让维护一个主版本变得容易,并使生成变体变得简单。

像 C/C++ 中的编译时替换这样的东西会简单而完美:

#define CONSTANT 1.23456

如何?有任何想法吗?


附加信息:

  • 使用 HTML 5
  • 这些 HTML 文件用于 PhoneGap,因此不允许使用服务器端内容。
4

2 回答 2

4

您可以为此使用模板引擎。我对来自 twitter http://twitter.github.com/hogan.js/的这个非常满意

于 2012-06-27T14:22:54.267 回答
3

在实践中,HTML 中没有这样的机制。此类事情使用各种工具处理,例如高级编辑器、预处理工具和 PHP 等服务器端技术。如果您愿意,您甚至可以使用 C 预处理器,尽管大多数人使用不同的东西。

在理论上,HTML 具有 SGML 和 XML 的“实体”机制。它从未在 HTML 浏览器中实现,尽管实体是 SGML 的一部分并且 HTML 名义上是基于 SGML 的。(像 é 这样的所谓“字符实体”是é在临时基础上实现的,而不是通过实体机制的实现。)

支持真正 XHTML(而不仅仅是由 HTML 规则处理的 XHTML)的浏览器实现了实体机制,因此您实际上可以编写例如

<!ENTITY CONSTANT "1.23456">

在 DTD 和

&CONSTANT;

在文档内容中。见演示。但这仅适用于使用 XHTML 媒体类型提供文档的情况,这反过来又会阻止旧版本的 IE 显示页面。

于 2012-06-27T15:10:35.147 回答