中间人Haml与Github风格的围栏代码块

时间:2013-02-09 22:46:49

标签: ruby sinatra markdown pygments middleman

我开始使用Middleman用于静态网页&博客目的。我正在使用基于ZURB Fondation的模板Middleman-Foundation。它使用Haml,我确实倾向于偶尔使用Haml和Markdown文件。

我正在使用redcarpet进行markdown,还使用Github风格的围栏代码块进行源突出显示。但我无法弄清楚如何在Haml中为Markdown设置它。

我已检查middleman-syntax哪个适用于.html.md,但不适用于.html.haml。我试图从Glorify弄清楚但却失败了。我也检查了thisthis

在Haml Markdown中实现工作隔离代码块以生成突出显示的源代码的基本步骤是什么。

从开始为此提供一系列步骤,从gem install middleman和克隆/雇用Middleman-Foundation,这将是非常棒的,但欢迎任何简短的实际答案。

修改

我能够使用以下内容在Haml中实现pygmentized代码块(遗憾的是,似乎无法使用带有屏蔽代码块的markdown ...):

  %li#simple3Tab This is simple tab 3's content. It's, you know...okay.
  %li#simple4Tab
    -code("ruby") do
      :plain
        def my_cool_method(message)
          puts message
        end
%h3 Buttons

但这是一个持久的问题,这就是我所得到的:

Can't place a heading newline

可以看出第一行没有正确缩进,这是因为前面的代码片段没有产生标题换行符:

  <li id='simple3Tab'>This is simple tab 3's content. It's, you know...okay.</li>
  <li id='simple4Tab'>
    <div class="highlight"><pre><span class="k">def</span> <span class="nf">my_cool_method</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
      <span class="nb">puts</span> <span class="n">message</span>
    <span class="k">end</span>
    </pre></div>
  </li>
</ul>
<h3>Buttons</h3>

我无法理解如何在开始<span>之后的第一个<pre>之前打破这一行,以便代码像其他行一样正确缩进。 / p>

所需:

  <li id='simple3Tab'>This is simple tab 3's content. It's, you know...okay.</li>
  <li id='simple4Tab'>
    <div class="highlight"><pre>
    <span class="k">def</span> <span class="nf">my_cool_method</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
      <span class="nb">puts</span> <span class="n">message</span>
    <span class="k">end</span>
    </pre></div>
  </li>
</ul>
<h3>Buttons</h3>

2 个答案:

答案 0 :(得分:1)

我能通过试用和解决这个问题来解决这个问题。错误使用@bhollis,Haml引用和this SO question指向的Glorify author提供的信息。

这是神奇的组合:

  %li#simple3Tab This is simple tab 3's content. It's, you know...okay.
  %li#simple4Tab
    =preserve do
      -code("ruby") do
        :plain
          def my_cool_method(message)
            puts "Hello" + message
          end
%h3 Buttons

结果(对于这个我启用了emacs样式表):

I GOT THE POWER

这不仅解决了关于“缺失”标题换行的问题,而且还删除了所提到的SO问题所涉及的额外缩进。

我仍然愿意采用更短更好的方法。输入代码的三行前导码有点不方便。

答案 1 :(得分:0)

查看midman-syntax的文档:https://github.com/middleman/middleman-syntax

代码突出显示自动包含在Markdown代码块中(通过Redcarpet),但在Haml中,最好使用“代码”帮助器:

- code("ruby") do
  My ruby code here