GNSを動かすための最低限の設定方法をこれまでに解説してきましたが、ここでは残りの設定可能項目について解説します。ここまでに解説しなかった設定は、変える必要はあまりないかもしれませんが、より柔軟に使用したり、改造を行ったりする際には有効かもしれません。

  1. css
  2. 表示アイテム
  3. config.phによる設定
  4. config2.phによる改造

css

GNSは、cssに対応したHTMLファイルを出力します。「[GNSプログラムフォルダ]/style」ディレクトリに、これらのHTMLに対応したcssファイルセットが収められています。好きなcssファイルを「GNSフォルダ」にコピーして利用してください。

plain ほとんどスタイル指定のないcssファイルです。オリジナルのスタイルを作るときの雛形として使います。
simple デフォルトのスタイル指定が入ったcssファイルです。

「WWW環境」で使用しているときは、同じcssファイルを「GNSプログラムフォルダ」にもコピーすると、「GNS更新フォーム」でもスタイルが有効になります。

表示アイテム

「[日記マスタフォルダ]/keep/98.html」は、「表示アイテム」のデータベースです。これは、「曜日」や「タイトルの飾り」などを列挙したものです。例えば「曜日」の表記を変更したいとき、このファイルを編集します。

各アイテムは、指定された位置の行の内容になります。

行数 説明 初期値
1 日曜日を示す文字列です。
2 月曜日を示す文字列です。
3 火曜日を示す文字列です。
4 水曜日を示す文字列です。
5 木曜日を示す文字列です。
6 金曜日を示す文字列です。
7 土曜日を示す文字列です。
8 タイトル(@title)の飾り文字です。
9 段落タグ(@s)のアンカー文字です。 _
10 脚注(@*・@f)のアンカー文字です。 *
11 後書き(@foot)の開始部に差し込む文字列です。 <SMALL>■
12 後書き(@foot)の終了部に差し込む文字列です。 </SMALL>

「WWW環境」で使用するときは、[Item]ボタンを押すことで、表示アイテムファイルを編集することができます。

config.phによる設定

ここでは、config.phによる設定のうち、まだ紹介されていないものについて解説します。ここにないものについては、各環境用の設定項目をご覧ください。

