Расширьте драгоценность RedCloth - PullRequest
1 голос
/ 13 марта 2010

Я хочу поставить новый текстовый тег, например h1. , но его имя будет map.

Итак, я нашел следующую статью , но она не работает на RedCloth 4.2.2

Спасибо

1 Ответ

3 голосов
/ 14 марта 2010

Пример использования пользовательских тегов в спецификациях RedCloth есть. По сути, вы помещаете новый метод, который вам нужен, в модуль и передаете его в метод extend вашего объекта RedCloth.

Вот краткий пример пользовательского тега, который помещает текст, с которым он вызывается, в span:

module MappingExtension
  def map(opts)
    html  = %Q{<span class="map">#{opts[:text]}</span>\n}
  end
end

require 'redcloth'

text = "The next line will contain a map:\n\nmap. map"
r = RedCloth.new text
r.extend MappingExtension

r.to_html

# "<p>The next line will contain a map:</p>\n<span class="map">map</span>\n"

Если вы хотите использовать это в проекте Rails, вы можете переопределить текстовый помощник ActionView textilize , чтобы он расширял RedCloth с помощью пользовательского тега.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...