# `MD009` - 行末の余分なスペースを削除してください

タグ: `whitespace`

エイリアス: `no-trailing-spaces`

パラメーター:

- `br_spaces`: 改行のためのスペース数 (`integer`, デフォルト `2`)
- `code_blocks`: コードブロックを含めるかどうか (`boolean`, デフォルト `false`)
- `list_item_empty_lines`: リスト項目内の空行のスペースを許可するかどうか (`boolean`, デフォルト `false`)
- `strict`: 不要な改行用スペースも含めるかどうか (`boolean`, デフォルト `false`)

修正可能性: 一部の違反はツールによって自動修正可能です。

このルールは、予期しない空白（スペースなど）で終わる行に対してトリガーされます。修正するには、行末の余分なスペースを削除してください。

`br_spaces` パラメーターを使用すると、明示的な改行（\<br> 要素）を挿入するために一般的に使用される特定の数の行末スペースを例外として許可できます。デフォルト値では、ハード改行を示す2つのスペースが許可されています（このパラメーターを有効にするには、`br_spaces` を2以上の値に設定する必要があります。1に設定した場合は0と同じ動作になり、行末のスペースは一切許可されません）。

デフォルトでは、一部のプログラミング言語で必要とされる可能性があるため、インデントされたコードブロックやフェンス付きコードブロック内の行末スペースは許可されています。これらを報告対象にするには、`code_blocks` パラメーターを `true` に設定してください。

デフォルトでは、許可された数のスペースが使用されている場合、たとえそれがハード改行にならない場所（段落の最後など）であってもルールはトリガーされません。このようなケースも報告対象にするには、`strict` パラメーターを `true` に設定してください。

```markdown
本文 本文 本文
本文[2つのスペース]
```

リスト項目内の空行をインデントするためにスペースを使用することは通常不要ですが、一部のパーサーでは要求されることがあります。これを許可するには、`list_item_empty_lines` パラメーターを `true` に設定してください（`strict` が `true` の場合でも許可されます）。

```markdown
- リスト項目のテキスト
  [2つのスペース]
  リスト項目のテキスト
```

根拠: 改行を作成するために使用される場合を除き、行末の空白には目的がなく、コンテンツのレンダリングにも影響を与えません。
