Socket
Socket
Sign inDemoInstall

remark-lint-ordered-list-marker-value

Package Overview
Dependencies
Maintainers
2
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

remark-lint-ordered-list-marker-value - npm Package Compare versions

Comparing version 2.0.1 to 3.0.0

index.d.ts

144

index.js

@@ -30,3 +30,4 @@ /**

*
* @example {"name": "ok.md"}
* @example
* {"name": "ok.md"}
*

@@ -50,3 +51,4 @@ * The default value is `ordered`, so unless changed, the below

*
* @example {"name": "ok.md", "setting": "one"}
* @example
* {"name": "ok.md", "setting": "one"}
*

@@ -63,3 +65,4 @@ * 1. Foo

*
* @example {"name": "ok.md", "setting": "single"}
* @example
* {"name": "ok.md", "setting": "single"}
*

@@ -82,3 +85,4 @@ * 1. Foo

*
* @example {"name": "ok.md", "setting": "ordered"}
* @example
* {"name": "ok.md", "setting": "ordered"}
*

@@ -101,3 +105,4 @@ * 1. Foo

*
* @example {"name": "not-ok.md", "setting": "one", "label": "input"}
* @example
* {"name": "not-ok.md", "setting": "one", "label": "input"}
*

@@ -107,7 +112,9 @@ * 1. Foo

*
* @example {"name": "not-ok.md", "setting": "one", "label": "output"}
* @example
* {"name": "not-ok.md", "setting": "one", "label": "output"}
*
* 2:1-2:8: Marker should be `1`, was `2`
*
* @example {"name": "also-not-ok.md", "setting": "one", "label": "input"}
* @example
* {"name": "also-not-ok.md", "setting": "one", "label": "input"}
*

@@ -117,7 +124,9 @@ * 2. Foo

*
* @example {"name": "also-not-ok.md", "setting": "one", "label": "output"}
* @example
* {"name": "also-not-ok.md", "setting": "one", "label": "output"}
*
* 1:1-1:8: Marker should be `1`, was `2`
*
* @example {"name": "not-ok.md", "setting": "ordered", "label": "input"}
* @example
* {"name": "not-ok.md", "setting": "ordered", "label": "input"}
*

@@ -127,77 +136,80 @@ * 1. Foo

*
* @example {"name": "not-ok.md", "setting": "ordered", "label": "output"}
* @example
* {"name": "not-ok.md", "setting": "ordered", "label": "output"}
*
* 2:1-2:8: Marker should be `2`, was `1`
*
* @example {"name": "not-ok.md", "setting": "💩", "label": "output", "config": {"positionless": true}}
* @example
* {"name": "not-ok.md", "setting": "💩", "label": "output", "positionless": true}
*
* 1:1: Incorrect ordered list item marker value `💩`: use either `'ordered'` or `'one'`
* 1:1: Incorrect ordered list item marker value `💩`: use either `'ordered'`, `'one'`, or `'single'`
*/
'use strict'
/**
* @typedef {import('mdast').Root} Root
* @typedef {'single'|'one'|'ordered'} Options
*/
var rule = require('unified-lint-rule')
var visit = require('unist-util-visit')
var position = require('unist-util-position')
var generated = require('unist-util-generated')
import {lintRule} from 'unified-lint-rule'
import {visit} from 'unist-util-visit'
import {pointStart} from 'unist-util-position'
import {generated} from 'unist-util-generated'
module.exports = rule(
const remarkLintOrderedListMarkerValue = lintRule(
'remark-lint:ordered-list-marker-value',
orderedListMarkerValue
)
/** @type {import('unified-lint-rule').Rule<Root, Options>} */
(tree, file, option = 'ordered') => {
const value = String(file)
var start = position.start
if (option !== 'ordered' && option !== 'one' && option !== 'single') {
file.fail(
'Incorrect ordered list item marker value `' +
option +
"`: use either `'ordered'`, `'one'`, or `'single'`"
)
}
var styles = {ordered: true, single: true, one: true}
visit(tree, 'list', (node) => {
if (!node.ordered) return
function orderedListMarkerValue(tree, file, option) {
var contents = String(file)
var preferred = typeof option === 'string' ? option : 'ordered'
let expected =
option === 'one' || node.start === null || node.start === undefined
? 1
: node.start
let index = -1
if (styles[preferred] !== true) {
file.fail(
'Incorrect ordered list item marker value `' +
preferred +
"`: use either `'ordered'` or `'one'`"
)
}
while (++index < node.children.length) {
const child = node.children[index]
visit(tree, 'list', visitor)
// Ignore generated nodes, first items.
if (generated(child) || (index === 0 && option !== 'one')) {
continue
}
function visitor(node) {
var children = node.children
var expected = preferred === 'one' ? 1 : node.start == null ? 1 : node.start
var length = node.ordered ? children.length : 0
var index = -1
var child
var marker
// Increase the expected line number when in `ordered` mode.
if (option === 'ordered') {
expected++
}
while (++index < length) {
child = children[index]
const marker = Number(
value
.slice(
pointStart(child).offset,
pointStart(child.children[0]).offset
)
.replace(/[\s.)]/g, '')
.replace(/\[[x ]?]\s*$/i, '')
)
// Ignore generated nodes, first items.
if (generated(child) || (index === 0 && preferred !== 'one')) {
continue
if (marker !== expected) {
file.message(
'Marker should be `' + expected + '`, was `' + marker + '`',
child
)
}
}
})
}
)
// Increase the expected line number when in `ordered` mode.
if (preferred === 'ordered') {
expected++
}
marker = Number(
contents
.slice(start(child).offset, start(child.children[0]).offset)
.replace(/[\s.)]/g, '')
.replace(/\[[x ]?]\s*$/i, '')
)
if (marker !== expected) {
file.message(
'Marker should be `' + expected + '`, was `' + marker + '`',
child
)
}
}
}
}
export default remarkLintOrderedListMarkerValue
{
"name": "remark-lint-ordered-list-marker-value",
"version": "2.0.1",
"version": "3.0.0",
"description": "remark-lint rule to warn when the marker value of ordered lists violates a given style",

@@ -25,12 +25,28 @@ "license": "MIT",

],
"sideEffects": false,
"type": "module",
"main": "index.js",
"types": "index.d.ts",
"files": [
"index.d.ts",
"index.js"
],
"dependencies": {
"unified-lint-rule": "^1.0.0",
"unist-util-generated": "^1.1.0",
"unist-util-position": "^3.0.0",
"unist-util-visit": "^2.0.0"
"@types/mdast": "^3.0.0",
"unified": "^10.0.0",
"unified-lint-rule": "^2.0.0",
"unist-util-generated": "^2.0.0",
"unist-util-position": "^4.0.0",
"unist-util-visit": "^4.0.0"
},
"xo": false
"scripts": {
"build": "rimraf \"*.d.ts\" && tsc && type-coverage"
},
"xo": false,
"typeCoverage": {
"atLeast": 100,
"detail": true,
"strict": true,
"ignoreCatch": true
}
}

