]> granicus.if.org Git - docbook-dsssl/commitdiff
Implemented RFE #1292615.
authorJirka Kosek <jirka@kosek.cz>
Tue, 20 Sep 2005 19:42:57 +0000 (19:42 +0000)
committerJirka Kosek <jirka@kosek.cz>
Tue, 20 Sep 2005 19:42:57 +0000 (19:42 +0000)
Added bunch of new parameters (attribute sets) that affect list presentation: list.block.properties, itemizedlist.properties, orderedlist.properties, itemizedlist.label.properties and orderedlist.label.properties. Default behaviour of stylesheets has not been changed but further customizations will be much more easier.

xsl/fo/lists.xsl
xsl/fo/param.ent
xsl/fo/param.xweb
xsl/params/itemizedlist.label.properties.xml [new file with mode: 0644]
xsl/params/itemizedlist.properties.xml [new file with mode: 0644]
xsl/params/list.block.properties.xml [new file with mode: 0644]
xsl/params/orderedlist.label.properties.xml [new file with mode: 0644]
xsl/params/orderedlist.properties.xml [new file with mode: 0644]

index a9adbf2d3ae2681e6104fe405cac885e2ea05a9d..482a5cea1324255c8248a8da4877af54abc42672 100644 (file)
   <!-- nested lists don't add extra list-block spacing -->
   <xsl:choose>
     <xsl:when test="ancestor::listitem">
-      <fo:list-block id="{$id}" 
-                     provisional-label-separation="0.2em">
-        <xsl:attribute name="provisional-distance-between-starts">
-          <xsl:choose>
-            <xsl:when test="$label-width != ''">
-              <xsl:value-of select="$label-width"/>
-            </xsl:when>
-            <xsl:otherwise>1.5em</xsl:otherwise>
-          </xsl:choose>
-        </xsl:attribute>
+      <fo:list-block id="{$id}" xsl:use-attribute-sets="itemizedlist.properties">
+       <xsl:if test="$label-width != ''">
+         <xsl:attribute name="provisional-distance-between-starts">
+           <xsl:value-of select="$label-width"/>
+         </xsl:attribute>
+       </xsl:if>
         <xsl:copy-of select="$content"/>
       </fo:list-block>
     </xsl:when>
     <xsl:otherwise>
-      <fo:list-block id="{$id}" xsl:use-attribute-sets="list.block.spacing"
-                     provisional-label-separation="0.2em">
-        <xsl:attribute name="provisional-distance-between-starts">
-          <xsl:choose>
-            <xsl:when test="$label-width != ''">
-              <xsl:value-of select="$label-width"/>
-            </xsl:when>
-            <xsl:otherwise>1.5em</xsl:otherwise>
-          </xsl:choose>
-        </xsl:attribute>
+      <fo:list-block id="{$id}" xsl:use-attribute-sets="list.block.spacing itemizedlist.properties">
+       <xsl:if test="$label-width != ''">
+         <xsl:attribute name="provisional-distance-between-starts">
+           <xsl:value-of select="$label-width"/>
+         </xsl:attribute>
+       </xsl:if>
         <xsl:copy-of select="$content"/>
       </fo:list-block>
     </xsl:otherwise>
   <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
 
   <xsl:variable name="item.contents">
-    <fo:list-item-label end-indent="label-end()">
+    <fo:list-item-label end-indent="label-end()" xsl:use-attribute-sets="itemizedlist.label.properties">
       <fo:block>
         <xsl:call-template name="itemizedlist.label.markup">
           <xsl:with-param name="itemsymbol">
   <!-- nested lists don't add extra list-block spacing -->
   <xsl:choose>
     <xsl:when test="ancestor::listitem">
-      <fo:list-block id="{$id}" 
-                     provisional-label-separation="0.2em">
-        <xsl:attribute name="provisional-distance-between-starts">
-          <xsl:choose>
-            <xsl:when test="$label-width != ''">
-              <xsl:value-of select="$label-width"/>
-            </xsl:when>
-            <xsl:otherwise>2em</xsl:otherwise>
-          </xsl:choose>
-        </xsl:attribute>
+      <fo:list-block id="{$id}" xsl:use-attribute-sets="orderedlist.properties">
+       <xsl:if test="$label-width != ''">
+         <xsl:attribute name="provisional-distance-between-starts">
+           <xsl:value-of select="$label-width"/>
+         </xsl:attribute>
+       </xsl:if>
         <xsl:copy-of select="$content"/>
       </fo:list-block>
     </xsl:when>
     <xsl:otherwise>
