问题标签 [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.
html - 如何为不同的环境配置静态 HTML 页面?
我正在使用 Nunjucks 进行 HTML 模板和 gulp 来编译页面。它只是一个静态的单页网站,但现在我发现我需要为每个环境设置不同的分析值等。最好的方法是什么?
我正在考虑拥有一个配置 json 文件并为每个环境编写不同的 gulp 任务来更改值,但我想看看是否有更好的方法来做到这一点。
json - gulp-nunjucks-html + gulp-data 未在手表上编译
我编写了一个 gulp 任务来从 json 文件中获取数据并将其作为 html 处理。当我第一次运行构建时,这就像一个魅力,但是我已经设置了一个监视任务来执行此操作,虽然它会将 nunjucks 文件重建为 html,但它似乎会忽略 json,直到下一个完整构建(即使手表所做的只是运行相同的任务)
这是我的任务:
这是我的整个 gulpfile,以防问题出在其他地方,我只是没有发现它:http ://pastebin.com/q9vc8h6i
有任何想法吗?
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
node.js - 在客户端 JavaScript (nunjucks) 中访问 Express.js 局部变量
这与这个问题基本相同,只是我使用 nunjucks 作为模板引擎。
我正在使用 express 的 render 方法将变量传递给 nunjucks 模板:
我想在我的客户端 javascript 中访问它。到目前为止,我想出的唯一方法是将它放在一个不可见的 HTML 元素中,然后从那里将其拉入 javascript:
有没有更好的方法?
javascript - 使用变量名调用 nunjucks 模板宏
给定一个宏:
有没有办法使用变量名来调用它:
或者,如何从自定义标签调用宏?我创建了一个可以接受这些变量的标签,但不确定如何从那里插入宏。
json - 带有上下文的导入模板似乎不起作用
我最近一直在尝试掌握 nunjucks,我以前使用过车把,所以学习曲线并没有那么糟糕。但是,有一件事我似乎无法工作:
我有一个 JSON 文件,其中包含以下数据:
这存在于一个包含其他页面元素的 JSON 文件中,但它只是我感兴趣的 contentIntro 上下文。
如果我包括这样的部分:
然后我可以在该部分(例如)中使用点表示法访问 JSON 数据{{ contentIntro.title }}
,但这不是很灵活,并且它使我无法在页面上拥有多个相同的部分类型。
理想情况下,我想做的是像这样导入部分:
然后在模板中,我可以使用它访问 JSON 数据,{{ title }}
因为它已经知道导入的上下文。
恼人的是,虽然它不起作用,我不明白为什么。Jinja2 文档似乎暗示它会,但我无法使用 Nunjucks 让它工作,这甚至可能吗?
编辑:我还应该补充一点,模板是在 gulp 中预渲染的,所以最终结果只是平面 HTML。
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
node.js - 如何使用 nunjucks 和 express.js 中的默认数据填充我的模板
我在一个快速应用程序中使用 nunjucks 作为我的模板引擎。我正在寻找一种用有关登录状态的数据填充模板的好方法。
我不想在每次调用函数时都将其放入模板中。
我有以下中间件:
我正在寻找一种方法来拥有这个:
我希望能够在模板中使用“登录”和“当前用户”。
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.
javascript - 如何访问由 gulp-gray-matter 插件创建的数据对象(使用 nunjucks 编译 html 文件时)
我使用nunjucks-render作为前端 JavaScript 模板引擎。
我想从某些 .nunjuck 文件中读取正面物质数据,然后在将我的 .nunjuck(模板)文件编译成 .html 文件时使用该数据。
经过一番研究,我发现gulp-gray-matter是更快更好的正面物质提取插件之一。
我的问题是:我现在如何访问正面物质数据对象?
例如,我会在 .nunjucks 文件中将正面问题写为:
最终的 HTML 输出应该是:
我的 gulfile.js 设置如下: