Как объединить несколько источников Markdown в шаблоне Nunjkucks в Eleventy

Я работаю с шаблонами Nunjucks в Eleventy. Макет страницы состоит из основной content области и aside. Я могу использовать Markdown для контента, но не могу найти способ использовать Markdown в стороне. Казалось бы, Markdown может быть только одним источником; любые другие источники, включенные в шаблон, должны быть шаблонами Nunjucks.

index.njk:

  <article>
    {{ content | safe }} 
  </article>
  <aside>
    {% include "aside.md" %}
  </aside>

aside.md:

# Aside.

Результат:

<article>
<p>This is the content from the upstream Markdown.</p>
</article>
<aside>
# Aside.
</aside>

В стороне все еще сырой Markdown. Как я могу включить обработанный Markdown?

Я новичок во всех этих технологиях и чувствую, что упускаю что-то базовое.


person Dave Gardner    schedule 07.07.2020    source источник
comment
В 11ty bug tracker обсуждается та же проблема, и предлагаются некоторые решения. github.com/11ty/eleventy/issues/658   -  person Lesha Ogonkov    schedule 08.07.2020
comment
@LeshaOgonkov Это решило мою проблему.   -  person Dave Gardner    schedule 09.07.2020
comment
Отвечает ли это на ваш вопрос? Как включить множественную разметку Markdown файлы в шаблон Nunjucks с Eleventy?   -  person Lesha Ogonkov    schedule 18.08.2020


Ответы (1)


Используйте включает или макросы!

Включаемые должны быть помещены в конкретную папку (_includes - вы можете переопределить это имя папки или даже иметь подпапки):

    {% include 'partials/google-analytics.html' %}
    {% include 'partials/cookie-consent.html' %}
    {% include 'partials/post-sharing.html' %}

Или вы можете определить макрос (они должны быть импортированы или определены там, где вы их используете). PRO для макросов заключается в том, что вы можете передавать параметры при их вызове, они работают как функции ...

{% macro paginationLink(active, disabled, href, title) %}    
    <li class="page-item {% if active %} active {% elseif disabled %} disabled {% endif %}">
        {% if disabled %} 
            <span class="page-link">{{ title | safe }}</span>
        {% else %}
            <a class="page-link" href="{{ href | url }}">{{ title | safe }}</a>
        {% endif %}        
    </li>
{% endmacro %}

После этого можно легко вызвать макрос ^:

{{ paginationLink(false, isFirst, firstPageHref, '<i class="fas fa-angle-double-left"></i>') }}
person baHI    schedule 13.03.2021