GNSをローカル環境で使うための方法を解説します。ネットワークを介さず、手許のパソコン上で日記ページを出力します。出力されたページをFTPなどの手段で転送することで、日記を公開することができます。

GNSの使用方法は、使用OSにより異なります。GNSは、大きく分けて「Windows」と、*BSDやLinuxなどの「UNIX」の2つのOSに対応しています。

Windowsで使用する場合は、以下をご覧ください。

  1. GNSの動作に必要なツールを導入する(Windows)
  2. GNSを導入する(Windows)
  3. GNSの基本設定をする(Windows)
  4. 日記マスタを書く(Windows)
  5. 日記ページを出力する(Windows)

UNIXで使用する場合は、以下をご覧ください。

  1. GNSの動作に必要なツールを導入する(UNIX)
  2. GNSを導入する(UNIX)
  3. GNSの基本設定をする(UNIX)
  4. 日記マスタを書く(UNIX)
  5. 日記ページを出力する(UNIX)

GNSの動作に必要なツールを導入する(Windows)

Windows環境でGNSを動作させるには、以下のツールが必要です。

ActivePerl
ActivePerlは、Windows上で動作するPerl言語です(Perlは、Perl言語で書かれたプログラムを動かすためのプログラムです。GNSは、その大部分をPerlで書いています)。以下からインストールファイルをダウンロードし、インストールをしてください。
GNSは、ActivePerlのすべてのバージョンでの動作を想定しています。もし特定のバージョンのActivePerlでの動作による不具合を発見した場合は、当方までお知らせいただければ幸いです。
Perlではさまざまな追加モジュールをインストールして使うことができますが、GNSはPerlの追加モジュールの導入の必要はありません。
nkf
nkfは、日本語ファイルの文字コードを変換するツールです。以下からインストールファイルをダウンロードし、インストールをしてください。
GNSは、nkf v2.0以降での動作を想定しています。もし特定のバージョンのnkfでの動作による不具合を発見した場合は、当方までお知らせいただければ幸いです。
テキストエディタ
日記マスタの作成や、GNSの動作設定を行うには、テキストエディタが必要です。GNSの設定ファイルはEUC-JP形式で書かれているので、WZエディタ・秀丸・TeraPad・EmEditorなどの「EUC-JPの編集に対応したテキストエディタ」をご用意ください。

これらの他に、GNS配布パッケージには、再配布可能なjcode.plというツールを組み込んでいます。もし必要であれば、以下からより新しいバージョンのjcode.plをダウンロードし、置き換えてください。

GNSを導入する(Windows)

GNSは、zip版とtgz版の2つの配布形態をとっていますが、中身はどちらも同じです。Windows版の導入では、zip版を例に解説を行います。

