nDiki : Pod
Pod - Plain Old Documentation format
Perl スクリプトファイルの中に埋み可能なドキュメンテーションフォーマット。 ドキュメンテーションコメントに使われる。
関連情報
- pod2latex
- perlpodspec
- perlsyn
- perlnewmod
- perldoc
- pod2html
- pod2man
- podchecker
- WEB
スポンサード リンク
Related term
2003年11月19日 (水)
■ pod2latex

仕事で書いた Perl モジュールの API 仕様を紙媒体にしなければならないので、今回は pod2latex を使ってみる。
pod2latex -modify -full -out hoge-utf8.tex lib
で lib ディレクトリ以下の *.pm の Pod が集められて hoge-utf8.tex になる。ソースを UTF-8 で書いているのでこれを lv などで EUC-JP に変換して、platex してdvipdfmx。
前に Javadoc から LaTeX に落とした時に比べて非常にすんなりと変換してくれる。 '=item foo([opt])' とかすると ] 文字が落ちたりする以外は特に今のところ目につく問題なし。
ま、いざとなったらスクリプトに手を入れて直せるだろうし、なかなかいいんじゃないでしょうか。
- Twitter ベイジアンフィルタプロキシ (2007-12-29)
- bundle を作成して Perl モジュールをまとめてインストール。 (2004-10-21)
- 携帯電話(iモード)から Twitter を更新する (2007-04-07)
- pLaTeX + hyperref + dvipdfmx で PDFにしおりを (2005-04-15)
- LaTeX でプレゼンテーション (2005-06-21)
2004年10月21日 (木)
■ bundle を作成して Perl モジュールをまとめてインストール。

依存モジュールが多くなってきて、開発しているPerl モジュールの実行環境構築が面倒になってきた。
ActivePerl では PPM パッケージ化 + PPM リポジトリで芋蔓式インストールが可能である。 素のPerlだとCPANモジュールでネットワークインストールする事になる。 ここで一個づつインストールしていくのがかったるい。 ということでCPANにあるモジュールのように Bundle::* を作る事にした。
調べてみると簡単。
- bundle はただのPerl モジュールである。
- Bundle:: 名前空間に置く。
- =head1 CONTENTS Podセクションを置き、各行に1つづつ依存モジュールを列挙する。
フォーマットは以下。
Module_Name [Version_String] [- optional text]
これだけ。Pod に書かせるあたり、とりあえずから始まった感じである。
CPAN上に置あるものはきちんと tarball 化してあるが、ローカルで使う分にはこの bundle Perl モジュールを @INC のどこかに置いておけばよい。
Bundle::MyModule を作ったとすると perl -MCPAN -e shell から 'install Bundle::MyModule' でOK。
@ CPAN と @INC 上の '.'
カレントディレクトリの下に Bundle/MyModule.pm を置いて
perl -I . -MCPAN -e shell
として Bundle::MyModule をインストールしようとしたのだがうまくいかない。CPAN のシェル上の ! コマンドで @INC を出力してみると . が含まれていない。何故? PERL5LIBに設定しても同様。 試行錯誤したところ絶対パスで指定すればOKであった。
CPAN.pm 1.76_01 を読んでみた。
no lib "."; # we need to run chdir all over and we would get at wrong
# libraries there
これだ。
- ActivePerl で Ming (2005-02-23)
- PAR::Repository でビルド済み Perl モジュールをネット... (2006-12-12)
- Module::Build でソースパッケージング (2005-08-24)
- 自前 PPM リポジトリの管理 (2006-07-03)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
2005年2月20日 (日)
■ Ming でいきなりハマる

