--- /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>