Mustache Templates可以做模板扩展吗?

2024-02-13

我是小胡子的新手。

许多模板语言(例如,Django / Jinja)会让你像这样扩展“父”模板......

基本.html

<html><head></head>
    <body>
    {% block content %}{% endblock %}
    </body>
</html>

首页.html

{% extends "base.html" %}
{% block content %}<h1>Foobar!</h1>{% endblock %}

呈现的 frontpage.html

<html><head></head>
    <body>
    <h1>Foobar!</h1>
    </body>
</html>

我知道小胡子的事partials (e.g., {{>content}}),但那些似乎只是includes.

Mustache 是否存在模板扩展?或者,如果做不到这一点,是否至少有一些设计模式可以有效地转变includes转换为模板扩展等效项。


我最近发现自己也遇到了同样的情况,只不过我来自灰鲭鲨背景。

Mustache 不允许模板扩展/继承,但据我所知,有一些选项可供您使用。

  1. 您可以使用部分:

    {{>header}}
        Hello {{name}}
    {{>footer}}
    
  2. 您可以将模板预处理函数注入到需要从其他页面继承的每个模板的上下文中:

    {{#extendBase}}      
        Hello {{name}}
    {{/extendBase}} 
    

    Hash:

    {
       "name": "Walden",
       "extendBase": function() {
           return function(text) {
               return "<html><head></head>" + render(text) + "</body></html>"
           }
       }
    }
    
  3. 将所需的 HTML 添加到控制器中的相关页面。

  4. 有一个布局模板ala:

    {{>header}}
        {{{body}}}
    {{>footer}}
    

    并在控制器中渲染主体,将其作为名为的变量传递给布局模板body.

  5. 在加载模板的代码中实现模板继承(pre-mustache)。

然而,我不会使用三重胡子,因为我不希望未转义的 HTML 出现在任何地方,我认为这风险太大。

如果其他人对这个问题有更好的解决方案,我也很想听听,因为我还没有尝试过这些方向中的任何一个。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mustache Templates可以做模板扩展吗? 的相关文章

随机推荐

  • Java 中的有符号字节类型和按位运算符?

    引用自甲骨文网站 http docs oracle com javase tutorial java nutsandbolts datatypes html byte 字节数据类型是8位带符号的二进制补码整数 最小值为 128 最大值为12
  • 从我的 Ruby 应用程序构建 Windows 可执行文件?

    我希望能够向一些同事发送 Ruby 应用程序 而不要求他们安装 Ruby 解释器 最好是单个 exe 我用谷歌搜索并找到了 RubyScript2Exe 您对此有什么经验 还有其他这样的工具或者有比构建 exe 更好的方法吗 我已经使用了大
  • R中的循环:如何保存输出?

    我正在尝试保存逻辑测试循环中的数据 所以我有以下数据 T1 lt matrix seq from 100000 to 6600000 length out 676 26 26 a matrix of 26X26 here with illu
  • Python字典-二分查找一个键?

    我想编写一个像字典一样的容器类 实际上派生自字典 该结构的键将是日期 当使用键 即日期 从类中检索值时 如果该日期不存在 则使用该键之前的下一个可用日期来返回该值 以下数据应该有助于进一步解释这个概念 Date key Value 2001
  • 使用 AudioWorklet 传输捕获的音频时如何防止中断/不稳定/故障?

    我们一直在开发基于 JavaScript 的音频聊天客户端 该客户端在浏览器中运行并通过 WebSocket 将音频样本发送到服务器 我们之前尝试使用 Web Audio API 的 ScriptProcessorNode 来获取样本值 这
  • 适用于使用 SSL Pinning 的移动应用程序的 Charles Proxy

    Charles Proxy 网站评论说 请注意 某些应用程序实施 SSL 证书固定 这意味着它们专门验证根证书 由于应用程序本身正在验证根证书 因此它不会接受 Charles 的证书 并且连接将失败 如果您已成功安装 Charles 根 S
  • 最终挂起后协程的状态

    协程具有初始挂起点和最终挂起点 Acoroutine handle is done https en cppreference com w cpp coroutine coroutine handle done当它在最终暂停点暂停时 然而
  • 如何在octobercms中过滤多个类别的博客文章?

    October CMS如何过滤多个类别的博文 我正在使用 RainLab 博客插件 该插件仅允许过滤一种类别 我想要一个综合结果 请帮忙 您将需要使用一些自定义代码来根据多个类别进行过滤 如果仍然使用 PostList 组件 请进行以下更改
  • iOS 编程中的中心地图

    我们如何在地图中关注用户 我想让蓝点 用户位置 位于地图的中心 但我还允许用户放大和缩小 然后在几秒钟后放大回用户位置 我对解决方案的有根据的猜测 我们检测用户是否正在放大或缩小 在没有放大或缩小检测的三秒后 我们开始跟随用户 你的帮助会很
  • IEnumerable 的性能比较和源中每个项目的引发事件?

    我想读取包含数百万条记录的大型二进制文件 并且我想获取一些记录报告 我用BinaryReader读取 我认为在读取器中具有最佳性能 并将读取的字节转换为数据模型 由于记录的数量 将模型传递到报表层是另一个问题 我更喜欢使用IEnumerab
  • 在 WSO2 ESB 中介期间修改配置注册表资源内容

    我有一个场景 我需要在配置注册表中存储简单计数器并在序列流结束时递增它 我们需要存储在配置注册表中的原因是 如果服务器重新启动 我们将保留最后的计数器值 有人可以建议如何增加配置注册表中的计数器吗 您可以在中介中使用示例 javascrip
  • “等待返回”有什么区别吗? [复制]

    这个问题在这里已经有答案了 有什么区别吗 const foo async gt some other code that uses await return await bar and const foo async gt some oth
  • Gradle - 仅执行单一构建类型

    我在 build gradle 中定义了多种构建类型 在变体窗口中 我选择了构建变体 例如 debugAPI23 我预计只会执行一种构建类型中的代码 但在 Gradle Console 中我可以看到所有构建类型的输出 正如您所看到的 我正在
  • 在同一地址多次放置 new 是否定义明确/合法?

    注意 这个问题的动机是试图提出预处理器黑客技术来生成无操作分配来回答另一个问题 接受新对象的宏 https stackoverflow com questions 7522949 c macro that accent new object
  • 路由的处理程序无效 - Wordpress

    我正在尝试使用类在 WordPress 中创建自定义 REST API 端点 我也用传统的方式做了同样的事情 效果很好 但是 使用类时我收到错误The handler for the route is invalid 代码 class CS
  • 谁能解释一下android中未绑定服务和绑定服务之间的区别

    任何人都可以解释一下android中未绑定服务和绑定服务之间的区别 并解释一下意图服务 Thanks 绑定服务 http developer android com guide components bound services html
  • 制作堆叠矩形而不是列的直方图

    使用以下代码 我得到如下的直方图 x lt rnorm 100 hist x col gray 我该怎么做才能将条形显示为堆叠矩形 通过其轮廓可见 而不是填充颜色的变化 而不是统一的列 每个矩形代表一个频率 例如 1 尽管我希望能够通过参数
  • 使用 dropzone.js 发送附加参数

    我正在尝试添加 dropzone js 并且想通过 file 传递另一个参数 因此我将隐藏输入放入 form 中 我可以上传文件并可以在Java部分读取它 但我无法读取type chooser WebKitFormBoundaryZxF6M
  • 我的上网IP是多少

    我的电脑上安装了两张网卡 一个用于互联网连接 另一个用于与客户端计算机共享互联网 我用这段代码获取我的IP IPHostEntry HosyEntry Dns GetHostEntry Dns GetHostName foreach IPA
  • Mustache Templates可以做模板扩展吗?

    我是小胡子的新手 许多模板语言 例如 Django Jinja 会让你像这样扩展 父 模板 基本 html block content endblock 首页 html extends base html block content h1