i-mode
Kenshi's Page
ホームMacintoshOpenGLThinkPadJavaダイビング水中デジカメ


インデックス

表紙

i-mode版

作者紹介

使い方
解説
HP管理
i-mode対応
CSS
待受画像
冗談と嘘

実話

今週のツッコミ

映画

リンク

ダウンロード

make で簡単、ホームページ管理

私のホームページを見ていると分かるのですが、全てのページが統一されたコンテンツによって構成されています。つまり、全てのページが、

という決まった要素から成り立っているということです。またページのカテゴリ(OS/2 , OpenGL , ThinkPad等)によって、ロゴとインデックスの組みが変化しているのも分かると思います。こういった構成のホームページを簡単に管理する方法として、私は make コマンドを用いた方法をとっています。

なぜフレームを使わないのか

確かに、フレームを使えばそれぞれの要素を別々のフレームに表示することで管理の問題は解決できます。しかし、フレームには以下のような問題があります。

画面が狭くなる
フレームを用いると、いつも見えていても仕方のないもの(本文以外の全て、ロゴや脚注は特に)が常に見えるようになってしまい、限られた表示画面を占有してしまいます。サイトによっては常に見せたいもの(もちろん広告のことです)を別フレームにするといったせこい技を使っている(スポンサーの手前、仕方がないのかもしれませんが)所もあります。
処理が重くなる
フレームを用いたページは展開の負荷が重くなるようです。ただでさえ快適とはいえない現状のインターネットで、さらに負荷をかけることはしたくありません。
見られない人もいる
フレームに対応していないブラウザを使っている人も世の中には存在しています。私も世の中にこれほどフレームありのページが氾濫していなければ、不安定な Netscape for OS/2 をやめて、OS/2 添付の Web Explorer を使うところです。lynx(テキストベースのブラウザ)などは軽快な動作のために愛用している人もいるそうです。
テーブルもだめ?
書いているうちに、上記の理由はテーブルについてもあてはまるような気がしてきました。評判が悪ければ考え直します。

そこで、私はフレームを用いずにホームページを上手に管理する方法を考えました。

make コマンド

make コマンドというのは C 言語などでプログラミングをした事のある人なら知っていると思いますが、プログラムの実行ファイル、オブジェクトファイル、ソースファイルなどを管理するためのツールです。ソースファイルが変更された時に、指定の手順に従ってターゲットファイル(プログラムの実行ファイル等)を更新(コンパイル・リンク)するのが主な機能です。UNIX 系の OS ( FreeBSD , Linux 等 ) ならフリーで手に入りますし、OS/2 でもここからフリーで取ってこれます。最近導入した BeOS には標準でついてきました。Windovvs は、、、探してみたのですが見つかりませんでした(Cygnus には無かった)Cygnus の Cygwin を入れると使えます(追加されたらしい)。また、C言語等のパッケージには必ずといってよいほど付属してきます。

ホームページ管理の手順

実際のホームページ管理は以下のような手順で行っています。

要素ごとに別々のソースファイルを用意する

私は便宜上、1つのページを以下のような8種類のソースファイルに分割しています。

これらのソースファイルはホームページビルダーでテンプレートを作成した後でそれを分割・保存して作成しました。

HTML ファイルを構築するバッチ処理を作成する

と言っても、中身はソースファイルを順番に出力していくだけで、内容を切りかえる部分(私のページの場合はロゴとインデックス本体と本文)をコマンドの引数として渡せるようにしただけのものです。

type head.txt
type %1
type but.txt
type frhead.txt
type %2
type frtail.txt
type %3
type tail.txt

ここで引数 %1,%2,%3 はそれぞれロゴ、インデックス本体、本文のソースファイル名を与えます。例えばこのコマンドをコマンドラインから

[C:\] build.cmd  logo.txt  frbody.txt  main.txt  >  index.html

というように実行してやるだけで、正しい HTML のファイルができます。また、実際に私がしているように、ホームページビルダーで文書を書いて、その HTML ファイルを本文として組み込みたいというような場合は、HTML ファイルから本文を抜き出すような処理をする必要があります。こういった処理はテキスト処理コマンド(awk 等)で簡単に実現できます。

Makefile を書く

make コマンドは実行時に Makefile というファイルを読み込み、その中に書かれているターゲットファイルとソースファイルの依存関係を参照して、更新を行います。そこで、ソースファイルを置いたディレクトリに Makefile をつくる必要があります。Makefile の構文は統一された規格が無いようですが、書く内容は大体同じで、

を所定の構文に従って書きます。私の使っている nmake (IBM の make)では次のように書きます。

all : index.html

index.html: \
            head.txt \
            logo.txt \
            but.txt \
            frhead.txt \
            frbody.txt \
            frtail.txt \
            main.txt \
            tail.txt
            build  logo.txt  frboty.txt  main.txt  > index.html

まず、all: の後にターゲットファイルを列挙します。次にそれぞれのターゲットファイルに対して、ソースファイルを列挙します。ここで、"\" は行の継続、つまりソースファイルを列挙している行が次の行に続いていることを示しています(本当は1行に全てのソースファイルを列挙する事になっている)。ソースファイルの次の行にはソースファイルからターゲットファイルを構築するコマンドを書きます。そして、これらのファイル(ソースファイルと Makefile)のあるディレクトリで、

[C:\home] nmake

と実行してやると、ソースファイルのどれかが変更される度に対応したコマンドが呼び出されて、ターゲットの HTML ファイルが正しく更新されるというわけです。

以上が私がこのページを管理している方法です。少し凝った造りのページを手間をかけずに管理する方法として、参考になれば幸いです。


コンテンツ: [ホーム] [Macintosh] [OpenGL] [ThinkPad] [Java] [ダイビング] [水中デジカメ]

このページについてのご質問はこちらへどうぞ。
このページに用いられている3Dのロゴやボタンは全てGLlogoによってレンダリングされたものです。
このページはリンクフリーです。
著作権等についてはこちらをどうぞ。