ファイルを解凍する
GNSの解凍
▲GNSの解凍
GNSの配布パッケージとなっているファイルを、zipファイル解凍ツールなどを使用して解凍してください。解凍先はどこでも構いませんが、ここでは「マイドキュメント/GNS」を解凍先とします。このフォルダを「GNSフォルダ」と呼びます。
解凍が終了すると、「マイドキュメント/GNS」の下に"gns300"などの名前のフォルダ("300"はバージョン番号で、バージョンにより異なります)が作成されます。これがGNSのプログラムや設定データが入っている部分です。同様に、このフォルダを「GNSプログラムフォルダ」と呼びます。
設定ファイルをコピーする
GNSの基本設定をするためのファイル"config.ph"を作成する必要があります。"config_sample.ph"からコピーして、作成してください。次の項で、この"config.ph"を編集します。
日記マスタ用のフォルダを作成する
日記マスタ用を収めるフォルダを準備する必要があります。「GNSフォルダ」に、"d"という名前のフォルダを作成してください。このフォルダを「日記マスタフォルダ」と呼びます。
デフォルトデータベースをコピーする
GNSは、日記マスタから日記ページを作るためのHTMLテンプレートや、マクロ置換用のデータなどを収めた「デフォルトデータベース」というものを持っています。GNSプログラムフォルダにある"keep"というフォルダがそれです。これは初期データであり、日記マスタフォルダにコピーすることで「ユーザーデータベース」となり、各ユーザーが自由に書き換えることができます。
初めてGNSで日記を書くときは、エクスプローラなどを使って、このフォルダを「日記マスタフォルダ」へコピーしてください。
2回目以降や、GNSをバージョンアップしたときは、この作業をする必要はありません。GNSをバージョンアップしたときでも、これらのデータベースは引き継いで使うことができます。
もしこの作業を行わなくても、「日記ページの出力時」に自動的にデータベースのコピー作業が行われます。バージョンアップなどでデータベースファイルが増えた場合には、コピー先に存在しないファイルのみがコピーされ、すでに存在するファイルが書き換えられてしまうことはありません。
cssファイルをコピーする
GNSは、cssに対応したHTMLファイルを出力します。「[GNSプログラムフォルダ]/style」フォルダに、これらのHTMLに対応したcssファイルセットが収められています。好きなcssファイルを「GNSフォルダ」にコピーして利用してください。
plain ほとんどスタイル指定のないcssファイルです。オリジナルのスタイルを作るときの雛形として使います。
simple デフォルトのスタイル指定が入ったcssファイルです。

GNSの基本設定をする(Windows)

GNSプログラムフォルダには、初期設定となる設定データがすでに入っています。しかし、このままでは日記名や公開先となるURI、連絡先となるメールアドレスなどがあなたのものではありません。まず、基本設定を行う必要があります。

ここでは、最小限の変更についてのみ解説します。ここにない変更部分についての詳細は、「config.phによる設定」をご覧ください。

config.phファイルを作成する
config.phを開く
▲config.phを開く
GNSプログラムフォルダに、"config_sample.ph"という名前のファイルがあります。これが、GNSの基本設定を司る"config.ph"ファイルのサンプルです。"config_sample.ph"をコピーして、"config.ph"を作成してください。
config.phファイルをテキストエディタで開く
config.phを開く
▲config.phを開く
"config.ph"というファイルが、GNSの基本設定を司るファイルです。テキストエディタで、このファイルを開いてください。
このファイルには多くの設定項目がありますが、ここで編集を行う必要があるのは、そのごく一部です。以下、順に編集項目を説明します。
公開URLベース名
# 公開URLベース名
$URLBASENAME = 'http://www.example.net/GNS/';

$URLBASENAME = 'http://www.example.ne.jp/GNS/';
日記を公開するときの、URLのディレクトリ名までの部分を編集します。この例では、公開URLのディレクトリ名「http://www.example.ne.jp/GNS/」フォルダにします。この下に日記ページが置かれます。
ダイジェストファイル名
# ダイジェストファイル名
$DIGESTNAME = 'digestdiary.html';

$DIGESTNAME = 'index.html';
日記を公開するときの、ダイジェストページのURLのファイル名部分を編集します。この例では、ダイジェストページのURLを「index.html」とします。「公開URLベース名」の例と組み合わせると、この日記のダイジェストページのURLは、「http://www.example.ne.jp/GNS/index.html」となります。
日記名
# 日記名
$DIARY_TITLE = 'GNS3による日記';

$DIARY_TITLE = 'だいだい だいありー';
日記の名前を編集します。この例では、「だいだい だいありー」という名前になります。
この項目は、出力される日記のすべてのページに埋め込まれます。
著者名
# 著者名
$DIARY_AUTHOR = 'yourname';

$DIARY_AUTHOR = 'あおい';
日記の著者名を編集します。この例では、「あおい」という名前になります。
この項目は、出力される日記のすべてのページに埋め込まれます。
著者メールアドレス
# 著者メールアドレス
$DIARY_EMAIL = 'yourmail@example.net';

$DIARY_EMAIL = 'aoi@example.ne.jp';
著者宛てのメールアドレスを編集します。この例では、「aoi@example.ne.jp」というアドレスになります。
この項目は、出力される日記のすべてのページに埋め込まれます。
日記の説明
# 日記の説明
$DIARY_DESCRIPTION = 'GNS3で日常を綴っています。';

