Skip to content

textlint-rule/textlint-rule-eslint

Repository files navigation

textlint-rule-eslint Actions Status: test

textlint rule to lint JavaScript in Markdown with ESLint.

Warning

Now you can Lint CodeBlock code in ESLint by using @eslint/markdown. Therefore, this rule is maintenance mode

Use case

ESLint can lint Markdown files using eslint-plugin-markdown. But eslint-plugin-markdown doesn't support disabling Markdown (HTML) comments for ignoring some CodeBlocks.

textlint can filter some CodeBlocks using textlint-filter-rule-comments:

<!-- textlint-disable -->

```js
var ignore = "This is ignored"
```

<!-- textlint-enable -->

Sometimes, we want to write broken JavaScript code into a JS CodeBlock for syntax highlight:

This is error example of parsing:

<!-- textlint-disable eslint -->

```js
// This is invalid example
const const;
```

<!-- textlint-enable eslint -->

To ignore ESLint parsing errors that cannot be ignored from the config file, you can use ignoreParsingErrors:

{
    "rules": {
        "eslint": {
          "configFile": "path/to/.eslintrc",
          "ignoreParsingErrors": true
        }
    }
}

Installation

Install with npm:

npm install textlint-rule-eslint eslint

Support Versions:

  • textlint-rule-eslint@5: Support ESLint 9
  • textlint-rule-eslint@4: Support ESLint 8

Usage

Via .textlintrc (recommended):

{
    "rules": {
        "eslint": {
          // Required: path to eslint.config file
          "configFile": "./path/to/eslint.config.mjs"
        }
    }
}

Via CLI:

textlint --rule eslint README.md

Options

  • configFile: string
    • Required
    • path to .eslintrc file
  • langs: string[]
    • Default: ["js", "javascript", "node", "jsx"]
    • recognize lang of CodeBlock
  • ignoreParsingErrors: Boolean
    • Default: false
    • ignore ESLint parsing errors while still reporting other ESLint errors
{
    "rules": {
        "eslint": {
            // Required: path to eslint.config file
            "configFile": "./path/to/eslint.config.mjs",
            // recognize lang of CodeBlock as JavaScript
            "langs": ["js", "javascript", "node", "jsx"],
            // Ignore ESLint parsing errors
            "ignoreParsingErrors": true
        }
    }
}

Fixable

textlint-rule-eslint support --fix option.

textlint rule

See https://github.com/textlint/textlint/#fixable for more details.

Changelog

See Releases page.

Running tests

Install devDependencies and Run npm test:

npm ci && npm test

Contributing

Pull requests and stars are always welcome.

For bugs and feature requests, please create an issue.

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

License

MIT © azu