Hans, many thanks for your sample. It is really amazing. Pablo On 12/28/2014 06:53 PM, Hans Hagen wrote:
\startbuffer[demo] <doc> <p>Text <a href="#fn1" class="footnoteRef" id="fnref1"><sup>1</sup></a> and <a href="#fn2" class="footnoteRef" id="fnref2"><sup>2</sup></a> </p> <div class="footnotes"> <hr /> <ol> <li id="fn1"><p>A footnote.<a href="#fnref1">↩</a></p></li> <li id="fn2"><p>A second footnote.<a href="#fnref2">↩</a></p></li> </ol> </div> </doc> \stopbuffer
\starttext
% variant 1:
\startxmlsetups xml:initialize \xmlsetsetup{#1}{p|doc}{xml:*} \xmlsetsetup{#1}{a[@class='footnoteRef']}{xml:footnote} \xmlsetsetup{#1}{div[@class='footnotes']}{xml:nothing} \stopxmlsetups
\xmlregistersetup{xml:initialize}
\startxmlsetups xml:doc variant 1: \blank \xmlflush{#1} \blank \stopxmlsetups
\startxmlsetups xml:p \xmlflush{#1} \stopxmlsetups
\startxmlsetups xml:footnote
(1)\footnote{\xmlfirst{main}{div[@class='footnotes']/ol/li[@id=string.sub('\xmlatt{#1}{href}',2)]}} \stopxmlsetups
\startxmlsetups xml:initialize \xmlsetsetup{#1}{p|doc}{xml:*} \xmlsetsetup{#1}{a[@class='footnoteRef']}{xml:footnote} \xmlfilter{#1}{div[@class='footnotes']/ol/li/command(xml:collectnotes)} \xmlsetsetup{#1}{div[@class='footnotes']}{} \stopxmlsetups
\xmlregistersetup{xml:initialize}
\xmlprocessbuffer{main}{demo}{}
% variant 2:
\startxmlsetups xml:doc variant 2: \blank \xmlflush{#1} \blank \stopxmlsetups
\startxmlsetups xml:p \xmlflush{#1} \stopxmlsetups
\startluacode userdata.notes = {} \stopluacode
\startxmlsetups xml:collectnotes \ctxlua{userdata.notes['\letterhash\xmlatt{#1}{id}'] = '#1'} \stopxmlsetups
\startxmlsetups xml:footnote
(2)\footnote{\xmlflush{\cldcontext{userdata.notes['\xmlatt{#1}{href}']}}} \stopxmlsetups
\xmlprocessbuffer{main}{demo}{}
\stoptext