【问题标题】:Prevent HAML from rendering newline in produced HTML file防止 HAML 在生成的 HTML 文件中呈现换行符
【发布时间】:2018-02-09 11:12:33
【问题描述】:

我有这个 HAML 代码:

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

孤立的\. 存在是因为我不希望句号 (.) 成为链接的一部分。

这几乎可以工作,但back. 之间有一个空格;自然地,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>

因为&lt;p&gt; 标签内的单词是用空格隔开的,所以back. 之间有一个空格。如何删除这个空间?

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

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

有没有更好的方法来做到这一点?

【问题讨论】:

    标签: html ruby haml


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      您也可以为此使用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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-10
        • 1970-01-01
        • 1970-01-01
        • 2014-05-07
        • 2021-10-23
        • 2012-09-23
        • 1970-01-01
        相关资源
        最近更新 更多