Markdown プレビュー
テキスト処理処理はすべてブラウザ内で完結します。データは送信されません
描画はブラウザ内で完結し、内容は送信されません。画像の記法は代替テキストを表示するだけで、貼り付けたアドレスへリクエストを送ることはありません。
左に書けば、右にリアルタイムで結果が出ます。レンダラーは安全な部分集合だけを実装しています。まずすべての HTML をエスケープしてから Markdown の構文を処理するので、貼り付けたスクリプトタグはそのまま文字として表示され、実行されません。リンクの javascript: プロトコルは遮断して赤く示します。画像の構文を意図的に img 要素にしないのは、そうするとブラウザが貼り付けられたアドレスへリクエストを送ってしまい、この文書を読んでいることを相手のサーバーに伝えることになるからです。
機能
- 見出し、段落、太字、斜体、取り消し線、インラインコード、フェンス付きコードブロック、リンク、順序付き・順序なしリスト、引用、水平線に対応
- すべての HTML を先にエスケープしてから解析するので、貼り付けたタグは文字として表示されます
- リンクのプロトコルを絞り込み:javascript: や data: などはクリック可能なリンクにせず、元のアドレスを赤く表示します
- 外部リンクには rel="noopener noreferrer" を付け、逆 tabnabbing を防ぎます
- 画像の構文は代替テキストだけを表示し、どのアドレスへもリクエストを出しません
- リストは2段までの入れ子に対応(2文字分のインデント)
- アンダースコアによる強調(_x_)は意図的に解析しません。foo_bar_baz や __init__ を壊さないためです
- 内容が20万文字を超える場合はプレビューを切り詰め、その旨を明示します
使い方
- 左の欄に Markdown を貼り付けるか入力します
- 右の欄に描画結果がリアルタイムで表示されます
- 「サンプルを読み込む」をクリックすると、対応する構文をすべて含む例が見られます
よくある質問
- 表、脚注、HTML の混在には対応しますか?
- 今のところ対応していません。表と脚注にははるかに大きなパーサーが必要で、HTML の混在は「ユーザーの入力はすべて先にエスケープする」という原則と正面から衝突します —— それはユーザーにタグを注入させることを許すのと同じです。完全な CommonMark が必要な場合は、ローカルのエディタでプレビューしてください。
- _斜体_ を解析しないのはなぜですか?
- 代償が大きすぎるからです。アンダースコアは識別子の中にあまりに頻繁に現れ、foo_bar_baz、__init__、snake_case がすべて斜体として解析されてしまいます。アスタリスクの書き方 *斜体* にはこの問題がないので、そちらをお使いください。
- 画像が表示されないのはなぜですか?
- 画像を表示するということは、あなたのブラウザがそのアドレスへリクエストを送るということです。まだ公開していない文書にとって、それは「今これを読んでいる」と相手のサーバーに伝えることになり、「内容を送信しない」という約束と衝突します。そのため代替テキストだけを表示します。
- 単一の改行はまとめられますか?
- まとめられません。段落内の単一の改行はそのまま改行として扱い(GitHub のコメント欄と同じ動作です)、空行だけが段落を分けます。こうすることで、貼り付けたレイアウトがプレビューで黙って書き換えられることがありません。
関連ツール
正規表現テスト
テキスト処理ブラウザで正規表現を試せます。一致のリアルタイムハイライト、名前付きキャプチャグループ、置換プレビューに対応し、壊滅的なバックトラックも防ぎます。
テキスト差分
テキスト処理2つのテキストを行ごとに比較し、追加・削除・未変更の行をハイライト表示します。変更は最小差分で整列し、すべてブラウザ内で処理します。
文字数カウント
テキスト処理日本語や中国語は字数、英語は単語数で別々に数え、文字数・行数・バイト数・読了時間も出します。すべてブラウザ内で処理し、送信しません。
テキスト整形
テキスト処理ログや表からコピーした1列を整形します。重複行の削除、並べ替え、空行・前後の空白・行番号の削除、空白のまとめを個別に切り替えできます。
命名規則の変換
テキスト処理8つの命名規則の間で識別子を変換します。fooBarBaz や FOO_BAR のような混在も語に分解し、連続する大文字も語ごとに切ります。
簡体字・繁体字変換
テキスト処理中国語を簡体字と繁体字の間で相互変換します。常用語は語単位で置換し、残りは最も一般的な字形を採るため、一部は人の確認が必要です。