Skip to content

Markdown Plugin

Rules for linting .md files containing Markdown, the lightweight markup language.
This plugin comes packaged with the flint npm package.

Flint’s Markdown plugin provides the following presets:

PresetRecommendedDescription
logical✅ AlwaysCommon rules for finding bugs and enforcing good logical practices in Markdown files.
logicalStrict☑️ When ReadyAdditional rules for finding bugs and enforcing good logical practices in Markdown files.
stylistic✅ AlwaysCommon rules for consistent styling and best stylistic practices in Markdown files.
stylisticStrict☑️ When ReadyAdditional rules for consistent styling and best stylistic practices in Markdown files.

If you are just getting started with linting, Flint recommends using the logical and stylistic presets:

flint.config.ts
import { defineConfig, md } from "flint";
export default defineConfig({
use: [
{
files: md.files.all,
rules: [md.presets.logical, md.presets.stylistic],
},
],
});

If you are experienced with both Markdown and linting, Flint recommends using the logicalStrict and stylisticStrict presets:

flint.config.ts
import { defineConfig, md } from "flint";
export default defineConfig({
use: [
{
files: md.files.all,
rules: [md.presets.logicalStrict, md.presets.stylisticStrict],
},
],
});

Rules that find bugs and enforce good Markdown practices for most-to-all Markdown files.

flint.config.ts
import { defineConfig, md } from "flint";
export default defineConfig({
use: [
{
files: md.files.all,
rules: md.presets.logical,
},
],
});

Additional logical rules that enforce best practices which are not always straightforward to implement. These rules are recommended for projects where a majority of developers are experienced with both Markdown and using a linter.

flint.config.ts
import { defineConfig, md } from "flint";
export default defineConfig({
use: [
{
files: md.files.all,
rules: md.presets.logicalStrict,
},
],
});

This preset’s rules are a superset of those in logical.

Rules that enforce consistent styling and best stylistic practices for most-to-all Markdown files.

flint.config.ts
import { defineConfig, md } from "flint";
export default defineConfig({
use: [
{
files: md.files.all,
rules: md.presets.stylistic,
},
],
});

Additional stylistic rules that enforce best practices which are not always straightforward to implement. These rules are recommended for projects where a majority of developers are experienced with both Markdown and using a linter.

flint.config.ts
import { defineConfig, md } from "flint";
export default defineConfig({
use: [
{
files: md.files.all,
rules: md.presets.stylisticStrict,
},
],
});

This preset’s rules are a superset of those in stylistic.

Implemented: 15 of 24 (62.5%)
Flint RulePreset
definitionContentsReports definitions with empty URLs or only empty fragments.logical
definitionDuplicatesReports duplicate definition identifiers (case-insensitive).logical
definitionUsesReports unused reference definitions.logical
headingIncrementsReports heading levels incrementing by more than one.logical
imageAltTextsReports images without alternative text.logical
imageContentsReports images with empty URLs or only empty fragments.logical
labelReferencesReports missing label references.logical
labelReferenceValidityReports invalid label references with whitespace.logical
linkContentsReports links with empty URLs or only empty fragments.logical
linkFragmentslogical
referenceLikeUrlslogical
tableColumnCountslogical
headingRootDuplicatesReports multiple H1 headings in the same document.logical (strict)
headingRootPresencelogical (strict)
linkDescriptionslogical (strict)
codeSpacesstylistic
mediaSyntaxReversalsReports reversed link and image syntax in Markdown.stylistic
bareUrlsReports bare URLs that should be formatted as autolinks or links.stylistic (strict)
blockquoteBlankLineMultiplesstylistic (strict)
fencedCodeLanguagesReports fenced code blocks without a language specified.stylistic (strict)
headingDuplicatesstylistic (strict)
headingEmphasisEquivalentsstylistic (strict)
headingTrailingPunctuationstylistic (strict)
olPrefixesstylistic (strict)

Flint’s Markdown plugin provides the following file selector:

  • all: **/*.md
Made with ❤️‍🔥 in Boston by Josh Goldberg and contributors.