Thanks, but I'm still getting the same error. I'm thinking that it has something to do with the percent characters...
This here works just fine: \startluacode function test(s) result = string.gsub(s, 'x20', 'MATCH') context(result) end \stopluacode \define[1]\test{\ctxlua{test("#1")}} \starttext \test{asdfx20} % -> asdfMATCH \stoptext But this here won't: \startluacode function test(s) result = string.gsub(s, '%%20', 'MATCH') context(result) end \stopluacode \define[1]\test{\ctxlua{test("#1")}} \starttext \test{asdf%20} % -> does not work \stoptext Any ideas? Best, Denis Von: Hans van der Meer via ntg-context <ntg-context@ntg.nl> Gesendet: Freitag, 21. Juli 2023 16:26 An: NTG ConTeXt <ntg-context@ntg.nl> Cc: Hans van der Meer <havdm...@ziggo.nl> Betreff: [NTG-context] Re: Replacing %20 with spaces in xml attributes Here in Terminal on my Mac: 21 ~: lua Lua 5.4.6 Copyright (C) 1994-2023 Lua.org, PUC-Rio > string.gsub('a%20b', '%%20', ' ') a b 1 > (string.gsub('a%20b', '%%20', ' ')) a b > ^D 21 ~: The first call returns the 1 giving the match, the extra ()'s get rid of that second return value. yours sincerely dr. Hans van der Meer On 21 Jul 2023, at 12:37, denis.ma...@unibe.ch<mailto:denis.ma...@unibe.ch> wrote: Hi, I'm typesetting an XML document where the links to the images contain spaces which are encoded as %20 <graphic xlink:href="a%20filename%20with%20spaces.jpg"/> Using this works in cases without spaces: \startxmlsetups xml:fig:graphic \externalfigure[\xmlatt{#1}{xlink:href}] \stopxmlsetups This also works for normal spaces, but is there a way to decode/expand the %20s to regular spaces? I've tried with some Lua, but I don't really know how to pass data around. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \startluacode function replaceSpaces(s) result = string.gsub(s, "%%20", " ") context(result) end \stopluacode \define[1]\replaceSpaces{\ctxlua{replaceSpaces("#1")}} \startxmlsetups xml:fig:graphic \externalfigure[\replaceSpaces{\xmlatt{#1}{xlink:href}}] \stopxmlsetups %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Any hints, why this does not work?` Also, maybe there's a simpler way for this kind of scenario? Best, Denis ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl<mailto:ntg-context@ntg.nl> / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl<https://www.pragma-ade.nl/> / http://context.aanhet.net<http://context.aanhet.net/> archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net<https://contextgarden.net/> ___________________________________________________________________________________
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________