On Sun, 30 Jul 2017, Henning Hraban Ramm wrote:
Am 2017-07-29 um 00:57 schrieb Aditya Mahajan
: 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