$DIGESTDAYS = 4;
ダイジェストページに載せる最大日数です。
$PRINTNOEXISTDAY = 1;
1のときは、日記マスタがない日でも日付を表示します。0のときは、日記マスタがない日の日付は表示しません。
$ANCHOR = '';
日付・段落アンカーに前置する文字です。初期値(空)では"〜.html#1501"などのようなアンカーになりますが、例えば「$ANCHOR = 'd';」とすることで"〜.html#d1501"となります。
$NKFCODE = '-j';
$CHARSET = 'ISO-2022-JP';
$NKFCODEは、日記ページの出力時の文字コードを「NKFに与えるオプション」の形式で指定します。
$CHARSETは、日記ページで変数"@/DIARY_CHARSET/"で参照することができます。
$DIARY_TMPDIR_PERM = "0777";
$DIARY_KEEPDIR_PERM = "0777";
$DIARY_PUTDIR_PERM = "0777";
$DIARY_GETDIR_PERM = "0777";
上から順に、「テンポラリフォルダ」「データベースフォルダ」「日記ページ出力フォルダ」「日記マスタフォルダ」のパーミッションを指定します。
デフォルト値は、最もトラブルが起こりにくい値であるとともに、セキュリティがもっとも低い値でもあります。ご注意ください。
「ローカル環境」や「メール環境」の場合、多くのファイルは所有者が自分自身です。この場合、パーミッションは"0700"や"0755"が適切な値です。
「WWW環境」で、ファイルの所有者が「WWWサーバ」となるサーバを使っている場合、これらの値を指定してしまうと、ftpやシェルログインでのアクセスで「自分が自由に操作できないフォルダ」を作り出してしまいます。
$DIARY_TMP_PERM = "0666";
$DIARY_KEEP_PERM = "0666";
$DIARY_PUT_PERM = "0666";
$DIARY_GET_PERM = "0666";
上から順に、「テンポラリフォルダ」「データベースフォルダ」「日記ページ出力フォルダ」「日記マスタフォルダ」に書き込まれるファイルのパーミッションを指定します。
デフォルト値は、最もトラブルが起こりにくい値であるとともに、セキュリティがもっとも低い値でもあります。ご注意ください。
「ローカル環境」や「メール環境」の場合、多くのファイルは所有者が自分自身です。この場合、"0600"や"0644"が適切な値です。
「WWW環境」で、ファイルの所有者が「WWWサーバ」となるサーバを使っている場合、"0600"や"0644"を指定してしまうと、ftpやシェルログインでのアクセスで「自分が自由に操作できないファイル」を作り出してしまいます。
$TMPDIR = 'tmp';
$KEEPDIR = $GETDIR . '/keep';
$PUTDIR = '..';
$GETDIR = '../d';
上から順に、「テンポラリフォルダ」「データベースフォルダ」「日記ページ出力フォルダ」「日記マスタフォルダ」の位置を指定します。
$GETDIR, $PUTDIRはどこを指定しても構いませんが、$KEEPDIRは「$GETDIRの下」、$TMPDIRは「GNSプログラムフォルダの下」でなければいけません。
$RSSNAME = 'index.rdf';
RSSファイルのファイル名です。$RSSNAMEは、日記ページで変数"@/DIARY_RSSNAME/"で参照することができます。
$ATOM10NAME = 'atom10.xml'
;
$ATOM03NAME = 'atom03.xml'
;
$ATOMNAME = $ATOM10NAME
;
Atomファイルのファイル名です。$ATOM10NAMEはAtom1.0、$ATOM03NAMEはAtom0.3形式で出力されたファイルのファイル名となります。それぞれ、日記ページで変数"@/DIARY_ATOM10NAME/"・"@/DIARY_ATOM03NAME/"・"@/DIARY_ATOMNAME/"で参照することができます。
$ATOM_XHTML = 0;
1のときは、Atomファイルに出力するコンテンツをXHTML形式にします。0のときは、HTML形式のままとなります。
この値を1にするには、外部プログラム"tidy"のインストール、および$TIDYCMDの設定が必須となります。

config2.phによる改造

より進んだ設定として、ページ出力のプログラムの一部をconfig2.phに含んでいます。これを改造することで、出力を変更することができます。

プログラムは、Perlのコードとして動作します。以下は、ページ出力プログラムの一部となっている関数です。

SPrintDiaryDate_Config2( $s, $year, $month, $day, $wday, $part, $weather, $topic, $time, $tbmode )

日記ページの日付行の出力コードです。

$s
GNSシステム側でのレンダリング結果です。
$year
「年」を示す数値です。1980〜2099の値をとります。
$month
「月」を示す数値です。1〜12の値をとります。
$day
「日」を示す数値です。1〜31の値をとります。
$wday
「曜日」を示す数値です。0〜6の値をとり、$WDAYS[$wday]で曜日文字列を得ることができます。
$part
「上旬・中旬・下旬」を示す数値です。0〜2の値をとり、$PARTS[$part]で「旬」に応じた文字列を得ることができます。
$weather
「天気」を表す文字列です。「@weather」命令の引数がそのまま渡されます。
$topic
「話題」を表す文字列です。「@topic」命令の引数がそのまま渡されます。
$time
「時刻」を表す文字列です。日記マスタの更新時刻、または@time命令の引数が、"2004/06/15 12:34:56"などの形式で渡されます。
$tbmode
config.phの$FLAG_TRACKBACKの値が入ります。
この関数で要求されることは、以下の通りです。
  • 日付を認識できる、HTMLマークアップされた文字列を返す。
  • 文字列内に、「アンカー前置文字+2桁の日付を表す文字列(頭の"0"を省略しない)」からなるアンカーを含む。sprintfの書式で示すと、「"<A NAME=¥"$ANCHOR%02d¥"", $day」となる。
  • アンカーと同時に、「ベースページURL+"#"+アンカー前置文字+2桁の日付を表す文字列(頭の"0"を省略しない)」からなるリンクを含む。sprintfの書式で示すと、「"<A HREF=¥"%04d%02d%s.html$ANCHOR%02d¥"", $year, $month, $PARTS[$part], $day」となる。
