Невозможно добавить фильтр markdown_to_ html в ветку - PullRequest
0 голосов
/ 06 мая 2020

Я хочу использовать фильтр markdown_to_html для рендеринга makrdown внутри моего шаблона, поэтому я попытался следовать инструкциям в документации, но фильтр добавлен неправильно. Ошибка, которую я получаю при рендеринге шаблона: Сообщение: Неизвестный фильтр markdown_to_ html.

Вот мой код:

// Load twig and the markdown extension

require_once "../vendor/autoload.php";
$loader = new \Twig\Loader\FilesystemLoader("../templates");
$twig = new \Twig\Environment($loader, [
  "cache" => "../cache/twig",
  "debug" => true,
  "autoescape" => false,
]);

use Twig\Extra\Markdown\DefaultMarkdown;
use Twig\Extra\Markdown\MarkdownRuntime;
use Twig\RuntimeLoader\RuntimeLoaderInterface;

$twig->addRuntimeLoader(new class implements RuntimeLoaderInterface {
  public function load($class) {
    if (MarkdownRuntime::class === $class) {
      return new MarkdownRuntime(new DefaultMarkdown());
    }
  }
});

// Read md file and render template

$markdown = file_get_contents("content/text.md");
try {
  echo $twig->render("template.phtml", ["text" => $markdown]);
}
catch(Exception $e) {
  echo 'Message: ' . $e->getMessage();
}


Шаблон:

  {% apply markdown_to_html %}
    {{ text }}
  {% endapply %}

Я добавил twig/twig и twig/markdown-extra, обе версии 3.0. Спасибо за любую помощь.

1 Ответ

2 голосов
/ 06 мая 2020

Вы забыли добавить расширение с помощью

$twig->addExtension(new MarkdownExtension());

Обратите внимание, как в документации написано

Если вы не используете Symfony, вы должны также зарегистрируйте время выполнения расширения:

когда вы это сделали вместо

...