piapia123
ja

Markdown プレビュー

テキスト処理

処理はすべてブラウザ内で完結します。データは送信されません

Markdown
プレビュー

描画はブラウザ内で完結し、内容は送信されません。画像の記法は代替テキストを表示するだけで、貼り付けたアドレスへリクエストを送ることはありません。

左に書けば、右にリアルタイムで結果が出ます。レンダラーは安全な部分集合だけを実装しています。まずすべての HTML をエスケープしてから Markdown の構文を処理するので、貼り付けたスクリプトタグはそのまま文字として表示され、実行されません。リンクの javascript: プロトコルは遮断して赤く示します。画像の構文を意図的に img 要素にしないのは、そうするとブラウザが貼り付けられたアドレスへリクエストを送ってしまい、この文書を読んでいることを相手のサーバーに伝えることになるからです。

機能

  • 見出し、段落、太字、斜体、取り消し線、インラインコード、フェンス付きコードブロック、リンク、順序付き・順序なしリスト、引用、水平線に対応
  • すべての HTML を先にエスケープしてから解析するので、貼り付けたタグは文字として表示されます
  • リンクのプロトコルを絞り込み:javascript: や data: などはクリック可能なリンクにせず、元のアドレスを赤く表示します
  • 外部リンクには rel="noopener noreferrer" を付け、逆 tabnabbing を防ぎます
  • 画像の構文は代替テキストだけを表示し、どのアドレスへもリクエストを出しません
  • リストは2段までの入れ子に対応(2文字分のインデント)
  • アンダースコアによる強調(_x_)は意図的に解析しません。foo_bar_baz や __init__ を壊さないためです
  • 内容が20万文字を超える場合はプレビューを切り詰め、その旨を明示します

使い方

  1. 左の欄に Markdown を貼り付けるか入力します
  2. 右の欄に描画結果がリアルタイムで表示されます
  3. 「サンプルを読み込む」をクリックすると、対応する構文をすべて含む例が見られます

よくある質問

表、脚注、HTML の混在には対応しますか?
今のところ対応していません。表と脚注にははるかに大きなパーサーが必要で、HTML の混在は「ユーザーの入力はすべて先にエスケープする」という原則と正面から衝突します —— それはユーザーにタグを注入させることを許すのと同じです。完全な CommonMark が必要な場合は、ローカルのエディタでプレビューしてください。
_斜体_ を解析しないのはなぜですか?
代償が大きすぎるからです。アンダースコアは識別子の中にあまりに頻繁に現れ、foo_bar_baz、__init__、snake_case がすべて斜体として解析されてしまいます。アスタリスクの書き方 *斜体* にはこの問題がないので、そちらをお使いください。
画像が表示されないのはなぜですか?
画像を表示するということは、あなたのブラウザがそのアドレスへリクエストを送るということです。まだ公開していない文書にとって、それは「今これを読んでいる」と相手のサーバーに伝えることになり、「内容を送信しない」という約束と衝突します。そのため代替テキストだけを表示します。
単一の改行はまとめられますか?
まとめられません。段落内の単一の改行はそのまま改行として扱い(GitHub のコメント欄と同じ動作です)、空行だけが段落を分けます。こうすることで、貼り付けたレイアウトがプレビューで黙って書き換えられることがありません。

関連ツール