nlcst utility to move initial emoticons into the previous sentence.
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.
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.
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>
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)
This package exports the identifier affixEmoticonModifier
. There is no default export.
affixEmoticonModifier(node)
Merge emoticons in node
into EmoticonNode
s.
See Emoticon
in nlcst-emoticon-modifier
for that type.
node
(Paragraph
) β nlcst paragraph to transformNothing (undefined
).
This package is fully typed with TypeScript. It exports no additional types.
See Emoticon
in nlcst-emoticon-modifier
for how to register that type.
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.
nlcst-emoticon-modifier
β support emoticonsnlcst-emoji-modifier
β support emoji and gemojiSee 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.
MIT Β© Titus Wormer
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4