Thin template does not display markdown stored in variable
I have data in a database that uses markdown format.
I know a thin template can display markdown like this:
markdown:
This is a paragraph!
- This is list item #1
- This is list item #2
Now I am trying to do this:
markdown:
#{string_in_markdown_format}
But that just puts all the content of the string in one tag <p>
and doesn't actually convert the markup stuff in the string itself:
Here is the content string_in_markdown_format
:
Für alle graphisch vermittelten Informationen müssen gleichwertige Text-Alternativen zur Verfügung gestellt werden. Dekorative Grafiken müssen vom Screenreader ignoriert werden können.
Die Grundregeln sind dabei:
- Informative Grafiken erfordern immer einen Alternativ-Text (alt-Attribut)
- Dekorative Grafiken erfordern ein leeres Alt-Attribut (alt=""), damit der Screenreader sie ignorieren kann
- Bei verlinkten Grafiken ist nicht der Bildinhalt zu beschreiben, sondern das Linkziel anzugeben. Diese Funktion kann aber vom Linktext übernommen werden, wenn die Grafik z.B. im gleichen `<a>`-Element eingebunden ist.
Here's the result:
<p>Für alle graphisch vermittelten Informationen müssen gleichwertige Text-Alternativen zur Verfügung gestellt werden. Dekorative Grafiken müssen vom Screenreader ignoriert werden können.
Die Grundregeln sind dabei:
- Informative Grafiken erfordern immer einen Alternativ-Text (alt-Attribut)
- Dekorative Grafiken erfordern ein leeres Alt-Attribut (alt=""), damit der Screenreader sie ignorieren kann
- Bei verlinkten Grafiken ist nicht der Bildinhalt zu beschreiben, sondern das Linkziel anzugeben. Diese Funktion kann aber vom Linktext übernommen werden, wenn die Grafik z.B. im gleichen `<a>`-Element eingebunden ist.</p>
Screenshot:
Update
I am currently using the following ugly workaround:
- markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML)
= markdown.render(string_in_markdown_format).html_safe
source to share
Now I am trying to do this:
markdown: #{string_in_markdown_format}
This actually works as intended: the content of the filter markdown:
is passed without further processing to the Markdown parser. Markdown itself does not specify any string interpolation.
Now, your "ugly workaround" is almost what I recommend:
# first define a helper (assumig Rails here):
module MarkdownHelper
def markdown(text)
rc = Redcarpet::Markdown.new(Redcarpet::Render::HTML)
rc.render(text).html_safe
end
end
Then, in your opinion, just call this helper:
= markdown string_in_markdown_format
source to share