nlcst-is-literal
!Buildbuild-badgebuild
!Coveragecoverage-badgecoverage
!Downloadsdownloads-badgedownloads
!Sizesize-badgesize
!Sponsorssponsors-badgecollective
!Backersbackers-badgecollective
!Chatchat-badgechatnlcst utility to check if a node is meant literally.
Contents
* [`isLiteral(parent, index|child)`](#isliteralparent-indexchild)
What is this?
This utility can check if a node is meant literally.When should I use this?
This package is a tiny utility that helps when dealing with words. It’s useful if a tool wants to exclude values that are possibly void of meaning. For example, a spell-checker could exclude these literal words, thus not warning about “monsieur”.Install
This package is ESM onlyesm. In Node.js (version 16+), install with npm:npm install nlcst-is-literal
In Deno with
esm.sh
esmsh:import {isLiteral} from 'https://esm.sh/nlcst-is-literal@3'
In browsers with
esm.sh
esmsh:<script type="module">
import {isLiteral} from 'https://esm.sh/nlcst-is-literal@3?bundle'
</script>
Use
Say our documentexample.txt
contains:The word “foo” is meant as a literal.
The word «bar» is meant as a literal.
The word (baz) is meant as a literal.
The word, qux, is meant as a literal.
The word — quux — is meant as a literal.
…and our module
example.js
looks as follows:import {read} from 'to-vfile'
import {ParseEnglish} from 'parse-english'
import {visit} from 'unist-util-visit'
import {toString} from 'nlcst-to-string'
import {isLiteral} from 'nlcst-is-literal'
const file = await read('example.txt')
const tree = new ParseEnglish().parse(String(file))
visit(tree, 'WordNode', function (node, index, parent) {
if (isLiteral(parent, index)) {
console.log(toString(node))
}
})
…now running
node example.js
yields:foo
bar
baz
qux
quux
API
This package exports the identifierisLiteral
api-is-literal.
There is no default export.isLiteral(parent, index|child)
Check if the child in parent
at index
is enclosed by matching delimiters.For example,
foo
is literal in the following samples:Foo - is meant as a literal.
Meant as a literal is - foo.
The word “foo” is meant as a literal.
Parameters
— parent node
index
(number
)
— index of child in parent
— child node of parent
Returns
Whether the child is a literal (boolean
).Types
This package is fully typed with TypeScript. It exports no additional types.Compatibility
Projects maintained by the unified collective are compatible with maintained versions of Node.js.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,
nlcst-is-literal@^3
,
compatible with Node.js 16.Related
— normalize a word for easier comparison
— search for patterns
Contribute
Seecontributing.md
contributing in syntax-tree/.github
health for
ways to get started.
See support.md
support for ways to get help.This project has a code of conductcoc. By interacting with this repository, organization, or community you agree to abide by its terms.