Пример #1
0
 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;
 }
Пример #2
0
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);
}