【问题标题】:Redcarpet gem not working properly? - Rails 4红地毯宝石无法正常工作? - 导轨 4
【发布时间】:2015-08-02 18:22:22
【问题描述】:

我已经使用 CodeRay gem 安装并设置 Redcarpet gem 用于 Markdown 以进行语法突出显示。

我的问题是

```红宝石

```

在markdown中会提供一个代码块,它已加载但样式不正确,实际上pre标签上没有样式。

这是我的 application_helper.rb

中的代码
 class CodeRayify < Redcarpet::Render::HTML
    def block_code(code, language)
      CodeRay.scan(code, language).div(:line_numbers => :table)
    end
  end

  def markdown(text)
    coderayified = CodeRayify.new(:filter_html => true, :hard_wrap => true)
    options = {
      fenced_code_blocks: true,
      no_intra_emphasis: true,
      autolink: true,
      strikethrough: true,
      lax_spacing: true,
      superscript: true
    }

    markdown_to_html = Redcarpet::Markdown.new(coderayified,options)
    markdown_to_html.render(text).html_safe
  end

那么我要做的就是这个

换句话说,在我的情况下,stackoverflows 在按 ctrl+K 时所做的样式不存在。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 rubygems


    【解决方案1】:

    &lt;pre&gt; 标记没有属性,如果你的意思是说“没有风格”的话。我刚刚重新创建了您的示例,我看到 Ruby 代码在 &lt;pre&gt; 块中正确着色:关键字有自己的样式,以及类似的一切。如果您确实有错误,请检查您的 gem 版本。我有 coderay 1.1.0 和 redcarpet 3.3.2,一切看起来都很好。

    【讨论】:

    • 我要求的是代码“占位符”具有像上面那样的灰色背景。不是文字本身。
    • 啊,但是您应该将这种样式添加到您的 .css 文件中。只需添加pre {background-color: #eee;} 即可。
    • 正如我在视频中看到的默认样式,您的行号是否默认着色?
    • jsfiddle.net/unvcj50L/embedded/result - 这是我默认的。行号、关键字的颜色、字符串文字的背景。 &lt;pre&gt; 没有样式,字体也不是等宽的。您或截屏视频的创建者都缺少一些东西——您应该添加一些 CSS 样式。
    • hmm 为什么你的行号是链接的?是默认还是你做的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    相关资源
    最近更新 更多