ブログ
日本語

Markdownプレビュー — リアルタイム表示

無害化したHTMLをコピー・保存できる、リアルタイムのMarkdownエディターです

ブラウザー内で処理・アップロード不要

オンにすると、入力した文章をこのブラウザーにだけ保存します(サーバーには送信しません)。オフにすると保存した文章は削除されます。

プレビュー

プレビューエンジンを読み込んでいます…

プレビューのHTMLは常に無害化されます。スクリプト、イベント属性、javascript:のリンク、iframe、フォームは取り除かれます。画像のURLがある場合は、ブラウザーがそのアドレスから直接画像を読み込みます。

どんなツールか

Markdownを入力すると、その横に変換結果をリアルタイムで表示するツールです。README、ブログの下書き、開発ドキュメント、議事録などを公開前に確認するのに便利です。見出し、リスト、引用、コードブロックに加えて、表、取り消し線、タスクリストといったGitHub Flavored Markdownの拡張にも対応しています。出力は表示の前に必ず無害化されるので、出どころのわからない文章を貼り付けてもスクリプトは実行されません。

使い方

  1. 左の欄にMarkdownを入力するか貼り付けます。最初は短いサンプルが入っていて、クリアボタンで空にできます。
  2. 入力が少し止まると、右のプレビューが更新されます。表の配置や入れ子のリストを目で確認してください。
  3. 「HTMLをコピー」を押すと、無害化したHTMLの断片がクリップボードに入ります。HTMLモードのエディターやメールのテンプレートにそのまま使えます。
  4. 「.mdを保存」で元のテキストを、「.htmlを保存」で簡単なスタイルシート付きの完全なHTML文書をダウンロードします。ファイル名は最初のレベル1見出しから付けられます。
  5. あとで続きを書きたい場合は、下書き保存をオンにします。テキストはこのブラウザーにだけ保存されます。

しくみ

  • パーサー:marked(MITライセンス)がGFMの仕様に沿ってテキストをHTMLに変換します。標準どおり、行末にスペース2つを付けるか空行を挟まない限り、1回の改行は改行として表示されません。
  • 無害化:DOMPurify(Apache-2.0またはMPL-2.0、ここではApache-2.0で利用)が表示前にHTMLをきれいにします。script、iframe、object、form、styleの各タグ、onで始まるイベント属性、style属性、javascript:やdata:のアドレスを使ったリンクが取り除かれます。
  • リンク:残ったリンクは rel="noopener noreferrer" 付きで新しいタブに開きます。
  • チェックボックス:タスクリストのチェックボックスは常に無効化されていて、プレビューは読み取り専用です。
  • 画像:画像のアドレスは書いたとおりに残るので、ブラウザーがそのサーバーに直接リクエストし、サーバー側からはそのリクエストが見えます。
  • ファイル:.mdは入力したテキストそのもの(UTF-8)です。.htmlはlang属性と最小限のスタイルシートを含むUTF-8の文書です。

例

入力 結果
**太字** 太字
~~削除~~ 削除
- [x] 完了 チェック済みのボックスと「完了」
[リンク](https://example.com) 新しいタブで開くリンク
[クリック](javascript:alert(1)) アドレスは削除され、文字だけが残る
<script>alert(1)</script> 何も実行されない

表は次のように書きます。2行目のコロンで配置が決まります。

| 品名 | 数量 |
|:---|---:|
| りんご | 3 |

よくある質問

入力したMarkdownはサーバーに送信されますか?

送信されません。変換も無害化もブラウザーの中で行われ、入力した内容はアップロードされません。テキストがこのブラウザーに残るのは下書き保存をオンにしたときだけで、オフにすると削除されます。ただし、外部の画像を指定している場合は、ブラウザーがその画像をアドレスから直接読み込みます。

テキストにscriptタグがあると実行されますか?

実行されません。変換したHTMLは表示の前に必ずDOMPurifyを通り、scriptタグ、onclickやonerrorなどのイベント属性、javascript:のリンク、iframe、フォーム、styleタグが取り除かれます。コピーやダウンロードで得られるHTMLも無害化済みのものです。

表やタスクリストはどう書けばよいですか?

表は列をパイプ(|)で区切り、見出し行の下にハイフンの行を置きます。その行の左端にコロンを付けると左寄せ、右端に付けると右寄せです。タスクリストは、リスト項目を - [ ] または - [x] で始めます。プレビューでは読み取り専用のチェックボックスになります。どちらもGitHub Flavored Markdownの機能です。

GitHubや自分のブログとまったく同じ見た目になりますか?

記法の解釈は同じですが、フォント、余白、色はそれぞれのサービスが決めます。このページは、Markdownが意図どおりに解釈されるかを確認するために使ってください。ダウンロードした.htmlファイルには、読みやすさのための簡単なスタイルシートだけが含まれます。

どのくらいの長さまで入力できますか?

50万文字までです。それを超えるとプレビューを止めてお知らせを表示するので、とても長い文書は分けて貼り付けてください。

ほしいツールはありますか?