防止 HAML 在生成的 HTML 文件中呈现换行符

Prevent HAML from rendering newline in produced HTML file

我有这个 HAML 代码:

%p
    This page is for our staff. If you came here by mistake,
    %a(href="index.html") you can go back
    \.

孤立的 \. 在那里是因为我不希望句号 (.) 成为 link.

的一部分

这几乎可以工作,但是 back. 之间有一个 space;自然地,HAML 在 HTML 渲染文件的 HAML 源代码中插入换行符。

也就是说,这是HTML产生的:

<p>
    This page is for our staff. If you came here by mistake,
    <a href="index.html">you can go back</a>
    . <!-- I want the period to be on the previous line -->
</p>

因为 <p> 标签内的单词被 space 分隔,所以 back. 之间有一个 space。我怎样才能删除这个 space?

我找到了一种方法来做到这一点,但它很难看(或者我不会问这个问题):

%p
    This page is for our staff. If you came here by mistake,
    %a(href="index.html") you can go back
    %span>\.

有更好的方法吗?

HAML 接受纯文本 html,因此您可以编写:

%p
    This page is for our staff. If you came here by mistake,
    <a href="index.html">you can go back</a>.

这将为您提供所需的输出。

您也可以为此使用 succeed 助手,尽管它读起来有点滑稽:

= succeed '.' do 
  %a(href="index.html") you can go back

将产生:

<a href="index.html">you can go back</a>.\n

完整示例如下:

%p
  This page is for our staff. If you came here by mistake,
  = succeed "." do 
    %a(href="index.html") you can go back

渲染输出:

<p>
This page is for our staff. If you came here by mistake,
<a href='index.html'>you can go back</a>.
</p>