将课程附加到:Haml的降价段落?

时间:2012-11-27 05:39:26

标签: ruby-on-rails haml markdown

我不想要以下提供的额外包装div:

.note
  :markdown
    Please, [don't use Haml for markup][x], for your sake!
    [x]: http://chriseppstein.github.com/blog/2010/02/08/haml-sucks-for-content/

但我不想写这个:

%p.note
  Please,
  = link_to("don't use Haml for markup", "http://chriseppstein.github.com/blog/2010/02/08/haml-sucks-for-content/") + ", for your sake!"

有没有办法使用:markdown,还可以在生成的段落标记中附加CSS类?

请参阅:http://chriseppstein.github.com/blog/2010/02/08/haml-sucks-for-content/

2 个答案:

答案 0 :(得分:2)

简短的回答似乎是:no。这是Markdown问题,而不是HAML问题。

您可以直接在markdown块中使用HTML来实现:

:markdown
  <p class="note">
    some more HTML
  </p>

但是你不能在标签内部贴上标记,因为在那里的翻译被解释为HTML而不是Markdown。可能有扩展允许您添加这样的类,但显然本身不可能。

答案 1 :(得分:0)

我发现这样做的最好方法是使用Maruku过滤器(你可能需要haml-contrib gem),因为Maruku实现了标准Markdown的PHP Markdown Extra扩展。这使得很多东西成为可能,包括在markdown='1'的封闭块元素中指定Markdown解析,所以你可以做

:maruku
  <p class='note' markdown='1'>
    Please, [don't use Haml for markup][x], for your sake!
  </p>  
  [x]: http://chriseppstein.github.com/blog/2010/02/08/haml-sucks-for-content/

成为

<p class='note'>Please, <a href='http://chriseppstein.github.com/blog/2010/02/08/haml-sucks-for-content/'>don&#8217;t use Haml for markup</a>, for your sake!</p>

(是的,在这种情况下,链接引用需要在</p>之后。)

请注意,在这种情况下,Maruku不会插入额外的包装元素。

使用这种语法将类放在其他元素上更容易:

:maruku
  # Cool stuff {#cool_stuff}

  You can put classes and IDs on [links](links.html){.links} too.

变为

<h1 id='cool_stuff'>Cool stuff</h1>

<p>You can put classes and IDs on <a class='links' href='links.html'>links</a> too.</p>