CodeReadingWiki [コードリーディング]
先のエントリ [1] の最後で GNU GLOBAL が作った HTML を Wiki に取り込むアイデアについて書いた。その後実際にそのアイデアの実装をしてみたのでこれを CodeReadingWiki と名づけて公開することにした。ダウンロードは [2] からできる。
正確に言うと Wiki に取り込むのではなくて GLOBAL の HTML を Wiki 化するというほうが正しい。ソースコードの任意の行をダブルクリックすると書き込みフォームが出てきてコメントを挿入できるという感じの使い勝手になっている。大げさな視覚効果はないけれども AJAX を使っているのでページ遷移なしで編集ができる。結構便利。
以下は README.txt から。
CodeReadingWiki 説明書
======================
* 概要
CodeReadingWiki は「他人の書いたコードの読解」を目的とした Wiki エンジンです。
以下のような特徴を持っています。
- GNU GLOBAL により索引付けされた HTML を Wiki 化する
- ソースコード上の任意の場所にブラウザからコメントを挿入できる
「ひらメソッド」の「ドキュメントを書きながらボトムアップに読み進める」
という方法論を支援することを想定しています。
「ひらメソッド」については以下の URL を参照してください。
http://hira.main.jp/wiki/pukiwiki.php?2005_6_23%A5%AB%A1%BC%A5%CD%A5%EB%BA%C2%C3%CC%B2%F1%AD%A1
また CodeReadingWiki は以下の点で通常の Wiki エンジンとは異なります。
- 任意のページを新規追加することはできない
- Wiki ワードによるハイパーリンクはない
(ソース読みに必要なハイパーリンク化は GNU GLOBAL が事前にやってくれます)
* 要件
Wiki 構築時に Windows マシンで以下のソフトウェアを実行します。
インストール後実行パスを各ソフトウェアの実行ファイルのあるフォルダに通してください。
- GNU GLOBAL http://www.gnu.org/software/global/download.html
- GNU AWK http://www.vector.co.jp/soft/win95/util/se376460.html
サーバサイドで以下のソフトウェアが必要です。
- PHP
- MySQL
Wiki の閲覧・編集には以下のいずれかのブラウザが必要です。
- Mozilla FireFox 1.5
- Internet Explorer 6.0
* インストール方法
1. 使用したいソースコードを適当なフォルダに展開します。
2. コマンドプロンプトで 1. のフォルダに移動し、以下のコマンドを実行します。
gtags
htags -a
直下に HTML というフォルダが出来上がります。
3. HTML フォルダに CodeReadingWiki のアーカーブに含まれるファイルをすべてコピーします。
4. HTML フォルダに移動し、以下のコマンドを実行します。
cwriki
S フォルダの内容が S_ フォルダに退避され S フォルダは新しい内容で更新されます。
5. crwikiconf.cgi の内容を編集します。各パラメータを適宜編集してください。
- $host: ホスト名
- $user: ユーザ名
- $password: パスワード
- $db: データベース名
- $db_charcode: DBの文字コード
6. サーバサイドの MySQL で以下の SQL 文を使って remarks テーブルを作成します。
CREATE TABLE `remarks` (
`src` VARCHAR( 255 ) NOT NULL ,
`line` INT NOT NULL ,
`remark` MEDIUMTEXT NOT NULL ,
PRIMARY KEY ( `src` , `line` )
) TYPE = MYISAM ;
7. サーバ上の crwikiconf.cgi の置き場所を決めます。
可能な限り外部から見えない場所(非公開ディレクトリ)にしてください。
8. crwiki.cgi をサーバにアップロードします。
公開ディレクトリに置かざるを得ない場合は crwiki.cgi の内容が外から見えないことを確認してください。
9. 7. で決めた場所に基づいて crwiki.php の require '../crwikiconf.cgi'; を書き換えます。
10. HTML フォルダ以下の crwikiconf.cgi 以外を丸ごとサーバにアップロードします。
* Wiki の使い方
- アップロードした index.html から各ソースファイルをブラウズすることができます。
- S ディレクトリの下のファイル(ソースコード実体)は編集が可能です。
- コメントを挿入したい行をダブルクリックするとその下にフォームが現れます。
- コメントを入力し、再度該当行をダブルクリックするとコメントが反映されます。
* 移植性について
事前のクライアント上作業は現在 Windows マシンを前提としていますが、
crwiki.bat を移植することにより他の環境でも実行できるようになるでしょう。
* 既知の問題点
Internet Explorer を使う場合、挿入したコメントに対するスタイル指定が効きません。
[1] http://blog.so-net.ne.jp/rainyday/2006-10-01
[2] http://tcl.s27.xrea.com/crwiki-0.1.zip
2007-01-07追記: SourceForge.jp にプロジェクトを作りました。次回以降のリリースは下記の場所で行います。
http://sourceforge.jp/projects/crwiki/
はじめまして(^-^)
CodeReadingWikiは良い感じですね。ダブルクリックで書き込めるのが、とっても気持ち良いです(*TーT)bグッ!
ちょっと気になったのですが、GLOBALって関数にちゃんとリンクを張ってくれない時があります。そういう場合、CodeReadingWikiでリンクを手動で張れるようにできれば良いなぁ、と思いました。
by ひら (2006-10-22 19:40)
ひらさんはじめまして。コメントありがとうございます。
私も GLOBAL の挙動はそれほど詳しく把握していないのですが、確かに想定どおりにいってないことがありますよね。
-s オプションをつけるとリンク率上がるけど逆にリンクばっかりになってうるさくなるし。
手動リンクはちょっとベストな方法を考えてみます。あったほうがよいのは確かなので。
by ether (2006-10-22 21:29)
はじめまして。
MySQLのソースコードを読むのに使わせて頂いています。
GLOBALのバージョン違いへの対応なのか分からないの
ですが、公開されているままだと使えなくなっていたのでちょいちょい改修して使っています。
ダブルクリックでコメントを残せるのが気持ちいいです。
by omokawa_yasu (2012-09-26 15:58)
6年越しのコメントありがとうございます。
改造どんどんしてください! もともと大したプログラムではないので別途公開してくれても構いませんよ。
ほかにも改造して使ってくれている方を以前見つけました。
http:://www.mazn.net/blog/2010/07/03/295.html
by ether (2012-09-28 12:42)