7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

自由ライセンスで記事を公開してみようAdvent Calendar 2017

Day 2

Markdown日本語対応星取表 —— 強調箇所は分かち書き必須か

Last updated at Posted at 2017-12-02

強調の前後にスペースが無い場合、解釈が異なる

Markdownは英語のように単語を分かち書きする言語を前提としている部分があります。
改行の扱い(スペースになる)がその典型ですが、強調マークアップに関しても分かち書きが前提になっていることがあるようなので、状況を確認しました。

問題になるのは、日本語のような分かち書きしない言語での、

それが*重要*です

のようなマークアップです。
*重要*」の前後にスペースがありませんが、強調と解釈されることを期待しています。
Markdownを受け付けるツールやサイトは多いですが、こういったケースの扱いは大きく分けると以下3通りのようです。

  • 期待通り:
    <p>それが<em>重要</em>です</p> となる
  • 概ね期待通り:
    ただし、それが*重要!!*です のように強調される文字列の端が単語を分割する記号だった場合には、強調マークアップと判断されず、<p>それが*重要!!*です</p> となってしまう
  • 期待と異なる:
    強調マークアップと判断されず、<p>それが*重要*です</p> となってしまう

上のようなケースで強調マークアップに使われる記号 *_、それらの連続である **__***___ に関して、どのように解釈されるかまとめたのが下の表です。

* _ ** __ *** ___
Markdown ok ok ok ok ok ok
Cmark (ok) NG (ok) NG NG NG
Commonmark.js (ok) NG (ok) NG NG NG
Marked ok ok ok ok ok ok
Markdown-it (ok) NG (ok) NG NG NG
Blackfriday NG NG ok ok ok ok
Pandoc ok NG ok NG ok NG
Stack Overflow (ok) NG (ok) NG NG NG
Qiita ok ok ok ok ok ok
Hatena Blog ok ok ok ok ok ok

ok: 期待通り
(ok): 概ね期待通り
NG: 期待と異なる

ちょっと厄介な印象ですが、本家MarkdownやMarkedは全ての表記がOKで、日本語で使いやすそうです。
QiitaやHatena Blogはさすがに日本語ユーザー向けにしっかり対応してますね。

どこで使っても出来るだけ崩れないマークアップを目指す場合、

  • _ より * を使った方が期待通り強調として解釈されやすい
  • 最も期待通りに解釈されやすいのは **重要** のように ** を使う強調

あたりを考慮するといいかも知れません。
もちろん、日本語でも前後にスペースを入れてしまう、という手もあります。

使用したMarkdownパーサー

オプションの指定は行わず、デフォルトで試しています。

(Stack Overflow、Qiita、Hatena Blogに関しては、投稿フォームのプレビューで本日2017年12月2日に試しました)

この記事のライセンス

クリエイティブ・コモンズ・ライセンス
この記事はCC BY 4.0(クリエイティブ・コモンズ 表示 4.0 国際 ライセンス)の元で公開します。

7
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?