一昨日インストールしたMing 0.3 beta 1 + Perl でいろいろ実験。 Ming 関連は資料が少ない。
@ SWFバージョンの設定
SWF::setVersion(6) をしても吐き出されるバージョンは5。 SWF::Movie の Pod に書いてある
new SWF::MovieWithVersion(6)
はエラー。
結局 xs ファイルを見て、
SWF::Movie::newSWFMovieWithVersion(6);
なら呼べてバージョン6形式で吐けることを確認。
@ テキストフィールドのインスタンス名? 変数名?
テキストフィールドの onChanged イベント処理のテスト。
SWF::TextField インスタンスに setName で名前を設定して ActionScript から onChanged イベントハンドラを設定するも、ウンともスンとも言わない。 設定した名前に文字列を代入すると表示が書き換えられるはする。 はて。
どうやらMacromedia Flash ではテキストフィールドにインスタンス名と変数名があるようだ。 setName で設定した名前はどっちだったのか? どうやら変数名っぽいのだが。
また手元の本によると onChanged はインスタンス名を指定するらしい。 Ming ではどうする?
いろいろいじったところ、SWF::Movie に add した後の返り値である SWF::DisplayItemオブジェクトに対して setName し、ActionScript でこの名前のインスタンスに対して onChanged にハンドラを与えたところうまく動くようになった。 ということはこれがインスタンス名なのか?
- ActivePerl で Ming (2005-02-23)
- wxPerl で daemon モニタ (2005-03-11)
- Perl で遺伝的プログラミング (2004-07-05)
- 最新の Module::Install は Perl 5.005_03 ステ? (2006-04-29)
- Perl テストスクリプトの中で標準エラー出力を一時的に止める (2006-12-15)
2006年2月15日 (水)
■ ドキュメンテーション大全

プロジェクトの後半で納品用ドキュメントの整備を始めるのだが、その時はたいがいもう切羽詰りはじめていて構成やら体裁やらマネジメントやらを工夫する余力が無かったりする。 ついつい(次回は改良しようと思っていつも思っている)前回のプロジェクトの手法を踏襲してしまいがちだ。 ともすれば劣化コピーになりかねない。
やはり、忙しくても日頃からの改善は重要である。
最近はアジェンダ・議事録・開発メモなどを、積極的に Wiki や Subversion で共有するようにし、その点では以前より改善してきている。
今後はさらに、出荷ドキュメントのレビュープロセスなどを確立し品質を高めていきたいところである。 現状でもチームメンバでのピアデスクチェックやパスアランドを非形式的に行っているのだが、「チェックの程度」やその後の「修正」および「修正の確認」については、まだなんとなくやったかなという具合。この辺りを工夫したい。
先月発売されていて気になっていた「開発の現場 Vol.003」に、何かヒントがあるかなと思って買ってみた。
パラパラと見た感じではテクニカルライティングの話はあまりなく、主にソフトウェア開発における中間成果物としてのドキュメントや開発者間ドキュメントをどうとりまとめていくかという話が中心のよう。 Wiki による開発資料のライトな共有など、うちのチームでも進めている話など。
「(最初から)完全なドキュメントを書こうとしない」というのはもっとも。 状況はほとんどの場合変わるし、最初の段階では未確定の部分も多い。 だからといって、いつまでたっても手元で温めていてもしょうがない。
技術的な話では Perl の Pod を活用しようという話。 Perl 以外の言語のコメント中に Pod 形式でドキュメントを書こうという提案や、Apache で動的に Pod ドキュメントを整形しようという話とか。
テキストフォーマットとしての Pod は =over / =item / =back によるリスト表現など、最近のフォーマットに比べてすごく読み易いわけではないが、たしかに他の言語のコメントに埋め込んでおいて処理するのは、標準の Pod 関連のモジュールでできるな。
自分も Pod でドキュメントを書くけれど、(Perl 以外は) 個人的には reStructuredText にしたいと考えている。 ただ Pod みたいに他のテキストの一部に埋め込んでその部分のみ処理する記法およびツールがが標準の reStructuredText / Docutils には見当らない。 実はどっかにあるのだろうか。
[ 書評 ]
- bundle を作成して Perl モジュールをまとめてインストール。 (2004-10-21)
- Wiki Way (2002-09-07)
- CGI プログラム、Out of memory! に泣く (2001-01-04)
- 定型書式で内容を記述していくのに便利な形式は? (2005-11-21)
- 私的10大ニュース2005 [ comp ] (2005-12-31)
2006年7月25日 (火)
■ Perl 用の doxygen のようなツールはないのかな

