HAML使用文本中的链接而不换行

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (49)

我目前正在开发一个小小的Sinatra Ruby应用程序。对于表示层,我使用HAML,它工作得很好。

不过,我有一个常见问题页面,其中有更长的文本段落,这不是问题。但在一些段落中,我想包含链接。使用纯HTML,这很容易实现,并且仍然可读。

<p>
I'm talking about <a href="http://ruby-lang.org">Ruby</a> in this text.
</p>

随着HAML我坚持这个新的段落,然后看起来像这样:

%p
 I'm talking about 
 %a {:href => 'http://ruby-lang.org'}>Ruby 
 in this text.

我认为这真的打破了工作流程。

HAML有没有办法在不使用换行符的情况下插入链接?

提问于
用户回答回答于

我假设你“正在问在源Haml中添加没有换行符的链接。在这里做你想做的事实在不太可能。从haml FAQ:

表达文档的结构并表达内联格式是两个非常不同的问题。Haml主要是为结构设计的,所以处理格式的最好方法是将其留给为其设计的其他语言。

Haml使用空格和缩进来确定要做什么,没有任何换行符也没有任何缩进,因此haml无法确定要添加到页面的元素。

如果你只想要静态文本块,你可以像常见问题一样使用降价过滤器:

:markdown
  I'm talking about [Ruby](http://ruby-lang.org) in this text.

正如其他答案指出的那样,如果您想从生成的HTML中删除换行符,那么您可以使用空格删除操作符来查看,但请注意它们将删除所有空格,例如

I'm talking about 
%a{:href => 'http://ruby-lang.org'}>Ruby 
in this text.

其使用>以除去外空白会产生:

I'm talking about<a href='http://ruby-lang.org'>Ruby</a>in this text.

这会显示为

我在本文中谈论Ruby。

即“Ruby”周围没有空格,这可能不是你想要的。

用户回答回答于

这比你想象的要容易。请阅读此参考资料:http//haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html#whitespace_removal__and_

所以用法很简单,只需在你的%p标签后加上少许符号“<”,例如:

%p<
 I'm talking about 
 %a {:href => 'http://ruby-lang.org'}>Ruby 
 in this text.

它会生成你想要做的。

扫码关注云+社区

领取腾讯云代金券