Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Path: checkit / xsl / html.xsl
Views: 1833
Image: ubuntu2004
1
<?xml version="1.0"?>
2
<xsl:stylesheet version="1.0"
3
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
4
<xsl:output method="html"/>
5
6
<!-- Normalize whitespace but don't completely trim beginning or end: https://stackoverflow.com/a/5044657/1607849 -->
7
<xsl:template match="text()"><xsl:value-of select="translate(normalize-space(concat('&#x7F;',.,'&#x7F;')),'&#x7F;','')"/></xsl:template>
8
9
<xsl:template match="exercise">
10
<div class="checkit exercise">
11
<xsl:attribute name="data-checkit-slug"><xsl:value-of select="@checkit-slug"/></xsl:attribute>
12
<xsl:attribute name="data-checkit-title"><xsl:value-of select="@checkit-title"/></xsl:attribute>
13
<xsl:attribute name="data-checkit-seed"><xsl:value-of select="@checkit-seed"/></xsl:attribute>
14
<xsl:apply-templates/>
15
</div>
16
</xsl:template>
17
18
<xsl:template match="statement">
19
<div class="exercise-statement"><xsl:apply-templates/></div>
20
</xsl:template>
21
22
<xsl:template match="answer">
23
<div class="exercise-answer">
24
<p><b>Answer:</b></p>
25
<xsl:apply-templates/>
26
</div>
27
</xsl:template>
28
29
<xsl:template match="p">
30
<p><xsl:apply-templates/></p>
31
</xsl:template>
32
33
<xsl:template match="me"><p class="math math-display">\[<xsl:value-of select="."/>\]</p></xsl:template>
34
<xsl:template match="md">
35
<p class="math math-display">\begin{align*} <xsl:apply-templates select="mrow"/> \end{align*}</p>
36
</xsl:template>
37
<xsl:template match="mrow"><xsl:value-of select="."/> \\</xsl:template>
38
<xsl:template match="m"><span class="math math-inline">\(<xsl:value-of select="."/>\)</span></xsl:template>
39
40
<xsl:template match="ul"><ul><xsl:apply-templates select="li"/></ul></xsl:template>
41
<xsl:template match="ol"><ol type="a"><xsl:apply-templates select="li"/></ol></xsl:template>
42
<xsl:template match="li"><li><xsl:apply-templates/></li></xsl:template>
43
44
<xsl:template match="em"><b><xsl:apply-templates/></b></xsl:template>
45
46
<xsl:template match="c"><code><xsl:value-of select="."/></code></xsl:template>
47
<xsl:template match="url"><a><xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute><xsl:value-of select="@href"/></a></xsl:template>
48
49
<xsl:template match="figure">
50
<figure>
51
<img>
52
<xsl:attribute name="src"><xsl:value-of select="image/@TEMP-assets-url"/>/<xsl:value-of select="image/@TEMP-assets-file"/></xsl:attribute>
53
<xsl:attribute name="alt"><xsl:value-of select="description"/></xsl:attribute>
54
</img>
55
<figcaption>
56
<xsl:value-of select="caption"/>
57
</figcaption>
58
</figure>
59
</xsl:template>
60
<xsl:template match="image"/><!-- currently kill images outside figures -->
61
62
</xsl:stylesheet>
63