日記の見た目(スタイル,背景,文字色など) を「テーマ」として定義でき, また あらかじめ用意されている「テーマ」を指定することで,日記の見た目を 簡単に変更できる機能です.
インストールされているテーマを使用するのはとても簡単です.
するだけです。
hnsの配布物には, japanese , ruribaka , anti_windoze , english という 4つのテーマが含まれています。 デフォルトは「japanese」です。 テーマ「anti-windoze」を利用するには,config.ph で
$Theme = "anti-windoze";
と設定するだけです.
また http://www.h14m.org/dist/contrib/theme/
に寄贈されたテーマがあります。
tar.gz されたテーマをウェブ日記ディレクトリ
(~/public_html/diary/) に置いて
として展開しテーマ名としてそのディレクトリ名を指定するだけで 利用できます.
テーマは,ウェブ日記ディレクトリ(~/public_html/diary/) にテーマ名 をつけたディレクトリ名で必要なファイルが置かれます. テーマに必要なファイルとは,
です.theme-static.ph, head.txt, foot.txt はなくても構いません。 head.txt と foot.txt はテーマ・ディレクトリに存在する場合、そちらが表示されます (~/diary/conf/ にあるものは無視されます)。
theme.ph では、以下のような設定が可能です。
テーマを作成するということは,theme.ph を作成することと,画像を用意することです.
生成されるHTMLタグも自由に変更することが可能ですが, テーマを作成する場合, 正しいHTMLを生成するようチェックすることが望まれます.
テーマでユーザ変数・マークを定義した場合,利用可能なユーザ変数と その意味,マークとその意味を必ず記載したドキュメントを添付願います. テーマに関する説明は,READMEファイルに記載することが望まれます.
テーマの READMEファイルの記載例:
利用可能なユーザ変数 TENKI 天気 利用可能な MARK !! びっくり (^^) にっこり (^^; 汗 ばか ばか (笑) 笑 後ろ 後ろ姿 v(^^) Vサイン
theme.ph は Perl script ですので Perl の文法に従う必要があります.
デフォルトの設定は、コメント・アウトしてある場合があります。 変更をほどこす部分は # を削除して、変更を加えて下さい。
% cd ~/public_html/diary % mkdir yours % cp japanese/theme.ph yours % vi yours/theme.ph
などとします。
使用可能なユーザ変数を、
package HNS::Hnf::UserVar; $Templates{変数名} = "テンプレート";
という形式で設定します。
使用可能なパラメータは、
パラメータ名 | 説明 |
---|---|
%value | hnf で指定した値 |
%user{USER_VAR_NAME} | USER_VAR_NAME が出力される文字列 |
です。
ex)package HNS::Hnf::UserVar; $Templates{'BASHO'} = "@%value"; $Templates{'TENKI'} = "天気: %value %user{BASHO}";
使用可能なマークと画像ファイル名を
package HNS::Hnf::Command::MARK; $List{'(^^)/~'} = 'icons/bye.gif';
のように設定します。
package は HNS::ExtHTML。
デフォルト値qq(<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">\n);
デフォルト値<meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"><!-- body { background: white } h3.new { margin-left: 1em } div.uservar { font-weight: bold; } div.section { margin-left: 2em; margin-top: 0 } div.sub { margin-left: 1em; margin-top: 0 } div.list { margin-left: 1em } div.fn { margin-left: 1em; margin-top: 0 } div.url { margin-bottom: 0 } pre { white-space: pre; padding: 0.5em; border-color: #ffeeb0; border-style: outset; border-width: 4px } a.hide:link { color: black; text-decoration: none } span.bold-red { color: red; font-weight: bold } div.bold-red { color: red; font-weight: bold } --></style> );
デフォルト値 undef
デフォルト値 undef
package は HNS::Collection。
変数名 | 説明 | デフォルト値 |
---|---|---|
$FootMessages{'HasContent'} | 1日以上の日記を出力した場合のフッタ・メッセージ。 %num は出力した日記数に展開 | "以上、%num 日分です。\n"; |
$FootMessages{'NoContent'} | 指定した日記が無かった場合のフッタ・メッセージ | "該当するものはありません。\n"; |
package HNS::PIM::Schedule
デフォルト値('<font color="red">日</font>', '月', '火', '水', '木', '金', '<font color="blue">土</font>');
デフォルト値qq(<li><strong>%month/%day%week</strong> %content</li>\n);
デフォルト値"<ul>";
デフォルト値"</ul>";
package HNS::PIM::Todo;
デフォルト値"<li><strong>%priority</strong>%content</li>\n";
デフォルト値"<ul>";
デフォルト値"</ul>";
package HNS::Calendar::Table;
デフォルト値('<font color="red">日</font>', '月', '火', '水', '木', '金', '<font color="blue">土</font>');
デフォルト値 0
デフォルト値qq(<a href="$HNS::System::MyDiaryURI?%year%month">来月</a>);
デフォルト値qq(<a href="%ruri#%{ymd}0">%calendar_day</a>);
デフォルト値qq(<a href="%href">%calendar_day</a>);
package HNS::Style;
qq( <hr> <tablt summary="pim" width="100%"> <tr> <th align="left">予定</th> <th align="left">TODO</th> <th align="left">Link</th> </tr> <tr> <td valign="top"> %schedule </td> <td valign="top"> %todo </td> <td valign="top"> %link </td> </tr> </tablt> );
qq( %pim <hr> <table summary="calendar"> <tr> <td rowspan="2" valign="top"> %calendar </td> <td valign="top"> %unagi </td> </tr> <tr> <td valign="bottom"> %direct_calendar </td> </tr> </table> <hr> );
package HNS::Diary
qq( <h2><a class="hide" href="%href" [実際は1行] name="%name">%year年%month月%day日(%week)</a> [<a href="$HNS::System::MyDiaryURI?%month%day">n年日記</a>]</h2> );
qq(<div class="uservar"> %user{TENKI}%user{BASHO}%user{TAIJU}%user{TAION}%user{SUIMIN} %user{BGM}%user{HOSU}%user{HON}%user{KITAKU}%user{WALK}%user{RUN}%user{YOTEI} </div>);
qq(<hr>\n);
package HNS::Hnf::Command::NEW
デフォルト値qq( <h3 class="new"><a class="hide" name="%name" title="%name" href="%href">#%mark</a> %cat %content</h3> <div class="section">\n);
デフォルト値"</div>%boarddata %boardlink<!-- end of NEW -->\n";
package Board;
デフォルト値'コメントを読む(%num)';
デフォルト値'|';
デフォルト値'コメントする';
デフォルト値'<div class="boardlink" align="right">[ %readstr %sepstr %writestr ]</div>';
デフォルト値'<h4 class="comment">この記事へのコメント</h4>';