7

Voglio che gli utenti scrivano il testo Markdown in una textarea e quando lo pubblicano, visualizzo l'html corrispondente. Ho letto che Rails usato per avere un metodo markdown né parimenti chiamato il metodo, che si potrebbe chiamare su quel campo nel file ERB:Utilizzo di Markdown con Rails

<%= markdown(@post.content) %> 

A quanto pare, Rails ha preso tale funzionalità out. Qual è il modo migliore per ottenere di nuovo quella funzionalità? Questo sembra risolvere il mio bisogno.

risposta

12

Vorrei utilizzare Redcarpet per eseguire la conversione markdown-html. Inoltre, sposterei la conversione dalla vista in qualche altro oggetto. È possibile utilizzare callbacks (before_save) o utilizzare Observers.

Da the docs:

markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, 
    :autolink => true, :space_after_headers => true) 

markdown.render("This is *bongos*, indeed.") 
#=> "<p>This is <em>bongos</em>, indeed</p>" 

Probabilmente si desidera memorizzare il risultato in un'altra colonna, dicono @post.content_parsed in modo che l'utente può effettuare successivamente edita il post, oltre a questo modo non c'è bisogno di fare il conversione su ogni richiesta.

+1

Dove è il posto migliore per istanziare l'oggetto Redcarpet :: Markdown in un'app Rails? –

+0

Ho ampliato la risposta. –

+1

La pagina github di Redcarpet suggerisce di istanziare 'Redcarpet :: Markdown' solo una volta e poi chiamare' render' quando ne hai bisogno. Ha senso, ma dove posso istanziare 'Redcarpet :: Markdown' solo una volta nella mia app Rails? –

Problemi correlati