D言語によるNovelコンバータ試作品#1

img/noveld-20090625.tar.bz2 試作品ダウンロードv0.3(bz2: 10.4kb) img/noveld-20090619.tar.bz2 試作品ダウンロード(bz2: 9.3kb)

大量のバグをとり、ついでに高速化しました。改版の必要がない場合のインデックスとRDF作成までの所要時間が、うちの二次創作ページ+うちの鈍足PCの場合で、約50倍に速度アップしました。(10.2秒→0.2秒)

これは何?

 うちの小説サイドのページで使っているコンテンツ作成ツールの移植のひとつです。 D言語 で書かれており、gdcでコンパイルします(Makefileやテンプレも付いてます)。

作成に至った経緯

 うちのページは補助的にいくつかの処理系(しょりけい)を使っています。たとえば、今使ったふりがな(ルビ)がそうで、EmacsMuse本体のカスタマイズでなく、外付けのスクリプトでやっています。最初はRubyで作成し、現在はC#(Mono)で動いています。

 しかし、コードをたくさん書く都合上EmacsMuseを使って手抜きしている本ページと違い、小説系のページ側ではそういう縛りがありません。だけどEmacsMuseのpublishingの概念(Emacs上でテキストで書けば、そこからすべてのコンテンツを得られる)はすごく共感しましたので、コンテンツ作成ツールを作る時の基本コンセプトにしました。つまり 『 書くのは小説原稿のみ。あとは整形もタグつけもインデックスもRSS発行も、アップロードすらも全部全自動 』という考えの元に作成にとりかかったのです。

おまけ

 今回初めて使いましたが、D言語なかなかいいです。C++やC#の書き方もきちんと継承しつつ、同系として正しく進化しています。この先が楽しみです。

 そのうち、うちのページでも特集を組みたいものです。