Lightweight util for generating random sentences, paragraphs and articles in English. Inspired by Sentencer and metaphorpsum.com.
-
Node.js
npm i txtgen # pnpm pnpm i txtgen # yarn yarn add txtgen
-
CDN
- ES6 Module: txtgen.esm.js
- CommonJS: txtgen.js
- For old browsers: txtgen.min.js
import {
sentence
} from 'txtgen'
// with CommonJS environment
// const { sentence } = require('txtgen/dist/cjs/txtgen.js')
sentence()
Currently, ECMAScript modules work fine on almost all browsers:
<script type="module">
import { sentence } from 'https://unpkg.com/txtgen/dist/txtgen.esm.js'
console.log(sentence())
</script>
With outdated browsers, we can use the traditional method:
<script type="text/javascript" src="https://unpkg.com/txtgen/dist/txtgen.min.js"></script>
<script>
console.log(window.txtgen.sentence())
</script>
.sentence()
.paragraph([Number totalSentences])
.article([Number totalParagraphs])
.addNouns(Array nouns)
.addAdjectives(Array adjectives)
.addTemplates(Array sentenceTemplates)
.setNouns(Array nouns)
.setAdjectives(Array adjectives)
.setTemplates(Array sentenceTemplates)
.getNouns()
.getAdjectives()
.getTemplates()
As their name suggests, we have 4 groups of methods:
sentence()
,paragraph()
,article()
: generate text by given grammatical unitaddNouns()
,addAdjectives()
,addTemplates()
: add more samples to current sample setsetNouns()
,setAdjectives()
,setTemplates()
: replace current sample set with new onesgetNouns()
,getAdjectives()
,getTemplates()
: get current sample set
The set*
and get*
methods were added in v2.2.3 to help you customize your sample data.
If you want to add more kinds of sentences, just use the .addTemplates()
method; it expects a list of sentence templates.
Each sentence template is an English sentence, containing placeholders that can be replaced with any alternative word.
For example:
import {
addTemplates
} from 'txtgen'
const templates = [
'{{a_noun}} is {{a_noun}} from the right perspective',
'the {{noun}} of {{a_noun}} becomes {{an_adjective}} {{noun}}'
]
addTemplates(templates)
Here are the available placeholders:
noun
nouns
a_noun
adjective
an_adjective
git clone https://github.com/ndaidong/txtgen.git
cd txtgen
npm install
npm test
The MIT License (MIT)