2004年8月21日(Sat) はてなダイアリーライター、バージョンアップ
■[HW]はてなダイアリーライター0.3.0公開
おはようございます。
はてなダイアリーライター(はてダラ)の0.3.0を公開しました。コマンドラインオプション-tで「ちょっとした更新」が表現できるほか、-dでデバッグ表示が出るようになりました。
■[HW]思うことをあれこれと書く
はてダラのテストも兼ねて、思うことをあれこれと(だらだらと?)書いてみよう。
- はてなダイアリーの書式の細かいところを少し調べてみよう。
- 見出しは *
- 箇条書きは - -- --- で数字付きは + ++ +++
- 引用は >> 〜 << で、ソフトなPREは >| 〜 |< で、ハードなPREは >|| 〜 ||<
- 脚注は (( ))
- http:, https:, ftp:, mailto:, isbn:, asin:, id:,
- [keyword:], [google:], [amazon:], [rakuten:], [tabimado:], [tex:],
- 下書き ><!-- 〜 --><
- リンク <a href="http://www.hyuki.com/">結城浩</a> と書けば結城浩のようになる。
- SSL経由でのログインをスクリプト経由でできるかを考えよう。
- 編集するファイルはいつも1つにできないかな。
- 一つのファイルからその日の分を切り出すようにする。そのときに問題になるのは、どの日の分に修正がかかったかを調べるのが難しいという点。
- 結城がメインで書いている日記は、http://www.hyuki.com/diary/ で、書いている入力形式は http://www.hyuki.com/makeweb/ なのだ。このあたりをうまく統合できるとわたし的には快適なのだが…。
- まずは、ユーザ名(-u)とパスワード(-p)指定のオプションを作ってみようか。Getopt::Stdを使っているので一瞬でできそうだな。→できちゃった。
■[HW]はてなダイアリーライター0.3.1公開
ユーザ名(-u)とパスワード(-p)指定のオプションを実装しました。0.3.1として公開します。
■[日常]いろいろ
はてダラのスクリプトをいじっていると、子供が「おなかすいたー」というのでおやつをあげたり、ごはんを炊いたり。
暑くなってきたので窓を閉めてクーラーをかける。
ご飯が炊けたのでお茶漬けを作って食べる。炊き立てのご飯にふりかけタイプのお茶漬けをかけて、冷たい水を注ぐ。ちょうどよい加減のお茶漬けができる。
■[HW]hatena-diary-mode
id:INN:20040820#p1を見て、xyzzyのkeyword:hatena-diary-modeというものがあるのを知る。確かにエディタと連動していたら便利かも。秀丸でマクロを書いて「はてダラ」を動かせばよいのか?
■[HW]はてなダイアリーライター0.3.2公開
古いLWP::UserAgentでも動くようになりました。ユーザエージェント(-a)とタイムアウト(-T)指定のオプションも追加。0.3.2として公開します。
■[HW]はてなアンテナライターを作るとしたら
はてなダイアリーライターと同じ発想で「はてなアンテナライター」を作ることには意味があるだろうか。あるような気がしてきた。はてなダイアリーを「はてダ」というなら、はてなアンテナは「はてア」というのだろうか。「はてなアンテナライター」は「はてアラ」と略すのだろうか?
■[BOOK]ダークハーフ
スティーブン・キングの『ダーク・ハーフ』を読んだ。再読。前回読んだのはずいぶん以前だったような気がする。スティーブン・キングのうち『ダーク・ハーフ』と『ミザリー』は非常におもしろかった。『やせゆく男』もおもしろかった。その一方で読めなかった本もたくさんある。『IT』『ニードフル・シングズ』『ジェラルドのゲーム』『ノミーノッカーズ』などは途中までは何とか読んだけれど、つまらなくなって放棄してしまった。
■[HW]XHatenaML
id:rna:20040821#p3を読んで、なんばさんがXHatenaMLというのを書いていらっしゃるのを知る。おもしろい!これ、とてもよいです。とくにXHatenaMLのサンプル文書が分かりやすい。がんばってください。結城はXSLTで変換するという方向では考えていなくて、YukiWikiのように はてな形式を直接HTMLにするか、声のかけら。のように はてな形式を元にHTML::Templateで誰かがHTML化できるような仕組みを考えていただけです。XHatenaMLが はてな形式をすべてカバーできるなら、はてな形式をHTML::Template用に抽出する部分だけ作ろうかな。その上で、XHatenaMLに変換するHTML::Template用のテンプレートを作ればよいから。
■[HW]Yuki::Hw
…と考えて、Yuki::Kakeraを元にとりあえずCVSのリポジトリだけは作ってみた。パッケージとしてはYuki::Hwとした。イメージとしてはYuki::Kakeraのデータファイルが「はてダラ形式」になっているようなイメージ。実際のHTML表示の部分はHTML::Templateのテンプレートを書く人が考える。そしてエキスポート形式としてXHatenaML向けHTML::Templateのテンプレートも書くことは可能、ってところまではイメージできるのだけれど。はてダラ形式からの抽出部分はYukiWikiから持ってくれば作れるだろうか。でも、私はいまそれをやる時間はあるのだろうか。ううむ。仕事からの逃避には最適な題材なだけに。うーむうーむ。
はてダラ形式だと、日付ごとのファイルになってしまう。これははてなダイアリーへの更新を考えると妥当なのだが、保存を考えると実はセクション単位にしてYYYYDDMMhhmmss.txtのほうがよいのかも。というのは「カテゴリごとに集める」という処理があるからだ。実際、声のかけら。の「かけら」をはてなダイアリーの1つのセクションだと考えれば、声のかけら。の修正も最小限ですみそうだ。グッドラッパーだ(何か違う)。
■[HW]考え直し
ん?Yuki::Kakeraのモジュールの中で、hook_make_item_methodというフックさえ書き換えればいいんじゃないか?ここにセットしたメソッドの中で「声のかけら。」のような変換ではなく「はてなダイアリー」のような変換をすればいいんじゃないか。ということは、index.cgiだけの修正でよい。Yuki::Hwなんてモジュールはとりあえずいらないわけだ。index.cgiの修正だけで、声のかけら。風味のはてなダイアリービューアができる。でもって、更新されたかけらと同じ日のかけら群を1つにまとめてはてダラ形式にし、はてダラで送信すればミラーリングができる!すばらしい…。あとはユーザ認証の問題だけだな。index.cgiはローカルCGIにしちゃえば、認証はいらないか。
というところでくたびれたのでお昼寝しようか(と思ったらもう夕方じゃん!)。
■[HW]hw.cgi
まずはYuki::KakeraのドライバCGIとしてhw.cgiを作り、theme/defaultをtheme/hwにコピーし、files/*.txt をhwfiles/*.txtとしてコピーした。それから、hw.cgiの中にhook_make_item_methodという関数を作って、Yuki::Kakeraの中のmake_item_methodの中身をコピーした。これで、フックはかかるが変換は声のかけら。と同じという状態になった。ローカルCGIでhw.cgiを動かして、動くことを確認。それからhook_make_item_methodの中で大文字小文字変換をやるようにしてみて、確かにフック関数に制御が来ていることを確認。あとは、hw.cgiのhook_make_item_methodの中にはてな形式のパーザ(ただし1セクション分)を書けばよい、はず。
お腹へった。
■[HW]はてなダイアリーライター0.3.3公開
クッキーを使って不要なログイン・ログアウトを省くオプション(-c)をつけました。クッキーを保存する方法の指摘はなんばさんからのメールと、Webページ id:rna:20040820#p3によります。これで、ブラウザ側がログアウトされてしまう可能性を減らすことができます。
- http://d.hatena.ne.jp/igi/20040821
- http://d.hatena.ne.jp/yukatti/20040822
- http://d.hatena.ne.jp/bmp/20040820
- http://d.hatena.ne.jp/rna/20040821
- http://d.hatena.ne.jp/eiji8pou/20040820
- http://d.hatena.ne.jp/ef66/20040821
- http://d.hatena.ne.jp/tamiotkmt/20040821
- http://d.hatena.ne.jp/ef66/20040820
- http://d.hatena.ne.jp/rna/20040822
- お茶漬け
- http://d.hatena.ne.jp/matoriX/20040822


楽天でブログをやっているのですが、先日、聖書の言葉を引用してブログを書いたところ、ある方から結城さんのサイトを薦められ、お邪魔させていただきました。
私もIT系の企業に勤めているので、『プログラマの心の健康』にあった「睡眠はきっと、あなたのバグをとってくれるはず。」という言葉に、妙に納得してしまいました。(^^)
執筆活動等もあり、自己管理がとても大変かとは思いますが、どうぞ、ご自愛くださいませ。
それでは、失礼いたします。
りらっくすたいむ
http://plaza.rakuten.co.jp/relaxtime/