CodeRay目前支持的语法包括:
- Ruby
- C
- Delphi
- HTML
- RHTML (Rails)
- Nitro-XHTML
- YAML
- SQL
- Python
- Perl
- PHP
- Java
1,安装coderay gem代码
- gem install coderay
gem install coderay
2,在application.rb中
- require 'coderay'
require 'coderay'
3,在application_helper.rb里添加一个helper方法
- def parse_coderay(text)
- text.scan(/(\[code\:([a-z].+?)\](.+?)\[\/code\])/m).each do |match|
- text.gsub!(match[0],CodeRay.scan(match[2].strip, match[1].to_sym).div( :line_numbers => :table,:css => :class))
- end
- return text
- end
def parse_coderay(text)
text.scan(/(\[code\:([a-z].+?)\](.+?)\[\/code\])/m).each do |match|
text.gsub!(match[0],CodeRay.scan(match[2].strip, match[1].to_sym).div( :line_numbers => :table,:css => :class))
end
return text
end
这样,我们的文本输入框就支持这样的code标签了:
- \[code:ruby\]
- def aaa
- puts "aaaa"
- end
- \[\/code\]
\[code:ruby\]
def aaa
puts "aaaa"
end
\[\/code\]
code:ruby这样的标签中ruby可以用上面提到的支持的语言来替代
4,借用railscasts的coderay样式
http://railscasts.com/stylesheets/coderay.css
5,在html.erb页面中
- <div class="CodeRay"><%= parse_coderay @post.content %></div>
<div class="CodeRay"><%= parse_coderay @post.content %></div>