3 votes

Comment détecter le langage de code pour le markdown ?

J'ai écrit dans une zone de texte :

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

Je ne l'obtiendrai pas :

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

Au lieu de cela, j'ai obtenu :

<code>puts hello word!</code>

J'ai essayé différents attributs. Mon aide :

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

Pourquoi ? Comment puis-je détecter le langage du code ?

1voto

matt Points 33799

L'option souhaitée est fenced_code_block**_s_** , avec un s . Vous semblez également mélanger les options de rendu et d'extension. Essayez ceci :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X