Безразметочный способ для заголовка и ссылки аббревиатур / сокращений к глоссарию

Предыстория: я пишу документ DocBook 5 (и включаю в него некоторый уже написанный текст) с намерением генерировать из него HTML. Я хотел бы, чтобы семантическая разметка была правильной с самого начала, поэтому мне не нужно повторно делать это позже, но стандартный способ, по-видимому, не генерирует то, что я ищу, поэтому я не уверен, должен ли я отклоняться от этого или нет, в зависимости от того, что возможно с XSL.

Текущая настройка: в моем глоссарии есть только сокращенные пункты. Это состоит из glossentryкаждый из которых содержит полное написание glossterm и некоторое ненулевое количество acronymи / или abbrevs. Я полагаю, все это может быть просто 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"/>,

Плюсы:

  1. ссылки на глоссарий
  2. расшифровывает аббревиатуру

Минусы:

  1. расшифровывает аббревиатуру (было бы неплохо, чтобы она была короткой для чтения, а не просто короткой для ввода)... обходной путь: сделать acronym в glossterm и поставить его первым в glossentry (потеря семантики, но может здесь все в порядке?)
  2. ссылки на глоссарий (я бы хотел, чтобы он был в другом стиле)... решение: CSS для a.xref
  3. даже с учетом вышеупомянутых двух, название выходит как FFFirefox вместо просто Firefox (и с другими, у которых есть больше чем один синоним, соединение продолжается)... решение: поставить альтернативу xml:id на вашем предпочтительном сокращении / аббревиатуре, а затем сделайте ссылки в нем ссылаться на этот идентификатор в их endterm атрибут (а также linkend ссылаясь на первый идентификатор)
  4. Я должен помнить использовать макрос клавиатуры, а не просто набирать текст и позволять системе делать всю работу; любой импортируемый текст должен иметь замену текста для каждой записи глоссария

Подход 2

С помощью <xsl:param name="glossterm.auto.link" select="1"/> и макрос клавиатуры, чтобы изменить FF в <glossterm>FF</glossterm>,

Плюсы:

  1. ссылки на глоссарий

Минусы:

  1. расшифровывает аббревиатуру (было бы неплохо, чтобы она была короткой для чтения, а не просто короткой для ввода)... обходной путь: сделать acronym в glossterm и поставить его первым в glossentry (потеря семантики, но может здесь все в порядке?)
  2. ссылки на глоссарий (я бы хотел, чтобы он был в другом стиле)... решение: CSS для .glossterm
  3. даже с двумя вышеупомянутыми title атрибут дан
  4. Я должен помнить использовать макрос клавиатуры, а не просто набирать текст и позволять системе делать всю работу; любой импортируемый текст должен иметь замену текста для каждой записи глоссария

Подход 1 пока кажется лучше после обходных путей, но есть ли способ достичь идеала, который я обозначил?

0 ответов

Другие вопросы по тегам