声明HTML常量(不是密码)

时间:2016-12-09 04:14:00

标签: javascript html5 constants html-entities

作为我首先要承认的一部分,我正在写一篇科幻小说的蹩脚借口,我正在写一个HTML应用程序(当然是离线),我曾想过创建一个 conlang < / em>我的一些角色。作为开发conlang词典的一部分,我认为定义&lt;!ENTITY&gt; 代码来创建中途助记符文本常量会很有用[比如说

<!--    embellish as needed    embellish as needed    embellish as needed    -->
<!DOCTYPE html [
  <!ENTITY K1_hamza  "&#x2019;"> <!-- cosmetic cc hrairoo/5-ling consonant -->
  <!ENTITY K1_Ltr3   "&#x0417;"> <!-- cosmetic uc hrairoo/5-ling vowel
                                                 [Cyrillic 'Ze'] -->
  <!ENTITY K1_ltr3   "&#x0437;"> <!-- cosmetic lc hrairoo/5-ling vowel
                                                 [Cyrillic 'ze'] -->
  <!ENTITY K1_langname           "(-; If I tell you, I'll have to kill you ;-)">
]>

分别显示<'>,<З>,<з>和conlang的名称 - 请注意特定编码区域内定义的Magyar前缀],允许我更改实体显示在整个文档中同时执行,而不是要求我在每隔一个回合中搜索并替换常用的显式常量(我不必告诉你在较低的领域有多大的痛苦) 可以是。)

然而,关于声明&lt;!ENTITY&gt; s 的文献有点令人困惑。一些消息来源声称提出了策略,但我还没有找到一个可以在我的代码中使用的策略。其他消息来源说,&lt;!ENTITY&gt; s 可能会添加到HTML的某些方言中但不会添加到其他方言中(甚至是“呈现”与“&lt;!ENTITY&gt;向后兼容的方言” ; -accepting“dialects-HTML5 [我认为我的系统正在使用]是一个有问题的例子)。如果情况变得更糟,我可能会在JavaScript中进行操作,但基于HTML的解决方案可能更依赖于设备。

您可以提供任何帮助以解决此事的真相。

1 个答案:

答案 0 :(得分:0)

在HTML5之前,HTML是SGML的应用程序(Standard Generalized Markup Language,它允许定义您正在寻求使用的表单&lt;!ENTITY ....&gt;的实体。

HTML5不再是SGML应用程序,而是使用简单的document type declaration

 <!DOCTYPE html>

以前版本的HTML基于SGML,并使用DOCTYPE声明,其中包含对Document Type Definition或“dtd”文件的引用,该文件可能包含SGML entity个定义。

然而,HTML4浏览器是否下载了“dtd”文件并解析它们是另一个问题 - 他们似乎已经检查过哪个版本的HTML被声明以及DTD是“严格”还是“过渡性”而其他所有内容都已呈现在“怪癖模式”中。

HTML5的当前字符实体定义为in the HTML5 standard,也可以从W3C as a chart获得,这使我得出结论,自定义SGML实体无法在HTML5下工作,即使它们在某个时间,在某些浏览器中,使用某些以前版本的HTML,过去一直在使用。

在HTML中结合CSS定义custom elements有可能,但我不知道它们能满足您的要求。一些HTML模板框架也可能提供解决方案。