Skip to content

Instantly share code, notes, and snippets.

@Potherca
Last active June 7, 2025 11:06
Show Gist options
  • Save Potherca/c498f8efb3682c33bc64108fbaa3d342 to your computer and use it in GitHub Desktop.
Save Potherca/c498f8efb3682c33bc64108fbaa3d342 to your computer and use it in GitHub Desktop.
My personal preferences for markdown linting with ReMark
{
"plugins": [
"remark-preset-lint-recommended",
["hard-break-spaces", {"allowSpaces": false}],
"remark-lint-first-heading-level",
"remark-lint-heading-increment",
["remark-lint-heading-style", {"style": "atx"}],
["remark-lint-linebreak-style", {"style": "unix"}],
["remark-lint-link-title-style", {"style": "\""}],
""
]
}

Lint Recommended

remark-preset-lint-recommended consists of the following remark-lint- rules:

Rule Name Warn when ... Default
final-newline A final line ending is missing.
hard-break-spaces Spaces are used for hard breaks. "consistent"
list-item-bullet-indent List item markers are indented.
list-item-indent Whitespace after list item markers violates given style. "one"
no-blockquote-without-marker Lazy lines are used in block quotes.
no-duplicate-definitions Identifiers are defined multiple times.
no-heading-content-indent Extra whitespace is used between hashes and content in headings.
no-literal-urls GFM autolink literals are used.
no-shortcut-reference-image Shortcut reference images are used.
no-shortcut-reference-link Shortcut reference links are used.
no-undefined-references Undefined definitions are referenced. false
no-unused-definitions Unreferenced definitions are used.
ordered-list-marker-style Ordered list markers are inconsistent. "."

Added Rules

Rule Name Warn when ... Default
first-heading-level The first heading has an unexpected rank. "1"
heading-increment Heading ranks increment with more than 1 at a time.
heading-style Headings violate a given style. "consistent"
linebreak-style Line endings violate a given style. "consistent"
link-title-style Link title markers violate a given style. "consistent"
list-item-content-indent The indent of list item content is not consistent.
media-style The style of specifying the URL of images and links is incorrect.

TODO

Check the following:

Rule Name Warn when ... Default
no-consecutive-blank-lines warn for too many consecutive blank lines
no-duplicate-defined-urls warn on definitions that define the same urls
no-duplicate-headings warn on duplicate headings
no-duplicate-headings-in-section warn on duplicate headings in a section
no-empty-url warn on empty URLs in links and images
no-heading-indent warn when headings are indented
no-heading-like-paragraph for too many hashes (h7+ “headings”)
no-hidden-table-cell check superfluous table cells
no-missing-blank-lines warn when missing blank lines
no-multiple-toplevel-headings warn when multiple top level headings are used
no-paragraph-content-indent warn when the content in paragraphs are indented
no-reference-like-url warn when URLs are also defined identifiers
no-shell-dollars warn when shell code is prefixed by dollars
no-table-indentation warn when tables are indented
ordered-list-marker-value check the marker value of ordered lists
rule-style warn when horizontal rules violate a given style
strikethrough-marker warn when strikethrough markers violate the given style
strong-marker warn when importance (strong) markers violate the given style
table-cell-padding warn when table cells are incorrectly padded
table-pipes warn when table rows are not fenced with pipes
unordered-list-marker-style warn when markers of unordered lists violate a given style

Comunity

Rule Name Warn when ... Default
are-links-valid check if your links are reachable and/or unique
check-toc ensure TOC is correct
code lint fenced code blocks by corresponding language tags, currently supporting ESLint
code-block-split-list ensure code block inside list doesn't split the list
double-link ensure the same URL is not linked multiple times.
fenced-code-flag-case warn when fenced code blocks have improperly cased language flags
heading-capitalization ensure headings capitalization is correct
match-punctuation ensures punctuations are used in pairs if necessary.
mdash-style ensure em-dash style follows a standard format
no-dead-urls check that external links are alive
no-empty-sections ensure every heading is followed by content (forming a section)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment