Ich habe Probleme bei der Wiederverwendung von Vorlagencode in meinen Markdown-Dateien. Zum Beispiel möchte ich den Einbettungscode für Vimeo-Links abrufen und einfach die Vimeo-ID an den Anruf übergeben.Wie benutzt man die Teiltöne/Makros/Includes von Nunjucks mit der Schmiede vor Ort?
Ein Beispiel Makro:
{% macro vimeoEmbed(id) %}
<iframe src="https://player.vimeo.com/video/{{ id }}?title=0&byline=0&portrait=0" width="300" height="169" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
{% endmacro %}
Um wie folgt verwendet werden:
{{ vimeoEmbed(120394634) }}
Dies funktioniert, wenn ich das Makro in der Abschlags-Datei direkt zu definieren. Aber natürlich hätte ich gerne eine globale Datei mit dem Makro für einfachere Wartung.
Ich habe versucht, Nunjucks '{% import "macros.njk" as macros %}
zu verwenden. macros.njk
würde das vimeoEmbed
Makro enthalten.
Aber leider bekomme ich immer Error: template names must be a string: undefined
.
Als Alternative habe ich versucht mit {% include "vimeoEmbed.njk" %}
, aber ich bekomme das gleiche Error: template names must be a string: undefined
.
Dies scheint mit metalsmith-layouts
-metalsmith-in-place
als Nujucks' include
und import
gut funktionieren spezifisch.
Jede andere Lösung zur Wiederverwendung von Code in Markdown-Dateien und Nunjacks ist ebenfalls willkommen. Vielen Dank!
Hallo! Wie hast du es geschafft, dass Metalschmied und Nunjacks zusammenarbeiten? Ich habe sowohl "Layouts" als auch "In-Place" ausprobiert, aber sie verarbeiten die '.nj' Dateien in den meisten Konfigurationen, die ich ausprobiert habe, überhaupt nicht. Könnten Sie bitte Ihre Konfiguration teilen? Vielen Dank! –
Stellen Sie sicher, dass Sie '.njk' oder' .nunjucks' als Erweiterung für Nunjucks verwenden. JSTransformer stimmt die Transformatoren abhängig von den Dateierweiterungen automatisch ab. Sehen Sie sich [diese Liste] (https://github.com/jstransformers/inputformat-to-jstransformer/blob/master/dictionary.json) als Referenz an. –
Ja, danke. Ich habe das herausgefunden, indem ich den Quellcode durchgesehen habe. Ich habe einen Artikel zu diesem Thema geschrieben: https://medium.com/@slavafomin/making-metalsmith-to-work-with-nunjucks-a67a74c3e73d –