On Thu, 12 Feb 2015, Hans Hagen wrote:
On 2/11/2015 12:15 PM, Andreas Schneider wrote:
Am 10.02.2015 22:45, schrieb Hans Hagen:
\startluacode
function xml.functions.processJSON(t)
buffers.assign("foo","\\startJSON\n" .. tostring(xml.text(t))
.. "\n\\stopJSON")
context.getbuffer { "foo" }
end
\stopluacode
\startxmlsetups xml:json
\pushcatcodetable
\setcatcodetable\ctxcatcodes
\xmlfunction{#1}{processJSON}
\popcatcodetable
\stopxmlsetups
(If needed I can make a better plugin for this ... remind me later
this year.)
t-filter provides a \process<filter>buffer macro. So, in principle,
\processJSONbuffer[foo]
should have worked, but it did not due to a bug. I have fixed that and
pushed the latest version to context garden. With this, the following
should also work (untested)
\startluacode
function xml.functions.processJSON(t)
buffers.assign("foo", tostring(xml.text(t)))
context.processJSONbuffer { "foo" }
end
\stopluacode
\startxmlsetups xml:json
\xmlfunction{#1}{processJSON}
\stopxmlsetups
That works like a charm!
From my perspective, no changes are necessary. I personally like some
technical trickery in my ConTeXt code, especially if it's as slim as
your solution. (Mainly because that helps me understand the inner
workings and hopefully makes me find solutions like this on my own :-))
so then you have to wikify it (or add it to the t-vim module docu)
If others also need similar functionality, I can look into adding xml
processing features or the appropriate lua functions to t-filter.
Aditya
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : [email protected] / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________