背景: HTML を生成するつもりで、DocBook 5 文書 (および既に作成されたテキストを含む) を作成しています。セマンティック マークアップを最初から正しくして、後でやり直す必要がないようにしたいのですが、標準的な方法では探しているものが生成されないようで、どうすればよいかわかりません。それから逸脱するかどうかは、XSL で何が可能かによって決まります。
現在の設定: 私の用語集には省略された項目しかありません。これは、フルスペルの s とゼロ以外の数のs および/またはsglossentry
を含む sで構成されます。代わりにすべてがs になる可能性があると思います。私には関係ありません。たとえば、私がこれを持っているとします:glossterm
acronym
abbrev
glossterm
<glossentry xml:id="ff"><glossterm>Firefox</glossterm>
<acronym>FF</acronym>
<glossdef>
<para>The web browser made by Mozilla.</para>
</glossdef>
</glossentry>
理想
Firefox を参照したい場合は、どこにでもFF
テキストを入力するとします。理想的には、追加のマークアップなしで、「FF」(大文字と小文字を区別) がpara
グラフ内のプレーンな単語全体として表示される場合 (またはtitle
、たとえば属性内の URL 内ではなく、code
またはprogramlisting
...)、DocBook ファイルで、 HTML ではテキスト "FF" として出力されますが、用語集エントリへのリンクとしてマークアップされますが、標準のリンク CSS ではなく、さらにtitle
値を持つ属性が含まれます。Firefox
. そうすれば、読者はホバリングして頭字語/略語を読み上げることができます。それが不十分な場合は、クリックしてより完全な定義に進むことができます。その間、私はそれを黒く下線を引いてスタイリングし、この機能があることを彼らに知らせますが、通常のリンクのように注意をそらすことはありません。特に、テキスト内で頻繁に発生します。
主な質問: プレーンテキストのマークアップのない用語のそのような置換は XSL でも可能ですか (スカンソープ問題のようなものを作成せずに)? もしそうなら、用語集にあるすべてのacronym
またはabbrev
見つかったものに対して自動的にこれを行うことができますか?
これを直接行う方法はわかりませんでしたが、それが私の目標です。その間、私は他のことを試しました:
アプローチ1
キーボード マクロを設定して、ff
入力中に変換できるようにし<xref linkend="ff"/>
ます。
長所:
- 用語集へのリンク
- 略語を綴る
短所:
- 略語を綴ります (入力するだけでなく、読むのに短くするのが良いでしょう)...回避策:
acronym
を aglossterm
にして、最初に入れますglossentry
(セマンティクスの損失ですが、おそらくそれで問題ありませんか?) - 用語集へのリンク (別のスタイルにしたい)...解決策: CSS for
a.xref
FFFirefox
上記の2つを回避しても、タイトルはただの代わりに出てFirefox
きます(そして、複数の同義語を持つ他のものでは、一緒にマッシュアップが続きます)...解決策xml:id
:好みの頭字語/略語に代替を置き、次にその中のリンクがそのendterm
属性のそのIDを参照するようにします(linkend
最初のIDを参照するだけでなく)- 入力してシステムに任せるのではなく、キーボード マクロを使用することを忘れないでください。インポートされたテキストは、用語集のエントリごとにテキスト置換を行う必要があります。
アプローチ 2
とキーボード マクロを使用<xsl:param name="glossterm.auto.link" select="1"/>
して に変更FF
し<glossterm>FF</glossterm>
ます。
長所:
- 用語集へのリンク
短所:
- 略語を綴ります (入力するだけでなく、読むのに短くするのが良いでしょう)...回避策:
acronym
を aglossterm
にして、最初に入れますglossentry
(セマンティクスの損失ですが、おそらくそれで問題ありませんか?) - 用語集へのリンク (別のスタイルにしたい)...解決策: CSS for
.glossterm
- 上記の2つを回避しても、
title
属性は指定されません - 入力してシステムに任せるのではなく、キーボード マクロを使用することを忘れないでください。インポートされたテキストは、用語集のエントリごとにテキスト置換を行う必要があります。
これまでのアプローチ 1 は、回避策の後の方が優れているように見えますが、私が概説した理想を達成する方法はありますか?