Text::Hatena ではてな記法を html に変換
普段はてなばっかり使っているので, ほかのブログシステムや CMS で記事を書くときなど, ちょっとした html をはてな記法で書きたいときがあります. アスタリスクを h 要素に変えてくれたり, ハイフンでリストが作れたり, リンクを a 要素にしてくれるくらいで十分です.
cpan で探してみたら Text::Hatena というモジュールが見つかりました.
Junya Kondo / Text-Hatena-0.20 - search.cpan.org
作者は jkondo さんで, はてダで実際に使われているみたいです. 使い方も簡単です.
SYNOPSIS use Text::Hatena; my $html = Text::Hatena->parse($text);
さっそく, はてな記法で書かれたテキストを読み込んで, htmlに変換して出力するワンライナーを書きました. 勝手に挿入される
タグがいらないのでそれは除くようにしてあります.
perl -MFile::Slurp -MText::Hatena -e '$ARGV[0] or die; $text = read_file($ARGV[0]); $html = Text::Hatena->parse($text); $html =~ s#?div.*?>.*?\n##gi; print $html;'
これの alias を作れば便利だなと思ったんですが, alias は引数をとれないらしいので, ふつうに perl のスクリプトにしました.
#!/usr/bin/perl use strict; use warnings; use Text::Hatena; use File::Slurp; my $filename = shift or die "usage: $0 [hatena style text file name]\n"; my $text = read_file($filename); my $html = Text::Hatena->parse($text); $html =~ s#?div.*?>.*?\n##gi; print $html;
これに実行権限をつけてパスの通った場所に hatena2html と名前をつけて置いておけば,
% hatena2html foo.txt | pbcopy
などとできるようになります.