问题标签 [metalsmith]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
918 浏览

mustache - 如何在 metalsmith 中设置多个内容区域?

我有一个非常简单的金属匠用例,似乎没有任何现成的文档涵盖。

在我的 index.html 中,我想要多个内容区域:

我希望aboutfaq的内容来自降价文件。我很高兴改变我的文件的组织/标记方式。

我只是不知道要使用哪些插件来使它工作,一切似乎都是为了为每个源文件生成一个输出文件。

看起来它们可以工作的插件(metalsmith-in-placemetalsmith-layouts)告诉你来 SO 以获得更详细的示例,所以我们来了!

0 投票
2 回答
641 浏览

metalsmith - 模板的金属匠模板

是否可以使用相互扩展的模板?

说,我有这些文件:

base.html

三列.html

somePost.html

期望的输出

我正在使用金属匠布局。

0 投票
1 回答
539 浏览

javascript - 车把套

我正在尝试让我的metalsmith设置正常工作,没什么特别的。

在我的build.js我有:

在我的部分模板中,header.hbt我有:

结果 html 以:

<p>&lt;!DOCTYPE html&gt;</p>

——这显然不是我需要的。

有什么建议么?

PS。在我的布局文件中使用普通的 doctype 定义具有相同的效果。使用handlebars ^4.0.5.

编辑1: 尝试了一下之后,我可以提供另一个症状:如果将调用的结果放在块之前,它SafeString()似乎被包装在标签中。这并非特定于 doctype 声明,»normal« html 元素似乎也受到影响。<p><html>

编辑 2: 现在我已经提炼了 2x2 案例以实现以下功能safeString()

a)块内的常规元素(例如<div><html>按预期呈现,没有更改。

b)块渲染之前的常规元素,但放置在标签内。<html><p>

c)块内的doctype元素<html>被呈现为纯文本,如下所示:&lt;!DOCTYPE html&gt;

d)块之前的doctype元素<html>将以相同的方式呈现,但包装在一个<p>元素中。

0 投票
3 回答
1271 浏览

nunjucks - 这个 metalsmith-in-place 构建脚本有什么问题?

我正在尝试使用 metalsmith-in-place 对源目录的子目录中的文件进行一些就地模板化。它不起作用。模板标签不会被 frontmatter 替换。

我的构建脚本:

我的模板:

我的输出:

它适用于source; 但我需要它来处理子目录。

0 投票
1 回答
176 浏览

swig-template - 使用 Metalsmith 和 swig 访问模型中的单个对象

我有一个 json 数据文件,其中包含多个对象,其中包含命名键。

在我的内容文件中,我想指定模型中要使用的对象,然后在 swig 中引用它。像这样的东西:

这可能吗?

0 投票
2 回答
130 浏览

handlebars.js - 如何将布局元信息插入与文件模式匹配的所有文件中?

我有很多 Markdown 源文件,它们是由一些数据导出步骤自动生成的。

我正在使用 metalsmith-layouts 并在我手工制作的(非自动生成的)markdown 文件顶部有这些行,以便使用我的 layout.html 对它们进行布局:

如何将布局信息动态添加到所有匹配的文件,例如文件模式教程/*.md,以便这些文件也与我的布局一起呈现?在转换之前将此信息添加到文件中并不优雅。

0 投票
0 回答
246 浏览

metalsmith - Metalsmith 的多语言网站

我已经为 Melatsmith 尝试了不同的插件组合,但仍然需要帮助。您能否建议如何像这样转换结构:

进入:

不幸的是,在 Metalsmith 中关于多语言的所有文章中,他们已经有了 locale 文件夹src。在我的版本中,我不想拥有它,而是.md为每个语言环境提供不同版本的文件。

0 投票
1 回答
2236 浏览

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

我无法在我的降价文件中重用模板代码。例如,我想提取 vimeo 链接的嵌入代码,然后将 vimeo id 传递给调用。

一个示例宏:

像这样使用:


如果我直接在 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-placeNujucks 特有的include,并且importmetalsmith-layouts.

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

0 投票
0 回答
161 浏览

metalsmith - Metalsmith-permalinks 未能添加元数据路径

我正在使用具有以下设置的 metalsmith-permalinks:

但是,相关集合中的日志记录文件显示path未将其添加到其元数据中:

永久链接在布局之前被调用,这意味着它不可能是这里发现的相同问题,并且 - 如日志中所示 - 其他插件正在成功添加元数据。

我的完整构建顺序是:

我直接在 Gulp 中运行 Metalsmith。任何帮助将不胜感激。

0 投票
1 回答
270 浏览

javascript - {{}} 内的车把变量?

如何使用包含字符串'nav'(来自markdown文件)而不是nav(json文件)的变量: {{#each nav}} {{this}} {{/each}} 由于我有多个nav.json文件,如果我使用来自相应markdown文件的变量,我希望它循环使用与markdown中的变量相同的文件名的相应json文件。

有什么帮助吗?