kinclude - 気分はインクルード

CONTENTS

最新版

概要

アーカイブ付属の解説テキスト: kinclude.txt 直

例えばC言語には#includeがありますが、このマクロは、HTMLファイルなど、インクルードを使用できないテキストファイルに、擬似的なインクルードを提供するものです。

例えば、ファイル中に、

// @include xxx.inc

という行を見つけると、それを次のように展開します。

// @include xxx.inc
xxx.incの内容貼り付け
// @edulcni xxx.inc

すでに展開されている場合は、再度(上記の例で言うと)xxx.incを読み直し、最新に展開し直します。このマクロを実行するときは、カーソルはどこにあっても構いません。

@includeでインクルード対象とするファイルは、特に拡張子を ".inc" にする必要はありません。".mac" や ".html" といった任意の拡張子のファイルで構いません。ファイルは絶対パスで指定しても、相対パスで指定しても構いません。さらに、ファイル中に、いくつ@includeがあっても構いません。

パスを含めて指定するときは、フォルダの区切りは "\\" となることに注意してください。例えば、

  // @include common\\xxx.inc

というように指定します。

ちなみに、このマクロ自身も、自分自身の機能を使用して、共通定数や共通サブルーチンを展開して作られています。

なお、@includeは1行コメント形式*1であれば、“//”スタイルでなくとも構いません。すなわち、次のようなスタイルでも構いません。

<!-- @include xxx.html -->

ちなみに、本サイト『発室』では、ほぼ全ページに渡って、このマクロを使用して書かれています。具体的には、各ページに共通のナビゲータ部分(ヘッダ部とフッタ部)に使用しています。

具体例

例えば、HTMLファイルを作成する際、同じ記述を複数のページに書く必要があり、その部分は更新される可能性があるものと仮定します。このとき、同じ修正を複数のページ(複数の箇所)に行い続けていくのは疲れますし、また修正ミスや漏れが発生する可能性があります。

このような場合、まず最初に(後からでも良いですが)次のような共通の記述部分を別ファイルに作成します。下図ではfooter.htmlという名前で作成しています。

インクルードファイル

そして、HTMLファイルの本体を作成し、共通の記述を挿入したい部分に、下図のように@includeを埋め込みます。

展開前(kinclude.mac実行前)

これで本マクロkinclude.macを実行すると、下図のように共通部分(footer.html)の内容が展開されます。

展開後(kinclude.mac実行後)

この後、footer.htmlを更新した場合、再度本マクロkinclude.macをかけ直せば、ワンタッチで最新状態に反映させることができます。

制限事項

入れ子にすることはできません。すなわち、次のような記述はできません。

// @include foo.inc
// @include bar.inc
// @edulcni foo.inc

更新履歴

Ver.1.00 2006/3/26
田楽DLLを使用しないように書き直した。

Ver.0.01 2006/1/29
暫定初版。とりあえず速攻実装。

*1:このマクロ自身は、特にコメント形式で記述しなければならないという制限はありませんが、用途から考えてコメント形式で記述する場面しかないと思います。