NoraMark Manual

(作成中・記述は未完成です。)

NoraMarkは、EPUBで利用するXHTMLを生成するためのマークアップとしてデザインされました。次のような特徴があります。

必要なもの

インストール方法

Gemfileに次のように書きます

gem 'nora_mark' 

そして、

$ bundle

または

gem install nora_mark

使い方

require 'nora_mark'
document = NoraMark::Document.parse(string_or_io, lang: 'ja')
document.html.write_as_files

マークアップ

通常のテキスト

単なるテキストもHTMLに変換されます。

吾輩は猫である。名前はまだ無い。
どこで生れたかとんと見当けんとうがつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
<中略>
この書生の掌の裏うちでしばらくはよい心持に坐っておったが、しばらくすると非常な速力で運転し始めた。
ふと気が付いて見ると書生はいない。たくさんおった兄弟が一疋ぴきも見えぬ。
<div class='pgroup'>
<p>吾輩は猫である。名前はまだ無い。</p>
<p>どこで生れたかとんと見当けんとうがつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。</p>
<p><中略></p>
<p>この書生の掌の裏うちでしばらくはよい心持に坐っておったが、しばらくすると非常な速力で運転し始めた。</p>
</div>
<div class='pgroup'>
<p>ふと気が付いて見ると書生はいない。たくさんおった兄弟が一疋ぴきも見えぬ。</p>
</div>

改行ごとに<p>要素がつくられます。空行で区切られると、<div class='pgroup'>がつくられます。

言語が日本語(ja)以外の場合は、次のようになります。

Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation 
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, <br />sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. </p>
<p>Ut enim ad minim veniam, quis nostrud exercitation</p>

明示的なブロック

NoraMarkでは、<コマンド> { ではじまり、} のみの行で終わる範囲を明示的なブロックとみなします。

d.column {
この部分は、divで囲まれます。
}
<div class="column">
<div class="pgroup">
<p>この部分は、divで囲まれます。</p>
</div>
</div>

定義済みの明示的ブロックのコマンドは、次のものがあります。

d
divを生成します
sec, section
sectionを生成します
art, article
articleを生成します

このほかに、後述のpreformatブロックがあります。

未定義のコマンドの場合は、対応する名前のタグを生成します。

blockquote {
山路を登りながら、こう考えた。
智に働けば角が立つ。情に棹させば流される。意地を通せば窮屈だ。とかくに人の世は住みにくい
}
<blockquote>
<div class='pgroup'>
<p>山路を登りながら、こう考えた。</p>
<p>智に働けば角が立つ。情に棹させば流される。意地を通せば窮屈だ。とかくに人の世は住みにくい</p>
</div>
</blockquote>

インラインコマンド

インラインコマンドは、次の形式をしています。

[<コマンド>{内容}]

定義済みのインラインコマンドには、次のものがあります。

l

リンクを定義する。

[l(http://github.com/skoji/noramark){NoraMarkのレポジトリ}]
s

spanを定義する。おもにクラスを設定するときに利用する。

[s.note{spanの中にはいる}]
img

画像を定義する。このコマンドにはブレースのセクションがない。

[img(img/some_image.jpg,alternate text)]
tcy

class tcyのspanを定義する。縦書きにおける縦中横のスタイルをあてることを想定している。

FM TOWNSが登場してからすでに[tcy{25}]年がたった。
ruby

ルビをマークアップする。

[ruby(とんぼ){蜻蛉}]の[ruby(めがね){眼鏡}]はみずいろめがね

行コマンド

行コマンドは1行を占有し、次の形式をしています。

<コマンド>:内容

定義済みの行コマンドには、次のものがあります。

p

パラグラフをマークアップする。主に、クラスやIDを付加する目的で使う。

p.caution: 用量に注意してご利用ください。
image

divでラップされたimgをマークアップする。

image(./path-to-image/img.jpg, 代替テキスト): イメージのキャプション
newpage

新規ページを作成する。通常は、あらたなXHTMLファイルが生成される。

newpage:

リスト

箇条書き

*: *:ではじまる行は、箇条書きになる。
*: 空行があくまで、箇条書きがつづく。
*: 空行があくと、あらたな箇条書きになる。
<ul><li>*:ではじまる行は、箇条書きになる。  </li>
<li>空行があくまで、箇条書きがつづく。</li>
</ul>
<ul><li>空行があくと、あらたな箇条書きになる。</li>
</ul>
}

番号つきリスト

定義リスト

見出し

単独の見出し

セクションを生成する見出し

Frontmatter

カスタマイズ

生成ルール追加

木構造の操作

XML生成