当使用 JavaScript 时,Jade 将 & 转换为 &

2023-12-19

我刚刚开始使用竖琴0.30.1 https://www.npmjs.com/package/harpJade 附带安装作为预处理器。所以我也从 Jade 开始。

我有一个文件夹,其中包含一组文件,文件名如下This-is-an-MD-file.md。随着index.jade文件在此文件夹中,我想生成以下 HTML 输出:

<ul>
  <li><a href="This-is-an-MD-file.html">This is an MD file</a></li>
</ul>

我对 Jade 和 mixins 有足够的了解来制作这个......

- var trim = function(string) {
-   var index = string.lastIndexOf(".")
-   return string.substring(0, index).replace(/-/g, " ")
- }

mixin link(fileName)
  li
    a(href='#{fileName}') #{trim(fileName)}

ul
  for file in public._contents
    - if (file !== "index.html"){
      +link(file)
    -}

...这给了我我想要的。

但是,如果我尝试使用"&nbsp;"代替" "在替换函数中,我看到 HTML 输出使用&amp;而不是&特点。

<li>
  <a href="This-is-an-MD-file.html">
    This&amp;nbsp;is&amp;nbsp;and&amp;nbsp;MD&amp;nbsp;file
  </a>
</li>

这不是我想要的。

这仅发生在 JavaScript 函数中。如果我使用&nbsp;在普通的 Jade 标记部分,就像这样......

p non&nbsp;breaking&nbsp;space

... HTML 的输出完全符合预期。

为什么会发生这种情况?有没有办法逃脱&JavaScript 部分中的字符,以便它不会转换为 HTML 实体?


您可以使用未转义的字符串插值 https://pugjs.org/language/interpolation.html#string-interpolation-unescaped句法 (!{variable}) 而不是常规的字符串插值语法 (#{variable})以便渲染那些不间断的空间。

在你的情况下:

a(href= fileName) !{trim(fileName)}

但请记住来自哈巴狗文档 https://pugjs.org/language/interpolation.html#string-interpolation-unescaped:

Caution

请记住,如果未转义的内容是来自用户的新鲜内容,则将未转义的内容缓冲到模板中可能会带来很大的风险。永远不要相信用户输入!

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

当使用 JavaScript 时,Jade 将 & 转换为 & 的相关文章

