Procházka Lukáš Ing.
2. Dezember 2016 um 08:10
Hello,

is there a way to let ConTeXt to flush the input stream in parallel into an output buffer, like:

----
\starttext

A

\startoutput{Test.mkiv}
  Hello!
  \startitemize
    \item Item
  \stopitemize
\stopoutput

B

\stoptext
----

which would produce:

---- Test.mkiv
  Hello!
  \startitemize
    \item Item
  \stopitemize
----
You can use a buffer to store content and save it in a external file.

\unexpanded\def\startcontentexport
  {\dosingleempty\dostartcontentexport}

\def\dostartcontentexport[#1]%
  {\iffirstargument
     \edef\contentexportfile{#1}%
   \else
     \let\contentexportfile\empty
   \fi
   \grabbufferdata[contentexport][startcontentexport][stopcontentexport]}

\def\stopcontentexport
  {\doifsomething{\contentexportfile}{\savebuffer[list=contentexport,prefix=no,file=\contentexportfile]}%
   \getbufferdata[contentexport]}

\starttext

A

\startcontentexport[Test.mkiv]
  Hello!
  \startitemize
    \item Item
  \stopitemize
\stopcontentexport

B

\stoptext

Wolfgang