SPrintCommentForm_Config2( $s, $year, $month, $day, $ntitle )

日記ページのコメントフォームの出力コードです。

$s
GNSシステム側でのレンダリング結果です。
$year
「年」を示す数値です。1980〜2099の値をとります。
$month
「月」を示す数値です。1〜12の値をとります。
$day
「日」を示す数値です。1〜31の値をとります。
$ntitle
ブロックの通し番号(何番目の"@title"か)を示す数値です。1以上の値をとります。
この関数で要求されることは、以下の通りです。
  • コメントフォームCGIを呼び出す、HTMLマークアップされた文字列を返す。
  • コメントフォームCGIの呼び出し書式は、「"コメント受信CGIのURL"+"/"+4桁の年+2桁の月+2桁の日+2桁のブロック番号+"/"である。sprintfの書式で示すと、「"%s%s/%04d%02d%02d%02d/", $TRACKBACKBASEURL, $COMMENTCGI, $year, $month, $day, $ntitle」となる。
  • 引数"GNSname"にコメント者の名前を入れる。
  • 引数"GNScomment"にコメント内容を入れる。
  • "command"ボタンに"Send"を入れる。
SPrintTrackbackURL_Config2( $s, $year, $month, $day, $ntitle )

日記ページの「トラックバック先URL」を示す出力コードです。

$s
GNSシステム側でのレンダリング結果です。
$year
「年」を示す数値です。1980〜2099の値をとります。
$month
「月」を示す数値です。1〜12の値をとります。
$day
「日」を示す数値です。1〜31の値をとります。
$ntitle
ブロックの通し番号(何番目の"@title"か)を示す数値です。1以上の値をとります。
この関数で要求されることは、以下の通りです。
  • トラックバック先URLをコピーするための、HTMLマークアップされた文字列を返す。
  • トラックバック先の書式は、「"トラックバック受信CGIのURL"+"/"+4桁の年+2桁の月+2桁の日+2桁のブロック番号+"/"である。sprintfの書式で示すと、「"%s%s/%04d%02d%02d%02d/", $TRACKBACKBASEURL, $TRACKBACKCGI, $year, $month, $day, $ntitle」となる。
  • URLを表示するだけでもよいが、リンクの形をとってもよい。もしこのURLにブラウザでアクセスした場合、トラックバックURLがブラウザに表示されるようになっている。
SPrintViewTBCMGuide_Config2( $s, $year, $month, $day, $ntitle )

日記ページの「トラックバック/コメント一覧へのリンク」を示す出力コードです。

$s
GNSシステム側でのレンダリング結果です。
$year
「年」を示す数値です。1980〜2099の値をとります。
$month
「月」を示す数値です。1〜12の値をとります。
$day
「日」を示す数値です。1〜31の値をとります。
$ntitle
ブロックの通し番号(何番目の"@title"か)を示す数値です。1以上の値をとります。
この関数で要求されることは、以下の通りです。
  • トラックバック/コメント一覧ページへのリンクとなる、HTMLマークアップされた文字列を返す。
  • 一覧ページのURLは、「"トラックバック一覧ページのベースURL"+"/"+4桁の年+2桁の月+".html#"+アンカー前置文字+2桁の日+2桁のブロック番号」である。sprintfの書式で示すと、「"%s%04d%02dt.html#$ANCHOR%02d%02d", $TRACKBACKBASEURL, $year, $month, $day, $ntitle」となる。
SPrintDiaryTitle_Config2( $s, $year, $month, $day, $wday, $part, $ntitle, $title, $category, $time, $tbmode )

