matsu-chara/textlint-rule-incremental-headers · GitHub
文章を書く時に見出しに関するルールを決めたので、自動で検査するためのツールを作りました。 ルール自体の実装は簡単だったんですが、
textlintルールのテスト、https://t.co/ILIhCVHgNV のエラーが起こった行数にloc.start.lineを自動で足してくれるのに気づかなくてはまってしまった(´・_・`)
— まつちゃら (@matsu_chara) November 19, 2015
という罠(というか仕様を理解してなくて勝手に)にハマりました(´・_・`)
ルールは以下の3つです。
- ページの始まりの見出しは#(h1)から始まる。
- ページの始まりの見出し以外で#(h1)を使ってはいけない
- 見出しの深さ(h1, h2, h3など)は必ず1つずつ増加する。(h1, h3のように急に深くならない)
以下はルールの例です。(全て別の.mdファイルだと思ってください)
例1:
# ページの先頭の見出しはh1から始まります。
例2:
注意書きを先頭に書くこともあるので # 見出し以外であれば、ページの先頭に書くことが出来ます。
例3:
## いきなりh2から初めては ### いけません。
例4:
# 見出しの深さは ## 1つずつ増えます。
例5:
# このようにh1から ### 突然h3になってはいけません
例6:
# このように ## 順番に深さを増やしたり ### 並列に同じ深さの ### 見出しを並べたり # 浅い見出しに戻るのは構いません。
例7:
# このように先頭以外で # h1を使ってはいけません
だいたい同じようなルールが wooorm/mdast-lint · GitHub にあるので、textlintで完結してなくても良い!って人はそっちを使っても良さそうです