Piki -- コマンドライン WIKI

English

山本和彦
作成:2010.3.10
更新:2011.3.15

"piki" は、テキストファイルを HTML ファイルに変換するためのコマンドライン・プログラムです。"piki" は文章の構造を表現するための簡潔な記法を提供します。

"piki" は、Haskell の関数型パーサーである Parsec で書かれており、HackageDB で公開しています。Git リポジトリーは、github にあります。

"piki" コマンド

"piki" は、HTML 雛形ファイル("template.html"とする) と Piki 記法で書かれたファイル("index.piki"とする)をコマンドライン引数に取り、HTML ファイル("index.html" とする)を出力します。

% piki template.html index.piki > index.html

"template.html" には HTML のメタ情報を記述します。"piki" は、Piki ファイル中の "$body" を Piki ファイルから生成したコンテンツで置き換えます。また、"$title" を 最初の <h1> の値で置き換えます。

template.html の例は、ブラウザーの「ソースを見る」で表示できるでしょう。index.piki の例も表示してみて下さい。

Piki ファイルは、UTF-8 で書いて下さい。

Piki 記法

他の WIKI システムと同様に、多くの Piki 記法は行頭の文字を利用します。

コメント

"#' で始まる行は無視されます。

# コメント。無視される。

罫線

"=" で始まる行は、罫線(<hr />)になります。"=" 以降の文字は無視されます。

================================================================

見出し

<h?> タグは "*" で表現します。"*" の数は、見出しのレベルを表します。

* レベル1の見出し (h1)
** レベル2の見出し (h2)

Lists

"-" と "+" は、それぞれ番号なしリスト(<ul>)と番号付きリスト(<ol>)を表します。両方を同時に再帰的に利用できます。

- レベル 1
++ 番号付きのレベル 2
++ 番号付きのレベル 2
- レベル 1
++ 番号付きのレベル 2
++ 番号付きのレベル 2
+++ 番号付きのレベル 3
+++ 番号付きのレベル 3
- レベル 1

定義リスト

"?" と "!" は、それぞれ定義リスト(<d>)のタイトル(<dt>)と説明(<dd>)を表します。この記法は再帰的に利用できません。

? タイトル 1
! 説明 1
? タイトル 2
! 説明 2

画像

"@" は画像(<img />)を意味します。"@" には、タイトルと URL の組が続きます。それらは、空白で区切ります。タイトルが空白を含む場合は、ダブルクオートで囲む必要があります。

@ "Image of flowers" http://example.com/img/flower.jpg
@ 僕の猫 cats.jpg 私の犬 dogs.jpg

クリックできる画像

"@@" はクリックできる画像(<img />)を意味します。"@" には、タイトル、画像のURL、参照URL の三組が続きます。それらは、空白で区切ります。タイトルが空白を含む場合は、ダブルクオートで囲む必要があります。

@@ English /image/english.png /en
@@ Japanese /image/japanese.png /ja

整形済みテキスト

整形済みテキスト(<pre>)は、">|" と "|<" で囲みます。

 >|
 (define (fib n) 
   (cond
    ((= n 0) 0)
    ((= n 1) 1)
    (else
     (+ (fib (- n 1)) (fib (- n 2))))))
 |<

区域

"{" と "}" で囲まれた行は、区域(<div>)になります。"{" の後に大文字が含まれていると、それは "id" の値になります。それ以外は、"class" の値になります。

{center
なんらかの Piki テキスト
}

CSS と一緒に利用すると便利です。

.center {
        margin: 0px auto;
        text-align: center;
}

段落

Piki 記法で始まらない行は、段落(<p>)になります。段落の区切りは、空行です。

第一段落:日本語では、一行に書く方がいいでしょう。

第二段落:English can be spread into 
multiple lines.

リンク

リンクを張るには、"[title url]" という記法を用います。タイトルが空白を含む場合は、ダブルクオートで囲む必要があります。もちろん、この記法は行頭でなくとも使えます。

僕の好きなコンピュータ言語は [Haskell http://www.haskell.org/] です。

表は、各要素を "|" で区切って記述します。

|システム|種類|
|[Hugs http://www.haskell.org/hugs/]|インタープリター|
|[GHC http://www.haskell.org/ghc/]|コンパイラー\|インタープリター|

回避文字

回避文字は '\' です。"[]" と表示するには "\[\]" と書きましょう。

通常、HTML の特殊文字は、参照文字列に変換されます。たとえば、'<' は "&lt;" に変換されます。

もし、特殊文字が回避されたら、参照文字列には変換されません。以下に興味深い例を示します。

{right
山本和彦\<br /\>
2009.4.6
}
.right {
        text-align: right;
        padding-right: 16px;
}