Комментарии 4
Зависит от задачи конечно. Redcarpet тоже расширяем. Простой пример: хочу чтобы все генерируемые ссылки открывались в новом окне браузера. То бишь надо ко всем ссылкам добавить target="_blank". Реализуем свой рендерер, наследуя от существующего и заменяем один метод, формирующий ссылки, на свой:
И подсовываем в парсер этот рендерер вместо стандартного.
class MyRenderer < Redcarpet::Render::HTML
def link(link, title, content)
"<a href='#{link}' title='#{title}' target='_blank'>#{content}</a>"
end
end
И подсовываем в парсер этот рендерер вместо стандартного.
0
В том то и дело, что Redcarpet замечательно позволяет переопределять существующие элементы, но парсер там сишный, если не изменяет память, и патчить для добавления новых markdown элементов прийдется его.
0
Да парсер написан на Си. Как вариант, для добавления новых элементов можно переопределить в своем рендерере методы preprocess и/или postprocess, куда подается весь текст, и обработать дополнительно регулярками или еще как. Не совсем красиво, но должно работать.
Спасибо за ссылку на kramdown. Гляну на досуге.
Спасибо за ссылку на kramdown. Гляну на досуге.
0
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.
Markdown разметка в RubyOnRails-приложении