2015-05-03 2 views
2

У меня есть данные в базе данных, которая использует формат уценки.Тонкий шаблон не отображает уценку, хранящуюся в переменной

Я знаю, что slim template может сделать уценки так:

markdown: 
    This is a paragraph! 

    - This is list item #1 
    - This is list item #2 

Теперь я пытаюсь сделать это:

markdown: 
    #{string_in_markdown_format} 

Но это просто помещает все содержимое строки в одну <p> тег , и на самом деле не преобразует материал разметки в самой строке:

Вот содержание 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. 

Вот результат:

<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> 

Скриншот:

Update

В настоящее время я использую следующий уродливые обходной путь:

- markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML) 
= markdown.render(string_in_markdown_format).html_safe 

ответ

4

Теперь я пытаюсь сделать это:

markdown: 
    #{string_in_markdown_format} 

Это на самом деле работает как задумано: Содержание markdown: фильтра передается без дальнейшей обработки в Markdown анализатор. Сам Markdown не указывает ни одной интерполяции строк.

Теперь, ваш «некрасиво обходной путь» почти то, что я бы рекомендовал:

# 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 

Затем, на ваш взгляд, просто назвать это помощник:

= markdown string_in_markdown_format 
+1

Это немного грустно. Было бы гораздо более интуитивно понятным, если бы он работал так, как я предлагал. Спасибо за ваш ответ. –

+0

делает красную ковровую дорожку, дезинфицирует? –