$DIARY_DESCRIPTION = 'あおいの日々の記録です。';
この日記の簡単な説明文を編集します。この例では、「あおいの日々の記録です。」という説明になります。
この項目は、「RSSファイル」に埋め込まれます。
著作権表記
# 著作権表記
$DIARY_COPYRIGHT = 'Copyright (C)2004 GORRY.';

$DIARY_COPYRIGHT = 'Copyright (C)2004 あおい.';
この日記の著作権表記を編集します。この例では、「Copyright (C)2004 あおい.」という著作権表記となります。
この項目は、「RSSファイル」に埋め込まれます。

以上で、編集は終了です。

日記マスタを書く(Windows)

日記マスタフォルダ
▲日記マスタフォルダ

GNSでは、日記文の記述に特殊なツールを使う必要はありません。基本的には、「1日1ファイルをテキストエディタで記述する」だけです。この、「1日ごとに分けて書かれる個々のファイル」を、GNSでは「日記マスタ」と呼びます。

日記マスタは、「日記マスタフォルダ」(初期設定では"[GNSフォルダ]/d/")に年別にフォルダ(YYYY)を作成し、その下に"MMDD.html"(MMは月、DDは日)というファイル名で認識します。まとめて書くと、"[GNSフォルダ]/d/YYYY/MMDD.html"となります。

拡張子は".html"を使いますが、中身はHTML文法に沿ったファイルではなく、プレーンなテキストファイルとなります。

日記マスタの記述に使う文字コードは、「nkfが受け付けることができる形式」であれば何でもかまいません。ISO-2022-JP・EUC-JP・Shift_JIS・UTF-8を想定していると考えてください。なお、内部的にはEUC-JPに変換して処理しています。このためEUC-JPに変換できない文字コードは、内部的にどのような動作になるかを保証することができません。

ここでは、2004年6月15日の日記を書いてみることにします。ファイル名は、"[GNSフォルダ]/d/2004/0615.html"となります。

@title いか〜
@category 料理

@s
夕飯にイカを買ってくる。さくさくとさばいて、身は刺身、ゲソはにら・キャベツ・豚バラと野菜炒め、ワタとえんぺら・身とゲソの残りで塩辛に。

@s
・・・したはずだったんだが、最後に刺身を盛って食卓へ・・・というところで床へ皿が落下・・・(汗)。
▲日記マスタの例

また、日記マスタフォルダには、ユーザーデータベースフォルダ("[GNSフォルダ]/d/keep/")があります。この中のファイルを書き換えることで、ページの体裁を変更したり、置換できるURIの数やマクロの種類などを増やしたりすることができます。詳細は以下をご覧ください。

日記ページを出力する(Windows)

mkd.batを実行
▲mkd.batを実行

日記マスタを書いたら、それを日記ページに変換します。日記ページに変換するには、GNSプログラムフォルダにある"mkd.bat"を実行します。

今日、あるいは過去3日間以内の「最近の」日記マスタを変換するときは、引数なしで実行することができます。過去の日記マスタを変更し、それを日記ページに再変換したいときは、その日記マスタの日付を引数にします。例えば2004年6月15日の日記マスタを再変換するには、"mkd.bat 2004 06 15"で実行します。

前者の場合は、エクスプローラなどから"mkd.bat"をダブルクリックするだけで変換できます。後者のように引数が必要な場合は、「コマンドプロンプト」を起動するなどしてから、コマンドラインで実行する必要があります。

"mkd.bat"は、以下の3つのファイルを作成します。

ダイジェストページ
引数なしで実行したときは、必ずダイジェストページが作成されます。
日付を指定して実行したときは、「変更範囲がダイジェストページの範囲内にあるとき」に限り、ダイジェストページが作成されます。
ベースページ
指定した日付(指定しなかった場合は最近の)の日記マスタに対応するベースページが作成されます。
RSSファイル
ダイジェストページが作成されるときと同じ条件で、RSSファイルが作成されます。
GNSフォルダに作成された日記ページ
▲GNSフォルダに作成
された日記ページ

