问题标签 [nunjucks]

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 投票
1 回答
818 浏览

html - 如何为不同的环境配置静态 HTML 页面?

我正在使用 Nunjucks 进行 HTML 模板和 gulp 来编译页面。它只是一个静态的单页网站,但现在我发现我需要为每个环境设置不同的分析值等。最好的方法是什么?

我正在考虑拥有一个配置 json 文件并为每个环境编写不同的 gulp 任务来更改值,但我想看看是否有更好的方法来做到这一点。

0 投票
1 回答
1594 浏览

json - gulp-nunjucks-html + gulp-data 未在手表上编译

我编写了一个 gulp 任务来从 json 文件中获取数据并将其作为 html 处理。当我第一次运行构建时,这就像一个魅力,但是我已经设置了一个监视任务来执行此操作,虽然它会将 nunjucks 文件重建为 html,但它似乎会忽略 json,直到下一个完整构建(即使手表所做的只是运行相同的任务)

这是我的任务:

这是我的整个 gulpfile,以防问题出在其他地方,我只是没有发现它:http ://pastebin.com/q9vc8h6i

有任何想法吗?

0 投票
1 回答
3534 浏览

include - Nunjucks,在“包含”部分文件中定义的块被扩展忽略

这是我的用例

我有一个将各个部分组合在一起的文件(holy-grail.njs),然后由我想要的实际页面(single.njs)扩展。问题是包含文件中定义的块被实际页面模板忽略。您可以看到扩展侧边栏文本未出现在屏幕截图中 <p>Here is some additional content for the sidebar extended in</p>

只是为了笑,我将块代码从 sidebar.njs 移到了 Holy-grail.njs,是的,它由 single.njs 扩展,所以它确实是我所怀疑的。

是错误吗?,非功能?解决方法怎么样?或者翡翠会做我想做的事吗?我假设“包含”文件只是在进一步处理之前被包含,但也许它们被处理然后包含?如果无法做到这一点,我组织模板片段/部分然后扩展/自定义内容的整个常规方式将是行不通的。

三年前问过同样的问题,没有人回答 包含文件中的块没有被扩展模板填充

单.njs

圣杯.njs

侧边栏.njs

修女

0 投票
1 回答
2236 浏览

node.js - 在客户端 JavaScript (nunjucks) 中访问 Express.js 局部变量

这与这个问题基本相同,只是我使用 nunjucks 作为模板引擎。

我正在使用 express 的 render 方法将变量传递给 nunjucks 模板:

我想在我的客户端 javascript 中访问它。到目前为止,我想出的唯一方法是将它放在一个不可见的 HTML 元素中,然后从那里将其拉入 javascript:

有没有更好的方法?

0 投票
2 回答
1601 浏览

javascript - 使用变量名调用 nunjucks 模板宏

给定一个宏:

有没有办法使用变量名来调用它:

或者,如何从自定义标签调用宏?我创建了一个可以接受这些变量的标签,但不确定如何从那里插入宏。

0 投票
1 回答
299 浏览

json - 带有上下文的导入模板似乎不起作用

我最近一直在尝试掌握 nunjucks,我以前使用过车把,所以学习曲线并没有那么糟糕。但是,有一件事我似乎无法工作:

我有一个 JSON 文件,其中包含以下数据:

这存在于一个包含其他页面元素的 JSON 文件中,但它只是我感兴趣的 contentIntro 上下文。

如果我包括这样的部分:

然后我可以在该部分(例如)中使用点表示法访问 JSON 数据{{ contentIntro.title }},但这不是很灵活,并且它使我无法在页面上拥有多个相同的部分类型。

理想情况下,我想做的是像这样导入部分:

然后在模板中,我可以使用它访问 JSON 数据,{{ title }}因为它已经知道导入的上下文。

恼人的是,虽然它不起作用,我不明白为什么。Jinja2 文档似乎暗示它会,但我无法使用 Nunjucks 让它工作,这甚至可能吗?

编辑:我还应该补充一点,模板是在 gulp 中预渲染的,所以最终结果只是平面 HTML。

0 投票
1 回答
2024 浏览

gulp - 带有 markdown 和 nunjucks 的 gulp 工作流

我正在通过 Gulp 设置使用 Markdown 和 Nunjucks 生成静态页面的工作流程。我目前依赖的两个任务是:

具有以下结构:

如果我gulp templates使用扩展 layout.nunjucks 的 index.nunjucks 运行它,则将 index.html 编译到 /app 中。但是,我想使用gulp pages从 index.md 中绘制 frontmatter 和 Markdown 来生成 index.html 的内容。

我遇到的问题是路径:鉴于上述结构,如何通过 /app/templates/pages/index.nunjucks 使用 /app/pages/index.md 作为 /app/index.html 的内容?目前,任务失败并显示Template render error: (unknown path).

本质上,我试图扩展这里所取得的成就:Gulp Front Matter +Markdown through Nunjucks

0 投票
1 回答
528 浏览

node.js - 如何使用 nunjucks 和 express.js 中的默认数据填充我的模板

我在一个快速应用程序中使用 nunjucks 作为我的模板引擎。我正在寻找一种用有关登录状态的数据填充模板的好方法。

我不想在每次调用函数时都将其放入模板中。

我有以下中间件:

我正在寻找一种方法来拥有这个:

我希望能够在模板中使用“登录”和“当前用户”。

0 投票
1 回答
4884 浏览

javascript - nunjucks set create object

As nunjucks now supports using set as a block I wanted to do something like this:

Then call this variable as the input object on another macro, like so:

However, navigationItems is evaluated as a string, not an array-literal. Any idea how, or if this is possible?

Thanks.

0 投票
1 回答
394 浏览

javascript - 如何访问由 gulp-gray-matter 插件创建的数据对象(使用 nunjucks 编译 html 文件时)

我使用nunjucks-render作为前端 JavaScript 模板引擎。

我想从某些 .nunjuck 文件中读取正面物质数据,然后在将我的 .nunjuck(模板)文件编译成 .html 文件时使用该数据。

经过一番研究,我发现gulp-gray-matter是更快更好的正面物质提取插件之一。

我的问题是:我现在如何访问正面物质数据对象?

例如,我会在 .nunjucks 文件中将正面问题写为:

最终的 HTML 输出应该是:

我的 gulfile.js 设置如下: