Project: syntax-tree/nlcst-is-literal

Package: nlcst-is-literal@2.1.0

  1. Dependents: 0
  2. nlcst utility to check whether a node is meant literally
  1. util 145
  2. utility 141
  3. unist 132
  4. nlcst 15
  5. nlcst-util 9
  6. literal 4
  7. word 2


Build Coverage Downloads Size Sponsors Backers Chat

nlcst utility to check if a node is meant literally.


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”.


This package is ESM only. In Node.js (version 16+), install with npm:

npm install nlcst-is-literal

In Deno with esm.sh:

import {isLiteral} from 'https://esm.sh/nlcst-is-literal@3'

In browsers with esm.sh:

<script type="module">
  import {isLiteral} from 'https://esm.sh/nlcst-is-literal@3?bundle'


Say our document example.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)) {

…now running node example.js yields:



This package exports the identifier isLiteral. 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:


Whether the child is a literal (boolean).


This package is fully typed with TypeScript. It exports no additional types.


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.


See contributing.md in syntax-tree/.github for ways to get started. See support.md for ways to get help.

This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.


MIT © Titus Wormer