インデックスページは、"mkd.bat"では作成されません。代わりに、"mkidx.bat"を実行することで作成されます。

今年の分のインデックスページを作成するときは、引数なしで実行することができます。過去のインデックスページを作成するときは、その年を引数にします。例えば2003年のインデックスページを作成するには、"mkidx.bat 2003"で実行します。

それぞれの日記ページは、GNSフォルダに作成されます。



GNSの動作に必要なツールを導入する(UNIX)

UNIX環境でGNSを動作させるには、以下のツールが必要です。

Perl
Perlは、Perl言語で書かれたプログラムを動かすためのプログラムです。GNSは、その大部分をPerlで書いています。現在のUNIX環境では、すでにPerlがインストール済みであったり、個々のOSの専用パッケージとしてPerlが用意されていることが多いですが、もし必要であれば以下からインストールファイルをダウンロードし、コンパイル・インストールをしてください。
GNSは、バージョン5以上のPerlでの動作を想定しています。もし特定のバージョンのPerlでの動作による不具合を発見した場合は、当方までお知らせいただければ幸いです。
Perlではさまざまな追加モジュールをインストールして使うことができますが、GNSはPerlの追加モジュールの導入の必要はありません。
nkf
nkfは、日本語ファイルの文字コードを変換するツールです。お使いのOSにnkfのパッケージがあればそれを導入、なければ以下からインストールファイルをダウンロードし、コンパイル・インストールをしてください。
GNSは、nkf v2.0以降での動作を想定しています。もし特定のバージョンのnkfでの動作による不具合を発見した場合は、当方までお知らせいただければ幸いです。
テキストエディタ
日記マスタの作成や、GNSの動作設定を行うには、テキストエディタが必要です。GNSの設定ファイルはEUC-JP形式で書かれているので、vi・emacsなどの「EUC-JPの編集に対応したテキストエディタ」をご用意ください。

これらの他に、GNS配布パッケージには、再配布可能なjcode.plというツールを組み込んでいます。もし必要であれば、以下からより新しいバージョンのjcode.plをダウンロードし、置き換えてください。

GNSを導入する(UNIX)

GNSは、zip版とtgz版の2つの配布形態をとっていますが、中身はどちらも同じです。UNIX版の導入では、tgz版を例に解説を行います。

ファイルを解凍する
GNSの解凍
▲GNSの解凍
GNSの配布パッケージとなっているファイルを、tar+gzipなどを使用して解凍してください。解凍先はどこでも構いませんが、ここでは「$HOME/GNS」を解凍先とします。このフォルダを「GNSフォルダ」と呼びます。
解凍が終了すると、「$HOME/GNS」の下に"gns300"などの名前のフォルダ("300"はバージョン番号です)が作成されます。これがGNSのプログラムや設定データが入っている部分です。同様に、このフォルダを「GNSプログラムフォルダ」と呼びます。
日記マスタ用のディレクトリを作成する
日記マスタ用を収めるディレクトリを準備する必要があります。「GNSディレクトリ」に、"d"という名前のディレクトリを作成してください。このディレクトリを「日記マスタディレクトリ」と呼びます。
デフォルトデータベースをコピーする
GNSは、日記マスタから日記ページを作るためのHTMLテンプレートや、マクロ置換用のデータなどを収めた「デフォルトデータベース」というものを持っています。GNSプログラムディレクトリにある"keep"というディレクトリがそれです。これは初期データであり、各ユーザーが自由に書き換えることができます。
初めてGNSで日記を書くときは、エクスプローラなどを使って、このディレクトリを「日記マスタディレクトリ」へコピーしてください。
2回目以降や、GNSをバージョンアップしたときは、この作業をする必要はありません。GNSをバージョンアップしたときでも、これらのデータベースは引き継いで使うことができます。
もしこの作業を行わなくても、「日記ページの出力時」に自動的にデータベースのコピー作業が行われます。バージョンアップなどでデータベースファイルが増えた場合には、コピー先に存在しないファイルのみがコピーされ、すでに存在するファイルが書き換えられてしまうことはありません。
cssファイルをコピーする
GNSは、cssに対応したHTMLファイルを出力します。「[GNSプログラムフォルダ]/style」ディレクトリに、これらのHTMLに対応したcssファイルセットが収められています。好きなcssファイルを「GNSフォルダ」にコピーして利用してください。
plain ほとんどスタイル指定のないcssファイルです。オリジナルのスタイルを作るときの雛形として使います。
simple デフォルトのスタイル指定が入ったcssファイルです。
シェルスクリプトに実行属性を追加する
日記ページの作成に使うシェルスクリプト(*.sh)に、実行属性を付加しておいてください。

