removing # in XML identifiers
Dear list, I have the following sample: \startbuffer[demo] <a href="#myspecialid">the previous section</a> \stopbuffer \startxmlsetups xml:initialize \xmlsetsetup{#1}{a}{xml:*} \stopxmlsetups \xmlregistersetup{xml:initialize} \startxmlsetups xml:a \ctxlua{context("\\xmlatt{#1}{href}")} \ctxlua{local originalid = "abcde";% doesn’t work with # tex.print(string.sub(originalid,2))} \stopxmlsetups \starttext \xmlprocessbuffer{main}{demo}{} \stoptext In both for some reason unknown to me, compilation crashes whe string.sub has an string with # inside. How could I get the following command working? \ctxlua{tex.print(string.sub(context("\\xmlatt{#1}{href}"),2))} Even if I remove # from the href attribute, compilation crashes. Sorry for asking this again, but which is the right way to do this? I have spent hours trying to find out how to do it, but I’m afraid this is beyond my knowledge. Many thanks for your help, Pablo -- http://www.ousia.tk
On 05/06/2015 09:38 PM, Pablo Rodriguez wrote:
How could I get the following command working?
\ctxlua{tex.print(string.sub(context("\\xmlatt{#1}{href}"),2))}
I'm not sure that this will ever work - you're mixing and nesting lua and tex code in a messy way. My suggestion would be: if you need to process your xml code with lua, then process things in lua and separate the lua part from your tex code. Write a function xml.functions.a which does the substring split and the printing to context. I have written a page on the wiki http://wiki.contextgarden.net/XML_Lua which may be useful. Thomas
On 05/06/2015 10:49 PM, Thomas A. Schmitz wrote:
On 05/06/2015 09:38 PM, Pablo Rodriguez wrote:
How could I get the following command working?
\ctxlua{tex.print(string.sub(context("\\xmlatt{#1}{href}"),2))}
I'm not sure that this will ever work - you're mixing and nesting lua and tex code in a messy way. My suggestion would be: if you need to process your xml code with lua, then process things in lua and separate the lua part from your tex code. Write a function xml.functions.a which does the substring split and the printing to context. I have written a page on the wiki http://wiki.contextgarden.net/XML_Lua which may be useful.
Many thanks for your reply, Thomas. I have tried the following: \startxmlsetups xml:a \startluacode function xml.functions.removehash(str) tex.print(string.sub(str,2)) end \stopluacode \unexpanded\def\removehash#1% {\ctxlua{xml.functions.removehash("#1")}} \startasciimode\removehash{\xmlatt{#1}{href}}\stopasciimode \stopxmlsetups But for some reason unknown to me, it doesn’t work. It works on a standard file, but now there. What am I missing? Many thanks for your help, Pablo -- http://www.ousia.tk
On 5/6/2015 9:38 PM, Pablo Rodriguez wrote:
Dear list,
I have the following sample:
\startbuffer[demo] <a href="#myspecialid">the previous section</a> \stopbuffer
\startxmlsetups xml:initialize \xmlsetsetup{#1}{a}{xml:*} \stopxmlsetups
\xmlregistersetup{xml:initialize}
\startxmlsetups xml:a \ctxlua{context("\\xmlatt{#1}{href}")} \ctxlua{local originalid = "abcde";% doesn’t work with # tex.print(string.sub(originalid,2))} \stopxmlsetups
\starttext \xmlprocessbuffer{main}{demo}{} \stoptext
In both for some reason unknown to me, compilation crashes whe string.sub has an string with # inside.
How could I get the following command working?
\ctxlua{tex.print(string.sub(context("\\xmlatt{#1}{href}"),2))}
Even if I remove # from the href attribute, compilation crashes.
Sorry for asking this again, but which is the right way to do this?
I have spent hours trying to find out how to do it, but I’m afraid this is beyond my knowledge.
\startbuffer[demo] <a href="#myspecialid">the previous section</a> \stopbuffer \startxmlsetups xml:initialize \xmlsetsetup{#1}{a}{xml:*} \stopxmlsetups \xmlregistersetup{xml:initialize} \startxmlsetups xml:a \cldcontext{string.sub([[\xmlatt{#1}{href}]],2)} % next beta (more efficient): % \xmlrefatt{#1}{href} \stopxmlsetups \starttext \xmlprocessbuffer{main}{demo}{} \stoptext ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On 05/07/2015 11:44 PM, Hans Hagen wrote:
[...] \startxmlsetups xml:a \cldcontext{string.sub([[\xmlatt{#1}{href}]],2)} % next beta (more efficient): % \xmlrefatt{#1}{href} \stopxmlsetups
Many thanks for your reply and the improvement, Hans. Pablo -- http://www.ousia.tk
participants (3)
-
Hans Hagen
-
Pablo Rodriguez
-
Thomas A. Schmitz