7

Kullanıcıların bir metin yazımında Markdown metnini yazmasını istiyorum ve yayınladıklarında ilgili html'yi görüntüledim. Ben Raylar sadece ERB dosyasında o sahada diyebiliriz ki bir markdown yöntemi veya benzer şekilde adlandırılan yöntem için kullanılan okumak:Raylarla İşaretlemeyi Kullanma

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

Görünüşe göre, Raylar o işlevselliği çıkardı. Bu işlevselliği tekrar elde etmenin en iyi yolu nedir? Bu ihtiyacımı çözüyor gibi görünüyor.

cevap

12

Markdown-html dönüşümü yapmak için Redcarpet kullanırım. Ayrıca, dönüşümü görünümden başka bir nesneye taşıyacağım. callbacks (before_save) kullanabilir veya Observers'u kullanabilirsiniz. the docs itibaren

:

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>" 
Muhtemelen başka bir sütuna depolamak istediğiniz

, demek @post.content_parsed böylece kullanıcının daha sonra yapmak mesaja düzenlemeleri, artı bu şekilde yapmak gerekmez ki her istekte dönüşüm.

+1

Rails uygulamasında Redcarpet :: Markdown nesnesini başlatmak için en iyi yer neresidir? –

+0

Cevabı genişlettim. –

+1

Redcarpet github sayfası sadece “Redcarpet :: Markdown” un bir örneğini oluşturmayı ve ardından “render” kelimesini ihtiyaç duyduğunuz şekilde çağırmanızı önerir. Mantıklı, ama Rails uygulamasında sadece bir kez Redcarpet :: Markdown'u nasıl bir araya getirebilirim? –

İlgili konular