Ruby構文の強調表示

IT対象者に焦点を当てたプロジェクトでは、ソースファイルの構文を強調するというタスクがときどき発生します。 最近、この問題がRubyでどのように解決されるかを見たかった。



Rubyには、次の言語のサーバー側の構文を強調表示できるCodeRayソリューションがあります。



強調表示プロセスはサーバー側で行われるため、クライアントをロードしません(Ruby On RailsなどのWebテクノロジーを使用している場合)。また、強調表示されたコードでhtmlファイルを作成するための個別のユーティリティ(コンソールなど)を開発することもできます。



CodeRayを使用した小さな例を検討し、特定のRubyファイルのハイライトを作成する小さなコンソールアプリケーションを作成します。



開始するには、簡単なコマンドでCodeRayをインストールしてください

gem install coderay







その後、プログラム自体を作成します(それを発明したのは自分ではないので、いわば元のそのままの形で保存します)



#!/usr/bin/env ruby

# courtesy: Helder

# obvio171.wordpress.com/2007/06/03/colorful-ruby-code-for-your-blog

# modified to output to stdout so can be used as a filter

# 2008-09-03 23:22

require 'rubygems'

require 'coderay'



if ARGV.length != 1

puts "Wrong number of arguments. Use: codecolor.rb <source_file>"

exit

end



rb_file = File.expand_path(ARGV[0])



print CodeRay.encode(

File.read(rb_file),

:ruby,

:html,

:line_numbers => :inline,

:hint => :info,

:css => :style,

:wrap => :div

)









この単純なプログラムを順番に分析します。まず、関心のあるクラスにアクセスするためにcoderayモジュールをプラグインします。 その後、コマンドライン引数の数を確認し、最初の引数からファイル名を抽出します。 次は、プログラムの最も重要な部分です。CodeRay.encode関数を使用し、次の引数を渡します。





そして、作成したプログラムに自分自身を強調するように依頼します。 これを行うには、次のコマンドを実行します



ruby codecolor.rb > test.html







その後、codecolor.rbプログラムの強調表示されたバージョンを含むtest.htmlファイル(任意のブラウザーで開くことができます)が作成されます。



実際、Rubyコード強調表示ジェネレーターを使用する際に知っておく必要があるのはこれだけです。 CodeRayのより詳細な研究については、 公式ウェブサイトをご覧になることをお勧めします




All Articles