uttsu.com > CGI/SSI >

WebDocs

ページを簡単に作るためのスクリプトです。設置した後は、テキストファイルをサーバーにアップロードすることで新しいページを作れます。

内容と特徴

YYYYMMDD_N.htmlというURLへアクセスがあった場合、YYYYMMDD_N.txtというテキストファイルを元にページが出力されます(YYYYMMDDは年月日、Nは番号を想定していますが、使い方は自由です)。

次のような特徴があります。

ダウンロード

使い方

サーバーに、適切なパーミッションでファイルをアップロードします。

ファイル            説明
doc/
    index.cgi       WebDocs本体
    conf.cgi        設定用ファイル
    style.css
    .htaccess       RewriteModeを使うときに必要

conf.cgiの設定

conf.cgiの内容を自分の環境にあわせて設定します。

# データファイル用のディレクトリ
# 通常はこのままでいいでしょう
@data_path = ('./');

# ページのパス
# ページ上部に表示される”みちしるべ”
# ページ名, URL, … というようにページ名とURLを対で記述
@page_path = ('uttsu.com', '/');

# フッター。ページ下部に表示。
$footer = 'Copyright (C) Takashi Utsunomiya. All Rights Reserved.';

原稿ファイルの書式

原稿ファイルはヘッダ部とボディ部にわかれています。ヘッダ部、改行だけの行、ボディ部となります。

ヘッダ部
ヘッダ部

ボディ部
ボディ部
    :

ヘッダ部

ヘッダ部では、ページごとに個別の設定を記述できます。

項目名: 内容

という書式で指定します。次の項目が有効です。

タイトル
1行目の内容はページのタイトルになります。「項目名:内容」という書式をとらず、タイトルのみ(「内容」のみ)を記述します。タイトルのみ必須の項目です
Path
「Path: ページ名, URL, ページ名, URL, …」 とページ名とURLを対で指定します。conf.cgiで指定したPath情報に加え、ページ上部に表示されます。
Date
「Date: 2003.04.15掲載」 などと指定します。ページ下部に表示されます。

ボディ部

ボディ部では、文書装飾のための記号が使えます。記号には次のようなものがあります。

見出し
半角スペースで始まる行は見出しとなります。
小見出し
半角スペース2つで始まる行は小見出しとなります。
強調
半角の'(クォーテーション)2つ(’’)、または3つ(’’’)で囲まれた文字は強調されます(例:ここは普通。ここは強調3つで囲めばさらに強調)。
リンク
<@ページ名=URL>(<@、=、>は半角)と書くと、ページ名のようなリンクになります。また、行頭からURLを記述した場合は自動的にURLへのリンクとなります。
箇条書き
行頭から・、-、+、の記号で書き始めると、箇条書きになります。+は番号つきの箇条書きです。
行頭から |項目1 |項目2 … と書くと、表になります。|のあとに半角スペースを書くと項目の見出しになります。
引用
<<〜>>で囲まれた行は引用として装飾されます。
<pre>
<pre>〜</pre>で囲まれた行は、そのままのイメージで出力されます。>などの文字はエスケープされます。
直接記述
<%〜%>で囲まれた行は、エスケープされずにそのまま出力されます。HTMLなどを記述したいときに使います。

文書装飾の機能は「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」は自動的に文書のタイトルをファイル名に埋め込んでくれるスクリプトです。

その他

YYYYMMDD_N.htmlというURLを使うには

各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でページにアクセスできます。

static(静的)モード

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 出力先ディレクトリ

改版履歴

ver 1.22

ver 1.19以前

プログラム作成時につけていたメモですが……。

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
  - 作成開始
  - 完成


Copyright (C) Takashi Utsunomiya. All Rights Reserved.
2003.04.15掲載, 2003.11.04更新