How to Write hnf

### Hyper NIKKI System Version 2.10

# How to Write hnf

### Overview of Hyper NIKKI File

You write your diary in hnf(Hyper Nikki File) when you use hns. hnf is very simple text file. It's file name is "dYYYYMMDD.hnf". For example, hnf of December 1st, 1999 is "d19991201.hnf"(without quotes).

You must put hnf in your diary directory(~/diary/). In "~/diary/1999/" you put hnfs of year 1999.

hnf's last modified time is used variously. If you copy hnf, you should use "tar" or "cp -p" command that keeps the last modified time information.

Basic rules of hnf is follows:

- put Command at the top of a line. If a space is the first letter of a line, the line has no Commands.
- One Command in one line.
- All Commands are capital.
- Separator of Arguments is space.
- "~" at the end of a line will be replaced by <BR>.
- hnf consists of header part and body part.
- Between hnf header and hnf body must be one blank line.
- You may write User Variables in hnf header.
- No blank line in hnf header.
- The bottom line of hnf header is "OK".
- If there is no OK at the bottom line of hnf header, the diary of the day doesn't appear.
- hnf body must start Command NEW.
- The first all captial word of a line may be Command in the future. So we recommend that putting a space at first letter of a line to avoid future miss recognition as Command.

### Example of hnf

hnf is a simple file like below.

    ----- start -----
    WETHER Cloudy
    OK

    NEW Namazu for hns 1.0.2 release
    Bug fix version 1.0.2 was released.
    ~
    The document of Namazu for hns in hns-1.02.tar.gz is old.
    See on the web.

    NEW No hnf bug
    The firest bug was discovered. But this bug has no effect when
    you write one day diary.
    ~
    See
    LINK http://www.h14m.org/docs/known_bugs-j.html バグ報告
    for the detail. Patch to it comming soon.
    ----- end -----

You can see working sample of hns and hnf at hnf of Official Diary and Official Diary (Japanese).

### コマンド一覧

コマンドが生成する 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 で事前に定義しておく必要があります。

#### 画像コマンド

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>

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

### Hyper NIKKI System Version 2.10

Index