Markdown Linter

Markdownのスタイルとフォーマットエラーをリアルタイムで検出。ルールID・行番号付きの結果をクリックで該当行にジャンプ。ブラウザ内で処理、データ送信なし。

  • ブラウザ内で処理
  • データはブラウザ外に出ません
  • 無料 · 登録不要
「クリア」、またはツール内にフォーカスがある状態の Ctrl/⌘+L で、入力・結果・概要を消去します。待機中のチェックを取り消し、以前の結果やコピー表示が戻ることを防ぎます。
「結果をコピー」は表示中の問題ごとに、行番号、角括弧内のルール ID、説明、詳細、文脈を 1 行のテキストとしてコピーします。ルールの別名は含めません。問題がない場合はコピーしません。
Markdown 文書を 1 件編集します。入力の 300 ミリ秒後に markdownlint の既定ルールで検査し、最初のサンプルには意図的な問題があります。文書内の markdownlint-disable・markdownlint-enable コメントでルールを停止できます。設定ファイルのアップロードや自動修正はありません。
Lint 結果 各問題にルール ID・行番号・説明と、存在する詳細・文脈・別名を表示します。問題をクリックするとエディタで対象行を選択します。説明と詳細は markdownlint の英語です。検査は問題を報告し、文書は変更しません。
入力すると結果が表示されます。
例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。

チェック内容

markdownlintの全ルールを適用します。主な内容:

  • MD001 — 見出しレベルは一度に1段階だけ増やす
  • MD009 — 行末にスペースを置かない
  • MD010 — ハードタブを使わない(スペースを使用)
  • MD012 — 連続する空行を複数置かない
  • MD022 — 見出しの前後には空行を入れる
  • MD025 — ドキュメント内のH1は1つだけ
  • MD031 — コードフェンスの前後には空行を入れる
  • MD034 — 裸のURLは使わず、リンク記法を使う
  • MD041 — 最初の行はトップレベルの見出し

プライバシー

処理はすべてクライアント側で行われます。Markdownはアップロードも保存もされません。

関連ツール

例:CHANGELOG

入力:

# Changelog

## 1.2.0

### Added

- Export button

## 1.1.0

### Added

* Dark mode

See https://example.com/releases

結果(markdownlint 0.40、既定のルール):

L13  MD004 / ul-style            Unordered list style — Expected: dash; Actual: asterisk
L11  MD024 / no-duplicate-heading Multiple headings with the same content
L15  MD034 / no-bare-urls         Bare URL used
  • どちらのバージョンにも「Added」見出しがあるため MD024 が出ます。Keep a Changelog の標準的な書き方なので、自分の設定では "MD024": { "siblings_only": true } として親が異なる同名見出しを許可します。
  • MD004 は文書内でリスト記号を 1 種類にそろえるよう求めます。最初のリストが - なので * が指摘されます。
  • MD034 は裸の URL を <https://example.com/releases> か Markdown のリンクにするよう求めます。

ここでは変えられない既定値

ツールは markdownlint が既定で有効にしているルールをすべて、既定の設定で実行します(markdownlint rules を参照)。設定画面はないため、次の 2 つがよく余計な指摘になります:

  • MD013 行の長さは 80 文字です。104 文字の英文の行は Expected: 80; Actual: 104 と報告されます。80 桁目以降に空白のない長い行は報告されないので、空白を含まない日本語の長い行はたいてい通ります。
  • MD024 は文書内で同じ見出しの文字列が繰り返されると指摘します。上の CHANGELOG がその例です。

自分の設定で検査するなら .markdownlint.json に書き、ローカルや CI で markdownlint-cli2 を実行します:

{
"MD013": { "line_length": 120 },
"MD024": { "siblings_only": true }
}

markdownlint はファイル先頭の YAML Front Matter を読み飛ばし、その中の title は MD041 ではトップレベルの見出しとして扱われます。

FAQ

コンテンツはサーバーに送信されますか?

いいえ。すべてのLintはブラウザ内のJavaScriptで完結します。Markdownはデバイスの外に出ません。

どのルールをチェックしますか?

markdownlintの標準ルールを全て適用します。見出しレベル、行末スペース、空行数、裸のURL、リスト形式、コードフェンスの書式など50以上の項目を検査します。

MD001などのルールIDは何を意味しますか?

ルールIDはmarkdownlintの規約に従います。MD001は「見出しの増分」、MD009は「行末スペース禁止」、MD041は「最初の行はH1」を意味します。

結果をクリックしてその行にジャンプできますか?

はい。Lint結果をクリックすると、エディタが対象の行にスクロールして選択されます。

CLIのmarkdownlintと何が違いますか?

CLIツールはビルドパイプラインに組み込んでファイルを検査します。このブラウザツールは、インストール不要でMarkdownを素早く確認したい場合に便利です。