[NTG-context] Minimal code for exporting custom tags
Hans Hagen
j.hagen at xs4all.nl
Mon May 18 11:34:24 CEST 2020
On 5/18/2020 9:09 AM, Aditya Mahajan wrote:
> Hi,
>
> What is needed to enable export of user defined macros? Consider the
> following example:
>
>
> ```
> \def\startmycommand{\dostarttagged{mycommand}\empty}
> \def\stopmycommand {\dostoptagged}
>
> \setupbackend[export=xml, level=0]
>
> \starttext
> \startsection[title={Sample document}]
> \startparagraph
> This is a paragraph
> \stopparagraph
> \startmycommand
> This is mycommand
> \stopmycommand
> \stopsection
> \stoptext
> ```
>
> If I compile using `context --trackers=structures.tags filename`, I get
>
> ```
> backend > tags > U+0031:1 => U+0031:1 : 00004 document>1
> section>1 sectioncaption>1 sectionnumber>1
> backend > tags > U+0053:S => U+0074:t : 00005 document>1
> section>1 sectioncaption>1 sectiontitle>1
> backend > tags > U+0054:T => U+0068:h : 00007 document>1
> section>1 sectioncontent>1 paragraph>1
> backend > tags > U+0054:T => U+0064:d : 00008 document>1
> section>1 sectioncontent>1 mycommand>1
> ```
>
> so the tag is applied. I can also verify this by looking at the PDF
> which contains
>
> ```
> << /K 27 0 R /ParentTree 2 0 R /RoleMap << /document /Div /mycommand
> /Span /paragraph /P /section /Sect /sectioncaption /Div /sectioncontent
> /Div /sectionnumber /H /sectiontitle /H >> /Type /StructTreeRoot >>
> ```
>
> and the tag `mycommand` is used at appropriate location.
>
> However, the exported xml file contains no tag:
>
> ```
> <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
>
> <!--
>
> input filename : test-tag
> processing date : 2020-05-18T03:00:33-04:00
> context version : 2020.04.30 11:10
> exporter version : 0.35
>
> -->
>
> <!-- This export file is used for filtering runtime only! -->
>
> <document context="2020.04.30 11:10" date="2020-05-18T03:00:33-04:00"
> file="test-tag" language="en" version="0.35"
> xmlns:m="http://www.w3.org/1998/Math/MathML">
> <metadata>
> </metadata>
> <section detail="section" chain="section" implicit="1" level="3">
> <sectioncaption>
> <sectionnumber>1</sectionnumber>
> <sectiontitle>Sample document</sectiontitle>
> </sectioncaption>
> <sectioncontent>
> <paragraph>This is a paragraph</paragraph>
> </sectioncontent>
> </section>
> </document>
> ```
>
> What am I missing in order to pass user-defined macros to the exporter?
you're probably missing documentation + a high level define command
This registers (extra) elements:
\setelementbackendtag[mycommand]
\setelementnature [mycommand][mixed]
after that you can use \startelement[mycommamd]
\starttext
\startsection[title={Sample document}]
\startparagraph
This is a paragraph
\stopparagraph
\startelement[mycommand]
This is mycommand
\stopelement
\stopsection
\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
-----------------------------------------------------------------
More information about the ntg-context
mailing list