Re: [NTG-context] Processing XML: Header and footer, data manipulation

2019-04-22 Thread Axel Kielhorn

> Am 22.04.2019 um 11:40 schrieb Pablo Rodriguez :
> 
> I have some questions about your source file:
> 
>  \startxmlsetups xml:prozess
> \mainlanguage[de]
> 
> If this is hardcoded (I mean, you don’t read it from any XML code), I
> would avoid setting the \mainlanguage here.
> 
> And you already set it in lines 82-83:
> 
>  \language[de]
>  \mainlanguage[de]
> 
> BTW, is there any reason to set both \language and \mainlanguage?
> (\mainlanguage should be enough.)

A leftover from merging two documents.
Once should be sufficient.
I’m not sure if it was a good idea to use german names for the elements.
Using english names and making the language configurable may be the next step.


>> I want to set page headers based on information I get from the XML:
>> 
>> \startxmlsetups xml:prozess
>>  \setupheadertexts[\bf\xmltext{#1}{/pnr} \xmltext{#1}{/pname}][\date]
>> 
>> This works on the first page (when the document has more than one
>> page) but headers and footers are empty on subsequent pages.
>> 
>> Something (xmlflush?) overwrites my setup.
>> Any idea how I can fix that?
> 
> I have a workaround for that:
> 
>  \title{\xmltext{#1}{/pnr} \xmltext{#1}{/pname}}
> 
> And in your preamble:
> 
>  \setupheadertexts[title][\date]
>  \setuphead[title]
>[placehead=empty,
> before=,
> after=,
> page=,]
> 
>> I want to use xmlconcat here, since there may be more than one docan, but I 
>> only get the „, “
>> 
>> \startxmlsetups xml:psoutdoc
>> %\inmargin{\xmltext{#1}{/docan} $\Leftarrow$}  {\bf 
>> \xmltext{#1}{/docnr}}\xmlflush{#1}
>>\inmargin{\xmlconcat{#1}{/docan}{, } $\Leftarrow$}  {\bf 
>> \xmltext{#1}{/docnr}}\xmlflush{#1}
>>\xmlsave{#1}{outfile.xml}
>>\blank
>> \stopxmlsetups
> 
> I would avoid using:
> 
>  \startxmlsetups xml:docname
>\xmlflush{#1}
>  \stopxmlsetups
> 
> instead of "\xmltext{#1}{/docname}" in the proper places.

Right, I startet out \xmlflush{}ing everything and turned it into \xmltext 
later.
I missed this one.

> You need to add to get proper content:
> 
>  \startxmlsetups xml:docan
>\xmlflush{#1}
>  \stopxmlsetups
> 
> I would replace docname with docan in both places (xmlsetsetup and its
> proper \starxmlsetups).

Great, it works now.

> BTW, what should be child notes to #1? An special lpath or what?

I want to add
\xmltext{#1}{../../pverantwortlich}
to psindoc

And
\xmltext{#1}{../../pverantwortlich}
to psoutdoc

before writing the ps[in|out]doc to an extra file.

But thinking about it, it may be easier to load a  tree from 
a separate file
and add / edit the doc entries based on the .
(s are unique.)

This part isn’t even in my head now.

> Just in case it helps,

It did, thanks!
Right now the document does what I wanted to do in ConTeXt.
I’m tempted to write the remaining functions in lua instead of python.

Still a lot to learn ahead.

Greetings Axel



___
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
___


Re: [NTG-context] Processing XML: Header and footer, data manipulation

2019-04-22 Thread Pablo Rodriguez
On 4/22/19 7:57 AM, Axel Kielhorn wrote:
> [...]
> Some questions remain:

Hi Axel,

I have some questions about your source file:

  \startxmlsetups xml:prozess
 \mainlanguage[de]

If this is hardcoded (I mean, you don’t read it from any XML code), I
would avoid setting the \mainlanguage here.

And you already set it in lines 82-83:

  \language[de]
  \mainlanguage[de]

BTW, is there any reason to set both \language and \mainlanguage?
(\mainlanguage should be enough.)

> I want to set page headers based on information I get from the XML:
>
> \startxmlsetups xml:prozess
>   \setupheadertexts[\bf\xmltext{#1}{/pnr} \xmltext{#1}{/pname}][\date]
>
> This works on the first page (when the document has more than one
> page) but headers and footers are empty on subsequent pages.
>
> Something (xmlflush?) overwrites my setup.
> Any idea how I can fix that?

I have a workaround for that:

  \title{\xmltext{#1}{/pnr} \xmltext{#1}{/pname}}

And in your preamble:

  \setupheadertexts[title][\date]
  \setuphead[title]
[placehead=empty,
 before=,
 after=,
 page=,]

> I want to use xmlconcat here, since there may be more than one docan, but I 
> only get the „, “
>
> \startxmlsetups xml:psoutdoc
> %\inmargin{\xmltext{#1}{/docan} $\Leftarrow$}  {\bf 
> \xmltext{#1}{/docnr}}\xmlflush{#1}
> \inmargin{\xmlconcat{#1}{/docan}{, } $\Leftarrow$}  {\bf 
> \xmltext{#1}{/docnr}}\xmlflush{#1}
> \xmlsave{#1}{outfile.xml}
> \blank
> \stopxmlsetups

I would avoid using:

  \startxmlsetups xml:docname
\xmlflush{#1}
  \stopxmlsetups

instead of "\xmltext{#1}{/docname}" in the proper places.

You need to add to get proper content:

  \startxmlsetups xml:docan
\xmlflush{#1}
  \stopxmlsetups

I would replace docname with docan in both places (xmlsetsetup and its
proper \starxmlsetups).

BTW, what should be child notes to #1? An special lpath or what?

Just in case it helps,

Pablo
--
http://www.ousia.tk
___
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
___


[NTG-context] Processing XML: Header and footer, data manipulation

2019-04-22 Thread Axel Kielhorn
Hello,

Pablo Rodríguez wrote in „From pandoc to ConTeXt“:

„So, if I was able to do this, probably anybody can do it.“

Well, I tried and indeed it isn’t as difficult as i thought.
(Once I learned that an entity must not contain non-ASCII characters.)

Some questions remain:

I want to set page headers based on information I get from the XML:

\startxmlsetups xml:prozess
  \mainlanguage[de]
  \setupheadertexts[\bf\xmltext{#1}{/pnr} \xmltext{#1}{/pname}][\date]
  {\bTABLE
\setupTABLE[frame=off]
\setupTABLE[offset=1mm]
\setupTABLE[c][1][align=right, width=14cm]
\setupTABLE[c][2][align=left,  width=6cm]
\setupTABLE[c][3][align=right, width=4cm]
\bTR \bTD \bfb\xmltext{#1}{/pnr}   \eTD \bTD Version:\eTD \bTD 
\bf\xmltext{#1}{/pversion}\eTD \eTR
\bTR \bTD \bfb\xmltext{#1}{/pname} \eTD \bTD Verantwortlich: \eTD \bTD 
\bf\xmltext{#1}{/pverantwortlich}\eTD\eTR
  \eTABLE}
  \blank
  \xmlflush{#1}
\stopxmlsetups

This works on the first page (when the document has more than one page) but 
headers and footers are empty on subsequent pages.

Something (xmlflush?) overwrites my setup.
Any idea how I can fix that?

I want to use xmlconcat here, since there may be more than one docan, but I 
only get the „, “

\startxmlsetups xml:psoutdoc 
%\inmargin{\xmltext{#1}{/docan} $\Leftarrow$}  {\bf 
\xmltext{#1}{/docnr}}\xmlflush{#1}
\inmargin{\xmlconcat{#1}{/docan}{, } $\Leftarrow$}  {\bf 
\xmltext{#1}{/docnr}}\xmlflush{#1}
\xmlsave{#1}{outfile.xml}
\blank
\stopxmlsetups

I want to write the nodes psindoc and psoutdoc to a separate file.
\xmlsave overwrites the file, is there a way to append to the file? (or append 
to a buffer and write the buffer?)

\startxmlsetups xml:psindoc
\inmargin{\xmltext{#1}{/docverantwortlich} $\Rightarrow$} {\bf 
\xmltext{#1}{/docnr}}\xmlflush{#1}
\xmlsave{#1}{outfile.xml}
\blank
\stopxmlsetups

Can I add child notes to #1?

The last two questions probably require LUA, what is a good way to start 
learning LuaTeX?

I enclosed a small test file.

Greetings Axel

PS: This may result in an article for „Die TeXnische Komödie“.




prozess-MWE.tex
Description: Binary data
___
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
___