nlcst-affix-emoticon-modifier
!Buildbuild-badgebuild
!Coveragecoverage-badgecoverage
!Downloadsdownloads-badgedownloads
!Sizesize-badgesize
!Sponsorssponsors-badgecollective
!Backersbackers-badgecollective
!Chatchat-badgechatnlcst utility to move initial emoticons into the previous sentence.
Contents
* [`affixEmoticonModifier(node)`](#affixemoticonmodifiernode)
What is this?
This utility searches emoticon nodes (fromnlcst-emoticon-modifier
nlcst-emoticon-modifier and
nlcst-emoji-modifier
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
retext-emoji wraps this utility and others at a
higher-level (easier) abstraction.Install
This package is ESM onlyesm. In Node.js (version 16+), install with npm:npm install nlcst-affix-emoticon-modifier
In Deno with
esm.sh
esmsh:import {affixEmoticonModifier} from 'https://esm.sh/nlcst-affix-emoticon-modifier@3'
In browsers with
esm.sh
esmsh:<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 identifieraffixEmoticonModifier
api-affix-emoticon-modifier.
There is no default export.affixEmoticonModifier(node)
Merge emoticons in node
into EmoticonNode
s.See
Emoticon
in nlcst-emoticon-modifier
emoticon-mofifier-emoticon for
that type.Parameters
β 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
emoticon-mofifier-emoticon 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
β support emoticons
β support emoji and gemoji
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, organisation, or community you agree to abide by its terms.