WiKicker のソースコードを人に説明するのにプリントアウトして説明するのに、doxygen のようなツールが欲しいのだけれど Perl 用のものはないのかな。
- ソースコードを色付けした HTML に変換してくれる
- Pod とコード本体を混在してドキュメント化してくれる
- ソースツリー内のファイルをそれぞれ処理してくれて、インデックスファイルも生成してくれる。
- できれば識別子がリンクになってくれる
というのが希望。1 だけなら結構いろいろなツールがあり、1 + 2 なら perltidy で実現できる。 しかし 3、4 までしてくれるツールが見つけられない。
とりあえず perltidy の Perl::Tidy と File::Find で再帰的にまとめて HTML に変換するスクリプトだけは書いて、一気に変換だけはできるようにしておいた。
インデックスの作成までは面倒なので未着手。
- 第2回 社内 Perl 勉強会 (2006-04-28)
- Perl プリティプリンタの定番 perltidy (2006-04-23)
- Emacs でお好きな言語のソースコードを色付き HTML テキストに変換 (2006-04-21)
- 定型書式で内容を記述していくのに便利な形式は? (2005-11-21)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
2006年7月28日 (金)
■ Perl で CR/LF/CRLF 全対応の1行毎読み込み処理

Perl プログラムでテキストファイル処理を 改行コード CR/LF/CRLF 全対応にしようと思ったが、書こうとするとこれが結構面倒臭いことに気がつく。
$/ に正規表現が設定できないため、<FILEHANDLE> で単純に3パターン対応ができない (LF と CRLF に対応とかならすぐできる)。
小さいファイルと仮定して良いなら全部読み込んで自前で行分割、大きいファイルならまじめにバッファリングして改行コードをスキャンして行処理するのが正攻法かな。 多少効率悪くなりそうだけれど。
@ Pod::Html (1.0504) の場合
Perl 5.8.8 の Pod::Html (1.0504) だと pod2html の中で $/ = "" と設定して、パラグラフ単位で読み込んでそのあと処理している。
@ PerlIO レイヤー
最近の Perl であれば PerlIO::crlf、 PerlIO::eol あたりが使えそうである。
もちろん Perl 5.005_03 だと NG。
- [ WiKicker ] 通知メールの Subject: フィールドのエン... (2004-01-25)
- 第6回 社内 Perl 勉強会 (2006-06-05)
- ドキュメンテーション大全 (2006-02-15)
- Perl 用の doxygen のようなツールはないのかな (2006-07-25)
- mixipress でコミュニティ掲示板もチェック (2005-10-01)
スポンサード リンク
■よく検索されるキーワード
提案書(75) torrent(69) perl(61) 書き方(45) 充電式カイロ(43) windows(38) x31(36) 使い方(32) linux(32) cvs(25) アジェンダとは(25) usb(25) thinkpad(23) 静電気(21) サンプル(20) 口コミ(20) ヨドバシ(20) アジェンダ(20) 画像(19) debian(19) ubuntu(19) mp980(18) f-01a(18) 手帳(17) tc-1(17) 秋葉原(16) ssh(16) subversion(16) グッズ(16) a6(15) 壁紙(15) ほぼ日手帳(15) c#(14) ダイソー(14) svn(14) 交換(14) インストール(13) 加湿器(13) firefox(12) ノート(12) 無印(12) 日本語(12) wiki(12) ganttproject(12) デロンギ(11) 方眼(11) ヨドバシカメラ(11) デザイン(11) nikkor(11) 設定(11) 作り方(11) dropbox(11) af(10) terastation(10) memcached(10) レビュー(10) カバー(10) カイロ(10) 2009(10) 除去(10) nikon(10) tortoisesvn(10) クラリチン(9) ガントチャート(9) 動画(9) ポメラ(9) ご査収(9) rcs(9) モジュール(9) n-01a(9) フィルム(9) 写真(9) システム手帳(9) edition(9) porter(9) xp(8) imap(8) 4c(8) docomo(8) ミニ6穴(8)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 15.241489s / load averages: 0.43, 0.61, 0.66
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)




スポンサード リンク