node package manager
It’s your turn. Help us improve JavaScript. Take the 2017 JavaScript Ecosystem Survey »


sword Build Status

Simple Bible passage parser. Converts text based passages into a usable object.

For the word of God is living and active, sharper than any two-edged sword, piercing to the division of soul and of spirit, of joints and of marrow, and discerning the thoughts and intentions of the heart.

Hebrews 4:12 (ESV)


Getting Started

Use npm to install as a dependency:

npm install --save sword

The API is simple:

var sword = require('sword');
var results = sword('1jn 1:2-5');
// Use results for something good.. 
// Another use includes getting the name of the book: 
var id = results[0];
var book = sword(id);
// book => '1 John' 
var bookInRussian = sword(id, 'ru');
// bookInRussian => '1-e Иоанна' 
var availableLanguages = sword.languages;
// availableLanguages => [['English', 'en'], ['Russian', 'ru'], ..] 

Results are in the following form:

  start: {
    book: 62, chapter: 1, verse: 2
  end: {
    verse: 5

Every item in the array is a distinct passage, i.e. comma seperated passages. From there every passage is represented by an object, which stays simple by only returning none redundent data.

Supported Languages

  • English
  • Russian (near future)


To add a new language, you must first create a chapters map, located in ./maps. This contains the keys/names of the books, and aliases that work for each book. See ./maps/en.json as a reference.

Once you've created a map, you must add a reference to ./languages.json, specifying the language, and the name of the map.


To run the tests run the following after cloning the repo:

npm install
npm test