Безразметочный способ для заголовка и ссылки аббревиатур / сокращений к глоссарию
Предыстория: я пишу документ DocBook 5 (и включаю в него некоторый уже написанный текст) с намерением генерировать из него HTML. Я хотел бы, чтобы семантическая разметка была правильной с самого начала, поэтому мне не нужно повторно делать это позже, но стандартный способ, по-видимому, не генерирует то, что я ищу, поэтому я не уверен, должен ли я отклоняться от этого или нет, в зависимости от того, что возможно с XSL.
Текущая настройка: в моем глоссарии есть только сокращенные пункты. Это состоит из glossentry
каждый из которых содержит полное написание glossterm
и некоторое ненулевое количество acronym
и / или abbrev
s. Я полагаю, все это может быть просто 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
но не, например, code
или же programlisting
или внутри URL-адреса внутри атрибута...) в моем файле DocBook, он будет отображаться в HTML как текст "FF", но помечен как ссылка на запись глоссария, но не со стандартной ссылкой CSS, а более того с title
атрибут, имеющий значение Firefox
, Таким образом, читатель может парить, чтобы получить для него аббревиатуру / аббревиатуру, и, если этого недостаточно, он может щелкнуть, чтобы перейти к более полному определению. Между тем, я бы выделил его черным цветом и подчеркнул, чтобы они знали, что эта функция есть, но она не отвлекает внимание, как обычная ссылка, особенно с тем, как часто это происходит в тексте.
Основной вопрос: возможна ли в XSL такая замена открытых текстов, терминов без разметки (без создания чего-то вроде проблемы Сканторпа)? Если так, может ли это сделать это для каждого acronym
или же abbrev
найдены в глоссарии, автоматически?
Я не мог понять, как сделать это напрямую, но это все еще моя цель. Тем временем я пробовал другие вещи:
Подход 1
Настройте макрос клавиатуры, чтобы я мог печатать ff
и это должно быть преобразовано, пока я печатаю в <xref linkend="ff"/>
,
Плюсы:
- ссылки на глоссарий
- расшифровывает аббревиатуру
Минусы:
- расшифровывает аббревиатуру (было бы неплохо, чтобы она была короткой для чтения, а не просто короткой для ввода)... обходной путь: сделать
acronym
вglossterm
и поставить его первым вglossentry
(потеря семантики, но может здесь все в порядке?) - ссылки на глоссарий (я бы хотел, чтобы он был в другом стиле)... решение: CSS для
a.xref
- даже с учетом вышеупомянутых двух, название выходит как
FFFirefox
вместо простоFirefox
(и с другими, у которых есть больше чем один синоним, соединение продолжается)... решение: поставить альтернативуxml:id
на вашем предпочтительном сокращении / аббревиатуре, а затем сделайте ссылки в нем ссылаться на этот идентификатор в ихendterm
атрибут (а такжеlinkend
ссылаясь на первый идентификатор) - Я должен помнить использовать макрос клавиатуры, а не просто набирать текст и позволять системе делать всю работу; любой импортируемый текст должен иметь замену текста для каждой записи глоссария
Подход 2
С помощью <xsl:param name="glossterm.auto.link" select="1"/>
и макрос клавиатуры, чтобы изменить FF
в <glossterm>FF</glossterm>
,
Плюсы:
- ссылки на глоссарий
Минусы:
- расшифровывает аббревиатуру (было бы неплохо, чтобы она была короткой для чтения, а не просто короткой для ввода)... обходной путь: сделать
acronym
вglossterm
и поставить его первым вglossentry
(потеря семантики, но может здесь все в порядке?) - ссылки на глоссарий (я бы хотел, чтобы он был в другом стиле)... решение: CSS для
.glossterm
- даже с двумя вышеупомянутыми
title
атрибут дан - Я должен помнить использовать макрос клавиатуры, а не просто набирать текст и позволять системе делать всю работу; любой импортируемый текст должен иметь замену текста для каждой записи глоссария
Подход 1 пока кажется лучше после обходных путей, но есть ли способ достичь идеала, который я обозначил?