A Riddle Wrapped in a Mystery

中身はエニグマ・Emacs

Emacs Lookup でオフラインでWikipediaを検索する

Lookup の ndzim エージェント

LookupOpenZIM 形式のファイルを検索するための ndzim エージェン トを試作した。

OpenZIM について

OpenZIM ファイル形式は、複数のWebページや付随する画像データを、整理・圧 縮して1ファイルにまとめる。主に Wikipedia 等の MediaWiki の記事をアー カイブするために開発されている。[fn:: Wikipedia 財団が公認している。]

OpenZIM の内部構造 は、LZMA2で圧縮された多数のデータの集合体である。日 本語版Wikipediaの全記事(2011年現在)を画像込みで 7GByte、英語版 Wikipediaを画像なしで 12GByte 程度に圧縮できる。様々な言語のWikipeida 全 記事をアーカイブした OpenZIMファイルがKiwixサイトにて配布されている。

ZimLibのインストール

Lookup の ndzim エージェントは、zimlib に付属するzimdump/zimsearch ツー ルでOpenZIMファイルの検索とデータのダンプを行い、w3mで整形する。

zimlib のコンパイルには lzma ライブラリが別途必要。MacPorts等でlzmaラ イブラリをインストールする場合は、CPPFLAGSやLDFLAGS環境変数を適切に設 定する。

% git clone https://gerrit.wikimedia.org/r/p/openzim.git
% cd cd openzim/zimlib
% ./autogen.sh
% ./configure
% make
% sudo make install

Lookup の設定

Lookup で OpenZIMを使うためには、 $HOME/.emacs.d/lookup/init.el に、 ZIMファイルを入れたディレクトリを検索エージェントとして設定する。

(setq lookup-search-agents
      '(...
        (ndzim "/path/to/dir")
       ))

上記のように設定すると、検索エージェントは /path/to/dir ディレクトリ 内にある、拡張子が .zim のファイルを見つける。

あとは他のエージェントと同様、 M-x lookup-restart にて、無事に辞書選 択バッファに辞書が表示されたら、単語で検索して動作を確認。

2013-03-10-ndzim.png

検索サンプル

Footnotes:

1

Wikipedia 財団が公認している。