[NTG-context] xml: spurious empty spaces

Hans Hagen pragma at wxs.nl
Wed Oct 19 13:47:14 CEST 2016


On 10/19/2016 12:07 PM, Thomas A. Schmitz wrote:
> Hi all,
>
> below is a slightly silly example that demonstrates a problem I’m having: I want to process (in Lua) the xml element “b” only when it has an attribute “display” set. This works, but elements without the attribute leave spurious spaces in the pdf output. The workaround I’m currently using is
>
> if xml.attribute(e, "./", "display", "") ~= "yes" then
>   context.unskip()
> else
>>
> but that seems like a kludge. Is this expected behavior, or should this be fixed?

\startxmlsetups xml:a
     \ignorespaces
     \xmlflush{#1}
     \removeunwantedspaces
\stopxmlsetups

\startxmlsetups xml:b
     \ignorespaces
     \xmlfunction{#1}{b}
     \removeunwantedspaces
\stopxmlsetups

> Thanks
>
> Thomas
>
> \startbuffer[test]
> <a>
>   <b display="yes">test</b>
>   <b>test</b>
>   <b>test</b>
>   <b>test</b>
>   <b display="yes">test</b>
>   <b display="yes">test</b>
>   <b>test</b>
> </a>
> \stopbuffer
>
> \startxmlsetups xml:testsetups
> 	\xmlsetsetup{\xmldocument}{a|b}{xml:*}
> \stopxmlsetups
>
> \xmlregistersetup{xml:testsetups}
>
> \startluacode
>   function xml.functions.b(e)
>   xml.strip(e, "/", nolines, anywhere)
>   if xml.attribute(e, "./", "display", "") == "yes" then
>       context.space()
>       context("/")
>       context.space()
>       lxml.flush(e)
>     end
>   end
> \stopluacode
>
> \startxmlsetups xml:a
> 	\xmlflush{#1}
> \stopxmlsetups
>
> \startxmlsetups xml:b
>  	 \xmlfunction{#1}{b}
> \stopxmlsetups
>
> \starttext
> \xmlprocessbuffer{main}{test}{}
>
> \stoptext
>
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
>
> maillist : ntg-context at ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki     : http://contextgarden.net
> ___________________________________________________________________________________
>


-- 

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------


More information about the ntg-context mailing list