[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