hnf の記述方法

### ハイパー日記システム Version 2.10

# hnf の記述方法

### ハイパー日記ファイルの概要

ハイパー日記システムでは、日々の日記は 非常に単純なテキスト・ファイルである hnf(Hyper Nikki File) に記述します。 ファイルの名前は "d日付.hnf" です。 例えば 1999年12月1日の場合は "d19991201.hnf" です。 当然 " は省きますし、全て半角小文字です(全角文字ではありません)。

hnf は，日記ディレクトリ(~/diary/)以下に置きます．~/diary/1999/ には， 1999年の hnf を置きます(過去との互換性のため ~/diary/ に hnf を置くこともできますが推奨されません。同一日付の hnf が ~/diary/ と ~/diary/YYYY/ の両方にある場合は， ~/diary/ にあるものが表示されます)．

hnf の漢字コードは，JIS/S-JIS/EUC のいずれでも表示可能ですが，EUC で書くことを推奨します．

hnf のファイルの更新時刻は様々に利用されます．hnf をコピーする場合などは， ファイルの更新時刻情報を保持する tar や cp -p を利用することを お勧めいたします．

hnf の基本構造は以下のとおりです．

- コマンドは行頭に置きます。 スペース一つでも空いているとコマンドとして認識されません。
- 1行に1コマンドのみが記述できます．コマンド行の最後は必ず改行します。
- コマンドは全て半角アルファベットの大文字で書きます．
- コマンドの引数は基本的にスペースで区切ります。
- 文末に「~」が存在すると <BR> に置きかえられます。
- hnf はヘッダ部と本文に分かれます．
- ヘッダ部と本文の間は改行のみの1行が来ます．
- ヘッダ部には， ユーザ変数を記述します(記述しなくても 構いません)．
- ヘッダ部には空白行があってはなりません．
- ヘッダ部の最終行は「OK」だけにしてください。
- OK が存在しないと、その日の日記は表示されません．
- 本文は必ず NEW から始めます．
- 行の先頭の半角アルファベット大文字の文字列は， それがコマンドでなくとも将来コマンドとして使用される可能性があります． このような場合は，スペースを前に入れていただくか， 半角アルファベット大文字の文字列の直後にスペースを入れずに 本文を入力することをお奨めします．

### 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.foo.bar.jp/~hoge/diary/

  のように記述します． この場合，上記のコマンド例は， http://www.foo.bar.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>

  のように記述します． この場合，上記のコマンド例は， 「ハイパー日記システム」と変換されます．

### ハイパー日記システム Version 2.10

Index