ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* How can I remove a blank leading line from a buffer
@ 2018-08-13  3:18 Rik Kabel
  2018-08-13  3:44 ` Aditya Mahajan
                   ` (2 more replies)
  0 siblings, 3 replies; 20+ messages in thread
From: Rik Kabel @ 2018-08-13  3:18 UTC (permalink / raw)
  To: mailing list for ConTeXt users

%% How can one remove blank lines at the start of a buffer so that
%%   commands that grab a buffer can be used in the same way as, for
%%   example, \startparagraph...\stopparagraph, which allow blank
%%   lines around the content?
%%
%% The problem appears when an optional argument is allowed but none
%%   is provided. Adding \relax does not help; adding empty brackets
%%   does. I see no way to distinguish between a buffer without
%%   leading blank lines and a buffer that was created when brackets
%%   are provided.
%%
%% \inlinebuffer handles the leading blank lines when there is
%%   nothing prepended, but I need to prepend. (It also handles the
%%   unwanted trailing line, but that is not an issue here).
%%
%% How can I unpack the buffer, apply the equivalent functions of
%%   ignorespaspaces and removeunwantedspaces to it, and repack it?
%%   The buffer may contain internal blank lines and macros, and
%%   those should be retained. Or, is there already a function to
%%   strip a buffer in the manner that string.strip does a string?

\setupwhitespace[none]
\setupindenting[none]
\define\Mark{\color[middlegray]{\itb¿\ }}
\define\First{nothing yet}
\define\Arg{nothing yet}
\setuplanguage[en][spacing=packed]

\starttexdefinition unexpanded startBufTest
   \bgroup
   \dosingleempty\dostartBufTest
\stoptexdefinition

\starttexdefinition dostartBufTest [#SETUPS]
   \doifsomethingelse{#{SETUPS}}
                     {\define\Arg{yes}}
                     {\define\Arg{no}}
   \iffirstargument
     \define\First{yes}
   \else
     \define\First{no}
   \fi
   \relax
   \getrawparameters[BufTest][xx=yy,#SETUPS]
   \grabbufferdata[TestBuffer][startBufTest][stopBufTest]
\stoptexdefinition

\starttexdefinition stopBufTest

   \startparagraph

     \dontleavehmode\llap{\Mark}\inlinebuffer[TestBuffer]
     \ (first: \First, arg: \Arg)

   \stopparagraph

   \egroup
\stoptexdefinition

\starttext

\startparagraph

   A starting paragraph.

\stopparagraph

\startBufTest
   Buffer without blank lines.
\stopBufTest

\startparagraph

   An intervening paragraph.

\stopparagraph

\startBufTest

   Buffer with blank lines.

\stopBufTest

\startparagraph

   An intervening paragraph.

\stopparagraph

\startBufTest\relax

   Buffer with \tex{relax}.

\stopBufTest

\startparagraph

   An intervening paragraph.

\stopparagraph

\startBufTest[]

   Buffer with \type{[]}.

\stopBufTest

\startparagraph

   An intervening paragraph.

\stopparagraph

\startBufTest[key=value]

   Buffer with \type{[key=value]}.

\stopBufTest

\startparagraph

   A closing paragraph.

\stopparagraph

\stoptext

\stopmode

%% --
%% Rik Kabel

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2018-08-16 20:02 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-13  3:18 How can I remove a blank leading line from a buffer Rik Kabel
2018-08-13  3:44 ` Aditya Mahajan
2018-08-13  3:46 ` Henri Menke
2018-08-13  7:02   ` Hans Hagen
2018-08-13  7:01 ` Hans Hagen
2018-08-13 14:28   ` Rik Kabel
2018-08-13 16:04     ` Wolfgang Schuster
2018-08-13 17:09       ` Rik Kabel
2018-08-13 17:46         ` Wolfgang Schuster
2018-08-13 18:27           ` Rik Kabel
2018-08-13 19:52             ` Wolfgang Schuster
2018-08-13 22:43               ` Rik Kabel
2018-08-14 14:46                 ` Rik Kabel
2018-08-15  3:31                   ` Aditya Mahajan
2018-08-15  7:07                     ` Hans Hagen
2018-08-15 21:46                       ` Rik Kabel
2018-08-16 14:55                         ` Aditya Mahajan
2018-08-16 20:02                           ` Rik
2018-08-13 16:15     ` Rik Kabel
2018-08-13 17:51     ` Rik Kabel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).