pandoc2review 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.github/workflows/pandoc.yml +18 -0
- data/.gitignore +47 -0
- data/Gemfile +6 -0
- data/LICENSE +339 -0
- data/README.md +105 -0
- data/Rakefile +13 -0
- data/exe/pandoc2review +12 -0
- data/lib/pandoc2review.rb +99 -0
- data/lua/filters.lua +163 -0
- data/lua/review.lua +620 -0
- data/markdown-format.ja.md +721 -0
- data/pandoc2review.gemspec +29 -0
- data/samples/format.md +276 -0
- data/samples/reviewsample/.gitignore +154 -0
- data/samples/reviewsample/Gemfile +4 -0
- data/samples/reviewsample/Rakefile +3 -0
- data/samples/reviewsample/catalog.yml +10 -0
- data/samples/reviewsample/ch01.md +38 -0
- data/samples/reviewsample/ch02.re +3 -0
- data/samples/reviewsample/config-ebook.yml +6 -0
- data/samples/reviewsample/config.yml +20 -0
- data/samples/reviewsample/images/cover-a5.ai +5836 -16
- data/samples/reviewsample/images/cover.jpg +0 -0
- data/samples/reviewsample/images/pandoc2review.png +0 -0
- data/samples/reviewsample/lib/tasks/review.rake +128 -0
- data/samples/reviewsample/lib/tasks/z01_pandoc2review.rake +69 -0
- data/samples/reviewsample/sty/README.md +168 -0
- data/samples/reviewsample/sty/gentombow.sty +769 -0
- data/samples/reviewsample/sty/jsbook.cls +2072 -0
- data/samples/reviewsample/sty/jumoline.sty +310 -0
- data/samples/reviewsample/sty/plistings.sty +326 -0
- data/samples/reviewsample/sty/review-base.sty +530 -0
- data/samples/reviewsample/sty/review-custom.sty +1 -0
- data/samples/reviewsample/sty/review-jsbook.cls +503 -0
- data/samples/reviewsample/sty/review-style.sty +49 -0
- data/samples/reviewsample/sty/reviewmacro.sty +15 -0
- data/samples/reviewsample/style.css +494 -0
- metadata +128 -0
@@ -0,0 +1,721 @@
|
|
1
|
+
# pandoc2review における Markdown 形式処理の注意事項
|
2
|
+
|
3
|
+
<https://pandoc-doc-ja.readthedocs.io/ja/latest/users-guide.html#pandocs-markdown> をベースに、挙動の注意点を示しておきます。
|
4
|
+
|
5
|
+
- (★) は、pandoc2review 側で対処・修正する可能性のある課題ですが、目途が立っているわけではありません。
|
6
|
+
|
7
|
+
## 段落
|
8
|
+
|
9
|
+
1行以上のテキストと1行以上の空行で段落を形成することは同じです。
|
10
|
+
|
11
|
+
以下に例を示します (□は実際にはスペースが入っているものとします)。
|
12
|
+
|
13
|
+
```
|
14
|
+
□□one
|
15
|
+
two
|
16
|
+
|
17
|
+
three□
|
18
|
+
four
|
19
|
+
|
20
|
+
↓
|
21
|
+
one two
|
22
|
+
|
23
|
+
three four
|
24
|
+
|
25
|
+
I
|
26
|
+
have
|
27
|
+
a pen.
|
28
|
+
↓
|
29
|
+
I have a pen.
|
30
|
+
|
31
|
+
日本
|
32
|
+
語
|
33
|
+
ABC
|
34
|
+
漢字
|
35
|
+
↓
|
36
|
+
日本語ABC漢字
|
37
|
+
```
|
38
|
+
|
39
|
+
段落を複数行で記述したときには連結されますが、前後の文字の種類を見てスペースを入れるかどうかを独自のルールで判断しています。pandoc の `east_asian_line_breaks` 拡張を使うほうがよければ、`--disable-eaw` オプションを付けます。`east_asian_line_breaks` 拡張の場合、和文は空白なし・欧文は空白ありで結合されるのは元の挙動と同じですが、和欧間にはスペースが入ります。
|
40
|
+
|
41
|
+
```
|
42
|
+
日本
|
43
|
+
語
|
44
|
+
ABC
|
45
|
+
漢字
|
46
|
+
↓
|
47
|
+
日本語 ABC 漢字
|
48
|
+
```
|
49
|
+
|
50
|
+
強制改行は行末に `\` を付けます。`@<br>{}` に変換されます。
|
51
|
+
|
52
|
+
```
|
53
|
+
This paragraph has \
|
54
|
+
br.
|
55
|
+
↓
|
56
|
+
This paragraph has@<br>{}br.
|
57
|
+
```
|
58
|
+
|
59
|
+
段落字下げをデフォルトとするタイプセット環境 (TeX など) においてその段落の字下げを抑制するには、段落前に `\noindent` 行を入れます。`//noindent` に変換されます。
|
60
|
+
|
61
|
+
```
|
62
|
+
\noindent
|
63
|
+
don't indent this.
|
64
|
+
↓
|
65
|
+
//noindent
|
66
|
+
don't indent this.
|
67
|
+
```
|
68
|
+
|
69
|
+
## 空行
|
70
|
+
|
71
|
+
全角スペースだけの段落を入れる方法もありますが、Re:VIEW の `//blankline` を入れるには、`\` を行末とその次の行の2回記述します。
|
72
|
+
|
73
|
+
```
|
74
|
+
Blankline below.\
|
75
|
+
\
|
76
|
+
Blankline above.
|
77
|
+
↓
|
78
|
+
Blankline below.
|
79
|
+
|
80
|
+
//blankline
|
81
|
+
|
82
|
+
Blankline above.
|
83
|
+
```
|
84
|
+
|
85
|
+
## 見出し
|
86
|
+
Setext 形式・ATX 形式は問いません。見出しレベル 7 以上は、re ファイルに変換することはできますが、Re:VIEW のコンパイル時にエラーになります。
|
87
|
+
|
88
|
+
見出しのレベルは `--shiftheading` オプションで増減できます (たとえば `--shiftheading=1` とすると、`#` が `==`、`##` が `===`、… と出力時に1つレベルが多くなります)。
|
89
|
+
|
90
|
+
見出し識別子を指定し、Re:VIEW の見出しオプションまたは ID にすることもできます。
|
91
|
+
|
92
|
+
```
|
93
|
+
## H
|
94
|
+
↓
|
95
|
+
== H
|
96
|
+
|
97
|
+
####### H
|
98
|
+
↓
|
99
|
+
======= H ←ただし Re:VIEW ではエラー
|
100
|
+
|
101
|
+
## H {-} または ## H {.unnumbered}
|
102
|
+
↓
|
103
|
+
==[nonum] H
|
104
|
+
|
105
|
+
## H {#foo}
|
106
|
+
↓
|
107
|
+
=={foo} H
|
108
|
+
|
109
|
+
## H {#foo -}
|
110
|
+
↓
|
111
|
+
==[nonum]{foo} H
|
112
|
+
|
113
|
+
## H {.column}
|
114
|
+
↓
|
115
|
+
==[column] H
|
116
|
+
|
117
|
+
## H {.nodisp}
|
118
|
+
↓
|
119
|
+
==[nodisp] H
|
120
|
+
|
121
|
+
## H {.notoc}
|
122
|
+
↓
|
123
|
+
==[notoc] H
|
124
|
+
|
125
|
+
## H {.unnumbered .unlisted}
|
126
|
+
↓
|
127
|
+
==[notoc] H
|
128
|
+
```
|
129
|
+
|
130
|
+
## 引用
|
131
|
+
|
132
|
+
'>' による引用は Re:VIEW の `//quote` になります。Re:VIEW の `//quote` は段落のみをサポートしているため、段落以外の要素 (箇条書きなど) は期待の出力になりません。
|
133
|
+
|
134
|
+
また、Markdown では `> ` を連ねることで引用を入れ子にすることができますが、Re:VIEW ではこの文法をサポートしていないため、Re:VIEW のコンパイル時にエラーになります。
|
135
|
+
|
136
|
+
```
|
137
|
+
> This is a block quote. This
|
138
|
+
> paragraph has two lines.
|
139
|
+
>
|
140
|
+
> 1. This is a list inside a block quote.
|
141
|
+
> 2. Second item.
|
142
|
+
>
|
143
|
+
> > A block quote within a block quote
|
144
|
+
|
145
|
+
↓
|
146
|
+
|
147
|
+
//quote{
|
148
|
+
This is a block quote. Thisparagraph has two lines.
|
149
|
+
|
150
|
+
1. This is a list inside a block quote. ←箇条書きは実際には機能しない
|
151
|
+
2. Second item.
|
152
|
+
|
153
|
+
//quote{ ← 入れ子はエラーになる
|
154
|
+
A block quote within a block quote
|
155
|
+
//}
|
156
|
+
//}
|
157
|
+
```
|
158
|
+
|
159
|
+
## 文字どおりのブロック (コードブロック)
|
160
|
+
|
161
|
+
インデントされたコードブロック、囲いコードブロックともに利用できます。Markdown 側に付けたオプションの一部は解析されます。
|
162
|
+
|
163
|
+
- `caption="キャプション"` を付けたときには、キャプション・採番付きコードリスト (`//list`) になります。`caption` がない場合、採番なしコードリスト (`//emlist`) になります。
|
164
|
+
- `caption` があるときのみ、`#ID` は採番付きコードリストの ID に使われます。ID 指定がないときには list1, list2, ... と自動で振られます。`caption` がないときには `#ID` は単に無視されます。
|
165
|
+
- `.numberLines`・`.number-lines`・`.num` のいずれかを付けると、行番号付きになります (キャプションがなければ `//emlistnum`、キャプションがあれば `//listnum`)。`startFrom="番号"`・`start-from="番号"`・`firstlinenum="番号"` のいずれかで開始行番号を指定できます (`//fistlinenum` に変換されます)。
|
166
|
+
- `.em` を付けると、`caption` があっても `//emlist` または `//emlistnum` を強制し、キャプション付き採番なしコードリストとします。`#ID` は無視されます。
|
167
|
+
- `.cmd` を付けると `//cmd` コードリスト、`.source` を付けると `//source` コードリストになります。
|
168
|
+
- それ以外のクラス名は、ハイライト言語と見なします。
|
169
|
+
|
170
|
+
```
|
171
|
+
~~~
|
172
|
+
if (a > 3) {
|
173
|
+
moveShip(5 * gravity, DOWN);
|
174
|
+
}
|
175
|
+
~~~
|
176
|
+
↓
|
177
|
+
//emlist{
|
178
|
+
if (a > 3) {
|
179
|
+
moveShip(5 * gravity, DOWN);
|
180
|
+
}
|
181
|
+
//}
|
182
|
+
|
183
|
+
~~~ {#mycode .haskell .numberLines startFrom="100"}
|
184
|
+
qsort [] = []
|
185
|
+
~~~
|
186
|
+
↓
|
187
|
+
//firstlinenum[100]
|
188
|
+
//emlistnum[][haskell]{
|
189
|
+
qsort [] = []
|
190
|
+
//}
|
191
|
+
|
192
|
+
~~~haskell
|
193
|
+
qsort [] = []
|
194
|
+
~~~
|
195
|
+
↓
|
196
|
+
//emlist[][haskell]{
|
197
|
+
qsort [] = []
|
198
|
+
//}
|
199
|
+
|
200
|
+
~~~ {caption="QSORT"}
|
201
|
+
qsort [] = []
|
202
|
+
~~~
|
203
|
+
↓
|
204
|
+
//list[list1][QSORT]{
|
205
|
+
qsort [] = []
|
206
|
+
//}
|
207
|
+
|
208
|
+
~~~ {caption="QSORT" #foo .numberLines}
|
209
|
+
qsort [] = []
|
210
|
+
~~~
|
211
|
+
↓
|
212
|
+
//listnum[foo][QSORT]{
|
213
|
+
qsort [] = []
|
214
|
+
//}
|
215
|
+
|
216
|
+
~~~ {caption="QSORT" #ignoredid .em .haskell}
|
217
|
+
qsort [] = []
|
218
|
+
~~~
|
219
|
+
↓
|
220
|
+
//emlist[QSORT][haskell]{
|
221
|
+
qsort [] = []
|
222
|
+
//}
|
223
|
+
```
|
224
|
+
|
225
|
+
## ラインブロック
|
226
|
+
|
227
|
+
Re:VIEW にはラインブロックに相当するちょうどよいものがありません。コードリストに類似する `//source` に変換するようにしています。
|
228
|
+
|
229
|
+
```
|
230
|
+
| The Right Honorable Most Venerable and Righteous Samuel L.
|
231
|
+
Constable, Jr.
|
232
|
+
| 200 Main St.
|
233
|
+
| Berkeley, CA 94718
|
234
|
+
↓
|
235
|
+
//source{
|
236
|
+
The Right Honorable Most Venerable and Righteous Samuel L. Constable, Jr.
|
237
|
+
200 Main St.
|
238
|
+
Berkeley, CA 94718
|
239
|
+
//}
|
240
|
+
```
|
241
|
+
|
242
|
+
## リスト(箇条書き)
|
243
|
+
|
244
|
+
- Markdown での空行を項目の間に挟む「ゆるいリスト」は無視され、継続した箇条書きになります。
|
245
|
+
- 改行でテキストを継続することは、「怠惰な記法」を含めて可能ですが、段落と同様、自然言語上の意味を見ずに前後のスペースは削除されます。
|
246
|
+
- 箇条書き内での強制改行は行末の `\` で表現できます。
|
247
|
+
- 「箇条書きの子要素」は `//beginchild`・`//endchild` で囲まれて表現されます。
|
248
|
+
|
249
|
+
### ビュレット (ナカグロ) 箇条書き
|
250
|
+
|
251
|
+
- *, -, + いずれも問いません。
|
252
|
+
- `- [ ]` のタスクリストは、「 * ☐」という□付き箇条書きになります。
|
253
|
+
|
254
|
+
### 数字付き箇条書き
|
255
|
+
|
256
|
+
Markdown では指定の順序数値を無視しますが、pandoc2review では最初の数値をもとに採番します。
|
257
|
+
|
258
|
+
```
|
259
|
+
1. one ←Markdown
|
260
|
+
2. two
|
261
|
+
↓
|
262
|
+
1. one ←Re:VIEW
|
263
|
+
2. two
|
264
|
+
|
265
|
+
2. one ←Markdown
|
266
|
+
1. two
|
267
|
+
↓
|
268
|
+
2. one ←Re:VIEW
|
269
|
+
3. two
|
270
|
+
```
|
271
|
+
|
272
|
+
`#.` の数字付き箇条書きも機能します。
|
273
|
+
|
274
|
+
単純な数字付き箇条書きの入れ子も可能です。
|
275
|
+
|
276
|
+
```
|
277
|
+
#. one
|
278
|
+
#. one-one
|
279
|
+
#. one-two
|
280
|
+
#. two
|
281
|
+
↓
|
282
|
+
1. one
|
283
|
+
|
284
|
+
//beginchild
|
285
|
+
|
286
|
+
1. one-one
|
287
|
+
2. one-two
|
288
|
+
|
289
|
+
//endchild
|
290
|
+
2. two
|
291
|
+
```
|
292
|
+
|
293
|
+
### 定義リスト
|
294
|
+
|
295
|
+
定義リストも、子要素を含めて表現できます。
|
296
|
+
|
297
|
+
```
|
298
|
+
Term 1
|
299
|
+
|
300
|
+
: Definition 1
|
301
|
+
|
302
|
+
Term 2 with *inline markup*
|
303
|
+
|
304
|
+
: Definition 2
|
305
|
+
|
306
|
+
{ some code, part of Definition 2 }
|
307
|
+
|
308
|
+
Third paragraph of definition 2.
|
309
|
+
|
310
|
+
↓
|
311
|
+
|
312
|
+
: Term 1
|
313
|
+
Definition 1
|
314
|
+
: Term 2 with @<i>{inline markup}
|
315
|
+
Definition 2
|
316
|
+
|
317
|
+
//beginchild
|
318
|
+
|
319
|
+
//emlist{
|
320
|
+
{ some code, part of Definition 2 }
|
321
|
+
//}
|
322
|
+
|
323
|
+
Third paragraph of definition 2.
|
324
|
+
|
325
|
+
//endchild
|
326
|
+
```
|
327
|
+
|
328
|
+
## 水平線
|
329
|
+
|
330
|
+
`//hr` に変換されます。実際のところ、紙面において水平線を使うことはあまりありません。
|
331
|
+
|
332
|
+
## 表
|
333
|
+
|
334
|
+
- シンプルテーブル、グリッドテーブル、パイプテーブルは利用できます。マルチラインテーブルは Re:VIEW の表現に合わず、期待の結果を得られない可能性が高いです。
|
335
|
+
- キャプションがあるときには、採番付きの表になります。このときの ID は table1、table2、…と自動で入ります。
|
336
|
+
- Re:VIEW は表内でブロック命令を利用できません。pandoc2review での変換結果も壊れたものになります (★)。
|
337
|
+
- 表の列位置合わせは、中央合わせ・右合わせになっているときには `@<dtp>{table align=center}`、`@<dtp>{table align=right}` という補助情報がそのセルに付きます。ただし、これを実際に Re:VIEW で利用して表現するには、Re:VIEW 側で表現形式に応じた対応が別途必要です。
|
338
|
+
|
339
|
+
## メタデータブロック
|
340
|
+
|
341
|
+
- Markdown ファイル内にメタ情報を記述した場合、メタ情報として扱われず、そのまま文字列として評価されます (表になってしまうでしょう)。
|
342
|
+
- YAML ファイルを別途用意し、これを Markdown ファイルとともに pandoc2review コマンドの引数に指定してメタデータを渡すことは可能です。
|
343
|
+
|
344
|
+
## インライン修飾
|
345
|
+
以下のように対応します。
|
346
|
+
|
347
|
+
- `*`、`_`: `@<i>` (斜体)
|
348
|
+
- `**`、`__`: `@<b>` (太字)
|
349
|
+
- `***`、`___`: `@<strong>` (太字。Markdown では太字+斜体)
|
350
|
+
- `~~`: `@<del>` (取り消し線)
|
351
|
+
- `^`: `@<sup>` (上付き)
|
352
|
+
- `~`: `@<sub>` (下付き)
|
353
|
+
- バッククォート: `@<tt>` (等幅コード文字) 属性は無視されます。
|
354
|
+
|
355
|
+
スモールキャピタルは `◆→SMALLCAPS:文字←◆` という形に変換されます。
|
356
|
+
|
357
|
+
## 数式
|
358
|
+
|
359
|
+
扱えるのは TeX 数式形式のみです。
|
360
|
+
|
361
|
+
`$〜$` でインライン表現、`$$〜$$` で独立式表現の数式になります。ただし、単純に独立式表現を置いたときには、表現上独立式に見せるために `\displaystyle{}` を付けるだけです。
|
362
|
+
|
363
|
+
```
|
364
|
+
inline $e^{\pi i}= -1$
|
365
|
+
|
366
|
+
block $$e^{\pi i}= -1$$
|
367
|
+
↓
|
368
|
+
inline @<m>$e^{\pi i}= -1$
|
369
|
+
|
370
|
+
block @<m>$\\displaystyle{}e^{pi i}= -1$
|
371
|
+
```
|
372
|
+
|
373
|
+
Re:VIEW の独立式用の `//texequation` ブロックにするには、`$$〜$$` の数式を Div で囲みます。クラスには `.texequation` を指定しますが、数式のみ入っている Div 囲みは `.texequation` と見なされるので省略することもできます。
|
374
|
+
|
375
|
+
|
376
|
+
```
|
377
|
+
:::{.texequation #eq1 caption="Sample equation"}
|
378
|
+
$$e^{\pi i}= -1$$
|
379
|
+
:::
|
380
|
+
|
381
|
+
↓
|
382
|
+
|
383
|
+
//texequation[eq1][Sample equation]{
|
384
|
+
e^{\pi i}= -1
|
385
|
+
//}
|
386
|
+
|
387
|
+
:::{#eq1 caption="Sample equation"} ←クラス名省略
|
388
|
+
$$e^{\pi i}= -1$$
|
389
|
+
:::
|
390
|
+
|
391
|
+
↓
|
392
|
+
|
393
|
+
//texequation[eq1][Sample equation]{
|
394
|
+
e^{\pi i}= -1
|
395
|
+
//}
|
396
|
+
```
|
397
|
+
|
398
|
+
TeX の追加マクロは、利用する Re:VIEW プロジェクトフォルダの sty/review-custom.sty に記述することで利用できます。
|
399
|
+
|
400
|
+
## リンク
|
401
|
+
|
402
|
+
自動リンク、インラインリンクは `@<href>` に変換されます。
|
403
|
+
|
404
|
+
```
|
405
|
+
<https://google.com>,
|
406
|
+
<sam@green.eggs.ham>
|
407
|
+
|
408
|
+
This is an [inline link](/url), and here's [one with
|
409
|
+
a title](https://fsf.org "click here for a good time!").
|
410
|
+
|
411
|
+
[Write me!](mailto:sam@green.eggs.ham)
|
412
|
+
↓
|
413
|
+
@<href>{https://google.com},@<href>{mailto:sam@green.eggs.ham,sam@green.eggs.ham}
|
414
|
+
|
415
|
+
This is an @<href>{/url,inline link}, and here's @<href>{https://fsf.org,one witha title}.
|
416
|
+
|
417
|
+
@<href>{mailto:sam@green.eggs.ham,Write me!}
|
418
|
+
```
|
419
|
+
|
420
|
+
参照リンクも動作します。
|
421
|
+
|
422
|
+
```
|
423
|
+
[my label]: https://fsf.org (The free software foundation)
|
424
|
+
|
425
|
+
see [my label].
|
426
|
+
↓
|
427
|
+
see @<href>{https://fsf.org,my label}.
|
428
|
+
```
|
429
|
+
|
430
|
+
章・節・項といった見出しへの内部リンクも `@<href>` になってしまうので、手動で `@<chap>` や `@<hd>` に変更する必要があります。
|
431
|
+
|
432
|
+
## 画像
|
433
|
+
|
434
|
+
画像ファイルは拡張子を除いたものがそのまま Re:VIEW での ID となります。画像ファイルは images フォルダに配置する必要があります。たとえば Markdown ファイル内で `![](images/laune.jpg)` としていたときには、`laune` が ID になります。
|
435
|
+
|
436
|
+
キャプションがあるときには `//image`、ないときには `//indepimage` に変換されます。ファイル名の後に付けることができる代替テキスト (リンクテキスト) は Re:VIEW では対応しませんが、`//image`、`//indepimage` ブロック内のコメントとなります。
|
437
|
+
|
438
|
+
ファイル名内のスペース文字は、「%20」という代替名に変換されます (★)。このため Re:VIEW のコンパイル時にはファイルと一致しないため、発見できない警告が出るでしょう。いずれにせよ、Re:VIEW は空白の混じったファイル名を推奨していません。
|
439
|
+
|
440
|
+
```
|
441
|
+
![](lalune.jpg)
|
442
|
+
↓
|
443
|
+
//indepimage[lalune]{
|
444
|
+
//}
|
445
|
+
|
446
|
+
![La Lune](lalune.jpg)
|
447
|
+
↓
|
448
|
+
//image[lalune][La Lune]{
|
449
|
+
//}
|
450
|
+
|
451
|
+
![La Lune](lalune.jpg "Le Voyage dans la Lune")
|
452
|
+
↓
|
453
|
+
//image[lalune][La Lune]{
|
454
|
+
Le Voyage dans la Lune
|
455
|
+
//}
|
456
|
+
```
|
457
|
+
|
458
|
+
`width`、`height`、`scale` の属性が付けられているときには、`scale` パラメータに変換されます。
|
459
|
+
|
460
|
+
```
|
461
|
+
![](images/lalune.jpg){scale=0.5}
|
462
|
+
↓
|
463
|
+
//indepimage[lalune][scale=0.5]{
|
464
|
+
//}
|
465
|
+
|
466
|
+
![La Lune](lalune.jpg){width=50%}
|
467
|
+
↓
|
468
|
+
//image[lalune][La Lune][scale=0.5]{
|
469
|
+
//}
|
470
|
+
|
471
|
+
![La Lune](lalune.jpg "Le Voyage dans la Lune"){height=50%}
|
472
|
+
↓
|
473
|
+
//image[lalune][La Lune][scale=0.5]{
|
474
|
+
Le Voyage dans la Lune
|
475
|
+
//}
|
476
|
+
```
|
477
|
+
|
478
|
+
前また後に文字があるときには、インライン画像と見なし、`@<icon>` に変換します。キャプションや代替テキストは無視されます。
|
479
|
+
|
480
|
+
```
|
481
|
+
This is ![](lalune.jpg) image.
|
482
|
+
↓
|
483
|
+
This is @<icon>{lalune} image.
|
484
|
+
```
|
485
|
+
|
486
|
+
## Div と Span
|
487
|
+
|
488
|
+
HTML の生タグであるブロック `<div>`、インライン `<span>` の属性情報を使って Re:VIEW の命令に変換できます。
|
489
|
+
|
490
|
+
### Div
|
491
|
+
`<div>` HTML タグを使い、`class` 属性で Re:VIEW のブロック命令を指定できます。
|
492
|
+
|
493
|
+
挙動としてはシンプルで、`class` 属性の値をそのままブロック命令にします。Markdown のインライン命令・ブロック命令などは変換された状態で入ります。
|
494
|
+
|
495
|
+
|
496
|
+
```
|
497
|
+
<div class="note">
|
498
|
+
**abc**
|
499
|
+
|
500
|
+
def
|
501
|
+
</div>
|
502
|
+
↓
|
503
|
+
//note{
|
504
|
+
@<b>{abc}
|
505
|
+
|
506
|
+
def
|
507
|
+
//}
|
508
|
+
```
|
509
|
+
|
510
|
+
`caption` 属性でキャプションを付けることができます。キャプションには Markdown のインライン命令を指定できます。
|
511
|
+
|
512
|
+
```
|
513
|
+
<div class="note" caption="see **abc**">
|
514
|
+
**abc**
|
515
|
+
|
516
|
+
def
|
517
|
+
</div>
|
518
|
+
↓
|
519
|
+
//note[see @<b>{abc}]{
|
520
|
+
|
521
|
+
@<b>{abc}
|
522
|
+
|
523
|
+
def
|
524
|
+
|
525
|
+
//}
|
526
|
+
```
|
527
|
+
|
528
|
+
- 単一行ブロック命令の //tsize, //bibpaper は指定できません(★)。 Markdown ファイル上にそのまま Re:VIEW と同じ記法で書いておくという手もあります。
|
529
|
+
|
530
|
+
```
|
531
|
+
//tsize[|latex|30,30,20]
|
532
|
+
|
533
|
+
|header1|header2|header3|
|
534
|
+
|:--|--:|:--:|
|
535
|
+
|align left|align right|align center|
|
536
|
+
|a|b|c|
|
537
|
+
|
538
|
+
↓
|
539
|
+
|
540
|
+
//tsize[|latex|30,30,20]
|
541
|
+
|
542
|
+
//table{
|
543
|
+
header1 @<dtp>{table align=right}header2 @<dtp>{table align=center}header3
|
544
|
+
--------------
|
545
|
+
align left @<dtp>{table align=right}align right @<dtp>{table align=center}align center
|
546
|
+
a @<dtp>{table align=right}b @<dtp>{table align=center}c
|
547
|
+
//}
|
548
|
+
```
|
549
|
+
|
550
|
+
### Span
|
551
|
+
`<span>` HTML タグを使い、`class` 属性で Re:VIEW のインライン命令を指定できます。以下に対応しています。
|
552
|
+
|
553
|
+
bou ami u b i strong em tt tti ttb code tcy chap title chapref list img table eq hd column uchar icon m w wb idx hidx balloon
|
554
|
+
|
555
|
+
```
|
556
|
+
<span class="hidx">index</span>
|
557
|
+
↓
|
558
|
+
@<hidx>{index}
|
559
|
+
```
|
560
|
+
|
561
|
+
キーワード (`kw`), ルビ (`ruby`) は Re:VIEW では第2引数があるので、属性で指定します。
|
562
|
+
|
563
|
+
```
|
564
|
+
<span kw="supplement">abc</span>
|
565
|
+
↓
|
566
|
+
@<kw>{abc,supplement}
|
567
|
+
|
568
|
+
<span ruby="パン">麺麭</span>
|
569
|
+
↓
|
570
|
+
@<ruby>{麺麭,パン}
|
571
|
+
```
|
572
|
+
|
573
|
+
未知の class 属性は単に無視されます。
|
574
|
+
|
575
|
+
```
|
576
|
+
<span class="chap unknown">abc</span>
|
577
|
+
↓
|
578
|
+
@<chap>{abc}
|
579
|
+
```
|
580
|
+
|
581
|
+
## 脚注
|
582
|
+
|
583
|
+
脚注の参照箇所は `@<fn>` となり、fn1、fn2、…と採番されます。
|
584
|
+
|
585
|
+
脚注内容はドキュメント末尾に置かれます。
|
586
|
+
|
587
|
+
Re:VIEW における `//footnote` は1行で形成されることを想定しており、複数行・要素からなる脚注はそのままでは表現できません。そのため、そのような脚注は Re:VIEW コンパイル時にエラーになります。
|
588
|
+
|
589
|
+
```
|
590
|
+
Here is a footnote reference,[^1] and another.[^longnote]
|
591
|
+
|
592
|
+
[^1]: Here is the footnote.
|
593
|
+
|
594
|
+
[^longnote]: Here's one with multiple blocks.
|
595
|
+
|
596
|
+
Subsequent paragraphs are indented to show that they
|
597
|
+
belong to the previous footnote.
|
598
|
+
|
599
|
+
{ some.code }
|
600
|
+
|
601
|
+
The whole paragraph can be indented, or just the first
|
602
|
+
line. In this way, multi-paragraph footnotes work like
|
603
|
+
multi-paragraph list items.
|
604
|
+
|
605
|
+
This paragraph won't be part of the note, because it
|
606
|
+
isn't indented.
|
607
|
+
|
608
|
+
↓
|
609
|
+
|
610
|
+
Here is a footnote reference,@<fn>{fn1} and another.@<fn>{fn2}
|
611
|
+
|
612
|
+
This paragraph won't be part of the note, because itisn't indented.
|
613
|
+
|
614
|
+
//footnote[fn1][Here is the footnote.] ←脚注はドキュメント末尾に置かれる
|
615
|
+
//footnote[fn2][Here's one with multiple blocks. ←複数行からなる脚注はRe:VIEWコンパイル時にエラー
|
616
|
+
|
617
|
+
Subsequent paragraphs are indented to show that theybelong to the previous footnote.
|
618
|
+
|
619
|
+
//emlist{
|
620
|
+
{ some.code }
|
621
|
+
//}
|
622
|
+
|
623
|
+
The whole paragraph can be indented, or just the firstline. In this way, multi-paragraph footnotes work likemulti-paragraph list items.]
|
624
|
+
```
|
625
|
+
|
626
|
+
## 引用文献
|
627
|
+
|
628
|
+
`@` は Twitter ID などの地の文で使うことのほうが一般的であると思われるため、pandoc2review では Citation (引用文献) 機能を使いません。リテラルに `@` を出力します。(★)
|
629
|
+
|
630
|
+
## 生の HTML/LaTeX
|
631
|
+
|
632
|
+
Markdown において Div, Span 以外の HTML タグは生のデータとして扱われます。HTML タグは変換時に `//embed[html]{ 〜 //}` で囲まれます。
|
633
|
+
|
634
|
+
```
|
635
|
+
<table>
|
636
|
+
<thead><tr><th colspan="2">TABLEHEAD</th></tr></thead>
|
637
|
+
<tbody><tr><td>Cell1</td><td>Cell2</td></tbody>
|
638
|
+
</table>
|
639
|
+
|
640
|
+
↓
|
641
|
+
|
642
|
+
//embed[html]{
|
643
|
+
<table>
|
644
|
+
//}
|
645
|
+
|
646
|
+
//embed[html]{
|
647
|
+
<thead>
|
648
|
+
//}
|
649
|
+
|
650
|
+
//embed[html]{
|
651
|
+
<tr>
|
652
|
+
//}
|
653
|
+
|
654
|
+
//embed[html]{
|
655
|
+
<th colspan="2">
|
656
|
+
//}
|
657
|
+
|
658
|
+
TABLEHEAD
|
659
|
+
|
660
|
+
//embed[html]{
|
661
|
+
</th>
|
662
|
+
//}
|
663
|
+
|
664
|
+
//embed[html]{
|
665
|
+
</tr>
|
666
|
+
//}
|
667
|
+
|
668
|
+
//embed[html]{
|
669
|
+
</thead>
|
670
|
+
//}
|
671
|
+
|
672
|
+
//embed[html]{
|
673
|
+
<tbody>
|
674
|
+
//}
|
675
|
+
|
676
|
+
//embed[html]{
|
677
|
+
<tr>
|
678
|
+
//}
|
679
|
+
|
680
|
+
//embed[html]{
|
681
|
+
<td>
|
682
|
+
//}
|
683
|
+
|
684
|
+
Cell1
|
685
|
+
|
686
|
+
//embed[html]{
|
687
|
+
</td>
|
688
|
+
//}
|
689
|
+
|
690
|
+
//embed[html]{
|
691
|
+
<td>
|
692
|
+
//}
|
693
|
+
|
694
|
+
Cell2
|
695
|
+
|
696
|
+
//embed[html]{
|
697
|
+
</td>
|
698
|
+
//}
|
699
|
+
|
700
|
+
//embed[html]{
|
701
|
+
</tbody>
|
702
|
+
//}
|
703
|
+
|
704
|
+
//embed[html]{
|
705
|
+
</table>
|
706
|
+
```
|
707
|
+
|
708
|
+
行ではなくタグ単位で囲まれ、普通の文字列はそのまま表現されることに注意してください。
|
709
|
+
|
710
|
+
`--hideraw` オプションを付けると、`//embed` を使わず空行になります。
|
711
|
+
|
712
|
+
LaTeX コードと解釈されるところは `@<embed>$|latex|〜$` のインライン命令になります。
|
713
|
+
|
714
|
+
```
|
715
|
+
$$ \\alpha = \\beta\\label{eqone}$$
|
716
|
+
Refer equation (\\ref{eqone}).
|
717
|
+
|
718
|
+
↓
|
719
|
+
|
720
|
+
@<m>$\\displaystyle{} \\alpha = \\beta\\label{eqone}$ Refer equation (@<embed>$|latex|\\ref{eqone}$).
|
721
|
+
```
|