0.0.9 • Published 10 months ago

@helloao/tools v0.0.9

Weekly downloads
-
License
MIT
Repository
-
Last release
10 months ago

Hello AO Tools

Tools for the Free Use Bible API.

Features

  • Parse USFM, USX, and Codex (JSON) files and understand some basic structure.
  • Generate JSON from USFM, USX, and other formats.

Installation

$ npm install @helloao/tools

Usage

Parse a USX File

import { parser } from '@helloao/tools';
// Used to parse XML
const parser = new DOMParser();
const usx = new parser.USXParser(parser);
const parseTree = usx.parse('YOUR USX');
console.log(parseTree);

Generate the API Files for a translation

import { parser, generation } from '@helloao/tools';

// Used to parse XML
const domParser = new DOMParser();

// Each input file needs some metadata about the translation that it is associated with
const translation: generation.ParseTreeMetadata = {
    translation: {
        // The ID of the translation
        // this should be unique for the translation
        id: 'my translation id',

        // The name of the translation in the translation's language
        name: 'my translation name',

        // The name of the translation in English
        englishName: 'my translation name',

        // The website that hosts information about the translation
        website: 'translation website',

        // The URL that hosts information about the license that the
        // translation is shared under
        licenseUrl: 'translation license',

        // The ISO 639 letter language tag that the translation is primarily in.
        language: 'eng',

        // The direction that the text is written in.
        // "ltr" means "left to right" and "rtl" means "right to left"
        direction: 'ltr',
    },
};

// The list of files that should be processed.
const files: generation.InputFile[] = [
    {
        // the metadata about the translation for this file
        metadata: translation,

        // The content contained in the file
        content: 'YOUR USX',

        // The type of the file.
        // One of "usx", "usfm", and "json"
        fileType: 'usx',
    },
];

// Generate a dataset from the files
// Datasets organize all the files and their content
// by translation, book, chapter, and verse
const dataset = generation.dataset.generateDataset(files, domParser);

// Generate an API representation from the files
// This adds links between chapters and additional metadata.
const api = generation.api.generateApiForDataset(dataset);

// Generate output files from the API representation.
// This will give us a list of files and file paths that represent
// the entire API.
const outputFiles = generation.api.generateFilesForApi(api);

for (let file of outputFiles) {
    console.log(file.path, file.content);
}
0.0.6-alpha

10 months ago

0.0.9

10 months ago

0.0.6

11 months ago

0.0.5

12 months ago

0.0.4

12 months ago

0.0.3

12 months ago

0.0.2

12 months ago

0.0.1

12 months ago