[NTG-context] issue with # in url

Hans Hagen pragma at wxs.nl
Mon May 9 10:09:38 CEST 2016


On 5/8/2016 10:27 PM, Pablo Rodriguez wrote:
> Dear list,
>
> I have the following sample:
>
>     \startbuffer[demo]
>     <doc>
>          <p>Link not working:
>             <a href="http://a.b/c#d">http://a.b/c#d</a></p>
>          <p>Link not working:
>             <a href="http://a.b/c">http://a.b/c#d</a></p>
>          <p>Working link:
>             <a href="http://a.b/c#d">http://a.b/c</a></p>
>     </doc>
>     \stopbuffer
>
>     \starttext
>
>     \startxmlsetups xml:initialize
>          \xmlsetsetup{#1}{p|doc|a}{xml:*}
>          \xmlsetsetup{\xmldocument}{span[@label]}{xml:logo}
>     \stopxmlsetups
>
>     \xmlregistersetup{xml:initialize}
>
>     \startxmlsetups xml:doc
>          \xmlflush{#1}
>     \stopxmlsetups
>
>     \startxmlsetups xml:p
>          \xmlflush{#1}\par
>     \stopxmlsetups
>
>     \startxmlsetups xml:a
>         \mypersonalurl{\xmlflush{#1}}
>     \stopxmlsetups
>
>     \setupinteraction[state=start]
>
>     \def\mypersonalurl#1{\bgroup\tt\goto{%
>         \hyphenatedurl{#1}}[url(#1)]\egroup}%
>         \unexpanded\def\href#1#2{\goto{#2} [url(#1)]}
>
>     \xmlprocessbuffer{main}{demo}{}
>
>     \stoptext
>
> Latest beta from 2016.05.08 17:30 doesn’t generate a clickable link with
> the first two paragraphs. It seems to be caused by the presence of # in
> the url.
>
> The latest beta I have that generates three clickable links is
> 2016.01.14 09:55 (using LuaTeX-0.87.0).
>
> From beta 2016.02.01 13:26 (and LuaTeX-0.88.0) the first two links
> aren’t interactive. And this beta included a wrong rendering from # as
> "\Ux {23}".
>
> The wrong # conversion was corrected in beta from 2016.02.15 10:26 (and
> LuaTeX-0.89.0), but links weren’t made interactive.
>
> I hope the description helps. Could anyone confirm the issue?

It has to do with more robust ways to let special character travel 
through the machinery



\startbuffer[demo]
<d>
      <p>Case 1: <a href="http://a.b/c#d">http://a.b/c#d</a></p>
      <p>Case 2: <a href="http://a.b/c"  >http://a.b/c#d</a></p>
      <p>Case 3: <a href="http://a.b/c#d">http://a.b/c  </a></p>
</d>
\stopbuffer

\nopdfcompression

\startxmlsetups xml:initialize
      \xmlsetsetup{#1}{*}{xml:*}
\stopxmlsetups

\xmlregistersetup{xml:initialize}

\startxmlsetups xml:d
      \xmlflush{#1}
\stopxmlsetups

\startxmlsetups xml:p
      \xmlflush{#1}
      \blank
\stopxmlsetups

\startxmlsetups xml:a
     \mypersonalurl
       {\xmlatt{#1}{href}}
       {\xmlflush{#1}}
       {\xmlraw{#1}{.}}
\stopxmlsetups

\starttexdefinition unexpanded mypersonalurl #1#2#3
     \dontleavehmode
     \begingroup
     \tt
     \starttabulate[||||]
     \NC url \NC #1 \NC \goto{\hyphenatedurl{#2}}[url(#1)] \NC \NR
     \NC txt \NC #2 \NC \goto{\hyphenatedurl{#2}}[url(#2)] \NC \NR
     \NC raw \NC #3 \NC \goto{\hyphenatedurl{#3}}[url(#3)] \NC \NR
     \stoptabulate
     \endgroup
\stoptexdefinition

\setupinteraction[state=start]

\starttext

% \enabletrackers[structures.referencing.analyzing]

\xmlprocessbuffer{main}{demo}{}

\stoptext

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


More information about the ntg-context mailing list