Compare commits
11 Commits
f67f0ed36b
...
998b3d131a
Author | SHA1 | Date |
---|---|---|
|
998b3d131a | |
|
d7e894c444 | |
|
dca66513e5 | |
|
cd1b4b28f8 | |
|
19f3d1725a | |
|
46a7c8e8e2 | |
|
5e50549d2e | |
|
081dca1390 | |
|
3e60ec4798 | |
|
e95a3a05c3 | |
|
28bd7f840a |
|
@ -1 +1,2 @@
|
|||
dist
|
||||
transcripts
|
||||
|
|
|
@ -100,14 +100,26 @@ dl {
|
|||
}
|
||||
|
||||
dt {
|
||||
margin-block-start: 0.375em;
|
||||
margin-top: 0.375em;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-inline-start: 2.5em;
|
||||
margin-left: 2.5em;
|
||||
margin-inline-start: 1.5em;
|
||||
margin-left: 1.5em;
|
||||
}
|
||||
|
||||
#education hgroup h3 {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#education hgroup p {
|
||||
float: end;
|
||||
float: right;
|
||||
}
|
||||
|
||||
|
||||
#skills h3 {
|
||||
margin-block-start: 0.25em;
|
||||
margin-top: 0.25em;
|
||||
|
|
|
@ -2,6 +2,10 @@
|
|||
size: 8.5in 11in;
|
||||
margin: 0.5in;
|
||||
padding: 0;
|
||||
|
||||
@bottom-center {
|
||||
content: counter(page);
|
||||
}
|
||||
}
|
||||
|
||||
body { margin: 0; }
|
||||
|
|
118
cv.xml
118
cv.xml
|
@ -8,7 +8,7 @@
|
|||
<duration>
|
||||
<start datetime="2021-06">June 2021</start>
|
||||
</duration>
|
||||
<description>
|
||||
<description type="full">
|
||||
<p>
|
||||
As a teaching assistant, I am responsible for
|
||||
fielding student questions before, during, and after
|
||||
|
@ -22,13 +22,18 @@
|
|||
libraries.
|
||||
</p>
|
||||
</description>
|
||||
<description type="brief">
|
||||
<p>
|
||||
I have worked with hundreds of students from various backgrounds over thousands of hours, explaining complex computer science concepts in a digestible ad approachable manner.
|
||||
</p>
|
||||
</description>
|
||||
</role>
|
||||
<role>
|
||||
<title>Senior Tutor</title>
|
||||
<duration>
|
||||
<start datetime="2021-10">October 2021</start>
|
||||
</duration>
|
||||
<description>
|
||||
<description type="full">
|
||||
<p>
|
||||
I was recognised as a sought-after, highly effective
|
||||
tutor to recieve this title. I worked around the
|
||||
|
@ -38,6 +43,11 @@
|
|||
through the lens of their existing knowledge.
|
||||
</p>
|
||||
</description>
|
||||
<description type="brief">
|
||||
<p>
|
||||
I was recognised as a sought-after, highly effective tutor to receive this title; I provided individualised assistance to learners, helping them form useful working habits and empowering them to follow their curiosity when programming.
|
||||
</p>
|
||||
</description>
|
||||
</role>
|
||||
</company>
|
||||
<company>
|
||||
|
@ -47,7 +57,7 @@
|
|||
<duration>
|
||||
<start datetime="2024-05">May 2024</start>
|
||||
</duration>
|
||||
<description>
|
||||
<description type="full">
|
||||
<p>
|
||||
<i>Sixfold</i> is a writer-voted journal of poetry and
|
||||
short stories. I am in charge of the publication's
|
||||
|
@ -68,6 +78,13 @@
|
|||
publications.
|
||||
</p>
|
||||
</description>
|
||||
<description type="brief">
|
||||
<p>
|
||||
<i>Sixfold</i> is a writer-voted journal of poetry and
|
||||
short stories. I am in charge of the publication's
|
||||
website and overall digital presence.
|
||||
</p>
|
||||
</description>
|
||||
</role>
|
||||
</company>
|
||||
<company>
|
||||
|
@ -77,7 +94,7 @@
|
|||
<duration>
|
||||
<start datetime="2022-11">November 2022</start>
|
||||
</duration>
|
||||
<description>
|
||||
<description type="full">
|
||||
<p>
|
||||
Public Offering is the not-for-profit digital services
|
||||
organisation I created to help build a better web.
|
||||
|
@ -98,6 +115,12 @@
|
|||
Etherpad instance.
|
||||
</p>
|
||||
</description>
|
||||
<description type="brief">
|
||||
<p>
|
||||
Public Offering is the not-for-profit digital services
|
||||
organisation I created to help build a better web. I provide pay-what-you-can web hosting and a collection of other useful digital tools.
|
||||
</p>
|
||||
</description>
|
||||
</role>
|
||||
</company>
|
||||
<company>
|
||||
|
@ -108,7 +131,7 @@
|
|||
<start datetime="2022-09">September 2022</start>
|
||||
<end datetime="2023-05">May 2023</end>
|
||||
</duration>
|
||||
<description>
|
||||
<description type="full">
|
||||
<p>
|
||||
After regularly advocating for accessible design
|
||||
processes, I was given a promotion that emphasised
|
||||
|
@ -122,6 +145,13 @@
|
|||
simplify inter-department communication.
|
||||
</p>
|
||||
</description>
|
||||
<description type="brief">
|
||||
<p>
|
||||
After regularly advocating for accessible design
|
||||
processes, I was given a promotion that emphasised
|
||||
this work, which allowed me to I performed detailed accessibility audits for both new and existing clients.
|
||||
</p>
|
||||
</description>
|
||||
</role>
|
||||
<role>
|
||||
<title>Developer</title>
|
||||
|
@ -129,7 +159,7 @@
|
|||
<start datetime="2021-05">May 2021</start>
|
||||
<end datetime="2022-09">September 2022</end>
|
||||
</duration>
|
||||
<description>
|
||||
<description type="full">
|
||||
<p>
|
||||
I came on as the sole in-house developer and
|
||||
immediately took charge of the agency's dozens of
|
||||
|
@ -141,6 +171,11 @@
|
|||
accessibility issues before the development phase.
|
||||
</p>
|
||||
</description>
|
||||
<description type="brief">
|
||||
<p>
|
||||
I was hired as the sole in-house developer for this small design agency, and immediately took over mantenance for its dozens of client sites, building new workflows not only for development, but for inter-agency communication.
|
||||
</p>
|
||||
</description>
|
||||
</role>
|
||||
</company>
|
||||
<company>
|
||||
|
@ -150,7 +185,7 @@
|
|||
<duration>
|
||||
<start datetime="2018-09">September 2018</start>
|
||||
</duration>
|
||||
<description>
|
||||
<description type="full">
|
||||
<p>
|
||||
I have worked with theater companies, non-profits,
|
||||
and creative individuals with unique digital ideas.
|
||||
|
@ -162,6 +197,12 @@
|
|||
and time zones with both clients and testers.
|
||||
</p>
|
||||
</description>
|
||||
<description type="brief">
|
||||
<p>
|
||||
I have worked with theater companies, non-profits,
|
||||
and creative individuals on unique digital ideas that have been presented as part of international arts festivals.
|
||||
</p>
|
||||
</description>
|
||||
</role>
|
||||
</company>
|
||||
<company>
|
||||
|
@ -173,7 +214,7 @@
|
|||
<start datetime="2025-01">January 2025</start>
|
||||
<end datetime="2025-01">January 2025</end>
|
||||
</duration>
|
||||
<description>
|
||||
<description type="brief">
|
||||
<p>
|
||||
I designed the lighting in collaboration with the
|
||||
performers during their one and only rehearsal in
|
||||
|
@ -193,7 +234,7 @@
|
|||
<start datetime="2024-05">May 2024</start>
|
||||
<end datetime="2024-08">August 2024</end>
|
||||
</duration>
|
||||
<description>
|
||||
<description type="full">
|
||||
<p>
|
||||
Over the show's three-month run, I was in charge of
|
||||
greeting guests; scanning tickets; and communicating
|
||||
|
@ -211,6 +252,9 @@
|
|||
departure.
|
||||
</p>
|
||||
</description>
|
||||
<description type="brief">
|
||||
<p>Over the three-month run of this immersive Off-Off-Broadway show, I handled the ticket sales across multiple platforms, managed the front-of-house area while checking in guests, and set up the elaborate lobby decorations before, during, and after each performance.</p>
|
||||
</description>
|
||||
<url>https://www.sheencenter.org/events/detail/odd-man-out</url>
|
||||
</role>
|
||||
</company>
|
||||
|
@ -223,7 +267,7 @@
|
|||
<start datetime="2024-03">March 2024</start>
|
||||
<end datetime="2024-04">April 2024</end>
|
||||
</duration>
|
||||
<description>
|
||||
<description type="brief">
|
||||
<p>
|
||||
I was in charge of maintaining the front-of-house,
|
||||
selling merchandise, and scanning tickets via
|
||||
|
@ -244,7 +288,7 @@
|
|||
<start datetime="2023-05">May 2023</start>
|
||||
<end datetime="2023-06">June 2023</end>
|
||||
</duration>
|
||||
<description>
|
||||
<description type="brief">
|
||||
<p>
|
||||
I sourced the sound effects and music for the show,
|
||||
organising them into a QLab workspace for the
|
||||
|
@ -264,7 +308,7 @@
|
|||
<start datetime="2020-02">February 2020</start>
|
||||
<end datetime="2020-03">March 2020</end>
|
||||
</duration>
|
||||
<description>
|
||||
<description type="brief">
|
||||
<p>I worked with the writer-director to create music and sound effects for this one-woman show. I was also in charge of operating the sound board during the performances.</p>
|
||||
</description>
|
||||
<url>https://www.broadwayworld.com/off-off-broadway/article/THIS-FEELING-A-New-Romantic-Comedy-Premieres-At-The-Frigid-Fringe-Festival-20200225</url>
|
||||
|
@ -275,7 +319,7 @@
|
|||
<project>
|
||||
<name>GoAccess</name>
|
||||
<activity>Contributor</activity>
|
||||
<description>
|
||||
<description type="brief">
|
||||
<p>
|
||||
I refactored the generated log reports to use semantic
|
||||
HTML, improving accessibility and simplifying
|
||||
|
@ -288,7 +332,7 @@
|
|||
<project>
|
||||
<name>ProseMirror</name>
|
||||
<activity>Plugin Developer, Forum Participant</activity>
|
||||
<description>
|
||||
<description type="brief">
|
||||
<p>
|
||||
I've published four ProseMirror plugins—a document
|
||||
outline, a semantic editing menu, a node insertion menu,
|
||||
|
@ -301,27 +345,42 @@
|
|||
<education>
|
||||
<institution>
|
||||
<name>New York University</name>
|
||||
<location>New York, NY, United States</location>
|
||||
<degree>
|
||||
<level>Bachelor of Fine Arts</level>
|
||||
<concentration>Theatre</concentration>
|
||||
<awarded>2020-12</awarded>
|
||||
<distinction>Magna cum laude</distinction>
|
||||
<distinction>Tisch School of the Arts Dean’s List</distinction>
|
||||
<school>Tisch School of the Arts</school>
|
||||
<duration>
|
||||
<start datetime="2017-09">September 2017</start>
|
||||
<end datetime="2020-12">December 2020</end>
|
||||
</duration>
|
||||
<gpa>3.851</gpa>
|
||||
<honors>
|
||||
<item>Magna cum laude</item>
|
||||
<item>Tisch School of the Arts Dean’s List</item>
|
||||
</honors>
|
||||
</degree>
|
||||
<degree>
|
||||
<level>Minor</level>
|
||||
<concentration>Web Programming and Applications</concentration>
|
||||
<awarded>2020-12</awarded>
|
||||
<school>Courant Institute of Mathematical Sciences</school>
|
||||
<duration>
|
||||
<start datetime="2018-01">January 2018</start>
|
||||
<end datetime="2020-12">December 2020</end>
|
||||
</duration>
|
||||
</degree>
|
||||
</institution>
|
||||
</education>
|
||||
<skills>
|
||||
<category>
|
||||
<name>Certifications</name>
|
||||
<category name="Languages">
|
||||
<item>Romanian (A1; reading, writing, speaking, listening)</item>
|
||||
<item>Irish Gaelic (A1; reading, writing)</item>
|
||||
<item>Portuguese (A1; reading, writing)</item>
|
||||
</category>
|
||||
<category name="Certifications">
|
||||
<item>Section 508: DHS Trusted Tester</item>
|
||||
</category>
|
||||
<category>
|
||||
<name>Languages</name>
|
||||
<category name="Programming & Scripting Languages">
|
||||
<item>(X)HTML</item>
|
||||
<item>XML</item>
|
||||
<item>XSLT</item>
|
||||
|
@ -333,15 +392,13 @@
|
|||
<item>SQL/MySQL/PostgreSQL</item>
|
||||
<item>NoSQL</item>
|
||||
</category>
|
||||
<category>
|
||||
<name>Operating Systems</name>
|
||||
<category name="Operating Systems">
|
||||
<item>Ubuntu Linux</item>
|
||||
<item>Microsoft Windows</item>
|
||||
<item>MacOS</item>
|
||||
<item>Arch Linux</item>
|
||||
</category>
|
||||
<category>
|
||||
<name>Programs</name>
|
||||
<category name="Programs">
|
||||
<item>Vim</item>
|
||||
<item>Git</item>
|
||||
<item>Bash</item>
|
||||
|
@ -351,8 +408,7 @@
|
|||
<item>Unity</item>
|
||||
<item>Final Cut</item>
|
||||
</category>
|
||||
<category>
|
||||
<name>Frameworks, Libraries, and Tools</name>
|
||||
<category name="Frameworks, Libraries, and Tools">
|
||||
<item>Web Content Accessibility Guidelines (WCAG)</item>
|
||||
<item>htmx</item>
|
||||
<item>Web Components</item>
|
||||
|
@ -377,11 +433,11 @@
|
|||
<item>Docker</item>
|
||||
<item>Vonage/Nexmo</item>
|
||||
</category>
|
||||
<category>
|
||||
<name>Miscellaneous</name>
|
||||
<category name="Miscellaneous">
|
||||
<item>Database administration</item>
|
||||
<item>Server upkeep</item>
|
||||
<item>UI/UX</item>
|
||||
<item>User interface design</item>
|
||||
<item>User experience design</item>
|
||||
<item>Captioning</item>
|
||||
<item>Transcription</item>
|
||||
</category>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
hash="$(git rev-parse HEAD)"
|
||||
|
||||
mkdir -p ../dist
|
||||
mkdir -p ./dist
|
||||
|
||||
xsltproc --stringparam hash "$hash" ./templates/cv.xsl cv.xml > ./dist/cv.html
|
||||
weasyprint --quiet ./dist/cv.html ./dist/cv.pdf
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
hash="$(git rev-parse HEAD)"
|
||||
|
||||
mkdir -p ./dist
|
||||
|
||||
xsltproc ./templates/grad-school.xsl cv.xml > ./dist/grad-school.html
|
||||
weasyprint --quiet ./dist/grad-school.html ./dist/grad-school.pdf
|
|
@ -5,7 +5,7 @@ company="$2" || ""
|
|||
date="$(date +'%d %B %Y')"
|
||||
signature="$(base64 ./assets/signature.svg)"
|
||||
|
||||
mkdir -p ../dist
|
||||
mkdir -p ./dist
|
||||
|
||||
echo $body | xsltproc --stringparam company "$company" --stringparam date "$date" --stringparam signature "$signature" ./templates/letter.xsl - > ./dist/letter.html
|
||||
weasyprint --quiet ./dist/letter.html ./dist/letter.pdf
|
||||
|
|
|
@ -1,75 +1,8 @@
|
|||
<?xml version="1.0"?>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:import href="./index.xsl"/>
|
||||
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes" standalone="yes" doctype-system="about:legacy-compat" />
|
||||
<xsl:param name="title" select="'Ainsley Ellis CV'"/>
|
||||
<xsl:template name="company">
|
||||
<article>
|
||||
<h3><xsl:value-of select="./name/text()"/></h3>
|
||||
<xsl:for-each select="./role">
|
||||
<xsl:call-template name="role"/>
|
||||
</xsl:for-each>
|
||||
</article>
|
||||
</xsl:template>
|
||||
<xsl:template name="project">
|
||||
<article>
|
||||
<header>
|
||||
<h3><xsl:value-of select="./name/text()" /></h3>
|
||||
<p>
|
||||
<xsl:value-of select="./activity/text()" />
|
||||
</p>
|
||||
</header>
|
||||
<xsl:copy-of select="./description/node()" />
|
||||
</article>
|
||||
</xsl:template>
|
||||
<xsl:template name="institution">
|
||||
<article>
|
||||
<h3><xsl:value-of select="./name/text()" /></h3>
|
||||
<dl>
|
||||
<xsl:for-each select="./degree">
|
||||
<dt><xsl:value-of select="./level/text()" /> in <xsl:value-of select="./concentration/text()" /></dt>
|
||||
<xsl:for-each select="./distinction">
|
||||
<dd><xsl:value-of select="./text()" /></dd>
|
||||
</xsl:for-each>
|
||||
</xsl:for-each>
|
||||
</dl>
|
||||
</article>
|
||||
</xsl:template>
|
||||
<xsl:template name="skill-category">
|
||||
<section>
|
||||
<h3><xsl:value-of select="./name/text()" /></h3>
|
||||
<ul role="list">
|
||||
<xsl:for-each select="./item">
|
||||
<li><xsl:value-of select="./text()" /></li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</section>
|
||||
</xsl:template>
|
||||
<xsl:template name="role">
|
||||
<article>
|
||||
<header>
|
||||
<h4><xsl:value-of select="./title/text()" /></h4>
|
||||
<p>
|
||||
<time>
|
||||
<xsl:attribute name="datetime">
|
||||
<xsl:value-of select="./duration/start[@datetime]" />
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="./duration/start/text()" />
|
||||
</time>
|
||||
<xsl:choose>
|
||||
<xsl:when test="./duration/start[@datetime] != ./duration/end[@datetime]"> to <time>
|
||||
<xsl:attribute name="datetime">
|
||||
<xsl:value-of select="./duration/end[@datetime]" />
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="./duration/end/text()" />
|
||||
</time>
|
||||
</xsl:when>
|
||||
<xsl:when test="not(boolean(./duration/end))"> to Present</xsl:when>
|
||||
</xsl:choose>
|
||||
</p>
|
||||
</header>
|
||||
<xsl:copy-of select="./description/node()" />
|
||||
</article>
|
||||
</xsl:template>
|
||||
<xsl:template match="/cv" data-xmlns="http://www.w3.org/1999/xhtml">
|
||||
<html lang="en" dir="ltr">
|
||||
<!-- The Yesterweb is dead, long live the Yesterweb! -->
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<header>
|
||||
<h1>Ainsley Ellis</h1>
|
||||
<p class="headline">Artist, Programmer, Digital Citizen</p>
|
||||
<address>
|
||||
<ul role="list">
|
||||
<li>Email: <a href="mailto:ainsleymae@proton.me">ainsleymae@proton.me</a>
|
||||
</li>
|
||||
<li>Website: <a href="https://ains.me">ains.me</a></li>
|
||||
</ul>
|
||||
<p>New York, NY, United States</p>
|
||||
</address>
|
||||
</header>
|
|
@ -23,4 +23,10 @@
|
|||
run smoothly.
|
||||
</p>
|
||||
</objective>
|
||||
<objective name="grad-school">
|
||||
|
||||
<p>
|
||||
I am a multidisciplinary artist and web developer that enjoys using my skills to assist others. As we enter an increasingly polarised and digitised world, I want to deepen my understanding of the building blocks of communication so that I may more effectively employ it in both my work and my everyday life, breaking down barriers between people and empowering them to navigate both the outside world and their own internal world more confidently.
|
||||
</p>
|
||||
</objective>
|
||||
</objectives>
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0"?>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:import href="./index.xsl"/>
|
||||
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes" standalone="yes" doctype-system="about:legacy-compat" />
|
||||
<xsl:param name="title" select="'Ainsley Ellis CV'"/>
|
||||
<xsl:template match="/cv" data-xmlns="http://www.w3.org/1999/xhtml">
|
||||
<html lang="en" dir="ltr">
|
||||
<!-- The Yesterweb is dead, long live the Yesterweb! -->
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="color-scheme" content="light dark" />
|
||||
<title><xsl:value-of select="$title"/></title>
|
||||
<link rel="stylesheet" href="../assets/css/all.css" />
|
||||
<link rel="stylesheet" href="../assets/css/screen.css" media="screen" />
|
||||
<link rel="stylesheet" href="../assets/css/print.css" media="print" />
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<xsl:copy-of select="document('./fragments/grad-school/header.xml')"/>
|
||||
<!-- <xsl:copy-of select="/cv"/> -->
|
||||
<section id="motivation">
|
||||
<h2>Motivation</h2>
|
||||
<!-- select specific objective from xml file -->
|
||||
<xsl:copy-of select="document('./fragments/objectives.xml')/objectives/objective[@name='grad-school']/node()"/>
|
||||
</section>
|
||||
<section id="education">
|
||||
<h2>Education</h2>
|
||||
<xsl:for-each select="./education/institution">
|
||||
<xsl:call-template name="institution"/>
|
||||
</xsl:for-each>
|
||||
</section>
|
||||
<section id="work-history">
|
||||
<h2>Work History</h2>
|
||||
<xsl:for-each select="./work-history/company">
|
||||
<xsl:call-template name="company">
|
||||
<xsl:with-param name="type">brief</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:for-each>
|
||||
</section>
|
||||
<section id="skills">
|
||||
<h2>Relevant Skills</h2>
|
||||
<xsl:for-each select="./skills/category">
|
||||
<xsl:if test="@name = 'Languages' or @name = 'Miscellaneous'">
|
||||
<xsl:call-template name="skill-category"/>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
</section>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
|
@ -0,0 +1,99 @@
|
|||
<?xml version="1.0"?>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:template name="company">
|
||||
<xsl:param name="type">full</xsl:param>
|
||||
<article>
|
||||
<h3><xsl:value-of select="./name/text()"/></h3>
|
||||
<xsl:for-each select="./role">
|
||||
<article>
|
||||
<header>
|
||||
<h4><xsl:value-of select="./title/text()" /></h4>
|
||||
<p><xsl:call-template name="duration" /></p>
|
||||
</header>
|
||||
<xsl:if test="$type = 'full' and not(./description[@type=$type]/node())">
|
||||
<xsl:copy-of select="./description[@type='brief']/node()" />
|
||||
</xsl:if>
|
||||
<xsl:copy-of select="./description[@type=$type]/node()" />
|
||||
</article>
|
||||
</xsl:for-each>
|
||||
</article>
|
||||
</xsl:template>
|
||||
<xsl:template name="duration">
|
||||
<time>
|
||||
<xsl:attribute name="datetime">
|
||||
<xsl:value-of select="./duration/start[@datetime]" />
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="./duration/start/text()" />
|
||||
</time>
|
||||
<xsl:choose>
|
||||
<xsl:when test="./duration/start[@datetime] != ./duration/end[@datetime]"> to <time>
|
||||
<xsl:attribute name="datetime">
|
||||
<xsl:value-of select="./duration/end[@datetime]" />
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="./duration/end/text()" />
|
||||
</time>
|
||||
</xsl:when>
|
||||
<xsl:when test="not(boolean(./duration/end))"> to Present</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<xsl:template name="institution">
|
||||
<article>
|
||||
<hgroup>
|
||||
<h3><xsl:value-of select="./name/text()" /></h3>
|
||||
<p><xsl:value-of select="./location" /></p>
|
||||
</hgroup>
|
||||
<dl>
|
||||
<xsl:for-each select="./degree">
|
||||
<dt><xsl:value-of select="./level/text()" /> in <xsl:value-of select="./concentration/text()" /></dt>
|
||||
<xsl:if test="boolean(./school)">
|
||||
<dd>
|
||||
<xsl:text>School: </xsl:text>
|
||||
<xsl:value-of select="./school/text()" />
|
||||
</dd>
|
||||
</xsl:if>
|
||||
<dd>
|
||||
<xsl:text>Attended: </xsl:text>
|
||||
<xsl:call-template name="duration" />
|
||||
</dd>
|
||||
<xsl:if test="boolean(./gpa)">
|
||||
<dd>GPA: <xsl:value-of select="./gpa/text()" /></dd>
|
||||
</xsl:if>
|
||||
<xsl:if test="boolean(./honors)">
|
||||
<dd>
|
||||
<xsl:text>Honours: </xsl:text>
|
||||
<xsl:for-each select="./honors/item">
|
||||
<xsl:value-of select="./text()" />
|
||||
<xsl:if test="not(position()=last())">, </xsl:if>
|
||||
</xsl:for-each>
|
||||
</dd>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
</dl>
|
||||
</article>
|
||||
</xsl:template>
|
||||
<xsl:template name="project">
|
||||
<xsl:param name="type">full</xsl:param>
|
||||
<article>
|
||||
<header>
|
||||
<h3><xsl:value-of select="./name/text()" /></h3>
|
||||
<p>
|
||||
<xsl:value-of select="./activity/text()" />
|
||||
</p>
|
||||
</header>
|
||||
<xsl:if test="$type = 'full' and not(./description[@type=$type]/node())">
|
||||
<xsl:copy-of select="./description[@type='brief']/node()" />
|
||||
</xsl:if>
|
||||
<xsl:copy-of select="./description[@type=$type]/node()" />
|
||||
</article>
|
||||
</xsl:template>
|
||||
<xsl:template name="skill-category">
|
||||
<section>
|
||||
<h3><xsl:value-of select="@name" /></h3>
|
||||
<ul role="list">
|
||||
<xsl:for-each select="./item">
|
||||
<li><xsl:value-of select="./text()" /></li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</section>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
Loading…
Reference in New Issue