Если вы используете шаблон просмотра haml as rails, вы можете записать часть своей страницы с помощью уценки с помощью фильтра «: markdown».Возможно встроить уценку внутри erb?
Is можно сделать одинаково используя erb?
Если вы используете шаблон просмотра haml as rails, вы можете записать часть своей страницы с помощью уценки с помощью фильтра «: markdown».Возможно встроить уценку внутри erb?
Is можно сделать одинаково используя erb?
У ERB нет фильтров, подобных этому встроенному. Вам нужно будет напрямую использовать драгоценный камень, который обрабатывает его, например, RDiscount или почтенный BlueCloth.
Это довольно простой способ написать метод, который делает это, если вы используете что-то вроде Rails, которое содержит #capture
, #concat
и #markdown
помощников. Вот пример, используя Maruku:
def markdown_filter(&block)
concat(markdown(capture(&block)))
end
Затем вы можете использовать это как так:
<% markdown_filter do %>
# Title
This is a *paragraph*.
This is **another paragraph**.
<% end %>
Есть несколько вещей, чтобы отметить здесь. Во-первых, важно, чтобы весь текст в блоке не имел отступов; вы можете обойти это, выяснив общий отступ линий и удалив его, но я не сделал этого в примере helper выше. Во-вторых, он использует #markdown
помощник Rails', которые могут быть легко реализованы в других рамках, как это (замена Maruku
с процессором Markdown выбора):
def markdown(text)
Maruku.new(text).to_html
end
Rails 3 удалила #markdown
помощника, так что просто добавьте выше кода в соответствующем помощнике, заменив процессор Markdown по вашему выбору.
Спасибо за указатель. –
Чтобы быть справедливым, Haml не имеет встроенной поддержки Markdown: он использует любые драгоценности Markdown, доступные в системе. Кроме того, я бы рекомендовал библиотеку pure-Ruby Maruku над RDiscount на основе C и BlueCloth, если только скорость не является серьезной проблемой (чего не должно быть с хорошим кэшированием). –