日記ページの日付行の出力コードです。

$s
GNSシステム側でのレンダリング結果です。
$year
「年」を示す数値です。1980〜2099の値をとります。
$month
「月」を示す数値です。1〜12の値をとります。
$day
「日」を示す数値です。1〜31の値をとります。
$wday
「曜日」を示す数値です。0〜6の値をとり、$WDAYS[$wday]で曜日文字列を得ることができます。
$part
「上旬・中旬・下旬」を示す数値です。0〜2の値をとり、$PARTS[$part]で「旬」に応じた文字列を得ることができます。
$ntitle
「ブロック番号」を表す文字列です。何番目の@titleであるかが1以上の数値で渡されます。
$title
「ブロックタイトル」を表す文字列です。「@title」命令の引数がそのまま渡されます。
$category
「カテゴリ」を表す文字列です。「@category」命令の引数がそのまま渡されます。
$time
「時刻」を表す文字列です。日記マスタの更新時刻、または@time命令の引数が、"2004/06/15 12:34:56"などの形式で渡されます。
$tbmode
config.phの$FLAG_TRACKBACKの値が入ります。
この関数で要求されることは、以下の通りです。
  • ブロックを認識できる、HTMLマークアップされた文字列を返す。
  • 文字列内に、「アンカー前置文字+2桁の日+2桁のブロック番号」からなるアンカーを含む。sprintfの書式で示すと、「"<A NAME=¥"$ANCHOR%02d%02d¥"", $day, $ntitle」となる。
  • アンカーと同時に、「ベースページURL+"#"+アンカー前置文字+2桁の日+2桁のブロック番号」からなるジャンプを含む。sprintfの書式で示すと、「"<A HREF=¥"%04d%02d%s.html$ANCHOR%02d%02d¥"", $year, $month, $PARTS[$part], $day, $ntitle」となる。
SPrintDiaryTitleClose_Config2( $s, $year, $month, $day, $wday, $part, $ntitle, $title, $category, $time )

日記ページのブロック末尾の出力コードです。

$s
GNSシステム側でのレンダリング結果です。
$year
「年」を示す数値です。1980〜2099の値をとります。
$month
「月」を示す数値です。1〜12の値をとります。
$day
「日」を示す数値です。1〜31の値をとります。
$wday
「曜日」を示す数値です。0〜6の値をとり、$WDAYS[$wday]で曜日文字列を得ることができます。
$part
「上旬・中旬・下旬」を示す数値です。0〜2の値をとり、$PARTS[$part]で「旬」に応じた文字列を得ることができます。
$ntitle
「ブロック番号」を表す文字列です。何番目の@titleであるかが1以上の数値で渡されます。
$title
「ブロックタイトル」を表す文字列です。「@title」命令の引数がそのまま渡されます。
$category
「カテゴリ」を表す文字列です。「@category」命令の引数がそのまま渡されます。
$time
「時刻」を表す文字列です。日記マスタの更新時刻、または@time命令の引数が、"2004/06/15 12:34:56"などの形式で渡されます。
この関数で要求されることは、以下の通りです。
  • ブロックの末尾となる、HTMLマークアップされた文字列を返す。
SPrintDigestRSSHeader_Config2( $s )
RSSファイルのヘッダの出力コードです。
$s
GNSシステム側でのレンダリング結果です。
この関数で要求されることは、以下の通りです。
  • RSSヘッダとして適切な文字列を返す。
SPrintContentRSSHeader_Config2( $s )
日記ページ中に埋め込まれるRSSデータのヘッダの出力コードです。
$s
GNSシステム側でのレンダリング結果です。
この関数で要求されることは、以下の通りです。
  • RSSヘッダとして適切な文字列を返す。
SPrintDigestAtomHeader_Config2( $s )
Atomファイルのヘッダの出力コードです。
$s
GNSシステム側でのレンダリング結果です。
この関数で要求されることは、以下の通りです。
  • Atomヘッダとして適切な文字列を返す。