ハイパー日記システム Version 2.20
hnf の記述方法
ハイパー日記システムでは、日々の日記は
非常に単純なテキスト・ファイルである hnf(Hyper Nikki
File) に記述します。 ファイルの名前は
"d日付.hnf" です。 例えば
20001年12月1日の場合は "d20011201.hnf"
です。 当然 "
は省きますし、全て半角小文字です(全角文字ではありません)。
hnf
は,日記ディレクトリ(~/diary/)以下に年別のディレクトリを作成し置きます.
~/diary/2001/ には, 2001年の hnf を置きます(
~/diary/ に hnf を置く方法は、廃止されました。)
hnf の漢字コードは,JIS/S-JIS/EUC
のいずれでも表示可能ですが,EUC
で書くことを推奨します.
hnf のファイルの更新時刻は様々に利用されます.hnf
をコピーする場合などは,
ファイルの更新時刻情報を保持する tar や cp -p
を利用することを お勧めいたします.
hnf の基本構造は以下のとおりです.
- コマンドは行頭に置きます。
スペース一つでも空いているとコマンドとして認識されません。
-
1行に1コマンドのみが記述できます.コマンド行の最後は必ず改行します。
-
コマンドは全て半角アルファベットの大文字で書きます.
- コマンドの引数は基本的にスペースで区切ります。
- 文末に「~」が存在すると <BR>
に置きかえられます。
- hnf はヘッダ部と本文に分かれます.
-
ヘッダ部と本文の間は改行のみの1行が来ます.
- ヘッダ部には,
ユーザ変数を記述します(記述しなくても
構いません).
- ヘッダ部には空白行があってはなりません.
-
ヘッダ部の最終行は「OK」だけにしてください。
- OK
が存在しないと、その日の日記は表示されません.
- 本文は必ず NEW,LNEW,RLNEW(又は CAT 又は GRP) から始めます.
- 行の先頭の半角アルファベット大文字の文字列は,
それがコマンドでなくとも将来コマンドとして使用される可能性があります.
このような場合は,スペースを前に入れていただくか,
半角アルファベット大文字の文字列の直後にスペースを入れずに
本文を入力することをお奨めします.
hnf は以下のような簡単なファイルです.
----- start -----
TENKI 曇
OK
NEW Namazu for hns 1.0.2 リリース
おバカな仕様を修正した 1.0.2 をリリースいたしました.
~
hns-1.02.tar.gz に付属の「Namazu for hns」のドキュメントは
古くなっておりますので,ウェブにあるものを御覧下さい.
NEW No hnf bug
いきなり初の bug が発見されてしまいました.ただし日記を書けば,
実害はありません.
~
詳細は,
LINK http://www.h14m.org/docs/known_bugs-j.html バグ報告
をご覧ください.patch を現在準備中です.
----- end -----
hnf および実際の表示例は,
公式日記の hnf と 公式日記
を参照してください.
コマンド一覧
コマンドが生成する HTMLタグ は, テーマ設定(theme.ph)によって
ほぼカスタマイズ可能です.
カスタマイズ可能ですが,コマンドの意味は変わりません.
また,変えてはいけません.なお,日記は以下の「基本コマンド」のみで
書くことができます.
- NEW
- 文法: NEW 1行の文章
セクションのタイトルを記述します.
タイトル行は,リンク可能なように自動的にアンカー(a
name) が定義されます.アンカー
は上から順に数字が増えていきますので, NEW と NEW
の間に新しいセクションを追加してはいけません. NEW
と NEW
の間に新しいセクションを追加するとどこかのページから
リンクされている場合,リンク先がずれてしまいます. NEW
は必須のコマンドです.必ず記述してください.
- SUB
- 文法: SUB 1行の文章
セクション内のサブ・セクションのタイトルを記述します.
サブ・セクションもリンク可能なように自動的にアンカー(a
name) が定義されます.SUB と SUB
の間に新しいサブ・セクションを
追加してはいけません.理由は NEW
と同じです.
- ~
- 文法: ~
タグ<br>
を表示します.つまり改行されます.このコマンドは,
文末にあったときのみコマンドして認識されます.
基本コマンド拡張コマンド
- CAT
- 文法: CAT カテゴリ1 [カテゴリ2
...]
例: CAT lynx install
セクションのカテゴリ(分類)を記述します.日記の内容を,
カテゴリで分類したい場合に使用します.使用しなくても
構いません. CATコマンドは NEW, LNEW または
RLNEW の直前にのみ指定できます.
タイトル行にカテゴリ別のアイコンを表示させることも可能です.
詳細は,日記のカテゴリ分類の方法をご覧下さい.
- LNEW
- 文法: LNEW url 1行の文章
例: LNEW http://www.h14m.org/
ハイパー日記システム
NEW
と同様セクションのタイトルを指定しますが,url
へリンクが 張られます.
-
RLNEW
- LSUB
- 文法: LSUB url 1行の文章
例: LSUB http://www.h14m.org/
ハイパー日記システム
SUB
と同様サブ・セクションのタイトルを指定しますが,url
へリンクが張られます.
-
RLSUB
- P
- 文法: P
タグ<p>
を表示します。段落を分けます。Pコマンドは、
/Pコマンドで閉じる必要があります。
- /P
- 文法: /P
Pコマンドを閉じます。タグ</p>
を表示します。
- GRP
- 文法: GRP グループ1 [グループ2
...]
例: GRP ruri shinomu
ひみつ交換日記機能を利用します。
GRPコマンドはそのセクションに CAT
がある場合は、CAT の直前に、 CAT
がない場合は、NEW, LNEW または RLNEW
の直前にのみ指定できます. 詳細は,ひみつ交換日記機能をご覧下さい.
リンク・コマンド
- LINK
- 文法: LINK url 説明文章
例: LINK http://www.h14m.org/
ハイパー日記システム
リンクを張ります. 例は,「 ハイパー日記システム
」と表示されます.
- URL
- 文法: URL url 説明文章
例: URL http://www.h14m.org/
ハイパー日記システム
URL を記述しリンクを張ります.例では「
ハイパー日記システム(http://www.h14m.org/)
」と表示されます.URL
を明示したい場合に使用します.
-
RLINK
-
文法: RLINK 引数1 引数2
説明文章
例: RLINK hoge ?19981201 説明文章
「説明文章」としてリンクされる点は,LINKコマンド と同様ですが,
~/diary/conf/rlink.txt で定義した URL に最初の
引数1 が置き換えられます. よくリンクする
URL
を設定し日記の記述を省略するために用意されました.
定義ファイルrlink.txt は
定義文字列[スペース]URL
と記述します。例えば,
hoge http://www.example.ne.jp/~hoge/diary/
のように記述します.
この場合,上記のコマンド例は,
http://www.example.ne.jp/~hoge/diary/?19981201
へのリンクを張ります.
-
RLNEW
- 文法: RLNEW 引数1 引数2
1行の文章
NEWコマンド同様、新しいセクションのタイトルを
記述しますが、 同時にRLINKコマンド同様にリンクを指定します。
-
RLSUB
- 文法: RLSUB 引数1 引数2
1行の文章
SUBコマンド同様、新しいサブ・セクションのタイトルを
記述しますが、 同時にRLINKコマンド同様にリンクを指定します。
- LNEW
- LSUB
-
LSTRIKE
- LIMG
装飾コマンド
- FONT
- 文法: FONT 引数1 引数2
文章
例: FONT COLOR red 赤い文字
タグ<font>
を表示します.上記例では,「赤い文字」と表示されます.
-
STRIKE
- 文法: STRIKE 文章
タグ<strike> を表示します.
「文章」と表示されます.
- LSTRIKE
- 文法: LSTRIKE url 文章
例: LSTRIKE http://www.h14m.org/
ルリ少佐万歳
STRIKEコマンドと同様 タグ<strike>
を表示しますが,同時に リンクを張ります.
- STRONG
- 文法: STONG 文章
例: STRONG ルリ少佐万歳
タグ<strong> を表示します.例は,
「ルリ少佐万歳」と表示されます.
- SPAN
- 文法: SPAN class_name 文章
タグ<span class="class_name">
を表示します. class は CSS
で事前に定義しておく必要があります。
- DIV
- 文法: DIV class_name
タグ<div class="class_name">
を表示します. class は CSS
で事前に定義しておく必要があります。 DIV は /DIV
で閉じる必要があります.
- /DIV
- 文法: /DIV
タグ</div> を表示します.
画像コマンド
- IMG
- 文法: IMG {r|l|n} ファイル名
説明文字列
例: IMG l pic1.gif ルリの写真
タグ<img src> を表示します.r
は画像を右に,l は画像を左に表示します.1.03-pl1
からは n も指定可能に なりました.n
を指定すると align
を付けません.説明文字列は画像の説明を
記述します。なお、画像の表示サイズは、 ImgWidthMaxSize
により自動的に調整されます。
- LIMG
- 文法: LIMG url {r|l|n} ファイル名
説明文字列
例: LIMG http://www.h14m.org/ l pic1.gif
ルリの写真
タグ<img src> を表示しリンクを張ります。r
は画像を右に,l は画像を左に表示します. n
を指定すると align
を付けません.説明文字列は画像の説明を
記述します。
- MARK
- 文法: MARK 引数
例: MARK !!
あらかじめ定義されたアイコンを表示します.
引数もあらかじめ定義されたものを指定します. MARK
は テーマ
により定義されています.また,自分で定義することも可能です.
アイコンを指定する引数については,互換性を確保する観点から,
ハイパー日記システム・プロジェクトで
標準マークを定めて公開します.
箇条書コマンド
- UL
- 文法: UL
タグ<ul> を表示します.UL
の後には,LIコマンドが必要です.また,/UL
で ULコマンドを 閉じる必要があります.
- /UL
- 文法: /UL
タグ</ul> を表示します.
- OL
- 文法: OL
タグ<ol> を表示します.OL
の後には,LIコマンドが必要です.また,/OL
で OLコマンドを 閉じる必要があります.
- /OL
- 文法: /OL
タグ</ol> を表示します.
- LI
- 文法: LI 文章
タグ<li> を表示します.LI を書く前に
ULまたはOLコマンドが必要です.
- DL
- 文法: DL
タグ<dl> を表示します.
- DT
- 文法: DT 文章
タグ<dt> を表示します.DT を書く前に
DLコマンドが必要です.
- DD
- 文法: DD 文章
タグ<dd> を表示します.DD を書く前に
DLコマンドが必要です.
- /DL
- 文法: /DL
タグ</dl> を表示します.
引用系コマンド
- PRE
- 文法: PRE
タグ<pre> を表示します.PRE は /PRE
で閉じる必要があります.
- /PRE
- 文法: /PRE
タグ</pre> を表示します.
- CITE
- 文法: CITE
タグ<blockquote>
を表示します.引用を記述する場合に使います.
/CITEコマンドで閉じる必要があります.
-
/CITE
- 文法: /CITE
タグ</blockquote> を表示します.
コメント系コマンド
- !
- 文法: ! 一行の文章
HTMLでのコメント <!-- 一行の文章 -->
を表示します.つまり通常ブラウザでは表示されません.ただし
HTMLソースを 読むと見ることができます. Namazu for hns
では検索可能です.
- !#
- 文法: !# 一行の文章
なにも表示されません.HTMLソースにも表示されません.
ただし,Namazu for hns では検索可能です.
- FN
- 文法: FN
脚注を記載します.FNコマンドは引数をとりません.
脚注の内容は,次の行以降に記載して下さい.
/FNコマンドで閉じる必要があります. FN 〜
/FN内には LINK,
STRIKE, ~コマンド
のみが使用可能です.脚注は各セクションの末尾に表示されます.
- /FN
- 文法: /FN
FNコマンドを閉じます.
置換コマンド
-
ALIAS
-
文法: ALIAS 引数
例: ALIAS hns
~/diary/conf/alias.txt で定義した 文字列に
引数 が置き換えられます. よくリンクする
URLなど
を設定し日記の記述を省略するために用意されました.
定義ファイルalias.txt は,
引数[スペース]置き換えたい文字列
と記述します. 例えば,
hns <a accesskey="L" href="http://www.h14m.org/">ハイパー日記システム</a>
のように記述します.
この場合,上記のコマンド例は, 「ハイパー日記システム」と変換されます.
テーブル系コマンド
- RT
- 文法: RT
RT方式
によるテーブル表示を行います.
RTコマンドは引数をとりません.
RT方式によるテーブル記述内容は,次の行以降に記述して下さい.
/RTコマンドで閉じる必要があります.
- /RT
- 文法: /RT
RTコマンドを閉じます.
LNEW, LSUB, LINK, URL, LSTRIKE で指定する url
が特定の書式の場合、 以下のように変換されます。
-
#YYYYMMDD[x[Sy]]
- 自分の日記へのリンクに変換されます。デフォルトでは
動的生成時は "$MyDiaryURI?YYYYMM[abc]#YYYYMMDDxSy"
へのリンクに、 静的生成時は
"./YYYYMM.html#YYYYMMDDxSy" へのリンクになります。
例: LINK #200104011
4月1日の第1セクション
動的生成では 「<a
href="http://example.ne.jp/~hoge/diary/?200104a#20010411">
4月1日の第1セクション</a>
」と変換されます。
静的生成では「<a href="./200104.html#20010411">
4月1日の第1セクション</a>
」と変換されます。
-
#{YYYY,MM,DD[,x[,y]]}
- 自分の日記へのリンクに変換されます。#YYYYMMDDxSy
と同様です。
-
#{any-string#YYYYMMDD[x[Sy]]}
- 自分の日記へのリンクに変換されます。
"#YYYYMMDDxSy" 以前は任意の文字列です。
例: LINK #{http://www.example.ne.jp/~hoge/diary/200104a?to=20010401#200104011} 4月1日の第1セクション
"#200104011" と同様に変換されます。
-
ISBN:1-2345-6789-0
- オンライン書店で ISBN
コードを検索します。
-
CD:ABCD-1234
- オンライン CD ショップ で CD
品番を検索します。
-
hns-dev:1
- hns開発MLの
任意の番号のアーカイブを表示します。
-
hns-users:1
- hnsサポートMLの
任意の番号のアーカイブを表示します。
RT方式とは、rubikitch氏制作の
RTtool
で使用されている作表フォーマットです。簡潔な書式で複雑な表も楽に記述可能です。
RT〜/RTで囲まれた領域に RT方式の記述
があった場合、テーブルに変換します。
RT
1,2,3
4,5,6
7,8,9
/RT
制御コマンドを記述することで、タイトル設定・デリミタの変更が
可能です。制御コマンドと表の記述部の間には、空行を1行入れる必要があります。
captionコマンドで表のタイトルを設定できます。
delimiterコマンドでデリミタの変更を行うことが出来ます。
デフォルトのデリミタは","かTABです。
表の記述の途中に空行がある場合、それより上の部分をヘッダと見なします。
ヘッダ部分は HTML における THEAD 要素となり、TH タグで強調表示されます。
RT
# コメント記述
caption = タイトル
delimiter = :
AAA : BBB : CCC
1 : 2 : 3
4 : 5 : 6
/RT
スパン記号("||","==")で複雑な表も簡単に記述できます。
"||"記号でその場所のセルを上のセルと結合、"=="記号で左のセルと結合します。
RT
caption = ちょっと複雑な表
delimiter = :
A : B : C : == : D : E
1 : 2 : 3 : 4 : 5 : 6
7 : == : || : 8 : == : 9
10 : 11 : 12 : || : == : 13
/RT
ちょっと複雑な表
A | B | C | D | E |
1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 |
10 | 11 | 12 | 13 |
表を構成する各ブロック(下図参照)に対して、表示属性を指定可能です。
なお、TBODY見出し部 は、tindex_span
の指定が無い場合には出力されません。
TABLE全体(table_foo)
THEAD部(thead_foo) |
TBODY部[見出し] (tindex_foo)
| TBODY部[本体] (tbody_foo)
|
使用できるコマンドは以下のとおりです。
RT拡張コマンド
コマンド | 機能 |
TABLE全体 | caption | 表の題名 |
delimiter | デリミタ |
table_class | スタイルシート指定 |
table_border | 枠線の幅(ピクセル) |
table_width | テーブルの幅(ピクセルまたは%) |
table_height | テーブルの高さ(ピクセルまたは%) |
table_frame | 外枠の表示方法 (void,above,below,hsides,vsides,lhs,rhs,box,border) |
table_rules | 内側罫線の表示方法 (none,groups,rows,cols,all) |
THEAD部 | thead_class | スタイルシート指定 |
thead_bgcolor | BGCOLOR 指定 |
TBODY部 | 見出し | tindex_span | 見出しとしてグループ化する列数(def=0) |
tindex_class | スタイルシート指定 |
tindex_bgcolor | BGCOLOR 指定 |
tindex_width | セルの幅(ピクセル) |
tindex_align | セル配置(left,center,right) |
本体 | tbody_bgcolor | BGCOLOR 指定 |
tbody_class | スタイルシート指定 |
tbody_width | セルの幅(ピクセル) |
tbody_align | セル配置(left,center,right) |
上記の表の RT 記述は以下のようになっています。
RT
caption = RT拡張コマンド
delimiter = :
tbody_bgcolor = white
table_border = 2
tindex_span = 3
コマンド : == : == : 機能
TABLE全体: == : caption : 表の題名
|| : == : delimiter : デリミタ
|| : == : table_class : スタイルシート指定
|| : == : table_border : 枠線の幅(ピクセル)
|| : == : table_width : テーブルの幅(ピクセルまたは%)
|| : == : table_height : テーブルの高さ(ピクセルまたは%)
|| : == : table_frame : 外枠の表示方法 (void,above,below,hsides,vsides,lhs,rhs,box,border)
|| : == : table_rules : 内側罫線の表示方法 (none,groups,rows,cols,all)
THEAD部 : == : thead_class : スタイルシート指定
|| : == : thead_bgcolor : BGCOLOR 指定
TBODY部 :見出し: tindex_span : 見出しとしてグループ化する列数(def=0)
|| : || : tindex_class : スタイルシート指定
|| : || : tindex_bgcolor: BGCOLOR 指定
|| : || : tindex_width : セルの幅(ピクセル)
|| : || : tindex_align : セル配置(left,center,right)
|| : 本体 : tbody_bgcolor : BGCOLOR 指定
|| : || : tbody_class : スタイルシート指定
|| : || : tbody_width : セルの幅(ピクセル)
|| : || : tbody_align : セル配置(left,center,right)
/RT
ハイパー日記システム Version 2.20
Index