@@ -209,3 +209,3 @@ <!--This file is generated-->

```text
1:1: Incorrect ordered list item marker value `💩`: use either `'ordered'` or `'one'`
1:1: Incorrect ordered list item marker value `💩`: use either `'ordered'`, `'one'`, or `'single'`
```

@@ -215,2 +215,5 @@

This package is [ESM only][esm]:
Node 12+ is needed to use it and it must be `imported`ed instead of `required`d.
[npm][]:

@@ -222,2 +225,5 @@

This package exports no identifiers.
The default export is `remarkLintOrderedListMarkerValue`.
## Use

@@ -249,10 +255,13 @@

```diff
var remark = require('remark')
var report = require('vfile-reporter')
import {remark} from 'remark'
import {reporter} from 'vfile-reporter'
import remarkLint from 'remark-lint'
import remarkLintOrderedListMarkerValue from 'remark-lint-ordered-list-marker-value'
remark()
.use(require('remark-lint'))
+ .use(require('remark-lint-ordered-list-marker-value'))
.process('_Emphasis_ and **importance**', function (err, file) {
console.error(report(err || file))
.use(remarkLint)
+ .use(remarkLintOrderedListMarkerValue)
.process('_Emphasis_ and **importance**')
.then((file) => {
console.error(reporter(file))
})

@@ -275,5 +284,5 @@ ```

[build-badge]: https://img.shields.io/travis/remarkjs/remark-lint/main.svg
[build-badge]: https://github.com/remarkjs/remark-lint/workflows/main/badge.svg
[build]: https://travis-ci.org/remarkjs/remark-lint
[build]: https://github.com/remarkjs/remark-lint/actions

@@ -298,6 +307,8 @@ [coverage-badge]: https://img.shields.io/codecov/c/github/remarkjs/remark-lint.svg

[chat-badge]: https://img.shields.io/badge/chat-spectrum.svg
[chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg
[chat]: https://spectrum.chat/unified/remark
[chat]: https://github.com/remarkjs/remark/discussions
[esm]: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c
[npm]: https://docs.npmjs.com/cli/install

@@ -304,0 +315,0 @@

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