Announcement

Collapse
No announcement yet.

Docbook Stylesheets anpassen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Docbook Stylesheets anpassen

    Hallo Forum,

    ich bin gerade dabei für die offiziellen Docbook XSL Stylesheets einen Customization Layer zu schreiben, um den PDF Output entsprechend den CI-Vorgaben unserer Firma anzupassen.

    Momentan schlage ich mich mit Aufzählungslisten herum. In unseren CI-Vorgaben sind zwei Typen von ungeordneten Aufzählungslisten definiert:
    - Listen mit einfachem Punkt als Aufzählungszeichen
    - Listen mit einem Quadrat als Aufzählungszeichen

    Die Unterscheidung, um welche Liste es sich handelt, erfolgt im Docbook-XML über ein "mark" Attribut am Element "itemizedlist". Beim Listentyp mit Quadrat als Aufzählungszeichen kommt noch dazu, dass jeweils das erste Kindelement von "listitem" im PDF fett gedruckt werden soll.

    Beispiel für XML-Source:

    Code:
    <itemizedlist mark="disc">
    	<listitem><para>Lorem ipsum dolor sit amet.</para></listitem>
    	<listitem><para>Lorem ipsum dolor sit amet.</para></listitem>
    </itemizedlist>
    
    <itemizedlist mark="square">
    	<listitem><para>Lorem ipsum dolor sit amet.</para></listitem>
    	<listitem><para>Lorem ipsum dolor sit amet.</para></listitem>
    </itemizedlist>
    
    <itemizedlist mark="square">
    	<listitem>
    		<para>Lorem ipsum dolor sit amet.</para>
    		<para>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</para>			
    	</listitem>
    	<listitem>
    		<para>Lorem ipsum dolor sit amet.</para>
    		<para>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</para>				
    	</listitem>					
    </itemizedlist>
    In meinem Customization Layer würde ich nun gerne eine Regel definieren, die auf dieses erste Kindelement matcht, es fett macht, danach aber die Standardregel aus dem Docbook XSL auf es anwendet. Dabei möchte ich vermeiden, die Standardregel in meinem Customization Layer duplizieren und anpassen zu müssen. Im Prinzip möchte ich zur Standardregel etwas hinzufügen, ohne diese selbst ändern zu müssen.

    Ist das irgendwie möglich?

    Dank + Gruss, nE

    P.S. Ich benutze für die Transformation xsltproc und XSLT v1.0.

  • #2
    http://www.w3.org/TR/xslt#apply-imports
    Code:
    <xsl:import href="docbook.xsl"/>
    
    <xsl:template match="itemizedlist/listitem/*[1]">
      <!-- hier Element einfügen, dass Inhalt fett darstellt, mit HTML etwa -->
      <div style="font-weight: bold;">
        <xsl:apply-imports/>
      </div>
    </xsl:template>

    Comment


    • #3
      apply-imports

      @Martin: Tausend Dank für den Tip! Genau die Lösung, auf die ich gehofft hatte.

      Gruss, nE

      Comment

      Working...
      X