【问题标题】:What is the HTML equivalent of #define in C/C++?C/C++ 中#define 的 HTML 等价物是什么?
【发布时间】:2012-06-29 00:16:07
【问题描述】:

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

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

#define CONSTANT 1.23456

怎么样?有什么想法吗?


附加信息:

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

【问题讨论】:

  • 那句“简单而完美”的台词其实一点都不完美。

标签: html cordova include


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    <!ENTITY CONSTANT "1.23456">
    

    在 DTD 中和

    &CONSTANT;
    

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

    【讨论】:

    • 感谢您的回答 - 有趣的课程,但不确定它是否有助于我的代码!欢呼
    猜你喜欢
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 2023-03-30
    • 2010-09-17
    • 2011-07-26
    相关资源
    最近更新 更多