[hnsドキュメント]

ハイパー日記システム 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 の基本構造は以下のとおりです.


hnf の例

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テーブル拡張

RT方式:

RT方式とは、rubikitch氏制作の RTtool で使用されている作表フォーマットです。簡潔な書式で複雑な表も楽に記述可能です。

基本形:

RT/RTで囲まれた領域に RT方式の記述 があった場合、テーブルに変換します。

 RT
 1,2,3
 4,5,6
 7,8,9
 /RT
123
456
789

タイトル設定・デリミタ変更・ヘッダ表示:

制御コマンドを記述することで、タイトル設定・デリミタの変更が 可能です。制御コマンドと表の記述部の間には、空行を1行入れる必要があります。

captionコマンドで表のタイトルを設定できます。 delimiterコマンドでデリミタの変更を行うことが出来ます。 デフォルトのデリミタは","TABです。

表の記述の途中に空行がある場合、それより上の部分をヘッダと見なします。 ヘッダ部分は HTML における THEAD 要素となり、TH タグで強調表示されます。

 RT
  # コメント記述
  caption   = タイトル
  delimiter = : 

  AAA : BBB : CCC

    1 :   2 :   3
    4 :   5 :   6
 /RT
タイトル
AAABBBCCC
123
456


複雑な表の記述:

スパン記号("||","==")で複雑な表も簡単に記述できます。 "||"記号でその場所のセルを上のセルと結合、"=="記号で左のセルと結合します。

 RT
  caption   = ちょっと複雑な表
  delimiter = :
 
  A :  B :  C : == :  D :  E
 
  1 :  2 :  3 :  4 :  5 :  6
  7 : == : || :  8 : == :  9
 10 : 11 : 12 : || : == : 13
 /RT
ちょっと複雑な表
ABCDE
123456
789
10111213

表の装飾:

表を構成する各ブロック(下図参照)に対して、表示属性を指定可能です。
なお、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_bgcolorBGCOLOR 指定
TBODY部見出しtindex_span見出しとしてグループ化する列数(def=0)
tindex_classスタイルシート指定
tindex_bgcolorBGCOLOR 指定
tindex_widthセルの幅(ピクセル)
tindex_alignセル配置(left,center,right)
本体tbody_bgcolorBGCOLOR 指定
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