[NTG-context] XML Processing with Verbatim (VIM-Typing)
Aditya Mahajan
adityam at umich.edu
Fri Feb 13 01:00:49 CET 2015
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
More information about the ntg-context
mailing list