-      <fo:list-block id="{$id}" xsl:use-attribute-sets="list.block.spacing"
-                     provisional-label-separation="0.2em">
-        <xsl:attribute name="provisional-distance-between-starts">
-          <xsl:choose>
-            <xsl:when test="$label-width != ''">
-              <xsl:value-of select="$label-width"/>
-            </xsl:when>
-            <xsl:otherwise>2em</xsl:otherwise>
-          </xsl:choose>
-        </xsl:attribute>
+      <fo:list-block id="{$id}" xsl:use-attribute-sets="list.block.spacing orderedlist.properties">
+       <xsl:if test="$label-width != ''">
+         <xsl:attribute name="provisional-distance-between-starts">
+           <xsl:value-of select="$label-width"/>
+         </xsl:attribute>
+       </xsl:if>
         <xsl:copy-of select="$content"/>
       </fo:list-block>
     </xsl:otherwise>
   <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
 
   <xsl:variable name="item.contents">
-    <fo:list-item-label end-indent="label-end()">
+    <fo:list-item-label end-indent="label-end()" xsl:use-attribute-sets="orderedlist.label.properties">
       <fo:block>
         <xsl:apply-templates select="." mode="item-number"/>
       </fo:block>
index fcb2ec3dc18735281fce49d0c634c5fbdeef8fea..edcc6aa350ed66a72dfdef32851fb8cb48bf85f7 100644 (file)
 <!ENTITY informal.object.properties SYSTEM "../params/informal.object.properties.xml">
 <!ENTITY index.preferred.page.properties SYSTEM "../params/index.preferred.page.properties.xml">
 <!ENTITY insert.xref.page.number SYSTEM "../params/insert.xref.page.number.xml">
+<!ENTITY itemizedlist.properties SYSTEM "../params/itemizedlist.properties.xml">
+<!ENTITY itemizedlist.label.properties SYSTEM "../params/itemizedlist.label.properties.xml">
 <!ENTITY label.from.part SYSTEM "../params/label.from.part.xml">
 <!ENTITY line-height SYSTEM "../params/line-height.xml">
 <!ENTITY linenumbering.everyNth SYSTEM "../params/linenumbering.everyNth.xml">
 <!ENTITY linenumbering.extension SYSTEM "../params/linenumbering.extension.xml">
 <!ENTITY linenumbering.separator SYSTEM "../params/linenumbering.separator.xml">
 <!ENTITY linenumbering.width SYSTEM "../params/linenumbering.width.xml">
+<!ENTITY list.block.properties SYSTEM "../params/list.block.properties.xml">
 <!ENTITY list.block.spacing SYSTEM "../params/list.block.spacing.xml">
 <!ENTITY list.item.spacing SYSTEM "../params/list.item.spacing.xml">
 <!ENTITY make.single.year.ranges SYSTEM "../params/make.single.year.ranges.xml">
 <!ENTITY olink.base.uri SYSTEM "../params/olink.base.uri.xml">
 <!ENTITY olink.properties SYSTEM "../params/olink.properties.xml">
 <!ENTITY olink.debug SYSTEM "../params/olink.debug.xml">
+<!ENTITY orderedlist.properties SYSTEM "../params/orderedlist.properties.xml">
+<!ENTITY orderedlist.label.properties SYSTEM "../params/orderedlist.label.properties.xml">
 <!ENTITY collect.xref.targets SYSTEM "../params/collect.xref.targets.xml">
 <!ENTITY targets.filename SYSTEM "../params/targets.filename.xml">
 <!ENTITY prefer.internal.olink SYSTEM "../params/prefer.internal.olink.xml">
index e1ea0df0f6fdd8fba47c5f57438ac63c204eb13a..a7267b1ef4883ef0bfcec96bbcc869216ab8434e 100644 (file)
@@ -391,6 +391,11 @@ zero by default, so this is simply the page-master region-left.
 &list.item.spacing;
 &compact.list.item.spacing;
 &variablelist.max.termlength;
+&list.block.properties;
+&itemizedlist.properties;
+&itemizedlist.label.properties;
+&orderedlist.properties;
+&orderedlist.label.properties;
 </reference>
 
 <reference><title>Cross References</title>
@@ -646,6 +651,8 @@ around all these parameters.</para>
 <src:fragref linkend="index.div.title.properties.frag"/>
 <src:fragref linkend="index.entry.properties.frag"/>
 <src:fragref linkend="insert.xref.page.number.frag"/>
+<src:fragref linkend="itemizedlist.properties.frag"/>
+<src:fragref linkend="itemizedlist.label.properties.frag"/>
 <src:fragref linkend="l10n.gentext.default.language.frag"/>
 <src:fragref linkend="l10n.gentext.language.frag"/>
 <src:fragref linkend="l10n.gentext.use.xref.language.frag"/>
