MakeWeb 4.0はまだα版です。 ここに書かれた内容は大幅に変わる可能性があります。 MakeWebやこのマニュアルに関するご意見は 結城浩 hyuki@hyuki.com までお送りください。 このHTMLファイルを作成したのは Fri Apr 13 17:48:45 2001です。
MakeWebはテキストファイルからHTMLファイルを生成するツールです。
MakeWebは入力ファイルを読込み、 適当な変換をほどこした後、HTMLファイルを出力します。 通常、MakeWebは入力ファイルの内容をそのまま出力ファイルにコピーしますが、 MakeWebの命令(コマンド)に出会った場合には、命令に応じた処理を行います。
もともとMakeWebは、作者である結城浩が自分のホームページのメンテナンスを行うために開発したもので、 1996年から少しずつ成長しています。 最初はC言語で作っていましたが、Version 2.0からPerl言語に移行しました。
Version 4.0は、以下の点にポイントをおいてゼロから書き直しました。
変更や配付については、 「使用・変更・配付上の注意」 を参照してください。
MakeWebには、HTMLのタグに変換されるコマンドがあります。
短くて書きやすいMakeWebのコマンドを使って、 面倒なHTMLタグを書かずにHTMLファイルを生成することができます。
MakeWebの-include
コマンドを使うと、
C言語の#include
のように、ファイル中に別ファイルを挿入することができます。
この機能を使うと、共通のヘッダ、フッタ、メニューバーなどを持たせるのが容易になります。 また別ファイルに自分のアドレスや住所、著作権表記などを用意してインクルードすれば、 ページ記述の手間を省くことができます。
MakeWebはセミコロン(;
)で始まる行はコメントとして扱われ、
その内容はHTMLファイルには一切出力されません。
ユーザは自分で新たなコマンドを作成することができます。
複雑なURLをあちこちのHTMLファイルに直接埋め込むと、 後の変更が困難になる上、入力ミスやコピーミスが生じる恐れがあります。 そのURL置換されるコマンドを MakeWeb の入力ファイル上に定義しておけば、 埋め込む場所は一個所で済むようになります。
MakeWebは、結城浩の「MakeWebのページ 」から無料でダウンロードすることができます。
以下にファイル一覧を示します。
makeweb.pl MakeWeb本体 define.txt 定義ファイル makeweb.txt ユーザーズマニュアル(MakeWebの入力ファイル) makeweb.html ユーザーズマニュアル(HTML) perl makeweb.pl makeweb.txt makeweb.html とするとmakeweb.htmlができる sample.txt サンプル(MakeWebの入力ファイル) sample.html サンプル(HTML) perl makeweb.pl sample.txt sample.html とするとsample.htmlができる quickref.txt クイックリファレンス(perldoc) perldoc makeweb.pl > quickref.txt とするとquickref.txtができる process.jpg ファイルの関係図 makeweb.css スタイルシート makefile メイクファイル例
上記のうち、実行に最低限必要なファイルは makeweb.pl のみです。 ただし実際には、ゼロから入力ファイルを作るのは難しいので、 sample.txt, makeweb.txt, define.txtなどを 自分用に修正して使うのがよいでしょう。
MakeWebは以下の環境で動作確認しました。
MakeWebのインストールは以下の手順で行います。
pl2bat makeweb.pl
でmakeweb.bat
を作る
makeweb.bat
を環境変数PATH
の通っているところに移動する。
MakeWeb用のディレクトリ中のファイルをすべて削除してください。
MakeWebは以下のように起動します。
perl makeweb.pl input.txt output.html
ここでinput.txt
はMakeWebの入力ファイルであり、
output.html
は出力ファイル(HTML)です。
sample.txt
とsample.html
ファイル同梱のファイル
sample.txt
は、入力ファイルのサンプルです。
MakeWebにこのファイルを与えると、
sample.html
が作られます。
Webブラウザやテキストエディタを使ってこの2つのファイルを比較すると、
MakeWebがどんなことをやっているのかがわかります。
また、sample.txt
を変更してからsample.html
を作り直してみるのもよいでしょう。
sample.txt
はdefine.txt
ファイルを利用しています。
これらのファイルは自由に変更してお試し下さい。
sample.html
の作り方以下のように入力すると、
sample.txt
からsample.html
を作ることができます。
perl makeweb.pl sample.txt sample.html
以下に、sample.html
を表示するための、ファイルの関係図を示します。
サンプルファイルsample.txt
を読めば、
主なコマンドの使い方はわかるようになっていますが、
ここでは主なコマンドの使い方を紹介します。
全てのコマンドは、
quickref.txt
を参照してください。
MakeWebは入力ファイルを一行ごとに処理していきます。 ここでいう一行とは、画面上の物理的な一行ではなく、 改行までの論理的な一行です。
MakeWebのコマンドは、通常行の先頭から開始します。
行頭にセミコロン(;
)がある行は無視されます。
例えば、以下のように書くと「;コメントです」の部分は出力されません。
;コメントです
行頭に不等号(>
)がある行はリンクを表します。
その次の行にURLを書きます。例えば、
>私のホームページ http://www.hyuki.com/
と記述した場合、
私のホームページ
というリンクになります。
行頭にアスタリスク(*
)がある行はセクションのタイトルになります。
セクションのタイトルは、コマンド-contents
を使ってまとめることができます。
また、セクションの終わりには、そのページの先頭へのリンクが自動的に挿入されます。
以下のように書きます。-contents
はどこにあってもかまいません。
-contents *セクション1 *セクション2 *セクション3
例えば、このマニュアルの
目次
は、-contents
コマンドを使って作っています。
行頭にマイナスとアスタリスク(-*
)がある行はサブセクションのタイトルになります。
サブセクションのタイトルは、コマンド-detailcontents
を使ってまとめることができます。
以下のように書きます。-detailcontents
はどこにあってもかまいません。
-detailcontents *セクション1 -*セクション1.1 *セクション2 -*セクション2.1 -*セクション2.2 *セクション3 -*セクション3.1 -*セクション3.2 -*セクション3.3
例えば、このマニュアルの
詳細目次
は、-detailcontents
コマンドを使って作っています。
以下のように書くと番号なしの箇条書きになります。
-[ - 箇条書き - 箇条書き - 箇条書き -]
以下のように書くと番号つきの箇条書きになります。
-< - 箇条書き - 箇条書き - 箇条書き ->
行頭に感嘆符(!
)がある行は強調になります。例えば、
ここで !強調 をしたいです。
ここで 強調 をしたいです。
行頭に縦棒(|
)がある行は、特殊な置換を行いません。
コマンドそのものを記述したいときに用います。
|--(
次のようにすると新しいコマンド-mymail
を定義します。
-mymail=hyuki@hyuki.com
この定義を行っただけでは何も出力されません。
この定義以降、-mymail
を使うと、定義の内容が展開されます。
-mymail=hyuki@hyuki.com ... 私のメールアドレスは、 -mymail です。<-mymail>あてにメールくださいね。
... 私のメールアドレスは、 hyuki@hyuki.com です。hyuki@hyuki.comあてにメールくださいね。
ここでは2個所に展開されています。
行の途中で展開させたいときには、
<
-mymail
>
という擬似タグを使います。
複数行にわたるコマンドを定義する場合には、次のように書きます。
-begin=download -( MakeWebをダウンロードしたいときには、 >MakeWeb Home Page http://www.hyuki.com/makeweb/ からどうぞ。 -) -end=download
ここでは、-download
コマンドを定義しています。
-download
以下のように展開されます。
MakeWebをダウンロードしたいときには、 MakeWeb Home Page からどうぞ。
別のファイルの内容を挿入します。
以下のようにするとファイルdefine.txt
を挿入します。
-include=define.txt
MakeWebは何らかの誤りを見つけるとエラーメッセージを出力して終了します。
例えば、以下のような入力があったとします。
-( ... -)
の対応関係がおかしくなっています。
-( こんにちは。 -(
このとき、MakeWebは次のようなエラーメッセージを出力して終了します。
makeweb.txt(3):Missing -).
これは入力ファイルmakeweb.txt
の3行目を処理している最中に、
-)
が不足していることを検出したという意味です。
pl2bat
コマンドを使ってmakeweb.pl
からmakeweb.bat
を作っておくとよい。
makeweb.css
, define.txt
, sample.txt
をコピーして、それを修正してページデザインしてみるとよい。
makeweb.css
を修正する。
define.txt
を修正する。
define.txt
に-yourcommand=content
の形式を追加して<-
yourcommand>
を使う。
define.txt
に-begin=yourcommand ... -end=yourcommand
の形式を追加して、<
-yourcommand>
を使う。
makeweb.pl
にsub cmd_yourcommand { ... }
を追加して<{
yourcommand}>
を使う。
define.txt
に入れる。
MakeWebのすべての組み込みコマンドは対応するフックコマンド(hook command)を持っています。
これは、組み込みコマンドの振る舞いをユーザが簡単に変更できるようにするための仕組みです。
例えば、以下では組み込みコマンド-( ... -)
が使われています。
-( こんにちは。 -)
MakeWebは、上記の内容を、フックコマンドを使っていったん次のように変換します。
<-pbegin> こんにちは。 <-pend>
ここで、
組み込みコマンド-(
にはフックコマンド-pbegin
が対応し、
組み込みコマンド-)
にはフックコマンド-pend
が対応しています。
この後、MakeWebは通常のコマンド展開と同じ処理によって、 次のように変換します。
<p> こんにちは。 </p>
ですから、
フックコマンド-pbegin
と-pend
を自分の入力ファイルや定義ファイル中で別定義してしまえば、
組み込みコマンド-( ... -)
の振る舞いを変えることができます。
組み込みコマンドとフックコマンドの対応についてはmakeweb.pl
内部を参照してください。
---( ... ---)
や===( ... ===)
を使うとよい。
そのままカット&ペーストできるから。
たくさんの機能がなくなっていますが、 これらの多くはスタイルシートを活用したよりスマートな解決方法を現在検討中です。
-define
はなくなりました。
-autoinsert
はなくなりました。
-color
はなくなりました。別ファイルで提供?
+
を使った箇条書きはなくなりました。
-
>>を使ったリンクはなくなりました。
$
の機能はなくなりました。
-ball
の機能はなくなりました。
-background
の機能はなくなりました。
-name
の機能はなくなりました。
-usenumber
の機能はなくなりました。
-usetilde
の機能はなくなりました。
-if html
の機能はなくなりました。
-if latex
の機能はなくなりました。
-endif
の機能はなくなりました。
MakeWebに関するバグ報告・要望・意見などは大歓迎します。 hyuki@hyuki.comへお送りください。
このプログラムはフリーソフトです。 Perl自身と同じ条件で、再配布・修正可能です。
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
gold
を追加。=>
コマンドの記述追加
-if ... -endif
を追加。
MakeWebのユーザに感謝します。 発表以来、数多くのユーザから献身的なテストとレポートをいただきました。 ここに深く感謝します。