2016-12-26 156 views
3

我已經寫在一個文本:如何檢測降價的代碼語言?

```ruby 
puts 'hello word!' 
``` 

我不會得到:

<pre lang='ruby'><code>puts hello word!</code></pre> 

相反,我得到了:

<code>puts hello word!</code> 

我嘗試了不同的屬性。我的幫手:

def markdown(text) 
    renderer = Redcarpet::Render::HTML.new(
              hard_wrap:   true, 
              fenced_code_block: true, 
              no_intra_emphasis: true, 
              filter_html:  true 
              ) 
    markdown = 
     Redcarpet::Markdown.new(
           renderer, 
           fenced_code_block: true, 
           no_intra_emphasis: true, 
           fenced_code:  true, 
           gh_blockcode:  true, 
           autolink:   true, 
           hard_wrap:   true, 
           filter_html:  true 
          ) 

     markdown.render(text).html_safe 
    end 

爲什麼?如何檢測代碼語言?

回答

1

您需要的選項是fenced_code_blocks,其中s。您似乎也在混合渲染器和擴展選項。試試這個:

renderer = Redcarpet::Render::HTML.new(hard_wrap: true, 
             filter_html: true) 

markdown = Redcarpet::Markdown.new(renderer, 
            fenced_code_blocks: true, 
            no_intra_emphasis: true, 
            autolink:   true) 

markdown.render(text).html_safe