[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Programlisting strip-spaces problem
Hello docbook-apps, I've made some customizations to progamlisting to strip empty lines in the beginning and in the end of it. It is a recursive template, but this is not a problem. The problem is that all internal formatting of programlisting is lost. For example: <programlisting> $ cvs -d:pserver:<parameter>username</parameter>@cvs.site.net:/repository checkout <parameter>module</parameter> </programlisting> Template below produces output string by string, omitting newlines at the end and beginning. And somewhere during conversion internal formatting for these strings is lost. Like $ cvs -d:pserver:<TT>username</TT>@cvs.site.net:/repository checkout <TT>module</TT> becomes $ cvs -d:pserver:username@cvs.site.net:/repository checkout module is there any way to avoid losing markup information? Maybe some exslt functions? <xsl:template name="trim_newlines"> <xsl:param name="string" select="."/> <xsl:param name="in_end_mode" select="false()"/> <!-- looking for endstring --> <xsl:message> <xsl:copy-of select="$string"/> <xsl:text> </xsl:text> </xsl:message> <xsl:if test="normalize-space($string)"> <!-- prevent endless cycle on empty blocks --> <xsl:variable name="nl" select="'
'" /> <xsl:variable name="beforenl" select="substring-before($string,$nl)" /> <xsl:variable name="afternl" select="substring-after($string,$nl)" /> <xsl:variable name="nextnl" select="normalize-space(substring-before($afternl,$nl))" /> <xsl:choose> <xsl:when test="not($in_end_mode) and string-length(normalize-space($beforenl)) = 0"> <xsl:call-template name="trim_newlines"> <xsl:with-param name="string" select="$afternl" /> <xsl:with-param name="in_end_mode" select="$in_end_mode or $nextnl" /> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:copy-of select="concat($beforenl,$nl)"/> <xsl:call-template name="trim_newlines"> <xsl:with-param name="string" select="$afternl" /> <xsl:with-param name="in_end_mode" select="true()" /> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:if> </xsl:template> Tnx. -- TiP
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]