Git Product home page Git Product logo

nlcst-affix-emoticon-modifier's Introduction

nlcst-affix-emoticon-modifier

Build Coverage Downloads Size Sponsors Backers Chat

nlcst utility to move initial emoticons into the previous sentence.

Contents

What is this?

This utility searches emoticon nodes (from nlcst-emoticon-modifier and nlcst-emoji-modifier) that start a sentence and then moves them into the previous sentence.

When should I use this?

This package is a tiny utility that helps when dealing with emoticons in natural language. It’s useful because many people place an emoticon or emoji, representing emotion related to the previous sentence, after a terminal marker. πŸ˜’

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 16+), install with npm:

npm install nlcst-affix-emoticon-modifier

In Deno with esm.sh:

import {affixEmoticonModifier} from 'https://esm.sh/nlcst-affix-emoticon-modifier@3'

In browsers with esm.sh:

<script type="module">
  import {affixEmoticonModifier} from 'https://esm.sh/nlcst-affix-emoticon-modifier@3?bundle'
</script>

Use

import {affixEmoticonModifier} from 'nlcst-affix-emoticon-modifier'
import {emoticonModifier} from 'nlcst-emoticon-modifier'
import {ParseEnglish} from 'parse-english'
import {inspect} from 'unist-util-inspect'

const parser = new ParseEnglish()
parser.tokenizeSentencePlugins.unshift(emoticonModifier)
parser.tokenizeParagraphPlugins.unshift(affixEmoticonModifier)

console.log(inspect(parser.parse('Hey. :) How is it going?')))

Yields:

RootNode[1] (1:1-1:25, 0-24)
└─0 ParagraphNode[3] (1:1-1:25, 0-24)
    β”œβ”€0 SentenceNode[4] (1:1-1:8, 0-7)
    β”‚   β”œβ”€0 WordNode[1] (1:1-1:4, 0-3)
    β”‚   β”‚   └─0 TextNode "Hey" (1:1-1:4, 0-3)
    β”‚   β”œβ”€1 PunctuationNode "." (1:4-1:5, 3-4)
    β”‚   β”œβ”€2 WhiteSpaceNode " " (1:5-1:6, 4-5)
    β”‚   └─3 EmoticonNode ":)" (1:6-1:8, 5-7)
    β”œβ”€1 WhiteSpaceNode " " (1:8-1:9, 7-8)
    └─2 SentenceNode[8] (1:9-1:25, 8-24)
        β”œβ”€0 WordNode[1] (1:9-1:12, 8-11)
        β”‚   └─0 TextNode "How" (1:9-1:12, 8-11)
        β”œβ”€1 WhiteSpaceNode " " (1:12-1:13, 11-12)
        β”œβ”€2 WordNode[1] (1:13-1:15, 12-14)
        β”‚   └─0 TextNode "is" (1:13-1:15, 12-14)
        β”œβ”€3 WhiteSpaceNode " " (1:15-1:16, 14-15)
        β”œβ”€4 WordNode[1] (1:16-1:18, 15-17)
        β”‚   └─0 TextNode "it" (1:16-1:18, 15-17)
        β”œβ”€5 WhiteSpaceNode " " (1:18-1:19, 17-18)
        β”œβ”€6 WordNode[1] (1:19-1:24, 18-23)
        β”‚   └─0 TextNode "going" (1:19-1:24, 18-23)
        └─7 PunctuationNode "?" (1:24-1:25, 23-24)

API

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

affixEmoticonModifier(node)

Merge emoticons in node into EmoticonNodes.

See Emoticon in nlcst-emoticon-modifier for that type.

Parameters
  • node (Paragraph) β€” nlcst paragraph to transform
Returns

Nothing (undefined).

Types

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

See Emoticon in nlcst-emoticon-modifier for how to register that type.

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-affix-emoticon-modifier@^3, compatible with Node.js 16.

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, organisation, or community you agree to abide by its terms.

License

MIT Β© Titus Wormer

nlcst-affix-emoticon-modifier's People

Contributors

greenkeeperio-bot avatar wooorm avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.