From 533a824138e69c05c605696a82bd685241d55050 Mon Sep 17 00:00:00 2001
From: Martin de la Iglesia <iglesia@hab.de>
Date: Thu, 29 Aug 2024 11:21:21 +0000
Subject: [PATCH] Upload New File

---
 stammbuch2html.xsl | 524 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 524 insertions(+)
 create mode 100644 stammbuch2html.xsl

diff --git a/stammbuch2html.xsl b/stammbuch2html.xsl
new file mode 100644
index 0000000..54fa6bb
--- /dev/null
+++ b/stammbuch2html.xsl
@@ -0,0 +1,524 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE stylesheet [
+<!ENTITY nbsp "&#160;">
+]>
+
+<!-- Dieses Stylesheet ist Teil von
+
+Philipp Hainhofer: Das Große Stammbuch. Kommentierte digitale Edition eines bedeutenden Album Amicorum aus der Zeit um 1600 [Wolfenbütteler Digitale Editionen, Nr. 6], herausgegeben, transkribiert, übersetzt und kommentiert von Sabine Jagodzinski, Wolfenbüttel: Herzog August Bibliothek 2024, https://stammbuch.hab.de/stammbuch
+
+und wurde erstellt von Martin de la Iglesia (iglesia@hab.de).
+
+Es konvertiert die TEI/XML-Datei stammbuch.xml nach XHTML. -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xhtml="http://www.w3.org/1999/xhtml" exclude-result-prefixes="#all" version="2.0" xpath-default-namespace="http://www.tei-c.org/ns/1.0">
+    
+    <xsl:output method="xhtml" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" indent="yes"/>    
+    
+    <xsl:variable name="psnpfad">../register/personen/</xsl:variable>
+    <xsl:variable name="swindexpfad">../register/schlagwortindex</xsl:variable>
+    <xsl:variable name="ikonindexpfad">../register/ikonographischer-index</xsl:variable>
+    <xsl:variable name="litpfad">stammb_bibl.xml</xsl:variable>
+    <xsl:variable name="biblpfad">../informationen-zur-edition/bibliographie/</xsl:variable>
+    <xsl:variable name="indexlinkprefix">(Ikonographischer Index: </xsl:variable>
+    <xsl:variable name="indexlinksuffix">)</xsl:variable>
+    <xsl:variable name="bilderpfad2">https://stammbuch.hab.de/img/</xsl:variable>
+    
+    <xsl:template match="/">
+        <xsl:result-document href="stammbuch.xhtml">
+            <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
+                <head>
+                    <meta name="publisher" content="Herzog August Bibliothek Wolfenbüttel"/>
+                    <link rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/de/"/>
+                    <title>Das Große Stammbuch Philipp Hainhofers</title>                   
+                </head>
+                <body>
+                    <xsl:apply-templates select="TEI/text/body/div[@type='Eintrag']"/>
+                </body>                
+            </html>
+        </xsl:result-document>        
+    </xsl:template>
+    
+    <xsl:template match="div">
+        <div xmlns="http://www.w3.org/1999/xhtml">
+            <xsl:attribute name="id" select="@xml:id"/>
+            <xsl:if test="@xml:id ne 'h002' and @xml:id ne 'h003'">
+                <xsl:attribute name="title">
+                    <xsl:choose>
+                        <xsl:when test="starts-with(@xml:id, 'eb') or starts-with(@xml:id, 'el')">                        
+                            <xsl:value-of select="@xml:id"/>
+                        </xsl:when>                    
+                        <xsl:when test="@xml:id = 'i-r'">
+                            <xsl:text>00001</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'i-v'">
+                            <xsl:text>00002</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'ii-r'">
+                            <xsl:text>00003</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'ii-v'">
+                            <xsl:text>00004</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'iii-r'">
+                            <xsl:text>00005</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'iii-v'">
+                            <xsl:text>00006</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'iv-r'">
+                            <xsl:text>00007</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'iv-v'">
+                            <xsl:text>00008</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'v-r'">
+                            <xsl:text>00009</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'v-v'">
+                            <xsl:text>00010</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'vi-r'">
+                            <xsl:text>00011</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'vi-v'">
+                            <xsl:text>00012</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'vii-r'">
+                            <xsl:text>00013</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'vii-v'">
+                            <xsl:text>00014</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'viii-r'">
+                            <xsl:text>00015</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'viii-v'">
+                            <xsl:text>00016</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'ix-r'">
+                            <xsl:text>00017</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'ix-v'">
+                            <xsl:text>00018</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'x-r'">
+                            <xsl:text>00019</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'x-v'">
+                            <xsl:text>00020</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id eq 's138-139'">                        
+                            <xsl:text>00158</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id eq 's180-181'">                        
+                            <xsl:text>00200</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="starts-with(@xml:id, 's') and (@xml:id ne 's138-139') and (@xml:id ne 's180-181')">
+                            <xsl:choose>
+                                <xsl:when test="number(substring-after(@xml:id,'s')) + 20 &lt; 100">
+                                    <xsl:value-of select="concat('000',number(substring-after(@xml:id,'s')) + 20)"/>
+                                </xsl:when>
+                                <xsl:when test="number(substring-after(@xml:id,'s')) + 20 &gt; 99">
+                                    <xsl:value-of select="concat('00',number(substring-after(@xml:id,'s')) + 20)"/>
+                                </xsl:when>
+                            </xsl:choose>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'i-asterisk-r'">
+                            <xsl:text>00249</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'i-asterisk-v'">
+                            <xsl:text>00249a</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'ii-asterisk-r'">
+                            <xsl:text>00249b</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'ii-asterisk-v'">
+                            <xsl:text>00250</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'iii-asterisk-r'">
+                            <xsl:text>00251</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'iii-asterisk-v'">
+                            <xsl:text>00252</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'iv-asterisk-r'">
+                            <xsl:text>00253</xsl:text>
+                        </xsl:when>
+                        <xsl:when test="@xml:id = 'iv-asterisk-v'">
+                            <xsl:text>00254</xsl:text>
+                        </xsl:when>
+                    </xsl:choose>
+                </xsl:attribute>   
+            </xsl:if>
+            <xsl:if test="@subtype eq 'Leerseite'">
+                <xsl:attribute name="class">Leerseite</xsl:attribute>
+            </xsl:if>
+            <xsl:choose>
+                <xsl:when test="matches(./div[@type='Seite']/p,'^[A-Za-z]')">
+                    <h1><xsl:value-of select="./div[@type='Seite']/p"/></h1>
+                </xsl:when>
+                <xsl:when test="matches(./div[@type='Seite']/p,'^[0-9]')">
+                    <h1>Seite <xsl:value-of select="./div[@type='Seite']/p"/></h1>
+                </xsl:when>              
+            </xsl:choose>            
+            <xsl:if test="./div[@type='Beschreibstoff']/p/text()[. ne '']">
+                <div class="Beschreibstoff">
+                    <h2>Beschreibstoff</h2>
+                    <xsl:for-each select="./div[@type='Beschreibstoff']/p">
+                        <xsl:apply-templates select="."/>
+                    </xsl:for-each>
+                </div>
+            </xsl:if>
+            <xsl:if test="./div[@type='weiteres_Material']/p/text()[. ne '']">
+                <div class="weiteres_Material">
+                    <xsl:choose>
+                        <xsl:when test="./div[@type='Beschreibstoff']/p/text()[. ne '']">
+                            <h2>Weiteres Material</h2>
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <h2>Material</h2>
+                        </xsl:otherwise>
+                    </xsl:choose>                    
+                    <xsl:for-each select="./div[@type='weiteres_Material']/p">
+                        <xsl:apply-templates select="."/>
+                    </xsl:for-each>
+                </div>
+            </xsl:if>
+            <xsl:if test="./div[@type='Technik']/p//text()[. ne '']">
+                <div class="Technik">
+                    <h2>Technik</h2>
+                    <xsl:apply-templates select="./div[@type='Technik']/p"/>
+                </div>
+            </xsl:if>
+            <xsl:if test="./div[@type='Künstler']/p//text()[. ne '']">
+                <div class="Künstler">
+                    <h2>Künstler</h2>
+                    <xsl:apply-templates select="./div[@type='Künstler']/p"/>
+                </div>
+            </xsl:if>
+            <xsl:if test="./div[@type='Datierung']/p//text()[matches(.,'\S')]">
+                <div class="Datierung">
+                    <h2>Datierung</h2>
+                    <xsl:choose>
+                        <xsl:when test="./div[@type='Datierung']/p/date/text()">
+                            <!--<p><xsl:value-of select="./div[@type='Datierung']/p/date/text()"/></p>-->
+                            <p><xsl:apply-templates select="./div[@type='Datierung']/p/date"/></p>
+                        </xsl:when>
+                        <!--<xsl:when test="./div[@type='Datierung']/p/date/@when-iso castable as xs:date">
+                            <p><xsl:value-of select="format-date(./div[@type='Datierung']/p/date/@when-iso,'[D]. [MN] [Y]', 'de', (), ())"/></p>
+                            </xsl:when>-->
+                    </xsl:choose>
+                </div>
+            </xsl:if>
+            <xsl:choose>
+                <xsl:when test="./div[@type='Datierung']/p/date/@when-iso">
+                    <div class="dating-wheniso">
+                        <xsl:value-of select="./div[@type='Datierung']/p/date/@when-iso"/>                    
+                    </div>
+                </xsl:when>
+                <xsl:otherwise>
+                    <xsl:if test="./div[@type='Datierung']/p/date/@notBefore-iso">
+                        <div class="dating-notbeforeiso">
+                            <xsl:value-of select="./div[@type='Datierung']/p/date/@notBefore-iso"/>
+                        </div>
+                    </xsl:if>
+                    <xsl:if test="./div[@type='Datierung']/p/date/@notAfter-iso">
+                        <div class="dating-notafteriso">
+                            <xsl:value-of select="./div[@type='Datierung']/p/date/@notAfter-iso"/>
+                        </div>
+                    </xsl:if>
+                </xsl:otherwise>
+            </xsl:choose>
+            <xsl:if test="./div[@type='Datierung']/p/date[@precision = 'low']">
+                <div class="dating-precision">
+                    <xsl:value-of select="./div[@type='Datierung']/p/date/@precision"/>
+                </div>
+            </xsl:if>
+            <xsl:if test="./div[@type='Ort']/p/text()[. ne '']">
+                <div class="Ort">
+                    <h2>Ort</h2>
+                    <xsl:apply-templates select="./div[@type='Ort']/*"/>
+                </div>
+            </xsl:if>
+            <xsl:choose>
+                <xsl:when test="./div[@type='Name']/p/count(rs) = 1">
+                    <div class="Name">
+                        <h2>Inskribent*in</h2>
+                        <p><a><xsl:attribute name="href" select="concat($psnpfad,substring-after(./div[@type='Name']/p/rs/@ref,'psn:'))"></xsl:attribute><xsl:value-of select="./div[@type='Name']/p/rs"/></a><xsl:apply-templates select="./div[@type='Name']/p/note"/></p>
+                    </div>
+                </xsl:when>
+                <xsl:when test="./div[@type='Name']/p/count(rs) &gt; 1">
+                    <div class="Name">
+                        <h2>Inskribent*innen</h2>
+                        <ul>
+                            <xsl:for-each select="./div[@type='Name']/p/rs">
+                                <li><a><xsl:attribute name="href" select="concat($psnpfad,substring-after(./@ref,'psn:'))"></xsl:attribute><xsl:value-of select="."/></a><xsl:apply-templates select="../note"/></li>
+                            </xsl:for-each>
+                        </ul>
+                    </div>
+                </xsl:when>
+            </xsl:choose>
+            <xsl:if test="./div[@type='Transkription']/p//text()[. ne '']">
+                <div class="Transkription">
+                    <h2>Transkription</h2>
+                    <xsl:for-each select="./div[@type='Transkription']/p">
+                        <p>
+                            <xsl:apply-templates/>
+                        </p>
+                    </xsl:for-each>
+                </div>
+            </xsl:if>
+            <xsl:if test="./div[@type='Bildthema']/p//text()[matches(.,'\S')]">
+                <div class="Bildmotiv">
+                    <h2>Bildmotiv</h2>
+                    <xsl:apply-templates select="./div[@type='Bildthema']/*"/>
+                </div>
+            </xsl:if>
+            <xsl:if test="./div[@type='Bildbeschreibung']/p//text()[matches(.,'\S')]">
+                <div class="Bildbeschreibung">
+                    <h2>Bildbeschreibung</h2>
+                    <xsl:for-each select="./div[@type='Bildbeschreibung']/p">
+                        <p><xsl:apply-templates/></p>
+                    </xsl:for-each>
+                </div>
+            </xsl:if>            
+            <xsl:if test="./div[@type='Deutung']//text()[matches(.,'\S')]">
+                <div class="Deutung">
+                    <h2>Deutung</h2>
+                    <xsl:for-each select="./div[@type='Deutung']/p">
+                        <p><xsl:apply-templates/></p>
+                    </xsl:for-each>
+                </div>
+            </xsl:if>
+            <xsl:if test="./div[@type='Besonderheiten']//text()[matches(.,'\S')]">
+                <div class="Besonderheiten">
+                    <h2>Besonderheiten</h2>
+                    <xsl:for-each select="./div[@type='Besonderheiten']/p">
+                        <p><xsl:apply-templates/></p>
+                    </xsl:for-each>
+                </div>
+            </xsl:if>
+            <xsl:if test="./div[@type='Bezug_Stammbuch']//text()[matches(.,'\S')]">
+                <div class="Bezug_Stammbuch">
+                    <h2>Bezug zu anderen Seiten</h2>
+                    <xsl:for-each select="./div[@type='Bezug_Stammbuch']/p">
+                        <p><xsl:apply-templates/></p>
+                    </xsl:for-each>
+                </div>
+            </xsl:if>
+            <xsl:if test="./div[@type='weitere_Kontexte']//text()[matches(.,'\S')]">
+                <div class="weitere_Kontexte">
+                    <h2>Weitere Kontexte</h2>
+                    <xsl:for-each select="./div[@type='weitere_Kontexte']/p">
+                        <p><xsl:apply-templates/></p>
+                    </xsl:for-each>
+                </div>
+            </xsl:if>
+            <!-- interne Vermerke, nicht ausgeben: -->
+            <!--<xsl:if test="./div[@type='Anmerkungen']">
+                <div class="Anmerkungen">
+                <h2>Anmerkungen</h2>
+                <xsl:for-each select="./div[@type='Anmerkungen']/p">
+                <p><xsl:apply-templates/></p>
+                </xsl:for-each>
+                </div>
+                </xsl:if>-->
+            <xsl:if test="./div[@type='Verschlagwortung']//term/text()[matches(.,'\S')]">
+                <div class="Verschlagwortung">
+                    <h2>Verschlagwortung</h2>
+                    <ul>
+                        <xsl:for-each select="./div[@type='Verschlagwortung']/list/item">
+                            <xsl:sort select="."/>
+                            <li><a><xsl:attribute name="href" select="concat($swindexpfad,'#',replace(replace(translate(replace(replace(replace(replace(replace(lower-case(./term), 'ä', 'ae'), 'ö', 'oe'), 'ü', 'ue'),'ß','ss'),' ','_'),'&#x002c;&#x0028;&#x0029;',''),'_/_','_'),'ç','c'))"/><xsl:value-of select="./term"/></a></li>
+                        </xsl:for-each>
+                    </ul>
+                </div>
+            </xsl:if>
+            <xsl:if test="./figure">
+                <div class="Abbildungen">       
+                    <h2>Vergleichsabbildungen</h2>				
+                    <xsl:for-each select="./figure">
+                        <div class="Abbildung">
+                            <xsl:attribute name="id" select="concat('abb-',ancestor::div[@type='Eintrag']/@xml:id,'-',count(preceding-sibling::figure)+1)"/>
+                            <img>
+                                <xsl:attribute name="src"><xsl:value-of select="concat(substring-before(//prefixDef[@ident='img']/@replacementPattern,'$1'),substring-after(./graphic/@url,':'))"/></xsl:attribute>
+                                <xsl:attribute name="alt"><xsl:value-of select="./graphic/desc"/></xsl:attribute>
+                            </img>
+                            <p><xsl:apply-templates select="./graphic/desc"/></p>
+                        </div>
+                    </xsl:for-each>
+                </div>
+            </xsl:if>
+            <xsl:if test="./div[@type='Literatur']/listBibl/bibl[ptr/@target ne '']">
+                <div class="Literatur">
+                    <h2>Literatur</h2>
+                    <ul>
+                        <xsl:for-each select="./div[@type='Literatur']/listBibl/bibl[ptr/@target]">
+                            <xsl:sort select="document($litpfad)//bibl[@xml:id eq substring-after(current()/ptr/@target,'lit:')]/@sortKey"/>
+                            <li><xsl:apply-templates select="document($litpfad)//bibl[@xml:id eq substring-after(current()/ptr/@target,'lit:')]/seg"/><xsl:if test="document($litpfad)//bibl[@xml:id eq substring-after(current()/ptr/@target,'lit:')]/ptr[@type='fulltext']"><xsl:text>. </xsl:text><a><xsl:attribute name="href" select="document($litpfad)//bibl[@xml:id eq substring-after(current()/ptr/@target,'lit:')]/ptr[@type='fulltext']/@target"/><xsl:value-of select="document($litpfad)//bibl[@xml:id eq substring-after(current()/ptr/@target,'lit:')]/ptr[@type='fulltext']/@target"/></a></xsl:if><xsl:if test="citedRange ne '' or citedRange/@target ne ''">, hier: <xsl:apply-templates select="citedRange"/></xsl:if></li>
+                        </xsl:for-each>
+                    </ul>
+                </div>
+            </xsl:if>
+            <xsl:if test=".//note[@type='Anmerkung' or @type='Übersetzung']">
+                <div class="Anmerkungen">
+                    <h2>Anmerkungen</h2>
+                    <ol>
+                        <xsl:for-each select=".//note[@type='Anmerkung' or @type='Übersetzung']">
+                            <xsl:variable name="notenr" select="count(preceding::note[@type='Anmerkung' or @type='Übersetzung'][ancestor::div[@type='Eintrag'] = current()/ancestor::div[@type='Eintrag']]) + 1"/>
+                            <xsl:variable name="noteid" select="concat(ancestor::div[@type='Eintrag']/@xml:id,'note',$notenr)"/>
+                            <li><xsl:attribute name="class"><xsl:choose><xsl:when test="@type='Übersetzung'"><xsl:text>Übersetzung</xsl:text></xsl:when><xsl:when test="@type='Anmerkung'"><xsl:text>Anmerkung</xsl:text></xsl:when></xsl:choose></xsl:attribute><xsl:attribute name="id" select="$noteid"></xsl:attribute><xsl:if test="@type='Übersetzung'"><xsl:choose>
+                                <xsl:when test="ancestor::foreign/@xml:lang eq 'fr'">
+                                    <xsl:text>Französisch: </xsl:text>
+                                </xsl:when>
+                                <xsl:when test="ancestor::foreign/@xml:lang eq 'it'">
+                                    <xsl:text>Italienisch: </xsl:text>
+                                </xsl:when>
+                                <xsl:when test="ancestor::foreign/@xml:lang eq 'la'">
+                                    <xsl:text>Latein: </xsl:text>
+                                </xsl:when>
+                                <xsl:when test="ancestor::foreign/@xml:lang eq 'grc'">
+                                    <xsl:text>Altgriechisch: </xsl:text>
+                                </xsl:when>
+                                <xsl:when test="ancestor::foreign/@xml:lang eq 'he'">
+                                    <xsl:text>Hebräisch: </xsl:text>
+                                </xsl:when>
+                                <xsl:when test="ancestor::foreign/@xml:lang eq 'nl'">
+                                    <xsl:text>Flämisch: </xsl:text>
+                                </xsl:when>
+                                <xsl:when test="ancestor::foreign/@xml:lang eq 'es'">
+                                    <xsl:text>Spanisch: </xsl:text>
+                                </xsl:when>
+                                <xsl:when test="ancestor::foreign/@xml:lang eq 'en'">
+                                    <xsl:text>Englisch: </xsl:text>
+                                </xsl:when>
+                            </xsl:choose></xsl:if><xsl:apply-templates/></li>
+                        </xsl:for-each>
+                    </ol>
+                </div>
+            </xsl:if>
+        </div>
+    </xsl:template>
+    
+    <xsl:template match="choice">
+        <xsl:choose>            
+            <xsl:when test="abbr and expan">
+                <span xmlns="http://www.w3.org/1999/xhtml" class="tooltip">                    
+                    <xsl:apply-templates select="abbr/node()"/>
+                    <span class="custom help">
+                        <xsl:value-of select="expan"/>
+                    </span>
+                </span>
+            </xsl:when>
+            <xsl:otherwise/>
+        </xsl:choose>
+    </xsl:template>
+    
+    <xsl:template match="g">
+        <xsl:variable name="charid" select="substring-after(@ref, '#')"/>
+        <img xmlns="http://www.w3.org/1999/xhtml">
+            <xsl:attribute name="alt" select="/TEI/teiHeader/encodingDesc/charDecl/char[@xml:id = $charid]/note"/>
+            <xsl:attribute name="src" select="concat(substring-before(//prefixDef[@ident='img2']/@replacementPattern,'$1'), substring-after(/TEI/teiHeader/encodingDesc/charDecl/char[@xml:id = $charid]/figure/graphic/@url,':'))"/>
+            <xsl:attribute name="class" select="$charid"/>
+        </img>
+    </xsl:template>
+    
+    <xsl:template match="seg">
+        <xsl:choose>
+            <xsl:when test="@hand">
+                <span xmlns="http://www.w3.org/1999/xhtml">
+                    <xsl:attribute name="class" select="concat('hand_',substring-after(@hand,'#'))"/>
+                    <xsl:apply-templates/>
+                </span>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:apply-templates/>
+            </xsl:otherwise>
+        </xsl:choose>        
+    </xsl:template>
+    
+    <xsl:template match="foreign">
+        <span xmlns="http://www.w3.org/1999/xhtml">
+            <xsl:attribute name="lang" select="@xml:lang"/>
+            <xsl:attribute name="xml:lang" select="@xml:lang"/>
+            <xsl:apply-templates/>
+        </span>
+    </xsl:template>
+    
+    <xsl:template match="hi[@rendition = '#i']">
+        <span xmlns="http://www.w3.org/1999/xhtml" class="italic">
+            <xsl:apply-templates/>
+        </span>
+    </xsl:template>
+    
+    <xsl:template match="rs">
+        <a xmlns="http://www.w3.org/1999/xhtml"><xsl:attribute name="href" select="concat($psnpfad,substring-after(@ref,'psn:'))"/><xsl:apply-templates/></a>
+    </xsl:template>
+    
+    <xsl:template match="lb">
+        <br xmlns="http://www.w3.org/1999/xhtml"/>        
+    </xsl:template>
+    
+    <xsl:template match="note[@type='Textfeldbeschreibung']">
+        <span xmlns="http://www.w3.org/1999/xhtml" class="Textfeldbeschreibung"><xsl:text>[</xsl:text><xsl:apply-templates/><xsl:text>:]</xsl:text></span><!--<br xmlns="http://www.w3.org/1999/xhtml"/>-->
+    </xsl:template>
+    
+    <xsl:template match="note[@type='Glossar']">
+        <span xmlns="http://www.w3.org/1999/xhtml" class="Glossar-Präfix"> [</span><span xmlns="http://www.w3.org/1999/xhtml" class="Glossar"><xsl:apply-templates/></span><span xmlns="http://www.w3.org/1999/xhtml" class="Glossar-Suffix">]</span>        
+    </xsl:template>
+    
+    <xsl:template match="note[@type='Anmerkung' or @type='Übersetzung']">
+        <xsl:variable name="notenr" select="count(preceding::note[@type='Anmerkung' or @type='Übersetzung'][ancestor::div[@type='Eintrag'] = current()/ancestor::div[@type='Eintrag']]) + 1"/>
+        <xsl:variable name="noteid" select="concat('#',ancestor::div[@type='Eintrag']/@xml:id,'note',$notenr)"/>
+        <span xmlns="http://www.w3.org/1999/xhtml" class="notenumber"><a><xsl:attribute name="href" select="$noteid"/><xsl:value-of select="$notenr"/></a></span>
+    </xsl:template>
+    
+    <xsl:template match="p">
+        <p xmlns="http://www.w3.org/1999/xhtml">
+            <xsl:apply-templates/>  
+        </p>
+    </xsl:template>
+    
+    <xsl:template match="index">
+        <xsl:text> </xsl:text>
+        <a xmlns="http://www.w3.org/1999/xhtml" class="index">
+            <xsl:attribute name="href" select="concat($ikonindexpfad,'#',replace(replace(replace(replace(replace(replace(lower-case(term), 'ä', 'ae'), 'ö', 'oe'), 'ü', 'ue'),'ß','ss'),'ç','c'),'\W',''))"/>
+            <xsl:value-of select="$indexlinkprefix"/><xsl:value-of select="./term"/><xsl:value-of select="$indexlinksuffix"/>
+            <!--<xsl:text>↗</xsl:text>-->
+        </a>
+    </xsl:template>
+    
+    <xsl:template match="ref[@type='Abbildungsverweis']">
+        <a class="Abbildungsverweis" xmlns="http://www.w3.org/1999/xhtml"><xsl:attribute name="href" select="concat('#abb-',ancestor::div[@type='Eintrag']/@xml:id,'-',count(preceding::ref[@type='Abbildungsverweis'][ancestor::div[@type='Eintrag'] eq current()/ancestor::div[@type='Eintrag']])+1)"/><xsl:value-of select="."/></a>
+    </xsl:template>
+    
+    <xsl:template match="ref">
+        <a class="Weblink" xmlns="http://www.w3.org/1999/xhtml"><xsl:attribute name="href" select="@target"/><xsl:value-of select="."/></a>
+    </xsl:template>
+    
+    <xsl:template match="bibl/ref">
+        <a class="Bibliographielink" xmlns="http://www.w3.org/1999/xhtml"><xsl:attribute name="href" select="concat($biblpfad,substring-after(@target,'lit:'))"/><xsl:value-of select="."/></a>
+    </xsl:template>
+    
+    <xsl:template match="text()">
+        <xsl:value-of select="replace(.,'S\.\s+([0-9])','S.&#x00a0;$1')"/>
+    </xsl:template>
+    
+    <xsl:template match="citedRange[@target]">
+        <a class="Weblink" xmlns="http://www.w3.org/1999/xhtml">
+            <xsl:attribute name="href">
+                <xsl:value-of select="@target"/>
+            </xsl:attribute>
+            <xsl:choose>
+                <xsl:when test="node()">
+                    <xsl:apply-templates/>
+                </xsl:when>
+                <xsl:otherwise>
+                    <xsl:value-of select="@target"/>
+                </xsl:otherwise>
+            </xsl:choose>
+        </a>        
+    </xsl:template>
+    
+</xsl:stylesheet>
-- 
GitLab