nora_mark 0.2beta7 → 0.2beta8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,13 @@
1
+ ---
2
+ lang: ja
3
+ stylesheets: [nora-simple.css, nora-simple-ja.css]
4
+ title: 行人
5
+ ---
6
+
7
+ # 行人
8
+
9
+ section {
10
+  [ruby(うめだ){梅田}]の[ruby(ステーション){停車場}]を下おりるや否いなや自分は母からいいつけられた通り、すぐ[ruby(くるま){俥}]を[ruby(やと){雇}]って[ruby(おかだ){岡田}]の家に[ruby(か){馳}]けさせた。岡田は母方の遠縁に当る男であった。自分は彼がはたして母の何に当るかを知らずにただ[ruby(うと){疎}]い親類とばかり覚えていた。
11
+
12
+ 大阪へ下りるとすぐ彼を[ruby(と){訪}]うたのには理由があった。自分はここへ来る一週間前ある友達と約束をして、今から十日以内に[ruby(はんち){阪地}]で落ち合おう、そうしていっしょに[ruby(こうや){高野}]登りをやろう、もし[ruby(じじつ){時日}]が許すなら、伊勢から名古屋へ[ruby(まわ){廻}]ろう、と取りきめた時、どっちも指定すべき場所をもたないので、自分はつい岡田の氏名と住所を自分の友達に告げたのである。
13
+ }
@@ -26,10 +26,35 @@ pre {
26
26
  border-radius: 0.5em;
27
27
  }
28
28
 
