使用coderay和railscasts样式进行代码高亮

CodeRay是一个语法高亮的Ruby库,效率很不错。
CodeRay目前支持的语法包括:
  1. Ruby
  2. C
  3. Delphi
  4. HTML
  5. RHTML (Rails)
  6. Nitro-XHTML
  7. YAML
  8. SQL
  9. Python
  10. Perl
  11. PHP
  12. Java
railscasts的播主Ryan Bates自定义了一些css,让ruby、rhtml等代码看起来非常cool!
1,安装coderay gem代码
  1. gem install coderay  
2,在application.rb中
ruby代码
  1. require 'coderay'  
3,在application_helper.rb里添加一个helper方法
ruby代码
  1. def parse_coderay(text)  
  2.   text.scan(/(\[code\:([a-z].+?)\](.+?)\[\/code\])/m).each do |match|  
  3.     text.gsub!(match[0],CodeRay.scan(match[2].strip, match[1].to_sym).div( :line_numbers => :table,:css => :class))  
  4.   end  
  5.   return text  
  6. end  
这样,我们的文本输入框就支持这样的code标签了:
ruby代码
  1. \[code:ruby\]  
  2. def aaa  
  3.    puts "aaaa"  
  4. end  
  5. \[\/code\]  
code:ruby这样的标签中ruby可以用上面提到的支持的语言来替代
4,借用railscasts的coderay样式
http://railscasts.com/stylesheets/coderay.css
5,在html.erb页面中
ruby代码
  1. <div class="CodeRay"><%= parse_coderay @post.content %></div>  
posted @ 2009-07-13 12:24  麦飞  阅读(500)  评论(0编辑  收藏  举报