GNSの基本設定をする(UNIX)

GNSプログラムフォルダには、初期設定となる設定データがすでに入っています。しかし、このままでは日記名や公開先となるURI、連絡先となるメールアドレスなどがあなたのものではありません。まず、基本設定を行う必要があります。

ここでは、最小限の変更についてのみ解説します。詳細は、「config.phによる設定」をご覧ください。

config.phファイルをテキストエディタで開く
config.phを開く
▲config.phを開く
GNSプログラムフォルダに、「config.ph」という名前のファイルがあります。これが、GNSの基本設定を司るファイルです。テキストエディタで、このファイルを開いてください。
このファイルには多くの設定項目がありますが、ここで編集を行う必要があるのは、そのごく一部です。以下、順に編集項目を説明します。
公開URLベース名
# 公開URLベース名
$URLBASENAME = 'http://www.example.net/GNS/';

$URLBASENAME = 'http://www.example.ne.jp/GNS/';
日記を公開するときの、URLのディレクトリ名までの部分を編集します。この例では、公開URLのディレクトリ名「http://www.example.ne.jp/GNS/」フォルダにします。この下に日記ページが置かれます。
ダイジェストファイル名
# ダイジェストファイル名
$DIGESTNAME = 'digestdiary.html';

$DIGESTNAME = 'index.html';
日記を公開するときの、ダイジェストページのURLのファイル名部分を編集します。この例では、ダイジェストページのURLを「index.html」とします。「公開URLベース名」の例と組み合わせると、この日記のダイジェストページのURLは、「http://www.example.ne.jp/GNS/index.html」となります。
日記名
# 日記名
$DIARY_TITLE = 'GNS3による日記';

$DIARY_TITLE = 'だいだい だいありー';
日記の名前を編集します。この例では、「だいだい だいありー」という名前になります。
この項目は、出力される日記のすべてのページに埋め込まれます。
著者名
# 著者名
$DIARY_AUTHOR = 'yourname';

$DIARY_AUTHOR = 'あおい';
日記の著者名を編集します。この例では、「あおい」という名前になります。
この項目は、出力される日記のすべてのページに埋め込まれます。
メールアドレス
# メールアドレス
$DIARY_EMAIL = 'yourmail@example.net';

$DIARY_EMAIL = 'aoi@example.ne.jp';
著者宛てのメールアドレスを編集します。この例では、「aoi@example.ne.jp」というアドレスになります。
この項目は、出力される日記のすべてのページに埋め込まれます。
日記の説明
# 日記の説明
$DIARY_DESCRIPTION = 'GNS3で日常を綴っています。';

$DIARY_DESCRIPTION = 'あおいの日々の記録です。';
この日記の簡単な説明文を編集します。この例では、「あおいの日々の記録です。」という説明になります。
この項目は、「RSSファイル」に埋め込まれます。
日記の説明
# コピーライト
$DIARY_COPYRIGHT = 'Copyright (C)2004 GORRY.';