@@ -656,6 +663,7 @@ around all these parameters.</para>
 <src:fragref linkend="linenumbering.extension.frag"/>
 <src:fragref linkend="linenumbering.separator.frag"/>
 <src:fragref linkend="linenumbering.width.frag"/>
+<src:fragref linkend="list.block.properties.frag"/>
 <src:fragref linkend="list.block.spacing.frag"/>
 <src:fragref linkend="list.item.spacing.frag"/>
 <src:fragref linkend="make.index.markup.frag"/>
@@ -678,6 +686,8 @@ around all these parameters.</para>
 <src:fragref linkend="olink.debug.frag"/>
 <src:fragref linkend="olink.properties.frag"/>
 <src:fragref linkend="olink.lang.fallback.sequence.frag"/>
+<src:fragref linkend="orderedlist.properties.frag"/>
+<src:fragref linkend="orderedlist.label.properties.frag"/>
 <src:fragref linkend="prefer.internal.olink.frag"/>
 <src:fragref linkend="insert.olink.page.number.frag"/>
 <src:fragref linkend="insert.olink.pdf.frag.frag"/>
diff --git a/xsl/params/itemizedlist.label.properties.xml b/xsl/params/itemizedlist.label.properties.xml
new file mode 100644 (file)
index 0000000..2fc6cd6
--- /dev/null
@@ -0,0 +1,17 @@
+<refentry id="itemizedlist.label.properties">
+<refnamediv>
+<refname>itemizedlist.label.properties</refname>
+<refpurpose>Properties that apply to each label inside itemized list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment id='itemizedlist.label.properties.frag'><xsl:attribute-set name="itemizedlist.label.properties">
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+<para>Properties that apply to each label inside itemized list. E.g.:</para>
+<programlisting><![CDATA[<xsl:attribute-set name="itemizedlist.label.properties">
+  <xsl:attribute name="text-align">right</xsl:attribute>
+</xsl:attribute-set>]]></programlisting>
+</refsect1>
+</refentry>
diff --git a/xsl/params/itemizedlist.properties.xml b/xsl/params/itemizedlist.properties.xml
new file mode 100644 (file)
index 0000000..31c6b5b
--- /dev/null
@@ -0,0 +1,14 @@
+<refentry id="itemizedlist.properties">
+<refnamediv>
+<refname>itemizedlist.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by itemizedlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment id='itemizedlist.properties.frag'><xsl:attribute-set name="itemizedlist.properties" use-attribute-sets="list.block.properties">
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+<para>Properties that apply to each fo:list-block generated by itemizedlist.</para>
+</refsect1>
+</refentry>
diff --git a/xsl/params/list.block.properties.xml b/xsl/params/list.block.properties.xml
new file mode 100644 (file)
index 0000000..8fbab86
--- /dev/null
@@ -0,0 +1,16 @@
+<refentry id="list.block.properties">
+<refnamediv>
+<refname>list.block.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment id='list.block.properties.frag'><xsl:attribute-set name="list.block.properties">
+  <xsl:attribute name="provisional-label-separation">0.2em</xsl:attribute>
+  <xsl:attribute name="provisional-distance-between-starts">1.5em</xsl:attribute>
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+<para>Properties that apply to each fo:list-block generated by itemizedlist/orderedlist.</para>
+</refsect1>
+</refentry>
diff --git a/xsl/params/orderedlist.label.properties.xml b/xsl/params/orderedlist.label.properties.xml
new file mode 100644 (file)
index 0000000..ca7d475
--- /dev/null
@@ -0,0 +1,17 @@
+<refentry id="orderedlist.label.properties">
+<refnamediv>
+<refname>orderedlist.label.properties</refname>
+<refpurpose>Properties that apply to each label inside ordered list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment id='orderedlist.label.properties.frag'><xsl:attribute-set name="orderedlist.label.properties">
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+<para>Properties that apply to each label inside ordered list. E.g.:</para>
+<programlisting><![CDATA[<xsl:attribute-set name="orderedlist.label.properties">
+  <xsl:attribute name="text-align">right</xsl:attribute>
+</xsl:attribute-set>]]></programlisting>
+</refsect1>
+</refentry>
diff --git a/xsl/params/orderedlist.properties.xml b/xsl/params/orderedlist.properties.xml
new file mode 100644 (file)
index 0000000..fb8303a
--- /dev/null
@@ -0,0 +1,15 @@
+<refentry id="orderedlist.properties">
+<refnamediv>
+<refname>orderedlist.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by orderedlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment id='orderedlist.properties.frag'><xsl:attribute-set name="orderedlist.properties" use-attribute-sets="list.block.properties">
+  <xsl:attribute name="provisional-distance-between-starts">2em</xsl:attribute>
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+<para>Properties that apply to each fo:list-block generated by orderedlist.</para>
+</refsect1>
+</refentry>