diff --git a/.remarkrc.js b/.remarkrc.js index 10357df2..3eed5fff 100644 --- a/.remarkrc.js +++ b/.remarkrc.js @@ -1,11 +1,25 @@ -exports.plugins = [ - require('./packages/remark-preset-lint-recommended'), - require('./packages/remark-preset-lint-consistent'), - [require('remark-toc'), {tight: true, maxDepth: 2, heading: 'contents'}], - require('remark-comment-config'), - [require('remark-gfm'), {tablePipeAlign: false}], - require('remark-github'), - require('remark-validate-links'), - require('./script/plugin/list-of-presets'), - require('./script/plugin/list-of-rules') +import remarkPresetLintRecommended from './packages/remark-preset-lint-recommended/index.js' +import remarkPresetLintConsistent from './packages/remark-preset-lint-consistent/index.js' +import remarkToc from 'remark-toc' +import remarkCommentConfig from 'remark-comment-config' +import remarkGfm from 'remark-gfm' +import remarkGithub from 'remark-github' +import remarkValidateLinks from 'remark-validate-links' +import listOfPresets from './script/plugin/list-of-presets.js' +import listOfRules from './script/plugin/list-of-rules.js' + +const plugins = [ + remarkPresetLintRecommended, + remarkPresetLintConsistent, + [remarkToc, {tight: true, maxDepth: 2, heading: 'contents'}], + remarkCommentConfig, + [remarkGfm, {tablePipeAlign: false}], + remarkGithub, + remarkValidateLinks, + listOfPresets, + listOfRules ] + +const preset = {plugins} + +export default preset diff --git a/package.json b/package.json index c265b417..713dfa52 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "David Chambers ", "Denis Augsburger (https://simpleen.io)" ], + "type": "module", "devDependencies": { "c8": "^7.0.0", "dox": "^0.9.0", diff --git a/packages/remark-lint-blockquote-indentation/index.js b/packages/remark-lint-blockquote-indentation/index.js index f8e46ec2..c537b96d 100644 --- a/packages/remark-lint-blockquote-indentation/index.js +++ b/packages/remark-lint-blockquote-indentation/index.js @@ -45,19 +45,19 @@ * 9:3: Add 1 space between block quote and content */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import plural from 'pluralize' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var plural = require('pluralize') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') - -module.exports = rule( +const remarkLintBlockquoteIndentation = lintRule( 'remark-lint:blockquote-indentation', blockquoteIndentation ) +export default remarkLintBlockquoteIndentation + function blockquoteIndentation(tree, file, option) { var preferred = typeof option === 'number' && !isNaN(option) ? option : null diff --git a/packages/remark-lint-blockquote-indentation/package.json b/packages/remark-lint-blockquote-indentation/package.json index dc336eb9..bc7a5829 100644 --- a/packages/remark-lint-blockquote-indentation/package.json +++ b/packages/remark-lint-blockquote-indentation/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-checkbox-character-style/index.js b/packages/remark-lint-checkbox-character-style/index.js index 0b21b8e7..8cf0a8f9 100644 --- a/packages/remark-lint-checkbox-character-style/index.js +++ b/packages/remark-lint-checkbox-character-style/index.js @@ -69,18 +69,18 @@ * 1:1: Incorrect checked checkbox marker `💩`: use either `'x'`, or `'X'` */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') - -module.exports = rule( +const remarkLintCheckboxCharacterStyle = lintRule( 'remark-lint:checkbox-character-style', checkboxCharacterStyle ) +export default remarkLintCheckboxCharacterStyle + var start = position.start var end = position.end diff --git a/packages/remark-lint-checkbox-character-style/package.json b/packages/remark-lint-checkbox-character-style/package.json index 832c644a..9001ad8a 100644 --- a/packages/remark-lint-checkbox-character-style/package.json +++ b/packages/remark-lint-checkbox-character-style/package.json @@ -23,6 +23,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-checkbox-content-indent/index.js b/packages/remark-lint-checkbox-content-indent/index.js index a7e756f8..71e39d59 100644 --- a/packages/remark-lint-checkbox-content-indent/index.js +++ b/packages/remark-lint-checkbox-content-indent/index.js @@ -27,19 +27,19 @@ * 4:7-4:10: Checkboxes should be followed by a single character */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import vfileLocation from 'vfile-location' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var vfileLocation = require('vfile-location') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') - -module.exports = rule( +const remarkLintCheckboxContentIndent = lintRule( 'remark-lint:checkbox-content-indent', checkboxContentIndent ) +export default remarkLintCheckboxContentIndent + var start = position.start var end = position.end diff --git a/packages/remark-lint-checkbox-content-indent/package.json b/packages/remark-lint-checkbox-content-indent/package.json index ffde9cd6..205cf344 100644 --- a/packages/remark-lint-checkbox-content-indent/package.json +++ b/packages/remark-lint-checkbox-content-indent/package.json @@ -23,6 +23,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-code-block-style/index.js b/packages/remark-lint-code-block-style/index.js index 3fbdeb5a..69962d36 100644 --- a/packages/remark-lint-code-block-style/index.js +++ b/packages/remark-lint-code-block-style/index.js @@ -92,14 +92,17 @@ * 1:1: Incorrect code block style `💩`: use either `'consistent'`, `'fenced'`, or `'indented'` */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintCodeBlockStyle = lintRule( + 'remark-lint:code-block-style', + codeBlockStyle +) -module.exports = rule('remark-lint:code-block-style', codeBlockStyle) +export default remarkLintCodeBlockStyle var start = position.start var end = position.end diff --git a/packages/remark-lint-code-block-style/package.json b/packages/remark-lint-code-block-style/package.json index 6de94559..904a0932 100644 --- a/packages/remark-lint-code-block-style/package.json +++ b/packages/remark-lint-code-block-style/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-definition-case/index.js b/packages/remark-lint-definition-case/index.js index 13693125..ea368a3b 100644 --- a/packages/remark-lint-definition-case/index.js +++ b/packages/remark-lint-definition-case/index.js @@ -19,14 +19,17 @@ * 1:1-1:47: Do not use uppercase characters in definition labels */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintDefinitionCase = lintRule( + 'remark-lint:definition-case', + definitionCase +) -module.exports = rule('remark-lint:definition-case', definitionCase) +export default remarkLintDefinitionCase var label = /^\s*\[((?:\\[\s\S]|[^[\]])+)]/ var reason = 'Do not use uppercase characters in definition labels' diff --git a/packages/remark-lint-definition-case/package.json b/packages/remark-lint-definition-case/package.json index 20548972..01925ea5 100644 --- a/packages/remark-lint-definition-case/package.json +++ b/packages/remark-lint-definition-case/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-definition-spacing/index.js b/packages/remark-lint-definition-spacing/index.js index 3a6eb365..ba9e71d8 100644 --- a/packages/remark-lint-definition-spacing/index.js +++ b/packages/remark-lint-definition-spacing/index.js @@ -19,14 +19,17 @@ * 1:1-1:57: Do not use consecutive whitespace in definition labels */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintDefinitionSpacing = lintRule( + 'remark-lint:definition-spacing', + definitionSpacing +) -module.exports = rule('remark-lint:definition-spacing', definitionSpacing) +export default remarkLintDefinitionSpacing var label = /^\s*\[((?:\\[\s\S]|[^[\]])+)]/ var reason = 'Do not use consecutive whitespace in definition labels' diff --git a/packages/remark-lint-definition-spacing/package.json b/packages/remark-lint-definition-spacing/package.json index 946fe0ea..5bbc2b18 100644 --- a/packages/remark-lint-definition-spacing/package.json +++ b/packages/remark-lint-definition-spacing/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-emphasis-marker/index.js b/packages/remark-lint-emphasis-marker/index.js index ba3fe9a3..15158042 100644 --- a/packages/remark-lint-emphasis-marker/index.js +++ b/packages/remark-lint-emphasis-marker/index.js @@ -60,14 +60,17 @@ * 1:1: Incorrect emphasis marker `💩`: use either `'consistent'`, `'*'`, or `'_'` */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintEmphasisMarker = lintRule( + 'remark-lint:emphasis-marker', + emphasisMarker +) -module.exports = rule('remark-lint:emphasis-marker', emphasisMarker) +export default remarkLintEmphasisMarker var markers = {null: true, '*': true, _: true} diff --git a/packages/remark-lint-emphasis-marker/package.json b/packages/remark-lint-emphasis-marker/package.json index b801352e..c8139512 100644 --- a/packages/remark-lint-emphasis-marker/package.json +++ b/packages/remark-lint-emphasis-marker/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-fenced-code-flag/index.js b/packages/remark-lint-fenced-code-flag/index.js index 9e13f837..805ca933 100644 --- a/packages/remark-lint-fenced-code-flag/index.js +++ b/packages/remark-lint-fenced-code-flag/index.js @@ -64,14 +64,17 @@ * 1:1-3:4: Incorrect code language flag */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintFencedCodeFlag = lintRule( + 'remark-lint:fenced-code-flag', + fencedCodeFlag +) -module.exports = rule('remark-lint:fenced-code-flag', fencedCodeFlag) +export default remarkLintFencedCodeFlag var start = position.start var end = position.end diff --git a/packages/remark-lint-fenced-code-flag/package.json b/packages/remark-lint-fenced-code-flag/package.json index 932cd7b4..e6ab3a3b 100644 --- a/packages/remark-lint-fenced-code-flag/package.json +++ b/packages/remark-lint-fenced-code-flag/package.json @@ -23,6 +23,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-fenced-code-flag/readme.md b/packages/remark-lint-fenced-code-flag/readme.md index 75ed92d7..c1f90b19 100644 --- a/packages/remark-lint-fenced-code-flag/readme.md +++ b/packages/remark-lint-fenced-code-flag/readme.md @@ -27,7 +27,7 @@ This rule is included in the following presets: | Preset | Setting | | - | - | -| [`remark-preset-lint-markdown-style-guide`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-preset-lint-markdown-style-guide) | `{allowEmpty: false}` | +| [`remark-preset-lint-markdown-style-guide`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-preset-lint-markdown-style-guide) | `{ allowEmpty: false }` | ## Example diff --git a/packages/remark-lint-fenced-code-marker/index.js b/packages/remark-lint-fenced-code-marker/index.js index 6af5c95a..59432415 100644 --- a/packages/remark-lint-fenced-code-marker/index.js +++ b/packages/remark-lint-fenced-code-marker/index.js @@ -81,14 +81,17 @@ * 1:1: Incorrect fenced code marker `💩`: use either `'consistent'`, `` '`' ``, or `'~'` */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintFencedCodeMarker = lintRule( + 'remark-lint:fenced-code-marker', + fencedCodeMarker +) -module.exports = rule('remark-lint:fenced-code-marker', fencedCodeMarker) +export default remarkLintFencedCodeMarker var markers = { '`': true, diff --git a/packages/remark-lint-fenced-code-marker/package.json b/packages/remark-lint-fenced-code-marker/package.json index 9ff7171e..bf7adf11 100644 --- a/packages/remark-lint-fenced-code-marker/package.json +++ b/packages/remark-lint-fenced-code-marker/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-file-extension/index.js b/packages/remark-lint-file-extension/index.js index 5af8a5bd..e10341e2 100644 --- a/packages/remark-lint-file-extension/index.js +++ b/packages/remark-lint-file-extension/index.js @@ -22,11 +22,14 @@ * @example {"name": "readme.mkd", "setting": "mkd"} */ -'use strict' +import {lintRule} from 'unified-lint-rule' -var rule = require('unified-lint-rule') +const remarkLintFileExtension = lintRule( + 'remark-lint:file-extension', + fileExtension +) -module.exports = rule('remark-lint:file-extension', fileExtension) +export default remarkLintFileExtension function fileExtension(tree, file, option) { var ext = file.extname diff --git a/packages/remark-lint-file-extension/package.json b/packages/remark-lint-file-extension/package.json index 6e447809..12886e94 100644 --- a/packages/remark-lint-file-extension/package.json +++ b/packages/remark-lint-file-extension/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-final-definition/index.js b/packages/remark-lint-final-definition/index.js index 76428068..bcf95403 100644 --- a/packages/remark-lint-final-definition/index.js +++ b/packages/remark-lint-final-definition/index.js @@ -36,14 +36,17 @@ * [example-2]: http://example.com/two/ */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintFinalDefinition = lintRule( + 'remark-lint:final-definition', + finalDefinition +) -module.exports = rule('remark-lint:final-definition', finalDefinition) +export default remarkLintFinalDefinition var start = position.start diff --git a/packages/remark-lint-final-definition/package.json b/packages/remark-lint-final-definition/package.json index 8bb162a2..9f2ef386 100644 --- a/packages/remark-lint-final-definition/package.json +++ b/packages/remark-lint-final-definition/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-final-newline/index.js b/packages/remark-lint-final-newline/index.js index 9b52999f..9b0a0fc0 100644 --- a/packages/remark-lint-final-newline/index.js +++ b/packages/remark-lint-final-newline/index.js @@ -50,11 +50,14 @@ * ``` */ -'use strict' +import {lintRule} from 'unified-lint-rule' -var rule = require('unified-lint-rule') +const remarkLintFinalNewline = lintRule( + 'remark-lint:final-newline', + finalNewline +) -module.exports = rule('remark-lint:final-newline', finalNewline) +export default remarkLintFinalNewline function finalNewline(tree, file) { var contents = String(file) diff --git a/packages/remark-lint-final-newline/package.json b/packages/remark-lint-final-newline/package.json index c841e31a..cbcc6fb1 100644 --- a/packages/remark-lint-final-newline/package.json +++ b/packages/remark-lint-final-newline/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-first-heading-level/index.js b/packages/remark-lint-first-heading-level/index.js index 053e485e..7a5984f6 100644 --- a/packages/remark-lint-first-heading-level/index.js +++ b/packages/remark-lint-first-heading-level/index.js @@ -77,13 +77,16 @@ * 1:1-1:14: First heading level should be `2` */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var generated = require('unist-util-generated') +const remarkLintFirstHeadingLevel = lintRule( + 'remark-lint:first-heading-level', + firstHeadingLevel +) -module.exports = rule('remark-lint:first-heading-level', firstHeadingLevel) +export default remarkLintFirstHeadingLevel var re = / (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-hard-break-spaces/index.js b/packages/remark-lint-hard-break-spaces/index.js index 95f08d1d..9b5404ab 100644 --- a/packages/remark-lint-hard-break-spaces/index.js +++ b/packages/remark-lint-hard-break-spaces/index.js @@ -21,14 +21,17 @@ * 1:12-2:1: Use two spaces for hard line breaks */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintHardBreakSpaces = lintRule( + 'remark-lint:hard-break-spaces', + hardBreakSpaces +) -module.exports = rule('remark-lint:hard-break-spaces', hardBreakSpaces) +export default remarkLintHardBreakSpaces var reason = 'Use two spaces for hard line breaks' diff --git a/packages/remark-lint-hard-break-spaces/package.json b/packages/remark-lint-hard-break-spaces/package.json index dfd66626..5f324dc3 100644 --- a/packages/remark-lint-hard-break-spaces/package.json +++ b/packages/remark-lint-hard-break-spaces/package.json @@ -23,6 +23,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-heading-increment/index.js b/packages/remark-lint-heading-increment/index.js index 3872bc68..82a0993b 100644 --- a/packages/remark-lint-heading-increment/index.js +++ b/packages/remark-lint-heading-increment/index.js @@ -23,13 +23,16 @@ * 3:1-3:10: Heading levels should increment by one level at a time */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var generated = require('unist-util-generated') +const remarkLintHeadingIncrement = lintRule( + 'remark-lint:heading-increment', + headingIncrement +) -module.exports = rule('remark-lint:heading-increment', headingIncrement) +export default remarkLintHeadingIncrement var reason = 'Heading levels should increment by one level at a time' diff --git a/packages/remark-lint-heading-increment/package.json b/packages/remark-lint-heading-increment/package.json index e7179961..e9bbbf70 100644 --- a/packages/remark-lint-heading-increment/package.json +++ b/packages/remark-lint-heading-increment/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-heading-style/index.js b/packages/remark-lint-heading-style/index.js index f306401b..5990e70a 100644 --- a/packages/remark-lint-heading-style/index.js +++ b/packages/remark-lint-heading-style/index.js @@ -66,31 +66,32 @@ * 6:1-6:13: Headings should use setext */ -'use strict' - -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var style = require('mdast-util-heading-style') -var generated = require('unist-util-generated') - -module.exports = rule('remark-lint:heading-style', headingStyle) +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import headingStyle from 'mdast-util-heading-style' +import generated from 'unist-util-generated' var types = ['atx', 'atx-closed', 'setext'] -function headingStyle(tree, file, option) { - var preferred = types.indexOf(option) === -1 ? null : option +const remarkLintHeadingStyle = lintRule( + 'remark-lint:heading-style', + function (tree, file, option) { + var preferred = types.indexOf(option) === -1 ? null : option - visit(tree, 'heading', visitor) + visit(tree, 'heading', visitor) - function visitor(node) { - if (!generated(node)) { - if (preferred) { - if (style(node, preferred) !== preferred) { - file.message('Headings should use ' + preferred, node) + function visitor(node) { + if (!generated(node)) { + if (preferred) { + if (headingStyle(node, preferred) !== preferred) { + file.message('Headings should use ' + preferred, node) + } + } else { + preferred = headingStyle(node, preferred) } - } else { - preferred = style(node, preferred) } } } -} +) + +export default remarkLintHeadingStyle diff --git a/packages/remark-lint-heading-style/package.json b/packages/remark-lint-heading-style/package.json index 09f1d73a..5a237c6c 100644 --- a/packages/remark-lint-heading-style/package.json +++ b/packages/remark-lint-heading-style/package.json @@ -23,6 +23,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-linebreak-style/index.js b/packages/remark-lint-linebreak-style/index.js index 469002c9..b3d335a8 100644 --- a/packages/remark-lint-linebreak-style/index.js +++ b/packages/remark-lint-linebreak-style/index.js @@ -45,12 +45,15 @@ * 1:6: Expected linebreaks to be windows (`\r\n`), not unix (`\n`) */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import location from 'vfile-location' -var rule = require('unified-lint-rule') -var location = require('vfile-location') +const remarkLintLinebreakStyle = lintRule( + 'remark-lint:linebreak-style', + linebreakStyle +) -module.exports = rule('remark-lint:linebreak-style', linebreakStyle) +export default remarkLintLinebreakStyle var escaped = {unix: '\\n', windows: '\\r\\n'} var types = {true: 'windows', false: 'unix'} diff --git a/packages/remark-lint-linebreak-style/package.json b/packages/remark-lint-linebreak-style/package.json index b969d908..0861e8ec 100644 --- a/packages/remark-lint-linebreak-style/package.json +++ b/packages/remark-lint-linebreak-style/package.json @@ -26,6 +26,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-link-title-style/index.js b/packages/remark-lint-link-title-style/index.js index 669ac696..47d44d23 100644 --- a/packages/remark-lint-link-title-style/index.js +++ b/packages/remark-lint-link-title-style/index.js @@ -86,15 +86,18 @@ * 1:1: Incorrect link title style marker `💩`: use either `'consistent'`, `'"'`, `'\''`, or `'()'` */ -'use strict' - -var rule = require('unified-lint-rule') -var vfileLocation = require('vfile-location') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') - -module.exports = rule('remark-lint:link-title-style', linkTitleStyle) +import {lintRule} from 'unified-lint-rule' +import vfileLocation from 'vfile-location' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' + +const remarkLintLinkTitleStyle = lintRule( + 'remark-lint:link-title-style', + linkTitleStyle +) + +export default remarkLintLinkTitleStyle var own = {}.hasOwnProperty diff --git a/packages/remark-lint-link-title-style/package.json b/packages/remark-lint-link-title-style/package.json index 32ea24ea..1ddccdeb 100644 --- a/packages/remark-lint-link-title-style/package.json +++ b/packages/remark-lint-link-title-style/package.json @@ -23,6 +23,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-list-item-bullet-indent/index.js b/packages/remark-lint-list-item-bullet-indent/index.js index a74b404b..10cb4a14 100644 --- a/packages/remark-lint-list-item-bullet-indent/index.js +++ b/packages/remark-lint-list-item-bullet-indent/index.js @@ -34,18 +34,18 @@ * 4:2: Incorrect indentation before bullet: remove 1 space */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import plural from 'pluralize' +import visit from 'unist-util-visit' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var plural = require('pluralize') -var visit = require('unist-util-visit') -var generated = require('unist-util-generated') - -module.exports = rule( +const remarkLintListItemBulletIndent = lintRule( 'remark-lint:list-item-bullet-indent', listItemBulletIndent ) +export default remarkLintListItemBulletIndent + function listItemBulletIndent(tree, file) { visit(tree, 'list', visitor) diff --git a/packages/remark-lint-list-item-bullet-indent/package.json b/packages/remark-lint-list-item-bullet-indent/package.json index bdeac728..ece81e72 100644 --- a/packages/remark-lint-list-item-bullet-indent/package.json +++ b/packages/remark-lint-list-item-bullet-indent/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-list-item-content-indent/index.js b/packages/remark-lint-list-item-content-indent/index.js index 978f901a..dff0861e 100644 --- a/packages/remark-lint-list-item-content-indent/index.js +++ b/packages/remark-lint-list-item-content-indent/index.js @@ -21,19 +21,19 @@ * 2:5: Don’t use mixed indentation for children, remove 1 space */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import plural from 'pluralize' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var plural = require('pluralize') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') - -module.exports = rule( +const remarkLintListItemContentIndent = lintRule( 'remark-lint:list-item-content-indent', listItemContentIndent ) +export default remarkLintListItemContentIndent + var start = position.start function listItemContentIndent(tree, file) { diff --git a/packages/remark-lint-list-item-content-indent/package.json b/packages/remark-lint-list-item-content-indent/package.json index 9449d5f9..12506061 100644 --- a/packages/remark-lint-list-item-content-indent/package.json +++ b/packages/remark-lint-list-item-content-indent/package.json @@ -23,6 +23,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-list-item-indent/index.js b/packages/remark-lint-list-item-indent/index.js index 3b532f02..028a0531 100644 --- a/packages/remark-lint-list-item-indent/index.js +++ b/packages/remark-lint-list-item-indent/index.js @@ -103,15 +103,18 @@ * 1:1: Incorrect list-item indent style `💩`: use either `'tab-size'`, `'space'`, or `'mixed'` */ -'use strict' - -var rule = require('unified-lint-rule') -var plural = require('pluralize') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') - -module.exports = rule('remark-lint:list-item-indent', listItemIndent) +import {lintRule} from 'unified-lint-rule' +import plural from 'pluralize' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' + +const remarkLintListItemIndent = lintRule( + 'remark-lint:list-item-indent', + listItemIndent +) + +export default remarkLintListItemIndent var start = position.start diff --git a/packages/remark-lint-list-item-indent/package.json b/packages/remark-lint-list-item-indent/package.json index 626f77b9..f79c10bd 100644 --- a/packages/remark-lint-list-item-indent/package.json +++ b/packages/remark-lint-list-item-indent/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-list-item-spacing/index.js b/packages/remark-lint-list-item-spacing/index.js index 249ac64d..0843cb4f 100644 --- a/packages/remark-lint-list-item-spacing/index.js +++ b/packages/remark-lint-list-item-spacing/index.js @@ -107,14 +107,17 @@ * 14:15-16:1: Extraneous new line after list item */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintListItemSpacing = lintRule( + 'remark-lint:list-item-spacing', + listItemSpacing +) -module.exports = rule('remark-lint:list-item-spacing', listItemSpacing) +export default remarkLintListItemSpacing var start = position.start var end = position.end diff --git a/packages/remark-lint-list-item-spacing/package.json b/packages/remark-lint-list-item-spacing/package.json index 8f9c381a..093cb9ee 100644 --- a/packages/remark-lint-list-item-spacing/package.json +++ b/packages/remark-lint-list-item-spacing/package.json @@ -23,6 +23,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-maximum-heading-length/index.js b/packages/remark-lint-maximum-heading-length/index.js index a63ac3cc..a6e2bd30 100644 --- a/packages/remark-lint-maximum-heading-length/index.js +++ b/packages/remark-lint-maximum-heading-length/index.js @@ -25,18 +25,18 @@ * 1:1-1:52: Use headings shorter than `40` */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import generated from 'unist-util-generated' +import toString from 'mdast-util-to-string' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var generated = require('unist-util-generated') -var toString = require('mdast-util-to-string') - -module.exports = rule( +const remarkLintMaximumHeadingLength = lintRule( 'remark-lint:maximum-heading-length', maximumHeadingLength ) +export default remarkLintMaximumHeadingLength + function maximumHeadingLength(tree, file, option) { var preferred = typeof option === 'number' && !isNaN(option) ? option : 60 diff --git a/packages/remark-lint-maximum-heading-length/package.json b/packages/remark-lint-maximum-heading-length/package.json index aaea96b8..aaa48aac 100644 --- a/packages/remark-lint-maximum-heading-length/package.json +++ b/packages/remark-lint-maximum-heading-length/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-maximum-line-length/index.js b/packages/remark-lint-maximum-line-length/index.js index 30dbb65c..97ca1187 100644 --- a/packages/remark-lint-maximum-line-length/index.js +++ b/packages/remark-lint-maximum-line-length/index.js @@ -90,14 +90,17 @@ * 4:12: Line must be at most 10 characters */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintMaximumLineLength = lintRule( + 'remark-lint:maximum-line-length', + maximumLineLength +) -module.exports = rule('remark-lint:maximum-line-length', maximumLineLength) +export default remarkLintMaximumLineLength var start = position.start var end = position.end diff --git a/packages/remark-lint-maximum-line-length/package.json b/packages/remark-lint-maximum-line-length/package.json index d541a70c..a868fcfa 100644 --- a/packages/remark-lint-maximum-line-length/package.json +++ b/packages/remark-lint-maximum-line-length/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-auto-link-without-protocol/index.js b/packages/remark-lint-no-auto-link-without-protocol/index.js index 2126216b..c693afdf 100644 --- a/packages/remark-lint-no-auto-link-without-protocol/index.js +++ b/packages/remark-lint-no-auto-link-without-protocol/index.js @@ -33,19 +33,19 @@ * 1:1-1:14: All automatic links must start with a protocol */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' +import toString from 'mdast-util-to-string' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') -var toString = require('mdast-util-to-string') - -module.exports = rule( +const remarkLintNoAutoLinkWithoutProtocol = lintRule( 'remark-lint:no-auto-link-without-protocol', noAutoLinkWithoutProtocol ) +export default remarkLintNoAutoLinkWithoutProtocol + var start = position.start var end = position.end diff --git a/packages/remark-lint-no-auto-link-without-protocol/package.json b/packages/remark-lint-no-auto-link-without-protocol/package.json index 1aa400ff..77e40fd6 100644 --- a/packages/remark-lint-no-auto-link-without-protocol/package.json +++ b/packages/remark-lint-no-auto-link-without-protocol/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-blockquote-without-marker/index.js b/packages/remark-lint-no-blockquote-without-marker/index.js index 77ded14c..7a5175da 100644 --- a/packages/remark-lint-no-blockquote-without-marker/index.js +++ b/packages/remark-lint-no-blockquote-without-marker/index.js @@ -49,19 +49,19 @@ * 3:1: Missing marker in block quote */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import vfileLocation from 'vfile-location' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var vfileLocation = require('vfile-location') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') - -module.exports = rule( +const remarkLintNoBlockquoteWithoutMarker = lintRule( 'remark-lint:no-blockquote-without-marker', noBlockquoteWithoutMarker ) +export default remarkLintNoBlockquoteWithoutMarker + var reason = 'Missing marker in block quote' function noBlockquoteWithoutMarker(tree, file) { diff --git a/packages/remark-lint-no-blockquote-without-marker/package.json b/packages/remark-lint-no-blockquote-without-marker/package.json index ac5466d5..ff12d4c9 100644 --- a/packages/remark-lint-no-blockquote-without-marker/package.json +++ b/packages/remark-lint-no-blockquote-without-marker/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-consecutive-blank-lines/index.js b/packages/remark-lint-no-consecutive-blank-lines/index.js index d3f42a51..329089d8 100644 --- a/packages/remark-lint-no-consecutive-blank-lines/index.js +++ b/packages/remark-lint-no-consecutive-blank-lines/index.js @@ -40,19 +40,19 @@ * 4:5: Remove 2 lines after node */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import plural from 'pluralize' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var plural = require('pluralize') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') - -module.exports = rule( +const remarkLintNoConsecutiveBlankLines = lintRule( 'remark-lint:no-consecutive-blank-lines', noConsecutiveBlankLines ) +export default remarkLintNoConsecutiveBlankLines + function noConsecutiveBlankLines(tree, file) { visit(tree, visitor) diff --git a/packages/remark-lint-no-consecutive-blank-lines/package.json b/packages/remark-lint-no-consecutive-blank-lines/package.json index fd9753ab..dc738122 100644 --- a/packages/remark-lint-no-consecutive-blank-lines/package.json +++ b/packages/remark-lint-no-consecutive-blank-lines/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-duplicate-defined-urls/index.js b/packages/remark-lint-no-duplicate-defined-urls/index.js index 0b0b4b24..40aa638d 100644 --- a/packages/remark-lint-no-duplicate-defined-urls/index.js +++ b/packages/remark-lint-no-duplicate-defined-urls/index.js @@ -21,19 +21,19 @@ * 2:1-2:19: Do not use different definitions with the same URL (1:1) */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import position from 'unist-util-position' +import generated from 'unist-util-generated' +import stringify from 'unist-util-stringify-position' +import visit from 'unist-util-visit' -var rule = require('unified-lint-rule') -var position = require('unist-util-position') -var generated = require('unist-util-generated') -var stringify = require('unist-util-stringify-position') -var visit = require('unist-util-visit') - -module.exports = rule( +const remarkLintNoDuplicateDefinedUrls = lintRule( 'remark-lint:no-duplicate-defined-urls', noDuplicateDefinedUrls ) +export default remarkLintNoDuplicateDefinedUrls + var reason = 'Do not use different definitions with the same URL' function noDuplicateDefinedUrls(tree, file) { diff --git a/packages/remark-lint-no-duplicate-defined-urls/package.json b/packages/remark-lint-no-duplicate-defined-urls/package.json index e19caa88..3a51bbe6 100644 --- a/packages/remark-lint-no-duplicate-defined-urls/package.json +++ b/packages/remark-lint-no-duplicate-defined-urls/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-duplicate-definitions/index.js b/packages/remark-lint-no-duplicate-definitions/index.js index c788e83b..709b9c73 100644 --- a/packages/remark-lint-no-duplicate-definitions/index.js +++ b/packages/remark-lint-no-duplicate-definitions/index.js @@ -21,19 +21,19 @@ * 2:1-2:11: Do not use definitions with the same identifier (1:1) */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import position from 'unist-util-position' +import generated from 'unist-util-generated' +import stringify from 'unist-util-stringify-position' +import visit from 'unist-util-visit' -var rule = require('unified-lint-rule') -var position = require('unist-util-position') -var generated = require('unist-util-generated') -var stringify = require('unist-util-stringify-position') -var visit = require('unist-util-visit') - -module.exports = rule( +const remarkLintNoDuplicateDefinitions = lintRule( 'remark-lint:no-duplicate-definitions', noDuplicateDefinitions ) +export default remarkLintNoDuplicateDefinitions + var reason = 'Do not use definitions with the same identifier' function noDuplicateDefinitions(tree, file) { diff --git a/packages/remark-lint-no-duplicate-definitions/package.json b/packages/remark-lint-no-duplicate-definitions/package.json index 1f8e0b9f..c3b41158 100644 --- a/packages/remark-lint-no-duplicate-definitions/package.json +++ b/packages/remark-lint-no-duplicate-definitions/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-duplicate-headings-in-section/index.js b/packages/remark-lint-no-duplicate-headings-in-section/index.js index 2418db68..97018c6b 100644 --- a/packages/remark-lint-no-duplicate-headings-in-section/index.js +++ b/packages/remark-lint-no-duplicate-headings-in-section/index.js @@ -54,20 +54,20 @@ * 7:1-7:11: Do not use headings with similar content per section (3:1) */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import position from 'unist-util-position' +import generated from 'unist-util-generated' +import visit from 'unist-util-visit' +import stringify from 'unist-util-stringify-position' +import toString from 'mdast-util-to-string' -var rule = require('unified-lint-rule') -var position = require('unist-util-position') -var generated = require('unist-util-generated') -var visit = require('unist-util-visit') -var stringify = require('unist-util-stringify-position') -var toString = require('mdast-util-to-string') - -module.exports = rule( +const remarkLintNoDuplicateHeadingsInSection = lintRule( 'remark-lint:no-duplicate-headings-in-section', noDuplicateHeadingsInSection ) +export default remarkLintNoDuplicateHeadingsInSection + var reason = 'Do not use headings with similar content per section' function noDuplicateHeadingsInSection(tree, file) { diff --git a/packages/remark-lint-no-duplicate-headings-in-section/package.json b/packages/remark-lint-no-duplicate-headings-in-section/package.json index 71774f22..ffb18e4c 100644 --- a/packages/remark-lint-no-duplicate-headings-in-section/package.json +++ b/packages/remark-lint-no-duplicate-headings-in-section/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-duplicate-headings/index.js b/packages/remark-lint-no-duplicate-headings/index.js index f1a41f62..5081b1a2 100644 --- a/packages/remark-lint-no-duplicate-headings/index.js +++ b/packages/remark-lint-no-duplicate-headings/index.js @@ -26,16 +26,19 @@ * 5:1-5:29: Do not use headings with similar content (3:1) */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import position from 'unist-util-position' +import generated from 'unist-util-generated' +import visit from 'unist-util-visit' +import stringify from 'unist-util-stringify-position' +import toString from 'mdast-util-to-string' -var rule = require('unified-lint-rule') -var position = require('unist-util-position') -var generated = require('unist-util-generated') -var visit = require('unist-util-visit') -var stringify = require('unist-util-stringify-position') -var toString = require('mdast-util-to-string') +const remarkLintNoDuplicateHeadings = lintRule( + 'remark-lint:no-duplicate-headings', + noDuplicateHeadings +) -module.exports = rule('remark-lint:no-duplicate-headings', noDuplicateHeadings) +export default remarkLintNoDuplicateHeadings var reason = 'Do not use headings with similar content' diff --git a/packages/remark-lint-no-duplicate-headings/package.json b/packages/remark-lint-no-duplicate-headings/package.json index ff409453..9c904e28 100644 --- a/packages/remark-lint-no-duplicate-headings/package.json +++ b/packages/remark-lint-no-duplicate-headings/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-emphasis-as-heading/index.js b/packages/remark-lint-no-emphasis-as-heading/index.js index 97638c93..01665955 100644 --- a/packages/remark-lint-no-emphasis-as-heading/index.js +++ b/packages/remark-lint-no-emphasis-as-heading/index.js @@ -29,13 +29,16 @@ * 5:1-5:8: Don’t use emphasis to introduce a section, use a heading */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var generated = require('unist-util-generated') +const remarkLintNoEmphasisAsHeading = lintRule( + 'remark-lint:no-emphasis-as-heading', + noEmphasisAsHeading +) -module.exports = rule('remark-lint:no-emphasis-as-heading', noEmphasisAsHeading) +export default remarkLintNoEmphasisAsHeading var reason = 'Don’t use emphasis to introduce a section, use a heading' diff --git a/packages/remark-lint-no-emphasis-as-heading/package.json b/packages/remark-lint-no-emphasis-as-heading/package.json index ecb75fca..53c0c2f9 100644 --- a/packages/remark-lint-no-emphasis-as-heading/package.json +++ b/packages/remark-lint-no-emphasis-as-heading/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-empty-url/index.js b/packages/remark-lint-no-empty-url/index.js index bb5557c8..5fd06b9c 100644 --- a/packages/remark-lint-no-empty-url/index.js +++ b/packages/remark-lint-no-empty-url/index.js @@ -24,13 +24,13 @@ * 3:1-3:11: Don’t use images without URL */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var generated = require('unist-util-generated') +const remarkLintNoEmptyUrl = lintRule('remark-lint:no-empty-url', noEmptyURL) -module.exports = rule('remark-lint:no-empty-url', noEmptyURL) +export default remarkLintNoEmptyUrl function noEmptyURL(tree, file) { visit(tree, ['link', 'image'], visitor) diff --git a/packages/remark-lint-no-empty-url/package.json b/packages/remark-lint-no-empty-url/package.json index 0c79005b..ea3b1341 100644 --- a/packages/remark-lint-no-empty-url/package.json +++ b/packages/remark-lint-no-empty-url/package.json @@ -23,6 +23,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-file-name-articles/index.js b/packages/remark-lint-no-file-name-articles/index.js index 88ba4008..5fef18d1 100644 --- a/packages/remark-lint-no-file-name-articles/index.js +++ b/packages/remark-lint-no-file-name-articles/index.js @@ -25,11 +25,14 @@ * 1:1: Do not start file names with `an` */ -'use strict' +import {lintRule} from 'unified-lint-rule' -var rule = require('unified-lint-rule') +const remarkLintNoFileNameArticles = lintRule( + 'remark-lint:no-file-name-articles', + noFileNameArticles +) -module.exports = rule('remark-lint:no-file-name-articles', noFileNameArticles) +export default remarkLintNoFileNameArticles function noFileNameArticles(tree, file) { var match = file.stem && file.stem.match(/^(the|teh|an?)\b/i) diff --git a/packages/remark-lint-no-file-name-articles/package.json b/packages/remark-lint-no-file-name-articles/package.json index f7fd9a04..5a0e0663 100644 --- a/packages/remark-lint-no-file-name-articles/package.json +++ b/packages/remark-lint-no-file-name-articles/package.json @@ -23,6 +23,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-file-name-consecutive-dashes/index.js b/packages/remark-lint-no-file-name-consecutive-dashes/index.js index d96461c4..e9d14fe6 100644 --- a/packages/remark-lint-no-file-name-consecutive-dashes/index.js +++ b/packages/remark-lint-no-file-name-consecutive-dashes/index.js @@ -13,15 +13,15 @@ * 1:1: Do not use consecutive dashes in a file name */ -'use strict' +import {lintRule} from 'unified-lint-rule' -var rule = require('unified-lint-rule') - -module.exports = rule( +const remarkLintNoFileNameConsecutiveDashes = lintRule( 'remark-lint:no-file-name-consecutive-dashes', noFileNameConsecutiveDashes ) +export default remarkLintNoFileNameConsecutiveDashes + var reason = 'Do not use consecutive dashes in a file name' function noFileNameConsecutiveDashes(tree, file) { diff --git a/packages/remark-lint-no-file-name-consecutive-dashes/package.json b/packages/remark-lint-no-file-name-consecutive-dashes/package.json index 6fa77b5d..96454314 100644 --- a/packages/remark-lint-no-file-name-consecutive-dashes/package.json +++ b/packages/remark-lint-no-file-name-consecutive-dashes/package.json @@ -24,6 +24,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-file-name-irregular-characters/index.js b/packages/remark-lint-no-file-name-irregular-characters/index.js index 7a300f73..d5327746 100644 --- a/packages/remark-lint-no-file-name-irregular-characters/index.js +++ b/packages/remark-lint-no-file-name-irregular-characters/index.js @@ -32,15 +32,15 @@ * 1:1: Do not use ` ` in a file name */ -'use strict' +import {lintRule} from 'unified-lint-rule' -var rule = require('unified-lint-rule') - -module.exports = rule( +const remarkLintNoFileNameIrregularCharacters = lintRule( 'remark-lint:no-file-name-irregular-characters', noFileNameIrregularCharacters ) +export default remarkLintNoFileNameIrregularCharacters + var expression = /[^\\.a-zA-Z\d-]/ function noFileNameIrregularCharacters(tree, file, option) { diff --git a/packages/remark-lint-no-file-name-irregular-characters/package.json b/packages/remark-lint-no-file-name-irregular-characters/package.json index f8f010da..193b800a 100644 --- a/packages/remark-lint-no-file-name-irregular-characters/package.json +++ b/packages/remark-lint-no-file-name-irregular-characters/package.json @@ -23,6 +23,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-file-name-mixed-case/index.js b/packages/remark-lint-no-file-name-mixed-case/index.js index 3f17347d..2658d9d7 100644 --- a/packages/remark-lint-no-file-name-mixed-case/index.js +++ b/packages/remark-lint-no-file-name-mixed-case/index.js @@ -15,15 +15,15 @@ * 1:1: Do not mix casing in file names */ -'use strict' +import {lintRule} from 'unified-lint-rule' -var rule = require('unified-lint-rule') - -module.exports = rule( +const remarkLintNofileNameMixedCase = lintRule( 'remark-lint:no-file-name-mixed-case', noFileNameMixedCase ) +export default remarkLintNofileNameMixedCase + var reason = 'Do not mix casing in file names' function noFileNameMixedCase(tree, file) { diff --git a/packages/remark-lint-no-file-name-mixed-case/package.json b/packages/remark-lint-no-file-name-mixed-case/package.json index ce4240ba..da96a49e 100644 --- a/packages/remark-lint-no-file-name-mixed-case/package.json +++ b/packages/remark-lint-no-file-name-mixed-case/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-file-name-outer-dashes/index.js b/packages/remark-lint-no-file-name-outer-dashes/index.js index 22e5fb80..4d0552dd 100644 --- a/packages/remark-lint-no-file-name-outer-dashes/index.js +++ b/packages/remark-lint-no-file-name-outer-dashes/index.js @@ -17,15 +17,15 @@ * 1:1: Do not use initial or final dashes in a file name */ -'use strict' +import {lintRule} from 'unified-lint-rule' -var rule = require('unified-lint-rule') - -module.exports = rule( +const remarkLintNofileNameOuterDashes = lintRule( 'remark-lint:no-file-name-outer-dashes', noFileNameOuterDashes ) +export default remarkLintNofileNameOuterDashes + var reason = 'Do not use initial or final dashes in a file name' function noFileNameOuterDashes(tree, file) { diff --git a/packages/remark-lint-no-file-name-outer-dashes/package.json b/packages/remark-lint-no-file-name-outer-dashes/package.json index bbfec33e..19f4282c 100644 --- a/packages/remark-lint-no-file-name-outer-dashes/package.json +++ b/packages/remark-lint-no-file-name-outer-dashes/package.json @@ -23,6 +23,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-heading-content-indent/index.js b/packages/remark-lint-no-heading-content-indent/index.js index 37770d48..25777dc5 100644 --- a/packages/remark-lint-no-heading-content-indent/index.js +++ b/packages/remark-lint-no-heading-content-indent/index.js @@ -46,20 +46,20 @@ * #·· */ -'use strict' - -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var style = require('mdast-util-heading-style') -var plural = require('pluralize') -var position = require('unist-util-position') -var generated = require('unist-util-generated') - -module.exports = rule( +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import headingStyle from 'mdast-util-heading-style' +import plural from 'pluralize' +import position from 'unist-util-position' +import generated from 'unist-util-generated' + +const remarkLintNoHeadingContentIndent = lintRule( 'remark-lint:no-heading-content-indent', noHeadingContentIndent ) +export default remarkLintNoHeadingContentIndent + var start = position.start var end = position.end @@ -82,7 +82,7 @@ function noHeadingContentIndent(tree, file) { depth = node.depth children = node.children - type = style(node, 'atx') + type = headingStyle(node, 'atx') if (type === 'atx' || type === 'atx-closed') { head = start(children[0]).column diff --git a/packages/remark-lint-no-heading-content-indent/package.json b/packages/remark-lint-no-heading-content-indent/package.json index 5e35f8bb..adf470d2 100644 --- a/packages/remark-lint-no-heading-content-indent/package.json +++ b/packages/remark-lint-no-heading-content-indent/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-heading-indent/index.js b/packages/remark-lint-no-heading-indent/index.js index 4586ba0b..738ee0fc 100644 --- a/packages/remark-lint-no-heading-indent/index.js +++ b/packages/remark-lint-no-heading-indent/index.js @@ -46,15 +46,18 @@ * 8:4: Remove 3 spaces before this heading */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import plural from 'pluralize' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var plural = require('pluralize') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintNoHeadingIndent = lintRule( + 'remark-lint:no-heading-indent', + noHeadingIndent +) -module.exports = rule('remark-lint:no-heading-indent', noHeadingIndent) +export default remarkLintNoHeadingIndent var start = position.start diff --git a/packages/remark-lint-no-heading-indent/package.json b/packages/remark-lint-no-heading-indent/package.json index d42974cf..daee2ea1 100644 --- a/packages/remark-lint-no-heading-indent/package.json +++ b/packages/remark-lint-no-heading-indent/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-heading-like-paragraph/index.js b/packages/remark-lint-no-heading-like-paragraph/index.js index c0b34dcf..720964e4 100644 --- a/packages/remark-lint-no-heading-like-paragraph/index.js +++ b/packages/remark-lint-no-heading-like-paragraph/index.js @@ -23,17 +23,17 @@ * 1:1-1:16: This looks like a heading but has too many hashes */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var generated = require('unist-util-generated') - -module.exports = rule( +const remarkLintNoHeadingLikeParagraph = lintRule( 'remark-lint:no-heading-like-paragraph', noHeadingLikeParagraph ) +export default remarkLintNoHeadingLikeParagraph + var fence = '#######' var reason = 'This looks like a heading but has too many hashes' diff --git a/packages/remark-lint-no-heading-like-paragraph/package.json b/packages/remark-lint-no-heading-like-paragraph/package.json index 51db23a9..271ad8a1 100644 --- a/packages/remark-lint-no-heading-like-paragraph/package.json +++ b/packages/remark-lint-no-heading-like-paragraph/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-heading-punctuation/index.js b/packages/remark-lint-no-heading-punctuation/index.js index 7ee03fe8..632a7ca6 100644 --- a/packages/remark-lint-no-heading-punctuation/index.js +++ b/packages/remark-lint-no-heading-punctuation/index.js @@ -40,18 +40,18 @@ * 9:1-9:9: Don’t add a trailing `;` to headings */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import generated from 'unist-util-generated' +import toString from 'mdast-util-to-string' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var generated = require('unist-util-generated') -var toString = require('mdast-util-to-string') - -module.exports = rule( +const remarkLintNoHeadingPunctuation = lintRule( 'remark-lint:no-heading-punctuation', noHeadingPunctuation ) +export default remarkLintNoHeadingPunctuation + var defaults = '\\.,;:!?' function noHeadingPunctuation(tree, file, option) { diff --git a/packages/remark-lint-no-heading-punctuation/package.json b/packages/remark-lint-no-heading-punctuation/package.json index 968bb1e7..93faf51b 100644 --- a/packages/remark-lint-no-heading-punctuation/package.json +++ b/packages/remark-lint-no-heading-punctuation/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-html/index.js b/packages/remark-lint-no-html/index.js index dbe4d8b7..48c89648 100644 --- a/packages/remark-lint-no-html/index.js +++ b/packages/remark-lint-no-html/index.js @@ -24,13 +24,13 @@ * 1:1-1:15: Do not use HTML in markdown */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var generated = require('unist-util-generated') +const remarkLintNoHtml = lintRule('remark-lint:no-html', noHTML) -module.exports = rule('remark-lint:no-html', noHTML) +export default remarkLintNoHtml var reason = 'Do not use HTML in markdown' diff --git a/packages/remark-lint-no-html/package.json b/packages/remark-lint-no-html/package.json index e29b9882..ca316d0f 100644 --- a/packages/remark-lint-no-html/package.json +++ b/packages/remark-lint-no-html/package.json @@ -20,6 +20,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-inline-padding/index.js b/packages/remark-lint-no-inline-padding/index.js index 18e34758..8e1504e5 100644 --- a/packages/remark-lint-no-inline-padding/index.js +++ b/packages/remark-lint-no-inline-padding/index.js @@ -22,14 +22,17 @@ * 1:7-1:38: Don’t pad `link` with inner spaces */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import generated from 'unist-util-generated' +import toString from 'mdast-util-to-string' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var generated = require('unist-util-generated') -var toString = require('mdast-util-to-string') +const remarkLintNoInlinePadding = lintRule( + 'remark-lint:no-inline-padding', + noInlinePadding +) -module.exports = rule('remark-lint:no-inline-padding', noInlinePadding) +export default remarkLintNoInlinePadding function noInlinePadding(tree, file) { // Note: `emphasis`, `strong`, `delete` (GFM) can’t have padding anymore diff --git a/packages/remark-lint-no-inline-padding/package.json b/packages/remark-lint-no-inline-padding/package.json index 9fbc672f..cf021913 100644 --- a/packages/remark-lint-no-inline-padding/package.json +++ b/packages/remark-lint-no-inline-padding/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-literal-urls/index.js b/packages/remark-lint-no-literal-urls/index.js index bd8b9c8c..884d3a42 100644 --- a/packages/remark-lint-no-literal-urls/index.js +++ b/packages/remark-lint-no-literal-urls/index.js @@ -31,15 +31,18 @@ * 1:1-1:19: Don’t use literal URLs without angle brackets */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' +import toString from 'mdast-util-to-string' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') -var toString = require('mdast-util-to-string') +const remarkLintNoLiteralUrls = lintRule( + 'remark-lint:no-literal-urls', + noLiteralURLs +) -module.exports = rule('remark-lint:no-literal-urls', noLiteralURLs) +export default remarkLintNoLiteralUrls var start = position.start var end = position.end diff --git a/packages/remark-lint-no-literal-urls/package.json b/packages/remark-lint-no-literal-urls/package.json index 5d9d65fe..1bf11a8b 100644 --- a/packages/remark-lint-no-literal-urls/package.json +++ b/packages/remark-lint-no-literal-urls/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-missing-blank-lines/index.js b/packages/remark-lint-no-missing-blank-lines/index.js index c296fafa..32bf63ea 100644 --- a/packages/remark-lint-no-missing-blank-lines/index.js +++ b/packages/remark-lint-no-missing-blank-lines/index.js @@ -63,14 +63,17 @@ * 2:1-2:7: Missing blank line before block node */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintNoMissingBlankLines = lintRule( + 'remark-lint:no-missing-blank-lines', + noMissingBlankLines +) -module.exports = rule('remark-lint:no-missing-blank-lines', noMissingBlankLines) +export default remarkLintNoMissingBlankLines var reason = 'Missing blank line before block node' diff --git a/packages/remark-lint-no-missing-blank-lines/package.json b/packages/remark-lint-no-missing-blank-lines/package.json index 24fc59c7..afc90fbf 100644 --- a/packages/remark-lint-no-missing-blank-lines/package.json +++ b/packages/remark-lint-no-missing-blank-lines/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-multiple-toplevel-headings/index.js b/packages/remark-lint-no-multiple-toplevel-headings/index.js index b22f5121..95d7928b 100644 --- a/packages/remark-lint-no-multiple-toplevel-headings/index.js +++ b/packages/remark-lint-no-multiple-toplevel-headings/index.js @@ -25,19 +25,19 @@ * 3:1-3:6: Don’t use multiple top level headings (1:1) */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' +import stringify from 'unist-util-stringify-position' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var start = require('unist-util-position').start -var generated = require('unist-util-generated') -var stringify = require('unist-util-stringify-position') - -module.exports = rule( +const remarkLintNoMultipleToplevelHeadings = lintRule( 'remark-lint:no-multiple-toplevel-headings', noMultipleToplevelHeadings ) +export default remarkLintNoMultipleToplevelHeadings + function noMultipleToplevelHeadings(tree, file, option) { var preferred = option || 1 var duplicate @@ -52,7 +52,7 @@ function noMultipleToplevelHeadings(tree, file, option) { node ) } else { - duplicate = stringify(start(node)) + duplicate = stringify(position.start(node)) } } } diff --git a/packages/remark-lint-no-multiple-toplevel-headings/package.json b/packages/remark-lint-no-multiple-toplevel-headings/package.json index e533bc9b..1ae13732 100644 --- a/packages/remark-lint-no-multiple-toplevel-headings/package.json +++ b/packages/remark-lint-no-multiple-toplevel-headings/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-paragraph-content-indent/index.js b/packages/remark-lint-no-paragraph-content-indent/index.js index f37cd224..e9b55c59 100644 --- a/packages/remark-lint-no-paragraph-content-indent/index.js +++ b/packages/remark-lint-no-paragraph-content-indent/index.js @@ -71,18 +71,18 @@ * 22:4: Expected no indentation in paragraph content */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import vfileLocation from 'vfile-location' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var vfileLocation = require('vfile-location') - -module.exports = rule( +const remarkLintNoParagraphContentIndent = lintRule( 'remark-lint:no-paragraph-content-indent', noParagraphContentIndent ) +export default remarkLintNoParagraphContentIndent + var reason = 'Expected no indentation in paragraph content' function noParagraphContentIndent(tree, file) { diff --git a/packages/remark-lint-no-paragraph-content-indent/package.json b/packages/remark-lint-no-paragraph-content-indent/package.json index 2bfc0b70..0549bae5 100644 --- a/packages/remark-lint-no-paragraph-content-indent/package.json +++ b/packages/remark-lint-no-paragraph-content-indent/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-reference-like-url/index.js b/packages/remark-lint-no-reference-like-url/index.js index 2e574611..dffe9bae 100644 --- a/packages/remark-lint-no-reference-like-url/index.js +++ b/packages/remark-lint-no-reference-like-url/index.js @@ -23,13 +23,16 @@ * 1:1-1:17: Did you mean to use `[delta]` instead of `(delta)`, a reference? */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import generated from 'unist-util-generated' +import visit from 'unist-util-visit' -var rule = require('unified-lint-rule') -var generated = require('unist-util-generated') -var visit = require('unist-util-visit') +const remarkLintNoReferenceLikeUrl = lintRule( + 'remark-lint:no-reference-like-url', + noReferenceLikeURL +) -module.exports = rule('remark-lint:no-reference-like-url', noReferenceLikeURL) +export default remarkLintNoReferenceLikeUrl function noReferenceLikeURL(tree, file) { var identifiers = [] diff --git a/packages/remark-lint-no-reference-like-url/package.json b/packages/remark-lint-no-reference-like-url/package.json index 1ba0f838..dadcb74a 100644 --- a/packages/remark-lint-no-reference-like-url/package.json +++ b/packages/remark-lint-no-reference-like-url/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-shell-dollars/index.js b/packages/remark-lint-no-shell-dollars/index.js index a7536ded..4ba291f9 100644 --- a/packages/remark-lint-no-shell-dollars/index.js +++ b/packages/remark-lint-no-shell-dollars/index.js @@ -53,13 +53,16 @@ * 5:1-8:4: Do not use dollar signs before shell commands */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var generated = require('unist-util-generated') +const remarkLintNoShellDollars = lintRule( + 'remark-lint:no-shell-dollars', + noShellDollars +) -module.exports = rule('remark-lint:no-shell-dollars', noShellDollars) +export default remarkLintNoShellDollars var reason = 'Do not use dollar signs before shell commands' diff --git a/packages/remark-lint-no-shell-dollars/package.json b/packages/remark-lint-no-shell-dollars/package.json index d06eefef..ba858587 100644 --- a/packages/remark-lint-no-shell-dollars/package.json +++ b/packages/remark-lint-no-shell-dollars/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-shortcut-reference-image/index.js b/packages/remark-lint-no-shortcut-reference-image/index.js index e9e56f34..ca322953 100644 --- a/packages/remark-lint-no-shortcut-reference-image/index.js +++ b/packages/remark-lint-no-shortcut-reference-image/index.js @@ -29,17 +29,17 @@ * 1:1-1:7: Use the trailing [] on reference images */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var generated = require('unist-util-generated') - -module.exports = rule( +const remarkLintNoShortcutReferenceImage = lintRule( 'remark-lint:no-shortcut-reference-image', noShortcutReferenceImage ) +export default remarkLintNoShortcutReferenceImage + var reason = 'Use the trailing [] on reference images' function noShortcutReferenceImage(tree, file) { diff --git a/packages/remark-lint-no-shortcut-reference-image/package.json b/packages/remark-lint-no-shortcut-reference-image/package.json index 548d84c0..5645a755 100644 --- a/packages/remark-lint-no-shortcut-reference-image/package.json +++ b/packages/remark-lint-no-shortcut-reference-image/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-shortcut-reference-link/index.js b/packages/remark-lint-no-shortcut-reference-link/index.js index 3b31604c..9152cf84 100644 --- a/packages/remark-lint-no-shortcut-reference-link/index.js +++ b/packages/remark-lint-no-shortcut-reference-link/index.js @@ -29,17 +29,17 @@ * 1:1-1:6: Use the trailing `[]` on reference links */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var generated = require('unist-util-generated') - -module.exports = rule( +const remarkLintNoShortcutReferenceLink = lintRule( 'remark-lint:no-shortcut-reference-link', noShortcutReferenceLink ) +export default remarkLintNoShortcutReferenceLink + var reason = 'Use the trailing `[]` on reference links' function noShortcutReferenceLink(tree, file) { diff --git a/packages/remark-lint-no-shortcut-reference-link/package.json b/packages/remark-lint-no-shortcut-reference-link/package.json index 0beb6fb9..6f604d7f 100644 --- a/packages/remark-lint-no-shortcut-reference-link/package.json +++ b/packages/remark-lint-no-shortcut-reference-link/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-table-indentation/index.js b/packages/remark-lint-no-table-indentation/index.js index 4e83a12c..c642f930 100644 --- a/packages/remark-lint-no-table-indentation/index.js +++ b/packages/remark-lint-no-table-indentation/index.js @@ -57,14 +57,17 @@ * 3:6: Do not indent table rows */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import vfileLocation from 'vfile-location' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var vfileLocation = require('vfile-location') +const remarkLintNoTableIndentation = lintRule( + 'remark-lint:no-table-indentation', + noTableIndentation +) -module.exports = rule('remark-lint:no-table-indentation', noTableIndentation) +export default remarkLintNoTableIndentation var reason = 'Do not indent table rows' diff --git a/packages/remark-lint-no-table-indentation/package.json b/packages/remark-lint-no-table-indentation/package.json index 15d5ead6..89e0ac5d 100644 --- a/packages/remark-lint-no-table-indentation/package.json +++ b/packages/remark-lint-no-table-indentation/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-tabs/index.js b/packages/remark-lint-no-tabs/index.js index 0b92be2e..b58a7b8e 100644 --- a/packages/remark-lint-no-tabs/index.js +++ b/packages/remark-lint-no-tabs/index.js @@ -50,12 +50,12 @@ * 13:41: Use spaces instead of tabs */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import location from 'vfile-location' -var rule = require('unified-lint-rule') -var location = require('vfile-location') +const remarkLintNoTabs = lintRule('remark-lint:no-tabs', noTabs) -module.exports = rule('remark-lint:no-tabs', noTabs) +export default remarkLintNoTabs var reason = 'Use spaces instead of tabs' diff --git a/packages/remark-lint-no-tabs/package.json b/packages/remark-lint-no-tabs/package.json index 803de444..e74c6aa3 100644 --- a/packages/remark-lint-no-tabs/package.json +++ b/packages/remark-lint-no-tabs/package.json @@ -20,6 +20,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-undefined-references/index.js b/packages/remark-lint-no-undefined-references/index.js index f75f5cc1..7274728e 100644 --- a/packages/remark-lint-no-undefined-references/index.js +++ b/packages/remark-lint-no-undefined-references/index.js @@ -62,20 +62,20 @@ * 17:23-17:26: Found reference to undefined definition */ -'use strict' - -var collapseWhiteSpace = require('collapse-white-space') -var vfileLocation = require('vfile-location') -var rule = require('unified-lint-rule') -var generated = require('unist-util-generated') -var position = require('unist-util-position') -var visit = require('unist-util-visit') - -module.exports = rule( +import collapseWhiteSpace from 'collapse-white-space' +import vfileLocation from 'vfile-location' +import {lintRule} from 'unified-lint-rule' +import generated from 'unist-util-generated' +import position from 'unist-util-position' +import visit from 'unist-util-visit' + +const remarkLintNoUndefinedReferences = lintRule( 'remark-lint:no-undefined-references', noUndefinedReferences ) +export default remarkLintNoUndefinedReferences + var reason = 'Found reference to undefined definition' // The identifier is upcased to avoid naming collisions with fields inherited diff --git a/packages/remark-lint-no-undefined-references/package.json b/packages/remark-lint-no-undefined-references/package.json index 9dbe2f75..fbbeec19 100644 --- a/packages/remark-lint-no-undefined-references/package.json +++ b/packages/remark-lint-no-undefined-references/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-unneeded-full-reference-image/index.js b/packages/remark-lint-no-unneeded-full-reference-image/index.js index 558f332e..bb271335 100644 --- a/packages/remark-lint-no-unneeded-full-reference-image/index.js +++ b/packages/remark-lint-no-unneeded-full-reference-image/index.js @@ -37,18 +37,18 @@ * 3:1-3:20: Remove the image label as it matches the reference text */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import generated from 'unist-util-generated' +import collapseWhiteSpace from 'collapse-white-space' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var generated = require('unist-util-generated') -var collapseWhiteSpace = require('collapse-white-space') - -module.exports = rule( +const remarkLintNoUnneededFullReferenceImage = lintRule( 'remark-lint:no-unneeded-full-reference-image', noUnneededFullReferenceImage ) +export default remarkLintNoUnneededFullReferenceImage + var reason = 'Remove the image label as it matches the reference text' function noUnneededFullReferenceImage(tree, file) { diff --git a/packages/remark-lint-no-unneeded-full-reference-image/package.json b/packages/remark-lint-no-unneeded-full-reference-image/package.json index 8c69cdbf..e1fd7581 100644 --- a/packages/remark-lint-no-unneeded-full-reference-image/package.json +++ b/packages/remark-lint-no-unneeded-full-reference-image/package.json @@ -23,6 +23,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-unneeded-full-reference-link/index.js b/packages/remark-lint-no-unneeded-full-reference-link/index.js index 3a19fdac..e112deb0 100644 --- a/packages/remark-lint-no-unneeded-full-reference-link/index.js +++ b/packages/remark-lint-no-unneeded-full-reference-link/index.js @@ -43,18 +43,18 @@ * 3:1-3:19: Remove the link label as it matches the reference text */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import generated from 'unist-util-generated' +import collapseWhiteSpace from 'collapse-white-space' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var generated = require('unist-util-generated') -var collapseWhiteSpace = require('collapse-white-space') - -module.exports = rule( +const remarkLintNoUnneededFullReferenceLink = lintRule( 'remark-lint:no-unneeded-full-reference-link', noUnneededFullReferenceLink ) +export default remarkLintNoUnneededFullReferenceLink + var reason = 'Remove the link label as it matches the reference text' function noUnneededFullReferenceLink(tree, file) { diff --git a/packages/remark-lint-no-unneeded-full-reference-link/package.json b/packages/remark-lint-no-unneeded-full-reference-link/package.json index 1b7c5513..298a5e32 100644 --- a/packages/remark-lint-no-unneeded-full-reference-link/package.json +++ b/packages/remark-lint-no-unneeded-full-reference-link/package.json @@ -23,6 +23,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-no-unused-definitions/index.js b/packages/remark-lint-no-unused-definitions/index.js index 5614bb5c..74964460 100644 --- a/packages/remark-lint-no-unused-definitions/index.js +++ b/packages/remark-lint-no-unused-definitions/index.js @@ -21,13 +21,16 @@ * 1:1-1:27: Found unused definition */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import generated from 'unist-util-generated' +import visit from 'unist-util-visit' -var rule = require('unified-lint-rule') -var generated = require('unist-util-generated') -var visit = require('unist-util-visit') +const remarkLintNoUnusedDefinitions = lintRule( + 'remark-lint:no-unused-definitions', + noUnusedDefinitions +) -module.exports = rule('remark-lint:no-unused-definitions', noUnusedDefinitions) +export default remarkLintNoUnusedDefinitions var reason = 'Found unused definition' diff --git a/packages/remark-lint-no-unused-definitions/package.json b/packages/remark-lint-no-unused-definitions/package.json index ae54f5a0..23e8e195 100644 --- a/packages/remark-lint-no-unused-definitions/package.json +++ b/packages/remark-lint-no-unused-definitions/package.json @@ -20,6 +20,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-ordered-list-marker-style/index.js b/packages/remark-lint-ordered-list-marker-style/index.js index e93313d5..2b274262 100644 --- a/packages/remark-lint-ordered-list-marker-style/index.js +++ b/packages/remark-lint-ordered-list-marker-style/index.js @@ -49,18 +49,18 @@ * 1:1: Incorrect ordered list item marker style `💩`: use either `'.'` or `')'` */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') - -module.exports = rule( +const remarkLintOrderedListMarkerStyle = lintRule( 'remark-lint:ordered-list-marker-style', orderedListMarkerStyle ) +export default remarkLintOrderedListMarkerStyle + var start = position.start var styles = { diff --git a/packages/remark-lint-ordered-list-marker-style/package.json b/packages/remark-lint-ordered-list-marker-style/package.json index da165685..421f5877 100644 --- a/packages/remark-lint-ordered-list-marker-style/package.json +++ b/packages/remark-lint-ordered-list-marker-style/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-ordered-list-marker-value/index.js b/packages/remark-lint-ordered-list-marker-value/index.js index fcf28db7..94dc3cb2 100644 --- a/packages/remark-lint-ordered-list-marker-value/index.js +++ b/packages/remark-lint-ordered-list-marker-value/index.js @@ -126,18 +126,18 @@ * 1:1: Incorrect ordered list item marker value `💩`: use either `'ordered'` or `'one'` */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') - -module.exports = rule( +const remarkLintOrderedListMarkerValue = lintRule( 'remark-lint:ordered-list-marker-value', orderedListMarkerValue ) +export default remarkLintOrderedListMarkerValue + var start = position.start var styles = {ordered: true, single: true, one: true} diff --git a/packages/remark-lint-ordered-list-marker-value/package.json b/packages/remark-lint-ordered-list-marker-value/package.json index b1b97e1c..158acc34 100644 --- a/packages/remark-lint-ordered-list-marker-value/package.json +++ b/packages/remark-lint-ordered-list-marker-value/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-rule-style/index.js b/packages/remark-lint-rule-style/index.js index 8add5a4b..6fbe27e7 100644 --- a/packages/remark-lint-rule-style/index.js +++ b/packages/remark-lint-rule-style/index.js @@ -55,14 +55,14 @@ * 1:1: Incorrect preferred rule style: provide a correct markdown rule or `'consistent'` */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintRuleStyle = lintRule('remark-lint:rule-style', ruleStyle) -module.exports = rule('remark-lint:rule-style', ruleStyle) +export default remarkLintRuleStyle var start = position.start var end = position.end diff --git a/packages/remark-lint-rule-style/package.json b/packages/remark-lint-rule-style/package.json index 29361b70..4ae181a7 100644 --- a/packages/remark-lint-rule-style/package.json +++ b/packages/remark-lint-rule-style/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-strikethrough-marker/index.js b/packages/remark-lint-strikethrough-marker/index.js index 5a2a07c4..5b39b7fb 100644 --- a/packages/remark-lint-strikethrough-marker/index.js +++ b/packages/remark-lint-strikethrough-marker/index.js @@ -54,14 +54,17 @@ * 1:1: Incorrect strikethrough marker `💩`: use either `'consistent'`, `'~'`, or `'~~'` */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintStrikethroughMarker = lintRule( + 'remark-lint:strikethrough-marker', + strikethroughMarker +) -module.exports = rule('remark-lint:strikethrough-marker', strikethroughMarker) +export default remarkLintStrikethroughMarker var markers = {null: true, '~': true, '~~': true} diff --git a/packages/remark-lint-strikethrough-marker/package.json b/packages/remark-lint-strikethrough-marker/package.json index 31fd8c36..5ed8d705 100644 --- a/packages/remark-lint-strikethrough-marker/package.json +++ b/packages/remark-lint-strikethrough-marker/package.json @@ -22,6 +22,9 @@ "Denis Augsburger (https://simpleen.io)", "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-strong-marker/index.js b/packages/remark-lint-strong-marker/index.js index 984cf91c..eecdfd79 100644 --- a/packages/remark-lint-strong-marker/index.js +++ b/packages/remark-lint-strong-marker/index.js @@ -51,14 +51,17 @@ * 1:1: Incorrect strong marker `💩`: use either `'consistent'`, `'*'`, or `'_'` */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintStrongMarker = lintRule( + 'remark-lint:strong-marker', + strongMarker +) -module.exports = rule('remark-lint:strong-marker', strongMarker) +export default remarkLintStrongMarker var markers = {'*': true, _: true, null: true} diff --git a/packages/remark-lint-strong-marker/package.json b/packages/remark-lint-strong-marker/package.json index a4810093..4e83bfe6 100644 --- a/packages/remark-lint-strong-marker/package.json +++ b/packages/remark-lint-strong-marker/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-table-cell-padding/index.js b/packages/remark-lint-table-cell-padding/index.js index f1dc83d7..3b4e080c 100644 --- a/packages/remark-lint-table-cell-padding/index.js +++ b/packages/remark-lint-table-cell-padding/index.js @@ -154,14 +154,17 @@ * | Echo | Foxtrot | */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintTableCellPadding = lintRule( + 'remark-lint:table-cell-padding', + tableCellPadding +) -module.exports = rule('remark-lint:table-cell-padding', tableCellPadding) +export default remarkLintTableCellPadding var start = position.start var end = position.end diff --git a/packages/remark-lint-table-cell-padding/package.json b/packages/remark-lint-table-cell-padding/package.json index d539d3a2..b4e2facc 100644 --- a/packages/remark-lint-table-cell-padding/package.json +++ b/packages/remark-lint-table-cell-padding/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-table-pipe-alignment/index.js b/packages/remark-lint-table-pipe-alignment/index.js index 35ebff71..8c927183 100644 --- a/packages/remark-lint-table-pipe-alignment/index.js +++ b/packages/remark-lint-table-pipe-alignment/index.js @@ -43,14 +43,17 @@ * 3:17-3:18: Misaligned table fence */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintTablePipeAlignment = lintRule( + 'remark-lint:table-pipe-alignment', + tablePipeAlignment +) -module.exports = rule('remark-lint:table-pipe-alignment', tablePipeAlignment) +export default remarkLintTablePipeAlignment var start = position.start var end = position.end diff --git a/packages/remark-lint-table-pipe-alignment/package.json b/packages/remark-lint-table-pipe-alignment/package.json index df68e4ba..837a1ded 100644 --- a/packages/remark-lint-table-pipe-alignment/package.json +++ b/packages/remark-lint-table-pipe-alignment/package.json @@ -23,6 +23,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-table-pipes/index.js b/packages/remark-lint-table-pipes/index.js index e77c0518..b7a3fb8b 100644 --- a/packages/remark-lint-table-pipes/index.js +++ b/packages/remark-lint-table-pipes/index.js @@ -37,14 +37,14 @@ * 3:14: Missing final pipe in table fence */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') +const remarkLintTablePipes = lintRule('remark-lint:table-pipes', tablePipes) -module.exports = rule('remark-lint:table-pipes', tablePipes) +export default remarkLintTablePipes var start = position.start var end = position.end diff --git a/packages/remark-lint-table-pipes/package.json b/packages/remark-lint-table-pipes/package.json index b6d66bde..d096888f 100644 --- a/packages/remark-lint-table-pipes/package.json +++ b/packages/remark-lint-table-pipes/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint-unordered-list-marker-style/index.js b/packages/remark-lint-unordered-list-marker-style/index.js index bed8c5ea..b3ea08b0 100644 --- a/packages/remark-lint-unordered-list-marker-style/index.js +++ b/packages/remark-lint-unordered-list-marker-style/index.js @@ -66,18 +66,18 @@ * 1:1: Incorrect unordered list item marker style `💩`: use either `'-'`, `'*'`, or `'+'` */ -'use strict' +import {lintRule} from 'unified-lint-rule' +import visit from 'unist-util-visit' +import position from 'unist-util-position' +import generated from 'unist-util-generated' -var rule = require('unified-lint-rule') -var visit = require('unist-util-visit') -var position = require('unist-util-position') -var generated = require('unist-util-generated') - -module.exports = rule( +const remarkLintUnorderedListMarkerStyle = lintRule( 'remark-lint:unordered-list-marker-style', unorderedListMarkerStyle ) +export default remarkLintUnorderedListMarkerStyle + var start = position.start var styles = { diff --git a/packages/remark-lint-unordered-list-marker-style/package.json b/packages/remark-lint-unordered-list-marker-style/package.json index 7ef3f51b..2df3603b 100644 --- a/packages/remark-lint-unordered-list-marker-style/package.json +++ b/packages/remark-lint-unordered-list-marker-style/package.json @@ -22,6 +22,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-lint/index.js b/packages/remark-lint/index.js index 2bd148a1..22c15efd 100644 --- a/packages/remark-lint/index.js +++ b/packages/remark-lint/index.js @@ -1,16 +1,12 @@ -'use strict' - -var control = require('remark-message-control') - -module.exports = lint +import remarkMessageControl from 'remark-message-control' // `remark-lint`. // This adds support for ignoring stuff from messages (``). // All rules are in their own packages and presets. -function lint() { +export default function remarkLint() { this.use(lintMessageControl) } function lintMessageControl() { - return control({name: 'lint', source: 'remark-lint'}) + return remarkMessageControl({name: 'lint', source: 'remark-lint'}) } diff --git a/packages/remark-lint/package.json b/packages/remark-lint/package.json index d68bf9b3..8137c567 100644 --- a/packages/remark-lint/package.json +++ b/packages/remark-lint/package.json @@ -23,11 +23,14 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], "dependencies": { - "remark-message-control": "^6.0.0" + "remark-message-control": "^7.0.0" }, "xo": false } diff --git a/packages/remark-preset-lint-consistent/index.js b/packages/remark-preset-lint-consistent/index.js index 94e913f3..a2958335 100644 --- a/packages/remark-preset-lint-consistent/index.js +++ b/packages/remark-preset-lint-consistent/index.js @@ -4,20 +4,36 @@ * consistency. */ -'use strict' +import remarkLint from 'remark-lint' +import remarkLintBlockquoteIndentation from 'remark-lint-blockquote-indentation' +import remarkLintCheckboxCharacterStyle from 'remark-lint-checkbox-character-style' +import remarkLintCodeBlockStyle from 'remark-lint-code-block-style' +import remarkLintEmphasisMarker from 'remark-lint-emphasis-marker' +import remarkLintFencedCodeMarker from 'remark-lint-fenced-code-marker' +import remarkLintHeadingStyle from 'remark-lint-heading-style' +import remarkLintLinkTitleStyle from 'remark-lint-link-title-style' +import remarkLintListItemContentIndent from 'remark-lint-list-item-content-indent' +import remarkLintOrderedListMarkerStyle from 'remark-lint-ordered-list-marker-style' +import remarkLintRuleStyle from 'remark-lint-rule-style' +import remarkLintStrongMarker from 'remark-lint-strong-marker' +import remarkLintTableCellPadding from 'remark-lint-table-cell-padding' -module.exports.plugins = [ - require('remark-lint'), - [require('remark-lint-blockquote-indentation'), 'consistent'], - [require('remark-lint-checkbox-character-style'), 'consistent'], - [require('remark-lint-code-block-style'), 'consistent'], - [require('remark-lint-emphasis-marker'), 'consistent'], - [require('remark-lint-fenced-code-marker'), 'consistent'], - [require('remark-lint-heading-style'), 'consistent'], - [require('remark-lint-link-title-style'), 'consistent'], - require('remark-lint-list-item-content-indent'), - [require('remark-lint-ordered-list-marker-style'), 'consistent'], - [require('remark-lint-rule-style'), 'consistent'], - [require('remark-lint-strong-marker'), 'consistent'], - [require('remark-lint-table-cell-padding'), 'consistent'] +const plugins = [ + remarkLint, + [remarkLintBlockquoteIndentation, 'consistent'], + [remarkLintCheckboxCharacterStyle, 'consistent'], + [remarkLintCodeBlockStyle, 'consistent'], + [remarkLintEmphasisMarker, 'consistent'], + [remarkLintFencedCodeMarker, 'consistent'], + [remarkLintHeadingStyle, 'consistent'], + [remarkLintLinkTitleStyle, 'consistent'], + remarkLintListItemContentIndent, + [remarkLintOrderedListMarkerStyle, 'consistent'], + [remarkLintRuleStyle, 'consistent'], + [remarkLintStrongMarker, 'consistent'], + [remarkLintTableCellPadding, 'consistent'] ] + +const remarkPresetLintConsistent = {plugins} + +export default remarkPresetLintConsistent diff --git a/packages/remark-preset-lint-consistent/package.json b/packages/remark-preset-lint-consistent/package.json index 0d802219..648bdbe2 100644 --- a/packages/remark-preset-lint-consistent/package.json +++ b/packages/remark-preset-lint-consistent/package.json @@ -20,6 +20,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-preset-lint-consistent/readme.md b/packages/remark-preset-lint-consistent/readme.md index 27eb2787..e9f0f7a3 100644 --- a/packages/remark-preset-lint-consistent/readme.md +++ b/packages/remark-preset-lint-consistent/readme.md @@ -19,18 +19,18 @@ This preset configures [`remark-lint`](https://github.com/remarkjs/remark-lint) | Rule | Setting | | - | - | -| [`blockquote-indentation`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-blockquote-indentation) | `'consistent'` | -| [`checkbox-character-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-checkbox-character-style) | `'consistent'` | -| [`code-block-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-code-block-style) | `'consistent'` | -| [`emphasis-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-emphasis-marker) | `'consistent'` | -| [`fenced-code-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-fenced-code-marker) | `'consistent'` | -| [`heading-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-heading-style) | `'consistent'` | -| [`link-title-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-link-title-style) | `'consistent'` | -| [`list-item-content-indent`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-content-indent) | | -| [`ordered-list-marker-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-ordered-list-marker-style) | `'consistent'` | -| [`rule-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-rule-style) | `'consistent'` | -| [`strong-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-strong-marker) | `'consistent'` | -| [`table-cell-padding`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-table-cell-padding) | `'consistent'` | +| [`remark-lint-blockquote-indentation`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-blockquote-indentation) | `'consistent'` | +| [`remark-lint-checkbox-character-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-checkbox-character-style) | `'consistent'` | +| [`remark-lint-code-block-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-code-block-style) | `'consistent'` | +| [`remark-lint-emphasis-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-emphasis-marker) | `'consistent'` | +| [`remark-lint-fenced-code-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-fenced-code-marker) | `'consistent'` | +| [`remark-lint-heading-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-heading-style) | `'consistent'` | +| [`remark-lint-link-title-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-link-title-style) | `'consistent'` | +| [`remark-lint-list-item-content-indent`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-content-indent) | | +| [`remark-lint-ordered-list-marker-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-ordered-list-marker-style) | `'consistent'` | +| [`remark-lint-rule-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-rule-style) | `'consistent'` | +| [`remark-lint-strong-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-strong-marker) | `'consistent'` | +| [`remark-lint-table-cell-padding`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-table-cell-padding) | `'consistent'` | ## Install diff --git a/packages/remark-preset-lint-markdown-style-guide/index.js b/packages/remark-preset-lint-markdown-style-guide/index.js index 7a2c0d18..43a84dd1 100644 --- a/packages/remark-preset-lint-markdown-style-guide/index.js +++ b/packages/remark-preset-lint-markdown-style-guide/index.js @@ -96,35 +96,79 @@ * ``` */ -'use strict' - -module.exports.plugins = [ - require('remark-lint'), +import remarkLint from 'remark-lint' +import remarkLintFileExtension from 'remark-lint-file-extension' +import remarkLintNoFileNameMixedCase from 'remark-lint-no-file-name-mixed-case' +import remarkLintNoFileNameArticles from 'remark-lint-no-file-name-articles' +import remarkLintNoFileNameIrregularCharacters from 'remark-lint-no-file-name-irregular-characters' +import remarkLintNoFileNameConsecutiveDashes from 'remark-lint-no-file-name-consecutive-dashes' +import remarkLintNoFileNameOuterDashes from 'remark-lint-no-file-name-outer-dashes' +import remarkLintNoConsecutiveBlankLines from 'remark-lint-no-consecutive-blank-lines' +import remarkLintMaximumLineLength from 'remark-lint-maximum-line-length' +import remarkLintNoShellDollars from 'remark-lint-no-shell-dollars' +import remarkLintHardBreakSpaces from 'remark-lint-hard-break-spaces' +import remarkLintHeadingStyle from 'remark-lint-heading-style' +import remarkLintHeadingIncrement from 'remark-lint-heading-increment' +import remarkLintNoDuplicateHeadings from 'remark-lint-no-duplicate-headings' +import remarkLintNoMultipleToplevelHeadings from 'remark-lint-no-multiple-toplevel-headings' +import remarkLintMaximumHeadingLength from 'remark-lint-maximum-heading-length' +import remarkLintNoHeadingPunctuation from 'remark-lint-no-heading-punctuation' +import remarkLintBlockquoteIndentation from 'remark-lint-blockquote-indentation' +import remarkLintNoBlockquoteWithoutMarker from 'remark-lint-no-blockquote-without-marker' +import remarkLintUnorderedListMarkerStyle from 'remark-lint-unordered-list-marker-style' +import remarkLintOrderedListMarkerStyle from 'remark-lint-ordered-list-marker-style' +import remarkLintOrderedListMarkerValue from 'remark-lint-ordered-list-marker-value' +import remarkLintListItemIndent from 'remark-lint-list-item-indent' +import remarkLintListItemContentIndent from 'remark-lint-list-item-content-indent' +import remarkLintListItemSpacing from 'remark-lint-list-item-spacing' +import remarkLintCodeBlockStyle from 'remark-lint-code-block-style' +import remarkLintFencedCodeFlag from 'remark-lint-fenced-code-flag' +import remarkLintFencedCodeMarker from 'remark-lint-fenced-code-marker' +import remarkLintRuleStyle from 'remark-lint-rule-style' +import remarkLintNoTableIndentation from 'remark-lint-no-table-indentation' +import remarkLintTablePipes from 'remark-lint-table-pipes' +import remarkLintTablePipeAlignment from 'remark-lint-table-pipe-alignment' +import remarkLintTableCellPadding from 'remark-lint-table-cell-padding' +import remarkLintNoInlinePadding from 'remark-lint-no-inline-padding' +import remarkLintNoShortcutReferenceImage from 'remark-lint-no-shortcut-reference-image' +import remarkLintNoShortcutReferenceLink from 'remark-lint-no-shortcut-reference-link' +import remarkLintFinalDefinition from 'remark-lint-final-definition' +import remarkLintDefinitionCase from 'remark-lint-definition-case' +import remarkLintDefinitionSpacing from 'remark-lint-definition-spacing' +import remarkLintLinkTitleStyle from 'remark-lint-link-title-style' +import remarkLintStrongMarker from 'remark-lint-strong-marker' +import remarkLintEmphasisMarker from 'remark-lint-emphasis-marker' +import remarkLintNoEmphasisAsHeading from 'remark-lint-no-emphasis-as-heading' +import remarkLintNoLiteralUrls from 'remark-lint-no-literal-urls' +import remarkLintNoAutoLinkWithoutProtocol from 'remark-lint-no-auto-link-without-protocol' + +const plugins = [ + remarkLint, // http://www.cirosantilli.com/markdown-style-guide/#file-extension - [require('remark-lint-file-extension'), 'md'], + [remarkLintFileExtension, 'md'], // http://www.cirosantilli.com/markdown-style-guide/#file-name - require('remark-lint-no-file-name-mixed-case'), - require('remark-lint-no-file-name-articles'), - require('remark-lint-no-file-name-irregular-characters'), - require('remark-lint-no-file-name-consecutive-dashes'), - require('remark-lint-no-file-name-outer-dashes'), + remarkLintNoFileNameMixedCase, + remarkLintNoFileNameArticles, + remarkLintNoFileNameIrregularCharacters, + remarkLintNoFileNameConsecutiveDashes, + remarkLintNoFileNameOuterDashes, // http://www.cirosantilli.com/markdown-style-guide/#newlines // http://www.cirosantilli.com/markdown-style-guide/#empty-lines-around-lists // http://www.cirosantilli.com/markdown-style-guide/#tables - require('remark-lint-no-consecutive-blank-lines'), + remarkLintNoConsecutiveBlankLines, // http://www.cirosantilli.com/markdown-style-guide/#spaces-after-sentences. // Not enforced, cannot be done properly without false positives, if you // want this, use remark-retext and retext-sentence-spacing. // http://www.cirosantilli.com/markdown-style-guide/#line-wrapping - [require('remark-lint-maximum-line-length'), 80], + [remarkLintMaximumLineLength, 80], // http://www.cirosantilli.com/markdown-style-guide/#dollar-signs-in-shell-code - require('remark-lint-no-shell-dollars'), + remarkLintNoShellDollars, // http://www.cirosantilli.com/markdown-style-guide/#what-to-mark-as-code. // This is a tip, not a rule. @@ -134,15 +178,15 @@ module.exports.plugins = [ // use remark-retext and retext-spell. // http://www.cirosantilli.com/markdown-style-guide/#line-breaks - require('remark-lint-hard-break-spaces'), + remarkLintHardBreakSpaces, // http://www.cirosantilli.com/markdown-style-guide/#headers - [require('remark-lint-heading-style'), 'atx'], - require('remark-lint-heading-increment'), - require('remark-lint-no-duplicate-headings'), + [remarkLintHeadingStyle, 'atx'], + remarkLintHeadingIncrement, + remarkLintNoDuplicateHeadings, // http://www.cirosantilli.com/markdown-style-guide/#top-level-header - require('remark-lint-no-multiple-toplevel-headings'), + remarkLintNoMultipleToplevelHeadings, // http://www.cirosantilli.com/markdown-style-guide/#header-case. // Heading case isn’t tested yet: new rules to fix this are ok though! @@ -151,33 +195,33 @@ module.exports.plugins = [ // Cannot be checked? // http://www.cirosantilli.com/markdown-style-guide/#header-length - require('remark-lint-maximum-heading-length'), + remarkLintMaximumHeadingLength, // http://www.cirosantilli.com/markdown-style-guide/#punctuation-at-the-end-of-headers - [require('remark-lint-no-heading-punctuation'), ':.'], + [remarkLintNoHeadingPunctuation, ':.'], // http://www.cirosantilli.com/markdown-style-guide/#header-synonyms. // Cannot be checked? // http://www.cirosantilli.com/markdown-style-guide/#blockquotes - [require('remark-lint-blockquote-indentation'), 2], - require('remark-lint-no-blockquote-without-marker'), + [remarkLintBlockquoteIndentation, 2], + remarkLintNoBlockquoteWithoutMarker, // http://www.cirosantilli.com/markdown-style-guide/#unordered - [require('remark-lint-unordered-list-marker-style'), '-'], + [remarkLintUnorderedListMarkerStyle, '-'], // http://www.cirosantilli.com/markdown-style-guide/#ordered - [require('remark-lint-ordered-list-marker-style'), '.'], - [require('remark-lint-ordered-list-marker-value'), 'one'], + [remarkLintOrderedListMarkerStyle, '.'], + [remarkLintOrderedListMarkerValue, 'one'], // http://www.cirosantilli.com/markdown-style-guide/#spaces-after-list-marker - [require('remark-lint-list-item-indent'), 'mixed'], + [remarkLintListItemIndent, 'mixed'], // http://www.cirosantilli.com/markdown-style-guide/#indentation-of-content-inside-lists - require('remark-lint-list-item-content-indent'), + remarkLintListItemContentIndent, // http://www.cirosantilli.com/markdown-style-guide/#empty-lines-inside-lists - require('remark-lint-list-item-spacing'), + remarkLintListItemSpacing, // http://www.cirosantilli.com/markdown-style-guide/#case-of-first-letter-of-list-item // Not checked. @@ -189,53 +233,57 @@ module.exports.plugins = [ // Not checked. // http://www.cirosantilli.com/markdown-style-guide/#code-blocks - [require('remark-lint-code-block-style'), 'fenced'], - [require('remark-lint-fenced-code-flag'), {allowEmpty: false}], - [require('remark-lint-fenced-code-marker'), '`'], + [remarkLintCodeBlockStyle, 'fenced'], + [remarkLintFencedCodeFlag, {allowEmpty: false}], + [remarkLintFencedCodeMarker, '`'], // http://www.cirosantilli.com/markdown-style-guide/#horizontal-rules - [require('remark-lint-rule-style'), '---'], + [remarkLintRuleStyle, '---'], // http://www.cirosantilli.com/markdown-style-guide/#tables - require('remark-lint-no-table-indentation'), - require('remark-lint-table-pipes'), - require('remark-lint-table-pipe-alignment'), - [require('remark-lint-table-cell-padding'), 'padded'], + remarkLintNoTableIndentation, + remarkLintTablePipes, + remarkLintTablePipeAlignment, + [remarkLintTableCellPadding, 'padded'], // http://www.cirosantilli.com/markdown-style-guide/#separate-consecutive-elements. // Not checked. // http://www.cirosantilli.com/markdown-style-guide/#span-elements - require('remark-lint-no-inline-padding'), + remarkLintNoInlinePadding, // http://www.cirosantilli.com/markdown-style-guide/#reference-style-links - require('remark-lint-no-shortcut-reference-image'), - require('remark-lint-no-shortcut-reference-link'), - require('remark-lint-final-definition'), - require('remark-lint-definition-case'), - require('remark-lint-definition-spacing'), + remarkLintNoShortcutReferenceImage, + remarkLintNoShortcutReferenceLink, + remarkLintFinalDefinition, + remarkLintDefinitionCase, + remarkLintDefinitionSpacing, // http://www.cirosantilli.com/markdown-style-guide/#single-or-double-quote-titles - [require('remark-lint-link-title-style'), '"'], + [remarkLintLinkTitleStyle, '"'], // http://www.cirosantilli.com/markdown-style-guide/#bold - [require('remark-lint-strong-marker'), '*'], + [remarkLintStrongMarker, '*'], // http://www.cirosantilli.com/markdown-style-guide/#italic - [require('remark-lint-emphasis-marker'), '*'], + [remarkLintEmphasisMarker, '*'], // http://www.cirosantilli.com/markdown-style-guide/#uppercase-for-emphasis. // Not checked. // http://www.cirosantilli.com/markdown-style-guide/#emphasis-vs-headers - require('remark-lint-no-emphasis-as-heading'), + remarkLintNoEmphasisAsHeading, // http://www.cirosantilli.com/markdown-style-guide/#automatic-links-without-angle-brackets - require('remark-lint-no-literal-urls'), + remarkLintNoLiteralUrls, // http://www.cirosantilli.com/markdown-style-guide/#content-of-automatic-links - require('remark-lint-no-auto-link-without-protocol') + remarkLintNoAutoLinkWithoutProtocol // http://www.cirosantilli.com/markdown-style-guide/#email-automatic-links. // Not checked. ] + +const remarkPresetLintMarkdownStyleGuide = {plugins} + +export default remarkPresetLintMarkdownStyleGuide diff --git a/packages/remark-preset-lint-markdown-style-guide/package.json b/packages/remark-preset-lint-markdown-style-guide/package.json index fbecdc1d..2086d7cb 100644 --- a/packages/remark-preset-lint-markdown-style-guide/package.json +++ b/packages/remark-preset-lint-markdown-style-guide/package.json @@ -21,6 +21,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-preset-lint-markdown-style-guide/readme.md b/packages/remark-preset-lint-markdown-style-guide/readme.md index 74ccad02..fe8f41f5 100644 --- a/packages/remark-preset-lint-markdown-style-guide/readme.md +++ b/packages/remark-preset-lint-markdown-style-guide/readme.md @@ -111,50 +111,50 @@ This preset configures [`remark-lint`](https://github.com/remarkjs/remark-lint) | Rule | Setting | | - | - | -| [`file-extension`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-file-extension) | `'md'` | -| [`no-file-name-mixed-case`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-file-name-mixed-case) | | -| [`no-file-name-articles`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-file-name-articles) | | -| [`no-file-name-irregular-characters`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-file-name-irregular-characters) | | -| [`no-file-name-consecutive-dashes`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-file-name-consecutive-dashes) | | -| [`no-file-name-outer-dashes`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-file-name-outer-dashes) | | -| [`no-consecutive-blank-lines`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-consecutive-blank-lines) | | -| [`maximum-line-length`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-maximum-line-length) | `80` | -| [`no-shell-dollars`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shell-dollars) | | -| [`hard-break-spaces`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-hard-break-spaces) | | -| [`heading-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-heading-style) | `'atx'` | -| [`heading-increment`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-heading-increment) | | -| [`no-duplicate-headings`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-duplicate-headings) | | -| [`no-multiple-toplevel-headings`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-multiple-toplevel-headings) | | -| [`maximum-heading-length`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-maximum-heading-length) | | -| [`no-heading-punctuation`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-heading-punctuation) | `':.'` | -| [`blockquote-indentation`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-blockquote-indentation) | `2` | -| [`no-blockquote-without-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-blockquote-without-marker) | | -| [`unordered-list-marker-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-unordered-list-marker-style) | `'-'` | -| [`ordered-list-marker-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-ordered-list-marker-style) | `'.'` | -| [`ordered-list-marker-value`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-ordered-list-marker-value) | `'one'` | -| [`list-item-indent`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-indent) | `'mixed'` | -| [`list-item-content-indent`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-content-indent) | | -| [`list-item-spacing`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-spacing) | | -| [`code-block-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-code-block-style) | `'fenced'` | -| [`fenced-code-flag`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-fenced-code-flag) | `{allowEmpty: false}` | -| [`fenced-code-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-fenced-code-marker) | ``'`'`` | -| [`rule-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-rule-style) | `'---'` | -| [`no-table-indentation`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-table-indentation) | | -| [`table-pipes`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-table-pipes) | | -| [`table-pipe-alignment`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-table-pipe-alignment) | | -| [`table-cell-padding`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-table-cell-padding) | `'padded'` | -| [`no-inline-padding`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-inline-padding) | | -| [`no-shortcut-reference-image`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shortcut-reference-image) | | -| [`no-shortcut-reference-link`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shortcut-reference-link) | | -| [`final-definition`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-final-definition) | | -| [`definition-case`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-definition-case) | | -| [`definition-spacing`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-definition-spacing) | | -| [`link-title-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-link-title-style) | `'"'` | -| [`strong-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-strong-marker) | `'*'` | -| [`emphasis-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-emphasis-marker) | `'*'` | -| [`no-emphasis-as-heading`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-emphasis-as-heading) | | -| [`no-literal-urls`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-literal-urls) | | -| [`no-auto-link-without-protocol`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-auto-link-without-protocol) | | +| [`remark-lint-file-extension`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-file-extension) | `'md'` | +| [`remark-lint-no-file-name-mixed-case`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-file-name-mixed-case) | | +| [`remark-lint-no-file-name-articles`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-file-name-articles) | | +| [`remark-lint-no-file-name-irregular-characters`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-file-name-irregular-characters) | | +| [`remark-lint-no-file-name-consecutive-dashes`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-file-name-consecutive-dashes) | | +| [`remark-lint-no-file-name-outer-dashes`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-file-name-outer-dashes) | | +| [`remark-lint-no-consecutive-blank-lines`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-consecutive-blank-lines) | | +| [`remark-lint-maximum-line-length`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-maximum-line-length) | `80` | +| [`remark-lint-no-shell-dollars`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shell-dollars) | | +| [`remark-lint-hard-break-spaces`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-hard-break-spaces) | | +| [`remark-lint-heading-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-heading-style) | `'atx'` | +| [`remark-lint-heading-increment`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-heading-increment) | | +| [`remark-lint-no-duplicate-headings`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-duplicate-headings) | | +| [`remark-lint-no-multiple-toplevel-headings`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-multiple-toplevel-headings) | | +| [`remark-lint-maximum-heading-length`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-maximum-heading-length) | | +| [`remark-lint-no-heading-punctuation`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-heading-punctuation) | `':.'` | +| [`remark-lint-blockquote-indentation`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-blockquote-indentation) | `2` | +| [`remark-lint-no-blockquote-without-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-blockquote-without-marker) | | +| [`remark-lint-unordered-list-marker-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-unordered-list-marker-style) | `'-'` | +| [`remark-lint-ordered-list-marker-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-ordered-list-marker-style) | `'.'` | +| [`remark-lint-ordered-list-marker-value`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-ordered-list-marker-value) | `'one'` | +| [`remark-lint-list-item-indent`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-indent) | `'mixed'` | +| [`remark-lint-list-item-content-indent`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-content-indent) | | +| [`remark-lint-list-item-spacing`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-spacing) | | +| [`remark-lint-code-block-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-code-block-style) | `'fenced'` | +| [`remark-lint-fenced-code-flag`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-fenced-code-flag) | `{ allowEmpty: false }` | +| [`remark-lint-fenced-code-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-fenced-code-marker) | ``'`'`` | +| [`remark-lint-rule-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-rule-style) | `'---'` | +| [`remark-lint-no-table-indentation`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-table-indentation) | | +| [`remark-lint-table-pipes`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-table-pipes) | | +| [`remark-lint-table-pipe-alignment`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-table-pipe-alignment) | | +| [`remark-lint-table-cell-padding`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-table-cell-padding) | `'padded'` | +| [`remark-lint-no-inline-padding`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-inline-padding) | | +| [`remark-lint-no-shortcut-reference-image`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shortcut-reference-image) | | +| [`remark-lint-no-shortcut-reference-link`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shortcut-reference-link) | | +| [`remark-lint-final-definition`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-final-definition) | | +| [`remark-lint-definition-case`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-definition-case) | | +| [`remark-lint-definition-spacing`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-definition-spacing) | | +| [`remark-lint-link-title-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-link-title-style) | `'"'` | +| [`remark-lint-strong-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-strong-marker) | `'*'` | +| [`remark-lint-emphasis-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-emphasis-marker) | `'*'` | +| [`remark-lint-no-emphasis-as-heading`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-emphasis-as-heading) | | +| [`remark-lint-no-literal-urls`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-literal-urls) | | +| [`remark-lint-no-auto-link-without-protocol`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-auto-link-without-protocol) | | ## Install diff --git a/packages/remark-preset-lint-recommended/index.js b/packages/remark-preset-lint-recommended/index.js index 4e8677f5..01de2c37 100644 --- a/packages/remark-preset-lint-recommended/index.js +++ b/packages/remark-preset-lint-recommended/index.js @@ -4,27 +4,46 @@ * mistakes or stuff that fails across vendors. */ -'use strict' +import remarkLint from 'remark-lint' +import remarkLintFinalNewline from 'remark-lint-final-newline' +import remarkLintListItemBulletIndent from 'remark-lint-list-item-bullet-indent' +import remarkLintListItemIndent from 'remark-lint-list-item-indent' +import remarkLintNoAutoLinkWithoutProtocol from 'remark-lint-no-auto-link-without-protocol' +import remarkLintNoBlockquoteWithoutMarker from 'remark-lint-no-blockquote-without-marker' +import remarkLintNoLiteralUrls from 'remark-lint-no-literal-urls' +import remarkLintOrderedListMarkerStyle from 'remark-lint-ordered-list-marker-style' +import remarkLintHardBreakSpaces from 'remark-lint-hard-break-spaces' +import remarkLintNoDuplicateDefinitions from 'remark-lint-no-duplicate-definitions' +import remarkLintNoHeadingContentIndent from 'remark-lint-no-heading-content-indent' +import remarkLintNoInlinePadding from 'remark-lint-no-inline-padding' +import remarkLintNoShortcutReferenceImage from 'remark-lint-no-shortcut-reference-image' +import remarkLintNoShortcutReferenceLink from 'remark-lint-no-shortcut-reference-link' +import remarkLintNoUndefinedReferences from 'remark-lint-no-undefined-references' +import remarkLintNoUnusedDefinitions from 'remark-lint-no-unused-definitions' -module.exports.plugins = [ - require('remark-lint'), +const plugins = [ + remarkLint, // Unix compatibility. - require('remark-lint-final-newline'), + remarkLintFinalNewline, // Rendering across vendors differs greatly if using other styles. - require('remark-lint-list-item-bullet-indent'), - [require('remark-lint-list-item-indent'), 'tab-size'], + remarkLintListItemBulletIndent, + [remarkLintListItemIndent, 'tab-size'], // Differs or unsupported across vendors. - require('remark-lint-no-auto-link-without-protocol'), - require('remark-lint-no-blockquote-without-marker'), - require('remark-lint-no-literal-urls'), - [require('remark-lint-ordered-list-marker-style'), '.'], + remarkLintNoAutoLinkWithoutProtocol, + remarkLintNoBlockquoteWithoutMarker, + remarkLintNoLiteralUrls, + [remarkLintOrderedListMarkerStyle, '.'], // Mistakes. - require('remark-lint-hard-break-spaces'), - require('remark-lint-no-duplicate-definitions'), - require('remark-lint-no-heading-content-indent'), - require('remark-lint-no-inline-padding'), - require('remark-lint-no-shortcut-reference-image'), - require('remark-lint-no-shortcut-reference-link'), - require('remark-lint-no-undefined-references'), - require('remark-lint-no-unused-definitions') + remarkLintHardBreakSpaces, + remarkLintNoDuplicateDefinitions, + remarkLintNoHeadingContentIndent, + remarkLintNoInlinePadding, + remarkLintNoShortcutReferenceImage, + remarkLintNoShortcutReferenceLink, + remarkLintNoUndefinedReferences, + remarkLintNoUnusedDefinitions ] + +const remarkPresetLintRecommended = {plugins} + +export default remarkPresetLintRecommended diff --git a/packages/remark-preset-lint-recommended/package.json b/packages/remark-preset-lint-recommended/package.json index 31e460be..f49c8bd4 100644 --- a/packages/remark-preset-lint-recommended/package.json +++ b/packages/remark-preset-lint-recommended/package.json @@ -19,6 +19,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/remark-preset-lint-recommended/readme.md b/packages/remark-preset-lint-recommended/readme.md index de623c4d..2911839d 100644 --- a/packages/remark-preset-lint-recommended/readme.md +++ b/packages/remark-preset-lint-recommended/readme.md @@ -19,21 +19,21 @@ This preset configures [`remark-lint`](https://github.com/remarkjs/remark-lint) | Rule | Setting | | - | - | -| [`final-newline`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-final-newline) | | -| [`list-item-bullet-indent`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-bullet-indent) | | -| [`list-item-indent`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-indent) | `'tab-size'` | -| [`no-auto-link-without-protocol`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-auto-link-without-protocol) | | -| [`no-blockquote-without-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-blockquote-without-marker) | | -| [`no-literal-urls`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-literal-urls) | | -| [`ordered-list-marker-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-ordered-list-marker-style) | `'.'` | -| [`hard-break-spaces`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-hard-break-spaces) | | -| [`no-duplicate-definitions`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-duplicate-definitions) | | -| [`no-heading-content-indent`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-heading-content-indent) | | -| [`no-inline-padding`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-inline-padding) | | -| [`no-shortcut-reference-image`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shortcut-reference-image) | | -| [`no-shortcut-reference-link`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shortcut-reference-link) | | -| [`no-undefined-references`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-undefined-references) | | -| [`no-unused-definitions`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-unused-definitions) | | +| [`remark-lint-final-newline`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-final-newline) | | +| [`remark-lint-list-item-bullet-indent`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-bullet-indent) | | +| [`remark-lint-list-item-indent`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-indent) | `'tab-size'` | +| [`remark-lint-no-auto-link-without-protocol`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-auto-link-without-protocol) | | +| [`remark-lint-no-blockquote-without-marker`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-blockquote-without-marker) | | +| [`remark-lint-no-literal-urls`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-literal-urls) | | +| [`remark-lint-ordered-list-marker-style`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-ordered-list-marker-style) | `'.'` | +| [`remark-lint-hard-break-spaces`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-hard-break-spaces) | | +| [`remark-lint-no-duplicate-definitions`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-duplicate-definitions) | | +| [`remark-lint-no-heading-content-indent`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-heading-content-indent) | | +| [`remark-lint-no-inline-padding`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-inline-padding) | | +| [`remark-lint-no-shortcut-reference-image`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shortcut-reference-image) | | +| [`remark-lint-no-shortcut-reference-link`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shortcut-reference-link) | | +| [`remark-lint-no-undefined-references`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-undefined-references) | | +| [`remark-lint-no-unused-definitions`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-unused-definitions) | | ## Install diff --git a/packages/unified-lint-rule/index.js b/packages/unified-lint-rule/index.js index 852c4684..a51ca727 100644 --- a/packages/unified-lint-rule/index.js +++ b/packages/unified-lint-rule/index.js @@ -1,10 +1,6 @@ -'use strict' +import wrapped from 'wrapped' -var wrapped = require('wrapped') - -module.exports = factory - -function factory(id, rule) { +export function lintRule(id, rule) { var parts = id.split(':') var source = parts[0] var ruleId = parts[1] diff --git a/packages/unified-lint-rule/package.json b/packages/unified-lint-rule/package.json index 052de485..6bd83b74 100644 --- a/packages/unified-lint-rule/package.json +++ b/packages/unified-lint-rule/package.json @@ -20,6 +20,9 @@ "contributors": [ "Titus Wormer (https://wooorm.com)" ], + "sideEffects": false, + "type": "module", + "main": "index.js", "files": [ "index.js" ], diff --git a/packages/unified-lint-rule/readme.md b/packages/unified-lint-rule/readme.md index 198f7b9d..f662af8b 100644 --- a/packages/unified-lint-rule/readme.md +++ b/packages/unified-lint-rule/readme.md @@ -23,9 +23,11 @@ npm install unified-lint-rule ## Use ```js -var rule = require('unified-lint-rule') +import unifiedLintRule from 'unified-lint-rule' -module.exports = rule('remark-lint:file-extension', fileExtension) +const remarkLintFileExtension = lintRule('remark-lint:file-extension', fileExtension) + +export default remarkLintFileExtension function fileExtension(tree, file, option) { var ext = file.extname diff --git a/script.js b/script.js new file mode 100644 index 00000000..3d2e0fa8 --- /dev/null +++ b/script.js @@ -0,0 +1,45 @@ +// . +// import fs from 'fs' +// +// const pkgs = fs.readdirSync('packages') +// +// pkgs.forEach((d) => { +// const pkg = JSON.parse(fs.readFileSync('packages/' + d + '/package.json')) +// const { +// name, +// version, +// description, +// license, +// keywords, +// repository, +// bugs, +// funding, +// author, +// contributors, +// files, +// ...rest +// } = pkg +// +// const clean = { +// name, +// version, +// description, +// license, +// keywords, +// repository, +// bugs, +// funding, +// author, +// contributors, +// sideEffects: false, +// type: 'module', +// main: 'index.js', +// files, +// ...rest +// } +// +// fs.writeFileSync( +// 'packages/' + d + '/package.json', +// JSON.stringify(clean, null, 2) + '\n' +// ) +// }) diff --git a/script/build-presets.js b/script/build-presets.js index 31a50f48..56e121eb 100644 --- a/script/build-presets.js +++ b/script/build-presets.js @@ -1,42 +1,45 @@ -'use strict' +import fs from 'fs' +import path from 'path' +import {inspect} from 'util' +import u from 'unist-builder' +import dox from 'dox' +import remark from 'remark' +import gfm from 'remark-gfm' +import strip from 'strip-indent' +import parseAuthor from 'parse-author' +import {find} from './util/find.js' +import {presets} from './util/presets.js' -var fs = require('fs') -var path = require('path') -var u = require('unist-builder') -var dox = require('dox') -var remark = require('remark') -var gfm = require('remark-gfm') -var strip = require('strip-indent') -var parseAuthor = require('parse-author') -var remote = require('../package.json').repository -var find = require('./util/find.js') -var presets = require('./util/presets.js') +const pkg = JSON.parse(fs.readFileSync('package.json')) +const remote = pkg.repository var root = path.join(process.cwd(), 'packages') -presets(root).forEach(function (basename) { - var base = path.resolve(root, basename) - var pack = require(path.join(base, 'package.json')) +const presetObjects = await presets(root) + +presetObjects.forEach(function ({name, packages}) { + var base = path.resolve(root, name) + var pack = JSON.parse(fs.readFileSync(path.join(base, 'package.json'))) var doc = fs.readFileSync(path.join(base, 'index.js'), 'utf8') var tags = dox.parseComments(doc)[0].tags var author = parseAuthor(pack.author) var description = strip(find(tags, 'fileoverview')).trim() var rows = [] var children - var short = basename.replace(/^remark-/, '') + var short = name.replace(/^remark-/, '') var org = remote.split('/').slice(0, -1).join('/') var main = remote + '/blob/main' var health = org + '/.github' var hMain = health + '/blob/HEAD' var slug = remote.split('/').slice(-2).join('/') - if (basename !== pack.name) { + if (name !== pack.name) { throw new Error( 'Expected package name (`' + pack.name + '`) to be the same as ' + 'directory name (`' + - basename + + name + '`)' ) } @@ -48,27 +51,27 @@ presets(root).forEach(function (basename) { ]) ) - doc.replace( - /require\('remark-lint-([^']+)'\)(?:, ([^\]]+)])?/g, - function ($0, rule, option) { - var url = remote + '/tree/main/packages/remark-lint-' + rule + let rule - rows.push( - u('tableRow', [ - u('tableCell', [ - u('link', {url: url, title: null}, [u('inlineCode', rule)]) - ]), - u('tableCell', option ? [u('inlineCode', option)] : []) - ]) - ) + for (rule in packages) { + var url = remote + '/tree/main/packages/' + rule + const option = packages[rule] - return '' - } - ) + if (rule === 'remark-lint') continue + + rows.push( + u('tableRow', [ + u('tableCell', [ + u('link', {url: url, title: null}, [u('inlineCode', rule)]) + ]), + u('tableCell', option ? [u('inlineCode', inspect(option))] : []) + ]) + ) + } children = [ u('html', ''), - u('heading', {depth: 1}, [u('text', basename)]), + u('heading', {depth: 1}, [u('text', name)]), u('paragraph', [ u('linkReference', {identifier: 'build'}, [ u('imageReference', {identifier: 'build-badge', alt: 'Build'}) @@ -117,7 +120,7 @@ presets(root).forEach(function (basename) { ]), u('text', ':') ]), - u('code', {lang: 'sh'}, 'npm install ' + basename), + u('code', {lang: 'sh'}, 'npm install ' + name), u('heading', {depth: 2}, [u('text', 'Use')]), u('paragraph', [ u('text', 'You probably want to use it on the CLI through a config file:') @@ -144,7 +147,7 @@ presets(root).forEach(function (basename) { " var report = require('vfile-reporter')", '', ' remark()', - "+ .use(require('" + basename + "'))", + "+ .use(require('" + name + "'))", " .process('_Emphasis_ and **importance**', function (err, file) {", ' console.error(report(err || file))', ' })' @@ -198,19 +201,19 @@ presets(root).forEach(function (basename) { }), u('definition', { identifier: 'downloads-badge', - url: 'https://img.shields.io/npm/dm/' + basename + '.svg' + url: 'https://img.shields.io/npm/dm/' + name + '.svg' }), u('definition', { identifier: 'downloads', - url: 'https://www.npmjs.com/package/' + basename + url: 'https://www.npmjs.com/package/' + name }), u('definition', { identifier: 'size-badge', - url: 'https://img.shields.io/bundlephobia/minzip/' + basename + '.svg' + url: 'https://img.shields.io/bundlephobia/minzip/' + name + '.svg' }), u('definition', { identifier: 'size', - url: 'https://bundlephobia.com/result?p=' + basename + url: 'https://bundlephobia.com/result?p=' + name }), u('definition', { identifier: 'sponsors-badge', @@ -255,5 +258,5 @@ presets(root).forEach(function (basename) { remark().use(gfm).stringify(u('root', children)) ) - console.log('✓ wrote `readme.md` in `' + basename + '`') + console.log('✓ wrote `readme.md` in `' + name + '`') }) diff --git a/script/build-rules.js b/script/build-rules.js index f6de2421..e16e60cd 100644 --- a/script/build-rules.js +++ b/script/build-rules.js @@ -1,41 +1,24 @@ -'use strict' - -var fs = require('fs') -var path = require('path') -var inspect = require('util').inspect -var u = require('unist-builder') -var remark = require('remark') -var gfm = require('remark-gfm') -var parseAuthor = require('parse-author') -var remote = require('../package.json').repository -var rules = require('./util/rules.js') -var rule = require('./util/rule.js') -var presets = require('./util/presets.js') -var chars = require('./characters.js') +import fs from 'fs' +import path from 'path' +import {inspect} from 'util' +import u from 'unist-builder' +import remark from 'remark' +import gfm from 'remark-gfm' +import parseAuthor from 'parse-author' +import {rules} from './util/rules.js' +import {rule} from './util/rule.js' +import {presets} from './util/presets.js' +import {characters} from './characters.js' +const pkg = JSON.parse(fs.readFileSync('package.json')) +const remote = pkg.repository var root = path.join(process.cwd(), 'packages') -presets = presets(root).map(function (name) { - var doc = fs.readFileSync(path.join(root, name, 'index.js'), 'utf8') - var packages = {} - - doc.replace( - /require\('(remark-lint-[^']+)'\)(?:, ([^\]]+)])?/g, - function ($0, rule, option) { - packages[rule] = option || null - return '' - } - ) - - return { - name: name, - packages: packages - } -}) +const presetObjects = await presets(root) rules(root).forEach(function (basename) { var base = path.resolve(root, basename) - var pack = require(path.join(base, 'package.json')) + var pack = JSON.parse(fs.readFileSync(path.join(base, 'package.json'))) var info = rule(base) var tests = info.tests var author = parseAuthor(pack.author) @@ -91,7 +74,7 @@ rules(root).forEach(function (basename) { ) } - includes = presets.filter(function (preset) { + includes = presetObjects.filter(function (preset) { return basename in preset.packages }) @@ -127,7 +110,7 @@ rules(root).forEach(function (basename) { u('inlineCode', preset.name) ]) ]), - u('tableCell', option ? [u('inlineCode', option)] : []) + u('tableCell', option ? [u('inlineCode', inspect(option))] : []) ]) }) ) @@ -175,7 +158,7 @@ rules(root).forEach(function (basename) { ) } - chars.forEach(function (char) { + characters.forEach(function (char) { var next = clean.replace(char.in, char.out) if (clean !== next) { diff --git a/script/characters.js b/script/characters.js index b0ca9335..7ea83670 100644 --- a/script/characters.js +++ b/script/characters.js @@ -1,6 +1,4 @@ -'use strict' - -module.exports = [ +export const characters = [ { name: 'a space', in: /·/g, diff --git a/script/plugin/list-of-presets.js b/script/plugin/list-of-presets.js index db12482a..cd01ec21 100644 --- a/script/plugin/list-of-presets.js +++ b/script/plugin/list-of-presets.js @@ -1,15 +1,13 @@ -'use strict' - -var path = require('path') -var zone = require('mdast-zone') -var u = require('unist-builder') -var presets = require('../util/presets.js') +import fs from 'fs' +import path from 'path' +import zone from 'mdast-zone' +import u from 'unist-builder' +import {presets} from '../util/presets.js' var root = path.join(process.cwd(), 'packages') +const presetObjects = await presets(root) -module.exports = listOfPresets - -function listOfPresets() { +export default function listOfPresets() { return transformer } @@ -20,12 +18,14 @@ function transformer(tree) { function replace(start, nodes, end) { return [ start, - u('list', {ordered: false, spread: false}, presets(root).map(item)), + u('list', {ordered: false, spread: false}, presetObjects.map(item)), end ] - function item(basename) { - var pack = require(path.join(root, basename, 'package.json')) + function item({name}) { + var pack = JSON.parse( + fs.readFileSync(path.join(root, name, 'package.json')) + ) var description = pack.description.replace( /^remark preset to configure remark-lint with ?/i, '' @@ -33,7 +33,7 @@ function replace(start, nodes, end) { return u('listItem', {spread: false}, [ u('paragraph', [ - u('link', {url: pack.repository}, [u('inlineCode', basename)]), + u('link', {url: pack.repository}, [u('inlineCode', name)]), u('text', ' — ' + description) ]) ]) diff --git a/script/plugin/list-of-rules.js b/script/plugin/list-of-rules.js index 4ed36656..43181563 100644 --- a/script/plugin/list-of-rules.js +++ b/script/plugin/list-of-rules.js @@ -1,15 +1,12 @@ -'use strict' - -var path = require('path') -var zone = require('mdast-zone') -var u = require('unist-builder') -var rules = require('../util/rules.js') +import fs from 'fs' +import path from 'path' +import zone from 'mdast-zone' +import u from 'unist-builder' +import {rules} from '../util/rules.js' var root = path.join(process.cwd(), 'packages') -module.exports = listOfRules - -function listOfRules() { +export default function listOfRules() { return transformer } @@ -26,7 +23,9 @@ function replace(start, nodes, end) { function item(basename) { var name = basename.slice('remark-lint-'.length) - var pack = require(path.join(root, basename, 'package.json')) + var pack = JSON.parse( + fs.readFileSync(path.join(root, basename, 'package.json')) + ) var description = pack.description.replace(/^remark-lint rule to ?/i, '') return u('listItem', {spread: false}, [ diff --git a/script/util/find.js b/script/util/find.js index 54d02ae7..2259e51b 100755 --- a/script/util/find.js +++ b/script/util/find.js @@ -1,11 +1,5 @@ -'use strict' - -module.exports = find - -find.all = findAll - // Find the first tag in `tags` with a type set to `key`. -function find(tags, key) { +export function find(tags, key) { var value = null tags.some(function (tag) { @@ -22,7 +16,7 @@ function find(tags, key) { } // Find the first tag in `tags` with a type set to `key`. -function findAll(tags, key) { +export function findAll(tags, key) { return tags .filter(function (tag) { return tag && tag.type === key diff --git a/script/util/presets.js b/script/util/presets.js index 82f19bcb..3d2096e4 100644 --- a/script/util/presets.js +++ b/script/util/presets.js @@ -1,11 +1,40 @@ -'use strict' +import {promises as fs} from 'fs' +import path from 'path' -var fs = require('fs') +export async function presets(base) { + const files = (await fs.readdir(base)).filter(filter) -module.exports = rulesSync + return Promise.all( + files.map(async function (name) { + const plugins = (await import(path.join(base, name, 'index.js'))).default + .plugins + var packages = {} -function rulesSync(filePath) { - return fs.readdirSync(filePath).filter(filter) + let index = -1 + while (++index < plugins.length) { + const plugin = plugins[index] + let fn + let option + + if (typeof plugin === 'function') { + fn = plugin + } else { + fn = plugin[0] + option = plugin[1] + } + + let name = fn.displayName || fn.name + + packages[ + name + .replace(/[:-](\w)/g, (_, $1) => $1.toUpperCase()) + .replace(/[A-Z]/g, ($0) => '-' + $0.toLowerCase()) + ] = option + } + + return {name: name, packages: packages} + }) + ) } function filter(basename) { diff --git a/script/util/rule.js b/script/util/rule.js index 5de86f80..678af521 100755 --- a/script/util/rule.js +++ b/script/util/rule.js @@ -1,15 +1,11 @@ -'use strict' - -var fs = require('fs') -var path = require('path') -var dox = require('dox') -var strip = require('strip-indent') -var find = require('./find.js') - -module.exports = ruleSync +import fs from 'fs' +import path from 'path' +import dox from 'dox' +import strip from 'strip-indent' +import {find, findAll} from './find.js' // Get information for a rule at `filePath`. -function ruleSync(filePath) { +export function rule(filePath) { var ruleId = path.basename(filePath) var result = {} var tests = {} @@ -41,7 +37,7 @@ function ruleSync(filePath) { result.tests = tests result.filePath = filePath - find.all(tags, 'example').map(strip).forEach(check) + findAll(tags, 'example').map(strip).forEach(check) return result diff --git a/script/util/rules.js b/script/util/rules.js index f8081a8d..fca1dde9 100644 --- a/script/util/rules.js +++ b/script/util/rules.js @@ -1,10 +1,6 @@ -'use strict' +import fs from 'fs' -var fs = require('fs') - -module.exports = rulesSync - -function rulesSync(filePath) { +export function rules(filePath) { return fs.readdirSync(filePath).filter(filter) } diff --git a/test.js b/test.js index b1fb20e0..fb320331 100644 --- a/test.js +++ b/test.js @@ -1,18 +1,17 @@ -'use strict' - -var path = require('path') -var test = require('tape') -var vfile = require('to-vfile') -var removePosition = require('unist-util-remove-position') -var remark = require('remark') -var gfm = require('remark-gfm') -var rules = require('./script/util/rules.js') -var rule = require('./script/util/rule.js') -var lint = require('./packages/remark-lint/index.js') -var noHeadingPunctuation = require('./packages/remark-lint-no-heading-punctuation/index.js') -var noMultipleToplevelHeadings = require('./packages/remark-lint-no-multiple-toplevel-headings/index.js') -var finalNewline = require('./packages/remark-lint-final-newline/index.js') -var chars = require('./script/characters.js') +import url from 'url' +import path from 'path' +import test from 'tape' +import vfile from 'to-vfile' +import removePosition from 'unist-util-remove-position' +import remark from 'remark' +import gfm from 'remark-gfm' +import {rules} from './script/util/rules.js' +import {rule} from './script/util/rule.js' +import {characters} from './script/characters.js' +import lint from './packages/remark-lint/index.js' +import noHeadingPunctuation from './packages/remark-lint-no-heading-punctuation/index.js' +import noMultipleToplevelHeadings from './packages/remark-lint-no-multiple-toplevel-headings/index.js' +import finalNewline from './packages/remark-lint-final-newline/index.js' test('core', function (t) { t.test('should work', function (st) { @@ -267,10 +266,10 @@ test('rules', function (t) { all.forEach(each) - function each(basename) { + async function each(basename) { var base = path.resolve(root, basename) var info = rule(base) - var fn = require(base) + var fn = (await import(url.pathToFileURL(base).href + '/index.js')).default var handle = Object.keys(info.tests).length === 0 ? ignore : one t.test(info.ruleId, handle) @@ -369,7 +368,7 @@ function normalize(messages) { } function preprocess(value) { - chars.forEach(function (char) { + characters.forEach(function (char) { value = value.replace(char.in, char.out) })