■WEB3.0時代を生き抜くクロステキストコンバータ　通称黒こんぶ
開発言語：C#

■基本処理
1.生データを入力プラグインで黒こんぶDOMに変換
2.黒こんぶDOMを出力プラグインで出力形式に変更

■ファイル構成
croconv.exe	実行ファイル
kelp.dll	プラグイン用のインターフェースとユーティリティが定義されているクラスライブラリ
その他.dll	入出力のプラグイン


■生成するDOMオブジェクト
黒昆布ではテキストのすべてのパートを入れ子の構造として捕らえる。
たとえばルビ表記"hogehoge{base(text)}hoge"は内部的には以下のように分解する。
{}はブロックをあらわし、ブロックの種別で修飾される場合がある。
>-------------------------------------------------------------------
{
	{"hogehoge"}
	ruby{
		base{"base"}
		text{"text"}
	}
	{"hoge"}
}
<--------------------------------------------------------------------
以下のような標準的な章・節構造は
>--------------------------------------------------------------------
!title
*chapter
str1
**section
str2
<--------------------------------------------------------------------
以下のように捉える。
--------------------------------------------------------------------
section{
	{"title"}
	section{
		{"chapter"}
		{"str1"}
		section{
			{"section"}
			{"str2"}
		}
	}
}
--------------------------------------------------------------------

あるいは階層構造は
-------------------
>>
<<
-------------------
を用いて相対的に記述することが出来る。

■入力用標準形式の書式
・アウトライン記法
アウトライン記法は項目名を書くべきところを省略すると、次に続く行が項目名となる。
!項目名
	文章そのもののタイトルを決める。
	ルートまたはルート直下のTextBlockで、最上位のものとなる。
	読み込むファイルに必ずひとつ必要で、!以前の内容は無視される。
*項目名
	第1レベルアウトライン開始
**項目名
	第2レベルアウトライン開始
***項目名
	第3レベルアウトライン開始
****項目名
	第4レベルアウトライン開始
>>項目名
	現在のレベルから一段低いアウトラインを開始する
<<
	現在のアウトラインレベルを終了し、一段上がる
<>項目名
	現在のアウトラインを閉じ、それと同じレベルのアウトラインを開始する

---------------------------------------------------典型的なアウトライン
!タイトル
*第１章
**第１節
***第１項
1.1.1の本文
**第２節
1.2の本文
*第２章
**第１節
2.1の本文
**第２節
2.2の本文
*第３章
**第１節
3.1の本文
**第２節
3.2の本文
-----------------------------------------------------------------------

・相対アウトライン記号
アウトラインを">>","<<","<>"の記号を使うことで相対的に書くことができます。
">>"では現在のアウトラインの一段深いアウトラインを開始します。
"<<"では現在のアウトラインを終了して、一段浅いところに戻ります。
"<>"では、現在のアウトラインを終了して、同じレベルのアウトラインを作ります。

-------------------------------------------------相対アウトラインの例
!タイトル
>>第１章
>>第１節
>>第１項
1.1.1の本文
<<
>>第２節
1.2の本文
<<
>>第２章
>>第１節
2.1の本文
<>第２節
2.2の本文
<<
>>第３章
>>第１節
3.1の本文
<>第２節
3.2の本文
---------------------------------------------------------------------



・強調記法
強調する部分を"+"と"|"で囲む。
たとえば+こんなかんじ|で。



・ルビ記法
ルビを振る対象を{}で囲み、ルビの内容を()で囲んで{}の中に入れる。
たとえばこんな{風(ふう)}にすると、「風」に「ふう」というルビが振られる。


・記法エスケープ
記法のトークンとなる"{"や"+"などの文字をトークンとして使用しないときには、
その文字の前に"\"をつけてください。
たとえば\+こんな感じに\|すると、強調記法にならず、記号が表示できます。


まずはサンプル(kelpSample.txt)を読み込んで、感じをつかんでください。
