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