Markdownの真実—俺たちが慣れ親しんだ「バッククォート3個のコードブロック」は実は拡張記法なんだぜ

0pt   2018-08-11 02:30
IT技術情報局

拡張記法

「行頭スペース四個」でのコードブロックが基本記法らしい。

The basic Markdown syntax allows you to create code blocks by indenting lines by four spaces or one tab. If you find that inconvenient, try using fenced code blocks. Depending on your Markdown processor or editor, you’ll use three tick marks (“`) or three tildes (~~~) on the lines before and after the code block.

Extended Syntax | Markdown Guide

学習

Markdownにも基本記法とか、拡張記法とかがあることをはじめて知った。

たとえばQiitaではコードブロックにファイル名まで書けたり、Markdownの解釈にもバリエーションがあることは薄々意識していたが、慣れ親しんだコードブロック記法自体が拡張記法だったんだな。

68747470733a2f2f71696974612d696d6167652d

Githubでも普通に拡張記法のコードブロックを消化してるけど、まあ各サービスのヘルプで「これこれが実は拡張記法で」なんてわざわざ説明しないのは当たり前だよね。

68747470733a2f2f71696974612d696d6167652d

感想

そういえばStackoverflowでは、コードブロックを書くために毎行毎行4個の改行をさせられて「なんだこの冗長な記法は!」と思っていたけど、これがMarkdownの基本だったんだな。

その他の拡張記法

テーブルも拡張記法らしい。

基本記法

Basic Syntax | Markdown Guide

経緯

Ruby gem の redcarpet がうまくコードブロックをパースしてくれないことに気付いた。
gemのバグかと思い Issue を出したら robin850 (Robin Dupret) さんが教えてくれた。

バッククォートでのコードブロックは「オリジナルのマークダウン記法ではサポートしてないよ!」って。

Actually you need to enable the fenced_code_blocks option; this syntax is not supported by original Markdown, so you should rather write:

Can not parse well Markdown syntax in code block · Issue #659 · vmg/redcarpet

リンク

あわせて読みたい?

Source: ruby tag

   ITアンテナトップページへ
情報処理/ITの話題が沢山。