New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

remark-lint-definition-case

Package Overview
Dependencies
Maintainers
3
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

remark-lint-definition-case - npm Package Compare versions

Comparing version 3.1.2 to 4.0.0

index.d.ts.map

14

index.d.ts

@@ -1,7 +0,7 @@

export default remarkLintDefinitionCase
export type Root = import('mdast').Root
declare const remarkLintDefinitionCase: import('unified').Plugin<
void[] | [unknown],
import('mdast').Root,
import('mdast').Root
>
export default remarkLintDefinitionCase;
export type Root = import('mdast').Root;
declare const remarkLintDefinitionCase: {
(config?: unknown): ((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 definition labels are not lowercase.
*
* ## What is this?
*
* This package checks the case of definition labels.
*
* ## When should I use this?
*
* You can use this package to check that the labels used in definitions
* are lowercase.
* You can use this package to check that definition labels are consistent.
*
* ## API
*
* ### `unified().use(remarkLintDefinitionCase)`
*
* Warn when definition labels are not lowercase.
*
* ###### Parameters
*
* There are no options.
*
* ###### Returns
*
* Transform ([`Transformer` from `unified`][github-unified-transformer]).
*
* ## Recommendation
*
* Definitions and references are matched together regardless of casing.
* Using uppercase in labels might incorrectly indicate that casing is of
* importance.
* Using uppercase in definition labels might incorrectly indicate that casing
* is of importance.
* Due to this, it’s recommended to use lowercase and turn this rule on.
*
* [api-remark-lint-definition-case]: #unifieduseremarklintdefinitioncase
* [github-unified-transformer]: https://github.com/unifiedjs/unified#transformer
*
* @module definition-case
* @summary
* remark-lint rule to warn when definition labels are not lowercase.
* @author Titus Wormer
* @copyright 2015 Titus Wormer
* @license MIT
*
* @example
* {"name": "ok.md"}
*
* [example]: http://example.com "Example Domain"
* [mercury]: http://example.com "Mercury"
*
* @example
* {"name": "not-ok.md", "label": "input"}
* {"label": "input", "name": "not-ok.md"}
*
* [Example]: http://example.com "Example Domain"
* [Mercury]: http://example.com "Mercury"
* @example
* {"label": "output", "name": "not-ok.md"}
*
* 1:1-1:40: Unexpected uppercase characters in definition label, expected lowercase
*
* @example
* {"name": "not-ok.md", "label": "output"}
* {"gfm": true, "label": "input", "name": "gfm.md"}
*
* 1:1-1:47: Do not use uppercase characters in definition labels
* [^Mercury]:
* **Mercury** is the first planet from the Sun and the smallest
* in the Solar System.
* @example
* {"gfm": true, "label": "output", "name": "gfm.md"}
*
* 1:1-3:25: Unexpected uppercase characters in footnote definition label, expected lowercase
*/

@@ -44,8 +71,6 @@

import {phrasing} from 'mdast-util-phrasing'
import {lintRule} from 'unified-lint-rule'
import {visit} from 'unist-util-visit'
import {pointStart, pointEnd} from 'unist-util-position'
import {SKIP, visitParents} from 'unist-util-visit-parents'
const label = /^\s*\[((?:\\[\s\S]|[^[\]])+)]/
const remarkLintDefinitionCase = lintRule(

@@ -56,21 +81,27 @@ {

},
/** @type {import('unified-lint-rule').Rule<Root, void>} */
(tree, file) => {
const value = String(file)
/**
* @param {Root} tree
* Tree.
* @returns {undefined}
* Nothing.
*/
function (tree, file) {
visitParents(tree, function (node, parents) {
// Do not walk into phrasing.
if (phrasing(node)) {
return SKIP
}
visit(tree, (node) => {
if (node.type === 'definition' || node.type === 'footnoteDefinition') {
const start = pointStart(node).offset
const end = pointEnd(node).offset
if (typeof start === 'number' && typeof end === 'number') {
const match = value.slice(start, end).match(label)
if (match && match[1] !== match[1].toLowerCase()) {
file.message(
'Do not use uppercase characters in definition labels',
node
)
}
}
if (
(node.type === 'definition' || node.type === 'footnoteDefinition') &&
node.position &&
node.label &&
node.label !== node.label.toLowerCase()
) {
file.message(
'Unexpected uppercase characters in ' +
(node.type === 'definition' ? '' : 'footnote ') +
'definition label, expected lowercase',
{ancestors: [...parents, node], place: node.position}
)
}

@@ -77,0 +108,0 @@ })

{
"name": "remark-lint-definition-case",
"version": "3.1.2",
"version": "4.0.0",
"description": "remark-lint rule to warn when definition labels are not lowercase",
"license": "MIT",
"keywords": [
"case",
"definition",
"lint",
"remark",
"lint",
"rule",
"remark-lint",
"remark-lint-rule",
"definition",
"case"
"rule"
],
"repository": {
"type": "git",
"url": "https://github.com/remarkjs/remark-lint",
"directory": "packages/remark-lint-definition-case"
},
"repository": "https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-definition-case",
"bugs": "https://github.com/remarkjs/remark-lint/issues",

@@ -26,27 +23,31 @@ "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",
"mdast-util-phrasing": "^4.0.0",
"unified-lint-rule": "^3.0.0",
"unist-util-visit-parents": "^6.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"
}
}
}

@@ -5,43 +5,40 @@ <!--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 definition labels are not lowercase.
[`remark-lint`][github-remark-lint] rule to warn when definition labels are not lowercase.
## 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(remarkLintDefinitionCase[, config])`](#unifieduseremarklintdefinitioncase-config)
* [Recommendation](#recommendation)
* [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(remarkLintDefinitionCase)`](#unifieduseremarklintdefinitioncase)
* [Recommendation](#recommendation)
* [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 case of definition labels.
## When should I use this?
You can use this package to check that the labels used in definitions
are lowercase.
You can use this package to check that definition labels are consistent.
## Presets
This rule is included in the following presets:
This plugin is included in the following presets:
| Preset | Setting |
| Preset | Options |
| - | - |

@@ -52,4 +49,5 @@ | [`remark-preset-lint-markdown-style-guide`](https://github.com/remarkjs/remark-lint/tree/main/packages/remark-preset-lint-markdown-style-guide) | |

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]:

@@ -60,13 +58,13 @@ ```sh

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

@@ -80,18 +78,20 @@ ```

```js
import remarkLint from 'remark-lint'
import remarkLintDefinitionCase from 'remark-lint-definition-case'
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 remarkLintDefinitionCase from 'remark-lint-definition-case'
main()
const file = await read('example.md')
async function main() {
const file = await remark()
.use(remarkLint)
.use(remarkLintDefinitionCase)
.process(await read('example.md'))
await unified()
.use(remarkParse)
.use(remarkLint)
.use(remarkLintDefinitionCase)
.use(remarkStringify)
.process(file)
console.error(reporter(file))
}
console.error(reporter(file))
```

@@ -102,3 +102,3 @@

```sh
remark --use remark-lint --use remark-lint-definition-case example.md
remark --frail --use remark-lint --use remark-lint-definition-case .
```

@@ -124,16 +124,23 @@

This package exports no identifiers.
The default export is `remarkLintDefinitionCase`.
It exports no additional [TypeScript][typescript] types.
The default export is
[`remarkLintDefinitionCase`][api-remark-lint-definition-case].
### `unified().use(remarkLintDefinitionCase[, config])`
### `unified().use(remarkLintDefinitionCase)`
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 definition labels are not lowercase.
###### Parameters
There are no options.
###### Returns
Transform ([`Transformer` from `unified`][github-unified-transformer]).
## Recommendation
Definitions and references are matched together regardless of casing.
Using uppercase in labels might incorrectly indicate that casing is of
importance.
Using uppercase in definition labels might incorrectly indicate that casing
is of importance.
Due to this, it’s recommended to use lowercase and turn this rule on.

@@ -148,3 +155,3 @@

```markdown
[example]: http://example.com "Example Domain"
[mercury]: http://example.com "Mercury"
```

@@ -161,3 +168,3 @@

```markdown
[Example]: http://example.com "Example Domain"
[Mercury]: http://example.com "Mercury"
```

@@ -168,19 +175,42 @@

```text
1:1-1:47: Do not use uppercase characters in definition labels
1:1-1:40: Unexpected uppercase characters in definition label, expected lowercase
```
##### `gfm.md`
###### In
> 👉 **Note**: this example uses
> GFM ([`remark-gfm`][github-remark-gfm]).
```markdown
[^Mercury]:
**Mercury** is the first planet from the Sun and the smallest
in the Solar System.
```
###### Out
```text
1:1-3:25: Unexpected uppercase characters in footnote definition label, expected lowercase
```
## Compatibility
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-definition-case@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

@@ -191,52 +221,56 @@ 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-remark-lint-definition-case]: #unifieduseremarklintdefinitioncase
[build]: https://github.com/remarkjs/remark-lint/actions
[author]: https://wooorm.com
[coverage-badge]: https://img.shields.io/codecov/c/github/remarkjs/remark-lint.svg
[badge-build-image]: https://github.com/remarkjs/remark-lint/workflows/main/badge.svg
[coverage]: https://codecov.io/github/remarkjs/remark-lint
[badge-build-url]: https://github.com/remarkjs/remark-lint/actions
[downloads-badge]: https://img.shields.io/npm/dm/remark-lint-definition-case.svg
[badge-chat-image]: https://img.shields.io/badge/chat-discussions-success.svg
[downloads]: https://www.npmjs.com/package/remark-lint-definition-case
[badge-chat-url]: https://github.com/remarkjs/remark/discussions
[size-badge]: https://img.shields.io/bundlephobia/minzip/remark-lint-definition-case.svg
[badge-coverage-image]: https://img.shields.io/codecov/c/github/remarkjs/remark-lint.svg
[size]: https://bundlephobia.com/result?p=remark-lint-definition-case
[badge-coverage-url]: https://codecov.io/github/remarkjs/remark-lint
[sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg
[badge-downloads-image]: https://img.shields.io/npm/dm/remark-lint-definition-case.svg
[backers-badge]: https://opencollective.com/unified/backers/badge.svg
[badge-downloads-url]: https://www.npmjs.com/package/remark-lint-definition-case
[collective]: https://opencollective.com/unified
[badge-funding-backers-image]: https://opencollective.com/unified/backers/badge.svg
[chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg
[badge-funding-sponsors-image]: https://opencollective.com/unified/sponsors/badge.svg
[chat]: https://github.com/remarkjs/remark/discussions
[badge-funding-url]: https://opencollective.com/unified
[unified]: https://github.com/unifiedjs/unified
[badge-size-image]: https://img.shields.io/bundlejs/size/remark-lint-definition-case
[remark]: https://github.com/remarkjs/remark
[badge-size-url]: https://bundlejs.com/?q=remark-lint-definition-case
[mono]: https://github.com/remarkjs/remark-lint
[esm-sh]: https://esm.sh
[esm]: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c
[file-license]: https://github.com/remarkjs/remark-lint/blob/main/license
[esmsh]: https://esm.sh
[github-dotfiles-coc]: https://github.com/remarkjs/.github/blob/main/code-of-conduct.md
[npm]: https://docs.npmjs.com/cli/install
[github-dotfiles-contributing]: https://github.com/remarkjs/.github/blob/main/contributing.md
[health]: https://github.com/remarkjs/.github
[github-dotfiles-health]: https://github.com/remarkjs/.github
[contributing]: https://github.com/remarkjs/.github/blob/main/contributing.md
[github-dotfiles-support]: https://github.com/remarkjs/.github/blob/main/support.md
[support]: https://github.com/remarkjs/.github/blob/main/support.md
[github-gist-esm]: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c
[coc]: https://github.com/remarkjs/.github/blob/main/code-of-conduct.md
[github-remark-gfm]: https://github.com/remarkjs/remark-gfm
[license]: https://github.com/remarkjs/remark-lint/blob/main/license
[github-remark-lint]: https://github.com/remarkjs/remark-lint
[author]: https://wooorm.com
[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