# Re: [NTG-context] source code and result side by side

On Sun, 30 Jul 2017, Henning Hraban Ramm wrote:


Am 2017-07-29 um 00:57 schrieb Aditya Mahajan <adit...@umich.edu>:


On Fri, 28 Jul 2017, Henning Hraban Ramm wrote:


Ahoi again,

I’m preparing some ConTeXt docs with a lot of examples and would like to
reproduce what we have in the wiki as

<context source="yes">
...
</context>

i.e. sourcecode beside the result.

Often the shown source is exactly what I want to show, in other cases I need
some additional setup that I don’t want to show.

Which approach would you suggest? Combinations?


\startbuffer[example-1]
....
\stopbuffer

\placesidebyside
{\typebuffer[example-1]}
{\getbuffer[setups, example-1]}



Thank you again, that should be enough for most of my small examples.
I guess I never heard of or forgot about \placesidebyside as well as
\placeontopofeachother.

But I’d like to show a lot of similar examples to explain several options.
Therefore, if I’d like to simplify my code, but this doesn’t work:

\def\CodeExample#1{%
\startbuffer[zB]
#1
\stopbuffer
\typebuffer[zB]
\getbuffer[zB]
}

\CodeExample{\framed[frame=off,leftframe=on,rulethickness=1em,framecolor=blue]{Klotz
am Bein}}



You can't do that with buffers. If you need to define your own macros that behave like buffers, you need to use \grabbufferdata (see buff-ini.mkiv). But in this case, there is a simpler solution:

\defineframed
[CodeExampleFramed]
[
frame=off,
width=0.5\textwidth,
align=normal,
]

\definebuffer
[CodeExample]

\define\stopCodeExample
{\placesidebyside
{\CodeExampleFramed{\typeCodeExample}}
{\CodeExampleFramed{\getCodeExample}}}

\starttext
\startCodeExample
\framed
[
frame=off,
leftframe=on,
rulethickness=1em,
framecolor=blue,
]{Klotz am Bein}
\stopCodeExample

\stoptext


___________________________________________________________________________________
___________________________________________________________________________________