All rules

Heading end punctuation mixed

heading-end-punctuation-mixon by default (info)Japanese / English

Headings that end with a colon or full stop mixed with headings that do not

Example

Flagged
# Working guide ## Preparation Gather the tools. ## Steps Work through them in order. ## Checks: Look at the result. ## Cleanup Put everything back.
What chaff prints
11:1 The heading "Checks:" ends with ":", while 3 other headings end bare ("Preparation")
Fixed
# Working guide ## Preparation Gather the tools. ## Steps Work through them in order. ## Checks Look at the result. ## Cleanup Put everything back.
What chaff prints
no finding

How to fix

End the heading the way most headings end. If most end bare, drop the colon or the full stop.

Why it matters

When most headings end bare ("Setup", "Notes") and one ends with a colon or a full stop ("Prerequisites:", "Checks."), or the other way round, the reader wonders whether that heading is meant to be different, and it stands out in the table of contents. It is usually a heading pasted from elsewhere or not yet tidied. chaff does not pick a style; it points at the smaller side among headings of the same depth. Depths are compared apart, so a depth whose headings are all labels ("Optional:") is not reported.

What it does not flag

The page title (a single top-level heading that opens the document) is not compared. Fewer than four headings at one depth, or where both ways are common (the smaller side above a quarter), is not reported. A heading ending with a question mark or an exclamation mark counts as bare. A heading ending with a full stop that is part of the words ("…", "etc.", "Inc.") is left out of the comparison; the abbreviations are in each language's lexicon. Headings set in capitals (a notice's captions, "AGENCY:") are compared with each other, apart from headings in ordinary case. A heading that ends with a colon and has only a value under it, with no sentence (an address or a phone number under a contact block's "Phone:"), is the label of a field and is compared only with other labels.

Turning it off or relaxing it

Silence this one spot (in the document)
<!-- stet: heading-end-punctuation-mix — reason -->
Relax it for the team (the reason is kept as a comment in chaff.yaml)
npx chaffjs relax heading-end-punctuation-mix --why "reason"
Turn it off for the team (chaff.yaml)
rules: heading-end-punctuation-mix: off
Technical details
Layer
L1
Status
stable
Severity
info
Languages
Japanese and English
Suited to
business, technical, blog, legal, docs, academic, literature, speech
Reads from the document
markdown

Levels

Set a level for this rule under rules in chaff.yaml. With nothing set, it runs at the level its genre gives it (see By genre below).

strictwarning
normalinfo
relaxedinfo

This rule has no limit to count to. A level sets how a finding is marked: relaxed keeps the finding and marks it a step lower.

By genre

Runs by default in
technical/spec, technical/readme, blog/tech, blog/essay, blog/owned-media, business/proposal, business/report, business/email, business/press-release, business/meeting-notes, legal/contract, legal/statute, legal/judgment, legal/patent, docs/manual, docs/faq, docs/glossary, academic/paper, literature/fiction, literature/essay, literature/poetry, literature/play, speech/address, speech/transcript

Genres

Message

The heading "{heading}" ends differently from the other headings ("{example}" and {count} in all)

The heading "{heading}" ends with "{mark}", while {count} other headings end bare ("{example}")

The heading "{heading}" ends bare, while {count} other headings end with a mark ("{example}")

Rewrite depth (chaff fix-plan --depth): light — words and sentences; the structure and the voice stay

This page is built from the rule's definition file:packages/chaff/rules/heading-end-punctuation-mix.yaml