首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在属性哈希中取消转义HAML

在属性哈希中取消转义HAML
EN

Stack Overflow用户
提问于 2013-05-16 12:15:57
回答 2查看 1.6K关注 0票数 7

我有一个与我在堆栈溢出中发现的问题相似的问题,但不是完全相同。我想避免以下问题的解决办法:

https://stackoverflow.com/a/10407782/996587

基本上,希望获得以下HTML输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class='myclass' extraattr='UNESCAPED <>& CONTENT'>
    Content...
</div>

我使用的HAML如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.myclass{ "extraattr" => "UNESCAPED <>& CONTENT" }
  Content...

我不太清楚如何让内容以我想要的方式输出。尝试将.html_safe应用于字符串的末尾,但得到了以下错误:

用于“`html_safe <>& CONTENT”的未定义方法<>&:String

后来意识到,对于这个特定的应用程序,我不使用Rails,只使用ruby + HAML。(我继承了这个项目,我刚刚开始学习HAML、ruby和Rails )

同样,对于那些懒得点击链接并且没有阅读我提到的解决方案的人来说,我不希望配置HAML来避免整个文件的吸引,而仅仅是这个属性。

谢谢!

更新

我刚刚找到了:普通过滤器,并且能够用它得到我想要的。但是,如果有一个技巧我不知道,所以我不需要写所有的HTML,我会感激它。我的“解决办法”:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
:plain
  <div class='myclass' extraattr='UNESCAPED <>& CONTENT'>
    Content...
  </div>
EN

回答 2

Stack Overflow用户

发布于 2013-05-17 12:04:25

在Rails之外的Haml中,没有(目前)任何方法关闭单个属性的转义,而是使用:escape_attrs选项。根据您想要的内容,它可能值得一看 option

当在Rails中使用Haml时,它会将html转义方法替换为一些尊重html_safe添加的ActiveSupport值的方法(参见lib/haml/helpers/xss_mods.rb)。

如果您愿意,可以在Rails之外使用这些方法。您需要将html_safehtml_safe?方法添加到String类中才能工作(这里要小心,这个示例只是Rails提供的完整XSS保护的“可怜的人”版本,它不会真正保护您不受太多的影响,但它将允许对属性进行选择性转义)。

在需要Haml之后的某个位置添加以下内容(可能最好在需要它自己的文件中添加):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class String
  def html_safe?
    defined?(@html_safe) && @html_safe
  end

  def html_safe
    @html_safe = true
    self
  end
end

require 'haml/helpers/xss_mods'

module Haml::Helpers
  include Haml::Helpers::XssMods
end

现在您可以在您的字符串上使用html_safe,而Haml不会转义它们:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.myclass{ "extraattr" => "UNESCAPED <>& CONTENT".html_safe,
          "otherextraattr" => "ESCAPED <>& CONTENT"}
  Content...

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class='myclass' extraattr='UNESCAPED <>& CONTENT' otherextraattr='ESCAPED &lt;&gt;&amp; CONTENT'>
  Content...
</div>
票数 6
EN

Stack Overflow用户

发布于 2013-05-16 14:45:22

您是否尝试过使用\来转义字符。

{ :myattr => '\<\>\&' }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16596659

复制
相关文章
Java 指定日期和日期间隔,返回间隔 之前 | 之后 的日期
public class DateUtil { /** * 指定日期和日期间隔,返回间隔之前的日期 * @param specifiedDay * @param interval * @return */ public static String getSpecifiedDayAgo(String specifiedDay, int interval){ return getSpecifiedDay(specifiedDay
大数据工程师-公子
2019/03/14
2.6K0
python获取日期加减之后的日期
python语言中的datetime模块可以利用其中的方法获取不同的日期,比如获取当前日期、明天、昨天、上个月、下个月和明年。下面利用几个实例说明这些日期的获取方法,操作如下:
周小董
2019/03/25
10.9K0
python获取日期加减之后的日期
Math.abs()求绝对值返回负值BUG分享
近期在推进代码质量的过程中,发现一个隐藏的知识点,就是Math.abs()求一个int数据的绝对值的时候会出现返回结果为负值的BUG。
FunTester
2020/12/01
1.3K0
java计算某日期之后的日期
public static void main(String[] args) { // 时间表示格式可以改变,yyyyMMdd需要写例如20160523这种形式的时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); String str = "2016/05/23"; // 将字符串的日期转为Date类型,ParsePosition(0)表示从第一个字符开始解析
HUC思梦
2020/09/03
1.9K0
当公司倒闭时,你在干什么?
说出来你可能不信,松哥竟然也经历过公司倒闭的事!最近看到我 GitHub 上开源的 vhr 项目 star 数即将过3k,不禁想起做这个项目时候的事,刚过去一年多,依然历历在目。
江南一点雨
2019/05/07
6590
当公司倒闭时,你在干什么?
当人们在讨论 ChatGPT 时,都在讨论什么
第一,ChatGPT 本质上没有脱离计算机的计算范畴,它只能也终将取代繁重重复、只依靠经验和知识的劳动和工作,它可以取代大部分行业的一部分人,包括程序员,但是无法取代所有程序员,也无法取代那些依靠智慧和灵感的工作,笔者在大厂待过一两年,相信所有大厂都一样,主要产品的代码由于历经多人维护、多次迭代、多向重构,其代码量随随便便几千万行甚至上亿计,这样一个庞然大物能够运行起来,除了优雅的架构设计,还有数不清的胶水,复杂度远超当下 ChatGPT 能够生成的 demo 代码,但是它还是能够有它用武之地,有记不清的 function 代码,它是个好帮手,因此更像是一个无限容量的代码字典。
月小水长
2023/03/02
5280
当人们在讨论 ChatGPT 时,都在讨论什么
当联想收购IBM流产之后
当联想收购IBM流产之后     最近美国延长对联想IBM的交易调查(看http://www.csdn.net/news/newstopic/19/19603.shtml),这也许意味的联想和IBM的交易 最终可能因为美国政府的介入而流产,假如交易真的流产的话,将可能产生什么样的结果呢?下面我提出个人的看法: 1。联想可能因此一蹶不振。联想进几年的发展并不顺利,首先是换商标花费了大量的财力物力,其次,联想进几年的市场不断受到 其它竞争者的蚕食,还有,这次收购IBM也花费了联想的大量财力物力,受到这连串的打击,联想可能一蹶不振,逐渐被其它竞争者所 代替。 2。这将影响其它企业进军国际的步伐。这次收购如果失败的话,将无形给其它企业造成一种压力,使得他们不敢轻易进行大宗的收购, 那样的风险太大了。 3。这可能影响中美之间的关系。如果收购失败,将产生很大的影响,中国政府可能因此向美国进行交涉,甚至采取报复措施(当然这个 可能性比较少),从而影响了中美之间的正常关系。 4。使得中国民众的厌美情绪高涨。联想一直都是中国民众的骄傲,柳传志更加是中国的企业教父(跟海尔的张瑞敏同名),而收购IBM的PC 业务也使得中国民众引以为傲而津津乐道。而且收购失败,对中国民众来说是一种打击,他们会将这归咎为美国政府对中国的敌对造成的, 从而使得这么的厌美情绪高涨。     上面的我的一些肤浅的理解,可能很多都有失偏颇,请大家指正。
源哥
2018/08/28
3030
当Python退出时,为什么不清除所有分配的内存?
在讨论为什么 Python 在退出时不清除所有分配的内存之前,我们需要了解 Python 的内存管理机制。Python 使用一种称为 引用计数 的垃圾回收机制来管理内存。在这种机制下,每个对象都有一个引用计数器,记录着当前有多少个引用指向该对象。当引用计数器为 0 时,对象将被销毁,内存得以释放。然而,在 Python 退出时,并不会清除所有分配的内存。本文将探讨这个问题,并给出相应的解释。
疯狂的KK
2023/08/05
1.2K0
当Python退出时,为什么不清除所有分配的内存?
MyBatis在insert插入对象时,返回自增主键
useGeneratedKeys="true"(默认是false) keyProperty="id" 3: keyProperty 这个设置的是 你传入对象的属性名,不是你数据表的字段
星辰sea
2022/10/29
2.2K1
MyBatis在insert插入对象时,返回自增主键
Java8中时间API
java.time.Instant表示时间线上的一点,而不需要任何上下文信息,例如,时区。概念上讲,它只是简单的表示自1970年1月1日0时0分0秒(UTC)开始的秒数。
鱼找水需要时间
2023/04/28
8950
当黑客在用 Ping时,Ping 在偷摸做啥事儿?
打开 Wireshark,选取指定的网卡进行抓包,进行 ping 操作,在 A 电脑上 ping B 电脑的 IP。
入门笔记
2022/11/14
3360
当黑客在用 Ping时,Ping 在偷摸做啥事儿?
在PHP中 为什么in_array(0, ['a', 'b', 'c'])返回true
直观上看,0没有在数组['a', 'b', 'c']中,也不会等于abc这个字符串。
用户9076598
2022/03/02
2.8K0
python计算N天之后的日期
python计算N天之后的日期,可以自己写成一个函数,想得到几天后的日期都行 #! /usr/bin/env python coding=utf-8 import time import datetime d1 = datetime.datetime.now() d3 = d1 + datetime.timedelta(days =10) print str(d3) print d3.ctime() </pre>
用户7999227
2021/11/01
9930
python计算N天之后的日期
python计算N天之后的日期,可以自己写成一个函数,想得到几天后的日期都行 #! /usr/bin/env python coding=utf-8 import time import datetime d1 = datetime.datetime.now() d3 = d1 + datetime.timedelta(days =10) print str(d3) print d3.ctime() </pre>
大师级码师
2021/11/03
9630
Power Pivot智能日期函数——之后时间
(四) 之后时间 1. NextDay/NextMonth/NextQuarter/NextYear A) 语法 NextDay (<Dates> ) NEXTMonth (<Dates> ) NEXTQuarter (<Dates> ) NEXTYear (<Dates>, [ YearEndDate]) 位置 参数 描述 第1参数 Dates 包含时间的列 可选第2参数 YearEndDate 指定年结束时间 B) 返回 表——单个时间值的列 C) 注意事项 只作用于上下文之间 D) 作用 返回当前上
逍遥之
2020/03/24
6260
Power Pivot智能日期函数——之后时间
MySQL - 当LIMIT 进行分页时,为什么出现了重复数据
说在前面 数据库分页是后台经常要使用的技术手段,有时候进行数据库查询会根据业务需要对某一字段排序,那么当待排序字段值相同时,我们得到的查询结果会是什么呢?
双面人
2019/08/25
4.5K0
当AI泡沫破裂时……
很显然我们目前处于一个不稳定的状态。这到底是一场泡沫还是一次革命?答案是当然包含一点革命——深度神经架构所创造的实实在在的成功已经颠覆了视觉和语音识别领域,更通用的机器学习也已经有了大量真实世界用例。
刀刀老高
2018/07/24
3600
当AI泡沫破裂时……
很显然我们目前处于一个不稳定的状态。这到底是一场泡沫还是一次革命?答案是当然包含一点革命——深度神经架构所创造的实实在在的成功已经颠覆了视觉和语音识别领域,更通用的机器学习也已经有了大量真实世界用例。
机器之心
2018/07/26
3760
PostgreSQL - 日期函数汇总
在PostgreSQL中,两个时间戳相减会得到一个interval类型的结果,如下:
雨临Lewis
2022/01/11
2.7K0
点击加载更多

相似问题

日期()返回1970-01-01

47

当列表包含负值时返回零

34

php日期返回1970-01-01 08:00:00

24

为什么返回负值

21

为什么当存在正差异时memcmp返回一个负值?

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文