CONTENT002 - No Placeholder Text
Placeholder text should be replaced with actual content.
Why This Rule Exists
Placeholder text like "Lorem ipsum", "TBD", or "coming soon" is a normal part of drafting, but it should not survive into published documentation. This rule flags a fixed set of common placeholder patterns so they can be caught before a book ships.
Examples
Incorrect
# Installation
Lorem ipsum dolor sit amet.
# Configuration
This feature is TBD.
# Roadmap
This section is coming soon.
# API Reference
Insert content here.
Correct
# Installation
Run `cargo install mdbook-lint` to install the latest release.
# Configuration
Set `output.max_width` to control line wrapping in generated pages.
Other patterns the rule flags: TBA, TBC, under construction, work in progress, N/A, the literal word placeholder, [draft], [pending],
foo bar baz, content goes here, your name here, a line that is only
XXX, and a line that is only .... example.com in prose is flagged too,
including under the default allow_example_urls = true, which exempts it
only inside fenced code blocks.
Matches inside fenced code blocks and inline code spans are skipped by
default, so a code sample showing TBD as a literal status value is not
flagged:
Use `TBD` as the status value until the release date is set.
Configuration
[CONTENT002]
# Whether to scan inside fenced code blocks. Default: false.
check_code_blocks = false
# Whether `example.com` is exempt inside fenced code blocks when those are
# scanned. Has no effect unless check_code_blocks is true. Default: true.
allow_example_urls = true
check_code_blocks
With the default false, text inside fenced code blocks (and inline code
spans) is never checked, so example commands or sample output containing
words like TBD are left alone. Set it to true to also scan code blocks.
allow_example_urls
With the default true, example.com is still reported when it appears in
prose (outside a code block); the option only affects whether it is skipped
inside fenced code blocks once check_code_blocks is enabled. Under the
default check_code_blocks = false those lines are never scanned anyway, so
allow_example_urls does nothing at either value. The exemption also does
not cover inline code spans: with check_code_blocks = true, a
`https://example.com` span is flagged whichever way this option is
set.
When to Disable
- Working drafts where placeholder markers are intentional and temporary
- Documentation that legitimately discusses these terms (for example, a writing-style guide that uses "lorem ipsum" as an example of placeholder text)
Rule Details
- Rule ID: CONTENT002
- Aliases: no-placeholder-text
- Category: Content
- Severity: Warning
- Auto-fix: No
Related Rules
- CONTENT001 - TODO, FIXME and similar markers left in prose
- CONTENT003 - Chapters too short to be worth a page