You are here

TokenParser.php in Markdown 3.0.x

File

src/Twig/Markdown/TokenParser.php
View source
<?php

namespace Drupal\markdown\Twig\Markdown;

use Drupal\markdown\MarkdownInterface;
use Twig\Token;

/**
 * Class MarkdownTokenParser.
 */
class TokenParser extends \Twig_TokenParser {

  /**
   * An instance of a markdown processor to use.
   *
   * @var \Drupal\markdown\MarkdownInterface
   */
  protected $markdown;

  /**
   * {@inheritdoc}
   */
  public function __construct(MarkdownInterface $markdown) {
    $this->markdown = $markdown;
  }

  /**
   * {@inheritdoc}
   */
  public function parse(Token $token) {
    $line = $token
      ->getLine();
    $this->parser
      ->getStream()
      ->expect(\Twig_Token::BLOCK_END_TYPE);
    $body = $this->parser
      ->subparse(function (\Twig_Token $token) {
      return $token
        ->test('endmarkdown');
    }, TRUE);
    $this->parser
      ->getStream()
      ->expect(\Twig_Token::BLOCK_END_TYPE);
    return new Node($body, $line, $this
      ->getTag());
  }

  /**
   * {@inheritdoc}
   */
  public function getTag() {
    return 'markdown';
  }

  /**
   * Return the markdown instance being used.
   *
   * @return \Drupal\markdown\MarkdownInterface
   *   The Markdown instance.
   */
  public function getMarkdown() {
    return $this->markdown;
  }

}

Classes

Namesort descending Description
TokenParser Class MarkdownTokenParser.