basyura's blog

あしたになったらほんきだす。

textile も quickrun を使ってブラウザ確認

Textile is a lightweight markup language originally developed by Dean Allen and billed as a "humane Web text generator".

Textile_

markup language としては markdown の方が有名かつ圧倒的な人気であると感じますが、textile もなかなかです。
redmine に標準搭載されているので、僕も最初は「なにこれ使いにくい」と思いながらも仕方なく使っている感じでした。ところが慣れてくると「これもなかなかありだな」と思い始め、最近では markdown より書きやすいと感じます。記法が変わるときは空白行を入れないと認識してくれないとか最高ですよね(遠い目)。

markdown + quickrun に関しては、Hack #52: Markdown形式の文書を書く にある通りです。textile も同様に quickrun からブラウザを起動して生成された html を確認することができます。

syntax

これがいい!というのは見つけれていませんが、timcharper/textile.vim をいじったものを使っています。

RedCloth

RedCloth is a module for using the Textile markup language in Ruby.

RedCloth

パーサをインストールします。

gem install RedCloth

gem が入ると redcloth という実行ファイルもインストールされるので

redcloth -v

でバージョンを確認してみてください。

quickrun

vimrc 等に設定します。

let g:quickrun_config = {
    \ 'textile': {
    \   'command'   : 'redcloth',
    \   'exec'      : '%c  %s',
    \   'outputter' : 'browser',
    \ },
    \}

あとは :QuickRun するだけです。バッファの内容をが redcloth で html に変換され、ブラウザで表示されます。

windows では・・・

mac では上記設定で簡単にできたんですが、、、windows + gvim + ruby(cygwin) + utf8 環境だとうまくいかず・・・いろいろいじりました。

まず、bin/redcloth で utf-8 で読みこむように変更。Windows-31J の変換に失敗したよエラー対応。

- red = RedCloth.new( ARGF.read )
+ red = RedCloth.new( open(ARGV[0], 'r:utf-8').read )

quickrun の設定を変更。日本語ファイル名が化けて入ってくるので必ずテンポラリファイルを経由するように設定(確実にサポート外)。

let g:quickrun_config = {
      \ '*' : {'into' : 0},
      \ 'uiki': {
      \   'exec'      : 'redcloth  %s',
      \   'outputter' : 'browser',
      \   'region': {
      \     'first': [1, 0, 0],
      \     'last':  [line('$'), 0, 0],
      \     'wise': 'V',
      \    },
      \ },
      \}

ひとまず windows でも mac でもうごくようになりました。ファイル名は bin/redcloth で変換すればいいと思うのですが Kconv.toutf8 とかしてもだめだったのであきらめ。

まとめ

快適な textile ライフを!