【问题标题】:How do I make a simple dot "." in HAML?如何制作一个简单的点“。”在 HAML 中?
【发布时间】:2012-09-12 20:16:23
【问题描述】:

在我的 Ruby on Rails 项目中,我使用 HAML,我需要翻译这样的内容

<div>foo <a>bar</a>.<div>

进入 HAML。它应该看起来像:

.divclass
  foo
  %a bar
  .     

开始的时间段不起作用,因为它被 HAML 使用。那么如何使用句号作为内容呢?

即使围绕它不工作建立一个跨度,这个时期再次被视为特殊的东西。

我认为有一个逃生机制但我找不到它。

【问题讨论】:

  • 在 HAML 中,与大多数其他语言一样,使用反斜杠进行转义。迁移到新语言时,这应该是您尝试的第一件事。
  • 谢谢,正是我想要的。

标签: ruby-on-rails haml


【解决方案1】:

\转义

喜欢这个

\.

请参阅 HAML 参考中的 Escaping \

更新:如果您需要在句尾添加一个点(以防止不必要的空白),使用 HAML 的 succeed(如 this answer)是更好的解决方案。

【讨论】:

  • 这里的问题是,在他的例子中,a 标签和点之间会有一个空格。更喜欢@Jay 的succeed 方法
【解决方案2】:

更好的方法:

%p
  This sentence ends with a link which is *just* before a period
  = succeed "." do
    %a{:href => "#"} link
  But the period wasn't included with the link and there was no space before the period.

【讨论】:

  • 解释一下是什么让这种方法变得更好会很好。
【解决方案3】:

您还可以访问 :plain 过滤器,如下所示:

%p 
  :plain
    .

【讨论】:

    【解决方案4】:

    我将使用 Rails 的内置 link_to 助手添加另一个选项,而不是手动创建链接。然后你可以简单地做

    %p
      This sentence ends with a link which is *just* before a period
      #{ link_to "link", "#" }.
    

    不同的解决方案适用于不同的地方,但我觉得这很干净,特别是如果已经使用 link_tomail_to 等。

    【讨论】:

    • 绝对是这样。因为从通用的角度来看,我们显然需要在这里进行插值。
    猜你喜欢
    • 1970-01-01
    • 2011-03-23
    • 2017-06-27
    • 2011-01-29
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 2012-12-19
    相关资源
    最近更新 更多