【问题标题】:Middleman & Haml with Github-style fenced code blocksMiddleman & Haml 与 Github 风格的围栏代码块
【发布时间】:2013-02-09 22:46:49
【问题描述】:

我开始将Middleman 用于静态网页和博客。我将它与基于 ZURB 基金会的模板一起使用,Middleman-Foundation。它使用Haml,我确实倾向于使用Haml,偶尔使用Markdown文件。

我使用 redcarpet 进行降价,同时使用 Github 风格的围栏代码块来突出显示源代码。但我不知道如何在 Haml 中为 Markdown 设置它。

我检查了middleman-syntax,它适用于.html.md,但不适用于.html.haml。我试图从Glorify 中找出答案,但失败了。我也检查了this 和this。

在 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

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

可以看出第一行没有正确缩进,这是因为前面的代码 sn-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>

我不知道如何在第一个 &lt;span&gt; 之前,在开头的 &lt;pre&gt; 之后换行,以便代码像其他行一样正确缩进。

期望:

  <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>

【问题讨论】:

    标签: ruby sinatra markdown pygments middleman


    【解决方案1】:

    我能够使用@bhollis、Haml 参考和Glorify author 指出的this SO question 提供的信息位通过反复试验来解决这个问题。

    这是神奇的组合:

      %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 样式表):

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

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

    【讨论】:

      【解决方案2】:

      查看中间人语法的文档:https://github.com/middleman/middleman-syntax

      代码高亮自动包含在 Markdown 代码块中(通过 Redcarpet),但在 Haml 中,最好使用“代码”助手:

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

      【讨论】:

      • 您能否提供完整的 sn-p 以及该语法的 haml?我正在努力将一些代码放在%li#simple4Tab 下方,我在错误之后遇到错误(Haml::SyntaxError at,非法嵌套:纯文本中的嵌套是非法的)。
      • 我收到了错误消息。我将缩进代码用于突出显示,但似乎我无法缩进提供 do 的文本,试图弄清楚如何做到这一点......
      猜你喜欢
      • 2019-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      • 2014-06-26
      • 2014-09-26
      • 1970-01-01
      相关资源
      最近更新 更多