parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

код в одну строчку

egr 16.09.2002 15:04

Оказывается, метод postprocess очень удобная штука для многих вещей, например для дальнейшей оптимизации кода:
#######
@postprocess[buffer][t]
$buffer[^buffer.normalize[]]

$buffer[^buffer.match[(<(pre?) ...>?)(.+?)<\/\2>][ig]{<pre ...>$t[$match.3]$t[^t.match[\t][g]{[tab]}]$t[^t.match[\n\n][g]{[p/]}]$t[^t.match[\n][g]{[br]}]$t</pre>}]

$buffer[^buffer.match[\t][g]{}]
$buffer[^buffer.match[\n][g]{}]

$buffer[^buffer.match[\[tab\]][g]{	}]
$buffer[^buffer.match[\[p\/\]][g]{<p/>}]
$buffer[^buffer.match[\[br\]][g]{<br/>}]

^taint[as-is][$buffer]
этот метод убирает из кода все переводы строк и табуляторы, однако он оставляет табуляторы внутри элементов <pre> и также внутри этих элементов производит замену \n\n на <p/> и \n на <br/>