Galileo Figaro

常に初陣!

Markdown を書くときの心構え

Markdown 書くとき、何に気を付けてる?

今では様々な場所で採用されている Markdown 記法。 ソフトウェアエンジニアの皆さんなら、きっと一度は書いたことあると思います。

ちょっとした文書をさっと書くときにも便利ですね。 Word みたいな重い文書作成ソフトを開かなくていいし、かといってメモ帳とかで書くよりも見やすく整形して閲覧できるし。

そんな Markdown を書いたとき、だいたい Markdown プレビューで表示して、HTML に変換された後の見た目をチェックしたりしますよね。 ...ここでちょっと待ってください。HTML での見た目を優先しすぎていませんか?

おおもとの Markdown と方言

本題に入る前に、Markdown の種類を整理しておきます。

Markdown には、おおもとの記法と、そこから派生した方言的な記法があります。

GitHub、Qiita、Stack Overflow などなど、Markdown はさまざまなサービスで採用されています。 このはてなブログの記事も Markdown で書いています。 実は、それらの Markdown は、おおもとの Markdown を拡張や改変した書き方です。

f:id:gero_shabu:20220222172536p:plain
Markdown の拡張例

例えば、Markdown で表を描いたことのある人も多いかと思いますが、おおもとの Markdown の仕様には表を描く記法なんてありません。 それぞれのサービスで、表を描けるように仕様が追加されています。 他にも、打消し線やシンタックスハイライトなど、おおもとの Markdown には無い記法も使えるようになっています。

それらの記法は、各サービスでちょっとずつ仕様が違っています。つまり方言ですね。

Markdown の哲学

ここで、おおもとの Markdown の仕様を見てみましょう。 下記サイトです。

Daring Fireball: Markdown

...英語ですね。でも大丈夫。私がなんとか訳してみます。

イントロダクションに、Markdown の構文の設計方針が書いてあります。

The overriding design goal for Markdown’s formatting syntax is to make it as readable as possible. The idea is that a Markdown-formatted document should be publishable as-is, as plain text, without looking like it’s been marked up with tags or formatting instructions.

「最も重要な設計目標は、『できるかぎり読みやすく』です。タグや整形用の記法でマークアップされるのではなく、プレーンテキストとして公開できるようにするべきです。」って書いてあります。 同じ事が、Syntax のページにも書いてあります。この考えが、おおもとの Markdown では最も重要視されています。

そうです。 HTML での見え方とか、細やかに見た目を調整できるとかではなく、プレーンテキストとしての見た目に重きが置かれています。

まぁ、文章中に <br/> とか <li> とか \setlength{\textwidth}{40zw} とか出てきたら読みにくいですよねー。 完全にノイズです。 (ただ、html タグは使えます。ど~~~しても HTML の見た目を優先したいって人向けに、html タグが使えるようになっているのだと思います。)

Markdown を書くときの心構え

Markdown がそのような哲学で仕様が定められているのなら、Markdown を書くときもその哲学に沿って書くようにした方がいいと思います。 つまり、「プレーンテキストとして読みやすい Markdown を心がけましょう」ということです。これが今回最も言いたかったことです。

Markdown は、HTML に変換できない環境ではテキストエディタを使ってプレーンテキストとして読まれるでしょう。 また、差分比較をするときもプレーンテキストとして比較されることが多いです。 なのでちゃんとプレーンテキストとして読まれることを意識しましょう。

表組みについて

さて、おおもとの Markdown には表組みの記法がありません。 これは、プレーンテキストとして見やすい表組みの書き方ができなかったからだと推測しています。 例えば、次のような Markdown はどうでしょう。

|チーム名|人数|コメント|
|----|----|----|
|マックスボンバーズ|3|頑張ります。|
|暇人|5|暇人が5人あつまってこのチームを作りました。意気込みとかはないですが、暇なので練習する時間はたっぷりあったので、おそらく優勝すると思います。コメントもついつい長くなっちゃいました。暇なので。|
|セクシーコマンドー部|2|ウォンチュッ!!|

