Lunaris Readability
A library for calculating text readability scores based on popular algorithms & formulas, inspired by textstat.
[!TIP] See also:
- @lunarisapp/language for core linguistic breakdown: vowels, consonants, words, and sentences.
- @lunarisapp/stats for text statistics (e.g. word count, sentence count, etc.).
- @lunarisapp/hyphen for word hyphenation.
Features
- Browser & Node.js support
- Multi-language support
- Pure formulas for direct usage
- Caching for faster performance
- TypeScript support
Installation
npm install @lunarisapp/readability
Usage
import { TextReadability } from '@lunarisapp/readability';
const textReadability = new TextReadability({
lang: 'en_US', // optional, en_US by default
cache: true, // optional, true by default
});
textReadability.fleschReadingEase('Hello, world!');
The package also exports pure formulas, if you want to use them directly:
import { fleschReadingEase } from '@lunarisapp/readability';
fleschReadingEase({
wordCount: 2,
sentenceCount: 1,
syllableCount: 6,
});
Algorithms
Function | Description |
---|---|
fleschReadingEase(text) |
Calculates the Flesch Reading Ease score for the provided text. |
fleschKincaidGrade(text) |
Calculates the Flesch-Kincaid Grade Level for the provided text. |
smogIndex(text) |
Calculates the SMOG Index for the provided text. |
automatedReadabilityIndex(text) |
Calculates the Automated Readability Index (ARI) for the provided text. |
colemanLiauIndex(text) |
Calculates the Coleman-Liau Index for the provided text. |
linsearWriteFormula(text) |
Calculates the Linsear Write Formula readability score for the provided text. |
crawford(text) |
Calculates the Crawford Readability Score for the provided text. |
gulpeaseIndex(text) |
Calculates the Gulpease Index for the provided text. |
gutierrezPolini(text) |
Calculates the Gutierrez-Polini Index for the provided text. |
wienerSachtextformel(text) |
Calculates the Wiener Sachtextformel readability score for the provided text. |
mcalpineEflaw(text) |
Calculates the McAlpine English Fluency Assessment (EFLAW) score for the provided text. |
lix(text) |
Calculates the LIX ratio for the provided text. |
rix(text) |
Calculates the RIX ratio for the provided text. |
Other
import { type Language } from '@lunarisapp/readability';