Githubをがっつり使ってると、Wikiに仕様書いたりFAQや依存するModule書いたりと、Wikiを利用する機会は結構あって、Issueやソースコードには検索機能があるのに、Wikiには何故かないんだよね。Github内での優先順位が低いのかな?最初は、@morygonzalezに「Wiki内って検索出来ないけどどうすんの?」って言われて、「cloneしてack叩けば?」って言ったものの、ターミナルアレルギーなデザイナーは仕方ないとして、自分も他プロジェクトのをいちいちcloneして探すのは確かに面倒だなあと思ったわけ。なので、UserScriptを書いてみてGithub Wikiの全文検索がうまくいったのでお知らせしてみる。
なんか、バグ見っけたらGithubにIssue登録お願いします。もしくは、Pull Requestお願いします。
Screenshots
ページ右上に検索ボックス。
検索ワードを入力してEnterしたら検索開始。
検索結果は、非同期で見つかった順に表示。
Logic
生のjsガリガリ書くのは面倒だったのでjQueryを使った。
以下、コード中やってること。
- PagesタブにWikiの*全てのページのリンクがある*のでGETしてページのURLリストを作成。
- URLリストからコンテンツをGETして、検索文字をgrep。
- grepしてmatchしたら結果表示しつつ、次のコンテンツをGETしてgrepを繰り返す。
補足
- 1度全ページロードしたらキャッシュしてる。ロードの状態は、プログレスバーで視覚的に分かるようにした。
- 検索結果表示数が多いと もともと何のページか分からなくなるのであえて少なくしてる。(Wikiってそんなにページ数少ないし…)
Install
インストールは、userscripts.orgに登録してるので*Install*ボタンからどうぞ。
http://userscripts.org/scripts/show/129930
ブラウザは、以下で一通り動作するのを確認済み。
- Chrome
- Firefox - need Greasemonekey
- Safari - need NinjaKit