Last active
December 16, 2015 01:09
-
-
Save cynddl/5352696 to your computer and use it in GitHub Desktop.
XLST – table ref
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE xsl:stylesheet [ | |
<!ENTITY deg "°" > | |
<!ENTITY laquo "«" ><!-- guillemets ouvrants --> | |
<!ENTITY raquo "»" ><!-- guillements fermants --> | |
<!ENTITY nbsp " " ><!-- espace insécable --> | |
<!ENTITY para "¶" ><!-- signe paragraphe (P double barre verticale inversé) --> | |
<!ENTITY iquest "¿" ><!-- point d'interrogation à l'envers --> | |
<!ENTITY sec "§" ><!-- alinéa VERIFIER LE NOM HTML --> | |
<!ENTITY bull "•" ><!-- bullet --> | |
<!ENTITY larr "←" ><!-- flèche gauche --> | |
<!ENTITY uarr "↑" ><!-- flèche vers le haut --> | |
<!ENTITY guillOF "« " > <!-- Guillemets ouvrants et espace insécable --> | |
<!ENTITY guillFF " »" ><!-- --> | |
]> | |
<xsl:stylesheet version="1.0" | |
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" | |
> | |
<xsl:output method="text" encoding="UTF-8"/> | |
<xsl:strip-space elements="*"/> | |
<xsl:preserve-space elements="note"/> | |
<xsl:template match="/"> | |
<xsl:apply-templates select="TEI/text/body/div/listBibl"/> | |
</xsl:template> | |
<!-- Enveloppement de l'entrée bibliographique, des citations et des éléments associés --> | |
<!-- Accroche pour fournir l'identifiant d'un élément bibliographique --> | |
<xsl:template name="avant-bibl"/> | |
<!-- Ici, on engendre les lignes du CSV --> | |
<xsl:template match="bibl"> | |
<xsl:call-template name="avant-bibl"/> | |
<xsl:value-of select="./@xml:id"/>@<xsl:apply-templates select="*[not(name()='note')]"/><xsl:text>
</xsl:text> | |
</xsl:template> | |
<!-- Eléments de l'entrée bibliographique --> | |
<xsl:template match="author"> | |
<xsl:apply-templates/><xsl:text> </xsl:text> | |
</xsl:template> | |
<xsl:template match="forename"> | |
<xsl:value-of select="."/><xsl:text> </xsl:text> | |
</xsl:template> | |
<xsl:template match="persName"> | |
<xsl:if test="position() > 1"> | |
<xsl:text>, </xsl:text> | |
</xsl:if> | |
<xsl:apply-templates/> | |
</xsl:template> | |
<xsl:template match="title[@level='m']"> | |
<i><xsl:apply-templates/></i><xsl:text> </xsl:text> | |
</xsl:template> | |
<xsl:template match="title[@level='s']"> | |
<xsl:text>Collection </xsl:text><xsl:apply-templates/><xsl:text> </xsl:text> | |
</xsl:template> | |
<xsl:template match="title[@level='a']"> | |
<xsl:text>&guillOF;</xsl:text><xsl:apply-templates/><xsl:text>&guillFF; </xsl:text> | |
</xsl:template> | |
<xsl:template match="title[@level='j']"> | |
<i><xsl:apply-templates/></i><xsl:text> </xsl:text> | |
</xsl:template> | |
<xsl:template match="biblScope[@type='chap']"> | |
<xsl:text>ch. </xsl:text><xsl:apply-templates/><xsl:text> </xsl:text> | |
</xsl:template> | |
<!-- --> | |
<xsl:template match="biblScope[@type='month']"> | |
<xsl:apply-templates/><xsl:text> </xsl:text> | |
</xsl:template> | |
<xsl:template match="biblScope[@type='number']"> | |
<xsl:text>n°</xsl:text><xsl:apply-templates/><xsl:text> </xsl:text> | |
</xsl:template> | |
<xsl:template match="biblScope[@type='pp']"> | |
<xsl:text>p. </xsl:text><xsl:apply-templates/><xsl:text> </xsl:text> | |
</xsl:template> | |
<xsl:template match="biblScope[@type='vol']"> | |
<xsl:text>vol. </xsl:text><xsl:apply-templates/><xsl:text> </xsl:text> | |
</xsl:template> | |
<xsl:template match="publisher | date | series | pubPlace | edition"> | |
<xsl:apply-templates/><xsl:text> </xsl:text> | |
</xsl:template> | |
<!-- Citations et autour des citations : note --> | |
<xsl:template match="note"> | |
<br/><xsl:apply-templates/> | |
</xsl:template> | |
<!-- Autour des citations (péri-citations) : titraille, remarques BH, etc. --> | |
<!-- Accroche pour pouvoir fournir l'identifiant d'un élément autour d'une péri-citation | |
NB : si l'élément est vide ou si on enchâsse un élément xsl:text vide, | |
un passage à la ligne est engendré, si bien que la transduction de l'élément ab | |
est sur deux lignes. | |
--> | |
<xsl:template name="avant-ab"><xsl:text> </xsl:text></xsl:template> | |
<!-- Factorisation de la production du lien vers la péri-citation --> | |
<xsl:template name="lien-ab"> | |
<xsl:element name="a"> | |
<xsl:attribute name="name"> | |
<xsl:value-of select="./@xml:id"/> | |
</xsl:attribute> | |
</xsl:element> | |
<xsl:element name="a"> | |
<xsl:attribute name="href"> | |
<xsl:text>#</xsl:text> | |
<xsl:value-of select="substring-before(./@xml:id,'_')"/> | |
</xsl:attribute> | |
<xsl:text>↑</xsl:text> | |
</xsl:element> | |
</xsl:template> | |
<xsl:template match="ab[@type='dateLecture']"> | |
<xsl:call-template name="avant-ab"/><xsl:call-template name="lien-ab"/><xsl:text>Lu en </xsl:text><xsl:apply-templates/> | |
<br/> | |
</xsl:template> | |
<xsl:template match="ab[@type='resumeBH']"> | |
<xsl:call-template name="avant-ab"/><xsl:call-template name="lien-ab"/><xsl:text>[Résumé BH] </xsl:text><xsl:apply-templates/> | |
<br/> | |
</xsl:template> | |
<xsl:template match="ab[@type='remarqueBH']"> | |
<xsl:call-template name="avant-ab"/><xsl:call-template name="lien-ab"/><xsl:text>[Remarque BH] </xsl:text><xsl:apply-templates/> | |
<br/> | |
</xsl:template> | |
<xsl:template match="ab[@type='commentaireBH']"> | |
<xsl:call-template name="avant-ab"/><xsl:call-template name="lien-ab"/><xsl:text>[Commentaire BH] </xsl:text><xsl:apply-templates/> | |
<br/> | |
</xsl:template> | |
<xsl:template match="ab[@type='autre']"> | |
<xsl:call-template name="avant-ab"/><xsl:call-template name="lien-ab"/><xsl:text>[Varia] </xsl:text><xsl:apply-templates/> | |
<br/> | |
</xsl:template> | |
<xsl:template match="ab"> | |
<xsl:call-template name="avant-ab"/><xsl:call-template name="lien-ab"/><xsl:apply-templates/><br/> | |
</xsl:template> | |
<xsl:template match="ab[@type='titreSection']"> | |
<h3><xsl:call-template name="avant-ab"/><xsl:call-template name="lien-ab"/><xsl:apply-templates/><xsl:text> </xsl:text></h3> | |
</xsl:template> | |
<!-- Ancienne version | |
<xsl:template match="ab[@type='sousTitreSection']"> | |
<h4><xsl:call-template name="avant-ab"/><xsl:call-template name="lien-ab"/><xsl:apply-templates/><xsl:text> </xsl:text></h4> | |
</xsl:template> | |
--> | |
<xsl:template match="ab[@type='titreSousSection']"> | |
<h4><xsl:call-template name="avant-ab"/><xsl:call-template name="lien-ab"/><xsl:apply-templates/><xsl:text> </xsl:text></h4> | |
</xsl:template> | |
<!-- Mention Titre BH : mettre en plus petit --> | |
<xsl:template match="ab[@type='titreBH']"> | |
<h3><xsl:call-template name="avant-ab"/><xsl:call-template name="lien-ab"/><xsl:text>[Titre BH] </xsl:text><xsl:apply-templates/><xsl:text> </xsl:text></h3> | |
</xsl:template> | |
<!-- Mention Sous-titre BH : mettre en plus petit --> | |
<xsl:template match="ab[@type='sousTitreBH']"> | |
<h4><xsl:call-template name="avant-ab"/><xsl:call-template name="lien-ab"/><xsl:text>[Sous-titre BH] </xsl:text><xsl:apply-templates/><xsl:text> </xsl:text></h4> | |
</xsl:template> | |
<!-- Citations --> | |
<!-- Accroche pour pouvoir fournir l'identifiant d'une citation --> | |
<xsl:template name="avant-cit"/> | |
<xsl:template match="cit"> | |
<xsl:call-template name="avant-cit"/> | |
<xsl:element name="a"> | |
<xsl:attribute name="name"> | |
<xsl:value-of select="quote/@xml:id"/> | |
</xsl:attribute> | |
</xsl:element> | |
<xsl:apply-templates/> | |
</xsl:template> | |
<xsl:template match="ref"> | |
<xsl:element name="a"> | |
<xsl:attribute name="href"> | |
<xsl:value-of select="./@target"/> | |
</xsl:attribute> | |
<xsl:text>↑</xsl:text> | |
</xsl:element> | |
<xsl:text> </xsl:text> | |
<xsl:value-of select="."/><xsl:text> </xsl:text> | |
</xsl:template> | |
<xsl:template match="quote"> | |
<xsl:apply-templates/><br/> | |
</xsl:template> | |
<!-- Mise en forme du texte --> | |
<xsl:template match="hi"> | |
<xsl:text><b></xsl:text><xsl:apply-templates/><xsl:text></b></xsl:text> | |
</xsl:template> | |
<xsl:template match="emph"> | |
<xsl:text><i></xsl:text><xsl:value-of select="."/><xsl:text></i></xsl:text> | |
</xsl:template> | |
<xsl:template match="lb"> | |
<br/> | |
</xsl:template> | |
</xsl:stylesheet> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment