MakeWeb 4.0 (α3)

ユーザーズマニュアル

結城 浩

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は、以下の点にポイントをおいてゼロから書き直しました。

変更や配付については、 「使用・変更・配付上の注意」 を参照してください。

主な機能

正しいHTMLのタグを自動生成

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のインストールは以下の手順で行います。

  1. Perlをインストールします。
  2. MakeWeb用のディレクトリを作り、そこにMakeWebのファイル一式を展開します。
  3. (Windowsの場合)

アンインストール手順

MakeWeb用のディレクトリ中のファイルをすべて削除してください。

起動(HTML)

MakeWebは以下のように起動します。

perl makeweb.pl input.txt output.html

ここでinput.txtはMakeWebの入力ファイルであり、 output.htmlは出力ファイル(HTML)です。

サンプル

sample.txtsample.htmlファイル

同梱のファイル sample.txt は、入力ファイルのサンプルです。 MakeWebにこのファイルを与えると、 sample.html が作られます。

Webブラウザやテキストエディタを使ってこの2つのファイルを比較すると、 MakeWebがどんなことをやっているのかがわかります。 また、sample.txtを変更してからsample.htmlを作り直してみるのもよいでしょう。 sample.txtdefine.txtファイルを利用しています。 これらのファイルは自由に変更してお試し下さい。

sample.htmlの作り方

以下のように入力すると、 sample.txtからsample.htmlを作ることができます。

perl makeweb.pl sample.txt sample.html

以下に、sample.htmlを表示するための、ファイルの関係図を示します。

[ファイルの関係図]

主なコマンドの紹介

サンプルファイルsample.txtを読めば、 主なコマンドの使い方はわかるようになっていますが、 ここでは主なコマンドの使い方を紹介します。 全てのコマンドは、 quickref.txt を参照してください。

MakeWebは入力ファイルを一行ごとに処理していきます。 ここでいう一行とは、画面上の物理的な一行ではなく、 改行までの論理的な一行です。

MakeWebのコマンドは、通常行の先頭から開始します。

コメント

行頭にセミコロン(;)がある行は無視されます。 例えば、以下のように書くと「;コメントです」の部分は出力されません。

;コメントです

リンク(1)

行頭に不等号(>)がある行はリンクを表します。 その次の行に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コマンドを使って作っています。

番号なしの箇条書き

以下のように書くと番号なしの箇条書きになります。

-[
- 箇条書き
- 箇条書き
- 箇条書き
-]

番号つきの箇条書き

以下のように書くと番号つきの箇条書きになります。

-<
- 箇条書き
- 箇条書き
- 箇条書き
->
  1. 箇条書き
  2. 箇条書き
  3. 箇条書き

強調

行頭に感嘆符(!)がある行は強調になります。例えば、

ここで
!強調
をしたいです。

ここで 強調 をしたいです。

変換の抑止

行頭に縦棒(|)がある行は、特殊な置換を行いません。 コマンドそのものを記述したいときに用います。

|--(

コマンドの定義(1)

次のようにすると新しいコマンド-mymailを定義します。

-mymail=hyuki@hyuki.com

この定義を行っただけでは何も出力されません。 この定義以降、-mymailを使うと、定義の内容が展開されます。

-mymail=hyuki@hyuki.com
...
私のメールアドレスは、
-mymail
です。<-mymail>あてにメールくださいね。
...
私のメールアドレスは、
hyuki@hyuki.com
です。hyuki@hyuki.comあてにメールくださいね。

ここでは2個所に展開されています。 行の途中で展開させたいときには、 <-mymail> という擬似タグを使います。

コマンドの定義(2)

複数行にわたるコマンドを定義する場合には、次のように書きます。

-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のすべての組み込みコマンドは対応するフックコマンド(hook command)を持っています。 これは、組み込みコマンドの振る舞いをユーザが簡単に変更できるようにするための仕組みです。 例えば、以下では組み込みコマンド-( ... -)が使われています。

-(
こんにちは。
-)

MakeWebは、上記の内容を、フックコマンドを使っていったん次のように変換します。

<-pbegin>
こんにちは。
<-pend>

ここで、 組み込みコマンド-(にはフックコマンド-pbeginが対応し、 組み込みコマンド-)にはフックコマンド-pendが対応しています。

この後、MakeWebは通常のコマンド展開と同じ処理によって、 次のように変換します。

<p>
こんにちは。
</p>

ですから、 フックコマンド-pbegin-pendを自分の入力ファイルや定義ファイル中で別定義してしまえば、 組み込みコマンド-( ... -)の振る舞いを変えることができます。

組み込みコマンドとフックコマンドの対応についてはmakeweb.pl内部を参照してください。

その他

MakeWeb Version 3との相違点

たくさんの機能がなくなっていますが、 これらの多くはスタイルシートを活用したよりスマートな解決方法を現在検討中です。

バグ報告など

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.

作成履歴

謝辞

MakeWebのユーザに感謝します。 発表以来、数多くのユーザから献身的なテストとレポートをいただきました。 ここに深く感謝します。

関連リンク集