【发布时间】:2020-08-16 21:35:52
【问题描述】:
我经常从 InDesign 导出的 HTML 文件构建网页。在 InDesign 中,我可以对元素 class 属性进行一些控制,但要更改 DOM 结构本身是相当困难的。
使用它输出的 DOM 并不总是足够的,所以我需要一种方法来转换 DOM。
我的方法是在 puppeteer 实例上运行一组 jquery 命令来强制地塑造 DOM 并将输出的 HTML 保存到文件中。它变得非常难以维护,并且很难从代码中分辨出预期的输入和输出是什么。
所以我正在尝试将 nunjucks 作为模板引擎来生成输出。但是 AFAIK Nunjucks 擅长打印先前定义的变量,但不提供任何工具来从 HTML 块中检索其输入
我想编写一个带有选择器的模板/宏,可以在输入中找到内容,有点像这样:
<section>
<header>
<h2>{% contentFrom(".section-header") %}</h2>
</header>
<main>
{% contentFrom(".content") %}
</main>
</section>
然后将我的输入包装在一个 nunjucks 标记中,就像这样
{% filter dont_know_yet_what_should_go_in_here }
<p class="section-header">My_header_here</p>
<p class="content">My_contents</p>
{% endfilter}
我想这可以通过 nunjucks 自定义过滤器或自定义标签实现。但如果有更好的解决方案,我也会接受它作为答案!
【问题讨论】:
标签: javascript dom nunjucks templating-engine