ちゃーっとはてなキーワードみたいなの作る
とりあえず僕がやりたいのは、はてなキーワードみたいに、
登録されてる単語にリンクを貼るみたいなやつ。
どうも Darts というライブラリを使うとそれっぽいことができるらしい。
てことで、まずは Darts をインストール。
MacPorts で簡単簡単
% sudo port install Darts
mkdarts も勝手にインストールされる。
darts をどう使うかはこちらの通りにやったら口半開きのままできる。
Dartsを試してみた - ダウンロードたけし(寅年)の日記
まず、改行区切りのキーワードリストを作る。
keywrods.txt
うんこ
ちんこ
インコ
で、sort するんだけど、この時 export LANG="" しておかないと、
マルチバイト文字がちゃんと処理されなくて、mkdarts 時にエラーになるらしい。
sort したものを mkdarts する。
何も考えずに port install したので、
/opt/local/lib/darts/mkdarts
に mkdarts がインストールされてた。気にしない。
気にしないけど LANG のこととか一々めんどうなので、まとめてシェルスクリプトにした。
#!/bin/zsh export LANG="" sort keywords.txt > keywords.sort /opt/local/lib/darts/mkdarts keywords.sort keywords.da
これでキーワードリストがいつでも作れるようになった。
次に、dankogai 氏作の Text::Darts をインストール
CPAN 使えばこれも簡単簡単。
% sudo cpan cpan> install Text::Darts
ここまでできたら同じく dankogai 氏の
404 Blog Not Found:perl - Text::Darts 0.02 Released!
サンプルスクリプトをコピペして、さっき作ったキーワードリストを読み込ませるようにちょっと変更。
#!/usr/bin/perluse strict;
use warnings;
use utf8;
use Text::Darts;my $str = 'うんこれは簡単だ!楽ちんこの上ない。';
my $td = Text::Darts->open("keywords.da");
print my $newstr = $td->gsub($str, sub{
qq(<a href="http://dictionary.com/browse/$_[0]">$_[0])
});# 出力結果 '<a href="http://dictionary.com/browse/うんこ">うんこ</a>れは簡単だ!楽<a href="http://dictionary.com/browse/ちんこ">ちんこ</a>の上ない。'
できた!
perl 楽しい!
別に perl 書いてないけど!
コメントする