|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
XSLT Stylesheet DocBook -> LaTeX
|
|
Packit |
0f19cf |
############################################################################ -->
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:template name="hex-to-int">
|
|
Packit |
0f19cf |
<xsl:param name="hex" select="'0'"/>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:choose>
|
|
Packit |
0f19cf |
<xsl:when test="string-length($hex)=1">
|
|
Packit |
0f19cf |
<xsl:call-template name="char-to-int">
|
|
Packit |
0f19cf |
<xsl:with-param name="char" select="$hex"/>
|
|
Packit |
0f19cf |
</xsl:call-template>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:otherwise>
|
|
Packit |
0f19cf |
<xsl:variable name="low.int">
|
|
Packit |
0f19cf |
<xsl:call-template name="char-to-int">
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
select="substring($hex, string-length($hex))"/>
|
|
Packit |
0f19cf |
</xsl:call-template>
|
|
Packit |
0f19cf |
</xsl:variable>
|
|
Packit |
0f19cf |
<xsl:variable name="high.int">
|
|
Packit |
0f19cf |
<xsl:call-template name="hex-to-int">
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
select="substring($hex, 1, string-length($hex)-1)"/>
|
|
Packit |
0f19cf |
</xsl:call-template>
|
|
Packit |
0f19cf |
</xsl:variable>
|
|
Packit |
0f19cf |
<xsl:value-of select="$low.int + 16*$high.int"/>
|
|
Packit |
0f19cf |
</xsl:otherwise>
|
|
Packit |
0f19cf |
</xsl:choose>
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:template name="char-to-int">
|
|
Packit |
0f19cf |
<xsl:param name="char" select="'0'"/>
|
|
Packit |
0f19cf |
<xsl:variable name="c">
|
|
Packit |
0f19cf |
<xsl:value-of select="translate($char, 'abcdef', 'ABCDEF')"/>
|
|
Packit |
0f19cf |
</xsl:variable>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
$c))"/>
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:template name="hex-to-rgb">
|
|
Packit |
0f19cf |
<xsl:param name="hex" select="'0'"/>
|
|
Packit |
0f19cf |
<xsl:choose>
|
|
Packit |
0f19cf |
<xsl:when test="string-length($hex) <= 2">
|
|
Packit |
0f19cf |
<xsl:call-template name="hex-to-rate">
|
|
Packit |
0f19cf |
<xsl:with-param name="hex" select="$hex"/>
|
|
Packit |
0f19cf |
</xsl:call-template>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:otherwise>
|
|
Packit |
0f19cf |
<xsl:variable name="right">
|
|
Packit |
0f19cf |
<xsl:call-template name="hex-to-rate">
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
select="substring($hex, string-length($hex)-1)"/>
|
|
Packit |
0f19cf |
</xsl:call-template>
|
|
Packit |
0f19cf |
</xsl:variable>
|
|
Packit |
0f19cf |
<xsl:variable name="left">
|
|
Packit |
0f19cf |
<xsl:call-template name="hex-to-rgb">
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
select="substring($hex, 1, string-length($hex)-2)"/>
|
|
Packit |
0f19cf |
</xsl:call-template>
|
|
Packit |
0f19cf |
</xsl:variable>
|
|
Packit |
0f19cf |
<xsl:value-of select="$left"/>
|
|
Packit |
0f19cf |
<xsl:text>,</xsl:text>
|
|
Packit |
0f19cf |
<xsl:value-of select="$right"/>
|
|
Packit |
0f19cf |
</xsl:otherwise>
|
|
Packit |
0f19cf |
</xsl:choose>
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:template name="hex-to-rate">
|
|
Packit |
0f19cf |
<xsl:param name="hex" select="'0'"/>
|
|
Packit |
0f19cf |
<xsl:variable name="int">
|
|
Packit |
0f19cf |
<xsl:call-template name="hex-to-int">
|
|
Packit |
0f19cf |
<xsl:with-param name="hex" select="$hex"/>
|
|
Packit |
0f19cf |
</xsl:call-template>
|
|
Packit |
0f19cf |
</xsl:variable>
|
|
Packit |
0f19cf |
<xsl:value-of select="round(($int * 100) div 255) div 100"/>
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
#xxyyzz => [rgb]{u,v,w}
|
|
Packit |
0f19cf |
#xaxaxa => [gray]{u}
|
|
Packit |
0f19cf |
xxx => {xxx}
|
|
Packit |
0f19cf |
{xxx} => {xxx}
|
|
Packit |
0f19cf |
[aa]{xxx} => [aa]{xxx}
|
|
Packit |
0f19cf |
-->
|
|
Packit |
0f19cf |
<xsl:template name="get-color">
|
|
Packit |
0f19cf |
<xsl:param name="color"/>
|
|
Packit |
0f19cf |
<xsl:choose>
|
|
Packit |
0f19cf |
<xsl:when test="starts-with($color, '#')">
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
select="concat('000000', substring-after($color, '#'))"/>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
select="substring($fullcolor, string-length($fullcolor)-5)"/>
|
|
Packit |
0f19cf |
<xsl:variable name="r" select="substring($rcolor,1,2)"/>
|
|
Packit |
0f19cf |
<xsl:variable name="g" select="substring($rcolor,3,2)"/>
|
|
Packit |
0f19cf |
<xsl:variable name="b" select="substring($rcolor,5,2)"/>
|
|
Packit |
0f19cf |
<xsl:choose>
|
|
Packit |
0f19cf |
<xsl:when test="$r=$g and $g=$b">
|
|
Packit |
0f19cf |
<xsl:text>[gray]{</xsl:text>
|
|
Packit |
0f19cf |
<xsl:call-template name="hex-to-rate">
|
|
Packit |
0f19cf |
<xsl:with-param name="hex" select="$r"/>
|
|
Packit |
0f19cf |
</xsl:call-template>
|
|
Packit |
0f19cf |
<xsl:text>}</xsl:text>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:otherwise>
|
|
Packit |
0f19cf |
<xsl:text>[rgb]{</xsl:text>
|
|
Packit |
0f19cf |
<xsl:call-template name="hex-to-rgb">
|
|
Packit |
0f19cf |
<xsl:with-param name="hex" select="$rcolor"/>
|
|
Packit |
0f19cf |
</xsl:call-template>
|
|
Packit |
0f19cf |
<xsl:text>}</xsl:text>
|
|
Packit |
0f19cf |
</xsl:otherwise>
|
|
Packit |
0f19cf |
</xsl:choose>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:when test="starts-with($color, '[') or starts-with($color, '{')">
|
|
Packit |
0f19cf |
<xsl:value-of select="$color"/>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:otherwise>
|
|
Packit |
0f19cf |
<xsl:text>{</xsl:text>
|
|
Packit |
0f19cf |
<xsl:value-of select="$color"/>
|
|
Packit |
0f19cf |
<xsl:text>}</xsl:text>
|
|
Packit |
0f19cf |
</xsl:otherwise>
|
|
Packit |
0f19cf |
</xsl:choose>
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<u>
|
|
Packit |
0f19cf |
<rgb>CCFFEE</rgb>
|
|
Packit |
0f19cf |
<rgb>DD7E67</rgb>
|
|
Packit |
0f19cf |
<rgb>7A33</rgb>
|
|
Packit |
0f19cf |
<color>#d5</color>
|
|
Packit |
0f19cf |
<color>#7A33</color>
|
|
Packit |
0f19cf |
<color>#3a7a33</color>
|
|
Packit |
0f19cf |
<color>#3a3a3a</color>
|
|
Packit |
0f19cf |
<color>#cccccc</color>
|
|
Packit |
0f19cf |
<color>red</color>
|
|
Packit |
0f19cf |
<color>{blue}</color>
|
|
Packit |
0f19cf |
<color>[gray]{0.8}</color>
|
|
Packit |
0f19cf |
</u>
|
|
Packit |
0f19cf |
-->
|
|
Packit |
0f19cf |
<xsl:template match="rgb">
|
|
Packit |
0f19cf |
<xsl:call-template name="hex-to-rgb">
|
|
Packit |
0f19cf |
<xsl:with-param name="hex" select="."/>
|
|
Packit |
0f19cf |
</xsl:call-template>
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:template match="color">
|
|
Packit |
0f19cf |
<xsl:call-template name="get-color">
|
|
Packit |
0f19cf |
<xsl:with-param name="color" select="."/>
|
|
Packit |
0f19cf |
</xsl:call-template>
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
</xsl:stylesheet>
|