当使用 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 将 & 转换为 & 的相关文章

  • 检测单选按钮/复选框状态的变化

    我需要可靠地检测页面上单选按钮 复选框的状态变化 以便查看表单是否被修改 现在 这是一个完全独立的脚本 我无法修改任何控制表单的内容 目前 我只能看到两种方法 onchange事件处理程序 有助于处理文本框 文本区域和选择 但不会针对复选框
  • 在节点环境中存根 jQuery.ajax (jQuery 2.x)

    我正在尝试运行一些需要存根的测试jQuery ajax 我正在使用 SinonJS 来做到这一点 它曾经与旧版本的 jQuery 1 x 一起工作得很好 var require jquery var sinon require sinon
  • 有没有办法动态更改 jqGrid 的单元格值?

    这个问题可能已经被问过很多次了 但我想知道是否可以动态更改 jqgrid 的单元格值 我基本上有一个网格 它通过 JSON 字符串加载数据 在特定列的某些行上 该值可能为 null 因此 预先知道哪个行 ID 是一个问题 然后能够将 nul
  • Javascript 对象属性名称

    在 C 中 可以将对象属性的名称作为字符串值获取 名称 对象 Property gt myProperty 这可以在 Javascript Typescript 中完成吗 Object Keys 是我找到的唯一东西 但它给了我所有的键 示例
  • Javascript 进程是否有多个执行线程?

    背景 我正在创建一个 地址簿 类型的应用程序 有很多条目需要加载 一个想法是首先加载一小部分条目 让用户开始 然后将剩余条目排队 优先考虑用户单击的条目 例如 如果他们单击以 X 开头的名称 请先加载这些名称 然后再处理队列的其余部分 这个
  • Angular UI 路由器嵌套视图问题

    我在理解 Angular UI Router 嵌套视图的工作原理时遇到了一些问题 我的 stateProvider 看起来像这样 stateProvider state login url login views main template
  • 更新存储在 chrome 扩展本地存储中的对象

    我正在开发一个 chrome 扩展 我将存储服务器发送的对象 例如 我将收到 命令 id 1 类型 A 大小 B 优先级 C 如果我有一个数据库 我会将其作为表中的一行插入commands 使用 chrome storage 我将这些对象的
  • 如何将一个数组中的所有项目复制到另一个数组中?

    如何将数组的每个元素 其中元素是对象 复制到另一个数组中 以便它们完全独立 我不想更改一个数组中的元素来影响另一个数组 这里的关键是 数组中的条目是对象 并且 您不希望对一个数组中的对象的修改显示在另一个数组中 这意味着我们不仅需要将对象复
  • Chrome --app 相当于 Firefox\IE

    我有一个网络应用程序 客户要求单击不同按钮时更改浏览器窗口大小 我发现在那link https stackoverflow com questions 13436855 launch google chrome from the comma
  • 可以禁用幻灯片的触摸模拟但不能禁用滚动条(危险的滑动器)吗?

    我的页面上有一个危险的滑动器 它成功地模拟了幻灯片和随附滚动条上的触摸事件 允许单击鼠标并移动以向左或向右滑动幻灯片 这很好 但我现在在滑动器内的幻灯片上调用了可拖动 这意味着我需要停止此触摸模拟 拖动幻灯片并同时移动它们会引起混乱 但仅限
  • 从链接打开本地文件夹

    如何通过单击任何链接打开本地文件夹视图 我尝试了很多选择 例如 a href Open folder a or a Open folder a or a Open folder a 解决方案 启动可下载链接 以下内容适用于所有浏览器 但一如
  • ES6 模块范围

    我有代码 lib js var a a export var b b main js console log a a variable is not available in a global scope import b from lib
  • Svelte 条件元素类报告为语法错误

    我正在做一个if块每if 块的精简指南 https svelte technology guide if blocks 这看起来很简单 但 Svelte 认为这是一个语法错误 svelte plugin ParseError Unexpec
  • 轮播滑动(未滑动)事件上的火灾事件,Bootstrap 3

    Bootstrap 2 似乎可以很好地处理幻灯片事件 请参阅这个问题 https stackoverflow com questions 9651466 how to attach slide slid events to the boot
  • Firebase + Node.js:错误:找不到 XMLHttpRequest 兼容性库

    Firebase Node js On iOS 安装的 Node js npm 安装 firebase save 节点测试 js 其中 test js 是一个非常简单的连接到 Firebase 的脚本 var firebase requir
  • 当php脚本通过ajax运行时显示进度条

    我有一个通过 ajax 向服务器提交值的表单
  • onPress 方法中箭头函数与普通函数的行为

    正在学习 Native React 并学习更多关于 javascript 的知识 所以我仍然不明白它的行为的很多事情 我使用 TouchableOpacity 及其 onPress 属性创建了一个按钮组件 为了让它工作 我必须发送我想要执行
  • Graphql 将多个查询合并(组合)为一个?

    我正在尝试使用 JavaScript 将多个 GraphQL 查询合并为一个查询 我正在寻找这样的东西 let query3 mergeQueries query1 query2 我们事先不知道哪些查询将被组合 假设我有这样的查询 输入查询
  • jQuery Mobile + Admob:轮换?

    我使用 jQuery Mobile 框架创建了一个移动应用程序 所有页面都在index php中加载 使用 div 在每个页面的页脚中 我添加了Admob代码 div div div
  • 将引导程序弹出框保留在视口内

    我正在尝试使用带有按钮的侧边栏创建一个菜单 每个按钮都有一个指定的包含相关数据的弹出窗口 不幸的是 其中一个弹出窗口可能包含任意数量的行 并且在某些情况下它可能部分位于视口之外 See http jsfiddle net bfd9f 1 h

随机推荐

  • $(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