Noraworld Developers Blog
マークダウンのリストの記号をアスタリスクにしてみるのもありなんじゃない?

はじめに

今回は技術とはあまり関係がない、ちょっとしたマークダウンの書き方のこだわりについて書いてみようと思います。なおこれはこうするのがいいと推奨するものではなく、あくまで個人的なこだわりです。参考程度に読んでみてください。

マークダウンのリスト形式について

マークダウンでは以下のように書くとリスト形式の内容を表現することができます。

- Item 1
- Item 2
- Item 3

以下のように表示されます。

  • Item 1
  • Item 2
  • Item 3

これが一般的なリストの書き方だと思いますが、実はこのハイフン - はアスタリスク * やプラス記号 + でも代用できます 1

* Element 1
* Element 2
* Element 3
  • Element 1
  • Element 2
  • Element 3
+ Component 1
+ Component 2
+ Component 3
  • Component 1
  • Component 2
  • Component 3

今まで数多くのマークダウンファイルを見てきましたが、リスト形式で最も多く、そして圧倒的に使われているのがハイフン - でした。しかし筆者は昔からあえてハイフンではなくアスタリスク * を使用しています。

その理由については 2 つあります。

入力のしやすさ

一つは、入力がしやすいからです。

日本語入力の IME には昔から Google 日本語入力 を使用しています。Google 日本語入力には全角入力モード(日本語入力モード)でもアルファベットや数字や記号を半角で入力できる設定があります。これを有効にすると日本語入力時でもいちいち英数入力に切り替えずに半角数字や記号を入力することができて便利です。

ただ、すべての記号を半角にすると不都合が生じます。たとえば大括弧 [, ] を日本語入力でも半角入力に設定してしまうとかぎ括弧 , が打てなくなってしまいます。もちろん変換すれば打てますが、少々手間です。Google 日本語入力では数字や記号ごとに半角にするか全角にするかを分けることができますので、大括弧 [, ] に関しては全角入力、つまりかぎ括弧 , になるようにしています。

勘のいい人はすでにお気づきかと思いますが、ハイフン - は全角入力だと伸ばし棒 になります。伸ばし棒は多くの外来語で使用するため、さすがに半角にするわけにはいきません。つまり、マークダウンのリストの記号をハイフンにしようと思ったら、たとえそのあとに日本語を入力する場合でもいったん半角モードに切り替えてからハイフンを入力し、そのあとまた全角モードに戻す必要があります。

一方でアスタリスク * は全角にすると全角のアスタリスク になります。個人的にですが、これはあまり使用しません。なのでアスタリスクに関しては全角モードでも半角入力に設定しています。これにより、リストを入力するときにいちいち全角・半角を切り替えなくて済むので、日本語でマークダウンを書くとき(まさにこの記事など)に入力しやすいというメリットがあります。

伸ばし棒でも変換をすればハイフンにできますが、かぎ括弧の例で説明したとおり少し手間です。かつては筆者も変換して運用していましたが、やはりめんどくさいのでアスタリスクに変えました。

Git の差分と紛らわしい

もう一つの理由は、Git の差分と紛らわしいからです。

Git では削除した行を表す記号としてハイフン - が用いられ、追加された行としてプラス記号 + が使用されます。マークダウンのリストの記号は行頭に来ることが多いので、Git の削除・追加を表すこれらの記号と重複して見づらいという問題があります。

CLI の git diff の見た目

GitHub の git diff の見た目

https://github.com/noraworld/github-actions-sandbox/commit/e2cb594c730cbdec5418320f1e29c4631221ab5f

まあ GitHub 上で見るとそれほど見づらいとも感じませんが、CLI だと完全に隣り合わせで記号が並ぶのでちょっと紛らわしいですよね。

先ほどアスタリスクのほうが入力がしやすいという説明をしましたが、同様の理由でプラス記号も全角だと となり、個人的にはあまり使わないので半角にしています。ならプラス記号でも入力のしやすさという点ではそれほど変わらないのですが、プラス記号を使わない理由は Git の差分によるものです。

おわりに

前者の入力のしやすさに関する理由は日本語利用者固有の問題かもしれませんが、後者に関してはエンジニア全員に共通する内容です。個人的にはもう少しアスタリスクが広まってもいい気がしますが、あまりそういう人はいないようなので、もうちょっと広まったら嬉しいなと思い今回記事にしてみました。

  1. ただし注意点として、一つのリストの中で複数の記号(-, *, +)を混ぜることはできません。混ぜると別々のリストとしてみなされてしまいます。つまり、HTML に変換した際に別の <ul> 属性の中の <li> であると認識されてしまいます。