ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
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
___________________________________________________________________________________

  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).