2012-06-20
_ tDiary を GFM スタイルで利用したときに整形済みテキストのプレビューでエラーになった
サーバー移転後から GFM スタイルで書くように変えてみたけど,複数行の整形済みテキストを利用してプレビュー表示したら以下のようなエラーが表示された.
LoadError: Could not open library 'lib.so': lib.so: cannot open shared object file: No such file or directory
/opt/tdiary/tdiary-core/vendor/bundle/ruby/1.9.1/gems/ffi-1.0.11/lib/ffi/library.rb:121:in `block in ffi_lib'
/opt/tdiary/tdiary-core/vendor/bundle/ruby/1.9.1/gems/ffi-1.0.11/lib/ffi/library.rb
in `map'
/opt/tdiary/tdiary-core/vendor/bundle/ruby/1.9.1/gems/ffi-1.0.11/lib/ffi/library.rb:88:in `ffi_lib'
/opt/tdiary/tdiary-core/vendor/bundle/ruby/1.9.1/gems/rubypython-0.5.1/lib/rubypython/python.rb
in `<module:Python>'
/opt/tdiary/tdiary-core/vendor/bundle/ruby/1.9.1/gems/rubypython-0.5.1/lib/rubypython/python.rb:21:in `<top (required)>'
/opt/tdiary/tdiary-core/vendor/bundle/ruby/1.9.1/gems/rubypython-0.5.1/lib/rubypython.rb
in `load'
/opt/tdiary/tdiary-core/vendor/bundle/ruby/1.9.1/gems/rubypython-0.5.1/lib/rubypython.rb:261:in `reload_library'
/opt/tdiary/tdiary-core/vendor/bundle/ruby/1.9.1/gems/rubypython-0.5.1/lib/rubypython.rb
in `start'
/opt/tdiary/tdiary-core/vendor/bundle/ruby/1.9.1/gems/pygments.rb-0.2.3/lib/pygments/ffi.rb:8:in `start'
/opt/tdiary/tdiary-core/vendor/bundle/ruby/1.9.1/gems/pygments.rb-0.2.3/lib/pygments/ffi.rb
in `highlight'
/opt/tdiary/tdiary-core/tdiary/style/gfm_style.rb:24:in `block_code'
trace を見るに rubypython あたりでなんかおかしなよう.python は実行可能だけど,dev パッケージはインストールされていなかったので,python-dev パッケージをインストールすると上記の問題は解決できた.
解決して整形済みテキストが表示されると,highlight クラス属性を持つ div で pre が wrap されているため,highlight プラグインを有効にしていると,pre 部分の背景色が指定されてしまうという現象に遭遇した.これについては以下をスタイルシートに追加して対応した.
div.highlight {
background-color: transparent;
}