XML-processing: Error with hyphenatedurl
Hi, I've receiving errors that seem to be related to hyphenatedurl. The problem is I cannot really reproduce it in a MWE. The example below works, but if I include the link in my real document, I'am getting this error message (copied from -error.log): %%%%%%%%%%%%%%%%%%%%% return { ["errortype"]=1, ["filename"]="", ["lastcontext"]="\n<to be read again> \n \n \\xdeffile://xdef \n<macro> \\expandedfile://expanded \n #1->\\xdeffile://xdef \n \\m_syst_helpers_expandedfile://m_syst_helpers_expanded {\\noexpand #1}\\m_syst_helpers_expanded \n<macro> \\22>:xml:ext-linkfile://22%3e:xml:ext-link \n #1->\\begingroupfile://begingroup \\expandUxfile://expandUx \\expandedfile://expanded \n {\\goto {\\hyphenatedurl {\\xmlflush {#1}}}[url(\\xmlflushfile://xmlflush {#1})]}\\endgroup \n<lua output> \n<macro> \\22>:xml:pfile://22%3e:xml:p \n #1->\\begingroupfile://begingroup \\xmlfilterfile://xmlfilter {#1}{.[@xml:lang]/command(xml:language)}\\xmlflush {#1}\n \\endgroupfile://endgroup \\parfile://par \n<lua output> \n ...\n\n<initial> \n \n\n", ["lastluaerror"]="", ["lasttexerror"]="Missing number, treated as zero", ["lasttexhelp"]="A number should have been here; I inserted '0'. (If you can't figure out why I\nneeded to see a number, look up 'weird error' in the index to The TeXbook.)", ["linenumber"]=9, ["offset"]=10, ["skiplinenumber"]=5, } %%%%%%%%%%%%%%%%%%%% Two things seemed to make it work: 1. Remove the link. 2. Comment out \expandUx in this setup: %%%%%%%%%%%%%%%%%%%% \startxmlsetups xml:ext-link \begingroup \expandUx % commenting this out makes it work \expanded{\goto{\hyphenatedurl{\xmlflush{#1}}}[url(\xmlflush{#1})]} \endgroup \stopxmlsetups %%%%%%%%%%%%%%%%%%%% Best, Denis %%%%%%%%%%%%%%%%%%%%%%%%%%%% \setupinteraction[state=start] \startxmlsetups xml:test \xmlsetsetup{#1}{*}{-} \xmlsetsetup{#1}{article|ext-link}{xml:*} \stopxmlsetups \xmlregistersetup{xml:test} \startxmlsetups xml:article \starttext \xmlflush{#1} \stoptext \stopxmlsetups \startxmlsetups xml:ext-link \begingroup \expandUx \expanded{\goto{\hyphenatedurl{\xmlflush{#1}}}[url(\xmlflush{#1})]} \endgroup \stopxmlsetups \startbuffer[test] <?xml version="1.0" encoding="utf-8" ?> <article> asdf <ext-link ext-link-type="uri" xlink:href="asdf">asdf</ext-link> </article> \stopbuffer \xmlprocessbuffer{test}{test}{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
On 10/27/21 3:03 PM, Denis Maier via ntg-context wrote:
[...] I’ve receiving errors that seem to be related to hyphenatedurl. The problem is I cannot really reproduce it in a MWE. The example below works, but if I include the link in my real document, I’am getting this error message (copied from -error.log): [...] Two things seemed to make it work: 1. Remove the link. 2. Comment out \expandUx in this setup:
Hi Denis, in my environments to typeset XML sources, I never need \expandUx, why do you needit? Another approach (I don’t know whether this will work in your real-world document) might be using \xmlpure instead of \xmlflush as in: \goto{\hyphenatedurl{\xmlflush{#1}}}[url(\xmlpure{#1})] The background for both commands can be found on https://www.pragma-ade.com/general/manuals/xml-mkiv.pdf#page=103. I hope it helps, Pablo -- http://www.ousia.tk
-----Ursprüngliche Nachricht----- Von: ntg-context
Im Auftrag von Pablo Rodriguez via ntg-context Gesendet: Mittwoch, 27. Oktober 2021 15:43 An: Denis Maier via ntg-context Cc: Pablo Rodriguez Betreff: Re: [NTG-context] XML-processing: Error with hyphenatedurl On 10/27/21 3:03 PM, Denis Maier via ntg-context wrote:
[...] I’ve receiving errors that seem to be related to hyphenatedurl. The problem is I cannot really reproduce it in a MWE. The example below works, but if I include the link in my real document, I’am getting this error message (copied from -error.log): [...] Two things seemed to make it work: 1. Remove the link. 2. Comment out \expandUx in this setup:
Hi Denis,
in my environments to typeset XML sources, I never need \expandUx, why do you needit?
I've had a problem with special characters in URLs. Wolfgang suggested to use \expandUx: https://www.mail-archive.com/ntg-context@ntg.nl/msg95959.html
Another approach (I don’t know whether this will work in your real-world document) might be using \xmlpure instead of \xmlflush as in:
\goto{\hyphenatedurl{\xmlflush{#1}}}[url(\xmlpure{#1})]
That works. Thank you. Denis
-----Ursprüngliche Nachricht----- Von: Maier, Denis Christian (UB) Gesendet: Mittwoch, 27. Oktober 2021 16:31 An: 'mailing list for ConTeXt users'
Cc: Pablo Rodriguez Betreff: AW: [NTG-context] XML-processing: Error with hyphenatedurl -----Ursprüngliche Nachricht----- Von: ntg-context
Im Auftrag von Pablo Rodriguez via ntg-context Gesendet: Mittwoch, 27. Oktober 2021 15:43 An: Denis Maier via ntg-context Cc: Pablo Rodriguez Betreff: Re: [NTG-context] XML-processing: Error with hyphenatedurl On 10/27/21 3:03 PM, Denis Maier via ntg-context wrote:
[...] I’ve receiving errors that seem to be related to hyphenatedurl. The problem is I cannot really reproduce it in a MWE. The example below works, but if I include the link in my real document, I’am getting this error message (copied from -error.log): [...] Two things seemed to make it work: 1. Remove the link. 2. Comment out \expandUx in this setup:
Hi Denis,
in my environments to typeset XML sources, I never need \expandUx, why do you needit?
I've had a problem with special characters in URLs. Wolfgang suggested to use \expandUx: https://www.mail-archive.com/ntg-context@ntg.nl/msg95959.html
Another approach (I don’t know whether this will work in your real-world document) might be using \xmlpure instead of \xmlflush as in:
\goto{\hyphenatedurl{\xmlflush{#1}}}[url(\xmlpure{#1})]
That works. Thank you.
Oh, actually that leads to a similar problem as in my original question where Wolfgang suggested using \expandUx: if the URL is broken across lines, the link content is also broken. Interestingly, the plain \startxmlsetups xml:ext-link-var-var \goto{\hyphenatedurl{\xmlflush{#1}}}[url(\xmlflush{#1})] \stopxmlsetups seems to work now correctly. Best, Denis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \setuppapersize[A6] \setupinteraction[state=start] \startxmlsetups xml:test \xmlsetsetup{#1}{*}{-} \xmlsetsetup{#1}{article|ext-link|ext-link-var|ext-link-var-var}{xml:*} \stopxmlsetups \xmlregistersetup{xml:test} \startxmlsetups xml:article \starttext \xmlflush{#1} \stoptext \stopxmlsetups \startxmlsetups xml:ext-link \begingroup \expandUx \expanded{\goto{\hyphenatedurl{\xmlflush{#1}}}[url(\xmlflush{#1})]} \endgroup \stopxmlsetups \startxmlsetups xml:ext-link-var \goto{\hyphenatedurl{\xmlflush{#1}}}[url(\xmlpure{#1})] \stopxmlsetups \startxmlsetups xml:ext-link-var-var \goto{\hyphenatedurl{\xmlflush{#1}}}[url(\xmlflush{#1})] \stopxmlsetups \startbuffer[test] <?xml version="1.0" encoding="utf-8" ?> <article> asdfasdf asdkflöasj asdf <ext-link ext-link-type="uri" xlink:href="asdf">https://wiki.contextgarden.net/Main_Page</ext-link> asdfasdf asdkflöasj asdf <ext-link-var ext-link-type="uri" xlink:href="asdf">https://wiki.contextgarden.net/Main_Page</ext-link-var> asdfasdf asdkflöasj asdf <ext-link-var-var ext-link-type="uri" xlink:href="asdf">https://wiki.contextgarden.net/Main_Page</ext-link-var-var> </article> \stopbuffer \xmlprocessbuffer{test}{test}{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
On 10/27/21 5:37 PM, Denis Maier via ntg-context wrote:
[...] Oh, actually that leads to a similar problem as in my original question where Wolfgang suggested using \expandUx: if the URL is broken across lines, the link content is also broken. Interestingly, the plain> \startxmlsetups xml:ext-link-var-var \goto{\hyphenatedurl{\xmlflush{#1}}}[url(\xmlflush{#1})] \stopxmlsetups
seems to work now correctly.
Sorry, it was the wrong order: \expanded{\goto{\hyphenatedurl{\xmlflush{#1}}}[url(\xmlflush{#1})]} \xmlpure is for \hyphenatedurl, not for url. But your plain \goto is what I use and I have been using it without problems for long. Pablo -- http://www.ousia.tk
On 10/27/2021 5:37 PM, Denis Maier via ntg-context wrote:
Oh, actually that leads to a similar problem as in my original question where Wolfgang suggested using \expandUx: if the URL is broken across lines, the link content is also broken. Interestingly, the plain
\startxmlsetups xml:ext-link-var-var \goto{\hyphenatedurl{\xmlflush{#1}}}[url(\xmlflush{#1})] \stopxmlsetups
seems to work now correctly. it depends abit on what gets flushed, in those cases a low level flush has to be used
\xmltext \xmltextonly \xmlraw to get the raw data .. depends on content Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
participants (3)
-
denis.maier@unibe.ch
-
Hans Hagen
-
Pablo Rodriguez