【问题标题】:How to remove unwanted indent from HAML's pre tag如何从 HAML 的 pre 标记中删除不需要的缩进
【发布时间】:2010-12-31 22:16:12
【问题描述】:

<pre> 有问题,这是我的代码,截图附在下面。如何去除缩进?

%pre.code
    :escaped
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html>
            <head></head>
            <body>
                <form>
                    <input type="text" name="empID" />
                    <input type="submit"/>      
                </form> 
            </body>
        </html>

【问题讨论】:

    标签: haml


    【解决方案1】:

    您需要使用#preserve 帮助器将pre 中的换行符转换为换行符实体,如下所示:

    %pre.code
        = preserve do
            :escaped
                <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                <html>
                    <head></head>
                    <body>
                        <form>
                            <input type="text" name="empID" />
                            <input type="submit"/>        
                        </form>   
                    </body>
                </html>
    

    将来,您将能够嵌套过滤器,因此您可以使用:preserve:escaped

    【讨论】:

    • :preserve 不会转义您的内容,:escaped 不会保留它。这就是您需要嵌套过滤器的原因。
    • 我遇到了同样的问题,但我必须使用“= preserve do”,而不是“- preserve do”,可能是版本问题。
    • = preserve%div{ style:"white-space: pre-wrap" }&lt;= text 结合使用,很好。
    【解决方案2】:

    当从 div 或其他标签内的变量中表示“pre”之类的文本时,请使用

    .text.plain= preserve(@mail.body.to_s)
    

    连同 CSS“空白:预包装;”。使用单行版本,因为两行仍然会缩进第一行。

    / BAD: Will leave the first line incorrectly indented!
    .text.plain
      = preserve(@mail.body.to_s)
    

    【讨论】:

      猜你喜欢
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 2013-12-03
      • 2015-10-23
      • 1970-01-01
      • 2021-11-16
      • 2013-10-24
      相关资源
      最近更新 更多