swordjs v0.1.7
sword.js
sword.js
is a pure Javascript library to read the bible modules from Crosswire. It currently supports only compressed (zText) bible modules. BibleZ NG is based on this library.
Build
Install webpack
an run npm run build
. For development use npm start
and open http://localhost:8080/webpack-dev-server/
in your browser.
Usage
npm install swordjs
then you can require
it.
API
sword.js
is currently in a alpha version, so the API will likely change in the future.
Most API calls take a callback as the last argument. The callback will return null
or an error
as first argument. The second, third, ... argument is the reponse from the API.
installMgr
installMgr.getRepositories(inCallback)
Get a list of all available repositories and takes a callback funtion as argument. The callback will return an array of the repositories as second argument (first will be null
or an error
). Currently only the following CrossWire repos are supported:
- main
- beta
- av11n
- attic
- Wycliffe
- av11n attic
installMgr.getRemoteModules(inRepo, inUrl, inCallback)
Get a list of all modules in a repository. inRepo
is an object containing the repository url and the repository type. inUrl
is optional. The callback will return an array with all modules.
installMgr.installModule(inUrl, inCallback, inProgressCallback)
This will install a module from inUrl
. You can also pass a file blob from a zipped module file for offline installation as first argument. The callback will return null
or an error
as the first argument. The second callback is optional. It will report the progress of the module download.
installMgr.removeModule(iModuleKey, inCallback)
This will remove the module with the inModuleKey
. The callback will return null
or an error
as the first argument.
moduleMgr
####moduleMgr.getModules(inCallback) #### This will return a list of all installed modules.
Module
Each module has the following properties and API:
config
This property contains the all the module information that is normally found in a modules *.conf file.
renderText(inPassage, inOptions, inCallback)
inPassage
is a passage in a bible like Gen 1
or Romans 3
. inOptions
is an Object and optional. It can contain the following porperties (default values):
{
oneVersePerLine: false,
footnotes: false,
crossReferences: false,
headings: false,
wordsOfChristInRed: false,
intro: false, //show book or chapter introductions
}
The callback will return an object as second argument:
Example:
{
text: "...", //the rendered text (HTML),
footnotes: {
"Gen.1.1": [{note: "/*Note text*/", n: "1"}, {...}],
"Gen.1.4": [{note: "/*Note text*/", n: "2"}, {...}],
...
}
}
getAllBooks(inCallback)
Returns a list of all books in a module.
###verseKey###
verseKey.parse(inPassage, inV11n)
Takes a passage (e.g. Matt 1:1) as argument an returns an object like this:
{
osisRef: "Matt.1.1",
book: "Matt",
bookNum: 39,
chapter: 1
verse: 1 //this can also be NaN if you pass a passage the has no verse in it like "Matt 1".
}
verseKey.next(inPassage, inV11n)
Returns the next chapter that follows inPassage
. If you pass "Matt 1" you will get an verseKey object for "Matt 2".
verseKey.previous(inPassage, inV11n)
Returns the previous chapter that comes before inPassage
. If you pass "Mark 1" you will get an verseKey object for "Matt 28".
Licence
sword.js
is licenced under the GNU GPLv3.