| name | markdown-max-line-length |
| description | 1行の長さに上限を与えて Markdown ドキュメントを整形する手順を提供します。 |
markdown-max-line-length
行の長さは、概ね、その行が持つ情報量に比例します。
行が長すぎるという事実は、その行の情報量が多すぎるということを意味します。
情報量の多すぎる行は、人間視点での可読性を低下させ、行番号による参照性を悪くします。
行の長さの物理的制限によって、1 行が持てる情報量に上限を設け、人間によるレビューを潤滑にします。
例文
このファイル自体が実例です。
このファイルの各行の長さは、次の数字列以下の長さに揃えて構成されています。
12345678901234567890123456789012345678901234567890
ルール
行長制限
原則として、各行は 50 文字以下でなければなりません。
この上限は、指示によって変更される場合もありますが、方法論としては共通です。
文字数は、Unicode コードポイントの個数でカウントします。
シングルバイト文字は 0.5 文字分としてカウントします。
以下は行の長さを計算し、50 を超えている行の番号を羅列する Xarpite ワンライナーです。
cat foo.md | xa -A 5 -q 'I | i, l => (l >> CODE_POINTS | _ <= H#FF ? 0.5 : 1 >> SUM) | c => c > 50 && (OUT << "$(i + 1) $c $(l::take(20))")'
例外
以下の場所は、行の文字数制限の対象としません。
- フロントマター
- 箇条書き
- 表組
- コードブロック
- 引用
- その他、改行しないことが特別な意味を持つ個所
また、次のような、途中で改行することが不可能か不適切な部分が大部分を占める行もまた、例外です。
行と文の対応
原則として、1 行と 1 文が対応します。
すなわち、1 個の文は複数行にまたがってはならず、1 個の行に複数の文を記述してはいけません。
テクニック
これは、いくつかの個所で用いられる例文の、整形前のバージョンです。
Xarpite はワンライナー向けのインタプリタ言語であり、多種の独特な演算子、組み込み関数、高級な言語機能を持ちます。
文の意味論的な分割
例文を意味論的に再構成して 2 個の文に分けると、次のように、最も繫がりの弱い部分で分割されます。
Xarpite はワンライナー向けのインタプリタ言語です。
それは、多種の独特な演算子、組み込み関数、高級な言語機能を持ちます。
重要なのは、文を構成する言葉が、趣旨の違いによって 2 種類にカテゴライズされたことです。
次の例は、構文的な再構成によって意味論的に最適でない基準によって分割された文の例です。
Xarpite はワンライナー向けのインタプリタ言語であり、多種の独特な演算子を持ちます。
また、組み込み関数と高級な言語機能ももちます。
箇条書き化
例文を箇条書き化すると、次のようになります。
Xarpite はワンライナー向けのインタプリタ言語であり、次の機能を持ちます。
文中で同様のクラスの名詞句が複数並立されている場合は、箇条書き化も視野に入れてください。
長大語の分離
次の文は、大部分がリンク構文で構成されています。
Xarpite はワンライナー向けのインタプリタ言語です。
URL 単体で全角 50 文字を超えているため、この URL を含む行が既定を満たすことは不可能です。
しかし、極力短くする努力はしてください。
Xarpite はワンライナー向けのインタプリタ言語です。
長大な部分を文中から分離し、文でない形で配置すると、レビューのコストを下げることができます。