29
- pre.code-html {
30
- background: #efefef;
29
+ code {
30
+ background: #dddddd;
31
+ margin: 0.4em;
32
+ border-radius: 0.1em;
33
+ border: 1px solid #aaaaaa;
34
+ }
35
+
36
+ pre code {
37
+ margin: 0;
38
+ border: 0;
39
+ }
40
+
41
+ .pre {
42
+ margin: 1em auto;
43
+ }
44
+
45
+ .pre .caption {
46
+ color: #220000;
47
+ padding-left: 0.5em;
48
+ margin: 0 auto;
49
+ font-size: 0.9em;
50
+
31
51
  }
32
52
 
53
+ .pre pre {
54
+ margin: 0 auto;
55
+ }
56
+
57
+
33
58
  h1 {
34
59
  border-bottom: 1px solid #444444;
35
60
  }
@@ -4,25 +4,25 @@ stylesheets: [nora-simple.css, nora-simple-ja.css]
4
4
  title: NoraMark Manual
5
5
  ---
6
6
 
7
- =: NoraMark Manual
7
+ # NoraMark Manual
8
8
 
9
9
  [strong{(作成中・記述は未完成です。)}]
10
10
 
11
11
  NoraMarkは、EPUBで利用するXHTMLを生成するためのマークアップとしてデザインされました。次のような特徴があります。
12
12
 
13
- *: プレーンテキストの原稿を邪魔しない最小限の記述
14
- *: しかしマークアップ部分は、通常のテキストと「違って」見える。
15
- *: ブロック・ライン・インラインごとの基本記法を原則として固定。憶える記法は少なくてすむはず。
16
- *: 生のHTML記法なしで、多くのタグを記述できる
17
- *: マークアップに独自コマンドの追加ができる
18
- *: 文書構造に対する処理を追加できる
19
- *: パース結果をXMLとして取得できる
13
+ * Markdownと同じように、プレーンテキストの原稿に近い最小限の記法です。
14
+ * Markdownと異なり、マークアップ部分は通常のテキストと「違って」見えるようにデザインしています。これは、意識せずにマークアップを壊してしまうことを避けるためです。
15
+ * マークアップに独自コマンドの追加ができる柔軟なカスタマイズ機能を用意しています。
16
+ * 生のHTML記法なしで、多くのタグを記述できます。
17
+ * パース結果をXMLとして取得できます。
20
18
 
21
- ==: 必要なもの
19
+ ## 必要なもの
22
20
 
23
- *: ruby 2.0以上
21
+ * ruby 2.0以上
24
22
 
25
- ==: インストール方法
23
+ ## インストール方法
24
+
25
+ ### Gemfile
26
26
 
27
27
  Gemfileに次のように書きます
28
28
 
@@ -35,15 +35,15 @@ code {
35
35
  $ bundle
36
36
  }
37
37
 
38
- または
38
+ ### 直接インストール
39
39
 
40
40
  code {
41
41
  gem install nora_mark
42
42
  }
43
43
 
44
- ==: 使い方
44
+ ## 使い方
45
45
 
46
- ===: コマンドラインから
46
+ ### コマンドラインから
47
47
 
48
48
  code {
49
49
  $ nora2html < source.nora > output.xhtml
@@ -55,8 +55,9 @@ code {
55
55
  $ nora2html --kconv < source.nora > output.xhtml
56
56
  }
57
57
 
58
- [s.strong{nora2htmlは、newpageコマンドを<hr />タグに置き換え、すべてのページをひとつのxhtmlとして出力します}]
59
- ===: コードから
58
+ [strong{nora2htmlは、newpageコマンドを`<hr />`タグに置き換え、すべてのページをひとつのxhtmlとして出力します}]
59
+
60
+ ### コードから
60
61
  code {//ruby
61
62
  require 'nora_mark'
62
63
 
@@ -64,20 +65,33 @@ document = NoraMark::Document.parse(string_or_io, lang: 'ja')
64
65
  document.html.write_as_files
65
66
  //}
66
67
 
67
- ==: マークアップ
68
+ ### Emacs Lisp noramark-mode
69
+
70
+ Emacs用のメジャーモードを提供するnoramark-mode.elを用意しています。現在のところ、font-lockによるsyntax highlight機能と、outline-minor-modeのサポートを提供しています。
71
+
72
+ 1. normark-mode.elをEmacsのload-pathが通った場所に配置してください。
73
+ 2. `~/.emacs.d/init.el`に次の記述をしてください。
74
+
75
+ ```emacs-lisp
76
+ (require 'noramark-mode)
77
+ (setq auto-mode-alist (cons '("\\.nora$" . noramark-mode) auto-mode-alist))
78
+ (setq auto-mode-alist (cons '("-nora\\.txt$" . noramark-mode) auto-mode-alist))
79
+ ```
80
+
81
+ ## マークアップ
68
82
 
69
- ===: 通常のテキスト
83
+ ### 通常のテキスト
70
84
 
71
85
  単なるテキストもHTMLに変換されます。
72
86
 
73
- pre(原稿) {//
87
+ pre(原稿) {
74
88
  吾輩は猫である。名前はまだ無い。
75
89
  どこで生れたかとんと見当けんとうがつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
76
90
  <中略>
77
91
  この書生の掌の裏うちでしばらくはよい心持に坐っておったが、しばらくすると非常な速力で運転し始めた。
78
92
 
79
93
  ふと気が付いて見ると書生はいない。たくさんおった兄弟が一疋ぴきも見えぬ。
80
- //}
94
+ }
81
95
 
82
96
  code(変換結果) {//html
83
97
  <div class='pgroup'>
@@ -91,7 +105,8 @@ code(変換結果) {//html
91
105
  </div>
92
106
  //}
93
107
 
94
- 改行ごとに<p>要素がつくられます。空行で区切られると、<div class='pgroup'>がつくられます。
108
+ 改行ごとに`<p>`要素がつくられます。空行で区切られると`<div class='pgroup'>`がつくられます。
109
+
95
110
  言語が日本語(ja)以外の場合は、次のようになります。
96
111
 
97
112
  pre(原稿) {
@@ -106,9 +121,11 @@ code(変換結果) {//html
106
121
  <p>Ut enim ad minim veniam, quis nostrud exercitation</p>
107
122
  //}
108
123
 
109
- ===: 明示的なブロック
124
+ 後述のparagraph_styleでもこの振る舞いを切り替えることができます。
125
+
126
+ ### 明示的なブロック
110
127
 
111
- NoraMarkでは、<コマンド> { ではじまり、} のみの行で終わる範囲を明示的なブロックとみなします。
128
+ NoraMarkでは、`<コマンド> {` ではじまり、`}` のみの行で終わる範囲を明示的なブロックとみなします。
112
129
 
113
130
  pre(原稿) {//
114
131
  d.column {
@@ -124,6 +141,25 @@ code(変換結果) {//html
124
141
  </div>
125
142
  //}
126
143
 
144
+ このように、コマンドにはclassを指定することができます。
145
+ 同じように、idの指定も可能です。
146
+
147
+ pre(原稿) {//
148
+ d#the_column.column {
149
+ この部分は、divで囲まれます。
150
+ }
151
+ //}
152
+
153
+ code(変換結果) {//html
154
+ <div id="the_column" class="column">
155
+ <div class="pgroup">
156
+ <p>この部分は、divで囲まれます。</p>
157
+ </div>
158
+ </div>
159
+ //}
160
+
161
+ クラス・IDの指定は、多くのコマンドで同じように利用できます。
162
+
127
163
  定義済みの明示的ブロックのコマンドは、次のものがあります。
128
164
 
129
165
  ;: d : divを生成します
@@ -150,47 +186,198 @@ code(変換結果) {//html
150
186
  </blockquote>
151
187
  //}
152
188
 
153
- ===: インラインコマンド
189
+ #### Preformat block
190
+
191
+ 整形済みブロックは、次のように指定します。
192
+
193
+ code(形式1){//
194
+ pre {
195
+ format 1 : 整形済みの内容
196
+ }
197
+ //}
198
+
199
+ code(形式2) {
200
+ pre {//
201
+ format 2: 整形済みの内容
202
+ //}
203
+ }
204
+
205
+ code(変換結果) {//html
206
+ <pre>
207
+ format 1 : 整形済みの内容
208
+ </pre>
209
+ <pre>
210
+ format 2 : 整形済みの内容
211
+ </pre>
212
+ //}
213
+
214
+ また、次のように書くことで整形済みコードを作ることもできます。
215
+
216
+ ```(形式1)
217
+ code {
218
+ 整形済みコード
219
+ }
220
+ ```
154
221
 
155
- インラインコマンドは、次の形式をしています。
222
+ ```(形式2)
223
+ code {//
224
+ 整形済みコード
225
+ //}
226
+ ```
227
+
228
+ code(形式3) {
229
+ ```
230
+ 整形済みコード
231
+ ```
232
+ }
233
+
234
+ code(変換結果) {//html
235
+ <pre></code>
236
+ 整形済みコード
237
+ </code></pre>
238
+ //}
239
+
240
+ ##### code languageの指定
241
+
242
+ code languageの指定をすることができます。
243
+
244
+ ```(形式1)
245
+ code {//ruby
246
+ puts "Hello, World."
247
+ //}
248
+ ```
249
+
250
+ code(形式2){
251
+ ```ruby
252
+ puts "Hello, World."
253
+ ```
254
+ }
255
+
256
+ code(変換結果) {//html
257
+ <pre class='code-ruby' data-code-language='ruby'><code>
258
+ puts "Hello, World."
259
+ </code></pre>
260
+ //}
261
+
262
+ ##### キャプションの指定
263
+
264
+ pre(原稿) {//
265
+ code(ソースコードはこちら) {
266
+ puts 'Hello, World'
267
+ }
268
+ //}
269
+
270
+ または、こんな書き方もできます。
271
+
272
+ pre(原稿) {//
273
+ ```(ソースコードはこちら)
274
+ puts 'Hello, World'
275
+ ```
276
+ //}
277
+
278
+ こんな風になります。
279
+ code(変換結果) {//html
280
+ <div class='pre'>
281
+ <p class='caption'>原稿はこちら</p>
282
+ <pre><code>
283
+ puts 'Hello, World'
284
+ </code></pre>
285
+ </div>
286
+ //}
287
+
288
+ ### インラインコマンド
289
+
290
+ インラインコマンドは、原則として次の形式をしています。
156
291
  pre{//
157
292
  [<コマンド>{内容}]
158
293
  //}
159
294
 
160
295
  定義済みのインラインコマンドには、次のものがあります。
161
296
 
297
+
162
298
  ;:l {
163
- リンクを定義する。
299
+ リンクを定義します。
164
300
  pre {//
165
301
  [l(http://github.com/skoji/noramark){NoraMarkのレポジトリ}]
166
302
  //}
303
+
304
+ code(変換結果) {//html
305
+ <a href='http://github.com/skoji/noramark'>NoraMarkのレポジトリ</a>
306
+ //}
167
307
  }
168
- ;:s {
169
- spanを定義する。おもにクラスを設定するときに利用する。
308
+
309
+ ;:sp {
310
+ spanを定義します。
170
311
  pre {//
171
- [s.note{spanの中にはいる}]
312
+ [sp.note{spanの中にはいる}]
313
+ //}
314
+
315
+ code(変換結果) {//html
316
+ <span class='note">spanの中に入る</span>
172
317
  //}
173
318
  }
319
+
174
320
  ;:img {
175
- 画像を定義する。このコマンドにはブレースのセクションがない。
321
+ 画像を定義します。このコマンドにはブレースのセクションがありません。
176
322
  pre {//
177
323
  [img(img/some_image.jpg,alternate text)]
178
324
  //}
325
+
326
+ code(変換結果) {//html
327
+ <img src='img/some_image.jpg' alt='alternate text' />
328
+ //}
329
+
179
330
  }
180
331
  ;:tcy {
181
- class tcyのspanを定義する。縦書きにおける縦中横のスタイルをあてることを想定している。
332
+ class tcyのspanを定義します。縦書きにおける縦中横のスタイルをあてることを想定しています。
182
333
  pre {//
183
334
  FM TOWNSが登場してからすでに[tcy{25}]年がたった。
184
335
  //}
336
+
337
+ code(変換結果) {//html
338
+ <p>FM TOWNSが登場してからすでに<span class='tcy'>25</span>年がたった。</p>
339
+ //}
340
+
341
+
185
342
  }
343
+
186
344
  ;:ruby {
187
- ルビをマークアップする。
345
+ ルビをマークアップします。
188
346
  pre {//
189
347
  [ruby(とんぼ){蜻蛉}]の[ruby(めがね){眼鏡}]はみずいろめがね
190
348
  //}
349
+
350
+ code(変換結果) {//html
351
+ <p><ruby>蜻蛉<rp>(</rp><rt>とんぼ</rt><rp>)</rp></ruby>の<ruby>眼鏡<rp>(</rp><rt>めがね</rt><rp>)</rp></ruby>はみずいろめがね</p>
352
+ //}
353
+
191
354
  }
192
355
 
193
- ===: 行コマンド
356
+ ;:code {
357
+ インラインでコードをマークアップします。中はMarkupとして解釈しません。[code{`}] (バッククオート)で囲む方法と、`[code{}]`を使う方法があります。
358
+
359
+ pre {//
360
+ `puts "Hello, World."` and [code{puts "Hello, World."}]
361
+ //}
362
+
363
+ code(変換結果) {//html
364
+ <p><code>puts "Hello, World.</code> and <code>puts "Hello, World.</code> </p>
365
+ //}
366
+ }
367
+
368
+ ただし`[code{}]`の形式ではたとえば
369
+
370
+ code {
371
+ [code{ [ruby(とんぼ){蜻蛉}] }]
372
+ }
373
+
374
+ と書くと、蜻蛉の後ろにある`}]`でcodeコマンドは終了してしまうため、次のような変換結果となります。
375
+
376
+ code {//html
377
+ <p><code>[ruby(とんぼ){蜻蛉</code>}]</p>
378
+ //}
379
+
380
+ ### 行コマンド
194
381
 
195
382
  行コマンドは1行を占有し、次の形式をしています。
196
383
  pre{//
@@ -200,83 +387,278 @@ pre{//
200
387
  定義済みの行コマンドには、次のものがあります。
201
388
 
202
389
  ;: p {
203
- パラグラフをマークアップする。主に、クラスやIDを付加する目的で使う。
390
+ パラグラフをマークアップします。クラスやIDを付加する目的で使うことを想定しています。
204
391
  pre{//
205
392
  p.caution: 用量に注意してご利用ください。
206
393
  //}
207
- }
394
+
395
+ code(変換結果) {//html
396
+ <p class='caution'>用量に注意してご利用ください。</p>
397
+ //}
208
398
 
209
399
  ;: image {
210
- divでラップされたimgをマークアップする。
400
+ figureでラップされたimgをマークアップします。
211
401
  pre{//
212
- image(./path-to-image/img.jpg, 代替テキスト): イメージのキャプション
402
+ image(path-to-image/img.jpg, 代替テキスト): イメージのキャプション
213
403
  //}
404
+
405
+ code(変換結果) {//html
406
+ <figure class='img-wrap'>
407
+ <img src='path-to-image/img.jpg' alt='代替テキスト' />
408
+ <figcaption>イメージのキャプション</figcaption>
409
+ </figure>
410
+ //}
411
+
214
412
  }
215
413
 
216
414
  ;: newpage {
217
- 新規ページを作成する。通常は、あらたなXHTMLファイルが生成される。
415
+ 新規ページを作成します。この位置XHTMLファイルが区切られ、新たなXHTMLが生成されます。
218
416
  pre{//
219
417
  newpage:
220
418
  //}
221
419
 
222
420
  }
223
421
 
224
- ===: リスト
422
+ ### リスト
225
423
 
226
- ====: 箇条書き
424
+ #### 箇条書き
227
425
 
228
426
  pre(原稿) {//
229
- *: *:ではじまる行は、箇条書きになる。
230
- *: 空行があくまで、箇条書きがつづく。
427
+ * *ではじまる行は、箇条書きになります
428
+ * 空行があくまで、箇条書きがつづきます。
231
429
 
232
- *: 空行があくと、あらたな箇条書きになる。
430
+ * 空行があくと、あらたな箇条書きになります。
431
+ * さらに、
432
+ ** *を続けるとネストされます。
233
433
  //}
234
434
 
235
435
  code(変換結果) {//html
236
- <ul><li>*:ではじまる行は、箇条書きになる。 </li>
237
- <li>空行があくまで、箇条書きがつづく。</li>
436
+ <ul><li>*ではじまる行は、箇条書きになります。</li>
437
+ <li>空行があくまで、箇条書きがつづきます。。</li>
238
438
  </ul>
239
- <ul><li>空行があくと、あらたな箇条書きになる。</li>
439
+ <ul><li>空行があくと、あらたな箇条書きになります。</li>
440
+ <li>さらに、
441
+ <ul> <li>*を続けるとネストされます。</li></ul>
442
+ </li>
240
443
  </ul>
241
- }
242
444
  //}
243
445
 
244
- ====: 番号つきリスト
446
+ #### 番号つきリスト
245
447
 
246
448
  pre(原稿) {//
247
- 1: 数字:ではじまる行は、番号つきリストになる。
248
- 2: 空行があくまで、リストがつづく。
449
+ 1. 数字.ではじまる行は、番号つきリストになる。
450
+ 2. 空行があくまで、リストがつづく。
249
451
 
250
- 3: 空行があくと、あらたなリストになる。
251
- 10: 先頭の数字にかかわらず、1から順に番号がふられる。
452
+ 3. 空行があくと、あらたなリストになる。
453
+ 10. 先頭の数字にかかわらず、1から順に番号がふられる。
252
454
  //}
253
455
 
254
456
  code(変換結果) {//html
255
- <ol><li>数字:ではじまる行は、番号つきリストになる。 </li>
457
+ <ol><li>数字.ではじまる行は、番号つきリストになる。 </li>
256
458
  <li>空行があくまで、リストがつづく。</li>
257
459
  </ol>
258
460
  <ol><li>空行があくと、あらたなリストになる。</li>
259
461
  <li>先頭の数字にかかわらず、1から順に番号がふられる。</li>
260
462
  </ol>
463
+ //}
464
+
465
+ 番号つきリストのネストはサポートしていませんが、どうしてもやりたい場合は次のような方法もあります。
466
+
467
+ code(原稿) {//
468
+ ol {
469
+ li: 第一の要素
470
+ li {
471
+ ここはネストしたい。
472
+ ol {
473
+ li: ネストします。
474
+ }
475
+ li: 第三の要素
476
+ }
477
+ }
478
+ //}
479
+
480
+ #### 定義リスト
481
+ 定義リストには、二種類の書き方があります。
482
+
483
+ ##### 1行の定義
484
+
485
+ pre(原稿) {
486
+ ;: それがし : 名前がわからない,または名前を隠して人や物事をさす語。
487
+ ;: それがしかれがし : 不定称。二人以上の人に対し,名を知らなかったり,名を省略していうときに用いる語。
488
+ }
489
+
490
+ code(変換結果) {//html
491
+ <dl>
492
+ <dt>それがし</dt>
493
+ <dd>名前がわからない,または名前を隠して人や物事をさす語。</dd>
494
+ <dt>それがしかれがし</dt>
495
+ <dd>不定称。二人以上の人に対し,名を知らなかったり,名を省略していうときに用いる語。</dd>
496
+ </dl>
497
+ //}
498
+
499
+ ##### 複数行の定義
500
+ 説明が長い場合は、複数行の形式で書けます。この場合、説明部分は段落になります。
501
+
502
+ pre(原稿) {//
503
+ ;: それがし {
504
+ 名前がわからない,または名前を隠して人や物事をさす語。
505
+ }
506
+ ;: それがしかれがし {
507
+ 不定称。二人以上の人に対し,名を知らなかったり,名を省略していうときに用いる語。
508
+ }
509
+ //}
510
+
511
+ code(変換結果) {//html
512
+ <dl>
513
+ <dt>それがし</dt>
514
+ <dd><div class="pgroup"><p>名前がわからない,または名前を隠して人や物事をさす語。</p></div></dd>
515
+ <dt>それがしかれがし</dt>
516
+ <dd><div class="pgroup"><p>不定称。二人以上の人に対し,名を知らなかったり,名を省略していうときに用いる語。</p></div></dd>
517
+ </dl>
518
+ //}
519
+
520
+ ### 見出し
521
+ #### 単独の見出し
522
+
523
+ h1からh6が用意されています。そのまま、<h1> タグに変換されます。
524
+
525
+ pre(原稿) {
526
+ h1: 単独の見出し
527
+ ここに本文
528
+ }
529
+ code(変換結果){//html
530
+ <h1>単独の見出し</h1>
531
+ <div class='pgroup'>
532
+ <p>ここに本文</p>
533
+ </div>
534
+ //}
535
+
536
+ #### セクションを生成する見出し
537
+
538
+ Markdown風の # をつかった見出しも使えます。この見出しは、sectionを生成します。
539
+
540
+ pre(原稿) {
541
+ # 見出し
542
+ 本文
543
+ }
544
+
545
+ code(変換結果) {//html
546
+ <section>
547
+ <h1>見出し</h1>
548
+ <div class='pgroup'>
549
+ <p>本文</p>
550
+ </div>
551
+ </section>
552
+ //}
553
+
554
+ 入れ子にもできます。sectionの範囲は適切に判断されます。
555
+
556
+ pre(原稿) {
557
+ # 見出し
558
+ 本文
559
+ ## 小見出し
560
+ 次の本文
561
+ # 新しい章
562
+ 新しい章の本文
563
+ }
564
+
565
+ code(変換結果) {//html
566
+ <section>
567
+ <h1>見出し</h1>
568
+ <div class='pgroup'>
569
+ <p>本文</p>
570
+ </div>
571
+ <section>
572
+ <h2>小見出し</h2>
573
+ <div class='pgroup'>
574
+ <p>次の本文</p>
575
+ </div>
576
+ </section>
577
+ </section>
578
+ <section>
579
+ <h1>新しい章</h1>
580
+ <div class='pgroup'>
581
+ <p>新しい章の本文</p>
582
+ </div>
583
+ </section>
584
+ //}
585
+
586
+ 明示的に範囲を指定したセクションをつくることもできます。
587
+
588
+ pre(原稿) {//
589
+ # 第一のセクション
590
+ ここは第一のセクション
591
+ ## 第二のセクション {
592
+ ここは第二のセクション
261
593
  }
594
+ ここは再び第一のセクション
595
+ //}
596
+
597
+ code(変換結果) {//html
598
+ <section>
599
+ <h1>第一のセクション</h1>
600
+ <div class='pgroup'>
601
+ <p>ここは第一のセクション</p>
602
+ </div>
603
+ <section>第二のセクション</h1>
604
+ <div class='pgroup'>
605
+ <p>ここは第二のセクション</p>
606
+ </div>
607
+ </section>
608
+ <div class='pgroup'>
609
+ <p>ここは再び第一のセクション</p>
610
+ </div>
611
+ </section>
612
+ //}
613
+
614
+ ### Frontmatter
615
+
616
+ 各ページごとにYAML frontmatterでメタデータを記載できます。
617
+
618
+ code(Frontmatterの例) {//
619
+ ---
620
+ title: ページのタイトル
621
+ stylesheets: [reset.css, default.css]
622
+ lang: ja
623
+ paragraph_style: default
624
+ ---
262
625
  //}
263
626
 
264
- ====: 定義リスト
627
+ `title`, `stylesheets`, `lang`はそれぞれXHTMLのheaderにかかれます。`paragraph_style`は、HTML生成時の段落スタイル指示ができます。
628
+
629
+ ## カスタマイズ
630
+
631
+ ### 生成ルール追加
632
+ ### 木構造の操作
633
+
634
+ ### コマンドの書式
635
+ [span.note{(加筆修正予定)}]
636
+
637
+ pre(コマンド) {//
638
+ コマンド名[id][class][パラメータ][名前付きパラメータ]
639
+ //}
640
+
641
+ 具体的には、たとえば次のような形をしています。
642
+
643
+ pre(具体例) {//
644
+ div#id1#id2.class1.class2(parameter1, parameter2)[named_parameter: 1, named_parameter 2]
645
+ //}
646
+
647
+ * コマンド名は英字ではじまり、英数字とハイフン、アンダースコアからなります。
648
+ * idは、#からはじまり、英数字とハイフン、アンダースコアからなります。複数続けることができます。
649
+ * classは、.からはじまり、英数字とハイフン、アンダースコアからなります。複数続けることができます。
650
+
651
+ * パラメータは`()`で囲まれています。カンマで区切られた領域ごとに、独立したパラメータになります。
652
+ * パラメータの内容は、NoraMarkのマークアップとしてパースされます。
265
653
 
266
- =====: 1行の定義
654
+ * 名前付きパラメータは`[]`で囲まれていて、カンマで区切られた次の形式をしています。
655
+ ** 名前: パラメータ
656
+ * 名前は英字ではじまり、英数字とハイフン、アンダースコアからなります。名前付きパラメータの内容は、NoraMarkのマークアップとしてはパースされません。
267
657
 
268
- =====: 複数行の定義
658
+ ## XML生成
269
659
 
270
- ===: 見出し
271
660
 
272
- ====: 単独の見出し
273
661
 
274
- ====: セクションを生成する見出し
275
662
 
276
- ===: Frontmatter
277
663
 
278
- ==: カスタマイズ
279
- ===: 生成ルール追加
280
- ===: 木構造の操作
281
664
 
282
- ==: XML生成