Skip to content

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

License

Notifications You must be signed in to change notification settings

luketn/shakespeare-data

Repository files navigation

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published