Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

remark-lint-emphasis-marker

Package Overview
Dependencies
Maintainers
3
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

remark-lint-emphasis-marker - npm Package Compare versions

Comparing version 3.1.2 to 4.0.0

index.d.ts.map

32

index.d.ts

@@ -1,27 +0,15 @@

export default remarkLintEmphasisMarker
export type Root = import('mdast').Root
export default remarkLintEmphasisMarker;
export type Root = import('mdast').Root;
/**
* Styles.
*/
export type Marker = '*' | '_'
export type Marker = '*' | '_';
/**
* Options.
* Configuration.
*/
export type Options = 'consistent' | Marker
declare const remarkLintEmphasisMarker: import('unified').Plugin<
| void[]
| [
| Options
| [
(
| boolean
| import('unified-lint-rule/lib/index.js').Label
| import('unified-lint-rule/lib/index.js').Severity
),
(Options | undefined)?
]
| undefined
],
import('mdast').Root,
import('mdast').Root
>
export type Options = Marker | 'consistent';
declare const remarkLintEmphasisMarker: {
(config?: import("../../node_modules/unified-lint-rule/lib/index.js").Label | import("../../node_modules/unified-lint-rule/lib/index.js").Severity | Options | [level: import("../../node_modules/unified-lint-rule/lib/index.js").Label | import("../../node_modules/unified-lint-rule/lib/index.js").Severity, option?: Options | null | undefined] | null | undefined): ((tree: import("mdast").Root, file: import("vfile").VFile, next: import("unified").TransformCallback<import("mdast").Root>) => undefined) | undefined;
readonly name: string;
};
//# sourceMappingURL=index.d.ts.map
/**
* remark-lint rule to warn when emphasis markers are inconsistent.
*
* ## What is this?
*
* This package checks the style of emphasis markers.
*
* ## When should I use this?
*
* You can use this package to check that emphasis markers are consistent.
* You can use this package to check that emphasis is consistent.
*
* ## API
*
* The following options (default: `'consistent'`) are accepted:
* ### `unified().use(remarkLintEmphasisMarker[, options])`
*
* * `'*'`
* — prefer asterisks
* * `'_'`
* — prefer underscores
* * `'consistent'`
* — detect the first used style and warn when further emphasis differs
* Warn when emphasis markers are inconsistent.
*
* ###### Parameters
*
* * `options` ([`Options`][api-options], default: `'consistent'`)
* — preferred style or whether to detect the first style and warn for
* further differences
*
* ###### Returns
*
* Transform ([`Transformer` from `unified`][github-unified-transformer]).
*
* ### `Marker`
*
* Marker (TypeScript type).
*
* ###### Type
*
* ```ts
* type Marker = '*' | '_'
* ```
*
* ### `Options`
*
* Configuration (TypeScript type).
*
* ###### Type
*
* ```ts
* type Options = Marker | 'consistent'
* ```
*
* ## Recommendation
*
* Underscores and asterisks work slightly different: asterisks can form
* emphasis in more cases than underscores.
* Because underscores are sometimes used to represent normal underscores inside
* words, there are extra rules supporting that.
* Whether asterisks or underscores are used affects how and whether emphasis
* works.
* Underscores are sometimes used to represent normal underscores inside words,
* so there are extra rules in markdown to support that.
* Asterisks are not used in natural language,
* so they don’t need these rules,
* and thus can form emphasis in more cases.
* Asterisks can also be used as the marker of more constructs than underscores:
* lists.
* Due to having simpler parsing rules, looking more like syntax, and that they
* can be used for more constructs, it’s recommended to prefer asterisks.
* Due to having simpler parsing rules,
* looking more like syntax,
* and that they can be used for more constructs,
* it’s recommended to prefer asterisks.
*
* ## Fix
*
* [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify)
* formats emphasis with asterisks by default.
* Pass
* [`emphasis: '_'`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionsemphasis)
* to always use underscores.
* [`remark-stringify`][github-remark-stringify] formats emphasis with
* asterisks by default.
* Pass `emphasis: '_'` to always use underscores.
*
* [api-marker]: #marker
* [api-options]: #options
* [api-remark-lint-emphasis-marker]: #unifieduseremarklintemphasismarker-options
* [github-remark-stringify]: https://github.com/remarkjs/remark/tree/main/packages/remark-stringify
* [github-unified-transformer]: https://github.com/unifiedjs/unified#transformer
*
* @module emphasis-marker
* @summary
* remark-lint rule to warn when emphasis markers are inconsistent.
* @author Titus Wormer
* @copyright 2015 Titus Wormer
* @license MIT
*
* @example
* {"config": "*", "name": "ok.md"}
* {"config": "*", "name": "ok-asterisk.md"}
*
* *foo*
* *Mercury*.
*
* @example
* {"config": "*", "name": "not-ok.md", "label": "input"}
* {"config": "*", "label": "input", "name": "not-ok-asterisk.md"}
*
* _foo_
* _Mercury_.
*
* @example
* {"config": "*", "name": "not-ok.md", "label": "output"}
* {"config": "*", "label": "output", "name": "not-ok-asterisk.md"}
*
* 1:1-1:6: Emphasis should use `*` as a marker
* 1:1-1:10: Unexpected emphasis marker `_`, expected `*`
*
* @example
* {"config": "_", "name": "ok.md"}
* {"config": "_", "name": "ok-underscore.md"}
*
* _foo_
* _Mercury_.
*
* @example
* {"config": "_", "name": "not-ok.md", "label": "input"}
* {"config": "_", "label": "input", "name": "not-ok-underscore.md"}
*
* *foo*
* *Mercury*.
*
* @example
* {"config": "_", "name": "not-ok.md", "label": "output"}
* {"config": "_", "label": "output", "name": "not-ok-underscore.md"}
*
* 1:1-1:6: Emphasis should use `_` as a marker
* 1:1-1:10: Unexpected emphasis marker `*`, expected `_`
*
* @example
* {"name": "not-ok.md", "label": "input"}
* {"label": "input", "name": "not-ok-consistent.md"}
*
* *foo*
* _bar_
* *Mercury* and _Venus_.
*
* @example
* {"name": "not-ok.md", "label": "output"}
* {"label": "output", "name": "not-ok-consistent.md"}
*
* 2:1-2:6: Emphasis should use `*` as a marker
* 1:15-1:22: Unexpected emphasis marker `_`, expected `*`
*
* @example
* {"config": "💩", "name": "not-ok.md", "label": "output", "positionless": true}
* {"config": "🌍", "label": "output", "name": "not-ok.md", "positionless": true}
*
* 1:1: Incorrect emphasis marker `💩`: use either `'consistent'`, `'*'`, or `'_'`
* 1:1: Unexpected value `🌍` for `options`, expected `'*'`, `'_'`, or `'consistent'`
*/

