revegen ramp up. here we go!
This commit is contained in:
51
legacy-resumes/resume-1/xsl/misc/124-130.xsl
Normal file
51
legacy-resumes/resume-1/xsl/misc/124-130.xsl
Normal file
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
124-130.xsl
|
||||
Convert XML Resume from version 1.2.4 to version 1.3.0.
|
||||
|
||||
Copyright (c) 2002 Sean Kelly
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
|
||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$Id: 124-130.xsl,v 1.1 2002/05/26 03:45:51 bruckie Exp $
|
||||
-->
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<xsl:output method="xml" omit-xml-declaration="no" indent="yes" encoding="UTF-8"/>
|
||||
<xsl:preserve-space elements="*"/>
|
||||
|
||||
<!-- The "subject" area of an academic degree is now the "major". -->
|
||||
<xsl:template match="subject">
|
||||
<major><xsl:apply-templates/></major>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Everything else stays the same -->
|
||||
<xsl:template match="node()|@*">
|
||||
<xsl:copy>
|
||||
<xsl:apply-templates select="node()|@*"/>
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
88
legacy-resumes/resume-1/xsl/misc/13x-140.xsl
Normal file
88
legacy-resumes/resume-1/xsl/misc/13x-140.xsl
Normal file
@@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
13x-140.xsl
|
||||
Convert XML Resume from version 1.3.1, 1.3.2, or 1.3.3 to version 1.4.0.
|
||||
|
||||
Copyright (c) 2002 Sean Kelly, Bruce Christensen
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
|
||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$Id: 13x-140.xsl,v 1.1 2002/05/26 03:45:51 bruckie Exp $
|
||||
-->
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:r="http://xmlresume.sourceforge.net/resume/0.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<xsl:output method="xml" omit-xml-declaration="no" indent="yes"
|
||||
encoding="UTF-8"
|
||||
doctype-public="-//Sean Kelly//DTD Resume 1.4.0//EN"
|
||||
doctype-system="http://xmlresume.sourceforge.net/dtd/resume.dtd"
|
||||
/>
|
||||
<xsl:preserve-space elements="*"/>
|
||||
|
||||
<!-- <skillareas> is deprecated. <skillarea> may now appear directly in
|
||||
<resume>. -->
|
||||
<xsl:template match="r:skillareas">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- <skills> is deprecated. <skill> may now appear directly in <skillset> -->
|
||||
<xsl:template match="r:skills">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- <pubDate> is deprecated. It should be replaced with <date>. -->
|
||||
<xsl:template match="r:pubDate">
|
||||
<r:date><xsl:apply-templates/></r:date>
|
||||
</xsl:template>
|
||||
|
||||
<!-- <street2> is deprecated. It should be replaced with <street>. -->
|
||||
<xsl:template match="r:street2">
|
||||
<r:street><xsl:apply-templates/></r:street>
|
||||
</xsl:template>
|
||||
|
||||
<!-- <company> is deprecated. Display its child nodes. -->
|
||||
<xsl:template match="r:break">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- <break> is deprecated. It should be removed. -->
|
||||
<xsl:template match="r:break">
|
||||
<!-- Suppress -->
|
||||
</xsl:template>
|
||||
|
||||
<!-- <docpath> and related tags are deprecated. They should be removed. -->
|
||||
<xsl:template match="r:docpath | r:head | r:node | r:tail | r:label | r:uri">
|
||||
<!-- Suppress -->
|
||||
</xsl:template>
|
||||
|
||||
<!-- Everything else stays the same -->
|
||||
<xsl:template match="node()|@*">
|
||||
<xsl:copy>
|
||||
<xsl:apply-templates select="node()|@*"/>
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
276
legacy-resumes/resume-1/xsl/misc/default.xsl
Normal file
276
legacy-resumes/resume-1/xsl/misc/default.xsl
Normal file
@@ -0,0 +1,276 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- -->
|
||||
<!-- Default XSL stylesheet for use by com.lotus.xsl.server#DefaultApplyXSL. -->
|
||||
<!-- -->
|
||||
<!-- This stylesheet mimics the default behavior of IE when XML data is displayed -->
|
||||
<!-- without a corresponding XSL stylesheet. This stylesheet uses JavaScript -->
|
||||
<!-- to accommodate node expansion and contraction. -->
|
||||
<!-- -->
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
||||
xmlns="http://www.w3.org/TR/REC-html40">
|
||||
|
||||
<xsl:output method="html" indent="no"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="/">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<STYLE type="text/css">
|
||||
BODY {font:x-small 'Verdana'; margin-right:1.5em}
|
||||
<!-- container for expanding/collapsing content -->
|
||||
.c {cursor:hand}
|
||||
<!-- button - contains +/-/nbsp -->
|
||||
.b {color:red; font-family:'Courier New'; font-weight:bold; text-decoration:none}
|
||||
<!-- element container -->
|
||||
.e {margin-left:1em; text-indent:-1em; margin-right:1em}
|
||||
<!-- comment or cdata -->
|
||||
.k {margin-left:1em; text-indent:-1em; margin-right:1em}
|
||||
<!-- tag -->
|
||||
.t {color:#990000}
|
||||
<!-- tag in xsl namespace -->
|
||||
.xt {color:#990099}
|
||||
<!-- attribute in xml or xmlns namespace -->
|
||||
.ns {color:red}
|
||||
<!-- markup characters -->
|
||||
.m {color:blue}
|
||||
<!-- text node -->
|
||||
.tx {font-weight:bold}
|
||||
<!-- multi-line (block) cdata -->
|
||||
.db {text-indent:0px; margin-left:1em; margin-top:0px; margin-bottom:0px;
|
||||
padding-left:.3em; border-left:1px solid #CCCCCC; font:small Courier}
|
||||
<!-- single-line (inline) cdata -->
|
||||
.di {font:small Courier}
|
||||
<!-- DOCTYPE declaration -->
|
||||
.d {color:blue}
|
||||
<!-- pi -->
|
||||
.pi {color:blue}
|
||||
<!-- multi-line (block) comment -->
|
||||
.cb {text-indent:0px; margin-left:1em; margin-top:0px; margin-bottom:0px;
|
||||
padding-left:.3em; font:small Courier; color:#888888}
|
||||
<!-- single-line (inline) comment -->
|
||||
.ci {font:small Courier; color:#888888}
|
||||
PRE {margin:0px; display:inline}
|
||||
</STYLE>
|
||||
|
||||
<SCRIPT type="text/javascript"><xsl:comment><![CDATA[
|
||||
// Detect and switch the display of CDATA and comments from an inline view
|
||||
// to a block view if the comment or CDATA is multi-line.
|
||||
function f(e)
|
||||
{
|
||||
// if this element is an inline comment, and contains more than a single
|
||||
// line, turn it into a block comment.
|
||||
if (e.className == "ci") {
|
||||
if (e.children(0).innerText.indexOf("\n") > 0)
|
||||
fix(e, "cb");
|
||||
}
|
||||
|
||||
// if this element is an inline cdata, and contains more than a single
|
||||
// line, turn it into a block cdata.
|
||||
if (e.className == "di") {
|
||||
if (e.children(0).innerText.indexOf("\n") > 0)
|
||||
fix(e, "db");
|
||||
}
|
||||
|
||||
// remove the id since we only used it for cleanup
|
||||
e.id = "";
|
||||
}
|
||||
|
||||
// Fix up the element as a "block" display and enable expand/collapse on it
|
||||
function fix(e, cl)
|
||||
{
|
||||
// change the class name and display value
|
||||
e.className = cl;
|
||||
e.style.display = "block";
|
||||
|
||||
// mark the comment or cdata display as a expandable container
|
||||
j = e.parentElement.children(0);
|
||||
j.className = "c";
|
||||
|
||||
// find the +/- symbol and make it visible - the dummy link enables tabbing
|
||||
k = j.children(0);
|
||||
k.style.visibility = "visible";
|
||||
k.href = "#";
|
||||
}
|
||||
|
||||
// Change the +/- symbol and hide the children. This function works on "element"
|
||||
// displays
|
||||
function ch(e)
|
||||
{
|
||||
// find the +/- symbol
|
||||
mark = e.children(0).children(0);
|
||||
|
||||
// if it is already collapsed, expand it by showing the children
|
||||
if (mark.innerText == "+")
|
||||
{
|
||||
mark.innerText = "-";
|
||||
for (var i = 1; i < e.children.length; i++)
|
||||
e.children(i).style.display = "block";
|
||||
}
|
||||
|
||||
// if it is expanded, collapse it by hiding the children
|
||||
else if (mark.innerText == "-")
|
||||
{
|
||||
mark.innerText = "+";
|
||||
for (var i = 1; i < e.children.length; i++)
|
||||
e.children(i).style.display="none";
|
||||
}
|
||||
}
|
||||
|
||||
// Change the +/- symbol and hide the children. This function work on "comment"
|
||||
// and "cdata" displays
|
||||
function ch2(e)
|
||||
{
|
||||
// find the +/- symbol, and the "PRE" element that contains the content
|
||||
mark = e.children(0).children(0);
|
||||
contents = e.children(1);
|
||||
|
||||
// if it is already collapsed, expand it by showing the children
|
||||
if (mark.innerText == "+")
|
||||
{
|
||||
mark.innerText = "-";
|
||||
// restore the correct "block"/"inline" display type to the PRE
|
||||
if (contents.className == "db" || contents.className == "cb")
|
||||
contents.style.display = "block";
|
||||
else contents.style.display = "inline";
|
||||
}
|
||||
|
||||
// if it is expanded, collapse it by hiding the children
|
||||
else if (mark.innerText == "-")
|
||||
{
|
||||
mark.innerText = "+";
|
||||
contents.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
// Handle a mouse click
|
||||
function cl()
|
||||
{
|
||||
e = window.event.srcElement;
|
||||
|
||||
// make sure we are handling clicks upon expandable container elements
|
||||
if (e.className != "c")
|
||||
{
|
||||
e = e.parentElement;
|
||||
if (e.className != "c")
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
e = e.parentElement;
|
||||
|
||||
// call the correct funtion to change the collapse/expand state and display
|
||||
if (e.className == "e")
|
||||
ch(e);
|
||||
if (e.className == "k")
|
||||
ch2(e);
|
||||
}
|
||||
|
||||
// Erase bogus link info from the status window
|
||||
function h()
|
||||
{
|
||||
window.status=" ";
|
||||
}
|
||||
|
||||
// Set the onclick handler
|
||||
document.onclick = cl;
|
||||
|
||||
]]>//</xsl:comment></SCRIPT>
|
||||
</HEAD>
|
||||
|
||||
<BODY class="st"><xsl:apply-templates/></BODY>
|
||||
|
||||
</HTML>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Templates for each node type follows. The output of each template has a similar structure
|
||||
to enable script to walk the result tree easily for handling user interaction. -->
|
||||
|
||||
<!-- Template for pis not handled elsewhere -->
|
||||
<xsl:template match="processing-instruction()">
|
||||
<DIV class="e">
|
||||
<SPAN class="b"> </SPAN>
|
||||
<SPAN class="m"><?</SPAN><SPAN class="pi"><xsl:value-of select="name(.)"/> <xsl:value-of select="."/></SPAN><SPAN class="m">?></SPAN>
|
||||
</DIV>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Template for the XML declaration. Need a separate template because the pseudo-attributes
|
||||
are actually exposed as attributes instead of just element content, as in other pis
|
||||
<xsl:template match="processing-instruction('xml')">
|
||||
<DIV class="e">
|
||||
<SPAN class="b"> </SPAN>
|
||||
<SPAN class="m"><?</SPAN><SPAN class="pi">xml <xsl:for-each select="@*"><xsl:value-of select="name(.)"/>="<xsl:value-of select="."/>" </xsl:for-each></SPAN><SPAN class="m">?></SPAN>
|
||||
</DIV>
|
||||
</xsl:template>
|
||||
-->
|
||||
|
||||
<!-- Template for attributes not handled elsewhere -->
|
||||
<xsl:template match="@*"><SPAN class="t"><xsl:text> </xsl:text><xsl:value-of select="name(.)"/></SPAN><SPAN class="m">="</SPAN><B><xsl:value-of select="."/></B><SPAN class="m">"</SPAN></xsl:template>
|
||||
|
||||
<!-- Template for attributes in the xmlns or xml namespace
|
||||
<xsl:template match="@xmlns:*|@xmlns|@xml:*"><SPAN class="ns"> <xsl:value-of select="name(.)"/></SPAN><SPAN class="m">="</SPAN><B class="ns"><xsl:value-of select="."/></B><SPAN class="m">"</SPAN></xsl:template>
|
||||
-->
|
||||
|
||||
<!-- Template for text nodes -->
|
||||
<xsl:template match="text()">
|
||||
<xsl:choose><xsl:when test="name(.) = '#cdata-section'"><xsl:call-template name="cdata"/></xsl:when>
|
||||
<xsl:otherwise><DIV class="e">
|
||||
<SPAN class="b"> </SPAN>
|
||||
<SPAN class="tx"><xsl:value-of select="."/></SPAN>
|
||||
</DIV></xsl:otherwise></xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Template for comment nodes -->
|
||||
<xsl:template match="comment()">
|
||||
<DIV class="k">
|
||||
<SPAN><A class="b" onclick="return false" onfocus="h()" STYLE="visibility:hidden">-</A> <SPAN class="m"><!--</SPAN></SPAN>
|
||||
<SPAN id="clean" class="ci"><PRE><xsl:value-of select="."/></PRE></SPAN>
|
||||
<SPAN class="b"> </SPAN> <SPAN class="m">--></SPAN>
|
||||
<SCRIPT>f(clean);</SCRIPT></DIV>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Template for cdata nodes -->
|
||||
<xsl:template name="cdata">
|
||||
<DIV class="k">
|
||||
<SPAN><A class="b" onclick="return false" onfocus="h()" STYLE="visibility:hidden">-</A> <SPAN class="m"><![CDATA[</SPAN></SPAN>
|
||||
<SPAN id="clean" class="di"><PRE><xsl:value-of select="."/></PRE></SPAN>
|
||||
<SPAN class="b"> </SPAN> <SPAN class="m">]]></SPAN>
|
||||
<SCRIPT>f(clean);</SCRIPT></DIV>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Template for elements not handled elsewhere (leaf nodes) -->
|
||||
<xsl:template match="*">
|
||||
<DIV class="e"><DIV STYLE="margin-left:1em;text-indent:-2em">
|
||||
<SPAN class="b"> </SPAN>
|
||||
<SPAN class="m"><</SPAN><SPAN class="t"><xsl:value-of select="name(.)"/></SPAN> <xsl:apply-templates select="@*"/><SPAN class="m"> /></SPAN>
|
||||
</DIV></DIV>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Template for elements with comment, pi and/or cdata children
|
||||
<xsl:template match="*[comment() or processing-instruction() or cdata()]">
|
||||
<DIV class="e">
|
||||
<DIV class="c"><A href="#" onclick="return false" onfocus="h()" class="b">-</A> <SPAN class="m"><</SPAN><SPAN><xsl:attribute name="class"><xsl:if test="xsl:*">x</xsl:if>t</xsl:attribute><xsl:value-of select="name(.)"/></SPAN><xsl:apply-templates select="@*"/> <SPAN class="m">></SPAN></DIV>
|
||||
<DIV><xsl:apply-templates/>
|
||||
<DIV><SPAN class="b"> </SPAN> <SPAN class="m"></</SPAN><SPAN><xsl:attribute name="class"><xsl:if test="xsl:*">x</xsl:if>t</xsl:attribute><xsl:value-of select="name(.)"/></SPAN><SPAN class="m">></SPAN></DIV>
|
||||
</DIV></DIV>
|
||||
</xsl:template> -->
|
||||
|
||||
<!-- Template for elements with only text children -->
|
||||
<xsl:template match="*[text() and not(comment() or processing-instruction() or *)]">
|
||||
<DIV class="e"><DIV STYLE="margin-left:1em;text-indent:-2em">
|
||||
<SPAN class="b"> </SPAN> <SPAN class="m"><</SPAN><SPAN class="t"><xsl:value-of select="name(.)"/></SPAN><xsl:apply-templates select="@*"/>
|
||||
<SPAN class="m">></SPAN><SPAN class="tx"><xsl:value-of select="."/></SPAN><SPAN class="m"></</SPAN><SPAN class="t"><xsl:value-of select="name(.)"/></SPAN><SPAN class="m">></SPAN>
|
||||
</DIV></DIV>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Template for elements with element children -->
|
||||
<xsl:template match="*[*]">
|
||||
<DIV class="e">
|
||||
<DIV class="c" STYLE="margin-left:1em;text-indent:-2em"><A href="#" onclick="return false" onfocus="h()" class="b">-</A> <SPAN class="m"><</SPAN><SPAN class="t"><xsl:value-of select="name(.)"/></SPAN><xsl:apply-templates select="@*"/><SPAN class="m">></SPAN></DIV>
|
||||
<DIV><xsl:apply-templates/>
|
||||
<DIV><SPAN class="b"> </SPAN><SPAN class="m"></</SPAN><SPAN class="t"><xsl:value-of select="name(.)"/></SPAN><SPAN class="m">></SPAN></DIV>
|
||||
</DIV></DIV>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
690
legacy-resumes/resume-1/xsl/misc/html_contemporary.xsl
Normal file
690
legacy-resumes/resume-1/xsl/misc/html_contemporary.xsl
Normal file
@@ -0,0 +1,690 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
|
||||
NOTE: Usage of this file is or should be
|
||||
deprecated. We suggest using CSS instead.
|
||||
- brandondoyle 10/29/02
|
||||
|
||||
html.xsl
|
||||
Transform XML resume into HTML, styled similar to Microsoft Word's Contemporary
|
||||
resume template.
|
||||
|
||||
Copyright (c) 2000-2002 Sean Kelly
|
||||
All rights reserved.
|
||||
[modifications to mimic standard contemporary resume by Rob Kelley]
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
|
||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
-->
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
|
||||
<xsl:output method="html" omit-xml-declaration="yes" indent="yes" encoding="UTF-8" doctype-public="-//W3C//DTD HTML 4.0//EN"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
<xsl:include href="./common/params.xsl"/>
|
||||
<xsl:include href="./common/address.xsl"/>
|
||||
<xsl:include href="./common/pub.xsl"/>
|
||||
<xsl:template match="/">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<title>
|
||||
<xsl:apply-templates select="resume/header/name/firstname"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:apply-templates select="resume/header/name/surname"/>
|
||||
<xsl:text> - </xsl:text>
|
||||
<xsl:value-of select="$resume.word"/>
|
||||
</title>
|
||||
<!--override stored resume.css with resume_contemporary.css *RK* -->
|
||||
<link rel="stylesheet" type="text/css" href="./css/resume_contemporary.css"/>
|
||||
<!--<link rel="stylesheet" type="text/css">
|
||||
<xsl:attribute name="href"><xsl:value-of select="$css.href"/></xsl:attribute>
|
||||
</link>-->
|
||||
|
||||
<xsl:apply-templates select="resume/keywords" mode="header"/>
|
||||
</head>
|
||||
<body class="resume">
|
||||
<table >
|
||||
<tr>
|
||||
<td>
|
||||
<xsl:apply-templates select="resume"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
<!-- Suppress the keywords in the main body of the document -->
|
||||
<xsl:template match="keywords"/>
|
||||
<!-- But put them into the HTML header. -->
|
||||
<xsl:template match="keywords" mode="header">
|
||||
<meta name="keywords">
|
||||
<xsl:attribute name="content"><xsl:apply-templates select="keyword"/></xsl:attribute>
|
||||
</meta>
|
||||
</xsl:template>
|
||||
<xsl:template match="keyword">
|
||||
<xsl:value-of select="."/>
|
||||
<xsl:if test="position() != last()">
|
||||
<xsl:text>, </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<!-- Output your name and the word "Resume". -->
|
||||
<xsl:template name="standard.header">
|
||||
<!--Apply "contemporary" styling to contact info *RK*-->
|
||||
<div>
|
||||
<table class="address">
|
||||
<tr>
|
||||
<td class="address1cell" valign="top">
|
||||
<xsl:apply-templates select="address"/>
|
||||
<!--take out contact URL because it isn't displaying nicely. *RK*
|
||||
<p class="Address1">
|
||||
<xsl:if test="contact/url">
|
||||
<xsl:value-of select="$url.word"/>:
|
||||
<a>
|
||||
<xsl:attribute name="href">
|
||||
<xsl:value-of select="contact/url"/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="contact/url"/>
|
||||
</a>
|
||||
</xsl:if>
|
||||
</p> -->
|
||||
</td>
|
||||
<td class="address2cell">
|
||||
<xsl:if test="contact/email">
|
||||
<a>
|
||||
<xsl:attribute name="href"><xsl:text>mailto:</xsl:text><xsl:value-of select="contact/email"/></xsl:attribute>
|
||||
<xsl:value-of select="contact/email"/>
|
||||
</a>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="contact/phone">
|
||||
<xsl:value-of select="contact/phone"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<!--Apply "contemporary" styling to class name *RK*-->
|
||||
<div class="name" valign="top" >
|
||||
<xsl:apply-templates select="name/firstname"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:apply-templates select="name/surname"/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<!-- Alternate formatting for the page header. -->
|
||||
<!-- Display the name and contact information in a single centered block. -->
|
||||
<!-- Since the 'align' attribute is deprecated, we rely on a CSS -->
|
||||
<!-- stylesheet to center the headerBlock. -->
|
||||
<xsl:template name="centered.header">
|
||||
<div class="headerBlock">
|
||||
<h1 class="nameHeading">
|
||||
<xsl:apply-templates select="name"/>
|
||||
</h1>
|
||||
<xsl:apply-templates select="address"/>
|
||||
<br/>
|
||||
<xsl:if test="contact/phone">
|
||||
<xsl:value-of select="$phone.word"/>: <xsl:value-of select="contact/phone"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="contact/email">
|
||||
<xsl:value-of select="$email.word"/>: <a>
|
||||
<xsl:attribute name="href"><xsl:text>mailto:</xsl:text><xsl:value-of select="contact/email"/></xsl:attribute>
|
||||
<xsl:value-of select="contact/email"/>
|
||||
</a>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="contact/url">
|
||||
<xsl:value-of select="$url.word"/>: <a>
|
||||
<xsl:attribute name="href"><xsl:value-of select="contact/url"/></xsl:attribute>
|
||||
<xsl:value-of select="contact/url"/>
|
||||
</a>
|
||||
</xsl:if>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<xsl:template match="header">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$header.format = 'centered'">
|
||||
<xsl:call-template name="centered.header"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:call-template name="standard.header"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<xsl:template match="address" mode="standard">
|
||||
<!-- templates defined in address.xsl for setting standard fields -->
|
||||
<xsl:variable name="AdminDivision">
|
||||
<xsl:call-template name="AdminDivision"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="CityDivision">
|
||||
<xsl:call-template name="CityDivision"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="PostCode">
|
||||
<xsl:call-template name="PostCode"/>
|
||||
</xsl:variable>
|
||||
<xsl:value-of select="street"/>
|
||||
<br/>
|
||||
<xsl:if test="street2">
|
||||
<xsl:value-of select="street2"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length($CityDivision) > 0">
|
||||
<xsl:value-of select="$CityDivision"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="city"/>
|
||||
<xsl:if test="string-length($AdminDivision) > 0">
|
||||
<xsl:text>, </xsl:text>
|
||||
<xsl:value-of select="$AdminDivision"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length($PostCode) > 0">
|
||||
<xsl:text/>
|
||||
<xsl:value-of select="$PostCode"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="country">
|
||||
<br/>
|
||||
<xsl:value-of select="country"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<xsl:template match="address" mode="european">
|
||||
<!-- templates defined in address.xsl for setting standard fields -->
|
||||
<xsl:variable name="AdminDivision">
|
||||
<xsl:call-template name="AdminDivision"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="CityDivision">
|
||||
<xsl:call-template name="CityDivision"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="PostCode">
|
||||
<xsl:call-template name="PostCode"/>
|
||||
</xsl:variable>
|
||||
<xsl:value-of select="street"/>
|
||||
<br/>
|
||||
<xsl:if test="street2">
|
||||
<xsl:value-of select="street2"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length($CityDivision) > 0">
|
||||
<xsl:value-of select="$CityDivision"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length($PostCode) > 0">
|
||||
<xsl:value-of select="$PostCode"/>
|
||||
<xsl:text/>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="city"/>
|
||||
<xsl:if test="string-length($AdminDivision) > 0">
|
||||
<br/>
|
||||
<xsl:value-of select="$AdminDivision"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="country">
|
||||
<br/>
|
||||
<xsl:value-of select="country"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<xsl:template match="address" mode="italian">
|
||||
<xsl:value-of select="street"/>
|
||||
<br/>
|
||||
<xsl:if test="street2">
|
||||
<xsl:value-of select="street2"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="postalCode">
|
||||
<xsl:value-of select="postalCode"/>
|
||||
<xsl:text/>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="city"/>
|
||||
<xsl:if test="province">
|
||||
<xsl:text> (</xsl:text>
|
||||
<xsl:value-of select="province"/>
|
||||
<xsl:text>)</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="country">
|
||||
<br/>
|
||||
<xsl:value-of select="country"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<!-- Preserve line breaks within a free format address -->
|
||||
<xsl:template match="address//text()">
|
||||
<xsl:call-template name="PreserveLinebreaks">
|
||||
<xsl:with-param name="Text" select="."/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template name="PreserveLinebreaks">
|
||||
<xsl:param name="Text"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="contains($Text, '
')">
|
||||
<xsl:value-of select="substring-before($Text, '
')"/>
|
||||
<br/>
|
||||
<xsl:call-template name="PreserveLinebreaks">
|
||||
<xsl:with-param name="Text" select="substring-after($Text, '
')"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$Text"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<!--Give objective "contemporary" style *RK* -->
|
||||
<xsl:template match="objective">
|
||||
<table class="MsoNormalTable">
|
||||
<tr>
|
||||
<td class="SectionDescriptor">
|
||||
<p class="SectionTitle">
|
||||
<!--take out dynamic section title in order to show shorter (hardcoded) name. *RK*
|
||||
<xsl:value-of select="$objective.word"/>
|
||||
-->
|
||||
<xsl:text>Objective</xsl:text>
|
||||
</p>
|
||||
</td>
|
||||
<td class="SectionContent">
|
||||
<p class="Summary">
|
||||
<xsl:apply-templates/>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</xsl:template>
|
||||
<!-- Give History "contemporary" style *RK* -->
|
||||
<xsl:template match="history">
|
||||
<table class="MsoNormalTable">
|
||||
<tr>
|
||||
<td class="SectionDescriptor">
|
||||
<p class="SectionTitle">
|
||||
<!--take out dynamic section title in order to show shorter (hardcoded) name. *RK*
|
||||
<xsl:value-of select="$history.word"/>
|
||||
-->
|
||||
<xsl:text>Experience</xsl:text>
|
||||
</p>
|
||||
</td>
|
||||
<td class="SectionContent">
|
||||
<p class="Summary">
|
||||
<xsl:apply-templates select="job"/>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</xsl:template>
|
||||
<!-- Academics, with "contemporary" style -->
|
||||
<xsl:template match="academics">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="SectionDescriptor" >
|
||||
<p class="SectionTitle">
|
||||
<!--take out dynamic section title in order to show shorter (hardcoded) name. *RK*
|
||||
<xsl:value-of select="$academics.word"/>
|
||||
-->
|
||||
<xsl:text>Education</xsl:text>
|
||||
</p>
|
||||
</td>
|
||||
<td class="SectionContent">
|
||||
<p class="Summary">
|
||||
<xsl:apply-templates select="degrees"/>
|
||||
<xsl:apply-templates select="note"/>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</xsl:template>
|
||||
<xsl:template match="degrees">
|
||||
<p>
|
||||
<xsl:apply-templates select="degree"/>
|
||||
</p>
|
||||
<xsl:apply-templates select="note"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="note">
|
||||
<div class="note">
|
||||
<xsl:apply-templates/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<xsl:template match="degree">
|
||||
<div class="date">
|
||||
<xsl:if test="date">
|
||||
<xsl:apply-templates select="date/month"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:apply-templates select="date/year"/>
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:if>
|
||||
</div>
|
||||
<div class="institution">
|
||||
<xsl:value-of select="institution"/>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="skill" style="font-size:10.0pt">
|
||||
§</div>
|
||||
<div class="achievement">
|
||||
<acronym class="level">
|
||||
<xsl:value-of select="level"/>
|
||||
</acronym>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="$in.word"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="major"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:if test="subjects/subject">
|
||||
<xsl:apply-templates select="subjects"/>
|
||||
</xsl:if>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="skill" style="font-size:10.0pt">
|
||||
§</div>
|
||||
<div class='achievement'>
|
||||
<xsl:if test="annotation">
|
||||
<xsl:apply-templates select="annotation"/>
|
||||
</xsl:if>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<!-- Format the subjects -->
|
||||
<xsl:template match="subjects">
|
||||
<table>
|
||||
<xsl:for-each select="subject">
|
||||
<tr>
|
||||
<td />
|
||||
<td>
|
||||
<xsl:value-of select="title"/>
|
||||
</td>
|
||||
<td width="10"/>
|
||||
<td>
|
||||
<xsl:value-of select="result"/>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
</xsl:template>
|
||||
<!-- Format each job -->
|
||||
<xsl:template match="job">
|
||||
<xsl:apply-templates select="period"/>
|
||||
<div class="employer">
|
||||
<xsl:value-of select="employer"/>
|
||||
</div>
|
||||
<xsl:if test="city">
|
||||
<div class="citystate">
|
||||
<xsl:apply-templates select="citystate"/>
|
||||
</div>
|
||||
|
||||
</xsl:if>
|
||||
<div class="jobtitle">
|
||||
<xsl:value-of select="jobtitle"/>
|
||||
</div>
|
||||
|
||||
<xsl:apply-templates select="description"/>
|
||||
<xsl:if test="projects/project">
|
||||
<xsl:value-of select="$projects.word"/>
|
||||
<xsl:apply-templates select="projects"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="achievements/achievement">
|
||||
<xsl:apply-templates select="achievements"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<!-- Format the projects section as a bullet list -->
|
||||
<xsl:template match="projects">
|
||||
<ul>
|
||||
<xsl:for-each select="project">
|
||||
<li class="achievement">
|
||||
<xsl:apply-templates/>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</xsl:template>
|
||||
<xsl:template match="period">
|
||||
<div class="date">
|
||||
<xsl:apply-templates select="from"/> - <xsl:apply-templates select="to"/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<xsl:template match="date">
|
||||
<xsl:value-of select="month"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="year"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="present">
|
||||
<xsl:value-of select="$present.word"/>
|
||||
</xsl:template>
|
||||
<!-- Format the achievements with "contemporary" styling *RK* -->
|
||||
<xsl:template match="achievements">
|
||||
<xsl:for-each select="achievement">
|
||||
<div class="skill">
|
||||
§</div>
|
||||
<div class="achievement">
|
||||
<xsl:apply-templates/>
|
||||
</div>
|
||||
<br/>
|
||||
</xsl:for-each>
|
||||
<p/>
|
||||
</xsl:template>
|
||||
<!-- Format the open-ended skills -->
|
||||
<xsl:template match="skillareas">
|
||||
<xsl:apply-templates select="skillarea"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="skillarea">
|
||||
<h2 class="skillareaHeading">
|
||||
<xsl:value-of select="title"/>
|
||||
</h2>
|
||||
<xsl:apply-templates select="skillset"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="skillset">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$skills.format = 'comma'">
|
||||
<p>
|
||||
<xsl:apply-templates select="title" mode="comma"/>
|
||||
<xsl:apply-templates select="skills" mode="comma"/>
|
||||
</p>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates select="title" mode="bullet"/>
|
||||
<xsl:apply-templates select="skills" mode="bullet"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<xsl:template match="skillset/title" mode="comma">
|
||||
<div class="skillsetTitle">
|
||||
<xsl:value-of select="."/>
|
||||
<xsl:text>: </xsl:text>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<xsl:template match="skillset/title" mode="bullet">
|
||||
<h3 class="skillsetTitle">
|
||||
<xsl:value-of select="."/>
|
||||
</h3>
|
||||
</xsl:template>
|
||||
<!-- format as a comma-separated list -->
|
||||
<xsl:template match="skills" mode="comma">
|
||||
<div class="skills">
|
||||
<xsl:for-each select="skill[position() != last()]">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>, </xsl:text>
|
||||
</xsl:for-each>
|
||||
<xsl:apply-templates select="skill[position() = last()]"/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<!-- format as a bullet list -->
|
||||
<xsl:template match="skills" mode="bullet">
|
||||
<ul class="skills">
|
||||
<xsl:for-each select="skill">
|
||||
<li class="skill">
|
||||
<xsl:apply-templates/>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</xsl:template>
|
||||
<!-- Format publications -->
|
||||
<xsl:template match="pubs">
|
||||
<h2 class="pubsHeading">
|
||||
<xsl:value-of select="$publications.word"/>
|
||||
</h2>
|
||||
<ul class="pubs">
|
||||
<xsl:apply-templates select="pub"/>
|
||||
</ul>
|
||||
</xsl:template>
|
||||
<!-- Format a single publication -->
|
||||
<xsl:template match="pub">
|
||||
<li class="pub">
|
||||
<xsl:call-template name="formatPub"/>
|
||||
</li>
|
||||
</xsl:template>
|
||||
<!-- Format the misc info -->
|
||||
<xsl:template match="misc">
|
||||
<h2 class="miscHeading">
|
||||
<xsl:value-of select="$miscellany.word"/>
|
||||
</h2>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
<!-- Format the legalese -->
|
||||
<xsl:template match="copyright">
|
||||
<address class="copyright">
|
||||
<p>
|
||||
<xsl:value-of select="$copyright.word"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="year"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="$by.word"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:if test="name">
|
||||
<xsl:apply-templates select="name"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(name)">
|
||||
<xsl:apply-templates select="/resume/header/name"/>
|
||||
</xsl:if>
|
||||
<xsl:text>. This document uses </xsl:text>
|
||||
<a>
|
||||
<xsl:attribute name="href">http://xmlresume.sourceforge.net</xsl:attribute>
|
||||
XMLResume</a>
|
||||
<xsl:value-of select="legalnotice"/>
|
||||
</p>
|
||||
</address>
|
||||
</xsl:template>
|
||||
<!-- Put a space between first and last name -->
|
||||
<xsl:template match="name">
|
||||
<xsl:value-of select="firstname"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:if test="middlenames">
|
||||
<xsl:value-of select="middlenames"/>
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="surname"/>
|
||||
<xsl:if test="suffix">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="suffix"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<!-- para -> p -->
|
||||
<xsl:template match="para">
|
||||
<p class="para">
|
||||
<xsl:apply-templates/>
|
||||
</p>
|
||||
</xsl:template>
|
||||
<!-- emphasis -> strong -->
|
||||
<xsl:template match="emphasis">
|
||||
<strong class="emphasis">
|
||||
<xsl:value-of select="."/>
|
||||
</strong>
|
||||
</xsl:template>
|
||||
<!-- url -> monospace along with href -->
|
||||
<xsl:template match="url">
|
||||
<a class="urlA">
|
||||
<xsl:attribute name="href"><xsl:value-of select="."/></xsl:attribute>
|
||||
<xsl:value-of select="."/>
|
||||
</a>
|
||||
</xsl:template>
|
||||
<!-- citation -> cite -->
|
||||
<xsl:template match="citation">
|
||||
<cite class="citation">
|
||||
<xsl:value-of select="."/>
|
||||
</cite>
|
||||
</xsl:template>
|
||||
<!-- Format the referees -->
|
||||
<xsl:template match="referees">
|
||||
<h2 class="refereesHeading">
|
||||
<xsl:value-of select="$referees.word"/>
|
||||
</h2>
|
||||
<xsl:apply-templates select="referee"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="referee">
|
||||
<h3 class="refereeHeading">
|
||||
<xsl:apply-templates select="name"/>
|
||||
</h3>
|
||||
<p>
|
||||
<xsl:apply-templates select="address"/>
|
||||
<br/>
|
||||
<!-- Don't print the label if the field value is empty *SE* -->
|
||||
<xsl:if test="contact/phone">
|
||||
<xsl:value-of select="$phone.word"/>: <xsl:value-of select="contact/phone"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="contact/email">
|
||||
<xsl:value-of select="$email.word"/>: <a>
|
||||
<xsl:attribute name="href"><xsl:text>mailto:</xsl:text><xsl:value-of select="contact/email"/></xsl:attribute>
|
||||
<xsl:value-of select="contact/email"/>
|
||||
</a>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="contact/url">
|
||||
<xsl:value-of select="$url.word"/>: <a>
|
||||
<xsl:attribute name="href"><xsl:value-of select="contact/url"/></xsl:attribute>
|
||||
<xsl:value-of select="contact/url"/>
|
||||
</a>
|
||||
</xsl:if>
|
||||
</p>
|
||||
</xsl:template>
|
||||
<!-- Wrap a description up in a div -->
|
||||
<xsl:template match="description">
|
||||
<div class="description">
|
||||
<xsl:apply-templates/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<!-- Format the memberships with "contemporary" styling *RK* -->
|
||||
<xsl:template match="memberships">
|
||||
<table class="MsoNormalTable">
|
||||
<tr>
|
||||
<td class="SectionDescriptor" >
|
||||
<p class="SectionTitle" style="margin-top: 4.0pt">
|
||||
<xsl:apply-templates select="title"/>
|
||||
</p>
|
||||
</td>
|
||||
<td class="SectionContent">
|
||||
<p class="Summary" >
|
||||
<xsl:apply-templates select="membership"/>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</xsl:template>
|
||||
<!-- A single membership. -->
|
||||
<xsl:template match="membership">
|
||||
<xsl:if test="title">
|
||||
<div class="membershipTitle">
|
||||
<xsl:value-of select="title"/>
|
||||
</div>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="organization">
|
||||
<div class="organization">
|
||||
<xsl:value-of select="organization"/>
|
||||
</div>
|
||||
</xsl:if>
|
||||
<xsl:if test="period">
|
||||
<xsl:apply-templates select="period"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="description"/>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
688
legacy-resumes/resume-1/xsl/misc/html_professional.xsl
Normal file
688
legacy-resumes/resume-1/xsl/misc/html_professional.xsl
Normal file
@@ -0,0 +1,688 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
|
||||
NOTE: Usage of this file is or should be
|
||||
deprecated. We suggest using CSS instead.
|
||||
- brandondoyle 10/29/02
|
||||
|
||||
|
||||
html_professional.xsl
|
||||
Transform XML resume into HTML, styled similar to Microsoft Word's Professional
|
||||
resume template.
|
||||
|
||||
Copyright (c) 2000-2002 Sean Kelly
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
|
||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
-->
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
|
||||
<xsl:output method="html" omit-xml-declaration="yes" indent="yes" encoding="UTF-8" doctype-public="-//W3C//DTD HTML 4.0//EN"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
<xsl:include href="./common/params.xsl"/>
|
||||
<xsl:include href="./common/address.xsl"/>
|
||||
<xsl:include href="./common/pub.xsl"/>
|
||||
<xsl:template match="/">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<title>
|
||||
<xsl:apply-templates select="resume/header/name/firstname"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:apply-templates select="resume/header/name/surname"/>
|
||||
<xsl:text> - </xsl:text>
|
||||
<xsl:value-of select="$resume.word"/>
|
||||
</title>
|
||||
<!--override stored resume.css with resume_contemporary.css *RK* -->
|
||||
<link rel="stylesheet" type="text/css" href="./css/resume_professional.css"/>
|
||||
<!--<link rel="stylesheet" type="text/css">
|
||||
<xsl:attribute name="href"><xsl:value-of select="$css.href"/></xsl:attribute>
|
||||
</link>-->
|
||||
|
||||
<xsl:apply-templates select="resume/keywords" mode="header"/>
|
||||
</head>
|
||||
<body class="resume">
|
||||
<table >
|
||||
<tr>
|
||||
<td>
|
||||
<xsl:apply-templates select="resume"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
<!-- Suppress the keywords in the main body of the document -->
|
||||
<xsl:template match="keywords"/>
|
||||
<!-- But put them into the HTML header. -->
|
||||
<xsl:template match="keywords" mode="header">
|
||||
<meta name="keywords">
|
||||
<xsl:attribute name="content"><xsl:apply-templates select="keyword"/></xsl:attribute>
|
||||
</meta>
|
||||
</xsl:template>
|
||||
<xsl:template match="keyword">
|
||||
<xsl:value-of select="."/>
|
||||
<xsl:if test="position() != last()">
|
||||
<xsl:text>, </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<!-- Output your name and the word "Resume". -->
|
||||
<xsl:template name="standard.header">
|
||||
<!--add "professional" formatting for contact info *RK* -->
|
||||
<div>
|
||||
<table class="address">
|
||||
<tr style="mso-yfti-irow:0;mso-yfti-lastrow:yes">
|
||||
<td class="address1cell" valign="top">
|
||||
<xsl:apply-templates select="address"/>
|
||||
<!-- take out contact URL because it isn't displaying nicely. *RK*
|
||||
<p class="Address1">
|
||||
<xsl:if test="contact/url">
|
||||
<xsl:value-of select="$url.word"/>:
|
||||
<a>
|
||||
<xsl:attribute name="href">
|
||||
<xsl:value-of select="contact/url"/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="contact/url"/>
|
||||
</a>
|
||||
</xsl:if>
|
||||
</p> -->
|
||||
</td>
|
||||
<td style="address2cell">
|
||||
<xsl:if test="contact/email">
|
||||
<a>
|
||||
<xsl:attribute name="href"><xsl:text>mailto:</xsl:text><xsl:value-of select="contact/email"/></xsl:attribute>
|
||||
<xsl:value-of select="contact/email"/>
|
||||
</a>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="contact/phone">
|
||||
<xsl:value-of select="contact/phone"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<!--add "professional" style for name *RK*-->
|
||||
<div style="border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:
|
||||
solid windowtext .75pt;padding:0in 0pt 0pt 0in">
|
||||
<div class="name" valign="top" style="padding-left: 4.0pt; padding-right: 5.4pt; padding-top: 5.4pt; padding-bottom: 0in">
|
||||
<xsl:apply-templates select="name/firstname"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:apply-templates select="name/surname"/>
|
||||
</div>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<!-- Alternate formatting for the page header. -->
|
||||
<!-- Display the name and contact information in a single centered block. -->
|
||||
<!-- Since the 'align' attribute is deprecated, we rely on a CSS -->
|
||||
<!-- stylesheet to center the headerBlock. -->
|
||||
<xsl:template name="centered.header">
|
||||
<div class="headerBlock">
|
||||
<h1 class="nameHeading">
|
||||
<xsl:apply-templates select="name"/>
|
||||
</h1>
|
||||
<xsl:apply-templates select="address"/>
|
||||
<br/>
|
||||
<xsl:if test="contact/phone">
|
||||
<xsl:value-of select="$phone.word"/>: <xsl:value-of select="contact/phone"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="contact/email">
|
||||
<xsl:value-of select="$email.word"/>: <a>
|
||||
<xsl:attribute name="href"><xsl:text>mailto:</xsl:text><xsl:value-of select="contact/email"/></xsl:attribute>
|
||||
<xsl:value-of select="contact/email"/>
|
||||
</a>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="contact/url">
|
||||
<xsl:value-of select="$url.word"/>: <a>
|
||||
<xsl:attribute name="href"><xsl:value-of select="contact/url"/></xsl:attribute>
|
||||
<xsl:value-of select="contact/url"/>
|
||||
</a>
|
||||
</xsl:if>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<xsl:template match="header">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$header.format = 'centered'">
|
||||
<xsl:call-template name="centered.header"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:call-template name="standard.header"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<xsl:template match="address" mode="standard">
|
||||
<!-- templates defined in address.xsl for setting standard fields -->
|
||||
<xsl:variable name="AdminDivision">
|
||||
<xsl:call-template name="AdminDivision"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="CityDivision">
|
||||
<xsl:call-template name="CityDivision"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="PostCode">
|
||||
<xsl:call-template name="PostCode"/>
|
||||
</xsl:variable>
|
||||
<xsl:value-of select="street"/>
|
||||
<br/>
|
||||
<xsl:if test="street2">
|
||||
<xsl:value-of select="street2"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length($CityDivision) > 0">
|
||||
<xsl:value-of select="$CityDivision"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="city"/>
|
||||
<xsl:if test="string-length($AdminDivision) > 0">
|
||||
<xsl:text>, </xsl:text>
|
||||
<xsl:value-of select="$AdminDivision"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length($PostCode) > 0">
|
||||
<xsl:text/>
|
||||
<xsl:value-of select="$PostCode"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="country">
|
||||
<br/>
|
||||
<xsl:value-of select="country"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<xsl:template match="address" mode="european">
|
||||
<!-- templates defined in address.xsl for setting standard fields -->
|
||||
<xsl:variable name="AdminDivision">
|
||||
<xsl:call-template name="AdminDivision"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="CityDivision">
|
||||
<xsl:call-template name="CityDivision"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="PostCode">
|
||||
<xsl:call-template name="PostCode"/>
|
||||
</xsl:variable>
|
||||
<xsl:value-of select="street"/>
|
||||
<br/>
|
||||
<xsl:if test="street2">
|
||||
<xsl:value-of select="street2"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length($CityDivision) > 0">
|
||||
<xsl:value-of select="$CityDivision"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length($PostCode) > 0">
|
||||
<xsl:value-of select="$PostCode"/>
|
||||
<xsl:text/>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="city"/>
|
||||
<xsl:if test="string-length($AdminDivision) > 0">
|
||||
<br/>
|
||||
<xsl:value-of select="$AdminDivision"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="country">
|
||||
<br/>
|
||||
<xsl:value-of select="country"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<xsl:template match="address" mode="italian">
|
||||
<xsl:value-of select="street"/>
|
||||
<br/>
|
||||
<xsl:if test="street2">
|
||||
<xsl:value-of select="street2"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="postalCode">
|
||||
<xsl:value-of select="postalCode"/>
|
||||
<xsl:text/>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="city"/>
|
||||
<xsl:if test="province">
|
||||
<xsl:text> (</xsl:text>
|
||||
<xsl:value-of select="province"/>
|
||||
<xsl:text>)</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="country">
|
||||
<br/>
|
||||
<xsl:value-of select="country"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<!-- Preserve line breaks within a free format address -->
|
||||
<xsl:template match="address//text()">
|
||||
<xsl:call-template name="PreserveLinebreaks">
|
||||
<xsl:with-param name="Text" select="."/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template name="PreserveLinebreaks">
|
||||
<xsl:param name="Text"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="contains($Text, '
')">
|
||||
<xsl:value-of select="substring-before($Text, '
')"/>
|
||||
<br/>
|
||||
<xsl:call-template name="PreserveLinebreaks">
|
||||
<xsl:with-param name="Text" select="substring-after($Text, '
')"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$Text"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<!-- Objective, with "professional" formatting. -->
|
||||
<xsl:template match="objective">
|
||||
<table class="MsoNormalTable">
|
||||
<tr>
|
||||
<td class="SectionDescriptor">
|
||||
<p class="SectionTitle">
|
||||
<xsl:value-of select="$objective.word"/>
|
||||
</p>
|
||||
</td>
|
||||
<td class="SectionContent">
|
||||
<p class="Summary">
|
||||
<xsl:apply-templates/>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</xsl:template>
|
||||
<!-- History, with "professional" formatting. -->
|
||||
<xsl:template match="history">
|
||||
<table class="MsoNormalTable">
|
||||
<tr>
|
||||
<td class="SectionDescriptor">
|
||||
<p class="SectionTitle">
|
||||
<xsl:value-of select="$history.word"/>
|
||||
</p>
|
||||
</td>
|
||||
<td class="SectionContent">
|
||||
<p class="Summary">
|
||||
<xsl:apply-templates select="job"/>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</xsl:template>
|
||||
<!-- Academics, with "professional" formatting. -->
|
||||
<xsl:template match="academics">
|
||||
<table class="MsoNormalTable" >
|
||||
<tr>
|
||||
<td class="SectionDescriptor" >
|
||||
<p class="SectionTitle">
|
||||
<xsl:value-of select="$academics.word"/>
|
||||
</p>
|
||||
</td>
|
||||
<td class="SectionContent">
|
||||
<p class="Summary">
|
||||
<xsl:apply-templates select="degrees"/>
|
||||
<xsl:apply-templates select="note"/>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</xsl:template>
|
||||
<xsl:template match="degrees">
|
||||
<p class="degrees">
|
||||
<xsl:apply-templates select="degree"/>
|
||||
</p>
|
||||
<xsl:apply-templates select="note"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="note">
|
||||
<div class="note">
|
||||
<xsl:apply-templates/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<xsl:template match="degree">
|
||||
<div class="degree">
|
||||
<xsl:if test="date">
|
||||
<xsl:apply-templates select="date/month"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:apply-templates select="date/year"/>
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:if>
|
||||
<div class="institution">
|
||||
<xsl:value-of select="institution"/>
|
||||
<xsl:text> </xsl:text>
|
||||
</div>
|
||||
<br/>
|
||||
<span class="skill" style="font-family:Wingdings; mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings">
|
||||
§
|
||||
<span style='font:8.0pt "Arial"'>
|
||||
<acronym class="level">
|
||||
<xsl:value-of select="level"/>
|
||||
</acronym>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="$in.word"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="major"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:if test="subjects/subject">
|
||||
<xsl:apply-templates select="subjects"/>
|
||||
</xsl:if>
|
||||
</span>
|
||||
</span>
|
||||
<br/>
|
||||
<span class="skill" style="font-family:Wingdings; mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings">
|
||||
§
|
||||
<span style='font:8.0pt "Arial"'>
|
||||
<xsl:if test="annotation">
|
||||
<xsl:apply-templates select="annotation"/>
|
||||
</xsl:if>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<!-- Format the subjects -->
|
||||
<xsl:template match="subjects">
|
||||
<table>
|
||||
<xsl:for-each select="subject">
|
||||
<tr>
|
||||
<td />
|
||||
<td>
|
||||
<xsl:value-of select="title"/>
|
||||
</td>
|
||||
<td width="10"/>
|
||||
<td>
|
||||
<xsl:value-of select="result"/>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
</xsl:template>
|
||||
<!-- Format each job -->
|
||||
<xsl:template match="job">
|
||||
<xsl:apply-templates select="period"/>
|
||||
<div class="employer">
|
||||
<xsl:value-of select="employer"/>
|
||||
</div>
|
||||
<xsl:if test="city">
|
||||
<div class="citystate">
|
||||
<xsl:apply-templates select="citystate"/>
|
||||
</div>
|
||||
</xsl:if>
|
||||
<div class="jobtitle">
|
||||
<xsl:value-of select="jobtitle"/>
|
||||
</div>
|
||||
|
||||
<xsl:apply-templates select="description"/>
|
||||
<xsl:if test="projects/project">
|
||||
<xsl:value-of select="$projects.word"/>
|
||||
<xsl:apply-templates select="projects"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="achievements/achievement">
|
||||
<xsl:apply-templates select="achievements"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<!-- Format the projects section as a bullet list -->
|
||||
<xsl:template match="projects">
|
||||
<ul>
|
||||
<xsl:for-each select="project">
|
||||
<li class="skill" style="font-family:Wingdings; mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings">
|
||||
<xsl:apply-templates/>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</xsl:template>
|
||||
<xsl:template match="period">
|
||||
<div class="date">
|
||||
<xsl:apply-templates select="from"/> - <xsl:apply-templates select="to"/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<xsl:template match="date">
|
||||
<xsl:value-of select="month"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="year"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="present">
|
||||
<xsl:value-of select="$present.word"/>
|
||||
</xsl:template>
|
||||
<!-- Format the achievements with "professional" style -->
|
||||
<xsl:template match="achievements">
|
||||
<xsl:for-each select="achievement">
|
||||
<span class="skill" style="font-family:Wingdings; mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings">
|
||||
§
|
||||
<span style='font:8.0pt "Arial"'>
|
||||
<xsl:apply-templates/>
|
||||
<br/>
|
||||
</span>
|
||||
</span>
|
||||
</xsl:for-each>
|
||||
<p/>
|
||||
</xsl:template>
|
||||
<!-- Format the open-ended skills -->
|
||||
<xsl:template match="skillareas">
|
||||
<xsl:apply-templates select="skillarea"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="skillarea">
|
||||
<h2 class="skillareaHeading">
|
||||
<xsl:value-of select="title"/>
|
||||
</h2>
|
||||
<xsl:apply-templates select="skillset"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="skillset">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$skills.format = 'comma'">
|
||||
<p>
|
||||
<xsl:apply-templates select="title" mode="comma"/>
|
||||
<xsl:apply-templates select="skills" mode="comma"/>
|
||||
</p>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates select="title" mode="bullet"/>
|
||||
<xsl:apply-templates select="skills" mode="bullet"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<xsl:template match="skillset/title" mode="comma">
|
||||
<span class="skillsetTitle">
|
||||
<xsl:value-of select="."/>
|
||||
<xsl:text>: </xsl:text>
|
||||
</span>
|
||||
</xsl:template>
|
||||
<xsl:template match="skillset/title" mode="bullet">
|
||||
<h3 class="skillsetTitle">
|
||||
<xsl:value-of select="."/>
|
||||
</h3>
|
||||
</xsl:template>
|
||||
<!-- format as a comma-separated list -->
|
||||
<xsl:template match="skills" mode="comma">
|
||||
<span class="skills">
|
||||
<xsl:for-each select="skill[position() != last()]">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>, </xsl:text>
|
||||
</xsl:for-each>
|
||||
<xsl:apply-templates select="skill[position() = last()]"/>
|
||||
</span>
|
||||
</xsl:template>
|
||||
<!-- format as a bullet list -->
|
||||
<xsl:template match="skills" mode="bullet">
|
||||
<ul class="skills">
|
||||
<xsl:for-each select="skill">
|
||||
<li class="skill" style="font-family:Wingdings; mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings">
|
||||
<xsl:apply-templates/>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</xsl:template>
|
||||
<!-- Format publications -->
|
||||
<xsl:template match="pubs">
|
||||
<h2 class="pubsHeading">
|
||||
<xsl:value-of select="$publications.word"/>
|
||||
</h2>
|
||||
<ul class="pubs">
|
||||
<xsl:apply-templates select="pub"/>
|
||||
</ul>
|
||||
</xsl:template>
|
||||
<!-- Format a single publication -->
|
||||
<xsl:template match="pub">
|
||||
<li class="pub">
|
||||
<xsl:call-template name="formatPub"/>
|
||||
</li>
|
||||
</xsl:template>
|
||||
<!-- Format the misc info -->
|
||||
<xsl:template match="misc">
|
||||
<h2 class="miscHeading">
|
||||
<xsl:value-of select="$miscellany.word"/>
|
||||
</h2>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
<!-- Format the legalese -->
|
||||
<xsl:template match="copyright">
|
||||
<address class="copyright">
|
||||
<p>
|
||||
<xsl:value-of select="$copyright.word"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="year"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="$by.word"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:if test="name">
|
||||
<xsl:apply-templates select="name"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(name)">
|
||||
<xsl:apply-templates select="/resume/header/name"/>
|
||||
</xsl:if>
|
||||
<xsl:text>. This document uses </xsl:text>
|
||||
<a>
|
||||
<xsl:attribute name="href">http://xmlresume.sourceforge.net</xsl:attribute>
|
||||
XMLResume</a>
|
||||
<xsl:value-of select="legalnotice"/>
|
||||
</p>
|
||||
</address>
|
||||
</xsl:template>
|
||||
<!-- Put a space between first and last name -->
|
||||
<xsl:template match="name">
|
||||
<xsl:value-of select="firstname"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:if test="middlenames">
|
||||
<xsl:value-of select="middlenames"/>
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="surname"/>
|
||||
<xsl:if test="suffix">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="suffix"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<!-- para -> p -->
|
||||
<xsl:template match="para">
|
||||
<p class="para">
|
||||
<xsl:apply-templates/>
|
||||
</p>
|
||||
</xsl:template>
|
||||
<!-- emphasis -> strong -->
|
||||
<xsl:template match="emphasis">
|
||||
<strong class="emphasis">
|
||||
<xsl:value-of select="."/>
|
||||
</strong>
|
||||
</xsl:template>
|
||||
<!-- url -> monospace along with href -->
|
||||
<xsl:template match="url">
|
||||
<a class="urlA">
|
||||
<xsl:attribute name="href"><xsl:value-of select="."/></xsl:attribute>
|
||||
<xsl:value-of select="."/>
|
||||
</a>
|
||||
</xsl:template>
|
||||
<!-- citation -> cite -->
|
||||
<xsl:template match="citation">
|
||||
<cite class="citation">
|
||||
<xsl:value-of select="."/>
|
||||
</cite>
|
||||
</xsl:template>
|
||||
<!-- Format the referees -->
|
||||
<xsl:template match="referees">
|
||||
<h2 class="refereesHeading">
|
||||
<xsl:value-of select="$referees.word"/>
|
||||
</h2>
|
||||
<xsl:apply-templates select="referee"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="referee">
|
||||
<h3 class="refereeHeading">
|
||||
<xsl:apply-templates select="name"/>
|
||||
</h3>
|
||||
<p>
|
||||
<xsl:apply-templates select="address"/>
|
||||
<br/>
|
||||
<!-- Don't print the label if the field value is empty *SE* -->
|
||||
<xsl:if test="contact/phone">
|
||||
<xsl:value-of select="$phone.word"/>: <xsl:value-of select="contact/phone"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="contact/email">
|
||||
<xsl:value-of select="$email.word"/>: <a>
|
||||
<xsl:attribute name="href"><xsl:text>mailto:</xsl:text><xsl:value-of select="contact/email"/></xsl:attribute>
|
||||
<xsl:value-of select="contact/email"/>
|
||||
</a>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="contact/url">
|
||||
<xsl:value-of select="$url.word"/>: <a>
|
||||
<xsl:attribute name="href"><xsl:value-of select="contact/url"/></xsl:attribute>
|
||||
<xsl:value-of select="contact/url"/>
|
||||
</a>
|
||||
</xsl:if>
|
||||
</p>
|
||||
</xsl:template>
|
||||
<!-- Wrap a description up in a div -->
|
||||
<xsl:template match="description">
|
||||
<div class="description">
|
||||
<xsl:apply-templates/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<!-- Memberships, with "professional" formatting. -->
|
||||
<xsl:template match="memberships">
|
||||
<table class="MsoNormalTable">
|
||||
<tr>
|
||||
<td class="SectionDescriptor" >
|
||||
<p class="SectionTitle" style="margin-top: 0in">
|
||||
<xsl:apply-templates select="title"/>
|
||||
</p>
|
||||
</td>
|
||||
<td class="SectionContent">
|
||||
<p class="Summary">
|
||||
<xsl:apply-templates select="membership"/>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</xsl:template>
|
||||
<!-- A single membership. -->
|
||||
<xsl:template match="membership">
|
||||
<xsl:if test="title">
|
||||
<span class="membershipTitle">
|
||||
<xsl:value-of select="title"/>
|
||||
</span>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="organization">
|
||||
<span class="organization">
|
||||
<xsl:value-of select="organization"/>
|
||||
</span>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:if test="period">
|
||||
<xsl:apply-templates select="period"/>
|
||||
<br/>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="description"/>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
130
legacy-resumes/resume-1/xsl/misc/normalize-whitespace.xsl
Normal file
130
legacy-resumes/resume-1/xsl/misc/normalize-whitespace.xsl
Normal file
@@ -0,0 +1,130 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
normalize-whitespace.xsl
|
||||
Normalize whitespace in an XML resume. (First pass of two-pass processing.)
|
||||
|
||||
Copyright (c) 2000-2002 Bruce Christensen
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
|
||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
$Id: normalize-whitespace.xsl,v 1.1 2002/06/24 21:50:14 bruckie Exp $
|
||||
-->
|
||||
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<xsl:import href="../lib/string.xsl"/>
|
||||
|
||||
<xsl:output method="xml" omit-xml-declaration="no" indent="no"
|
||||
encoding="UTF-8"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<!-- Copy everything by default -->
|
||||
<xsl:template match="node()|@*">
|
||||
<xsl:message>Element <xsl:value-of select="local-name()"/></xsl:message>
|
||||
<xsl:copy>
|
||||
<xsl:apply-templates select="node()|@*"/>
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Do special processing for text nodes (normalize whitespace) -->
|
||||
<xsl:template match="//text()">
|
||||
|
||||
<xsl:message>Text: '<xsl:value-of select="."/>'</xsl:message>
|
||||
|
||||
<!-- Output leading space (if necessary) -->
|
||||
<xsl:if test="preceding-sibling::node()[self::* or self::text()]">
|
||||
|
||||
<xsl:variable name="LeadingWS">
|
||||
<xsl:call-template name="LeadingSpace">
|
||||
<xsl:with-param name="Text">
|
||||
<xsl:value-of select="."/>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:if test="string-length($LeadingWS)">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:message> Preceding sibling: '<xsl:value-of select="preceding-sibling::node()[self::* or self::text()][1]"/>'</xsl:message>
|
||||
<xsl:message> Output leading space</xsl:message>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
|
||||
<!-- Output content -->
|
||||
<xsl:value-of select="normalize-space(.)"/>
|
||||
<xsl:message> Content: '<xsl:value-of select="normalize-space(.)"/>'</xsl:message>
|
||||
|
||||
<!-- Output trailing space (if necessary) -->
|
||||
<xsl:if test="following-sibling::node()[self::* or self::text()][1]">
|
||||
|
||||
<xsl:variable name="TrailingWS">
|
||||
<xsl:call-template name="TrailingSpace">
|
||||
<xsl:with-param name="Text">
|
||||
<xsl:value-of select="."/>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:if test="string-length($TrailingWS)">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:message> Following sibling: '<xsl:value-of select="following-sibling::node()[self::* or self::text()][1]"/>'</xsl:message>
|
||||
<xsl:message> Output trailing space</xsl:message>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:message> Preceding siblings:</xsl:message>
|
||||
<xsl:for-each select="preceding-sibling::node()[self::* or self::text()]">
|
||||
<xsl:message> #<xsl:value-of select="position()"/>/<xsl:value-of select="last()"/>: '<xsl:value-of select="."/>'</xsl:message>
|
||||
<xsl:choose>
|
||||
<xsl:when test="self::text()">
|
||||
<xsl:message> (Text)</xsl:message>
|
||||
</xsl:when>
|
||||
<xsl:when test="self::*">
|
||||
<xsl:message> (Element)</xsl:message>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:message> (Unknown node type)</xsl:message>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:for-each>
|
||||
|
||||
<xsl:message> Following siblings:</xsl:message>
|
||||
<xsl:for-each select="following-sibling::node()[self::* or self::text()]">
|
||||
<xsl:message> #<xsl:value-of select="position()"/>/<xsl:value-of select="last()"/>: '<xsl:value-of select="."/>'</xsl:message>
|
||||
<xsl:choose>
|
||||
<xsl:when test="self::text()">
|
||||
<xsl:message> (Text)</xsl:message>
|
||||
</xsl:when>
|
||||
<xsl:when test="self::*">
|
||||
<xsl:message> (Element)</xsl:message>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:message> (Unknown node type)</xsl:message>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:for-each>
|
||||
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
Reference in New Issue
Block a user