相当于LaTeX的\ label和HTML中的\ ref

时间:2009-08-16 07:44:09

标签: html documentation latex documentation-generation

我有一个HTML格式的常见问题解答(example),其中的问题相互引用很多。这意味着无论何时插入/删除/重新排列问题,编号都会发生变化。 LaTeX使用\ label和\ ref非常优雅地解决了这个问题 - 你给项目简单的标签和LaTeX担心在最终文档中转换为数字。

人们如何在HTML中处理这个问题?

ADDED:请注意,如果您不必按编号实际引用项目,则不会有问题,在这种情况下,您可以使用

设置标记

<a name="foo">

然后用

链接到它

<a href="#foo">some non-numerical way to refer to foo</a>

但我假设“foo”有一些自动生成的数字,比如来自<ol>列表,我想用这个数字来引用并链接到它。

5 个答案:

答案 0 :(得分:6)

HTML中没有这样的内容。

通常解决这个问题的方法是,通过解析HTML本身并插入TOC(在将HTML发送到浏览器之前,可以在服务器上执行此操作)生成链接的HTML,或者在客户端上,通过使用一小段ECMAScript遍历DOM并简单地收集和检查所有<a>元素)或从更高级别的源生成整个HTML文档,如数据库,XML文档,降价或 - 为什么不? - 甚至是ΕΧ。

答案 1 :(得分:2)

我知道浏览器并没有广泛支持它,但您可以使用CSS计数器来完成此操作。 另外,请考虑使用id而不是name作为您的主播。

答案 2 :(得分:1)

而不是\ label {key}使用&lt; a name =“key”/&gt;。然后使用&lt; a href =“#key”&gt;链接&lt; / a&gt;进行链接。

答案 3 :(得分:1)

PrinceXML可以做到这一点,但就是这样。我想最好使用服务器端脚本。

答案 4 :(得分:0)

以下是我最终用PHP脚本解决这个问题的方法:

http://yootles.com/genfaq

它与LaTeX中的\ label和\ ref大致相同,甚至可以自动生成问题索引。 我把它放在一个以太网实例上,当多人向FAQ提问时,这个实例很方便。