shakespeare-data

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

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
shakespeare-data
3.0.06 years ago7 years agoMinified + gzip package size for shakespeare-data in KB

Readme

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