Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Possible to embed markdown within erb?

If you use haml as rails view template, you can write portion of your page using markdown by using the ":markdown" filter.

Is is possible to do the same using erb?

like image 506
Gaius Parx Avatar asked Dec 17 '25 18:12

Gaius Parx


2 Answers

It's pretty easy to write a method that does it, assuming you're using something like Rails which has #capture, #concat, and #markdown helpers. Here's an example, using Maruku:

def markdown_filter(&block)
  concat(markdown(capture(&block)))
end

Then you can use this as so:

<% markdown_filter do %>
# Title

This is a *paragraph*.

This is **another paragraph**.
<% end %>

There are a few things to note here. First, it's important that all the text in the block have no indentation; you could get around this by figuring out the common indentation of the lines and removing it, but I didn't do that in the example helper above. Second, it uses Rails' #markdown helper, which could easily be implemented in other frameworks as so (replacing Maruku with your Markdown processor of choice):

def markdown(text)
  Maruku.new(text).to_html
end

Rails 3 has removed the #markdown helper, so just add the above code in the appropriate helper, substituting the Markdown processor of your choice.

like image 75
Natalie Weizenbaum Avatar answered Dec 20 '25 09:12

Natalie Weizenbaum


ERB does not have filtering like this built-in. You'll need to directly use a gem that handles it, like RDiscount or the venerable BlueCloth.

like image 23
x1a4 Avatar answered Dec 20 '25 11:12

x1a4



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!