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のより詳細な研究については、 公式ウェブサイトをご覧になることをお勧めします

Source: https://habr.com/ru/post/J48614/


All Articles