$DIARY_COPYRIGHT = 'Copyright (C)2004 あおい.';
この日記の著作権表記を編集します。この例では、「Copyright (C)2004 あおい.」という著作権表記となります。
この項目は、「RSSファイル」に埋め込まれます。
ツールプログラムのpath
# ツールプログラムのpath
$PERLCMD = 'perl';
$NKFCMD = 'nkf';
$MAILCMD = 'mail';
GNSが呼び出すPerl・nkf・mailプログラムを記述します。

以上で、編集は終了です。

日記マスタを書く(UNIX)

日記マスタフォルダ
▲日記マスタフォルダ

GNSでは、日記文の記述に特殊なツールを使う必要はありません。基本的には、「1日1ファイルをテキストエディタで記述する」だけです。この、「1日ごとに分けて書かれる個々のファイル」を、GNSでは「日記マスタ」と呼びます。

日記マスタは、「日記マスタフォルダ」(初期設定では"[GNSフォルダ]/d/")に年別にフォルダ(YYYY)を作成し、その下に"MMDD.html"(MMは月、DDは日)というファイル名で認識します。まとめて書くと、"[GNSフォルダ]/d/YYYY/MMDD.html"となります。

拡張子は".html"を使いますが、中身はHTML文法に沿ったファイルではなく、プレーンなテキストファイルとなります。

日記マスタの記述に使う文字コードは、「nkfが受け付けることができる形式」であれば何でもかまいません。ISO-2022-JP・EUC-JP・Shift_JIS・UTF-8を想定していると考えてください。なお、内部的にはEUC-JPに変換して処理しています。このためEUC-JPに変換できない文字コードは、内部的にどのような動作になるかを保証することができません。

ここでは、2004年6月15日の日記を書いてみることにします。ファイル名は、"[GNSフォルダ]/d/2004/0615.html"となります。

@title いか〜
@category 料理

@s
夕飯にイカを買ってくる。さくさくとさばいて、身は刺身、ゲソはにら・キャベツ・豚バラと野菜炒め、ワタとえんぺら・身とゲソの残りで塩辛に。

@s
・・・したはずだったんだが、最後に刺身を盛って食卓へ・・・というところで床へ皿が落下・・・(汗)。
▲日記マスタの例

また、日記マスタフォルダには、ユーザーデータベースフォルダ("[GNSフォルダ]/d/keep/")があります。この中のファイルを書き換えることで、ページの体裁を変更したり、置換できるURIの数やマクロの種類などを増やしたりすることができます。詳細は以下をご覧ください。

日記ページを出力する(UNIX)

mkd.shを実行
▲mkd.shを実行

日記マスタを書いたら、それを日記ページに変換します。日記ページに変換するには、GNSプログラムフォルダにある"mkd.sh"を実行します。

今日、あるいは過去3日間以内の「最近の」日記マスタを変換するときは、引数なしで実行することができます。過去の日記マスタを変更し、それを日記ページに再変換したいときは、その日記マスタの日付を引数にします。例えば2004年6月15日の日記マスタを再変換するには、"./mkd.sh 2004 06 15"で実行します。

"mkd.sh"は、以下の3つのファイルを作成します。

ダイジェストページ
引数なしで実行したときは、必ずダイジェストページが作成されます。
日付を指定して実行したときは、「変更範囲がダイジェストページの範囲内にあるとき」に限り、ダイジェストページが作成されます。
ベースページ
指定した日付(指定しなかった場合は最近の)の日記マスタに対応するベースページが作成されます。
RSSファイル
ダイジェストページが作成されるときと同じ条件で、RSSファイルが作成されます。
GNSフォルダに作成された日記ページ
▲GNSフォルダに作成
された日記ページ

インデックスページは、"mkd.sh"では作成されません。代わりに、"mkidx.sh"を実行することで作成されます。

今年の分のインデックスページを作成するときは、引数なしで実行することができます。過去のインデックスページを作成するときは、その年を引数にします。例えば2003年のインデックスページを作成するには、"./mkidx.sh 2003"で実行します。

それぞれの日記ページは、GNSフォルダに作成されます。