Как использовать тире для вложенных неупорядоченных списков?

Проблема: я хочу переключить все вложенные неупорядоченные списки на тире вместо маркеров.

Я считаю, что выражение XPath для выбора этих вложенных элементов списка: //ul/li/ul//li

Я считаю, что это подходящий шаблон для изменения:

<xsl:template match="*[contains(@class, ' topic/ul ')]/*[contains(@class, ' topic/li ')]">
    <fo:list-item xsl:use-attribute-sets="ul.li">
        <fo:list-item-label xsl:use-attribute-sets="ul.li__label">
            <fo:block xsl:use-attribute-sets="ul.li__label__content">
                <fo:inline>
                    <xsl:call-template name="commonattributes"/>
                </fo:inline>
                <xsl:call-template name="insertVariable">
                    <xsl:with-param name="theVariableID" select="'Unordered List bullet'"/>
                </xsl:call-template>
            </fo:block>
        </fo:list-item-label>

        <fo:list-item-body xsl:use-attribute-sets="ul.li__body">
            <fo:block xsl:use-attribute-sets="ul.li__content">
                <xsl:apply-templates/>
            </fo:block>
        </fo:list-item-body>

    </fo:list-item>
</xsl:template>

Он ссылается на переменную в en.xml под названием «Пуля неупорядоченного списка»:

<variable id="Unordered List bullet">&#x2022;</variable>

Я попытался обернуть этот вызов переменной, чтобы сослаться на другую переменную «Дефис неупорядоченного списка», если она вложена. Я все еще немного зацикливаюсь. Какой самый изящный подход? Должен ли я вместо этого настроить дополнительный шаблон для этих вложенных элементов?

Я использую DITA-OT 1.5.4.


person Matt    schedule 05.03.2013    source источник


Ответы (1)


Этот шаблон списка переопределяет форматирование всех элементов неупорядоченного списка с использованием тире, когда неупорядоченный список является дочерним элементом любого другого типа списка, включая шаги задачи, поэтому вам может потребоваться уточнить выражение XPath в атрибуте xsl:when test.

    <xsl:template match="*[contains(@class, ' topic/ul ')]/*[contains(@class, ' topic/li ')]">
    <fo:list-item xsl:use-attribute-sets="ul.li">
      <fo:list-item-label xsl:use-attribute-sets="ul.li__label">
        <fo:block xsl:use-attribute-sets="ul.li__label__content">
          <fo:inline>
            <xsl:call-template name="commonattributes"/>
          </fo:inline>
          <xsl:choose>
            <xsl:when test="ancestor::*[contains(@class, ' topic/li ')]">
              <xsl:call-template name="insertVariable">
                <xsl:with-param name="theVariableID" select="'Unordered List dash'"/>
              </xsl:call-template>
            </xsl:when>
            <xsl:otherwise>
              <xsl:call-template name="insertVariable">
                <xsl:with-param name="theVariableID" select="'Unordered List bullet'"/>
              </xsl:call-template>
            </xsl:otherwise>
          </xsl:choose>
        </fo:block>
      </fo:list-item-label>
      <fo:list-item-body xsl:use-attribute-sets="ul.li__body">
        <fo:block xsl:use-attribute-sets="ul.li__content">
          <xsl:apply-templates/>
        </fo:block>
      </fo:list-item-body>
    </fo:list-item>
  </xsl:template>

А вот и переменная из файла strings. ‹variable id="Unordered List dash">-</variable>

person Severin Foreman    schedule 06.03.2013
comment
Имеет смысл. Спасибо! - person Matt; 06.03.2013