[libvirt] [PATCH 2/3] Improve tokenizing of linkable terms
Daniel Veillard
veillard at redhat.com
Fri Aug 12 03:18:52 UTC 2011
On Thu, Aug 11, 2011 at 02:44:00PM +0200, Philipp Hahn wrote:
> Currently only tabs and blanks are used for tokenizing the description,
> which breaks when a term is at the end of a line or has () appended to
> it.
> 1. Use also other white space characters such as new-lines and carriage
> return for splitting.
> 2. Remove some common non-word characters from the token before lookup.
>
> Signed-off-by: Philipp Hahn <hahn at univention.de>
> ---
> docs/newapi.xsl | 9 ++++++---
> 1 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/docs/newapi.xsl b/docs/newapi.xsl
> index 445a48c..6e1c646 100644
> --- a/docs/newapi.xsl
> +++ b/docs/newapi.xsl
> @@ -54,10 +54,13 @@
> because the keys are only defined on the main document -->
> <xsl:template mode="dumptoken" match='*'>
> <xsl:param name="token"/>
> - <xsl:variable name="ref" select="key('symbols', $token)"/>
> + <xsl:variable name="stem" select="translate($token, '(),.:;@', '')"/>
> + <xsl:variable name="ref" select="key('symbols', $stem)"/>
> <xsl:choose>
> <xsl:when test="$ref">
> - <a href="libvirt-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$token"/></a>
> + <xsl:value-of select="substring-before($token, $stem)"/>
> + <a href="libvirt-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$stem"/></a>
> + <xsl:value-of select="substring-after($token, $stem)"/>
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of select="$token"/>
> @@ -70,7 +73,7 @@
> <xsl:param name="text"/>
> <xsl:variable name="ctxt" select='.'/>
> <!-- <xsl:value-of select="$text"/> -->
> - <xsl:for-each select="str:tokenize($text, ' ')">
> + <xsl:for-each select="str:tokenize($text, '
')">
> <xsl:apply-templates select="$ctxt" mode='dumptoken'>
> <xsl:with-param name="token" select="string(.)"/>
> </xsl:apply-templates>
ACK, that's good, thanks for digging and fixing this :-)
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list