Necessary Package Manager

    nlcst-emoji-modifier
    TypeScript icon, indicating that this package has built-in type declarations

    5.2.0 • Public • Published

    nlcst-emoji-modifier

    Build Coverage Downloads Size Sponsors Backers Chat

    nlcst utility to classify emoji and gemoji shortcodes as EmoticonNodes.

    Contents

    What is this?

    This utility searches for emoji (👍) and gemoji shortcodes (:+1:) and turns them into separate nodes.

    When should I use this?

    This package is a tiny utility that helps when dealing with emoji and gemoji in natural language. The plugin retext-emoji wraps this utility and others at a higher-level (easier) abstraction.

    Install

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

    npm install nlcst-emoji-modifier

    In Deno with esm.sh:

    import {emojiModifier} from 'https://esm.sh/nlcst-emoji-modifier@5'

    In browsers with esm.sh:

    <script type="module">
      import {emojiModifier} from 'https://esm.sh/nlcst-emoji-modifier@5?bundle'
    </script>

    Use

    import {emojiModifier} from 'nlcst-emoji-modifier'
    import {inspect} from 'unist-util-inspect'
    import {ParseEnglish} from 'parse-english'
    
    const english = new ParseEnglish()
    english.tokenizeSentencePlugins.unshift(emojiModifier)
    
    console.log(inspect(english.parse('It’s raining :cat:s and :dog:s.')))

    Yields:

    RootNode[1] (1:1-1:32, 0-31)
    └─ ParagraphNode[1] (1:1-1:32, 0-31)
       └─ SentenceNode[11] (1:1-1:32, 0-31)
          ├─ WordNode[3] (1:1-1:5, 0-4)
          │  ├─ TextNode: "It" (1:1-1:3, 0-2)
          │  ├─ PunctuationNode: "’" (1:3-1:4, 2-3)
          │  └─ TextNode: "s" (1:4-1:5, 3-4)
          ├─ WhiteSpaceNode: " " (1:5-1:6, 4-5)
          ├─ WordNode[1] (1:6-1:13, 5-12)
          │  └─ TextNode: "raining" (1:6-1:13, 5-12)
          ├─ WhiteSpaceNode: " " (1:13-1:14, 12-13)
          ├─ EmoticonNode: ":cat:" (1:14-1:19, 13-18)
          ├─ WordNode[1] (1:19-1:20, 18-19)
          │  └─ TextNode: "s" (1:19-1:20, 18-19)
          ├─ WhiteSpaceNode: " " (1:20-1:21, 19-20)
          ├─ WordNode[1] (1:21-1:24, 20-23)
          │  └─ TextNode: "and" (1:21-1:24, 20-23)
          ├─ WhiteSpaceNode: " " (1:24-1:25, 23-24)
          ├─ EmoticonNode: ":dog:" (1:25-1:30, 24-29)
          └─ WordNode[2] (1:30-1:32, 29-31)
             ├─ TextNode: "s" (1:30-1:31, 29-30)
             └─ PunctuationNode: "." (1:31-1:32, 30-31)

    API

    This package exports the identifier emojiModifier. There is no default export.

    emojiModifier(node)

    Classify emoji (👍) and Gemoji (GitHub emoji, 👍) in node as Emoticons.

    Parameters
    • node (Sentence) — sentence to transform
    Returns

    Given, transformed, node (Sentence).

    Emoticon

    Emoticon node (TypeScript type).

    See Emoticon in nlcst-emoticon-modifier.

    Types

    This package is fully typed with TypeScript. It exports the additional type Emoticon.

    It also registers the Emoticon node type with @types/nlcst in SentenceContentMap. If you’re working with the syntax tree, make sure to import this utility somewhere in your types, as that registers the new node types in the tree.

    /**
     * @typedef {import('nlcst-emoji-modifier')}
     */
    
    import {visit} from 'unist-util-visit'
    
    /** @type {import('nlcst').Root} */
    const tree = getNodeSomeHow()
    
    visit(tree, (node) => {
      // `node` can now be a `Emoticon` node.
    })

    Compatibility

    Projects maintained by the unified collective are compatible with all maintained versions of Node.js. As of now, that is Node.js 14.14+ and 16.0+. Our projects sometimes work with older versions, but this is not guaranteed.

    Related

    Contribute

    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.

    License

    MIT © Titus Wormer

    Install

    npm i nlcst-emoji-modifier

    DownloadsWeekly Downloads

    8,633

    Version

    5.2.0

    License

    MIT

    Unpacked Size

    18.8 kB

    Total Files

    8

    Last publish

    Collaborators

    • wooorm
    • kmck