(作成中・記述は未完成です。)
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>
定義済みの明示的ブロックのコマンドは、次のものがあります。
このほかに、後述のpreformatブロックがあります。
未定義のコマンドの場合は、対応する名前のタグを生成します。
blockquote { 山路を登りながら、こう考えた。 智に働けば角が立つ。情に棹させば流される。意地を通せば窮屈だ。とかくに人の世は住みにくい }
<blockquote>
<div class='pgroup'>
<p>山路を登りながら、こう考えた。</p>
<p>智に働けば角が立つ。情に棹させば流される。意地を通せば窮屈だ。とかくに人の世は住みにくい</p>
</div>
</blockquote>
インラインコマンドは、次の形式をしています。
[<コマンド>{内容}]
定義済みのインラインコマンドには、次のものがあります。
リンクを定義する。
[l(http://github.com/skoji/noramark){NoraMarkのレポジトリ}]
spanを定義する。おもにクラスを設定するときに利用する。
[s.note{spanの中にはいる}]
画像を定義する。このコマンドにはブレースのセクションがない。
[img(img/some_image.jpg,alternate text)]
class tcyのspanを定義する。縦書きにおける縦中横のスタイルをあてることを想定している。
FM TOWNSが登場してからすでに[tcy{25}]年がたった。
ルビをマークアップする。
[ruby(とんぼ){蜻蛉}]の[ruby(めがね){眼鏡}]はみずいろめがね
行コマンドは1行を占有し、次の形式をしています。
<コマンド>:内容
定義済みの行コマンドには、次のものがあります。
パラグラフをマークアップする。主に、クラスやIDを付加する目的で使う。
p.caution: 用量に注意してご利用ください。
divでラップされたimgをマークアップする。
image(./path-to-image/img.jpg, 代替テキスト): イメージのキャプション
新規ページを作成する。通常は、あらたなXHTMLファイルが生成される。
newpage:
*: *:ではじまる行は、箇条書きになる。 *: 空行があくまで、箇条書きがつづく。 *: 空行があくと、あらたな箇条書きになる。
<ul><li>*:ではじまる行は、箇条書きになる。 </li>
<li>空行があくまで、箇条書きがつづく。</li>
</ul>
<ul><li>空行があくと、あらたな箇条書きになる。</li>
</ul>
}