2016-12-23 52 views
0

如何啓用aptoma twig-markdown extension?我一直在使用composer安裝,但是當我在我的樹枝文件中使用{% markdown %},我得到一個錯誤消息說:Symfony3:啓用aptoma twig-markdown擴展

Unexpected "markdown" tag (expecting closing tag for the "block" tag defined near line 8).

我symfony的文檔中看看,但沒能找到解決方案。

編輯:

我想下面的代碼添加到services.yml卻得到了另一個錯誤:

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

Type error: Argument 1 passed to Aptoma\Twig\Extension\MarkdownExtension::__construct() must be an instance of Aptoma\Twig\Extension\MarkdownEngineInterface, none given [...]

根據要求我.twig -file:

{% 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 %} 

回答

1

根據您需要安裝您選擇的降價引擎的文檔:

composer require michelf/php-markdown 

您需要創建樹枝延伸和降價引擎服務,發動機增加了擴展,並在您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會自動通過使用'標記'或標記的服務將它註冊爲樹枝擴展。

+0

謝謝你的回答!但是,當我使用此代碼時,我收到以下錯誤消息:'嘗試從命名空間「Aptoma \ Twig \ Extension」加載類「MarkdownEngine」。 你忘了另一個命名空間的「use」語句嗎?' – Jonas

+0

對不起,類路徑是錯誤的,我糾正它。還請注意添加的作曲家命令 – ivoba

+0

我真的很感謝你的幫助。當我像'{{「#標題級別1 | markdown}}一樣使用它時,它可以工作,但是當我使用'{%markdown%} {%endmarkdown%}'時,我收到一條錯誤消息,指出'Unknown markdown'標記.'。你能告訴我我做錯了什麼嗎? – Jonas

0

根據新的autowire系統,您只需聲明實現Aptoma降價引擎界面的mardown引擎。

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

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

如果你做的東西像markdown.engine變化Aptoma\Twig\Extension\MarkdownEngineInterface需要在樹枝推廣服務聲明中聲明的參數。

如果你想使用推薦的降價引擎,通過安裝它:

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子目錄中的可用引擎看到。 The available engine

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