From a1b83eb33e801f18bde81bb793c5184ede1e85fc Mon Sep 17 00:00:00 2001
From: Richard Lewis <richard.lewis@gold.ac.uk>
Date: Thu, 16 Jan 2014 14:03:43 +0000
Subject: [PATCH] Added first draft od opera2html transformation

---
 templates/opera2html.xslt | 150 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 150 insertions(+)
 create mode 100644 templates/opera2html.xslt

diff --git a/templates/opera2html.xslt b/templates/opera2html.xslt
new file mode 100644
index 0000000..6c5d507
--- /dev/null
+++ b/templates/opera2html.xslt
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="utf-8" ?>
+
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+               xmlns:tei="http://www.tei-c.org/ns/1.0"
+               version="1.0">
+
+<xsl:output method="html" />
+
+<xsl:template match="/">
+  <html>
+    <xsl:apply-templates />
+  </html>
+</xsl:template>
+
+<xsl:template match="tei:teiHeader">
+  <head>
+    <xsl:apply-templates select=".//tei:titleStmt" />
+    <link href="http://fonts.googleapis.com/css?family=IM+Fell+DW+Pica+SC|Lustria" rel="stylesheet" type="text/css" />
+    <link href="styles/opera.css" rel="stylesheet" type="text/css" />
+  </head>
+</xsl:template>
+
+<xsl:template match="tei:title">
+  <title><xsl:apply-templates /></title>
+</xsl:template>
+
+<xsl:template match="tei:author">
+  <meta name="author" content="{.}" />
+</xsl:template>
+
+<xsl:template match="tei:text">
+  <body>
+    <h1><xsl:value-of select="//tei:titleStmt/tei:title" /></h1>
+    <xsl:apply-templates />
+  </body>
+</xsl:template>
+
+<xsl:template match="tei:front">
+  <div id="front-matter">
+    <xsl:apply-templates />
+  </div>
+</xsl:template>
+
+<xsl:template match="tei:castList">
+  <div class="cast-list">
+    <xsl:apply-templates />
+  </div>
+</xsl:template>
+
+<xsl:template match="tei:castGroup">
+  <div class="cast-group">
+    <xsl:apply-templates />
+  </div>
+</xsl:template>
+
+<xsl:template match="tei:castItem">
+  <div class="cast-item" id="{@xml:id}"><xsl:apply-templates /></div>
+</xsl:template>
+
+<xsl:template match="tei:castList/tei:head">
+  <h2><xsl:apply-templates /></h2>
+</xsl:template>
+
+<xsl:template match="tei:castGroup/tei:head">
+  <h3><xsl:apply-templates /></h3>
+</xsl:template>
+
+<xsl:template match="tei:body">
+  <div id="body">
+    <xsl:apply-templates />
+  </div>
+</xsl:template>
+
+<xsl:template match="tei:div[@type='scene']">
+  <div class="scene" id="scene{@n}">
+    <xsl:apply-templates />
+  </div>
+</xsl:template>
+
+<xsl:template match="tei:div[@type='scene']/tei:head">
+  <h2><xsl:apply-templates /></h2>
+</xsl:template>
+
+<xsl:template match="musicalPrelude">
+  <div class="musical-prelude">
+    <xsl:apply-templates />
+  </div>
+</xsl:template>
+
+<xsl:template match="musicalInterlude">
+  <div class="musical-interlude">
+    <xsl:apply-templates />
+  </div>
+</xsl:template>
+
+<xsl:template match="tei:musicalPrelude/tei:head">
+  <h3><xsl:apply-templates /></h3>
+</xsl:template>
+
+<xsl:template match="tei:list">
+  <ul>
+    <xsl:apply-templates />
+  </ul>
+</xsl:template>
+
+<xsl:template match="tei:item">
+  <li><xsl:apply-templates /></li>
+</xsl:template>
+
+<xsl:template match="tei:item/tei:stage">
+  <span class="stage"><xsl:apply-templates /></span>
+</xsl:template>
+
+<xsl:template match="tei:stage[not(ancestor::tei:item)]">
+  <div class="stage">
+    <xsl:apply-templates />
+  </div>
+</xsl:template>
+
+<xsl:template match="tei:sg">
+  <div class="sg" id="{@xml:id}">
+    <xsl:apply-templates />
+  </div>
+</xsl:template>
+
+<xsl:template match="tei:singer">
+  <span class="singer"><xsl:apply-templates />: </span>
+</xsl:template>
+
+<xsl:template match="tei:lyric">
+  <div class="lyric" id="{ancestor::tei:sg/@xml:id}_{@n}">
+    <xsl:apply-templates />
+  </div>
+</xsl:template>
+
+<xsl:template match="tei:linkGrp">
+  <div class="links">
+    <xsl:apply-templates />
+  </div>
+</xsl:template>
+
+<xsl:template match="tei:ptr[ancestor::tei:linkGrp[@type='audio-cues']]">
+  <span class="audio-cue"><a href="{@target}"><xsl:value-of select="@cRef" /></a></span>
+</xsl:template>
+
+<xsl:template match="tei:ptr[@type='score-location']">
+  <span class="page-break">↡<span class="score-location"><xsl:value-of select="@cRef" /></span></span>
+</xsl:template>
+
+</xsl:transform>
-- 
GitLab