2

如何启用aptoma twig-markdown 扩展?我已经使用它安装了它,composer但是当我{% markdown %}在我的树枝文件中使用它时,我收到一条错误消息:

意外的“markdown”标签(期望在第 8 行附近定义的“block”标签的结束标签)。

我查看了 symfony 文档,但找不到解决方案。

编辑:

我尝试添加以下代码,services.yml但又遇到了另一个错误:

twig.markdown:
    class: Aptoma\Twig\Extension\MarkdownExtension
    arguments: []
    tags:
        - { name: twig.extension }

类型错误:传递给 Aptoma\Twig\Extension\MarkdownExtension::__construct() 的参数 1 必须是 Aptoma\Twig\Extension\MarkdownEngineInterface 的实例,没有给出 [...]

根据要求我的.twig文件:

{% extends 'XYZBundle::layout.html.twig' %}

{% block title %}
    {{ parent() }} – Eintrag anzeigen
{% endblock %}

{% block platform_body %}
    <ul>
        <li>
            <a href="{{ path('work_index') }}">Back to the list</a>
        </li>
        <li>
            <a href="{{ path('work_edit', { 'id': work.id }) }}">Edit</a>
        </li>
    </ul>
    <h1>{{ work.title }}</h1>

    <div class="work-content">
    {% markdown %}
    {{ work.content }}
    {% endmarkdown %}
    </div>
{% endblock %}
4

2 回答 2

2

根据文档,您需要安装您选择的降价引擎,例如:

composer require michelf/php-markdown

您需要为 twig 扩展和 markdown 引擎创建一个服务,将引擎添加到扩展中并将其注册为 twig 扩展,例如在您的 services.yml 或 config.yml 中:

services:
    markdown.engine:
        class: Aptoma\Twig\Extension\MarkdownEngine\MichelfMarkdownEngine
    twig.markdown:
        class: Aptoma\Twig\Extension\MarkdownExtension
        arguments: ['@markdown.engine']
        tags:
            - { name: twig.extension }

Symfony 将通过使用“标签”或标记服务自动将其注册为 twig 扩展。

于 2016-12-23T12:47:43.547 回答
1

根据新的 autowire 系统,您只需声明实现 Aptoma markdown 引擎接口的 mardown 引擎。

Aptoma\Twig\Extension\MarkdownEngineInterface:
    class: the markdown engine of your choice!

twig.extension.markdown:
    class: Aptoma\Twig\Extension\MarkdownExtension
    tags:
        - { name: twig.extension }

如果您进行更改Aptoma\Twig\Extension\MarkdownEngineInterfacemarkdown.engine无需在 twig 扩展服务声明中声明参数。

如果您想使用推荐的降价引擎,请通过以下方式安装:

composer require michelf/php-markdown

然后,声明它:

Aptoma\Twig\Extension\MarkdownEngineInterface:
    class: Aptoma\Twig\Extension\MarkdownEngine\MichelfMarkdownEngine 

twig.extension.markdown:
    class: Aptoma\Twig\Extension\MarkdownExtension
    tags:
        - { name: twig.extension }

您可以在vendor\aptoma子目录中看到可用的引擎。 可用引擎

但是你可以使用你的。它只需要执行MarkdownEngineInterface

于 2018-02-03T11:22:38.520 回答