public function render_template($path, array $locals = array()) { $wrap = $locals['wrap']; \Jade\Parser::$includeNotFound = false; $rendered = $this->jade->render($path, $locals); if ($wrap) { $rendered = '<div class="template ' . $locals['template'] . '">' . $rendered . '</div>'; } return $rendered; }
function show_nodes($jade, $file) { $p = new \Jade\Parser($jade, $file); $ast = $p->parse(); $print_nodes = function ($node, $indent = 0) use(&$print_nodes) { $result = ''; if (is_array($node)) { foreach ($node as $n) { $result .= $print_nodes($n, $indent + 1); } } else { if (get_class($node) == 'Nodes\\Tag') { $result .= str_repeat(' ', $indent * 2) . get_class($node) . ' name=' . $node->name . "\n"; } elseif (get_class($node) == 'Nodes\\Filter') { $result .= str_repeat(' ', $indent * 2) . get_class($node) . ' filter_name=' . $node->name . "\n"; } else { $result .= str_repeat(' ', $indent * 2) . get_class($node) . "\n"; } if (isset($node->isBlock) && $node->isBlock == true) { $result .= $print_nodes($node->nodes, $indent + 1); } if (isset($node->block)) { $result .= $print_nodes($node->block, $indent + 1); } } return $result; }; return $print_nodes($ast); }