retext is a tool that transforms natural language with plugins. See the monorepo readme for info on what the retext ecosystem is. This page lists existing plugins.
See awesome-retext
for the most awesome projects in the
ecosystem.
More plugins can be found on GitHub tagged with the
retext-plugin
topic.
The list of plugins:
retext-assuming
— check for unhelpful phrases such asjust
,simply
,obviously
retext-case-police
— check for popular names casing (github
→GitHub
)retext-cliches
— check phrases for clichesretext-contractions
— check apostrophe use in contractionsretext-diacritics
— check for proper use of diacriticsretext-dutch
— dutch language supportretext-english
— English language supportretext-emoji
— encode or decode gemojiretext-equality
— warn about possible insensitive, inconsiderate languageretext-indefinite-article
— check if indefinite articles (a
,an
) are used correctlyretext-intensify
— check for weak and mitigating wordingretext-keywords
— extract keywords and keyphrasesretext-latin
— Latin-script language supportretext-lexrank
— add Lexrank scores to sentencesretext-overuse
— check words for overuseretext-passive
— check for passive voiceretext-profanities
— check profane and vulgar wordingretext-readability
— check readabilityretext-redundant-acronyms
— check redundant acronyms (ATM machine
>ATM
)retext-repeated-words
— checkfor for
repeated wordsretext-sentence-spacing
— check spacing between sentencesretext-sentiment
— detect sentiment in textretext-simplify
— check phrases for simpler alternativesretext-smartypants
— implementation of SmartyPantsretext-spell
— check spellingretext-stringify
— serialize back to textretext-syntax-mentions
— classify@mentions
as syntaxretext-syntax-urls
— classify url-like values (example.com, example.md, etc) as syntaxretext-usage
— check incorrect English usageretext-quotes
— check quote and apostrophe usage
See nlcst for a list of utilities that work with the syntax tree. See unist for other utilities which work with nlcst and other syntax trees too. Finally, see vfile for a list of utilities working with virtual files.
To use a plugin programmatically, call the use()
function.
To create a plugin, first read up on the concept of plugins. Then, read the guide on “Creating a plugin with unified”. Finally, take one of existing plugins, which looks similar to what you’re about to make, and work from there. If you get stuck, discussions is a good place to get help.
You should pick a name prefixed by 'retext-'
(such as retext-emoji
).
Do not use the retext-
prefix if the thing you create doesn’t work with
retext().use()
: it isn’t a “plugin” and will confuse users.
If it works with nlcst, use 'nlcst-'
, if it works with any unist tree, use
unist-util-
, and if it works with virtual files, use vfile-
.
Use default exports to expose plugins from your packages, add retext-plugin
keywords in package.json
, add a retext-plugin
topic to your repo on GitHub,
and create a pull request to add the plugin here on this page!