2007-02-02

多数の入力書式に対応

bloggerpost-0.0.8.tar.bz2

今まで、bloggerpostでブログを投稿するには、HTMLかRDの形式で書かなければならなかったが、今回のバージョンアップで多数の入力書式に対応した。0.0.8で対応しているものを全部挙げると、

  • HTML
  • Wiki(HikiDoc)
  • RD
  • reStructuredText
  • Markdown
  • AsciiDoc
  • txt2tags
  • Almost Plain Text
  • Grutatxt
  • plain2

となる。上に行くほど、導入が簡単。下に行くほどインストールするのが大変になる。特にplain2は、素の状態ではコンパイルできないのでやめた方がいいです。

使用できる書式の選定には、2chの構造化テキストとWikipediaの軽量マークアップ言語を参考にした。採用の基準は、

  • HTMLに変換できるツールがある
  • aタグがちゃんと書ける
  • 日本語(EUC-JP or UTF-8)が通る
  • XML系を避ける

という感じ。

書式拡張のためのフレームワークを作ったので、bloggerpost側の修正は少なくて済んだ。例えば、reStructuredTextなら、以下のようなrst.rbを作ってstyleディレクトリに放りこんでおけばよいという感じだ。

class RSTStyle < BloggerPost::Style
def self.style_name
return 'rst'
end

def self.extname
return '.rst'
end

def entry_to_html(entry)
html = external_convert('rst2html', entry.body)
return delete_first_h1(html)
end
end

BloggerPost.register_style(RSTStyle)

しかし、面倒だったのが、それぞれのツールのインストールと動作確認。特にplain2は、HTML変換用途で使うにはパッチを当てなきゃいけないし、macro.c で使っているvarargs.hがobsoleteだっていうんで、stdarg.hを使ったコードに書きかえなきゃいけなかったりとインストールするだけでも一苦労だった。

おすすめは、WikiとreStructuredText。WikiはHikiDocというHikiやtDiaryで使っているものと同じライブラリを使っているので同等の記述力がある(はず)。reStructuredTextは見た目最強のテキスト形式。ただ、見た目に凝り過ぎて少々書きづらいかも。

0 件のコメント: