== Document Title (Level 1)
=== Section (Level 2)
==== Subsection (Level 3)
=== Another Section (Level 2)
AsciiDoc Linter Rules
Heading Rules
HEAD001: Heading Hierarchy
Ensures proper heading level incrementation (no skipped levels).
Description
This rule checks that heading levels are not skipped. For example, you cannot go from a level 1 heading (=) directly to a level 3 heading (===) without having a level 2 heading (==) in between.
Examples
== Document Title (Level 1)
==== Subsection (Level 3) // Error: Skipped Level 2
HEAD002: Heading Format
Ensures proper heading format (spacing and capitalization).
Description
This rule checks two aspects of heading format: 1. There must be a space after the = characters 2. The heading text should start with an uppercase letter
Examples
== Document Title
=== Section Title
==== Subsection Title
=Document Title // Error: No space after =
=== section title // Warning: Starts with lowercase
HEAD003: Multiple Top Level Headings
Ensures document has only one top-level heading.
Description
This rule checks that there is only one level 1 heading (=) in the document. Multiple top-level headings can indicate structural problems or accidentally split documents.
Examples
== Main Document Title
=== Section One
=== Section Two
== First Title
=== Section One
== Second Title // Error: Multiple top-level headings
Block Rules
BLOCK001: Unterminated Blocks
Checks for blocks that are not properly terminated.
Description
This rule ensures that all block delimiters are properly paired. Each opening delimiter must have a matching closing delimiter.
Supported Block Types
-
Listing blocks (----)
-
Example blocks (====)
-
Sidebar blocks (****)
-
Literal blocks (….)
-
Quote blocks (_\_)
-
Table blocks (|===)
-
Comment blocks (////)
-
Passthrough blocks (+\+).
Examples
[source,python]
def hello(): print("Hello, World!")
.Example Block ==== Some example content ====
[source,python]
def hello(): print("Hello, World!")
Some example content
==== BLOCK002: Block Spacing Verifies proper spacing around blocks. ===== Description This rule checks that blocks are properly separated from surrounding content with blank lines, improving readability. ===== Examples .Valid Block Spacing [source,asciidoc]
Some text before the block.
Block content
Some text after the block.
.Invalid Block Spacing [source,asciidoc]
Some text before the block. ---- // Warning: No blank line before block Block content
Some text after the block. // Warning: No blank line after block
=== Whitespace Rules
==== WS001: Whitespace Usage
Ensures proper whitespace usage throughout the document.
===== Checks Performed
-
Consecutive Empty Lines: No more than one consecutive empty line
-
List Marker Spacing: Proper space after list markers (*, -, .)
-
Admonition Block Spacing: Blank line before admonition blocks
-
Trailing Whitespace: No trailing spaces at end of lines
-
Tab Usage: No tabs (use spaces instead)
-
Section Title Spacing: Blank lines around section titles
===== Examples
== Document Title
=== Section Title
* List item 1
* List item 2
NOTE: This is a note.
Some text here.
== Document Title
=== Section Title // Missing blank line before
*Invalid list item // Missing space after marker
NOTE: Invalid note // Missing blank line before
Some text here // Trailing spaces
Tabbed line // Tab instead of spaces
Extra blank line // Too many blank lines
=== Image Rules
==== IMG001: Image Attributes
Verifies image attributes and file references.
===== Description
This rule checks: 1. All images have alt text 2. Referenced local images exist 3. Block images have titles 4. Image attributes are properly formatted
===== Examples
// Inline image with alt text
image:icon.png[Icon]
// Block image with title and alt text
.Figure 1: System Architecture
image::diagram.png[Architecture Diagram]
// External image with alt text
image:https://example.com/img.png[Example Image]
// Missing alt text
image:icon.png[]
// Missing title for block image
image::diagram.png[Diagram]
// Non-existent local file
image::missing.png[Missing Image]
=== Planned Rules
==== TABLE001: Table Formatting (Planned)
Will check table formatting consistency: * Column alignment * Header row presence * Cell content formatting
==== LINK001: Link Verification (Planned)
Will verify: * Internal cross-references * External link validity * Anchor definitions
==== FMT001: Format Consistency (Planned)
Will check: * Consistent emphasis style * List formatting * Admonition usage
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.