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 `&lt;a&gt;`-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 `&lt;a&gt;`-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

      

+3


source to share


1 answer


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

      

+4


source







All Articles