Markdown を貼り付けて「Markdown をチェック」を押すと、見出しの構成と構造上の問題をブラウザ内で確認できます。表示やアップロード、リンク先の取得は行いません。
ブラウザ内でローカルに実行貼り付けた Markdown をテキストとして読み、見出しのアウトライン、見出し・リンク・コードフェンスの件数、そして原文から確かめられる構造上の問題を返します。レンダリングもアップロードもリンクの取得も行わないため、まだ共有したくない下書きでもそのまま確認できます。
処理はすべてページ内で完結します。計測したセッションでブラウザ外に出た通信はサイト自身のアクセス解析だけで、下書き・リンク・アウトラインはタブ内に留まりました。ネットワークを切っても動作するのはそのためです。
インラインリンクは、[テキスト](https://example.com "タイトル") のようなタイトル付きや、リンク先に 1 段階のかっこを含む形(Wikipedia 風の URL に必要)も数えます。参照リンクは、文書内のどこかでラベルが定義されていれば数えます。完全形 [テキスト][ref]、短縮形 [テキスト][]、省略形 [ref] のいずれも、[ref]: https://example.com のような定義行(タイトルの有無を問いません)に対応します。自動リンク <https://example.com> と <mailto:docs@example.com> も数えます。
リンクに見えるものでも、意図的に数えないものが三つあります。 の画像、インラインコード内の `[テキスト](url)`、そして <a href="https://example.com"> のような HTML タグです。タグは自動リンクではなくマークアップです。なお、定義のない参照リンクは数えずに警告します。
見出しは ATX(# から ######、字下げは最大 3 スペース、末尾の # は任意)と setext(段落行の下に ==== でレベル1、---- でレベル2)の両方を認識します。アンカーは静的サイトジェネレーターと同じ方式で作り、小文字化し、記号を除き、空白をハイフンに変えます。そのため「Install now!」と「Install now?」はどちらも #install-now になり、2 つ目がアンカーの重複として報告されます。
``` または ~~~ で開いたコードフェンスの中身は他のルールの対象外です。閉じるフェンスは開いたものと同じ長さ以上が必要で、閉じられていない場合は開いた行で報告します。文書が --- の行で始まる場合は、次の --- または ... の行までを YAML front matter として扱い、メタデータのコロン・括弧・行末の空白を本文として報告しません。
Markdown をレンダリングしないため、ページの見た目は分かりません。リンク先を取得しないため、到達できない URL も報告しません。調べるのはここに挙げたルールだけで、行の長さ、箇条書きの記号、ブロック前後の空行、表の桁揃えなど、完全なリンターのスタイル規則は対象外です。半角スペース 4 つで字下げしたコードブロックも、コードではなく通常のテキストとして読みます。
4000 行・リンク 4000 件の文書はデスクトップのブラウザで約 0.6 秒で解析できました。処理は入力中ではなくボタンを押したときに走ります。ルールを固定してリポジトリ全体を検査するならコマンドラインのリンターが適しています。このページは 1 つの下書きを、アップロードせずに確認するためのものです。