0

背景:我正在编写一个 DocBook 5 文档(并在其中包含一些已经编写的文本),目的是从中生成 HTML。我想从一开始就得到正确的语义标记,所以我以后不需要重新做,但是标准方法似乎没有生成我正在寻找的东西,所以我不确定我是否应该是否偏离它,取决于 XSL 的可能性。

当前设置:我的词汇表只有缩写项目。它由glossentrys 组成,每个 s 都包含一个完整的拼写glossterm和一些非零数量的acronyms 和/或abbrevs。我想这可能只是glossterms 。对我来说没关系。假设例如我有这个:

    <glossentry xml:id="ff"><glossterm>Firefox</glossterm>
        <acronym>FF</acronym>
        <glossdef>
          <para>The web browser made by Mozilla.</para>
        </glossdef>
    </glossentry>

理想的

假设无论我想在哪里提到 Firefox,我都会FF在文本中输入。理想情况下,没有任何额外的标记,只要“FF”(区分大小写)在我的 DocBook 文件中的para图形(或者title,但不是,例如,code或者programlisting属性内的 URL 内......)中作为一个简单的整个单词出现,它会在 HTML 中以文本“FF”的形式出现,但标记为词汇表条目的链接,但不使用标准链接 CSS,此外还有一个title具有值的属性Firefox. 这样,读者可以将鼠标悬停以获取为他们拼写的首字母缩写词/缩写,如果这还不够,他们可以单击以获取更完整的定义。同时,我会将其设置为黑色并加下划线,以便他们知道此功能存在,但它不会像普通链接那样分散注意力,尤其是在文本中出现的频率。

主要问题:在 XSL 中这种纯文本、无标记术语的替换是否可能(不会产生像斯肯索普问题这样的问题)?如果是这样,它可以自动为每个acronymabbrev在词汇表中找到吗?

我无法弄清楚如何直接做到这一点,但这仍然是我的目标。同时我尝试了其他事情:

方法一

设置一个键盘宏,这样我就可以ff在输入<xref linkend="ff"/>.

优点:

  1. 词汇表的链接
  2. 拼出缩写

缺点:

  1. 拼出缩写(最好保持简短阅读,而不仅仅是简短键入)...解决方法:将其acronym放入 aglossterm并将其放在首位glossentry(语义丢失,但也许在这里可以吗?)
  2. 词汇表的链接(我希望它的样式不同)...解决方案:CSS fora.xref
  3. 即使解决了上述两个问题,标题FFFirefox也不仅仅是Firefox(以及其他有多个同义词的人,混搭继续)......解决方案:在您喜欢的首字母缩写词/缩写词上放置一个替代xml:id词,然后使其中的链接在其endterm属性中引用该 id(以及linkend对第一个 id 的引用)
  4. 我必须记住使用键盘宏,而不是仅仅键入并让系统完成工作;任何导入的文本都必须对每个词汇表条目进行文本替换

方法二

使用<xsl:param name="glossterm.auto.link" select="1"/>和 键盘宏更改FF<glossterm>FF</glossterm>.

优点:

  1. 词汇表的链接

缺点:

  1. 拼出缩写(最好保持简短阅读,而不仅仅是简短键入)...解决方法:将其acronym放入 aglossterm并将其放在首位glossentry(语义丢失,但也许在这里可以吗?)
  2. 词汇表的链接(我希望它的样式不同)...解决方案:CSS for.glossterm
  3. 即使解决了上述两个问题,也没有title给出任何属性
  4. 我必须记住使用键盘宏,而不是仅仅键入并让系统完成工作;任何导入的文本都必须对每个词汇表条目进行文本替换

到目前为止,方法 1 在解决方法之后似乎更好,但是有没有办法实现我概述的理想?

4

0 回答 0