UNPKG

usfm-grammar

Version:

Uses the tree-sitter-usfm3 parser to convert USFM files to other formats such as USJ, USX, and CSV, and converts them back to USFM

88 lines (87 loc) 2.54 kB
exports.USJ_SCHEMA = { '$schema': 'http://json-schema.org/draft-07/schema', '$id': 'https://github.com/usfm-bible/tcdocs/blob/main/grammar/usj.js', 'title': 'Unified Scripture JSON', 'description': 'The JSON varient of USFM and USX data models', 'type': 'object', '$defs': { 'markerObject': { 'type': 'object', 'properties': { 'type': { 'description': `The kind/category of node or element this is, corresponding the USFM marker and USX node`, 'type': 'string', }, 'marker': { 'description': 'The corresponding marker in USFM or style in USX', 'type': 'string', }, 'content': { 'type': 'array', 'items': { 'anyOf': [ { 'type': 'string' }, { '$ref': '#/$defs/markerObject' }, ], }, }, 'sid': { 'description': 'Indicates the Book-chapter-verse value in the paragraph based structure', 'type': 'string', }, 'number': { 'description': 'Chapter number or verse number', 'type': 'string', }, 'code': { 'description': 'The 3-letter book code in id element', 'pattern': '^[0-9A-Z]{3}$', 'type': 'string', }, 'altnumber': { 'description': 'Alternate chapter number or verse number', 'type': 'string', }, 'pubnumber': { 'description': 'Published character of chapter or verse', 'type': 'string', }, 'caller': { 'description': 'Caller character for footnotes and cross-refs', 'type': 'string', }, 'align': { 'description': 'Alignment of table cells', 'type': 'string', }, 'category': { 'description': 'Category of extended study bible sections', 'type': 'string', }, }, 'required': ['type'], }, }, 'properties': { 'type': { 'description': 'The kind of node/element/marker this is', 'type': 'string', }, 'version': { 'description': 'The USJ spec version', 'type': 'string', }, 'content': { 'description': 'The JSON representation of scripture contents from USFM/USX', 'type': 'array', 'items': { 'anyOf': [ { 'type': 'string' }, { '$ref': '#/$defs/markerObject' }, ], }, }, }, 'required': ['type', 'version', 'content'], };