shakespeare-data
TypeScript icon, indicating that this package has built-in type declarations

3.0.0 • Public • Published

shakespeare-data

A little JavaScript library you can import and use in your projects as an alternative to Lorem Ipsum style test data.

travis build version

Installation

npm i --save shakespeare-data

API

All of Shakespeare's sonnets are included, with a simple API to retrieve them:

sonnets.all()

Retrieves all the sonnets in an array in the following structure:

[{"number": 1,
  "lines":
   [ "Those lips that Love's own hand did make,",
     "Breathed forth the sound that said 'I hate',",
     "To me that languish'd for her sake:",
     "But when she saw my woeful state,",
     "Straight in her heart did mercy come,",
     "Chiding that tongue that ever sweet",
     "Was us'd in giving gentle doom;",
     "And taught it thus anew to greet;",
     "'I hate' she alter'd with an end,",
     "That followed it as gentle day,",
     "Doth follow night, who like a fiend",
     "From heaven to hell is flown away.",
     "'I hate', from hate away she threw,",
     "And sav'd my life, saying 'not you'." 
     ] 
},...
]

sonnets.find(term)

Retrieves all the sonnets matching the term in an array in the same structure as all():

sonnets.random()

Retrieves a single sonnet randomly from the list of all sonnets.

Use it in Node!

If you're on a node server, just require it and off you go.

var shakespeare = require('shakespeare-data');
var sonnetsContainingTruth = shakespeare.sonnets.find('truth');

Use it in Angular

Import it in angular by importing it into a component and binding it with an HTML template.

Example: https://luketn.github.io/shakespeare-data/

Code: https://github.com/luketn/shakespeare-data/blob/master/example-angular/src/app/app.component.ts

Component:

import { Component } from '@angular/core';
import { Shakespeare } from 'shakespeare-data/lib/shakespeare';
 
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {
  shakespeare = new Shakespeare();
 
  sonnets = this.shakespeare.sonnets.all();
  search(term) {
    this.sonnets = this.shakespeare.sonnets.find(term);
  }
}

Template:

<tbody>
  <tr *ngFor="let sonnet of sonnets">
    <td>{{sonnet.number}}</td>
    <td>
      <span *ngFor="let line of sonnet.lines">
        {{line}}<br/>
      </span>
    </td>
  </tr>
</tbody>

Contributions

If you'd like to contribute to the project, note that we use semantic versioning and commitizen conventions.

These differentiate breaking and non-breaking changes clear, and update version numbers for changes accordingly.

Commitizen: http://commitizen.github.io/cz-cli/

Semantic Release: https://semantic-release.gitbooks.io/semantic-release

Use the package script 'commit' to perform commits, which will invoke commitizen correctly:

git add .
npm run commit

Package Sidebar

Install

npm i shakespeare-data

Weekly Downloads

63

Version

3.0.0

License

Apache-2.0

Unpacked Size

196 kB

Total Files

21

Last publish

Collaborators

  • luketn