Как интегрировать красную ткань с coderay
Я хочу использовать подсветку синтаксиса вместе с красной тканью.
Описание coderay гласит:
Быстрая и простая подсветка синтаксиса для выбранных языков, написанных на Ruby. Поставляется с интеграцией RedCloth и счетчиком LOC. 1
Но я не нашел документацию о том, как это сделать?
Где я должен поставить код, чтобы сделать подсветку? Я думал о том, чтобы положить его в module ApplicationHelper
Это хорошая идея?
1 ответ
ОПЦИЯ 1:
Симп как это: http://railscasts.com/episodes/207-syntax-highlighting?autoplay=true При использовании rails3 измените помощник на это:
def coderay(text)
text.gsub!(/\<code(?: lang="(.+?)")?\>(.+?)\<\/code\>/m) do
code = CodeRay.scan($2, $1).div(:css => :class)
"<notextile>#{code}</notextile>"
end
return text.html_safe
end
Если вы используете HAML, вы захотите использовать знак ~:
~ raw textilize(coderay(...))
ВАРИАНТ 2:
CodeRay имеет встроенную поддержку RedCloth.
- Добавьте необходимые файлы gem в ваш Gemfile.
gem "RedCloth", :require => 'redcloth' gem 'coderay', :require => ['coderay', 'coderay/for_redcloth']
- Визуализируйте кодовую строку, как если бы вы делали это с RedCloth (~ вместо =, потому что я использовал HAML).
~ raw textilize("Some code here @that should@ be formated.") ~ raw textilize("Some code here @[ruby]that should@ be formated.")
- Вы также можете сделать файл.
# File at /my/file/path/filename.doc h1. My title bc[ruby].. # Nekaj za napisat def self.myfun puts "asdas" end # Inside your view file ~ raw textilize(File.read("/my/file/path/filename.doc"))
Я предпочитаю второй вариант.
Вы можете найти больше информации о стилях с языком разметки Textile на http://en.wikipedia.org/wiki/Textile_%28markup_language%29