0.0.9 • Published 9 months ago

@helloao/tools v0.0.9

Weekly downloads
-
License
MIT
Repository
-
Last release
9 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

9 months ago

0.0.9

9 months ago

0.0.6

10 months ago

0.0.5

11 months ago

0.0.4

11 months ago

0.0.3

11 months ago

0.0.2

11 months ago

0.0.1

11 months ago