Пример использования пользовательских тегов в спецификациях 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 с помощью пользовательского тега.