gpt4 book ai didi

markdown - 如何将 Nunjucks 的部分/宏/包含与 metalsmith-in-place 一起使用?

转载 作者:行者123 更新时间:2023-12-01 03:29:28 26 4
gpt4 key购买 nike

我在 Markdown 文件中重用模板代码时遇到问题。
例如,我想提取 vimeo 链接的嵌入代码,然后将 vimeo id 传递给调用。

一个示例宏:

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

像这样使用:
{{ vimeoEmbed(120394634) }}

如果我直接在 markdown 文件中定义宏,这会起作用。但我当然想要一个 全局文件 带有宏以便于维护。

我尝试使用 Nunjucks 的 {% import "macros.njk" as macros %} . macros.njk将包含 vimeoEmbed宏。
但不幸的是我不断收到 Error: template names must be a string: undefined .

作为替代方案,我尝试使用 {% include "vimeoEmbed.njk" %}但我得到了相同的 Error: template names must be a string: undefined .

这似乎特定于 metalsmith-in-place作为 Nujucks 的 includeimport使用 metalsmith-layouts 工作得很好.

任何其他在 Markdown 文件和 Nunjucks 中重用代码的解决方案也是受欢迎的。谢谢!

最佳答案

我自己想通了。

我的错误基本上是运行 metalsmith-in-placemetalsmith-markdown插入。 Markdown 插件已经转换了引号,例如 {{ "some string" }}{{ &quot;some string&quot; }} .
我切换它,以便在 Markdown 之前就地运行。

同时我也更新了metalsmith-in-place2.0.0-beta.1 .它现在依赖于 JSTransformer 而不是 consolidate.js。
由于 Nunjucks 变压器似乎有一个 issue使用 Nujucks 包含和导入,我还必须从 Nunjucks 宏切换到过滤器。
所以我不完全确定这会解决最初的问题,但很有可能。

关于markdown - 如何将 Nunjucks 的部分/宏/包含与 metalsmith-in-place 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38972612/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com