On 11/30/2020 9:08 PM, Mojca Miklavec wrote:
Hi,
A while ago Hans provided an example of typesetting a document from a
docbook source.
I'm attaching an over-simplified version of the initial module (a
somewhat more complete version exists, but it still needs lots of
work) and a minimum working example with XML.
I'm not sure how to extend the xml parser to support typesetting from
something like this:
<section xml:id="_hello_world_in_c_and_context">
<title>Hello World in C and ConTeXt</title>
<programlisting language="cpp" linenumbering="unnumbered">#include
<stdio.h>
int main()
{
printf("Hello, World!\n");
return 0;
}</programlisting>
<programlisting language="context" linenumbering="numbered">\starttext
Hello world!
\stoptext</programlisting>
</section>
Maybe using the vim module would be the right approach here (since the
built-in parser only has support for a limited set of languages), but
I'm not exactly sure about the implementation to achieve that goal.
I started with
\startxmlsetups xml:programlisting
\dontleavehmode
\startframedtext[background=color,backgroundcolor=lightgray]
\obeylines
\tt
\xmlflush{#1}
\stopframedtext
\stopxmlsetups
but something more is needed to properly handle new lines and to
properly pass the text to vim, for example.
Any hints welcome.
\startbuffer[demo]
<doc>
<pre type='tex'>
\def\whatever#1{[whatever #1]}
\ctxlua{print("okay")}
</pre>
<pre type='xml'>
<html>
<b>bold</b>
</html>
</pre>
</doc>
\stopbuffer
\usemodule[scite]
\startxmlsetups xml:initialize
\xmlsetsetup{#1}{doc|pre}{xml:*}
\stopxmlsetups
\xmlregistersetup{xml:initialize}
\startxmlsetups xml:doc
\xmlflush{#1}
\stopxmlsetups
\startxmlsetups xml:pre
\blank
\xmlprettyprint{#1}{\xmlattdef{#1}{type}{txt}}
\blank
\stopxmlsetups
\starttext
\xmlprocessbuffer{main}{demo}{}
\stoptext
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___________________________________________________________________________________