随机推荐

  • $(window).hashchange() 不起作用

    Hi 我正在尝试使用浏览器后退按钮 我了解如何使用 hashchange 插件捕获事件 gt window hashchange function alert location hash window hashchange 当我尝试加载新页
  • dplyr sql 连接

    考虑以下 SQL SELECT D product name FROM business payment P LEFT JOIN dim product name D ON D product id P product id 该查询返回付款
  • 如何在 VB.NET 中激活、移动窗口并调整窗口大小

    我有一个窗口 我只知道其标题 例如记事本 我需要激活该窗口 调整其大小并将其放置在屏幕的左上角 因此 在对 MSDN 和论坛进行一些研究后 我发现了一些应该实现此目的的功能 我使用FindWindow按标题获取句柄 然后使用GetWindo
  • “复杂胜于复杂”是什么意思? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在蒂姆 彼得斯 Tim Peters 的 Python 之禅 中 复杂胜于复杂 这句话让我很困惑 谁能
  • 在java中使用什么好的持久集合框架?

    我所说的持久集合是指类似于 clojure 中的集合 例如 我有一个包含元素 a b c 的列表 对于普通列表 如果我添加 d 我的原始列表将包含 a b c d 作为其元素 对于持久列表 当我调用 list add d 时 我会返回一个新
  • 弹出到应用程序委托中的根视图控制器

    我有一个有人登录的应用程序 如果他们在将其发送到后台超过 10 分钟后启动它 我会弹出一个漂亮的小 会话过期 警报 并将它们发送到根视图控制器 登录页面 一切都很好 但我不知道如何从应用程序委托的 applicationWillEnterF
  • 如何使用 Amazon S3 实施 LuceneNet

    我尝试在我的应用程序中使用 Amazon S3 来存储我生成的索引来实现 Lucene 但我可以找到任何代码示例或清晰的文章 因此 任何有这方面经验的人请提供指南或可以帮助我开始的东西 有一个类似的问题here https stackove
  • psql:致命:无法打开文件“base/11951/11717”:只读文件系统

    我正在尝试从 CLI 访问 postgreSQL 数据库 当我以 postgres 身份登录并输入命令时 我收到错误 psql FATAL could not open file base 11951 11717 Read only fil
  • PHP 中的单元测试 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 你们用 PHP 进行单元测试吗 我不
  • Angular Material sidenav 事件广播

    我正在使用 Angular Material 的 sidenav 指令 当我们点击组件之外时 sidenav 将被关闭 当时播出的活动是什么 In your controller use watch https docs angularjs
  • 如何检测用户使用的是移动设备、平板电脑还是桌面设备并重定向它们?

    首先我知道响应式网站不是 1 但不幸的是目前这不是一个选择 我也有很强的 JavaScript 编码能力 我需要检测用户是否使用台式机 平板电脑或移动设备并重定向它们 用户使用桌面 留在站点 A 用户使用平板电脑 从 A 重定向到站点 B
  • Typescript 如何将类型键映射到驼峰命名法

    我是打字稿新手 但我想创建一个映射类型来将键从另一种类型转换 具体来说 假设我有一个所有键都是蛇形外壳的类型 我如何创建一个所有键都是驼形外壳的类型 我想我可以做类似的事情 type CamelCase
  • 如何在 Firefox 插件中实现 Chrome 扩展程序的 chrome.tabs.sendMessage API

    我正在使用 Addon Builder 进行 Firefox 插件开发 我不知道如何在 Firefox 插件中实现 Chrome 扩展的 chrome tabs sendMessage API 代码是这样的 代码在background js
  • PowerShell 中的 Word.Application ComObject 错误

    我无法获取 Word 2010 14 0 x 文档SaveAs http msdn microsoft com en us LIBRary microsoft office interop word documentclass saveas
  • 如何使用 PrintDocument 在热敏打印机上打印文本文件?

    我正在使用 C 和 Winforms 创建一个应用程序 现在我需要在热敏打印机上打印销售收据 为此 我创建一个文本文件并使用以下命令读取它以进行打印PrintDocument但我不能这样做 因为我不知道如何配置纸张尺寸 在纸张上对齐文本中心
  • 禁用 wpftoolkit 图表数据点

    有谁知道如何关闭 WPFToolkit 图表中 noraml LineSeries 的数据点 我发现它们非常烦人 对我的目的没有用 但我在类本身上找不到简单的属性或类似的东西 你想隐藏它们吗 如果设置为空是可以的ControlTemplat
  • 如何在aspx页面的服务器脚本块中使用[WebMethod]?

    我正在尝试创建一个简单的 Net 3 5 页面 其中包含一些 HTML 和一个WebMethod 当我尝试打电话给我的WebMethod从我的浏览器 但它不断返回页面 有什么想法如何让它发挥作用吗 这是我的代码
  • 我可以为 influxdb 中的不同测量创建不同的保留策略吗?

    是否可以使用不同的保留策略来处理 influxdb 中的不同测量值 这对于 InfluxDB 来说是完全可能的 为此 您需要创建一个具有两个保留策略的数据库 然后将数据写入关联的保留策略 Example influx gt create d
  • 我将 ng2-metadata 与我的 Angular 版本 4 应用程序一起使用,谷歌似乎只显示默认标题和描述

    我在用着ng2 元数据使用我的角度应用程序和谷歌似乎只显示默认标题和元描述 My tech Angular 版本 4 webpack typescript 和 firebase 用于托管 我正在部署 AOT 构建 并且添加了 ng2 met
  • 当使用 JavaScript 时,Jade 将 & 转换为 &

    我刚刚开始使用竖琴0 30 1 https www npmjs com package harpJade 附带安装作为预处理器 所以我也从 Jade 开始 我有一个文件夹 其中包含一组文件 文件名如下This is an MD file m