やるきなし

2018/05/02 10:11 / pandoc 1.19.2.4~dfsg-1+b3 -> 2.2-1

Debian GNU/Linux sid の pandoc (markdown (.md) を html 等に変換するあれ)がこのところ慌ただしく version up されて,仕様変更がかなりある.以下,stable の pandoc (1.17.2) と sid の pandoc (2.2) で比較.

インデント

インデントは either 4 spaces or one tab というのが標準的なのだが,2 spaces でも正しく解釈されるようになった.

pandoc 1.17.2% echo "
- A
  - B
" | pandoc
<ul>
<li>A</li>
<li>B</li>
</ul>
pandoc 2.2% echo "
- A
  - B
" | pandoc
<ul>
<li>A
<ul>
<li>B</li>
</ul></li>
</ul>
pandoc 1.17.2% echo "
-   A
    -   B
" | pandoc
<ul>
<li>A
<ul>
<li>B</li>
</ul></li>
</ul>
pandoc 2.2% echo "
-   A
    -   B
" | pandoc
<ul>
<li>A
<ul>
<li>B</li>
</ul></li>
</ul>

smart

--- を em-dash (&mdash;), -- を en-dash (&ndash;), ... を省略記号(&hellip;)として出力したりする機能(smart)が default の挙動になった.以前の option は -S だったが,これは廃止されて,markdown-smart (smart off) や markdown+smart (smart on) のように format を指定する仕様に.

pandoc 1.17.2% echo "A - B -- C --- D ... Mr. Abc'" | pandoc
<p>A - B -- C --- D ... Mr. Abc'</p>
pandoc 1.17.2% echo "A - B -- C --- D ... Mr. Abc'" | pandoc -S
<p>A - B – C — D … Mr. Abc’</p>
pandoc 2.2% echo "A - B -- C --- D ... Mr. Abc'" | pandoc -f markdown-smart
<p>A - B -- C --- D ... Mr. Abc'</p>
pandoc 2.2% echo "A - B -- C --- D ... Mr. Abc'" | pandoc
<p>A - B – C — D … Mr. Abc’</p>

わかりにくいかもしれないが,+smart の場合 Mr. の後は改行禁止のスペース(Non-breaking space; &nbsp;, &#160;)になっている.また single quote も全角 single quote (’; &rsquo;?)になる.

ついでに...''"" で囲んでいる場合,自動で左右の適切な quote に変換される.また \ で escape 可能.以下のとおり.

pandoc 2.2% echo "'A'" | pandoc
<p>‘A’</p>
pandoc 2.2% echo "\'A\'" | pandoc
<p>'A'</p>
pandoc 2.2% echo '"A"' | pandoc
<p>“A”</p>
pandoc 2.2% echo '\"A\"' | pandoc
<p>&quot;A&quot;</p>
pandoc 2.2% echo "A--B" | pandoc
<p>A–B</p>
pandoc 2.2% echo "A\--B" | pandoc
<p>A--B</p>

追記 (2018/9/22)

行末の\の取り扱いが変更になっているらしく,これはちょっと悩ましい.

pandoc 1.17.2% pandoc
# Hi\
there
<h1 id="hi-there">Hi<br />
there</h1>
pandoc 2.2.1% pandoc
# Hi\
there
<h1 id="hi">Hi<br />
</h1>
<p>there</p>
pandoc 2.2.1% pandoc -f markdown-escaped_line_breaks
# Hi\
there
<h1 id="hithere">Hi
there</h1>
pandoc 2.2.1% pandoc -f markdown-escaped_line_breaks
# Hi<br />\
there
<h1 id="hi-there">Hi<br />
there</h1>

Header でなければ一応挙動は同じっぽい.

pandoc 1.17.2% pandoc
Hi\
there
<p>Hi<br />
there</p>
pandoc 2.2.1% pandoc
Hi\
there
<p>Hi<br />
there</p>

Related articles