From: Aditya Mahajan <adityam@umich.edu>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: XML Processing with Verbatim (VIM-Typing)
Date: Thu, 12 Feb 2015 19:00:49 -0500 (EST) [thread overview]
Message-ID: <alpine.LNX.2.03.1502121836140.17906@hzvpu.rqh> (raw)
In-Reply-To: <54DCBC4A.4090404@wxs.nl>
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 : ntg-context@ntg.nl / 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
___________________________________________________________________________________
next prev parent reply other threads:[~2015-02-13 0:00 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-10 16:59 Andreas Schneider
2015-02-10 21:45 ` Hans Hagen
2015-02-11 11:15 ` Andreas Schneider
2015-02-12 14:44 ` Hans Hagen
2015-02-13 0:00 ` Aditya Mahajan [this message]
2015-02-13 8:13 ` Andreas Schneider
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.LNX.2.03.1502121836140.17906@hzvpu.rqh \
--to=adityam@umich.edu \
--cc=ntg-context@ntg.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).