JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 38
  • Score
    100M100P100Q47639F
  • License Unlicense

Template-based sentence generator with full user control.

Package Exports

  • sentence-engine

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (sentence-engine) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

sentence-engine

A simple sentence generator running on Node.js. It takes a template and vocabulary freely defined by the user.

Features

  • Unbound vocabulary; define use case-specific categories or adhere to conventional keywords
  • Object-oriented
  • Lightweight

Usage

Install

> npm i sentence-engine

Import & Use

// import: 
const Sentence = require('sentence-engine')

// initialize Sentence object, here with no arguments:
let sentence1 = Sentence()
console.log(sentence1) // <-- outputs "Sentence { }" (object instance)
console.log(sentence1.get()) // <-- outputs "hello, world" (generated sentence string)

Calling Sentence() creates an object of a Sentence class which stores a template, vocabulary, and a set of options. In the case above we pass no arguments and the object is simply given some default values and resolves to "hello, world". See Sentence.js for the class implementation.

By passing a template and/or vocabulary, the sentence engine becomes much more powerful. See examples below.

let template = 'This is {a-adjective} template.'
let vocabulary = {
  adjective: ['awesome', 'bad', 'great', 'repulsive']
}
console.log(Sentence(template, vocabulary).get()) // <-- might output "This is an awesome template"

In the above example, we pass a single template. We can also pass several templates for the engine to choose between.

let templates = [
  'This is {a-adjective} template.',
  'This template is {adjective}.'
]
console.log(Sentence(templates, vocabulary).get())

Some use cases may want to store an instance of Sentence for later use. Doing this allows the user to generate a new sentence with the arguments that were passed initially.

let sentence = Sentence(templates, vocabulary) // Sentence constructor initializes itself with generate()
sentence.generate() // user may call generate method to recreate the sentence on the object

Examples

Development

Early stages and likely to see fundamental changes.

Contributing

Sure!

Background

The package is inspired by the TV show Better Off Ted's episode S2E8 "The Impertence of Communicationizing", and started off as a proof-of-concept for the insult formula introduced in the episode.