Skip to content

About

Flint’s Markdown plugin supports linting .md source code. It comes provided 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: 5 of 17 (29.4%)
Flint NamePresetBiome Rule(s)Deno Lint Rule(s)ESLint Rule(s)Oxlint Rule(s)
definitionContentsLogicalmarkdown/no-empty-definitions
definitionDuplicatesLogicalmarkdown/no-duplicate-definitions
definitionUsesLogicalmarkdown/no-unused-definitions
headingIncrementsLogicalmarkdown/heading-increment
imageAltTextsLogicalmarkdown/require-alt-text
imageContentsLogicalmarkdown/no-empty-images
labelReferencesLogicalmarkdown/no-missing-label-refs
labelReferenceValidityLogicalmarkdown/no-invalid-label-refs
linkContentsLogicalmarkdown/no-empty-links
linkFragmentsLogicalmarkdown/no-missing-link-fragments
referenceLikeUrlsLogicalmarkdown/no-reference-like-url
tableColumnCountsLogicalmarkdown/table-column-count
headingsRootDuplicatesLogical (Strict)markdown/no-multiple-h1
mediaSyntaxReversalsStylisticmarkdown/no-reversed-media-syntax
bareUrlsStylistic (Strict)markdown/no-bare-urls
fencedCodeLanguagesStylistic (Strict)markdown/fenced-code-language
headingDuplicatesStylistic (Strict)markdown/no-duplicate-headings

Flint’s Markdown plugin provides the following file selector:

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