Minor fixes to xml2md.xsl
- Remove outdated comment - Fix code block delimiter
This commit is contained in:
parent
0707ada63b
commit
75870fbc45
@ -10,8 +10,6 @@ Since the XML output is lossy, a lossless MD->XML->MD roundtrip isn't
|
|||||||
possible. The XML->MD->XML roundtrip should produce the original XML,
|
possible. The XML->MD->XML roundtrip should produce the original XML,
|
||||||
though.
|
though.
|
||||||
|
|
||||||
HTML blocks and inlines aren't supported.
|
|
||||||
|
|
||||||
Example usage with xsltproc:
|
Example usage with xsltproc:
|
||||||
|
|
||||||
cmark -t xml doc.md | xsltproc -novalid xml2md.xsl -
|
cmark -t xml doc.md | xsltproc -novalid xml2md.xsl -
|
||||||
@ -123,15 +121,23 @@ Example usage with xsltproc:
|
|||||||
|
|
||||||
<xsl:template match="md:code_block">
|
<xsl:template match="md:code_block">
|
||||||
<xsl:apply-templates select="." mode="indent-block"/>
|
<xsl:apply-templates select="." mode="indent-block"/>
|
||||||
<!-- TODO: Longer delimiter if text contains ``` -->
|
|
||||||
<xsl:text>```</xsl:text>
|
<xsl:variable name="t" select="string(.)"/>
|
||||||
|
<xsl:variable name="delim">
|
||||||
|
<xsl:call-template name="code-delim">
|
||||||
|
<xsl:with-param name="text" select="$t"/>
|
||||||
|
<xsl:with-param name="delim" select="'```'"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:variable>
|
||||||
|
|
||||||
|
<xsl:value-of select="$delim"/>
|
||||||
<xsl:value-of select="@info"/>
|
<xsl:value-of select="@info"/>
|
||||||
<xsl:text> </xsl:text>
|
<xsl:text> </xsl:text>
|
||||||
<xsl:call-template name="indent-lines">
|
<xsl:call-template name="indent-lines">
|
||||||
<xsl:with-param name="code" select="."/>
|
<xsl:with-param name="code" select="$t"/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
<xsl:apply-templates select="ancestor::md:*" mode="indent"/>
|
<xsl:apply-templates select="ancestor::md:*" mode="indent"/>
|
||||||
<xsl:text>```</xsl:text>
|
<xsl:value-of select="$delim"/>
|
||||||
<xsl:text> </xsl:text>
|
<xsl:text> </xsl:text>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
@ -228,28 +234,16 @@ Example usage with xsltproc:
|
|||||||
<!-- Inline code -->
|
<!-- Inline code -->
|
||||||
|
|
||||||
<xsl:template match="md:code">
|
<xsl:template match="md:code">
|
||||||
<xsl:call-template name="escape-code">
|
<xsl:variable name="t" select="string(.)"/>
|
||||||
<xsl:with-param name="text" select="string(.)"/>
|
<xsl:variable name="delim">
|
||||||
</xsl:call-template>
|
<xsl:call-template name="code-delim">
|
||||||
</xsl:template>
|
<xsl:with-param name="text" select="$t"/>
|
||||||
|
<xsl:with-param name="delim" select="'`'"/>
|
||||||
<xsl:template name="escape-code">
|
</xsl:call-template>
|
||||||
<xsl:param name="text"/>
|
</xsl:variable>
|
||||||
<xsl:param name="delim" select="'`'"/>
|
<xsl:value-of select="$delim"/>
|
||||||
|
<xsl:value-of select="$t"/>
|
||||||
<xsl:choose>
|
<xsl:value-of select="$delim"/>
|
||||||
<xsl:when test="contains($text, $delim)">
|
|
||||||
<xsl:call-template name="escape-code">
|
|
||||||
<xsl:with-param name="text" select="$text"/>
|
|
||||||
<xsl:with-param name="delim" select="concat($delim, '`')"/>
|
|
||||||
</xsl:call-template>
|
|
||||||
</xsl:when>
|
|
||||||
<xsl:otherwise>
|
|
||||||
<xsl:value-of select="$delim"/>
|
|
||||||
<xsl:value-of select="$text"/>
|
|
||||||
<xsl:value-of select="$delim"/>
|
|
||||||
</xsl:otherwise>
|
|
||||||
</xsl:choose>
|
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<!-- Links and images -->
|
<!-- Links and images -->
|
||||||
@ -280,7 +274,7 @@ Example usage with xsltproc:
|
|||||||
<xsl:value-of select="."/>
|
<xsl:value-of select="."/>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<!-- Escape text -->
|
<!-- Escaping helpers -->
|
||||||
|
|
||||||
<xsl:template name="escape-text">
|
<xsl:template name="escape-text">
|
||||||
<xsl:param name="text"/>
|
<xsl:param name="text"/>
|
||||||
@ -305,4 +299,21 @@ Example usage with xsltproc:
|
|||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="code-delim">
|
||||||
|
<xsl:param name="text"/>
|
||||||
|
<xsl:param name="delim"/>
|
||||||
|
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="contains($text, $delim)">
|
||||||
|
<xsl:call-template name="code-delim">
|
||||||
|
<xsl:with-param name="text" select="$text"/>
|
||||||
|
<xsl:with-param name="delim" select="concat($delim, '`')"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:value-of select="$delim"/>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
</xsl:stylesheet>
|
</xsl:stylesheet>
|
||||||
|
Loading…
Reference in New Issue
Block a user