@@ -96,9 +134,11 @@

* Styles.
* @typedef {'consistent' | Marker} Options
* Options.
*
* @typedef {Marker | 'consistent'} Options
* Configuration.
*/
import {lintRule} from 'unified-lint-rule'
import {visit} from 'unist-util-visit'
import {pointStart} from 'unist-util-position'
import {visitParents} from 'unist-util-visit-parents'
import {VFileMessage} from 'vfile-message'

@@ -110,24 +150,62 @@ const remarkLintEmphasisMarker = lintRule(

},
/** @type {import('unified-lint-rule').Rule<Root, Options>} */
(tree, file, option = 'consistent') => {
/**
* @param {Root} tree
* Tree.
* @param {Options | null | undefined} [options='consistent']
* Configuration (default: `'consistent`').
* @returns {undefined}
* Nothing.
*/
function (tree, file, options) {
const value = String(file)
/** @type {VFileMessage | undefined} */
let cause
/** @type {Marker | undefined} */
let expected
if (option !== '*' && option !== '_' && option !== 'consistent') {
if (options === null || options === undefined || options === 'consistent') {
// Empty.
} else if (options === '*' || options === '_') {
expected = options
} else {
file.fail(
'Incorrect emphasis marker `' +
option +
"`: use either `'consistent'`, `'*'`, or `'_'`"
'Unexpected value `' +
options +
"` for `options`, expected `'*'`, `'_'`, or `'consistent'`"
)
}
visit(tree, 'emphasis', (node) => {
const start = pointStart(node).offset
visitParents(tree, 'emphasis', function (node, parents) {
const start = pointStart(node)
if (typeof start === 'number') {
const marker = /** @type {Marker} */ (value.charAt(start))
if (start && typeof start.offset === 'number') {
const actual = value.charAt(start.offset)
if (option === 'consistent') {
option = marker
} else if (marker !== option) {
file.message('Emphasis should use `' + option + '` as a marker', node)
/* c8 ignore next -- should not happen. */
if (actual !== '*' && actual !== '_') return
if (expected) {
if (actual !== expected) {
file.message(
'Unexpected emphasis marker `' +
actual +
'`, expected `' +
expected +
'`',
{ancestors: [...parents, node], cause, place: node.position}
)
}
} else {
expected = actual
cause = new VFileMessage(
"Emphasis marker style `'" +
actual +
"'` first defined for `'consistent'` here",
{
ancestors: [...parents, node],
place: node.position,
ruleId: 'emphasis-marker',
source: 'remark-lint'
}
)
}

@@ -134,0 +212,0 @@ }

{
"name": "remark-lint-emphasis-marker",
"version": "3.1.2",
"version": "4.0.0",
"description": "remark-lint rule to warn when emphasis markers violate the given style",
"license": "MIT",
"keywords": [
"emphasis",
"lint",
"marker",
"remark",
"lint",
"rule",
"remark-lint",
"remark-lint-rule",
"emphasis",
"marker"
"rule"
],
"repository": {
"type": "git",
"url": "https://github.com/remarkjs/remark-lint",
"directory": "packages/remark-lint-emphasis-marker"
},
"repository": "https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-emphasis-marker",
"bugs": "https://github.com/remarkjs/remark-lint/issues",

@@ -26,27 +23,33 @@ "funding": {

"contributors": [
"Titus Wormer <tituswormer@gmail.com> (https://wooorm.com)"
"Titus Wormer <tituswormer@gmail.com>"
],
"sideEffects": false,
"type": "module",
"main": "index.js",
"types": "index.d.ts",
"exports": "./index.js",
"files": [
"index.d.ts",
"index.d.ts.map",
"index.js"
],
"dependencies": {
"@types/mdast": "^3.0.0",
"unified": "^10.0.0",
"unified-lint-rule": "^2.0.0",
"unist-util-position": "^4.0.0",
"unist-util-visit": "^4.0.0"
"@types/mdast": "^4.0.0",
"unified-lint-rule": "^3.0.0",
"unist-util-position": "^5.0.0",
"unist-util-visit-parents": "^6.0.0",
"vfile-message": "^4.0.0"
},
"scripts": {},
"xo": false,
"typeCoverage": {
"atLeast": 100,
"detail": true,
"strict": true,
"ignoreCatch": true
"ignoreCatch": true,
"strict": true
},
"xo": {
"prettier": true,
"rules": {
"capitalized-comments": "off",
"unicorn/prefer-default-parameters": "off"
}
}
}

@@ -5,43 +5,43 @@ <!--This file is generated-->

[![Build][build-badge]][build]
[![Coverage][coverage-badge]][coverage]
[![Downloads][downloads-badge]][downloads]
[![Size][size-badge]][size]
[![Sponsors][sponsors-badge]][collective]
[![Backers][backers-badge]][collective]
[![Chat][chat-badge]][chat]
[![Build][badge-build-image]][badge-build-url]
[![Coverage][badge-coverage-image]][badge-coverage-url]
[![Downloads][badge-downloads-image]][badge-downloads-url]
[![Size][badge-size-image]][badge-size-url]
[![Sponsors][badge-funding-sponsors-image]][badge-funding-url]
[![Backers][badge-funding-backers-image]][badge-funding-url]
[![Chat][badge-chat-image]][badge-chat-url]
[`remark-lint`][mono] rule to warn when emphasis markers are inconsistent.
[`remark-lint`][github-remark-lint] rule to warn when emphasis markers are inconsistent.
## Contents
* [What is this?](#what-is-this)
* [When should I use this?](#when-should-i-use-this)
* [Presets](#presets)
* [Install](#install)
* [Use](#use)
* [API](#api)
* [`unified().use(remarkLintEmphasisMarker[, config])`](#unifieduseremarklintemphasismarker-config)
* [Recommendation](#recommendation)
* [Fix](#fix)
* [Examples](#examples)
* [Compatibility](#compatibility)
* [Contribute](#contribute)
* [License](#license)
* [What is this?](#what-is-this)
* [When should I use this?](#when-should-i-use-this)
* [Presets](#presets)
* [Install](#install)
* [Use](#use)
* [API](#api)
* [`unified().use(remarkLintEmphasisMarker[, options])`](#unifieduseremarklintemphasismarker-options)
* [`Marker`](#marker)
* [`Options`](#options)
* [Recommendation](#recommendation)
* [Fix](#fix)
* [Examples](#examples)
* [Compatibility](#compatibility)
* [Contribute](#contribute)
* [License](#license)
## What is this?
This package is a [unified][] ([remark][]) plugin, specifically a `remark-lint`
rule.
Lint rules check markdown code style.
This package checks the style of emphasis markers.
## When should I use this?
You can use this package to check that emphasis markers are consistent.
You can use this package to check that emphasis is consistent.
## Presets
This rule is included in the following presets:
This plugin is included in the following presets:
| Preset | Setting |
| Preset | Options |
| - | - |

@@ -53,4 +53,5 @@ | [`remark-preset-lint-consistent`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-preset-lint-consistent) | `'consistent'` |

This package is [ESM only][esm].
In Node.js (version 12.20+, 14.14+, or 16.0+), install with [npm][]:
This package is [ESM only][github-gist-esm].
In Node.js (version 16+),
install with [npm][npm-install]:

@@ -61,13 +62,13 @@ ```sh

In Deno with [`esm.sh`][esmsh]:
In Deno with [`esm.sh`][esm-sh]:
```js
import remarkLintEmphasisMarker from 'https://esm.sh/remark-lint-emphasis-marker@3'
import remarkLintEmphasisMarker from 'https://esm.sh/remark-lint-emphasis-marker@4'
```
In browsers with [`esm.sh`][esmsh]:
In browsers with [`esm.sh`][esm-sh]:
```html
<script type="module">
import remarkLintEmphasisMarker from 'https://esm.sh/remark-lint-emphasis-marker@3?bundle'
import remarkLintEmphasisMarker from 'https://esm.sh/remark-lint-emphasis-marker@4?bundle'
</script>

@@ -81,18 +82,20 @@ ```

```js
import remarkLint from 'remark-lint'
import remarkLintEmphasisMarker from 'remark-lint-emphasis-marker'
import remarkParse from 'remark-parse'
import remarkStringify from 'remark-stringify'
import {read} from 'to-vfile'
import {unified} from 'unified'
import {reporter} from 'vfile-reporter'
import {remark} from 'remark'
import remarkLint from 'remark-lint'
import remarkLintEmphasisMarker from 'remark-lint-emphasis-marker'
main()
const file = await read('example.md')
async function main() {
const file = await remark()
.use(remarkLint)
.use(remarkLintEmphasisMarker)
.process(await read('example.md'))
await unified()
.use(remarkParse)
.use(remarkLint)
.use(remarkLintEmphasisMarker)
.use(remarkStringify)
.process(file)
console.error(reporter(file))
}
console.error(reporter(file))
```

@@ -103,3 +106,3 @@

```sh
remark --use remark-lint --use remark-lint-emphasis-marker example.md
remark --frail --use remark-lint --use remark-lint-emphasis-marker .
```

@@ -125,40 +128,67 @@

This package exports no identifiers.
The default export is `remarkLintEmphasisMarker`.
It exports the [TypeScript][typescript] types
[`Marker`][api-marker] and
[`Options`][api-options].
The default export is
[`remarkLintEmphasisMarker`][api-remark-lint-emphasis-marker].
### `unified().use(remarkLintEmphasisMarker[, config])`
### `unified().use(remarkLintEmphasisMarker[, options])`
This rule supports standard configuration that all remark lint rules accept
(such as `false` to turn it off or `[1, options]` to configure it).
Warn when emphasis markers are inconsistent.
The following options (default: `'consistent'`) are accepted:
###### Parameters
* `'*'`
— prefer asterisks
* `'_'`
— prefer underscores
* `'consistent'`
— detect the first used style and warn when further emphasis differs
* `options` ([`Options`][api-options], default: `'consistent'`)
— preferred style or whether to detect the first style and warn for
further differences
###### Returns
Transform ([`Transformer` from `unified`][github-unified-transformer]).
### `Marker`
Marker (TypeScript type).
###### Type
```ts
type Marker = '*' | '_'
```
### `Options`
Configuration (TypeScript type).
###### Type
```ts
type Options = Marker | 'consistent'
```
## Recommendation
Underscores and asterisks work slightly different: asterisks can form
emphasis in more cases than underscores.
Because underscores are sometimes used to represent normal underscores inside
words, there are extra rules supporting that.
Whether asterisks or underscores are used affects how and whether emphasis
works.
Underscores are sometimes used to represent normal underscores inside words,
so there are extra rules in markdown to support that.
Asterisks are not used in natural language,
so they don’t need these rules,
and thus can form emphasis in more cases.
Asterisks can also be used as the marker of more constructs than underscores:
lists.
Due to having simpler parsing rules, looking more like syntax, and that they
can be used for more constructs, it’s recommended to prefer asterisks.
Due to having simpler parsing rules,
looking more like syntax,
and that they can be used for more constructs,
it’s recommended to prefer asterisks.
## Fix
[`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify)
formats emphasis with asterisks by default.
Pass
[`emphasis: '_'`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionsemphasis)
to always use underscores.
[`remark-stringify`][github-remark-stringify] formats emphasis with
asterisks by default.
Pass `emphasis: '_'` to always use underscores.
## Examples
##### `ok.md`
##### `ok-asterisk.md`

@@ -170,3 +200,3 @@ When configured with `'*'`.

```markdown
*foo*
*Mercury*.
```

@@ -178,3 +208,3 @@

##### `not-ok.md`
##### `not-ok-asterisk.md`

@@ -186,3 +216,3 @@ When configured with `'*'`.

```markdown
_foo_
_Mercury_.
```

@@ -193,6 +223,6 @@

```text
1:1-1:6: Emphasis should use `*` as a marker
1:1-1:10: Unexpected emphasis marker `_`, expected `*`
```
##### `ok.md`
##### `ok-underscore.md`

@@ -204,3 +234,3 @@ When configured with `'_'`.

```markdown
_foo_
_Mercury_.
```

@@ -212,3 +242,3 @@

##### `not-ok.md`
##### `not-ok-underscore.md`

@@ -220,3 +250,3 @@ When configured with `'_'`.

```markdown
*foo*
*Mercury*.
```

@@ -227,6 +257,6 @@

```text
1:1-1:6: Emphasis should use `_` as a marker
1:1-1:10: Unexpected emphasis marker `*`, expected `_`
```
##### `not-ok.md`
##### `not-ok-consistent.md`

@@ -236,4 +266,3 @@ ###### In

```markdown
*foo*
_bar_
*Mercury* and _Venus_.
```

@@ -244,3 +273,3 @@

```text
2:1-2:6: Emphasis should use `*` as a marker
1:15-1:22: Unexpected emphasis marker `_`, expected `*`
```

@@ -250,3 +279,3 @@

When configured with `'💩'`.
When configured with `'🌍'`.

@@ -256,3 +285,3 @@ ###### Out

```text
1:1: Incorrect emphasis marker `💩`: use either `'consistent'`, `'*'`, or `'_'`
1:1: Unexpected value `🌍` for `options`, expected `'*'`, `'_'`, or `'consistent'`
```

@@ -262,14 +291,18 @@

Projects maintained by the unified collective are compatible with all maintained
Projects maintained by the unified collective are compatible with maintained
versions of Node.js.
As of now, that is Node.js 12.20+, 14.14+, and 16.0+.
Our projects sometimes work with older versions, but this is not guaranteed.
When we cut a new major release, we drop support for unmaintained versions of
Node.
This means we try to keep the current release line,
`remark-lint-emphasis-marker@4`,
compatible with Node.js 16.
## Contribute
See [`contributing.md`][contributing] in [`remarkjs/.github`][health] for ways
See [`contributing.md`][github-dotfiles-contributing] in [`remarkjs/.github`][github-dotfiles-health] for ways
to get started.
See [`support.md`][support] for ways to get help.
See [`support.md`][github-dotfiles-support] for ways to get help.
This project has a [code of conduct][coc].
This project has a [code of conduct][github-dotfiles-coc].
By interacting with this repository, organization, or community you agree to

@@ -280,52 +313,60 @@ abide by its terms.

[MIT][license] © [Titus Wormer][author]
[MIT][file-license] © [Titus Wormer][author]
[build-badge]: https://github.com/remarkjs/remark-lint/workflows/main/badge.svg
[api-marker]: #marker
[build]: https://github.com/remarkjs/remark-lint/actions
[api-options]: #options
[coverage-badge]: https://img.shields.io/codecov/c/github/remarkjs/remark-lint.svg
[api-remark-lint-emphasis-marker]: #unifieduseremarklintemphasismarker-options
[coverage]: https://codecov.io/github/remarkjs/remark-lint
[author]: https://wooorm.com
[downloads-badge]: https://img.shields.io/npm/dm/remark-lint-emphasis-marker.svg
[badge-build-image]: https://github.com/remarkjs/remark-lint/workflows/main/badge.svg
[downloads]: https://www.npmjs.com/package/remark-lint-emphasis-marker
[badge-build-url]: https://github.com/remarkjs/remark-lint/actions
[size-badge]: https://img.shields.io/bundlephobia/minzip/remark-lint-emphasis-marker.svg
[badge-chat-image]: https://img.shields.io/badge/chat-discussions-success.svg
[size]: https://bundlephobia.com/result?p=remark-lint-emphasis-marker
[badge-chat-url]: https://github.com/remarkjs/remark/discussions
[sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg
[badge-coverage-image]: https://img.shields.io/codecov/c/github/remarkjs/remark-lint.svg
[backers-badge]: https://opencollective.com/unified/backers/badge.svg
[badge-coverage-url]: https://codecov.io/github/remarkjs/remark-lint
[collective]: https://opencollective.com/unified
[badge-downloads-image]: https://img.shields.io/npm/dm/remark-lint-emphasis-marker.svg
[chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg
[badge-downloads-url]: https://www.npmjs.com/package/remark-lint-emphasis-marker
[chat]: https://github.com/remarkjs/remark/discussions
[badge-funding-backers-image]: https://opencollective.com/unified/backers/badge.svg
[unified]: https://github.com/unifiedjs/unified
[badge-funding-sponsors-image]: https://opencollective.com/unified/sponsors/badge.svg
[remark]: https://github.com/remarkjs/remark
[badge-funding-url]: https://opencollective.com/unified
[mono]: https://github.com/remarkjs/remark-lint
[badge-size-image]: https://img.shields.io/bundlejs/size/remark-lint-emphasis-marker
[esm]: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c
[badge-size-url]: https://bundlejs.com/?q=remark-lint-emphasis-marker
[esmsh]: https://esm.sh
[esm-sh]: https://esm.sh
[npm]: https://docs.npmjs.com/cli/install
[file-license]: https://github.com/remarkjs/remark-lint/blob/main/license
[health]: https://github.com/remarkjs/.github
[github-dotfiles-coc]: https://github.com/remarkjs/.github/blob/main/code-of-conduct.md
[contributing]: https://github.com/remarkjs/.github/blob/main/contributing.md
[github-dotfiles-contributing]: https://github.com/remarkjs/.github/blob/main/contributing.md
[support]: https://github.com/remarkjs/.github/blob/main/support.md
[github-dotfiles-health]: https://github.com/remarkjs/.github
[coc]: https://github.com/remarkjs/.github/blob/main/code-of-conduct.md
[github-dotfiles-support]: https://github.com/remarkjs/.github/blob/main/support.md
[license]: https://github.com/remarkjs/remark-lint/blob/main/license
[github-gist-esm]: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c
[author]: https://wooorm.com
[github-remark-lint]: https://github.com/remarkjs/remark-lint
[github-remark-stringify]: https://github.com/remarkjs/remark/tree/main/packages/remark-stringify
[github-unified-transformer]: https://github.com/unifiedjs/unified#transformer
[npm-install]: https://docs.npmjs.com/cli/install
[typescript]: https://www.typescriptlang.org
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc