diff --git a/deno.json b/deno.json index 31466d17..79a0da21 100644 --- a/deno.json +++ b/deno.json @@ -38,6 +38,13 @@ "@tailwindcss/typography": "npm:@tailwindcss/typography@0.5.10", "rehype-mathjax": "npm:rehype-mathjax@6.0.0", "remark-frontmatter": "npm:remark-frontmatter@5.0.0", + "remark-lint-checkbox-content-indent": "npm:remark-lint-checkbox-content-indent@4.1.1", + "remark-lint-no-tabs": "npm:remark-lint-no-tabs@3.1.1", + "remark-lint-definition-spacing": "npm:remark-lint-definition-spacing@3.1.1", + "remark-lint-heading-increment": "npm:remark-lint-heading-increment@3.1.1", + "remark-lint-linebreak-style": "npm:remark-lint-linebreak-style@3.1.1", + "remark-lint-no-missing-blank-lines": "npm:remark-lint-no-missing-blank-lines@3.1.1", + "remark-lint-no-consecutive-blank-lines": "npm:remark-lint-no-consecutive-blank-lines@4.1.2", "remark-math": "npm:remark-math@6.0.0", "remark-mdx-frontmatter": "npm:remark-mdx-frontmatter@4.0.0", "remark-preset-lint-consistent": "npm:remark-preset-lint-consistent@5.1.2", diff --git a/tool/compile-mdx.ts b/tool/compile-mdx.ts index bea21edc..a0bf769c 100644 --- a/tool/compile-mdx.ts +++ b/tool/compile-mdx.ts @@ -8,6 +8,13 @@ import { import { type CompileOptions, compile } from "@mdx-js/mdx"; import rehypeMathjax from "rehype-mathjax"; import remarkFrontmatter from "remark-frontmatter"; +import remarkLintCheckboxContentIndent from "remark-lint-checkbox-content-indent"; +import remarkLintDefinitionSpacing from "remark-lint-definition-spacing"; +import remarkLintHeadingIncrement from "remark-lint-heading-increment"; +import remarkLintLinebreakStyle from "remark-lint-linebreak-style"; +import remarkLintNoConsecutiveBlankLines from "remark-lint-no-consecutive-blank-lines"; +import remarkLintNoMissingBlankLines from "remark-lint-no-missing-blank-lines"; +import remarkLintNoTabs from "remark-lint-no-tabs"; import remarkMath, { type Options as MathOptions } from "remark-math"; import remarkMdxFrontmatter from "remark-mdx-frontmatter"; import remarkPresetLintConsistent from "remark-preset-lint-consistent"; @@ -54,8 +61,9 @@ async function run(): Promise { const files = await Promise.all(promises); files.sort(sortFiles); + lint(files); + await Promise.all([ - Promise.resolve(lint(files)), writeSolutions(files), staticImports(files), categories(files), @@ -124,6 +132,7 @@ function lint(files: VFile[]): void { const lints = reporter(files, lintReportOptions); if (lints !== "") { console.error(lints); + Deno.exit(1); } } @@ -152,6 +161,20 @@ const remarkPlugins = [ remarkPresetLintConsistent, // @ts-expect-error: Typescript dislikes current Deno deduping of Unified. remarkPresetLintRecommended, + // @ts-expect-error: Typescript dislikes current Deno deduping of Unified. + remarkLintCheckboxContentIndent, + // @ts-expect-error: Typescript dislikes current Deno deduping of Unified. + remarkLintDefinitionSpacing, + // @ts-expect-error: Typescript dislikes current Deno deduping of Unified. + remarkLintHeadingIncrement, + // @ts-expect-error: Typescript dislikes current Deno deduping of Unified. + remarkLintLinebreakStyle, + // @ts-expect-error: Typescript dislikes current Deno deduping of Unified. + remarkLintNoTabs, + // @ts-expect-error: Typescript dislikes current Deno deduping of Unified. + remarkLintNoConsecutiveBlankLines, + // @ts-expect-error: Typescript dislikes current Deno deduping of Unified. + remarkLintNoMissingBlankLines, [remarkMath, { singleDollarTextMath: false } satisfies MathOptions], ] as const satisfies PluggableList;