You are here

class Node in Markdown 8.2

Twig Markdown Node.

Hierarchy

  • class \Drupal\markdown\Twig\Node extends \Drupal\markdown\Twig\Twig_Node

Expanded class hierarchy of Node

File

src/Twig/Node.php, line 10

Namespace

Drupal\markdown\Twig
View source
class Node extends \Twig_Node {

  /**
   * Node constructor.
   *
   * @param \Twig_Node $value
   *   The value.
   * @param int $line
   *   The line number.
   * @param string $tag
   *   The tag.
   */
  public function __construct(\Twig_Node $value, $line, $tag = NULL) {
    parent::__construct([
      'value' => $value,
    ], [
      'name' => $tag,
    ], $line, $tag);
  }

  /**
   * {@inheritdoc}
   */
  public function compile(Compiler $compiler) {
    $compiler
      ->addDebugInfo($this)
      ->write('ob_start();' . PHP_EOL)
      ->subcompile($this
      ->getNode('value'))
      ->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 = implode("\\n", $content);' . PHP_EOL)
      ->write('echo $this->env->getTags()["markdown"]->getMarkdown()->parse($content);' . PHP_EOL);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Node::compile public function
Node::__construct public function Node constructor.