背景:我正在编写DocBook 5文档(并在其中包含一些已编写的文本),目的是从中生成HTML。我想从一开始就让语义标记正确,所以我以后不需要重新进行,但标准方式似乎并没有产生我想要的东西,所以我'我不确定是否应该偏离它,具体取决于XSL的可能性。
当前设置:我的词汇表只有缩写项目。它由glossentry
组成,每个glossterm
包含完整拼写acronym
和一些非零数量的abbrev
和/或glossterm
s。我想它可能都只是 <glossentry xml:id="ff"><glossterm>Firefox</glossterm>
<acronym>FF</acronym>
<glossdef>
<para>The web browser made by Mozilla.</para>
</glossdef>
</glossentry>
而已。这对我来说并不重要。假设我有这个:
FF
假设我想在哪里引用Firefox,我将para
放在文本中。理想情况下,没有任何额外的标记,无论何处&#34; FF&#34; (区分大小写)在title
图表(或code
中显示为一个简单的整个单词,但不是,例如,programlisting
或title
或属性内的URL内部...)在我的DocBook文件中,它将以HTML格式显示为文本&#34; FF&#34;但标记为词汇表条目的链接,但不是标准链接CSS,而且Firefox
属性的值为acronym
。这样,读者可以悬停以获得为其拼写的首字母缩略词/缩写,如果这不足,他们可以点击以获得更全面的定义。与此同时,我将它设计为黑色和下划线,以便他们知道这个功能在那里,但它并没有像普通链接那样分散注意力,特别是它在文本中出现的频率。
主要问题:是否可以在XSL中替换明文,无标记术语(不创建类似the Scunthorpe problem的内容)?如果是这样,是否可以自动为词汇表中的每个abbrev
或ff
执行此操作?
我无法弄清楚如何直接这样做,但这仍然是我的目标。与此同时,我尝试过其他事情:
设置一个键盘宏,这样我就可以输入<xref linkend="ff"/>
并在我输入acronym
时进行转换。
优点:
缺点:
glossterm
变为glossentry
并将其放在第一位a.xref
(失去语义,但也许这可以吗?)FFFirefox
的CSS Firefox
,而不仅仅是xml:id
(与其他具有多个同义词的人一起,糖化在一起继续)...... { {3}}:在您首选的首字母缩写词/缩写词上放置一个替代endterm
,然后让其中的链接引用其linkend
属性中的该ID(以及<xsl:param name="glossterm.auto.link" select="1"/>
引用到第一个id)使用FF
和键盘宏将<glossterm>FF</glossterm>
更改为acronym
。
优点:
缺点:
glossterm
变为glossentry
并将其放在第一位.glossterm
(失去语义,但也许这可以吗?)title
的CSS