[svn r1850] r2001@freebird: fabien | 2005-12-27 01:28:42 -0500 styles
authorfabien
Tue, 27 Dec 2005 13:55:27 -0500
branchstyles
changeset 0 08de8d15f932
child 1 a596b46a5253
[svn r1850] r2001@freebird: fabien | 2005-12-27 01:28:42 -0500 Last cleanup.
Makefile
TODO
blog.css
common.xsl
contes.css
cv.css
cv_html.xsl
cv_print.xsl
cv_str.en.xml
cv_str.fr.xml
html.css
html.xsl
masters_print.xsl
poetry.css
poetry_html.xsl
poetry_print.xsl
print.dsl
print.xsl
story_html.xsl
story_print.xsl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,30 @@
+TOP=.
+INSTALL_DIR=`pwd`/install
+
+DIST_FILES= \
+	common.xsl \
+	html.xsl \
+	print.xsl \
+	masters_print.xsl \
+	cv_html.xsl \
+	cv_print.xsl \
+	poetry_html.xsl \
+	story_html.xsl \
+	story_print.xsl \
+	cv_str.en.xml \
+	cv_str.fr.xml \
+	html.css \
+	blog.css \
+	poetry.css \
+	contes.css \
+	cv.css
+
+all:
+
+install:
+	mkdir -p $(INSTALL_DIR)
+	cp $(DIST_FILES) $(INSTALL_DIR)
+
+clean:
+
+purge:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TODO	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,3 @@
+* Finir la version imprimable (book)
+* Faire une version 1/pdf/contes.
+* Faire une version HTML-1-PAGE (pour la version texte).
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/blog.css	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,26 @@
+@import "html.css";
+
+#lcol { width: 70% }
+#title { margin: 10pt }
+#icon { float: left }
+div.stories { clear: both; padding: 10pt; border: solid teal }
+.dateheader { font-weight: bold }
+div.comments { text-align: right }
+
+#rcol { margin: 15pt; position: absolute; left: 70%; top: 0; max-width: 20% }
+/* #rcol { border: solid teal; padding: 10pt } */
+#rcol { text-align: center }
+#rcol div { text-align: left }
+.calendar  { font-size: 80%; text-align: center }
+
+/*
+.stories { background: #aaaaff;
+	color: black;
+	padding: 10pt; }
+.stories :link { color: blue }
+.stories :visited { color: navy }
+.story_title { color: blue }
+.stories .dateheader { color: blue }
+.stories strong, .stories b, .stories em { color: blue }
+*/
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common.xsl	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.1"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:xt="http://www.jclark.com/xt"
+  extension-element-prefixes="xt">
+  
+<xsl:template name="get-id">    
+  <xsl:choose>
+    <xsl:when test="@id"><xsl:value-of select="@id"/></xsl:when>
+    <xsl:otherwise><xsl:value-of select="generate-id(.)"/></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="parent-id">
+  <xsl:choose>
+    <xsl:when test="../@id"><xsl:value-of select="../@id"/></xsl:when>
+    <xsl:otherwise><xsl:value-of select="generate-id(..)"/></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="next-id">
+  <xsl:choose>
+    <xsl:when test="following::*[1]/@id"><xsl:value-of select="following::*[1]/@id"/></xsl:when>
+    <xsl:otherwise><xsl:value-of select="generate-id(following::*[1])"/></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="prec-id">
+  <xsl:choose>
+    <xsl:when test="preceding::*[1]/@id"><xsl:value-of select="preceding::*[1]/@id"/></xsl:when>
+    <xsl:otherwise><xsl:value-of select="generate-id(preceding::*[1])"/></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="fullname">
+  <xsl:call-template name="name"/>  
+</xsl:template>
+
+<!-- default docinfo processing -->
+<!-- normal is not process -->
+<xsl:template match="docinfo"/>
+
+<!-- copyright footer processing -->
+<xsl:template match="copyright">
+  © <xsl:apply-templates select="holder"/>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates select="year"/>
+</xsl:template>
+<xsl:template match="holder">
+  <xsl:call-template name="name"/>
+</xsl:template>
+<xsl:template match="year">
+  <xsl:apply-templates/>
+  <xsl:if test="position() != last()">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<!-- author processing -->
+<xsl:template match="author">
+  <xsl:call-template name="name"/> 
+</xsl:template>
+
+<!-- short representation -->
+<xsl:template match="para" mode="short">
+  <xsl:apply-templates/>  
+</xsl:template>
+<xsl:template match="list" mode="short">
+  <xsl:param name="ending">
+    <xsl:text>.</xsl:text>
+  </xsl:param>
+  <xsl:apply-templates mode="short">
+    <xsl:with-param name="ending" select="$ending"/>
+  </xsl:apply-templates>
+</xsl:template>
+<xsl:template match="listitem" mode="short">
+  <xsl:apply-templates mode="short"/><xsl:text>, </xsl:text>
+</xsl:template>
+<xsl:template match="listitem[position() = last()]" mode="short">
+  <xsl:param name="ending">
+    <xsl:text>.</xsl:text>
+  </xsl:param>
+  <xsl:apply-templates mode="short"/><xsl:value-of select="$ending"/>
+</xsl:template>
+<xsl:template match="item" mode="short">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+<xsl:template match="item[position() = last()]" mode="short">
+  <xsl:param name="ending">
+    <xsl:text>.</xsl:text>
+  </xsl:param>
+  <xsl:apply-templates/><xsl:value-of select="$ending"/>
+</xsl:template>
+
+</xsl:stylesheet>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contes.css	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,3 @@
+@import "html.css";
+.nda { font-style: italic; border: solid; padding: 0pt 10pt }
+li .nda { font-style: normal; border: none }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cv.css	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,2 @@
+#identification div.first { width: 50% }
+#identification div.rest { width: 50% ; float: right }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cv_html.xsl	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,290 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.1"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:xt="http://www.jclark.com/xt"
+  extension-element-prefixes="xt" 
+  xmlns="http://www.w3.org/1999/xhtml">
+  <xsl:import href="html.xsl"/>
+  <xsl:output method="xml"
+        version="1.0" 
+        encoding="UTF-8"
+        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
+        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+        indent="yes"/>
+
+
+<xsl:template name="gentext">
+  <xsl:param name="string"/>
+  <xsl:variable name="uri">
+    <xsl:text>cv_str.</xsl:text>
+    <xsl:value-of select="/cv/@lang"/>
+    <xsl:text>.xml</xsl:text>
+  </xsl:variable>
+  <!-- <xsl:message>Looking for <xsl:value-of select="$string"/> in <xsl:value-of select="$uri"/>.</xsl:message> -->
+  <xsl:value-of select="document($uri)//*[@name=$string]"/>
+</xsl:template>
+
+<!-- cv -->
+<xsl:template match="cv">
+  <xsl:variable name="fullname">
+    <xsl:apply-templates mode="fullname" select="identification"/>
+  </xsl:variable>
+  <html>
+    <head>
+      <title>
+      	<xsl:call-template name="gentext">
+	  <xsl:with-param name="string">str-curriculum</xsl:with-param>
+	</xsl:call-template>
+	<xsl:value-of select="$fullname"/></title>
+      <link href="{$css-base-dir}cv.css" media="screen" rel="stylesheet" type="text/css"/>
+    </head>
+    <body>
+      <hr/>
+      <xsl:apply-templates select="identification"/>
+      <hr/>
+      <h1 id="works">
+      	<xsl:call-template name="gentext">
+	  <xsl:with-param name="string">str-experience</xsl:with-param>
+	</xsl:call-template>
+      </h1>
+      <xsl:apply-templates select="work"/>
+      <hr/>
+      <h1 id="studies">
+      	<xsl:call-template name="gentext">
+	  <xsl:with-param name="string">str-formation</xsl:with-param>
+	</xsl:call-template>
+      </h1>
+      <ul class="studies">
+        <xsl:apply-templates select="study" mode="short"/>
+      </ul>
+      <hr/>
+      <h1 id="kownledges">
+      	<xsl:call-template name="gentext">
+	  <xsl:with-param name="string">str-competences</xsl:with-param>
+	</xsl:call-template>
+      </h1>
+      <dl class="knowledge">
+        <xsl:apply-templates select="knowledge"/>
+        <dt id="languages">
+      	  <xsl:call-template name="gentext">
+	    <xsl:with-param name="string">str-languages</xsl:with-param>
+	  </xsl:call-template>
+	</dt>
+        <dd>
+          <ul class="languages">
+            <xsl:apply-templates select="language"/>
+          </ul>
+        </dd>
+      </dl>
+      <!--
+      <dl class="legend">
+        <dt>Acquis</dt><dd>plus d'un an de pratique.</dd>
+        <dt>Notions</dt><dd>moins d'un an de pratique.</dd>
+      </dl>
+      -->
+      <hr/>
+      <h1 id="projects">
+      	<xsl:call-template name="gentext">
+	  <xsl:with-param name="string">str-projects</xsl:with-param>
+	</xsl:call-template>
+      </h1>
+      <ul class="projects">
+        <xsl:apply-templates select="project|concours" mode="short"/>
+      </ul>
+      <hr/>
+      <h1 id="interests">
+      	<xsl:call-template name="gentext">
+	  <xsl:with-param name="string">str-hobbies</xsl:with-param>
+	</xsl:call-template>
+      </h1>
+      <ul class="interests">
+        <xsl:apply-templates select="interest" mode="short"/>
+      </ul>
+    </body>
+  </html>
+</xsl:template>
+
+<xsl:template match="knownlist[@level='learning']"/> 
+<xsl:template match="work[@role='old']">
+  <xsl:apply-templates select="." mode="short"/>
+</xsl:template>
+<xsl:template match="project|concours[@role='old']" mode="short"/>
+
+<!-- identification section -->
+<xsl:template match="identification">
+  <div id="identification">
+    <h2 class="name"><xsl:apply-templates select="." mode="fullname"/></h2>
+    <p>
+      <xsl:apply-templates mode="id"/> 
+    </p>
+  </div>
+</xsl:template>
+<!-- already process, so skip -->
+<xsl:template match="firstname|surname|initials" mode="id"/>
+<xsl:template mode="id" match="*">
+  <span class="{name()}"><xsl:apply-templates select="."/></span><br/>
+</xsl:template>
+<xsl:template mode="id" match="title">
+  <span class="{name()}"><xsl:apply-templates/></span><br/>
+</xsl:template>
+<xsl:template mode="id" match="email">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="string">str-email</xsl:with-param>
+  </xsl:call-template>
+  <xsl:text>: </xsl:text><span class="{name()}"><xsl:apply-templates/></span><br/>
+</xsl:template>
+<xsl:template mode="id" match="web">
+  <span class="{name()}"><xsl:apply-templates/></span><br/>
+</xsl:template>
+<xsl:template mode="id" match="address">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+<xsl:template mode="id" match="phone">
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="string">
+      <xsl:choose>
+	<xsl:when test="@type='fax'">str-phone-fax</xsl:when>
+	<xsl:when test="@type='pager'">str-phone-pager</xsl:when>
+	<xsl:when test="@type='mobile'">str-phone-mobile</xsl:when>
+	<xsl:when test="@type='home'">str-phone-home</xsl:when>
+	<xsl:when test="@type='work'">str-phone-work</xsl:when>
+	<xsl:otherwise>str-phone</xsl:otherwise>
+      </xsl:choose>
+    </xsl:with-param>
+  </xsl:call-template>
+  <xsl:text>: </xsl:text>
+  <span class="phone" title="{@type}"><xsl:apply-templates/></span><br/>
+</xsl:template>
+
+<!-- work -->
+<xsl:template match="work">
+  <div class="work">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+<xsl:template match="work/organism">
+  <h2><xsl:apply-templates select="." mode="short"/></h2>
+</xsl:template>
+
+<xsl:template match="work" mode="short">
+  <h2><xsl:apply-templates select="organism" mode="short"/></h2>
+  <ul>
+    <xsl:apply-templates select="post" mode="short"/>
+  </ul>
+</xsl:template>
+<xsl:template match="post" mode="short">
+  <li>
+    <xsl:if test="title">
+      <xsl:apply-templates select="title" mode="short"/>
+      <xsl:text>; </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates select="duration" mode="short"/>
+  </li>
+</xsl:template>
+
+<!-- post -->
+<xsl:template match="post">
+  <div class="post">
+    <xsl:attribute name="id">
+      <xsl:call-template name="get-id"/>
+    </xsl:attribute>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+<xsl:template match="post/title">
+  <h3><xsl:apply-templates/></h3>
+</xsl:template>
+<xsl:template match="supervisor">
+  <p class="supervisor">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="string">str-supervisor</xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>: </xsl:text>
+    <span class="supervisor">
+     <xsl:apply-templates mode="fullname" select="."/>
+    </span>
+  </p>
+</xsl:template>
+<xsl:template match="post/duration">
+  <p class="duration"><xsl:apply-templates/></p>
+</xsl:template>
+<xsl:template match="post/description">
+  <div class="description">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<!-- study -->
+<xsl:template match="study" mode="short">
+  <li><xsl:apply-templates select="studydomain"/>
+    <xsl:text> (</xsl:text>
+    <xsl:apply-templates select="duration"/>
+    <xsl:text>), </xsl:text>
+    <xsl:apply-templates select="organism" mode="short"/>
+  </li>
+</xsl:template>
+
+<!-- knowledge -->
+<xsl:template match="knowledge">
+  <dt><xsl:apply-templates select="name"/></dt>
+  <dd>
+    <ul>
+      <xsl:apply-templates select="knownlist"/>
+    </ul>
+  </dd>
+</xsl:template>
+<xsl:template match="knownlist">
+  <li>
+    <strong class="level">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="string">
+          <xsl:choose>
+            <xsl:when test="@level='notions'">str-level-notions</xsl:when>
+            <xsl:when test="@level='learning'">str-level-learning</xsl:when>
+            <xsl:otherwise>str-level-known</xsl:otherwise><!-- 'known' -->
+          </xsl:choose>
+	</xsl:with-param>
+      </xsl:call-template>
+      <xsl:text>: </xsl:text>
+    </strong>
+    <xsl:apply-templates mode="short"/>
+  </li>
+</xsl:template>
+
+<xsl:template match="language">
+  <li>
+    <xsl:apply-templates/>
+    <xsl:text>: </xsl:text>
+    <em class="level">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="string">
+          <xsl:choose>
+            <xsl:when test="@level='notions'">str-lang-notions</xsl:when>
+            <xsl:when test="@level='learning'">str-lang-learning</xsl:when>
+            <xsl:when test="@level='functional'">str-lang-functional</xsl:when>
+            <xsl:otherwise>str-lang-known</xsl:otherwise><!-- 'known' -->
+          </xsl:choose>
+	</xsl:with-param>
+      </xsl:call-template>
+    </em>
+  </li>
+</xsl:template>
+
+<!-- project/concours -->
+<xsl:template match="project|concours" mode="short">
+  <li><xsl:apply-templates select="organism" mode="short"/>
+    <xsl:text> (</xsl:text>
+    <xsl:apply-templates select="duration|year" mode="short"/>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="description">
+      <xsl:text>, </xsl:text>
+      <xsl:apply-templates select="description" mode="short"/>
+    </xsl:if>
+  </li>
+</xsl:template>
+
+<xsl:template match="interest" mode="short">
+  <li><xsl:apply-templates mode="short"/></li>
+</xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cv_print.xsl	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,471 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.1"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:xt="http://www.jclark.com/xt"
+  extension-element-prefixes="xt" 
+  xmlns="http://www.w3.org/1999/XSL/Format">
+
+<xsl:import href="common.xsl"/>
+<xsl:import href="print.xsl"/>
+
+  <xsl:output method="xml"
+        indent="yes"/>
+
+<xsl:template name="gentext">
+  <xsl:param name="string"/>
+  <xsl:variable name="uri">
+    <xsl:text>cv_str.</xsl:text>
+    <xsl:value-of select="/cv/@lang"/>
+    <xsl:text>.xml</xsl:text>
+  </xsl:variable>
+  <!-- xsl:message>Looking for <xsl:value-of select="$string"/> in <xsl:value-of select="$uri"/>.</xsl:message -->
+  <xsl:value-of select="document($uri)//*[@name=$string]"/>
+</xsl:template>
+
+<xsl:param name="cv-uri"/>
+<xsl:param name="date"/>
+<xsl:attribute-set name="section-title-font" xsl:use-attribute-sets="verylarge-title-font">
+  <xsl:attribute name="font-size">12pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="space-after">4pt</xsl:attribute>
+  <xsl:attribute name="text-decoration">underline</xsl:attribute>
+  <xsl:attribute name="score-spaces">true</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-page">always</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="knowledge-title-font" xsl:use-attribute-sets="large-title-font">
+  <xsl:attribute name="font-size">12pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="space-after">4pt</xsl:attribute>
+  <xsl:attribute name="space-before">4pt</xsl:attribute>
+  <xsl:attribute name="font-variant">small-caps</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="work-title-font" xsl:use-attribute-sets="large-title-font">
+  <xsl:attribute name="font-size">14pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="space-after">8pt</xsl:attribute>
+  <xsl:attribute name="space-before">12pt</xsl:attribute>
+  <xsl:attribute name="font-variant">small-caps</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="work-short-font" xsl:use-attribute-sets="large-title-font">
+  <xsl:attribute name="font-size">12pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="space-before">4pt</xsl:attribute>
+  <xsl:attribute name="space-after">4pt</xsl:attribute>
+  <xsl:attribute name="font-variant">small-caps</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="post-title-font" xsl:use-attribute-sets="medium-title-font">
+  <xsl:attribute name="font-size">10pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="space-after">4pt</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="name-title-font" xsl:use-attribute-sets="verylarge-title-font">
+  <xsl:attribute name="font-size">16pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="space-after">8pt</xsl:attribute>
+  <!-- <xsl:attribute name="space-before">6pt</xsl:attribute> -->
+</xsl:attribute-set>
+<xsl:attribute-set name="default-font">
+  <xsl:attribute name="font-size">10pt</xsl:attribute>
+  <xsl:attribute name="space-after">4pt</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="section-block">
+  <xsl:attribute name="keep-together.within-page">always</xsl:attribute>
+  <!-- <xsl:attribute name="break-inside">avoid</xsl:attribute> -->
+  <!-- <xsl:attribute name="border-before-style">solid</xsl:attribute> -->
+  <!-- <xsl:attribute name="border-after-style">solid</xsl:attribute> -->
+  <!-- <xsl:attribute name="padding-before">5mm</xsl:attribute> -->
+  <xsl:attribute name="space-before">10mm</xsl:attribute>
+  <xsl:attribute name="space-before.conditionality">discard</xsl:attribute>
+</xsl:attribute-set>
+<!-- cv -->
+<xsl:template match="cv">
+  <xsl:variable name="fullname">
+    <xsl:apply-templates mode="fullname" select="identification"/>
+  </xsl:variable>
+  <root>
+    <layout-master-set>
+      <simple-page-master master-name="cv"
+                        margin-top="1cm" margin-bottom="1cm"
+                        margin-left="1cm" margin-right="1cm">
+        <region-body margin-top="1cm" margin-bottom="1cm"/>
+        <region-before extent="1cm" precedence="true"/>
+        <region-after extent="1cm" precedence="true"/>
+      </simple-page-master>
+      <page-sequence-master master-name="cv-sequence">
+        <repeatable-page-master-reference master-reference="cv"/>
+      </page-sequence-master>
+    </layout-master-set>
+
+    <page-sequence master-reference="cv-sequence">
+      <static-content flow-name="xsl-region-before">
+        <block border-after-style="solid">
+          <table width="100%" table-layout="fixed">
+            <table-column column-width="proportional-column-width(1)"
+                  number-columns-repeated="2"/>
+            <table-body>
+              <table-row>
+                <table-cell>
+                  <block text-align="start"><xsl:value-of select="$fullname"/></block>
+                </table-cell>
+                <table-cell>
+                  <block text-align="end"><xsl:value-of select="$date"/></block>
+                </table-cell>
+              </table-row>
+            </table-body>
+          </table>
+        </block>
+      </static-content>
+      <static-content flow-name="xsl-region-after">
+        <block border-before-style="solid">
+          <table width="100%" table-layout="fixed">
+            <table-column column-width="proportional-column-width(1)"
+                  number-columns-repeated="2"/>
+            <table-body>
+              <table-row>
+                <table-cell>
+                  <block text-align="start"><xsl:value-of select="$cv-uri"/></block>
+                </table-cell>
+                <table-cell>
+                  <block text-align="end">
+                    <xsl:call-template name="gentext">
+                      <xsl:with-param name="string">str-page</xsl:with-param>
+                    </xsl:call-template>
+                    <page-number/>
+                    <xsl:call-template name="gentext">
+                      <xsl:with-param name="string">str-page-of</xsl:with-param>
+                    </xsl:call-template>
+                    <page-number-citation ref-id="xsl_cv_the_end"/></block>
+                </table-cell>
+              </table-row>
+            </table-body>
+          </table>
+        </block>
+      </static-content>
+      <flow flow-name="xsl-region-body" xsl:use-attribute-sets="default-font">
+        <block xsl:use-attribute-sets="section-block">
+          <xsl:apply-templates select="identification"/>
+        </block>
+        <block xsl:use-attribute-sets="section-block" space-before.optimum="10pt" space-before.maximum="10pt">
+          <block xsl:use-attribute-sets="section-title-font">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="string">str-formation</xsl:with-param>
+            </xsl:call-template>
+          </block>
+          <list-block>
+            <xsl:apply-templates select="study" mode="short"/>
+          </list-block>
+        </block>
+        <block xsl:use-attribute-sets="section-block">
+          <block xsl:use-attribute-sets="section-title-font">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="string">str-competences</xsl:with-param>
+            </xsl:call-template>
+          </block>
+          <xsl:apply-templates select="knowledge"/>
+          <block keep-together.within-page="always">
+            <block xsl:use-attribute-sets="knowledge-title-font">
+              <xsl:call-template name="gentext">
+                <xsl:with-param name="string">str-languages</xsl:with-param>
+              </xsl:call-template>
+            </block>
+            <table width="100%" table-layout="fixed" margin-left="24pt">
+              <table-column column-width="proportional-column-width(1)"
+                  number-columns-repeated="2"/>
+              <table-body>
+                <table-row>
+                  <table-cell>
+                    <xsl:apply-templates select="language[not(@level='notions' or @level='learning')]"/>
+                  </table-cell>
+                  <table-cell>
+                    <xsl:apply-templates select="language[@level='notions']"/>
+                  </table-cell>
+                </table-row>
+              </table-body>
+            </table>
+          </block>
+        </block>
+        <block xsl:use-attribute-sets="section-block">
+          <block xsl:use-attribute-sets="section-title-font">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="string">str-projects</xsl:with-param>
+            </xsl:call-template>
+          </block>
+          <list-block>
+            <xsl:apply-templates select="project|concours" mode="short"/>
+          </list-block>
+        </block>
+        <block xsl:use-attribute-sets="section-block">
+          <block xsl:use-attribute-sets="section-title-font">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="string">str-hobbies</xsl:with-param>
+            </xsl:call-template>
+          </block>
+          <list-block>
+            <xsl:apply-templates select="interest" mode="short"/>
+          </list-block>
+        </block>
+        <block xsl:use-attribute-sets="section-block"
+	xsl:space-before="0mm">
+          <block xsl:use-attribute-sets="section-title-font">
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="string">str-experience</xsl:with-param>
+            </xsl:call-template>
+          </block>
+          <xsl:apply-templates select="work"/>
+        </block>
+        <block visibility="hidden" id="xsl_cv_the_end"/>
+      </flow>
+    </page-sequence>
+  </root>
+</xsl:template>
+
+<xsl:template match="knownlist[@level='learning']"/>
+<xsl:template match="item[@role='old']" mode="short"/>
+<xsl:template match="work[@role='old']">
+  <!-- xsl:apply-templates select="." mode="short"/ -->
+</xsl:template>
+<xsl:template match="concours[@role='old']" mode="short"/>
+<xsl:template match="project[@role='old']" mode="short"/>
+
+<!-- identification section -->
+<xsl:template match="identification">
+  <table width="100%" table-layout="fixed">
+    <table-column column-width="proportional-column-width(1)"
+                  number-columns-repeated="2"/>
+    <table-body>
+    <table-row>
+      <table-cell>
+      <block xsl:use-attribute-sets="name-title-font"><xsl:apply-templates select="." mode="fullname"/></block>
+      <xsl:apply-templates select="title|email" mode="id"/>
+      </table-cell>
+      <table-cell>
+      <xsl:apply-templates mode="id" select="*[name(.) != 'title' and name(.) != 'email']"/>
+      </table-cell>
+    </table-row>
+    </table-body>
+  </table>
+</xsl:template>
+<!-- already process, so skip -->
+<xsl:template match="firstname|surname|initials" mode="id"/>
+<xsl:template mode="id" match="*">
+  <block><xsl:apply-templates select="."/></block>
+</xsl:template>
+<xsl:template mode="id" match="title">
+  <block font-weight="bold"><xsl:apply-templates/></block>
+</xsl:template>
+<xsl:template mode="id" match="email">
+  <block>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="string">str-email</xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>: </xsl:text>
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+<xsl:template mode="id" match="web">
+  <block><xsl:apply-templates/></block>
+</xsl:template>
+<xsl:template mode="id" match="address">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+<xsl:template mode="id" match="phone">
+  <block>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="string">        
+        <xsl:choose>
+          <xsl:when test="@type='fax'">str-phone-fax</xsl:when>
+          <xsl:when test="@type='pager'">str-phone-pager</xsl:when>
+          <xsl:when test="@type='mobile'">str-phone-mobile</xsl:when>
+          <xsl:when test="@type='home'">str-phone-home</xsl:when>
+          <xsl:when test="@type='work'">str-phone-work</xsl:when>
+          <xsl:otherwise>str-phone</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>: </xsl:text>
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<!-- work -->
+<xsl:template match="work">
+  <block keep-together="always">
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+<xsl:template match="work/organism">
+  <block xsl:use-attribute-sets="work-title-font"><xsl:apply-templates select="." mode="short"/></block>
+</xsl:template>
+
+<xsl:template match="work" mode="short">
+  <block keep-together.within-page="always">
+    <block xsl:use-attribute-sets="work-short-font"><xsl:apply-templates select="organism" mode="short"/></block>
+    <list-block>
+      <xsl:apply-templates select="post" mode="short"/>
+    </list-block>
+  </block>
+</xsl:template>
+<xsl:template match="post" mode="short">
+  <list-item>
+    <xsl:call-template name="list-label"/>
+    <list-item-body start-indent="body-start()">
+      <block>
+      <xsl:if test="title">
+        <xsl:apply-templates select="title" mode="short"/>
+        <xsl:text>; </xsl:text>
+      </xsl:if>
+      <xsl:apply-templates select="duration" mode="short"/>
+      <xsl:text>.</xsl:text>
+      </block>
+    </list-item-body>
+  </list-item>
+</xsl:template>
+
+<!-- post -->
+<xsl:template match="post">
+  <block keep-together.within-page="always">
+    <table width="100%" table-layout="fixed" space-after="6pt">
+      <table-column column-width="proportional-column-width(1)"/>
+      <table-column column-width="proportional-column-width(1)"/>
+      <table-body>
+        <table-row>
+          <table-cell>
+            <xsl:apply-templates select="title" mode="title"/>
+          </table-cell>
+          <table-cell>
+            <xsl:apply-templates select="supervisor|duration" mode="title"/>
+          </table-cell>
+        </table-row>
+      </table-body>
+    </table>
+    <block margin-left="24pt">
+      <xsl:apply-templates/>
+    </block>
+  </block>
+</xsl:template>
+<xsl:template match="post/supervisor|post/duration|post/title"/>
+<xsl:template match="post/title" mode="title">
+  <block xsl:use-attribute-sets="post-title-font"><xsl:apply-templates/></block>
+</xsl:template>
+<xsl:template match="supervisor" mode="title">
+  <block>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="string">str-supervisor</xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>: </xsl:text>
+    <xsl:apply-templates mode="fullname" select="."/>
+  </block>
+</xsl:template>
+<xsl:template match="post/duration" mode="title">
+  <block><xsl:apply-templates/></block>
+</xsl:template>
+
+<!-- study -->
+<xsl:template match="study" mode="short">
+  <list-item>
+    <xsl:call-template name="list-label"/>
+    <list-item-body start-indent="body-start()">
+      <block>
+      <xsl:apply-templates select="studydomain"/>
+      <xsl:text> (</xsl:text>
+      <xsl:apply-templates select="duration"/>
+      <xsl:text>), </xsl:text>
+      <xsl:apply-templates select="organism" mode="short"/>
+      <xsl:text>.</xsl:text>
+      </block>
+    </list-item-body>
+  </list-item>
+</xsl:template>
+
+<!-- knowledge -->
+<xsl:template match="knowledge">
+  <block keep-together.within-page="always">
+    <block xsl:use-attribute-sets="knowledge-title-font">
+      <xsl:apply-templates select="name"/>
+    </block>
+    <table width="100%" table-layout="fixed" margin-left="24pt">
+      <table-column column-width="proportional-column-width(1)"
+          number-columns-repeated="{count(knownlist)}"/>
+      <table-header>
+        <table-row>
+          <xsl:apply-templates select="knownlist" mode="table-header"/>
+        </table-row>
+      </table-header>
+      <table-body>
+        <table-row>
+          <xsl:apply-templates select="knownlist"/>
+        </table-row>
+      </table-body>
+    </table>
+  </block>
+</xsl:template>
+<xsl:template match="knownlist" mode="table-header">
+  <table-cell>
+    <block font-weight="bold">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="string">          
+        <xsl:choose>
+          <xsl:when test="@level='notions'" >str-level-notions</xsl:when>
+          <xsl:when test="@level='learning'">str-level-learning</xsl:when>
+          <xsl:otherwise>str-level-known</xsl:otherwise><!-- 'known' -->
+        </xsl:choose>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:text>:</xsl:text>
+    </block>
+  </table-cell>
+</xsl:template>
+<xsl:template match="knownlist">
+  <table-cell>
+    <block><xsl:apply-templates mode="short"/></block>
+  </table-cell>
+</xsl:template>
+
+<xsl:template match="language">
+  <block>
+    <xsl:apply-templates/><xsl:text>: </xsl:text>
+    <inline font-style="italic" keep-together.within-line="always">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="string">          
+          <xsl:choose>
+            <xsl:when test="@level='notions'" >str-lang-notions</xsl:when>
+            <xsl:when test="@level='learning'">str-lang-learning</xsl:when>
+            <xsl:when test="@level='functional'" >str-lang-functional</xsl:when>
+            <xsl:otherwise>str-lang-known</xsl:otherwise><!-- 'known' -->
+          </xsl:choose>
+        </xsl:with-param>
+      </xsl:call-template>
+    </inline>
+  </block>
+</xsl:template>
+
+<!-- project/concours -->
+<xsl:template match="project|concours" mode="short">
+  <list-item>
+    <xsl:call-template name="list-label"/>
+    <list-item-body start-indent="body-start()">
+      <block>
+        <xsl:apply-templates select="organism" mode="short"/>
+        <xsl:text> (</xsl:text>
+        <xsl:apply-templates select="duration|year" mode="short"/>
+        <xsl:text>);</xsl:text>
+        <xsl:if test="description">
+          <xsl:text> </xsl:text>
+          <xsl:apply-templates select="description" mode="short"/>
+        </xsl:if>
+      </block>
+    </list-item-body>
+  </list-item>
+</xsl:template>
+
+<xsl:template match="interest" mode="short">
+  <list-item>
+    <xsl:call-template name="list-label"/>
+    <list-item-body start-indent="body-start()">
+      <block><xsl:apply-templates mode="short"/></block>
+    </list-item-body>
+  </list-item>
+</xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cv_str.en.xml	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,28 @@
+<?xml version="1.0" standalone="yes"?>
+<gentext>
+<string name="str-page">page </string>
+<string name="str-page-of"> of </string>
+<string name="str-experience">Work Experience</string>
+<string name="str-formation">Studies</string>
+<string name="str-competences">Knowledges</string>
+<string name="str-languages">Languages</string>
+<string name="str-projects">Projects and Realisations</string>
+<string name="str-hobbies">Hobbies</string>
+<string name="str-email">Email</string>
+<string name="str-phone-fax">fax</string>
+<string name="str-phone-pager">pager</string>
+<string name="str-phone-mobile">mobile</string>
+<string name="str-phone-home">evenings</string>
+<string name="str-phone-work">day</string>
+<string name="str-phone">phone</string>
+<string name="str-supervisor">Supervisor</string>
+<string name="str-level-notions">Notions</string>
+<string name="str-level-learning">Learning</string>
+<string name="str-level-known">Known</string>
+<string name="str-lang-notions" >basic notions</string>
+<string name="str-lang-learning" >learning</string>
+<string name="str-lang-functional" >functional</string>
+<string name="str-lang-known">fluent</string>
+<string name="str-curriculum">Resume of </string>
+</gentext>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cv_str.fr.xml	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,27 @@
+<?xml version="1.0" standalone="yes"?>
+<gentext>
+<string name="str-page">page </string>
+<string name="str-page-of"> de </string>
+<string name="str-experience">Expériences professionnelles</string>
+<string name="str-formation">Formation</string>
+<string name="str-competences">Compétences</string>
+<string name="str-languages">Langues parlées et écrites</string>
+<string name="str-projects">Projets et réalisations</string>
+<string name="str-hobbies">Loisirs et intérêts</string>
+<string name="str-email">Courriel</string>
+<string name="str-phone-fax">télécopieur</string>
+<string name="str-phone-pager">téléavertisseur</string>
+<string name="str-phone-mobile">cellulaire</string>
+<string name="str-phone-home">soir</string>
+<string name="str-phone-work">jour</string>
+<string name="str-phone">téléphone</string>
+<string name="str-supervisor">Supérieur immédiat</string>
+<string name="str-level-notions">Notions</string>
+<string name="str-level-learning">En cours d'apprentissage</string>
+<string name="str-level-known">Acquis</string>
+<string name="str-lang-notions" >notions de base</string>
+<string name="str-lang-learning" >en apprentissage</string>
+<string name="str-lang-functional" >fonctionnel</string>
+<string name="str-lang-known">courant</string>
+<string name="str-curriculum">Curriculum Vitae de </string>
+</gentext>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/html.css	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,14 @@
+/* Standard style for the site. */
+body { background: black; color: silver }
+em { color: white }
+b, strong { color: teal }
+hr { color: teal }
+:visited { color: teal; text-decoration: none }
+:visited * { color: teal }
+:link { color: aqua; text-decoration: none }
+:link * { color: aqua }
+a:hover { color: lime; text-decoration: underline }
+a:hover * { color: lime }
+h1, h2, h3, h4, h5, h6 { color: teal }
+h1 *, h2 *, h3 *, h4 *, h5 *, h6 * { color: teal }
+blockquote { color: white; font-style: italic }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/html.xsl	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,436 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.1"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:xt="http://www.jclark.com/xt"
+  xmlns="http://www.w3.org/1999/xhtml"
+  extension-element-prefixes="xt">
+
+<xsl:import href="common.xsl"/>
+
+  <xsl:output method="xml"
+	encoding="utf-8"
+        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
+        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+        indent="yes"/>
+
+<xsl:param name="css-base-dir"/>
+<xsl:param name="stylesheet"><xsl:text>html.xsl</xsl:text></xsl:param>
+<xsl:param name="pdf-filename"><xsl:text>book.pdf</xsl:text></xsl:param>
+
+<xsl:template name="get-id">    
+  <xsl:choose>
+    <xsl:when test="@id"><xsl:value-of select="@id"/></xsl:when>
+    <xsl:otherwise><xsl:value-of select="generate-id(.)"/></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="parent-id">
+  <xsl:choose>
+    <xsl:when test="../@id"><xsl:value-of select="../@id"/></xsl:when>
+    <xsl:otherwise><xsl:value-of select="generate-id(..)"/></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="next-id">
+  <xsl:choose>
+    <xsl:when test="following::*[1]/@id"><xsl:value-of select="following::*[1]/@id"/></xsl:when>
+    <xsl:otherwise><xsl:value-of select="generate-id(following::*[1])"/></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="prec-id">
+  <xsl:choose>
+    <xsl:when test="preceding::*[1]/@id"><xsl:value-of select="preceding::*[1]/@id"/></xsl:when>
+    <xsl:otherwise><xsl:value-of select="generate-id(preceding::*[1])"/></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- book processing -->
+<xsl:template match="book">
+  <html>
+    <head>
+      <xsl:choose>
+        <xsl:when test="docinfo">
+           <xsl:apply-templates select="docinfo" mode="heading"/> 
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="title" mode="heading"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <link href="{$css-base-dir}{$stylesheet}" media="screen" rel="stylesheet" type="text/css"/>
+    </head>
+    <body class="book">
+      <xsl:apply-templates select="docinfo/date"/>
+      <xsl:apply-templates/>
+      <xsl:apply-templates mode="book-toc"/>
+      <hr/>
+      <address>
+        <xsl:apply-templates select="docinfo/copyright"/>
+	<p>Aussi disponible au format <a href="{$pdf-filename}">PDF</a>.</p>
+      </address>
+    </body>
+  </html>
+</xsl:template>
+
+<xsl:template match="book/section" mode="book-toc">
+  <xsl:variable name="href">
+    <xsl:call-template name="get-id"/>
+  </xsl:variable>
+  <h2>
+    <a id="{$href}" href="{$href}.html">
+      <xsl:apply-templates select="title" mode="book-toc"/>
+    </a>
+  </h2>
+</xsl:template>
+
+<!-- title default processing -->
+<xsl:template match="title">
+  <h1><xsl:apply-templates/></h1>
+</xsl:template>
+<xsl:template match="subtitle">
+  <p class="subtitle"><em><xsl:apply-templates/></em></p>
+</xsl:template>
+
+<!-- normal name processing -->
+<xsl:template name="name">
+  <xsl:variable name="fullname">
+     <xsl:apply-templates select="firstname"/>
+     <xsl:if test="initials">
+       <xsl:text> </xsl:text>
+       <xsl:apply-templates select="initials"/>
+     </xsl:if>
+     <xsl:text> </xsl:text>
+     <xsl:apply-templates select="surname"/>    
+  </xsl:variable>
+  <xsl:choose>
+  <xsl:when test="email">
+    <a href="mailto:{email/text()}" class="mailto">
+      <xsl:value-of select="$fullname"/>
+    </a>
+  </xsl:when>
+  <xsl:otherwise>
+    <xsl:value-of select="$fullname"/>
+  </xsl:otherwise>
+  </xsl:choose>           
+</xsl:template>
+
+<xsl:template match="*" mode="fullname">
+  <xsl:call-template name="name"/>  
+</xsl:template>
+<xsl:template match="email">
+  <a href="mailto:{.}"><xsl:value-of select="."/></a>
+</xsl:template>
+<xsl:template match="web">
+  <a href="{.}"><xsl:value-of select="."/></a>
+</xsl:template>
+<!-- simple address format, good for Canada -->
+<xsl:template match="address">
+  <xsl:apply-templates mode="address" select="street"/>
+  <xsl:value-of select="city"/>
+  (<xsl:value-of select="state"/>),
+  <xsl:value-of select="postcode"/><br/>
+  <xsl:apply-templates select="country" mode="address"/>    
+</xsl:template>
+<xsl:template match="*" mode="address">
+  <xsl:apply-templates/><br/>
+</xsl:template>
+
+<!-- default docinfo processing -->
+<!-- normal is not process -->
+<xsl:template match="docinfo"/>
+<!-- date processing if directly selected -->
+<xsl:template match="date">
+  <address class="date">
+    <xsl:apply-templates/>
+  </address>
+</xsl:template>
+<!-- in heading, default is to not process. -->
+<xsl:template match="*" mode="heading"/>
+<xsl:template match="docinfo" mode="heading">
+  <xsl:apply-templates mode="heading"/>
+</xsl:template>
+<xsl:template match="title" mode="heading">
+  <title><xsl:apply-templates/></title>
+</xsl:template>
+<xsl:template match="author" mode="heading">
+  <meta name="author">
+    <xsl:attribute name="content">
+      <xsl:if test="firstname">
+        <xsl:apply-templates select="firstname"/><xsl:text> </xsl:text>
+      </xsl:if>
+      <xsl:if test="initials">
+        <xsl:apply-templates select="initials"/><xsl:text> </xsl:text>
+      </xsl:if>
+      <xsl:apply-templates select="surname"/>
+    </xsl:attribute>
+  </meta>
+</xsl:template>
+<xsl:template match="date" mode="heading">
+  <meta name="date" content="{text()}"/>
+</xsl:template>
+
+<!-- copyright footer processing -->
+<xsl:template match="copyright">
+  © <xsl:apply-templates select="holder"/>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates select="year"/>
+</xsl:template>
+<xsl:template match="holder">
+  <xsl:call-template name="name"/>
+</xsl:template>
+<xsl:template match="year">
+  <xsl:apply-templates/>
+  <xsl:if test="position() != last()">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<!-- nda docinfo processing -->
+<xsl:template match="*" mode="heading-nda"/>
+<xsl:template match="title" mode="heading-nda">
+  <title>
+    <xsl:apply-templates/><xsl:text> (Notes de l'auteur)</xsl:text>
+  </title>
+</xsl:template>
+<xsl:template match="docinfo" mode="heading-nda">
+  <xsl:apply-templates mode="heading-nda"/>
+  <xsl:apply-templates select='*[name()!="title"]' mode="heading"/> 
+</xsl:template>
+
+<!-- para default processing -->
+<xsl:template match="para">
+  <p><xsl:apply-templates/></p>
+</xsl:template>
+
+<!-- formalpara processing -->
+<xsl:template match="formalpara/para">
+  <xsl:apply-templates/>
+</xsl:template>
+<xsl:template match="formalpara/title">
+  <strong><xsl:apply-templates/></strong>
+</xsl:template>
+<xsl:template match="formalpara">
+  <p><xsl:apply-templates/></p>
+</xsl:template>
+
+<!-- citation -->
+<xsl:template match="citation/author">
+  <address><xsl:apply-templates/></address>
+</xsl:template>
+<xsl:template match="citation">
+  <blockquote><xsl:apply-templates/></blockquote>
+</xsl:template>
+<xsl:template match="author/surname">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::author">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+<xsl:template match="author/title">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- list processing -->
+<xsl:template match="list">
+  <xsl:choose>
+    <xsl:when test="@type='none'">
+      <ul>
+        <xsl:apply-templates/>
+      </ul>
+    </xsl:when>
+    <xsl:otherwise>
+      <ol type="{@id}">
+        <xsl:apply-templates/>
+      </ol>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template match="shortlist">
+  <p><xsl:apply-templates mode="short"/></p>
+</xsl:template>
+
+<xsl:template match="item|listitem">
+  <li><xsl:apply-templates/></li>
+</xsl:template>
+
+<!-- inline element -->
+<xsl:template match="emphasis">
+  <em><xsl:apply-templates/></em>
+</xsl:template>
+<xsl:template match="term">
+  <em class="term"><xsl:apply-templates/></em>
+</xsl:template>
+<xsl:template match="foreign">
+  <em class="foreign"><xsl:apply-templates/></em>
+</xsl:template>
+<xsl:template match="replaceable">
+  <em class="replaceable">
+    <xsl:text>[</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>]</xsl:text>
+  </em>
+</xsl:template>
+<xsl:template match="literal">
+  <tt class="literal"><xsl:apply-templates/></tt>
+</xsl:template>
+<xsl:template match="acronym[@text]">
+  <acronym title="{@text}"><xsl:apply-templates/></acronym>
+</xsl:template>
+<xsl:template match="acronym">
+  <acronym><xsl:apply-templates/></acronym>
+</xsl:template>
+
+<xsl:template match="subscript">
+  <sub><xsl:apply-templates/></sub>
+</xsl:template>
+<xsl:template match="superscript">
+  <sup><xsl:apply-templates/></sup>
+</xsl:template>
+
+<xsl:template match="section" mode="navbar-name">
+  <xsl:value-of select="title/text()"/>
+</xsl:template>
+
+<xsl:template match="section|story|poetry" mode="navbar-link">
+  <xsl:call-template name="get-id"/>
+</xsl:template>
+
+<xsl:template name="navbar-link">
+  <xsl:param name="prefix"></xsl:param>
+  <a>
+    <xsl:attribute name="href">
+      <xsl:apply-templates select="." mode="navbar-link"/>
+      <xsl:text>.html</xsl:text>
+    </xsl:attribute>
+    <xsl:value-of select="$prefix"/>
+    <xsl:apply-templates select="." mode="navbar-name"/>
+  </a><br/>
+</xsl:template>
+
+<xsl:template match="section" mode="navbar-prec">
+  <xsl:call-template name="navbar-link">
+    <xsl:with-param name="prefix">
+      <xsl:text>Section précédente: </xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+<xsl:template match="section" mode="navbar-next">
+  <xsl:call-template name="navbar-link">
+    <xsl:with-param name="prefix">
+      <xsl:text>Section suivante: </xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="section" mode="navbar-section">
+   <xsl:apply-templates 
+     select="preceding-sibling::section[1]"
+     mode="navbar-prec"/>
+   <xsl:apply-templates 
+     select="following-sibling::section[1]"
+     mode="navbar-next"/>
+  <xsl:variable name="section-ref">
+    <xsl:call-template name="get-id"/>
+  </xsl:variable>
+  <a href="index.html#{$section-ref}">Retour à la table des matières</a><br/>
+</xsl:template>
+
+<!-- The book-toc section -->
+<xsl:template match="book/section">
+  <xsl:variable name="href">
+    <xsl:call-template name="get-id"/>
+  </xsl:variable>
+  <xt:document href="{$href}.html" method="xml" encoding="utf-8"
+        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
+        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+        indent="yes">
+    <html>
+      <head>
+        <xsl:apply-templates select="title" mode="heading"/>
+        <link href="{$css-base-dir}{$stylesheet}" media="screen" rel="stylesheet" type="text/css"/>
+      </head>
+      <body>
+        <h1><xsl:value-of select="title"/></h1>
+        <xsl:apply-templates select="child::*[name(.) != 'story' or name(.)!= 'poetry']"/>
+        <ul>
+          <xsl:apply-templates mode="section-toc"/>
+        </ul>
+        <hr/>
+        <address>
+          <xsl:apply-templates select="../copyright"/>
+        </address>
+        <xsl:apply-templates mode="navbar-section" select="."/>
+      </body>
+    </html>
+  </xt:document>
+  <xsl:apply-templates select="story|poetry"/>
+</xsl:template>
+
+<xsl:template match="section/title" mode="book-toc">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- anything else is clear -->
+<xsl:template match="*" mode="book-toc"/>
+<xsl:template match="*" mode="section-toc"/>
+<xsl:template match="*" mode="navbar-section"/>
+
+<!-- preambule section -->
+<xsl:template match="preambule">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="preambule/title">
+  <h2><xsl:apply-templates/></h2>
+</xsl:template>
+
+<!-- short representation -->
+<xsl:template match="list" mode="short">
+  <xsl:param name="ending">
+    <xsl:text>.</xsl:text>
+  </xsl:param>
+  <xsl:apply-templates mode="short">
+    <xsl:with-param name="ending" select="$ending"/>
+  </xsl:apply-templates>
+</xsl:template>
+<xsl:template match="listitem" mode="short">
+  <xsl:apply-templates mode="short"/><xsl:text>, </xsl:text>
+</xsl:template>
+<xsl:template match="listitem[position() = last()]" mode="short">
+  <xsl:param name="ending">
+    <xsl:text>.</xsl:text>
+  </xsl:param>
+  <xsl:apply-templates mode="short"/><xsl:value-of select="$ending"/>
+</xsl:template>
+<xsl:template match="item" mode="short">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+<xsl:template match="item[position() = last()]" mode="short">
+  <xsl:param name="ending">
+    <xsl:text>.</xsl:text>
+  </xsl:param>
+  <xsl:apply-templates/><xsl:value-of select="$ending"/>
+</xsl:template>
+<xsl:template match="organism" mode="short">
+  <xsl:choose>
+    <xsl:when test="web">
+      <a><xsl:attribute name="href">
+         <xsl:apply-templates select="web"/>
+       </xsl:attribute><xsl:apply-templates select="name"/></a>
+    </xsl:when>
+    <xsl:otherwise><xsl:apply-templates select="name"/></xsl:otherwise>
+  </xsl:choose>  
+</xsl:template>
+
+<xsl:template match="ulink">
+  <a>
+    <xsl:attribute name="href">
+      <xsl:value-of select="@url"/>
+    </xsl:attribute>
+    <xsl:apply-templates/>
+  </a>
+</xsl:template>
+
+<xsl:template match="section/title"/>
+<xsl:template match="section/subtitle"/>
+
+
+</xsl:stylesheet>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/masters_print.xsl	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.1"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns="http://www.w3.org/1999/XSL/Format">
+
+<xsl:template name="master-set">
+  <layout-master-set>
+    <simple-page-master master-name="book"
+                        margin-top="1cm" margin-bottom="1cm"
+                        margin-left="1cm" margin-right="1cm">
+      <region-body margin-top="1cm" margin-bottom="1cm"/>
+      <region-before extent="1cm" precedence="true"/>
+      <region-after extent="1cm" precedence="true"/>
+    </simple-page-master>
+    <page-sequence-master master-name="book-sequence">
+      <repeatable-page-master-reference master-reference="book"/>
+    </page-sequence-master>
+  </layout-master-set>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/poetry.css	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,1 @@
+@import "html.css";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/poetry_html.xsl	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,174 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.1"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:xt="http://www.jclark.com/xt"
+  xmlns="http://www.w3.org/1999/xhtml"
+  extension-element-prefixes="xt">
+  <xsl:import href="html.xsl"/>
+  <xsl:output method="xml"
+	encoding="utf-8"
+        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
+        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+        indent="yes"/>
+
+<xsl:param name="stylesheet"><xsl:text>poetry.css</xsl:text></xsl:param>
+<xsl:param name="pdf-filename"><xsl:text>poetry.pdf</xsl:text></xsl:param>
+
+<xsl:template match="poetry" mode="section-toc">
+  <xsl:variable name="href">
+    <xsl:call-template name="get-id"/>
+  </xsl:variable>
+  <li>
+    <a href="{$href}.html"><xsl:value-of select="docinfo/title"/></a>
+      <xsl:if test="nda">
+        [<a href="{$href}_nda.html">NdA</a>]
+      </xsl:if>
+  </li>
+</xsl:template>
+
+<xsl:template match="section" mode="book-toc">
+  <xsl:variable name="href">
+    <xsl:call-template name="get-id"/>
+  </xsl:variable>
+  <li>
+    <a href="{$href}.html"><xsl:value-of select="title"/></a>
+  </li>
+</xsl:template>
+
+<xsl:template match="poetry" mode="navbar-name">
+  <xsl:choose>
+    <xsl:when test="docinfo/title">
+      <xsl:value-of select="docinfo/title/text()"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="poem/title/text()"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="poetry" mode="navbar-prec">
+  <xsl:call-template name="navbar-link">
+    <xsl:with-param name="prefix">
+      <xsl:text>Précédent: </xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+<xsl:template match="poetry" mode="navbar-next">
+  <xsl:call-template name="navbar-link">
+    <xsl:with-param name="prefix">
+      <xsl:text>Suivant: </xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+<xsl:template match="poetry" mode="navbar-poetry">
+  <xsl:choose>
+    <xsl:when test="preceding-sibling::poetry[1]">
+      <xsl:apply-templates 
+          select="preceding-sibling::poetry[1]"
+          mode="navbar-prec"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates 
+        select="../preceding-sibling::section[last()]"
+          mode="navbar-prec"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="following-sibling::poetry[1]">
+      <xsl:apply-templates 
+          select="following-sibling::poetry[1]"
+          mode="navbar-next"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates 
+        select="../following-sibling::*[1]"
+          mode="navbar-next"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:variable name="section-ref">
+    <xsl:call-template name="parent-id"/>
+  </xsl:variable>
+  <a href="{$section-ref}.html">Retour à la section</a><br/>
+</xsl:template>
+
+<!-- poetry section -->
+<xsl:template match="poetry/poem">
+  <xsl:variable name="href">
+    <xsl:call-template name="parent-id"/>
+  </xsl:variable>
+  <xt:document href="{$href}.html" method="xml" encoding="utf-8"
+        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
+        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+        indent="yes">
+    <html>
+      <head>
+        <xsl:apply-templates select="../docinfo" mode="heading"/>
+        <link href="{$css-base-dir}{$stylesheet}" media="screen" rel="stylesheet" type="text/css"/>
+      </head>
+      <body>
+        <xsl:apply-templates/>
+        <xsl:apply-templates select="../docinfo/date"/>
+        <hr/>
+        <address>
+          <xsl:apply-templates select="../docinfo/copyright"/>
+        </address>
+        <xsl:if test="../nda">
+          <a href="{$href}_nda.html">Notes de l'auteur.</a><br/>
+        </xsl:if>
+        <xsl:apply-templates mode="navbar-poetry" select=".."/>
+      </body>
+    </html>
+  </xt:document>
+</xsl:template>
+
+<xsl:template match="poetry/nda">
+  <xsl:variable name="href">
+    <xsl:call-template name="parent-id"/>
+  </xsl:variable>
+  <xt:document method="xml" encoding="utf-8" href="{$href}_nda.html"
+        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
+        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+        indent="yes">
+    <html>
+      <head>
+        <xsl:apply-templates select="../docinfo" mode="heading-nda"/>
+      <link href="{$css-base-dir}{$stylesheet}" media="screen" rel="stylesheet" type="text/css"/>
+      </head>
+      <body>
+        <xsl:apply-templates/>
+        <hr/>
+        <address>
+          <xsl:apply-templates select="../docinfo/copyright"/>
+        </address>
+        <a href="{$href}.html">Retour au poème.</a><br/>
+        <xsl:apply-templates mode="navbar-poetry" select=".."/>
+      </body>
+    </html>
+  </xt:document>
+</xsl:template>
+
+<!-- strophe -->
+<xsl:template match="strophe">
+  <p><xsl:apply-templates/></p>
+</xsl:template>
+
+<!-- verse -->
+<xsl:template match="verse">
+  <xsl:apply-templates/><br/>
+</xsl:template>
+
+<!-- cue -->
+<xsl:template match="cue">
+  <p><xsl:apply-templates/></p>
+</xsl:template>
+<xsl:template match="caracter">
+  <strong class="caracter">
+    <xsl:apply-templates/>
+  </strong><xsl:text>: </xsl:text>
+</xsl:template>
+<xsl:template match="cue/para">
+  <xsl:apply-templates/>
+</xsl:template>
+
+</xsl:stylesheet>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/poetry_print.xsl	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,196 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.1"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:xt="http://www.jclark.com/xt"
+  extension-element-prefixes="xt" 
+  xmlns="http://www.w3.org/1999/XSL/Format">
+
+<xsl:import href="common.xsl"/>
+<xsl:import href="print.xsl"/>
+<xsl:import href="masters_print.xsl"/>
+
+<xsl:output method="xml" indent="yes"/>
+
+<xsl:attribute-set name="standard-block">
+  <xsl:attribute name="text-indent">10mm</xsl:attribute>
+  <xsl:attribute name="space-before">10pt</xsl:attribute>
+  <xsl:attribute name="space-before.conditionnaly">discard</xsl:attribute>
+  <xsl:attribute name="text-align">justify</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:template name="static-content">
+  <xsl:param name="title"/>
+  <static-content flow-name="xsl-region-before">
+    <block border-after-style="solid">
+      <table width="100%" table-layout="fixed">
+            <table-column column-width="proportional-column-width(1)"
+                  number-columns-repeated="2"/>
+            <table-body>
+              <table-row>
+                <table-cell>
+                  <block text-align="start"><xsl:value-of select="$title"/></block>
+                </table-cell>
+              </table-row>
+            </table-body>
+          </table>
+        </block>
+      </static-content>
+      <static-content flow-name="xsl-region-after">
+        <block border-before-style="solid">
+          <table width="100%" table-layout="fixed">
+            <table-column column-width="proportional-column-width(1)"
+                  number-columns-repeated="2"/>
+            <table-body>
+              <table-row>
+                <table-cell>
+                  <block text-align="end">
+		    <xsl:text>page </xsl:text>
+                    <page-number/>
+                  </block>
+                </table-cell>
+              </table-row>
+            </table-body>
+          </table>
+        </block>
+      </static-content>
+</xsl:template>
+
+<!-- book -->
+<xsl:template match="book">
+  <root>
+    <xsl:call-template name="master-set"/>
+    <xsl:apply-templates select="section"/>
+  </root>
+</xsl:template>
+
+<xsl:template match="/book/section">
+  <page-sequence master-reference="book-sequence">
+    <xsl:call-template name="static-content">
+      <xsl:with-param name="title">
+        <xsl:apply-templates select="title"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <flow flow-name="xsl-region-body">
+      <xsl:apply-templates select="*[name()!='poetry']"/>
+    </flow>
+  </page-sequence>
+  <xsl:apply-templates select="poetry"/> 
+</xsl:template>
+
+<xsl:template match="poetry">
+  <page-sequence master-reference="book-sequence">
+    <xsl:call-template name="static-content">
+      <xsl:with-param name="title">
+        <xsl:apply-templates select="docinfo/title"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <flow flow-name="xsl-region-body">
+      <xsl:apply-templates/>
+    </flow>
+  </page-sequence>
+</xsl:template>
+
+<xsl:template match="section/title">
+  <block xsl:use-attribute-sets="verylarge-title-font">
+    <xsl:attribute name="space-after">5pt</xsl:attribute>
+    <xsl:attribute name="space-before">10pt</xsl:attribute>
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<xsl:template match="poem/title">
+  <block xsl:use-attribute-sets="large-title-font">
+    <xsl:attribute name="space-after">5pt</xsl:attribute>
+    <xsl:attribute name="space-before">10pt</xsl:attribute>
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<xsl:template match="nda">
+  <block border-top="solid" border-bottom="solid"
+    font-size="75%" font-style="italic"
+    padding-top="10pt" padding-bottom="10pt"
+    space-before="1in" space-before.conditionnaly="discard"
+    margin-left=".5in" margin-right=".5in">
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<xsl:template match="para">
+  <block xsl:use-attribute-sets="standard-block">
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<!-- dialog template -->
+<xsl:template match="dialog">
+  <block xsl:use-attribute-sets="standard-block" start-indent="1cm">
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+<xsl:template match="cite">
+  <block xsl:use-attribute-sets="standard-block" font-style="italic">
+    <xsl:text>"</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>"</xsl:text>
+  </block>
+</xsl:template>
+
+<xsl:template match="citation">
+  <block xsl:use-attribute-sets="standard-block" font-style="italic"
+         font-size="75%" margin-left="4in">
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<xsl:template match="poem">
+  <block xsl:use-attribute-sets="standard-block">
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<xsl:template match="strophe">
+  <block xsl:use-attribute-sets="standard-block">
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<xsl:template match="verse">
+  <block><xsl:apply-templates/></block>
+</xsl:template>
+
+<xsl:template match="cue">
+  <block xsl:use-attribute-sets="standard-block" text-indent="0pt">
+  <xsl:apply-templates/>
+  </block>
+</xsl:template>
+<xsl:template match="caracter">
+  <inline font-weight="bold">
+    <xsl:apply-templates/>
+  </inline>
+  <xsl:text>: </xsl:text>
+</xsl:template>
+<xsl:template match="cue/para">
+  <xsl:apply-templates/>
+</xsl:template>
+
+</xsl:stylesheet>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: xml
+sgml-omittag:nil
+sgml-shorttag:nil
+sgml-namecase-general:nil
+sgml-general-insert-case:lower
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:nil
+sgml-parent-document:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+outline-regexp:"<xsl:"
+End:
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/print.dsl	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,471 @@
+<!doctype dsssl-specification [
+<!entity % decls "(features? & char-repertoire?)">
+<!element dsssl-specification O O (%decls;, style-specification+)>
+<!attlist dsssl-specification
+  dsssl name #fixed dsssl-specification
+>
+<!element style-specification - O (%decls;, style*)>
+<!attlist style-specification
+  dsssl name #fixed style-specification
+  id id #required
+  partial (partial | complete) complete
+  use idrefs #implied
+>
+<!element char-repertoire - o empty>
+<!attlist char-repertoire
+  dsssl name #fixed character-repertoire
+  name cdata #required
+>
+<!element features - o (#pcdata)>
+<!element style - - rcdata>
+<!attlist style
+  dsssl name #fixed style-specification-body
+>
+]>
+<dsssl-specification>
+<style-specification id=common partial>
+<char-repertoire name="UNREGISTERED::SGML Open//Character Repertoire::ISO/IEC 10646">
+<features>table</features>
+<style>
+(element quote
+  (sosofo-append
+   (make character
+     char: #\left-double-quotation-mark)
+   (process-children)
+   (make character
+     char: #\right-double-quotation-mark)))
+
+(element emph
+  (make sequence
+    font-weight: 'bold))
+
+(define monospace-font-family "iso-monospace")
+
+(element code
+  (make sequence
+    font-family: monospace-font-family))
+
+(declare-initial-value writing-mode 'left-to-right)
+(declare-initial-value font-size 12pt)
+(declare-initial-value line-spacing 14pt)
+(declare-initial-value font-family "iso-serif")
+
+(define-unit mm .001m)
+(define-unit in 25.4mm)
+(define-unit pt (/ 1in 72))
+(define-unit pi (/ 1in 6))
+
+(define paragraph-indent 20pt)
+
+(element p
+  (make paragraph
+    first-line-start-indent: (if (first-sibling?)
+                                 0pt
+                                 paragraph-indent)))
+
+(define chapter-title-style
+  (style
+    font-size: 18pt
+    line-spacing: 24pt
+    quadding: 'center))
+
+(element (chapter title)
+  (sosofo-append
+    (make paragraph
+      use: chapter-title-style
+      span: 2
+      (literal "Chapter "
+               (format-number (child-number) "1")))
+    (make paragraph
+      use: chapter-title-style
+      span: 2)))
+
+(element (section title)
+  (make paragraph
+    quadding: 'start
+    (format-number-list (hierarchical-number '("CHAPTER" "SECTION"))
+                        "1"
+                        ".")
+    (literal ". ")
+    (process-children)))
+
+(define indent-step 60pt)
+
+(element ol
+  (make sequence
+    start-indent: (+ (inherited-start-indent)
+                     indent-step)))
+
+(element li
+  (make paragraph
+    first-line-start-indent: (- indent-step)
+    (make line-field
+      field-width: indent-step
+      field-align: 'start
+      (literal (format-number (child-number)
+                              (if (have-ancestor? '("OL" "OL"))
+                                  "a"
+                                  "1"))))
+    (process-children)))
+
+(element dl
+  (make table
+    table-width: (- (display-size)
+                    (inherited-start-indent)
+                    (inherited-end-indent))
+    (make sequence
+      start-indent: 0pt
+      end-indent: 0pt
+      (make table-column
+        column-number: 2
+        width: (table-unit 1))
+      (process-children))))
+
+(element dt
+  (make table-cell
+    starts-row?: #t))
+
+(element dd
+  (make table-cell
+    start-indent: 10pt
+    ends-row?: #t))
+
+(element caption
+  (make paragraph))
+
+(element artwork
+  (make external-graphic
+    display?: #t
+    scale: 'to-fit
+    notation-system-id: (notation-generated-system-id
+                         (entity-notation
+                          (attribute-string "CONTENT")))
+    system-id: (entity-generated-system-id
+                (attribute-string "CONTENT"))))
+
+(element xref
+  (with-mode xref
+    (process-node-list (element-with-id (attribute-string "REFID")))))
+
+</style>
+</style-specification>
+<style-specification id=softcopy use=common>
+<style>
+
+(mode xref
+  (element chapter
+    (make link
+      destination: (current-node-address)
+      color: blue-color
+      (process-first-descendant 'title)))
+  (element figure
+    (make multi-mode
+      multi-modes: '(#f popup)
+      principal-mode-simultaneous?: #t
+      (process-first-descendant 'caption)
+      (make vertical-scroll
+        label: 'popup
+        (with-mode #f
+          (process-node-list (current-node)))))))
+
+(define rgb
+  (color-space "ISO/IEC 10179:1995//Color Space Family::Device RGB"))
+
+(define blue-color (rgb 0 0 1))
+
+(element doc
+  (make vertical-scroll
+    left-margin: 20pt))
+
+(element (doc title)
+  (make paragraph
+    font-size: 28pt
+    line-spacing: 32pt
+    quadding: 'center))
+
+(element note
+  (make multi-mode
+    multi-modes: '(#f expand)
+    (make marginalia
+      marginalia-side: 'start
+      (make character
+	font-name: "UNREGISTERED::SGML Open//Font::Icons"
+        glyph-id: "UNREGISTERED::SGML Open//Glyph::Light bulb icon"))
+    (make vertical-scroll
+      label: 'expand
+      (make paragraph))))
+
+</style>
+</style-specification>
+<style-specification id=hardcopy use=common>
+<features>page multi-column query expression</features>
+<style>
+
+(define chapter-opening-sink 12pi)
+(define column-measure 20pi)
+(define column-separation 2pi)
+(define page-width 210mm)
+(define page-height 297mm)
+(define inner-margin 6pi)
+(define column-depth 54pi)
+(define top-margin 9pi)                 ; top of page to top of column
+(define header-margin 5pi)              ; top of page to top of header
+(define header-line-spacing 12pt)
+(define footer-line-spacing 12pt)
+(define folio-margin 5pi) ; from bottom of folio to bottom of page
+
+(define page-region-width
+  (+ column-measure column-separation column-measure))
+(define footer-height
+  (- page-height top-margin column-depth folio-margin))
+(define header-height
+  (- top-margin header-margin))
+(define normal-page-region-height
+  (- page-height header-margin folio-margin))
+
+(element (doc title)
+  (sosofo-append
+   (make page-sequence
+     initial-page-models: (list chapter-first-page)
+     (make paragraph
+       font-size: 28pt
+       line-spacing: 32pt
+       quadding: 'center))
+   (table-of-contents)))
+
+(declare-reference-value-type chapter-title)
+(declare-reference-value-type section-title)
+
+(element (chapter title)
+  (sosofo-append
+    (make paragraph
+      use: chapter-title-style
+      span: 2
+      (literal "Chapter "
+               (format-number (child-number) "1")))
+    (make paragraph
+      use: chapter-title-style
+      span: 2
+      chapter-title: (process-children))))
+
+(element (section title)
+  (make paragraph
+    quadding: 'start
+    section-title: (process-children)
+    (format-number-list (hierarchical-number '("CHAPTER" "SECTION"))
+                        "1"
+                        ".")
+    (literal ". ")
+    (process-children)))
+
+(define-page-model chapter-first-page
+  (region
+   (x-origin inner-margin)
+   (y-origin folio-margin)
+   (width page-region-width)
+   (height (- page-height top-margin chapter-opening-sink folio-margin))
+   (flow #f)
+   (footer
+    (contents-alignment 'end)
+    (height footer-height)
+    (generate (make-page-footer)))
+   (filling-direction 'top-to-bottom)))
+
+(define-page-model chapter-recto-page
+  (region
+   (x-origin inner-margin)
+   (y-origin folio-margin)
+   (width page-region-width)
+   (height normal-page-region-height)
+   (header
+    (generate (make paragraph
+                line-spacing: header-line-spacing
+                quadding: 'end
+                font-posture: 'italic
+                (asis-indirect-sosofo
+                 (find-reference-value 'section-title))))
+    (contents-alignment 'start)
+    (height header-height))
+   (footer
+    (contents-alignment 'end)
+    (height footer-height)
+    (generate (make-page-footer)))
+   (flow #f))
+  (filling-direction 'top-to-bottom))
+
+(define-page-model chapter-verso-page
+  (region
+   (x-origin (- page-width inner-margin page-region-width))
+   (y-origin folio-margin)
+   (width page-region-width)
+   (height normal-page-region-height)
+   (header
+    (generate (make paragraph
+                line-spacing: header-line-spacing
+                quadding: 'start
+                font-posture: 'italic
+                (asis-indirect-sosofo
+                 (find-reference-value 'chapter-title))))
+    (contents-alignment start)
+    (height header-height))
+   (footer
+    (contents-alignment 'end)
+    (height footer-height)
+    (generate (make-page-footer)))
+   (flow #f))
+  (filling-direction 'top-to-bottom))
+
+(define (find-reference-value type)
+  (first-area-reference-value type
+                              default: (last-preceding-area-reference-value
+                                        type)))
+
+(define (make-page-footer)
+  (make paragraph
+    quadding: 'center
+    line-spacing: footer-line-spacing
+    (number-indirect-sosofo (page-number))))
+
+(element chapter
+  (make page-sequence
+    force-first-page: 'front
+    initial-page-models: (list chapter-first-page)
+    repeat-page-models: (list chapter-verso-page
+                              chapter-recto-page)
+    blank-back-page-model: chapter-verso-page
+    (make column-set-sequence
+      column-set-model: double-columns)))
+
+(define-column-set-model double-columns
+  (column-subset
+   (column
+    (x-origin 0pt)
+    (width column-measure))
+   (column
+    (x-origin (+ column-measure column-separation))
+    (width column-measure))
+   (flow
+    (main body-text)
+    (figure top-float bottom-float)
+    (footnote footnote))))
+
+(element figure
+  (sync (make anchor
+          display?: #t)
+        (make sequence
+          keep: #t
+          label: 'figure
+          span: (if (equal? (attribute-string "SPAN")
+                            "SPAN")
+                    2
+                    1))
+        type: 'page
+        max: 1))
+
+(define footnote-font-size 8pt)
+(define superscript-shift-ems .4) ; ems to shift up superscript for footnote
+;; factor by which to multiply font size for superscripts
+(define superscript-size-factor .6)
+
+(element note
+  (let ((footnote-label
+         (literal (format-number (note-number) "1"))))
+    (sync (make sequence
+            font-size: (* (inherited-font-size)
+                          superscript-size-factor)
+            placement-offset: (- (* (inherited-font-size)
+                                    superscript-shift-ems))
+            footnote-label)
+          (make paragraph
+            label: 'footnote
+            font-size: footnote-font-size
+            footnote-label
+            (literal ". ")
+            (process-children))
+          type: 'page)))
+
+;; Footnotes are numbered per chapter.
+
+(define (note-number)
+  (list-ref (element-number-list '("CHAPTER" "NOTE"))
+            1))
+
+(mode xref
+  (element figure
+    (sosofo-append
+     (literal "Figure "
+              (format-number (element-number) "1"))
+     (literal ", page")
+     (number-indirect-sosofo (page-number))))
+  (element chapter
+    (sosofo-append
+     (literal "Chapter "
+              (format-number (child-number) "1")
+              ", ")
+     (make sequence
+       font-posture: 'italic
+       (process-first-descendant 'title))
+     (literal ", page")
+     (number-indirect-sosofo (page-number)))))
+
+(define (table-of-contents)
+  (make page-sequence
+    force-first-page: 'front
+    repeat-page-models: (list chapter-first-page)
+    (make sequence
+      (make paragraph
+        use: chapter-title-style
+        (literal "Table of Contents"))
+      (with-mode toc
+        (process-node-list (q-element 'title (tree-root (current-node))))))))
+
+(mode toc
+  (element title
+    (make paragraph
+      (literal (format-number (ancestor-child-number "CHAPTER") "1"))
+      (if (have-ancestor? "SECTION")
+          (literal "."
+                   (format-number (ancestor-child-number "SECTION") "1"))
+          (empty-sosofo))
+      (literal ". "))
+      (process-children)
+      (make leader (literal "."))
+      (number-indirect-sosofo (page-number))))
+
+</style>
+</style-specification>
+<style-specification id=hardcopy2 use=hardcopy>
+<style>
+(element xref
+  (map-constructor (let ((x (current-node)))
+                     (lambda()
+                       (process-xref x)))
+                   (element-with-id (attribute-string "REFID"))))
+
+(define (process-xref xref-node)
+  (if (match-element? 'chapter (current-node))
+      (with-mode xref
+        (process-node-list (current-node)))
+      (sosofo-append
+       (literal "Figure "
+                (format-number (element-number) "1"))
+       (general-indirect-sosofo page-ref-if-different
+                                (page-number first-area-of-node: (current-node))
+                                (page-number first-area-of-node: xref-node)))))
+
+(define (page-ref-if-different figure-page current-page)
+  (if (equal? figure-page current-page)
+      (empty-sosofo)
+      (literal ", page "
+               (format-number figure-page "1"))))
+
+</style>
+</style-specification>
+</dsssl-specification>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: dsssl
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/print.xsl	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,162 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.1"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:xt="http://www.jclark.com/xt"
+  extension-element-prefixes="xt" 
+  xmlns="http://www.w3.org/1999/XSL/Format">
+<xsl:import href="common.xsl"/>
+  <xsl:output method="xml"
+      indent="yes"/>
+
+<xsl:attribute-set name="verylarge-title-font">
+  <xsl:attribute name="font-size">18pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="large-title-font">
+  <xsl:attribute name="font-size">16pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="medium-title-font">
+  <xsl:attribute name="font-size">14pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="small-title-font">
+  <xsl:attribute name="font-size">12pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+</xsl:attribute-set>
+<xsl:attribute-set name="default-font">
+  <xsl:attribute name="font-size">10pt</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:template name="list-label">
+  <xsl:param name="labeltext"/>
+  <!-- <xsl:param name="labeltext">
+    <xsl:text>&#8226;</xsl:text>
+  </xsl:param> -->
+  <list-item-label end-indent="label-end()">
+    <block start-indent="5mm"><xsl:value-of select="$labeltext"/></block>
+  </list-item-label>
+</xsl:template>
+
+<!-- normal name processing -->
+<!-- should be move in common.xsl -->
+<xsl:template name="name">
+  <xsl:apply-templates select="firstname"/>
+  <xsl:if test="initials">
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates select="initials"/>
+  </xsl:if>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates select="surname"/>    
+</xsl:template>
+
+<xsl:template match="address">
+  <xsl:apply-templates mode="address" select="street"/>
+  <block>
+    <xsl:value-of select="city"/>
+    (<xsl:value-of select="state"/>),
+    <xsl:value-of select="postcode"/>
+  </block>
+  <xsl:apply-templates select="country" mode="address"/>    
+</xsl:template>
+<xsl:template match="*" mode="address">
+  <block><xsl:apply-templates/></block>
+</xsl:template>
+
+<xsl:template match="organism" mode="short">
+  <xsl:apply-templates select="name"/>
+</xsl:template>
+
+<!-- para default processing -->
+<xsl:template match="para">
+  <block text-align="justify"><xsl:apply-templates/></block>
+</xsl:template>
+
+<!-- formalpara processing -->
+<xsl:template match="formalpara/para">
+  <xsl:apply-templates/>
+</xsl:template>
+<xsl:template match="formalpara/title">
+  <inline font-weight="bold"><xsl:apply-templates/></inline>
+</xsl:template>
+<xsl:template match="formalpara">
+  <block><xsl:apply-templates/></block>
+</xsl:template>
+
+<!-- list processing -->
+<xsl:template match="list">
+  <list-block>
+    <xsl:apply-templates/>
+  </list-block>
+</xsl:template>
+<xsl:template match="shortlist">
+  <block margin-left="24pt"><xsl:apply-templates mode="short"/></block>
+</xsl:template>
+
+<xsl:template match="listitem">
+  <list-item>
+    <xsl:call-template name="list-label"/>
+    <list-item-body start-indent="body-start()">
+      <xsl:apply-templates/>
+    </list-item-body>
+  </list-item>
+</xsl:template>
+
+<xsl:template match="item">
+  <list-item>
+    <xsl:call-template name="list-label"/>
+    <list-item-body start-indent="body-start()">
+      <block><xsl:apply-templates/></block>
+    </list-item-body>
+  </list-item>
+</xsl:template>
+
+<!-- inline element -->
+<xsl:template match="emphasis">
+  <inline font-style="italic"><xsl:apply-templates/></inline>
+</xsl:template>
+<xsl:template match="term">
+  <inline text-decoration="underline"><xsl:apply-templates/></inline>
+</xsl:template>
+<xsl:template match="foreign">
+  <inline font-style="italic"><xsl:apply-templates/></inline>
+</xsl:template>
+<xsl:template match="replaceable">
+  <inline font-style="italic">
+    <xsl:text>[</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>]</xsl:text>
+  </inline>
+</xsl:template>
+<xsl:template match="literal">
+  <inline font-style="Courier"><xsl:apply-templates/></inline>
+</xsl:template>
+
+<xsl:template match="subscript">
+  <inline vertical-align="sub" font-size="60%"><xsl:apply-templates/></inline>
+</xsl:template>
+
+<xsl:template match="superscript">
+  <inline vertical-align="super" font-size="60%"><xsl:apply-templates/></inline>
+</xsl:template>
+
+</xsl:stylesheet>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: xml
+sgml-omittag:nil
+sgml-shorttag:nil
+sgml-namecase-general:nil
+sgml-general-insert-case:lower
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:nil
+sgml-parent-document:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+outline-regexp:"\<xsl:"
+End:
+-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/story_html.xsl	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,246 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.1"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:xt="http://www.jclark.com/xt"
+  extension-element-prefixes="xt" 
+  xmlns="http://www.w3.org/1999/xhtml">
+  <xsl:import href="html.xsl"/>
+  <xsl:output method="xml"
+        encoding="UTF-8"
+        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
+        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+        indent="yes"/>
+<!-- book processing -->
+<xsl:param name="stylesheet"><xsl:text>contes.css</xsl:text></xsl:param>
+<xsl:param name="pdf-filename"><xsl:text>contes.pdf</xsl:text></xsl:param>
+
+<xsl:template match="story" mode="section-toc">
+  <xsl:variable name="href">
+    <xsl:call-template name="get-id"/>
+  </xsl:variable>
+  <li>
+    <p><a href="{$href}.html"><xsl:value-of select="docinfo/title"/></a></p>
+    <xsl:if test="nda">
+      <xsl:apply-templates select="nda"/>
+    </xsl:if>
+  </li>
+</xsl:template>
+
+<xsl:template match="story" mode="get-story-link">
+  <xsl:call-template name="get-id"/>
+</xsl:template>
+<xsl:template match="story" mode="get-story-name">
+  <xsl:choose>
+    <xsl:when test="docinfo/title">
+      <xsl:value-of select="docinfo/title/text()"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="story/title/text()"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- navigation-bar of story and nda -->
+<xsl:template name="links-story-link">
+  <xsl:param name="prefix"></xsl:param>
+  <link>
+    <xsl:attribute name="href">
+      <xsl:apply-templates select="." mode="get-story-link"/>
+      <xsl:text>.html</xsl:text>
+    </xsl:attribute>
+    <xsl:attribute name="rel">
+      <xsl:value-of select="$prefix"/>
+    </xsl:attribute>
+    <xsl:attribute name="title">
+      <xsl:apply-templates select="." mode="get-story-name"/>
+    </xsl:attribute>
+  </link>
+</xsl:template>
+<xsl:template match="story" mode="links-prec">
+  <xsl:call-template name="links-story-link">
+    <xsl:with-param name="prefix">
+      <xsl:text>previous</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+<xsl:template match="story" mode="links-next">
+  <xsl:call-template name="links-story-link">
+    <xsl:with-param name="prefix">
+      <xsl:text>next</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+<xsl:template match="story" mode="links-story">
+  <xsl:choose>
+    <xsl:when test="preceding-sibling::story[1]">
+      <xsl:apply-templates 
+          select="preceding-sibling::story[1]"
+          mode="links-prec"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates 
+        select="../preceding-sibling::*[1]/story[last()]"
+          mode="links-prec"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="following-sibling::story[1]">
+      <xsl:apply-templates 
+          select="following-sibling::story[1]"
+          mode="links-next"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates 
+        select="../following-sibling::*[1]/story[1]"
+          mode="links-next"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:variable name="section-ref">
+    <xsl:call-template name="parent-id"/>
+  </xsl:variable>
+  <link href="index.html#{$section-ref}"
+     rel="up" title="Table des matières"/>
+</xsl:template>
+
+<!-- navigation-bar of story and nda -->
+<xsl:template name="navbar-story-link">
+  <xsl:param name="prefix"></xsl:param>
+  <a>
+    <xsl:attribute name="href">
+      <xsl:apply-templates select="." mode="get-story-link"/>
+      <xsl:text>.html</xsl:text>
+    </xsl:attribute>
+    <xsl:value-of select="$prefix"/>
+    <xsl:apply-templates select="." mode="get-story-name"/>
+  </a><br/>
+</xsl:template>
+<xsl:template match="story" mode="navbar-prec">
+  <xsl:call-template name="navbar-story-link">
+    <xsl:with-param name="prefix">
+      <xsl:text>Précédent: </xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+<xsl:template match="story" mode="navbar-next">
+  <xsl:call-template name="navbar-story-link">
+    <xsl:with-param name="prefix">
+      <xsl:text>Suivant: </xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+<xsl:template match="story" mode="navbar-story">
+  <xsl:choose>
+    <xsl:when test="preceding-sibling::story[1]">
+      <xsl:apply-templates 
+          select="preceding-sibling::story[1]"
+          mode="navbar-prec"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates 
+        select="../preceding-sibling::section[last()]"
+          mode="navbar-prec"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="following-sibling::story[1]">
+      <xsl:apply-templates 
+          select="following-sibling::story[1]"
+          mode="navbar-next"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates 
+        select="../following-sibling::*[1]"
+          mode="navbar-next"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:variable name="section-ref">
+    <xsl:call-template name="parent-id"/>
+  </xsl:variable>
+  <a href="{$section-ref}.html">Retour à la section</a><br/>
+</xsl:template>
+
+<!-- story section -->
+<xsl:template match="story">
+  <xsl:variable name="href">
+    <xsl:call-template name="get-id"/>
+  </xsl:variable>
+  <xt:document href="{$href}.html" method="xml"
+        encoding="UTF-8"
+        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
+        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+        indent="yes">
+    <html>
+      <head>
+        <link href="{$css-base-dir}contes.css" media="screen"
+          rel="stylesheet" type="text/css"/>
+        <xsl:apply-templates select="../docinfo" mode="heading"/>
+        <xsl:apply-templates select="." mode="links-story"/>
+      </head>
+      <body>
+        <xsl:apply-templates/>
+        <xsl:apply-templates select="../docinfo/date"/>
+        <hr/>
+        <address>
+          <xsl:apply-templates select="../docinfo/copyright"/>
+        </address>
+        <xsl:apply-templates mode="navbar-story" select="."/>
+      </body>
+    </html>
+  </xt:document>
+</xsl:template>
+
+<!-- strophe -->
+<xsl:template match="strophe">
+  <p><xsl:apply-templates/></p>
+</xsl:template>
+
+<!-- verse -->
+<xsl:template match="verse">
+  <xsl:apply-templates/><br/>
+</xsl:template>
+
+<!-- cue -->
+<xsl:template match="cue">
+  <p><xsl:apply-templates/></p>
+</xsl:template>
+<xsl:template match="caracter">
+  <strong class="caracter">
+    <xsl:apply-templates/>
+  </strong><xsl:text>: </xsl:text>
+</xsl:template>
+<xsl:template match="cue/para">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="dialog">
+  <blockquote class="dialog">
+    <xsl:apply-templates/>
+  </blockquote>
+</xsl:template
+>
+<xsl:template match="dialog/cite">
+  <p><xsl:text>« - </xsl:text>
+   <xsl:apply-templates/>
+  <xsl:text> »</xsl:text></p>
+</xsl:template>
+<xsl:template match="cite/desc">
+  <xsl:text> »</xsl:text>
+   <xsl:apply-templates/>
+  <xsl:text>« </xsl:text>
+</xsl:template>
+
+<xsl:template match="story/section/title">
+  <h2><xsl:apply-templates/></h2>
+</xsl:template>
+<xsl:template match="story/section/section/title">
+  <h3><xsl:apply-templates/></h3>
+</xsl:template>
+ 
+<xsl:template match="story/nda">
+  <div class="nda">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/story_print.xsl	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,186 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.1"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:xt="http://www.jclark.com/xt"
+  extension-element-prefixes="xt" 
+  xmlns="http://www.w3.org/1999/XSL/Format">
+
+<xsl:import href="common.xsl"/>
+<xsl:import href="print.xsl"/>
+<xsl:import href="masters_print.xsl"/>
+
+<xsl:output method="xml" indent="yes"/>
+
+<xsl:attribute-set name="standard-block">
+  <xsl:attribute name="text-indent">10mm</xsl:attribute>
+  <xsl:attribute name="space-before">10pt</xsl:attribute>
+  <xsl:attribute name="space-before.conditionnaly">discard</xsl:attribute>
+  <xsl:attribute name="text-align">justify</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:template name="static-content">
+  <xsl:param name="title"/>
+  <static-content flow-name="xsl-region-before">
+    <block border-after-style="solid">
+      <table width="100%" table-layout="fixed">
+            <table-column column-width="proportional-column-width(1)"
+                  number-columns-repeated="2"/>
+            <table-body>
+              <table-row>
+                <table-cell>
+                  <block text-align="start"><xsl:value-of select="$title"/></block>
+                </table-cell>
+              </table-row>
+            </table-body>
+          </table>
+        </block>
+      </static-content>
+      <static-content flow-name="xsl-region-after">
+        <block border-before-style="solid">
+          <table width="100%" table-layout="fixed">
+            <table-column column-width="proportional-column-width(1)"
+                  number-columns-repeated="2"/>
+            <table-body>
+              <table-row>
+                <table-cell>
+                  <block text-align="end">
+		    <xsl:text>page </xsl:text>
+                    <page-number/>
+                  </block>
+                </table-cell>
+              </table-row>
+            </table-body>
+          </table>
+        </block>
+      </static-content>
+</xsl:template>
+
+<!-- book -->
+<xsl:template match="book">
+  <root>
+    <xsl:call-template name="master-set"/>
+    <xsl:apply-templates select="section"/>
+  </root>
+</xsl:template>
+
+<xsl:template match="/book/section">
+  <page-sequence master-reference="book-sequence">
+    <xsl:call-template name="static-content">
+      <xsl:with-param name="title">
+        <xsl:apply-templates select="title"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <flow flow-name="xsl-region-body">
+      <xsl:apply-templates select="*[name()!='story']"/>
+    </flow>
+  </page-sequence>
+  <xsl:apply-templates select="story"/> 
+</xsl:template>
+
+<xsl:template match="story">
+  <page-sequence master-reference="book-sequence">
+    <xsl:call-template name="static-content">
+      <xsl:with-param name="title">
+        <xsl:apply-templates select="title"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <flow flow-name="xsl-region-body">
+      <xsl:apply-templates/>
+    </flow>
+  </page-sequence>
+</xsl:template>
+
+<xsl:template match="section/title">
+  <block xsl:use-attribute-sets="verylarge-title-font">
+    <xsl:attribute name="space-after">5pt</xsl:attribute>
+    <xsl:attribute name="space-before">10pt</xsl:attribute>
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<xsl:template match="story/title">
+  <block xsl:use-attribute-sets="large-title-font">
+    <xsl:attribute name="space-after">5pt</xsl:attribute>
+    <xsl:attribute name="space-before">10pt</xsl:attribute>
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<xsl:template match="story/section/title">
+  <block xsl:use-attribute-sets="medium-title-font">
+    <xsl:attribute name="space-after">5pt</xsl:attribute>
+    <xsl:attribute name="space-before">10pt</xsl:attribute>
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<xsl:template match="nda">
+  <block border="solid" padding="5pt" font-style="italic">
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<xsl:template match="para">
+  <block xsl:use-attribute-sets="standard-block">
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<!-- dialog template -->
+<xsl:template match="dialog">
+  <block xsl:use-attribute-sets="standard-block" start-indent="1cm">
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+<xsl:template match="cite">
+  <block xsl:use-attribute-sets="standard-block" font-style="italic">
+    <xsl:text>"</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>"</xsl:text>
+  </block>
+</xsl:template>
+
+<xsl:template match="citation">
+  <block xsl:use-attribute-sets="standard-block" font-style="italic"
+         font-size="75%" margin-left="4in">
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<xsl:template match="poem">
+  <block xsl:use-attribute-sets="standard-block" font-style="italic"
+     margin-left=".5in" margin-right=".5in">
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<xsl:template match="strophe">
+  <block xsl:use-attribute-sets="standard-block">
+    <xsl:apply-templates/>
+  </block>
+</xsl:template>
+
+<xsl:template match="verse">
+  <block><xsl:apply-templates/></block>
+</xsl:template>
+
+</xsl:stylesheet>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: xml
+sgml-omittag:nil
+sgml-shorttag:nil
+sgml-namecase-general:nil
+sgml-general-insert-case:lower
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:nil
+sgml-parent-document:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+outline-regexp:"<xsl:"
+End:
+-->