GitBucket
4.21.2
Toggle navigation
Snippets
Sign in
Files
Branches
1
Releases
1
Issues
Pull requests
Labels
Priorities
Milestones
Wiki
Forks
nigel.stanger
/
XML
Browse code
- Reformatted code and made more effective use of xsl:text and newline-internal.
master
1 parent
067e8c2
commit
c4b11914851c32f0078e0e3dc117374fb8103de2
nstanger
authored
on 7 Oct 2011
Patch
Showing
1 changed file
modules/code-formatting.xml
Ignore Space
Show notes
View
modules/code-formatting.xml
<?xml version="1.0" encoding="utf-8"?> <!-- Inline code and code blocks (preformatted text, in HTML terms). --> <stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- Inline code. --> <template name="code" match="code"> <!-- <latex>\code{<xsl:apply-templates />}</latex> --> <!-- Using \verb is quite handy because things like underscores don't bother it. However, it seems it can't be used inside hyperlinks. Maybe create another template that just does a \texttt on the contents? OK, but then we need an <underscore> element to stop them from freaking LaTeX out. --> <common formats="/latex/xelatex/"> <xsl:text>\verb`</xsl:text> <xsl:apply-templates /> <xsl:text>`</xsl:text> </common> <common formats="/html/xhtml/"> <code><xsl:apply-templates /></code> </common> </template> <!-- Code block. We can decide later whether to use plain verbatim or listings. --> <template name="code-block" match="code-block"> <common formats="/latex/xelatex/"> <xsl:call-template name="newline-internal" /> <!-- If the code-block specifies "allow-breaks='no'", wrap the verbatim inside a minipage to avoid page breaks within the code. --> <xsl:if test="@allow-breaks = 'no'"> <xsl:text>\vskip\baselineskip</xsl:text> <xsl:call-template name="newline-internal" /> <xsl:text>\begin{minipage}{\textwidth}</xsl:text> <xsl:call-template name="newline-internal" /> </xsl:if> <xsl:text>\begin{verbatim}</xsl:text> <xsl:call-template name="newline-internal" /> <xsl:apply-templates /> <xsl:call-template name="newline-internal" /> <xsl:text>\end{verbatim}</xsl:text> <xsl:call-template name="newline-internal" /> <xsl:if test="@allow-breaks = 'no'"> <xsl:text>\end{minipage}</xsl:text> <xsl:call-template name="newline-internal" /> <xsl:text>\vskip\baselineskip</xsl:text> <xsl:call-template name="newline-internal" /> </xsl:if> <xsl:call-template name="newline-internal" /> </common> <common formats="/html/xhtml/"> <pre class="code"><xsl:apply-templates /></pre> </common> </template> <!-- This is for stuff that should unequivocally be treated verbatim (e.g. problem code). I'm pretty sure that previously this was distinguished from "code-block" because it (code-block) used to use listings instead of verbatim. Now that they're both using verbatim there is probably no need for them both (but we might switch back to using listings for code-block). --> <template name="verbatim" match="verbatim"> <common formats="/latex/xelatex/"> <xsl:call-template name="newline-internal" /> <xsl:text>\begin{verbatim}</xsl:text> <xsl:call-template name="newline-internal" /> <xsl:apply-templates /> <xsl:call-template name="newline-internal" /> <xsl:text>\end{verbatim}</xsl:text> <xsl:call-template name="newline-internal" /> </common> <common formats="/html/xhtml/"> <pre><xsl:apply-templates /></pre> </common> </template> </stylesheet>
<?xml version="1.0" encoding="utf-8"?> <!-- Inline code and code blocks (preformatted text, in HTML terms). --> <stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- Inline code. --> <template name="code" match="code"> <!-- <latex>\code{<xsl:apply-templates />}</latex> --> <!-- Using \verb is quite handy because things like underscores don't bother it. However, it seems it can't be used inside hyperlinks. Maybe create another template that just does a \texttt on the contents? --> <!-- OK, but then we need an <underscore> element to stop them from freaking LaTeX out. --> <common formats="/latex/xelatex/">\verb`<xsl:apply-templates />`</common> <common formats="/html/xhtml/"><code><xsl:apply-templates /></code></common> </template> <!-- Code block. We can decide later whether to use plain verbatim or listings. --> <template name="code-block" match="code-block"> <common formats="/latex/xelatex/"> <xsl:call-template name="newline-internal" /> <!-- If the code-block specifies "allow-breaks='no'", wrap the verbatim inside a minipage to avoid page breaks within the code. --> <xsl:if test="@allow-breaks = 'no'"> <xsl:text>\vskip\baselineskip</xsl:text> <xsl:call-template name="newline-internal" /> <xsl:text>\begin{minipage}{\textwidth}</xsl:text> <xsl:call-template name="newline-internal" /> </xsl:if> <xsl:text>\begin{verbatim}</xsl:text> <xsl:apply-templates /> <xsl:text>\end{verbatim}</xsl:text> <xsl:call-template name="newline-internal" /> <xsl:if test="@allow-breaks = 'no'"> <xsl:text>\end{minipage}</xsl:text> <xsl:call-template name="newline-internal" /> <xsl:text>\vskip\baselineskip</xsl:text> <xsl:call-template name="newline-internal" /> </xsl:if> <xsl:call-template name="newline-internal" /> </common> <common formats="/html/xhtml/"> <pre class="code"><xsl:apply-templates /></pre> </common> </template> <!-- This is for stuff that should unequivocally be treated verbatim (e.g. problem code). I'm pretty sure that previously this was distinguished from "code-block" because it (code-block) used to use listings instead of verbatim. Now that they're both using verbatim there is probably no need for them both (but we might switch back to using listings for code-block). --> <template name="verbatim" match="verbatim"> <common formats="/latex/xelatex/"> <xsl:call-template name="newline-internal" /> <xsl:text>\begin{verbatim}</xsl:text> <xsl:apply-templates /> <xsl:text>\end{verbatim}</xsl:text> <xsl:call-template name="newline-internal" /> </common> <common formats="/html/xhtml/"> <pre><xsl:apply-templates /></pre> </common> </template> </stylesheet>
Show line notes below