トップ(最新)

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])' とかすると ] 文字が落ちたりする以外は特に今のところ目につく問題なし。

ま、いざとなったらスクリプトに手を入れて直せるだろうし、なかなかいいんじゃないでしょうか。

スポンサード リンク


[ 11月19日全て ]

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

これだ。


[ 10月21日全て ]

2005年2月20日 (日)

Ming でいきなりハマる このエントリーを含むはてなブックマーク

一昨日インストールしたMing 0.3 beta 1 + Perl でいろいろ実験。 Ming 関連は資料が少ない。

@ SWFバージョンの設定

SWF::setVersion(6) をしても吐き出されるバージョンは5。 SWF::MoviePod に書いてある

 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 にハンドラを与えたところうまく動くようになった。 ということはこれがインスタンス名なのか?


[ 2月20日全て ]

2006年2月15日 (水)

ドキュメンテーション大全 このエントリーを含むはてなブックマーク

開発の現場 Vol.003 効率UP&スキルUP ドキュメンテーション大全

プロジェクトの後半で納品用ドキュメントの整備を始めるのだが、その時はたいがいもう切羽詰りはじめていて構成やら体裁やらマネジメントやらを工夫する余力が無かったりする。 ついつい(次回は改良しようと思っていつも思っている)前回のプロジェクトの手法を踏襲してしまいがちだ。 ともすれば劣化コピーになりかねない。

やはり、忙しくても日頃からの改善は重要である。

最近はアジェンダ議事録開発メモなどを、積極的に WikiSubversion で共有するようにし、その点では以前より改善してきている。

今後はさらに、出荷ドキュメントのレビュープロセスなどを確立し品質を高めていきたいところである。 現状でもチームメンバでのピアデスクチェックやパスアランドを非形式的に行っているのだが、「チェックの程度」やその後の「修正」および「修正の確認」については、まだなんとなくやったかなという具合。この辺りを工夫したい。

先月発売されていて気になっていた「開発現場 Vol.003」に、何かヒントがあるかなと思って買ってみた。

パラパラと見た感じではテクニカルライティングの話はあまりなく、主にソフトウェア開発における中間成果物としてのドキュメントや開発者間ドキュメントをどうとりまとめていくかという話が中心のよう。 Wiki による開発資料のライトな共有など、うちのチームでも進めている話など。

「(最初から)完全なドキュメントを書こうとしない」というのはもっとも。 状況はほとんどの場合変わるし、最初の段階では未確定の部分も多い。 だからといって、いつまでたっても手元で温めていてもしょうがない。

技術的な話では PerlPod を活用しようという話。 Perl 以外の言語のコメント中に Pod 形式でドキュメントを書こうという提案や、Apache で動的に Pod ドキュメントを整形しようという話とか。

テキストフォーマットとしての Pod は =over / =item / =back によるリスト表現など、最近のフォーマットに比べてすごく読み易いわけではないが、たしかに他の言語のコメントに埋め込んでおいて処理するのは、標準の Pod 関連のモジュールでできるな。

自分も Pod でドキュメントを書くけれど、(Perl 以外は) 個人的には reStructuredText にしたいと考えている。 ただ Pod みたいに他のテキストの一部に埋め込んでその部分のみ処理する記法およびツールがが標準の reStructuredText / Docutils には見当らない。 実はどっかにあるのだろうか。


[ 書評 ]


[ 2月15日全て ]

2006年7月25日 (火)

Perl 用の doxygen のようなツールはないのかな このエントリーを含むはてなブックマーク

WiKickerソースコードを人に説明するのにプリントアウトして説明するのに、doxygen のようなツールが欲しいのだけれど Perl 用のものはないのかな。

  1. ソースコードを色付けした HTML に変換してくれる
  2. Pod とコード本体を混在してドキュメント化してくれる
  3. ソースツリー内のファイルをそれぞれ処理してくれて、インデックスファイルも生成してくれる。
  4. できれば識別子がリンクになってくれる

というのが希望。1 だけなら結構いろいろなツールがあり、1 + 2 なら perltidy で実現できる。 しかし 3、4 までしてくれるツールが見つけられない。

とりあえず perltidyPerl::Tidy と File::Find で再帰的にまとめて HTML に変換するスクリプトだけは書いて、一気に変換だけはできるようにしておいた。

インデックスの作成までは面倒なので未着手。


[ 7月25日全て ]

2006年7月28日 (金)

PerlCR/LF/CRLF 全対応の1行毎読み込み処理 このエントリーを含むはてなブックマーク

Perl プログラムでテキストファイル処理を 改行コード CR/LF/CRLF 全対応にしようと思ったが、書こうとするとこれが結構面倒臭いことに気がつく。

$/ に正規表現が設定できないため、<FILEHANDLE> で単純に3パターン対応ができない (LFCRLF に対応とかならすぐできる)。

小さいファイルと仮定して良いなら全部読み込んで自前で行分割、大きいファイルならまじめにバッファリングして改行コードをスキャンして行処理するのが正攻法かな。 多少効率悪くなりそうだけれど。

@ Pod::Html (1.0504) の場合

Perl 5.8.8 の Pod::Html (1.0504) だと pod2html の中で $/ = "" と設定して、パラグラフ単位で読み込んでそのあと処理している。

@ PerlIO レイヤー

最近の Perl であれば PerlIO::crlf、 PerlIO::eol あたりが使えそうである。

もちろん Perl 5.005_03 だと NG。


[ 7月28日全て ]

スポンサード リンク

■よく検索されるキーワード

提案書(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)

この日記のはてなブックマーク数 Add to Google RSS

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)