diff options
-rw-r--r-- | lib/erl_docgen/priv/xsl/db_funcs.xsl | 136 | ||||
-rw-r--r-- | lib/erl_docgen/priv/xsl/db_html.xsl | 10 | ||||
-rw-r--r-- | lib/erl_docgen/priv/xsl/db_pdf.xsl | 17 |
3 files changed, 159 insertions, 4 deletions
diff --git a/lib/erl_docgen/priv/xsl/db_funcs.xsl b/lib/erl_docgen/priv/xsl/db_funcs.xsl new file mode 100644 index 0000000000..8178ce44fb --- /dev/null +++ b/lib/erl_docgen/priv/xsl/db_funcs.xsl @@ -0,0 +1,136 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + # + # %CopyrightBegin% + # + # Copyright Ericsson AB 2009-2017. All Rights Reserved. + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + # + # %CopyrightEnd% + + --> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:erl="http://erlang.org" + xmlns:func="http://exslt.org/functions" + extension-element-prefixes="func" + xmlns:fo="http://www.w3.org/1999/XSL/Format" + xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> + + <!-- Used from code template to trim the newline/cr after the tag + and spaces/tabs between them + --> + <xsl:variable name="newlinechars" select="' '" /> + <xsl:variable name="spacechars" select="'	 '" /> + + <func:function name="erl:code_trim"> + <xsl:param name="string" /> + + <xsl:variable name="leftresult" select="erl:code_ltrim($string, $string)"/> + <xsl:variable name="result" select="erl:code_rtrim($leftresult, $leftresult)"/> + + <func:result select="$result"/> + </func:function> + + <func:function name="erl:code_rtrim"> + <xsl:param name="string" /> + <xsl:param name="origstring" /> + + <xsl:variable name="length" select="string-length($string)" /> + + <xsl:variable name="result"> + <xsl:if test="$length > 0"> + <xsl:choose> + <xsl:when test="contains($spacechars, substring($string, $length, 1))"> + <xsl:value-of select="erl:code_rtrim(substring($string, 1, $length - 1), $origstring)" /> + </xsl:when> + <xsl:when test="contains($newlinechars, substring($string, $length, 1))"> + <xsl:value-of select="erl:code_rtrim_1(substring($string, 1, $length - 1))" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$origstring" /> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + </xsl:variable> + + <func:result select="$result" /> + </func:function> + + <func:function name="erl:code_rtrim_1"> + <xsl:param name="string" /> + + <xsl:variable name="length" select="string-length($string)" /> + + <xsl:variable name="result"> + <xsl:if test="$length > 0"> + <xsl:choose> + <xsl:when test="contains($newlinechars, substring($string, $length, 1))"> + <xsl:value-of select="erl:code_rtrim_1(substring($string, 1, $length - 1))" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="erl:code_rtrim($string, $string)" /> + <!--xsl:value-of select="$string" /--> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + </xsl:variable> + + <func:result select="$result" /> + </func:function> + + <func:function name="erl:code_ltrim"> + <xsl:param name="string" /> + <xsl:param name="origstring" /> + + <xsl:variable name="result"> + <xsl:if test="string-length($string) > 0"> + <xsl:choose> + <xsl:when test="contains($spacechars, substring($string, 1, 1))"> + <xsl:value-of select="erl:code_ltrim(substring($string, 2), $origstring)" /> + </xsl:when> + <xsl:when test="contains($newlinechars, substring($string, 1, 1))"> + <xsl:value-of select="erl:code_ltrim_1(substring($string, 2))" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$origstring" /> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + </xsl:variable> + + <func:result select="$result" /> + </func:function> + + <func:function name="erl:code_ltrim_1"> + <xsl:param name="string" /> + + <xsl:variable name="result"> + <xsl:if test="string-length($string) > 0"> + <xsl:choose> + <xsl:when test="contains($newlinechars, substring($string, 1, 1))"> + <xsl:value-of select="erl:code_ltrim_1(substring($string, 2))" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="erl:code_ltrim($string, $string)" /> + <!--xsl:value-of select="$string" /--> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + </xsl:variable> + + <func:result select="$result" /> + </func:function> + +</xsl:stylesheet> diff --git a/lib/erl_docgen/priv/xsl/db_html.xsl b/lib/erl_docgen/priv/xsl/db_html.xsl index a5e277aece..75614392fb 100644 --- a/lib/erl_docgen/priv/xsl/db_html.xsl +++ b/lib/erl_docgen/priv/xsl/db_html.xsl @@ -30,6 +30,7 @@ xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <xsl:include href="db_html_params.xsl"/> + <xsl:include href="db_funcs.xsl"/> <func:function name="erl:flip_first_char"> <xsl:param name="in"/> @@ -1132,7 +1133,14 @@ <xsl:variable name="codenum"> <xsl:number level="any" from="chapter" count="code"/> </xsl:variable> - <div class="example"><pre><xsl:apply-templates/></pre></div> + <xsl:choose> + <xsl:when test="not(descendant::anno)"> + <div class="example"><pre><xsl:value-of select="erl:code_trim(text())"/></pre></div> + </xsl:when> + <xsl:otherwise> + <div class="example"><pre><xsl:apply-templates/></pre></div> + </xsl:otherwise> + </xsl:choose> </xsl:template> <!-- Pre --> diff --git a/lib/erl_docgen/priv/xsl/db_pdf.xsl b/lib/erl_docgen/priv/xsl/db_pdf.xsl index a9abd0270f..46de66bcd8 100644 --- a/lib/erl_docgen/priv/xsl/db_pdf.xsl +++ b/lib/erl_docgen/priv/xsl/db_pdf.xsl @@ -23,12 +23,16 @@ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" - extension-element-prefixes="exsl" - xmlns:fo="http://www.w3.org/1999/XSL/Format"> + xmlns:func="http://exslt.org/functions" + xmlns:erl="http://erlang.org" + extension-element-prefixes="exsl func" + xmlns:fo="http://www.w3.org/1999/XSL/Format" + xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <xsl:output method="xml" indent="yes"/> <xsl:include href="db_pdf_params.xsl"/> + <xsl:include href="db_funcs.xsl"/> <!-- Start of Dialyzer type/spec tags. See also the templates matching "name" and "seealso" as well as @@ -1234,7 +1238,14 @@ </xsl:variable> <fo:block xsl:use-attribute-sets="code"> - <xsl:apply-templates select="text()"/> + <xsl:choose> + <xsl:when test="not(descendant::anno)"> + <xsl:value-of select="erl:code_trim(text())"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> </fo:block> <xsl:if test="@caption"> |