ホームページ|目次|クイックガイド|イントロダクション|チュートリアル: 初級篇|チュートリアル: 中級篇|チュートリアル: 上級篇|付録|その他
カテゴリ-中くらいのサイズのファイル
ホームページ|目次|クイックガイド|イントロダクション|チュートリアル: 初級篇|チュートリアル: 中級篇|チュートリアル: 上級篇|付録|その他
カテゴリ-中くらいのサイズのファイル
中くらいのサイズのファイル~擬似マクロの取り扱い~使用例~type=2について
中くらいのサイズのファイル
今まではtypeオプションとして1を指定すれば、入力ファイル1つにつき1つの出力ファイル(短いファイル)、2を指定すれば、入力ファイル全部で1つの出力ファイル(長いファイル)が作成されると説明してきましたが、typeオプションのデフォルトが何かということは説明していませんでした。実は、typeのデフォルトは、1でも2でもなく、0なのです。1とか2は、インデックスファイルの参照番号フィールドの値に関わらず、短いファイルや長いファイルを強制的に生成するための設定で、デフォルトの0は、そのような強制的な処理を行わず、参照番号フィールドの指定に従って、短いファイルや長いファイルや中くらいのファイルを作ります。そこで、OLBCKには、type=1を指定してg_bodyとg_cntsを呼び出すg_short、type=2を指定してg_body、g_cntsを呼び出すg_longに対応する形で、typeオプションを指定しないでg_body、g_cntsを呼び出すg_htmlというものも添付してあります。
さて、この参照番号ですが、うまい用語を思い付けなかったので、こういうわかりにくい名前になってしまいましたが、どの行をベースに出力ファイルを作るかを指定します。この行をルート:根、この行を参照しているこの行以外の行をブランチ:枝と呼ぶことにします。ルートとして指定できる行は、自分自身か自分よりも手前の行です(特に指定しなければ自分自身をルートとして参照します)。自分よりもあとの行を指定した場合には、
index file error: root file should be placed before branch files
というよくわからないエラーメッセージが表示されて処理は止まってしまいます。また、すでに別の行を参照している行を参照しようとすると、
index file error: branch files should refer to root
というこれまたよくわからないエラーメッセージが表示されて処理は止まります。
ルートの第2、第3フィールドは、ヘッダ、フッタなどの$all_o、$prev_o、$next_o、$etitで表示される文字列を供給します。第1フィールドは空でなければ、拡張子部分をextオプションの内容に置き換えて出力ファイル名を供給します。空の場合には、ブランチのなかで第1フィールドを持っている行のなかでもっとも手前の行が出力ファイル名を供給します。ブランチのなかにも第1フィールドを持っているものがない場合には、g_bodyはそのルートとブランチの全体を完全に無視しますが、g_cntsは
index file error: Couldn't find the root file
というさらに要領を得ないエラーメッセージを出力して止まってしまいます(実害はありませんが、この部分は改良の余地があると思っています)。
中くらいのサイズのファイル~擬似マクロの取り扱い~使用例~type=2について
$all_o、$all_iなどの擬似マクロの扱い
ヘッダ、フッタなどの擬似マクロは、次の基準に従って作成されます。
目次ファイルの個々の入力ファイルに対応する部分は、<A HREF="[出力ファイル名]#[入力ファイル名]">という形で参照されます。
中くらいのサイズのファイル~擬似マクロの取り扱い~使用例~type=2について
使用例
さて、以上の説明はわかりにくいと思いますので、例を使って具体的に説明しましょう。たとえば、このマニュアルのインデックスファイルの冒頭数行は次のようになっています。
k01.txt:クイックガイド:クイックガイド : :0 :クイック:
:イントロダクション:イントロダクション : :0
k02.txt:基本コンセプト:基本コンセプト :2 :1 : :
k03.txt:動作の仕組み :動作の仕組み :2 :1 : :
:チュートリアル': 初級篇:チュートリアル': 初級篇: :0 :
k04.txt:ヘッダとフッタ:ヘッダとフッタ :5 :1 : :
k05.txt:本文ファイル:本文ファイル :5 :1 : :
k06.txt:目次ファイル:目次ファイル :5 :1 : :
k07.txt:インデックスファイルの自動生成:インデックスファイルの自動生成:5 :1::
ルートは1、2、5行目です。1行目は、ブランチを持っていませんので、短いファイルをつくるときと同じ要領で作成されます。2行目は、3行目、4行目をブランチとして従えています。しかし、2行目の第1フィールドは空文字列になっており、ブランチのなかで第1フィールドが空になっていない最初の行は3行目です。そのため、$all_oのこの部分に該当するところは、次のように展開されます。
<A HREF="k02.html">イントロダクション</A>
そして$all_iのこの部分に該当するところは、次のように展開されます。
<A HREF="#k02.txt">基本コンセプト</A>-<A HREF="#k03.txt">動作の仕組み</A>
中くらいのサイズのファイル~擬似マクロの取り扱い~使用例~type=2について
type=2についての補足
今までの説明からもおわかりいただけるように、すべての行の参照番号フィールドが空になっているインデックスファイルから作成されるHTMLファイル群は、type=1を指定したときに作成されるファイル群と同じです。しかし、すべての行の参照番号フィールドが1になっているインデックスファイルから作成されるHTMLファイルは、type=2を指定したときに作成されるファイルとは異なります。両者の違いをまとめると次のようになります。
以上からもわかるように、1個の長いファイルを作るときには、すべての行の参照番号フィールドに1をセットするより、type=2を指定した方がよいでしょう。
ホームページ
|目次|
クイックガイド|イントロダクション|チュートリアル: 初級篇|チュートリアル: 中級篇|チュートリアル: 上級篇|付録|その他
カテゴリ-中くらいのサイズのファイル
mail: nyagao@longtail.co.jp