Markdown Plugin
Rules for linting .md files containing Markdown, the lightweight markup language.
This plugin comes packaged with the flint npm package.
Presets
Section titled “Presets”Flint’s Markdown plugin provides the following presets:
| Preset | Recommended | Description |
|---|---|---|
logical | ✅ Always | Common rules for finding bugs and enforcing good logical practices in Markdown files. |
logicalStrict | ☑️ When Ready | Additional rules for finding bugs and enforcing good logical practices in Markdown files. |
stylistic | ✅ Always | Common rules for consistent styling and best stylistic practices in Markdown files. |
stylisticStrict | ☑️ When Ready | Additional 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:
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:
import { defineConfig, md } from "flint";
export default defineConfig({ use: [ { files: md.files.all, rules: [md.presets.logicalStrict, md.presets.stylisticStrict], }, ],});logical
Section titled “logical”Rules that find bugs and enforce good Markdown practices for most-to-all Markdown files.
import { defineConfig, md } from "flint";
export default defineConfig({ use: [ { files: md.files.all, rules: md.presets.logical, }, ],});logicalStrict
Section titled “logicalStrict”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.
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.
stylistic
Section titled “stylistic”Rules that enforce consistent styling and best stylistic practices for most-to-all Markdown files.
import { defineConfig, md } from "flint";
export default defineConfig({ use: [ { files: md.files.all, rules: md.presets.stylistic, }, ],});stylisticStrict
Section titled “stylisticStrict”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.
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 Rule | Preset |
|---|---|
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 |
linkFragments | logical |
referenceLikeUrls | logical |
tableColumnCounts | logical |
headingRootDuplicatesReports multiple H1 headings in the same document. | logical (strict) |
headingRootPresence | logical (strict) |
linkDescriptions | logical (strict) |
codeSpaces | stylistic |
mediaSyntaxReversalsReports reversed link and image syntax in Markdown. | stylistic |
bareUrlsReports bare URLs that should be formatted as autolinks or links. | stylistic (strict) |
blockquoteBlankLineMultiples | stylistic (strict) |
fencedCodeLanguagesReports fenced code blocks without a language specified. | stylistic (strict) |
headingDuplicates | stylistic (strict) |
headingEmphasisEquivalents | stylistic (strict) |
headingTrailingPunctuation | stylistic (strict) |
olPrefixes | stylistic (strict) |
Selectors
Section titled “Selectors”Flint’s Markdown plugin provides the following file selector:
all:**/*.md