我有多个 HTML 文件,它们只有一点点不同——这里和那里有一些文本和 Javascript 常量。我想让维护一个主版本变得容易,并使生成变体变得简单。
像 C/C++ 中的编译时替换这样的东西会简单而完美:
#define CONSTANT 1.23456
如何?有任何想法吗?
附加信息:
- 使用 HTML 5
- 这些 HTML 文件用于 PhoneGap,因此不允许使用服务器端内容。
您可以为此使用模板引擎。我对来自 twitter http://twitter.github.com/hogan.js/的这个非常满意
在实践中,HTML 中没有这样的机制。此类事情使用各种工具处理,例如高级编辑器、预处理工具和 PHP 等服务器端技术。如果您愿意,您甚至可以使用 C 预处理器,尽管大多数人使用不同的东西。
在理论上,HTML 具有 SGML 和 XML 的“实体”机制。它从未在 HTML 浏览器中实现,尽管实体是 SGML 的一部分并且 HTML 名义上是基于 SGML 的。(像 é 这样的所谓“字符实体”是é
在临时基础上实现的,而不是通过实体机制的实现。)
支持真正 XHTML(而不仅仅是由 HTML 规则处理的 XHTML)的浏览器实现了实体机制,因此您实际上可以编写例如
<!ENTITY CONSTANT "1.23456">
在 DTD 和
&CONSTANT;
在文档内容中。见演示。但这仅适用于使用 XHTML 媒体类型提供文档的情况,这反过来又会阻止旧版本的 IE 显示页面。