这个 是来自 Giuseppe Gurgone 的一个简洁的小型 HTML 预处理器。它的功能很少,但其中之一是 HTML 包含,这让我一直感到困惑,因为 HTML 本身并不原生支持它。有很多方法可以处理它。我认为很奇怪,它一直被需要几十年,而 HTML 可以发展到支持它,但却没有。所以无论如何,这里又提供了一个处理它的选项。
更巧妙的是,它不仅仅是包含,而是在一种非常干净的方式下使用包含进行模板化。如果这 是 Nunjucks,它们通过创建类似template.njk
的文件来解决这个问题。
{% block header %}
This is the default (overridable) header.
{% endblock %}
<footer>
{% block footer %}
This is the default (overridable) footer.
{% endblock %}
</footer>
然后你的实际页面使用该模板,例如…
{% extends "parent.html" %}
{% block footer %}
Special footer for this page.
{% endblock %}
在 xm 中,语法保持 HTML 风格,这很好。所以这个template.html
…
<slot name="header"></slot>
<footer>
<slot name="footer"></slot>
</footer>
…在这样的页面上使用
<import src="template.html">
<fill name="header">Custom Header</fill>
<fill name="footer">
<p>Custom footer</p>
</fill>
</import>
非常干净。此外,您可以随意在任何地方添加一个<markdown>
标签并在其中使用 Markdown,这一点非常方便。
在 pHtml 名称下有一套工具可以做到这一点,以及其他一些很酷的功能。
它完全专注于 HTML 而不是 JS。
https://github.com/phtmlorg/phtml#readme
我真的很喜欢使用它及其插件。
我比 nunjucks 更喜欢这个。如果有人要将它与 Gulp 一起使用,他们是否必须使用这个 https://github.com/posthtml/gulp-posthtml,因为该项目从技术上讲是一个 posthtml 插件?
嗨 Jakob,查看此 GitHub 问题 https://github.com/giuseppeg/xm/issues/10