# coding: utf-8
#
# shjs.rb
#
# SHJS - Syntax Highlighting in JavaScript という HTMLを出力します。
# タグの対応を壊さないために、shjsメソッドを呼び出す {{...}} の前後には空行を
# 置いた方がよいでしょう。(それでも空の 内のソースコードを色分けします。
#
# ! 必要なこと
# 1. SHJSのインストール。
# 2. shjs.rbを有効化し設定画面で、インストールしたSHJSのパスと URLを入力する。
# 3. これで shjs(lang, code)というプラグインメソッドが利用可能です。
# ! Wiki記法でのおすすめの記述例
# {{shjs 'ruby', <
code
#{h code}\n
]; end def shjs_footer return (@shjs_required_langs && !@shjs_required_langs.empty?) ? <<"HTML" : ''; #{@shjs_required_langs.sort.map{|lang| %Q[] }.join("\n")} HTML end def shjs_style_url(css=@options['shjs_style']) url = ''; url << (@options['shjs_url'] || 'shjs'); url << (css ? "/css/#{u css}.css" : "/sh_style.css"); return url; end def shjs_js_url(lang=nil) url = ''; url << (@options['shjs_url'] || 'shjs'); url << (lang ? "/lang/sh_#{u lang}.min.js" : '/sh_main.min.js'); return url; end add_header_proc{ shjs_init; ''; } add_footer_proc{ shjs_footer; } if(@mode.index('conf')) def shjs_csslist unless(@shjs_csslist) @shjs_csslist = []; Dir.chdir("#{@options['shjs_dir'] || 'shjs'}/css"){ Dir.glob('*.css').sort.each{|css| @shjs_csslist.push(css.chomp('.css')); } } end return @shjs_csslist; rescue Exception @shjs_csslist_errmsg = $!.to_s; return []; end def shjs_saveconf @conf['shjs_style'] = @cgi.params['shjs_style'][0].to_s; @conf['shjs_url'] = @cgi.params['shjs_url'][0].to_s.chomp('/'); @conf['shjs_dir'] = @cgi.params['shjs_dir'][0].to_s.chomp('/'); %w(shjs_style shjs_url shjs_dir).each{|key| @conf.delete(key) if(@conf[key].empty?); } end add_conf_proc( 'shjs', 'SHJS シンタックスハイライト', 'theme' ){ shjs_saveconf if(@mode == 'saveconf'); shjs_init; shjs('ruby'); <<-"CONFFORM".sub('RUBYSCRIPT', h(<<-'RUBYSCRIPT'.gsub(/^\t+/, '')))
http://shjs.sourceforge.net
サンプル Rubyスクリプト
RUBYSCRIPT
デフォルトは
すこし上にスタイルシートのリストが表示されていないときは shjs_dirを先に設定してください。
#{@shjs_csslist_errmsg}
sh_main.min.jsファイルと sh_style.cssファイル、cssフォルダと langフォルダが入ったフォルダです。
デフォルトは
デフォルトは