Pygments codeblock formatter为markdown代码块添加了奇怪的空格

时间:2013-03-26 00:47:32

标签: ruby-on-rails ruby-on-rails-3 markdown pygments redcarpet

如下图所示:

enter image description here

要明确指出我在说什么,我指的是每个之前的空格。 + ] | = 。以及其他地方可能出现的其他标点符号。

我正在使用pygments.rb和Redcarpet gem来格式化我正在添加到markdown的代码块。每个代码块都包含在一个.codebox div中,该代码用这个SASS设置(实际文件中的Tab键):

.highlight
  pre
    white-space: pre
    overflow: scroll
    word-wrap: normal

.codebox
    margin: auto
    margin-top: 15px
    margin-bottom: -5px
    padding-right: 8px
    padding-left: 8px
    padding-top: 5px
    padding-bottom: 5px
    padding-top: -20px
    background-color: $codebox
    p
        font-family: 'Rockwell Bold'
        &::selection
            background: $pigPink
            color: #fff
        &::moz-selection
            background: $pigPink
            color: #fff
    pre
        font-family: 'Rockwell Bold'
        font-size: 90%

然后,当然,降价`反击。如果它是相关的,这是我的pygments配置设置:

application_helper.rb

  class HTMLwithPygments < Redcarpet::Render::HTML
    def block_code(code, language)
      Pygments.highlight(code, lexer: language)
    end
  end

  def markdown(text)
    renderer = HTMLwithPygments.new(hard_wrap: true)
    options = {
      nowrap: true,
      autolink: true,
      no_intra_emphasis: true,
      fenced_code_blocks: true,
      lax_html_blocks: true,
      strikethrough: true,
      superscript: true
    }
    Redcarpet::Markdown.new(renderer, options).render(text).html_safe
  end

1 个答案:

答案 0 :(得分:0)

正如我在评论中所说,您可能希望使用Web检查器检查生成的代码块的css。 Pygments的工作原理是将不同的css规则应用于生成的代码块的不同标记。你可能有一些css与这个输出发生冲突并产生你正在看到的效果,或者你的代码块的默认样式表导致了这种情况。这应该是一个简单的解决方案。