[yelp-xsl] Enable syntax highlighting on DocBook, more languages
- From: Shaun McCance <shaunm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [yelp-xsl] Enable syntax highlighting on DocBook, more languages
- Date: Sun, 2 Jan 2011 22:05:30 +0000 (UTC)
commit d3054e8730b2a63097b7d07830762cb5902cc9e5
Author: Shaun McCance <shaunm gnome org>
Date: Sun Jan 2 17:03:05 2011 -0500
Enable syntax highlighting on DocBook, more languages
js/syntax.html | 194 ++++++++++++++++++++++++++++++++++
xslt/common/html.xsl | 2 +-
xslt/docbook/html/db2html-block.xsl | 60 ++++++++++-
xslt/mallard/html/mal2html-block.xsl | 49 +++++++++-
4 files changed, 302 insertions(+), 3 deletions(-)
---
diff --git a/js/syntax.html b/js/syntax.html
new file mode 100644
index 0000000..a9d4384
--- /dev/null
+++ b/js/syntax.html
@@ -0,0 +1,194 @@
+<html>
+<head>
+<style type="text/css">
+table { border-collapse: collapse; }
+td {
+ vertical-align: top;
+ border: solid 1px #888a85;
+ padding: 2px 4px 2px 4px;
+}
+p { max-width: 48em; }
+</style>
+<head>
+<body>
+
+<p>Yelp uses <a href="http://www.oriontransfer.co.nz/software/jquery-syntax/index.en">jQuery.Syntax</a>
+(currently version 2.3) for syntax highlighting. jquery.Syntax has its own naming
+conventions for syntaxes. Mallard uses MIME types. DocBook has a free-form language
+attribute. This page shows the mapping. We try to use MIME types found in the XDG
+mime types package. For DocBook, we try to be compatible with language names used
+by docbook-style-xsl.</p>
+
+<table>
+
+<tr>
+<th>Syntax</th>
+<th>Mallard</th>
+<th>DocBook</th>
+</tr>
+
+<tr>
+<td>apache</td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td>applescript</td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td>asm</td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td>bash</td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td>bash-script</td>
+<td>application/x-shellscript</td>
+<td>bash</td>
+</tr>
+
+<tr>
+<td>basic</td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td>clang</td>
+<td>text/x-csrc<br>text/x-chdr<br>text/x-c++hdr<br>text/x-c++src<br>text/x-objcsrc</td>
+<td>c<br>cpp<br>objc</td>
+</tr>
+
+<tr>
+<td>csharp</td>
+<td>text/x-csharp</td>
+<td>csharp</td>
+</tr>
+
+<tr>
+<td>css</td>
+<td>text/css</td>
+<td>css</td>
+</tr>
+
+<tr>
+<td>diff</td>
+<td>text/x-patch</td>
+<td>diff</td>
+</tr>
+
+<tr>
+<td>haskell</td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td>html</td>
+<td>text/html<br>application/xml<br>*/*+xml</td>
+<td>html<br>xml</td>
+</tr>
+
+<tr>
+<td>java</td>
+<td>text/x-java</td>
+<td>java</td>
+</tr>
+
+<tr>
+<td>javascript</td>
+<td>application/javascript</td>
+<td>javascript</td>
+</tr>
+
+<tr>
+<td>lisp</td>
+<td>text/x-scheme<br>text/x-emacs-lisp</td>
+<td>lisp</td>
+</tr>
+
+<tr>
+<td>lua</td>
+<td>text/x-lua</td>
+<td>lua</td>
+</tr>
+
+<tr>
+<td>ooc</td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td>pascal</td>
+<td>text/x-pascal</td>
+<td>pascal</td>
+</tr>
+
+<tr>
+<td>perl5</td>
+<td>application/x-perl</td>
+<td>perl</td>
+</tr>
+
+<tr>
+<td>php</td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td>php-script</td>
+<td>application/x-php</td>
+<td>php</td>
+</tr>
+
+<tr>
+<td>plain</td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td>python</td>
+<td>text/x-python</td>
+<td>python</td>
+</tr>
+
+<tr>
+<td>ruby</td>
+<td>application/x-ruby</td>
+<td>ruby</td>
+</tr>
+
+<tr>
+<td>smalltalk</td>
+<td></td>
+<td></td>
+</tr>
+
+<tr>
+<td>sql</td>
+<td>text/x-sql</td>
+<td>sql</td>
+</tr>
+
+<tr>
+<td>yaml</td>
+<td>application/x-yaml</td>
+<td>yaml</td>
+</tr>
+
+</table>
+</body>
+</html>
diff --git a/xslt/common/html.xsl b/xslt/common/html.xsl
index 178854b..323d0d1 100644
--- a/xslt/common/html.xsl
+++ b/xslt/common/html.xsl
@@ -166,7 +166,7 @@ This parameter specifies whether syntax highlighting should be enabled for
code blocks in the output HTML. Syntax highlighting is done at document load
time by JavaScript.
-->
-<xsl:param name="html.syntax.highlight" select="false()"/>
+<xsl:param name="html.syntax.highlight" select="true()"/>
<!--**==========================================================================
diff --git a/xslt/docbook/html/db2html-block.xsl b/xslt/docbook/html/db2html-block.xsl
index 4253738..915a7bb 100644
--- a/xslt/docbook/html/db2html-block.xsl
+++ b/xslt/docbook/html/db2html-block.xsl
@@ -341,7 +341,65 @@ template.
<xsl:with-param name="number" select="$number"/>
</xsl:call-template></pre>
</xsl:if>
- <pre class="contents">
+ <pre>
+ <xsl:attribute name="class">
+ <xsl:text>contents </xsl:text>
+ <xsl:if test="$html.syntax.highlight and $node/@language">
+ <xsl:choose>
+ <xsl:when test="@language = 'bash'">
+ <xsl:text>syntax brush-bash-script</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'c' or @language = 'cpp' or @language = 'objc'">
+ <xsl:text>syntax brush-clang</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'csharp'">
+ <xsl:text>syntax brush-csharp</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'css'">
+ <xsl:text>syntax brush-css</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'diff'">
+ <xsl:text>syntax brush-diff</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'html' or @language = 'xml'">
+ <xsl:text>syntax brush-html</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'java'">
+ <xsl:text>syntax brush-java</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'javascript'">
+ <xsl:text>syntax brush-javascript</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'lisp'">
+ <xsl:text>syntax brush-lisp</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'lua'">
+ <xsl:text>syntax brush-lua</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'pascal'">
+ <xsl:text>syntax brush-pascal</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'perl'">
+ <xsl:text>syntax brush-perl5</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'php'">
+ <xsl:text>syntax brush-php-script</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'python'">
+ <xsl:text>syntax brush-python</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'ruby'">
+ <xsl:text>syntax brush-ruby</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'sql'">
+ <xsl:text>syntax brush-sql</xsl:text>
+ </xsl:when>
+ <xsl:when test="@language = 'yaml'">
+ <xsl:text>syntax brush-yaml</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:attribute>
<!-- Strip off a leading newline -->
<xsl:if test="$children[1]/self::text()">
<xsl:choose>
diff --git a/xslt/mallard/html/mal2html-block.xsl b/xslt/mallard/html/mal2html-block.xsl
index 3961fd1..618404f 100644
--- a/xslt/mallard/html/mal2html-block.xsl
+++ b/xslt/mallard/html/mal2html-block.xsl
@@ -63,13 +63,60 @@ automatically strip leading and trailing newlines using *{utils.strip_newlines}.
<xsl:text>contents </xsl:text>
<xsl:if test="$html.syntax.highlight and $node/@mime">
<xsl:choose>
- <xsl:when test="@mime = 'text/x-csrc' or @mime = 'text/x-chdr'">
+ <xsl:when test="@mime = 'application/x-shellscript'">
+ <xsl:text>syntax brush-bash-script</xsl:text>
+ </xsl:when>
+ <xsl:when test="@mime = 'text/x-csrc' or @mime = 'text/x-chdr' or
+ @mime = 'text/x-c++hdr' or @mime = 'text/x-c++src' or
+ @mime = 'text/x-objcsrc'">
<xsl:text>syntax brush-clang</xsl:text>
</xsl:when>
+ <xsl:when test="@mime = 'text/x-csharp'">
+ <xsl:text>syntax brush-csharp</xsl:text>
+ </xsl:when>
+ <xsl:when test="@mime = 'text/css'">
+ <xsl:text>syntax brush-css</xsl:text>
+ </xsl:when>
+ <xsl:when test="@mime = 'text/x-patch'">
+ <xsl:text>syntax brush-diff</xsl:text>
+ </xsl:when>
<xsl:when test="@mime = 'text/html' or @mime = 'application/xml' or
substring(@mime, string-length(@mime) - 3) = '+xml'">
<xsl:text>syntax brush-html</xsl:text>
</xsl:when>
+ <xsl:when test="@mime = 'text/x-java'">
+ <xsl:text>syntax brush-java</xsl:text>
+ </xsl:when>
+ <xsl:when test="@mime = 'application/javascript'">
+ <xsl:text>syntax brush-javascript</xsl:text>
+ </xsl:when>
+ <xsl:when test="@mime = 'text/x-scheme' or @mime = 'text/x-emacs-lisp'">
+ <xsl:text>syntax brush-lisp</xsl:text>
+ </xsl:when>
+ <xsl:when test="@mime = 'text/x-lua'">
+ <xsl:text>syntax brush-lua</xsl:text>
+ </xsl:when>
+ <xsl:when test="@mime = 'text/x-pascal'">
+ <xsl:text>syntax brush-pascal</xsl:text>
+ </xsl:when>
+ <xsl:when test="@mime = 'application/x-perl'">
+ <xsl:text>syntax brush-perl5</xsl:text>
+ </xsl:when>
+ <xsl:when test="@mime = 'application/x-php'">
+ <xsl:text>syntax brush-php-script</xsl:text>
+ </xsl:when>
+ <xsl:when test="@mime = 'text/x-python'">
+ <xsl:text>syntax brush-python</xsl:text>
+ </xsl:when>
+ <xsl:when test="@mime = 'application/x-ruby'">
+ <xsl:text>syntax brush-ruby</xsl:text>
+ </xsl:when>
+ <xsl:when test="@mime = 'text/x-sql'">
+ <xsl:text>syntax brush-sql</xsl:text>
+ </xsl:when>
+ <xsl:when test="@mime = 'application/x-yaml'">
+ <xsl:text>syntax brush-yaml</xsl:text>
+ </xsl:when>
</xsl:choose>
</xsl:if>
</xsl:attribute>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]