新城@筑波大学情報です。こんにちは。

In article <20040315153041.5308322.-467884308@uranus.interq.or.jp>
        笠原 励(氷炎 雷光風) <cuncuku@uranus.interq.or.jp> writes:
> フレームを使わずに、同一htmlファイル内に
> htmlとCGIによる表示を混在させられるような方法があれば、
> それも使ってみたいとは思います。

単純にやるなら、(固定メニューの) HTML ファイルをopen して、
read して print するという手はあります。最初の <html> や最後
の </html> を削らないといけないかもしれないけれど。最初から
それがないファイルを用意できれば、その方がいいのでしょう。

------------------------------------------------------------
        menu = readfile("menu-body.html")
        html = <<-EOF
<html>
<head>...</head>
<body>
<div id="menu">
#{menu}
</div>
</body>
</html>
        EOF
        print htm
------------------------------------------------------------

一時期、eRuby とか使ったんだけど、結局、要らないことが多いみ
たい。

あと、HTML の方も、直接書くのではなくて、何かマクロプロセッ
サを使う方法があります。私は、m4 というマクロプロセッサを使っ
ています。それには、include というのがあるので、こんな感じで
書けます。
------------------------------------------------------------
<html>
<head>...</head>
<body>
<div id="menu">
include(`menu-body.html')
</div>
</body>
</html>
------------------------------------------------------------
m4 マクロ自体は、C の #define や #include がわかれば、大した
ことはありません。漢字コードを EUC にしておけば、漢字も問題
ないようです。URL なんか、

    Ref(http://www.example.com/,こちら)

こんな感じに書けるので、だいぶ楽です。これを使うにはマクロ定
義で次のようなものをしておきます。

    define(`Ref',`<A HREF="$1">shift($@)</A>')

m4 でなくて cat でもいいんですけど。Makefile にこんな風に書
いておきます。(cat でなくて、perl でも ruby でもいいんですが。)

index.html: head.html menu-body.html tail.html
        cat head.html menu-body.html tail.html > index.html

> フレームを使わずに、同一htmlファイル内に
> htmlとCGIによる表示を混在させられるような方法があれば、
> それも使ってみたいとは思います。

フレームだと、CGIの画面では、その画面しかいじれなくて困る
ことがあります。つまり、CGIの画面で、固定のメニューも含め
て全部いじりたいことがあります。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\