for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace allejo\stakx\Templating\Twig\MarkupBlock;
/**
* @author Gunnar Lium <[email protected]>
* @author Joris Berthelot <[email protected]>
*
* @link https://github.com/aptoma/twig-markdown/blob/master/src/Aptoma/Twig/Node/MarkdownNode.php
*/
class Node extends \Twig_Node
{
public function __construct(\Twig_Node $body, $lineno, $tag)
parent::__construct(['body' => $body], [], $lineno, $tag);
}
* Compiles the node to PHP.
* @param \Twig_Compiler A Twig_Compiler instance
public function compile(\Twig_Compiler $compiler)
$compiler
->addDebugInfo($this)
->write('ob_start();' . PHP_EOL)
->subcompile($this->getNode('body'))
->write('$content = ob_get_clean();' . PHP_EOL)
->write('preg_match("/^\s*/", $content, $matches);' . PHP_EOL)
->write('$lines = explode("\n", $content);' . PHP_EOL)
->write('$content = preg_replace(\'/^\' . $matches[0]. \'/\', "", $lines);' . PHP_EOL)
->write('$content = join("\n", $content);' . PHP_EOL)
->write('echo $this->env->getExtension(\'allejo\stakx\Templating\Twig\TwigExtension\')->parseMarkup($content, "' . $this->tag . '");' . PHP_EOL)
;