見にくいですね。列がバラバラです。 表は、データを並べて項目を比較しやすくしたいときに使われます。列が揃っていてなんぼなのに...。 こういう書き方になってしまうので、おおもとの Markdown では採用されなかったのだと推測しています。

表については、書きたくなることは結構ありますし、私も書きます。 表を全く用いないのは厳しいものがあります。 その場合は、列を揃えた方がいいと思います。

そのためにも、表の中に文章を書くことは避けましょう。列が揃いにくいですし、表が横に長くなります。 表はあくまでデータを並べるためのもので、○とか×とかの記号や数値、一単語程度の語で構成されるのが理想ですね。

そもそも、表の中に文章を書かなければいけない状況というのは、文章構造に問題があるというサインなのかもしれません。 その場合は、見出しを作って、普通の段落として説明するなり、文章構造を見直してみてはどうでしょうか。

まとめ

Markdown を書いたときは、まず「プレーンテキストとして読みやすいこと」を心がけましょう。その次に「HTML として見やすいか」をチェックしましょう。(まぁ、プレーンテキストとして読みやすい文書は、だいたい HTML でも見やすいです。)

Markdown での改行の考え方

Markdown で改行しようとしているそこのキミへ

Markdown で改行を行っても、HTML に変換したときにはその改行は無視されます。 HTML を表示したときに改行されてほしいのであれば、行末に半角スペースを 2 つ付ければできます。

...ここまで聞いて、半角スペース 2 つで改行しようとしているそこのキミ! その改行、必要ですか?

改行って何?

そもそも改行って何なのでしょうか?

小学校の時、国語の授業で、「段落(paragraph)」というものを習ったと思います。 ある一つのことについて述べた複数の文の塊を、段落といいます。 段落は、「改行」で区切ります。 この国は義務教育なので、ほとんどの人は知っていますね。

段落の区切りでもないのに、改行をすることはありません。 例えば、一文ごとに改行をする、というようなことはしないです。 少なくとも小学生時代のあなたはしていなかったはずです。

改行より段落を考えてみては?

段落の区切りでないところに、改行を入れたくなる気持ちも分かります。 メールでも、○○文字を目安に改行しなさい、と言われますからね。 ブログなどを中心に、「一文一改行」型の文章も見かけます。 すっきりしているというか、圧迫感が少ないんでしょうね。

でも、普通の文章を書くなら、段落ごとに改行する方法でいいと思います。 エンジニアが普段扱っている、仕様書とかマニュアルとかもそうだと思います。 (表や箇条書きを多用するので、普通の文書とは言えないかもしれませんが。)

段落の中では、書き手で改行箇所を指定するのではなく、ブラウザなどの横幅に合わせて自動で折り返ししてくれるので、それに任せた方がいいと思います。 一文が、「表示できる横幅にギリギリ収まらない程度の長さ」だった場合、折り返しされて 2 行目に数文字はみ出すことになりますが、そういう文が続くと、ちぐはぐでダサく感じてしまうのは私だけでしょうか。

Markdown での改行と段落

Markdown では、空行が段落の区切りを表します。 段落の区切りなので、当然、HTMLで表示したときには改行もされます。

なお、段落の区切りに挿入される改行を、Hard Break と呼ぶようです。 Hard Line Break や Hard Return などと呼ばれることもあるようです。

Markdown の公式ページでは、段落の説明のところで、下記のように説明されています。

Yes, this takes a tad more effort to create a <br />, but a simplistic “every line break is a <br />” rule wouldn’t work for Markdown. Markdown’s email-style blockquoting and multi-paragraph list items work best — and look better — when you format them with hard breaks.

"改行を入れるの面倒臭いよね。Markdown ではテキストで書いたとおりに改行しないんだ。でもその方が、引用と箇条書きの構文では、見やすいしいい感じになるよ!" ...みたいなことが書かれてます。

おわり

Markdown で改行を挿入するのは確かに面倒臭いですが、そんなに使わないし別にいいでしょ、っていうスタンスです。 私自身、Markdown でスペース 2 つでの改行が必要な場面には、あまり出くわしていません。