niszetの日記

細かい情報を載せていくブログ

(Pandoc) ブロック引用の罠(?)

仕様がちょっとわかりづらいよね…

Pandoc方言のMarkdownではブロック引用を>で始まる行であらわすことが出来ます。

> 引用だよ

ちょっと気をつけないといけないのが、このブロック要素は改行を無視してしまうことです。例えば以下のような書き方をすると、引用だよ。この行は改行せずに続くよ。と1行で出力されてしまいます。

> 引用だよ。
> この行は改行せずに続くよ。

これを回避するには、間に空行を入れるか、>で始まる空の行を入れるかどちらかです。

> 引用だよ。

> この行は改行せずに続くよ。

か、

> 引用だよ。
> 
> この行は改行せずに続くよ。

ということですね。これはどちらの書き方でも別の段落扱いになります。

blank_before_blockquote というMarkdownの拡張のオプションがありますが、これは上の話の挙動は変えないようです。このオプションはmarkdownではデフォルトでONになってます。

pandoc.org

なお、Pandocの各ファイル形式でどのextensionが有効になっているか?を見るには、markdown形式を例にとれば下記のようにすれば一覧で表示されます。

pandoc --list-extensions=markdown

一覧で+のついているものが有効になっている、という意味です。

先のオプションは、こういう入力を想定していて、

前の行だよ
> この行は改行せずに続くよ。

デフォルト動作は

前の行だよ>この行は改行せずに続くよ。と続けて出力されます。-blank_before_blockquoteで改行され、前の行は通常の文、次の行はブロック引用となります(デフォルトではWord上のスタイル名はブロック)

あまりコレでハマらない気もしますが、一応記録を残しておきます。