Problème: Je voudrais changer toutes les listes non ordonnées imbriquées en tirets au lieu de puces.
Je crois que l'expression XPath pour sélectionner ces éléments de liste imbriqués est la suivante: // ul / li / ul // li
Je crois que c'est le modèle approprié pour modifier:
<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>
Il fait référence à une variable en.xml nommée "Bullet de liste non ordonnée":
<variable id="Unordered List bullet">•</variable>
J’ai essayé d’emballer cet appel variable àréférence une autre variable "Dash Liste non ordonnée" si elle est imbriquée. Je suis toujours un peu suspendu. Quelle est l’approche la plus élégante? Devrais-je plutôt créer un modèle supplémentaire pour ces éléments imbriqués?
J'utilise DITA-OT 1.5.4.
Réponses:
6 pour la réponse № 1Ce modèle de liste remplace tous les formats non ordonnésLes éléments de la liste utilisent des tirets lorsque la liste non ordonnée est un enfant de tout autre type de liste, y compris les étapes de la tâche. Vous devrez donc peut-être affiner l'expression XPath dans l'attribut xsl: when.
<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>
Et voici la variable du fichier de chaînes. <variable id="Unordered List dash">-</variable>