Continuando com this artigo Eu uso o GPP para capacitar o analisador Markdown pandoc com algumas macros. Infelizmente, gpp
parece copiar todo o espaço em branco no resultado.
Por exemplo, considere o arquivo test.md
% Title
% Raphael
% 2012
\lorem \ipsum
com test.gpp
\define{lorem}{Lorem}
\define{ipsum}{ipsum...}
Agora, chamando gpp -T --include test.gpp test.md
yields
<empty line>
% Title
% Raphael
% 2012
Lorem ipsum...
Isso quebra a extração de metadados de pandoc
. O quebra de linha extra é de fato o único entre as definições; se eu usar
\define{lorem}{Lorem}@@@
\define{ipsum}{ipsum...}
com a opção extra +c "@@@" "\n"
, a linha vazia desapareceu. Mas esta solução alternativa não é apenas feia, também tem duas falhas fatais.
Primeiro, ele trata @@@
como indicador de comentário no arquivo de origem também. Como @@@
não é proibido no Markdown, isso pode ter consequências indesejadas quando @@@
(ou qualquer outro delimitador escolhido) ocorrer no arquivo de origem.
Em segundo lugar, ele não cobre os espaços em branco nos começos da linha como causados pelo recuo adequado. Por exemplo,
\define{lorem}{@@@
\if{a == a}@@@
![some image](test.png)@@@
\endif@@@
}@@@
fará com que todas as tags de imagem sejam recuadas por quatro espaços, fazendo com que pandoc
o defina como código (conforme especificado).
Portanto, antes de escrever gpp
arquivos em uma linha ou apresentar comentários feios de fim de linha e não recuar, o que você pode fazer para evitar que gpp
coloque em branco espaços em branco supérfluos?