3

我有一个 HTML 格式的常见问题解答(示例),其中的问题经常相互引用。这意味着每当我们插入/删除/重新排列问题时,编号都会改变。LaTeX 用 \label 和 \ref 非常优雅地解决了这个问题——你给项目简单的标签和 LaTeX 担心在最终文档中转换为数字。

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

添加:请注意,如果您不必按编号实际引用项目,这没有问题,在这种情况下,您可以设置标签

<a name="foo">

然后链接到它

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

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

4

5 回答 5

6

HTML 中没有这样的东西。

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

于 2009-08-16T08:15:31.817 回答
2

我知道它没有被浏览器广泛支持,但你可以使用 CSS 计数器来做到这一点。此外,请考虑使用ids 而不是names 作为锚点。

于 2009-08-16T08:16:43.637 回答
1

PrinceXML可以做到这一点,但仅此而已。我想最好使用服务器端脚本。

于 2009-08-16T09:39:39.897 回答
1

代替 \label{key} 使用 <a name="key" />。然后使用 <a href="#key">Link</a> 链接。

于 2009-08-16T07:55:57.480 回答
0

以下是我最终使用 php 脚本解决此问题的方法:

http://yootles.com/genfaq

它大致与 LaTeX 中的 \label 和 \ref 一样方便,甚至可以自动生成问题索引。我把它放在一个 etherpad 实例上,当多人向常见问题解答问题时,它很方便。

于 2010-05-29T19:55:56.720 回答