Skip to content

Wrapped Markdown should satisfy MD013 line length #311

Description

@lodyai

Summary

Running make fmt in leynos/episodic leaves Markdown output that fails the project markdownlint gate with MD013 line-length errors. The formatter is invoked with --wrap, so the resulting Markdown should either wrap these lines within the configured width or leave a clearly intentional exception that markdownlint also accepts.

Reproduction context

Repository: leynos/episodic
Branch: feat/audit-mdtablefix-fmt
Command: make fmt
Formatter invocation from the Makefile output:

mdtablefix --wrap --renumber --breaks --ellipsis --fences --in-place

After formatting, make markdownlint reports:

docs/execplans/4-1-2-finalize-rest-surfaces.md:772:81 error MD013/line-length Line length [Expected: 80; Actual: 100]
docs/execplans/4-1-2-finalize-rest-surfaces.md:778:81 error MD013/line-length Line length [Expected: 80; Actual: 84]
docs/execplans/4-1-2-finalize-rest-surfaces.md:783:81 error MD013/line-length Line length [Expected: 80; Actual: 87]
docs/execplans/4-1-2-finalize-rest-surfaces.md:861:81 error MD013/line-length Line length [Expected: 80; Actual: 119]
docs/tei-rapporteur-users-guide.md:166:81 error MD013/line-length Line length [Expected: 80; Actual: 98]

Examples

Long inline signature line

File: docs/execplans/4-1-2-finalize-rest-surfaces.md

Formatter output:

1. Add
   `count_for_series(self, owner_series_profile_id: str, kind: ReferenceDocumentKind | None) -> int`
   to `ReferenceDocumentRepository` ` Protocol at `episodic

The inline signature remains 100 columns wide and fails MD013. Similar failures occur for adjacent wrapped signatures in the same section.

Long union type line

File: docs/tei-rapporteur-users-guide.md

Before formatting, the line was wrapped:

- `Event = DocumentStart | HeaderEvent | ParagraphEvent | UtteranceEvent |
  DivEvent | DocumentEnd`

After formatting, it became a single long line:

- `Event = DocumentStart | HeaderEvent | ParagraphEvent | UtteranceEvent | DivEvent | DocumentEnd`

That line is 98 columns and fails MD013.

Expected behaviour

With --wrap, mdtablefix output should be compatible with an 80-column MD013 gate for ordinary prose/list content. For long inline code spans, acceptable behaviours would include:

  • Preserve an existing valid wrapped form when it already satisfies lint.
  • Wrap around surrounding prose without increasing line length.
  • Leave unwrappable inline code unchanged only when the input was already unwrappable and lint-exempt.
  • Optionally report that a line cannot be safely wrapped instead of producing lint-failing output.

Impact

make fmt currently exits non-zero because the formatting pass is followed by markdownlint. This means the formatter can make the repository less valid after being run, and users must manually repair formatter output before the Markdown gate passes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions