ページを簡単に作るためのスクリプトです。設置した後は、テキストファイルをサーバーにアップロードすることで新しいページを作れます。
YYYYMMDD_N.htmlというURLへアクセスがあった場合、YYYYMMDD_N.txtというテキストファイルを元にページが出力されます(YYYYMMDDは年月日、Nは番号を想定していますが、使い方は自由です)。
次のような特徴があります。
サーバーに、適切なパーミッションでファイルをアップロードします。
ファイル 説明
doc/
index.cgi WebDocs本体
conf.cgi 設定用ファイル
style.css
.htaccess RewriteModeを使うときに必要
conf.cgiの内容を自分の環境にあわせて設定します。
# データファイル用のディレクトリ
# 通常はこのままでいいでしょう
@data_path = ('./');
# ページのパス
# ページ上部に表示される”みちしるべ”
# ページ名, URL, … というようにページ名とURLを対で記述
@page_path = ('uttsu.com', '/');
# フッター。ページ下部に表示。
$footer = 'Copyright (C) Takashi Utsunomiya. All Rights Reserved.';
原稿ファイルはヘッダ部とボディ部にわかれています。ヘッダ部、改行だけの行、ボディ部となります。
ヘッダ部
ヘッダ部
ボディ部
ボディ部
:
ヘッダ部では、ページごとに個別の設定を記述できます。
項目名: 内容
という書式で指定します。次の項目が有効です。
ボディ部では、文書装飾のための記号が使えます。記号には次のようなものがあります。
文書装飾の機能は「WebNote」のものと同じです。表示例などはそちらのページに書いてあるので、参照してください。
実はこのページもWebDocsによって出力されています。このページの原稿ファイルは次のようになっています(途中まで抜粋)。
WebDocs
Date: 2003.04.15掲載, 2003.05.06更新
ページを簡単に作るためのスクリプトです。設置した後は、テキストファイルをサーバーにアップロードすることで新しいページを作れます。
内容と特徴
YYYYMMDD_N.htmlというURLへアクセスがあった場合、YYYYMMDD_N.txtというテキストファイルを元にページが出力されます。YYYYMMDDは年月日、Nは番号を想定していますが、使い方は自由です。
次のような特徴があります。
・なるべくシンプルに、簡単に設置・運用できるように作りました。
・原稿のテキストファイルは、指定したディレクトリ以下から再帰的に検索されます。サブディレクトリを作り、原稿ファイルの整理をできます(表示には影響しません)。
・独自の文章装飾記号や、ページごとに個別の設定をする機能があります。
ダウンロード
・’’’<@WebDocs 1.17=/r/cgi/webdocs.lzh>’’’
ソース
・<@WebDocs 1.17=/20030415_2>
※表示の都合で一部半角文字を全角にしています。
原稿ファイル(YYYYMMDD_N.txt)は、conf.cgiで設定したディレクトリ以下から再帰的に検索されるため、サブディレクトリを作って原稿ファイルを整理することができます。
たとえば、未分類の文書以外にまとまった書評のコーナーを作りたいときは、次のようなディレクトリ構成が考えられます。
ファイル 説明
doc/
index.cgiなど WebDoc関連のファイル
:
20030401_1.txt 未分類の文書
:
2002/ 過去の文書
20021210_1.txt
:
review/ 書評コーナー用のディレクトリ
20030415_1.txt 書評のトップページ
20030415_2.txt 『本1』
20030416_1.txt 『本2』
dir.conf.cgi ディレクトリ用の設定ファイル
ここで、ディレクトリが異なっても、同名のファイル名は使えません。もし同名のファイル名があるときは、ページにアクセスした際にエラーが表示されます。
ディレクトリ内に「dir.conf.cgi」というファイルを作り、ディレクトリ内の原稿ファイルにまとめて共通の設定を行うことができます。「原稿ファイルの書式」の「ヘッダ部」の設定を記述できます(タイトルはのぞきます。また、各原稿ファイル中の設定が優先されます)。これを利用することで、コーナーのページすべてに「uttsu.com > 書評 >」のような”みちしるべ”をつけたりできます。
原稿ファイルは日付をベースにした名前のため、ファイル名から内容を推測できず不便ですが、ファイル名中に[〜]で囲ってコメントをつけるとわかりやすくなります。[〜]はページの表示に影響をあたえないので、文書のタイトルなどをつけておくと便利でしょう。次のようなファイル名になります。
20030415_1[WebDocの説明].txt
「DocTitle」は自動的に文書のタイトルをファイル名に埋め込んでくれるスクリプトです。
各HTMLドキュメントのURLを、doc/?YYYYMMDD_Nというのではなく、普通のHTMLファイルのようにdoc/YYYYMMDD_N.htmlとしたい場合は、.htaccessファイルに次のように記述します。
RewriteEngine On
RewriteRule ^([0-9]{8}_[0-9]+)\.html$ index.cgi?$1
これで、doc/YYYYMMDD_N.htmlというURLでページにアクセスできます。
CGIの使えないサーバーのために、ローカルの環境(自分のパソコン)で原稿ファイルをHTMLファイルに変換するための機能です。使用するにはお使いのPCにPerlがインストールされている必要があります。
プロンプト(Windowsの場合はコマンドプロンプト)から、次のように入力します。
perl index.cgi 出力先ディレクトリ
「出力先ディレクトリ」には、HTMLファイルを出力するディレクトリを指定します。無指定の場合はカレントディレクトリに出力されます。また、原稿ファイルはconf.cgiで設定したディレクトリ中から探されます(CGI動作時と同じです)。
conf.cgi中の$page_urlを変更することにより、出力されるHTMLファイルのファイル名のパターンを指定できます。例えば、「yyyymmdd_n.html」というファイル名で出力したい場合は、次のように設定しておきます。$idは各ファイル名のyyyymmdd_nに置き換えられます。
my $page_url = '$id.html';
プロンプトを起動しなくても更新できるように、バッチファイルなどを用意しておくと便利です。Windowsの場合は、例えば次のような内容のファイルを用意し、拡張子を .bat にして保存しておけば、このファイルをダブルクリックすることでHTMLへの変換を行えます。
convert.bat:
perl index.cgi 出力先ディレクトリ
プログラム作成時につけていたメモですが……。
2003.07.21 ver 1.19
- 引用個所(<<〜>>中)のURLが自動リンクされないのを修正
2003.07.18 ver 1.18
- staticモードを追加
2003.04.26 ver 1.17
- <<〜>>, <%〜%>, <pre>〜</pre>で、次の行をくっつけてしまうbugをfix
2003.04.17 ver 1.16
- 行末の文章結合記号 \ を追加
- head部に AddPath 項目を追加
2003.04.15 ver 1.15
- HTMLへの変換部 改良
2003.04.12 ver 1.14
- <table>出力部変更
- <%img 〜>部修正
2003.04.06 ver 1.13
- 表示関係debug
- ディレクトリごとの設定ファイル(dir.conf.cgi)を採用
2003.04.05 ver 1.12
- 本体共有モード廃止
- text->html変換ルーチンをWebNoteのものを使用
- <title>ヘッダにPath情報を出力しないようにした
- 同名の原稿ファイルが複数ある場合にエラーを出力するようにした
2003.01.28 ver 1.11
- debug
- ヘッダにDate属性追加。ページ末に表示
2003.01.27 ver 1.10
- 複数のdapa_pathに対応
- ''.*?''と'''.*?'''をそれぞれ<em>と<strong>に
2003.01.23 ver 1.09
- ファイル名 _なしも有効に
- 画像展開コマンドを追加 ^<<img URL>$
2003.01.22 ver 1.08
- ファイル名は \d{8,8}_.*だけを有効に。_がないのは無効にした
- option に Path 加えた
- option に Menu 加えた
- option に Theme 加えた
2003.01.19 ver 1.07
- debug
2003.01.11 ver 1.06
- Last-Modifiedヘッダを出力するようにした
2003.01.10 ver 1.05
- 文書がない場合にステータス404を返すようにした
2003.01.09 ver 1.04
- Option機能追加(Title, SubTitle, MakeIndex)
- Title, SubTitleはヘッダ中でそれぞれ、^.*、^ .*のように指定。Title:などは使わない。
2003.01.07 ver 1.03
- bug fix
2002.12.28 ver 1.02
- 原稿ファイル名に[]内にコメントを入れて付けられるようにした
2002.12.25 ver 1.01
- トップページを表示しないようにした
2002.10.25 ver 1.00
- 作成開始
- 完成