{"id":50897871,"url":"https://github.com/schierlm/BibleMultiConverter","last_synced_at":"2026-07-22T07:01:17.297Z","repository":{"id":32161240,"uuid":"35734405","full_name":"schierlm/BibleMultiConverter","owner":"schierlm","description":"Converter written in Java to convert between different Bible program formats","archived":false,"fork":false,"pushed_at":"2025-10-31T22:34:47.000Z","size":1609,"stargazers_count":161,"open_issues_count":5,"forks_count":40,"subscribers_count":21,"default_branch":"master","last_synced_at":"2026-01-21T01:11:30.188Z","etag":null,"topics":["accordance","bible","conversion","converter","crosswire","java","json","logos","mybible","obsidian","online-bible","osis","paratext","parser","quick-bible","sword","theword","usfm","xml","zefania"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/schierlm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-05-16T18:03:01.000Z","updated_at":"2026-01-17T21:47:13.000Z","dependencies_parsed_at":"2025-04-26T22:22:03.354Z","dependency_job_id":"144fc0bb-3eb1-4ac3-867d-2f37eb3b6878","html_url":"https://github.com/schierlm/BibleMultiConverter","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/schierlm/BibleMultiConverter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schierlm%2FBibleMultiConverter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schierlm%2FBibleMultiConverter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schierlm%2FBibleMultiConverter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schierlm%2FBibleMultiConverter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/schierlm","download_url":"https://codeload.github.com/schierlm/BibleMultiConverter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schierlm%2FBibleMultiConverter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35751644,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-22T02:00:06.236Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accordance","bible","conversion","converter","crosswire","java","json","logos","mybible","obsidian","online-bible","osis","paratext","parser","quick-bible","sword","theword","usfm","xml","zefania"],"created_at":"2026-06-16T01:31:30.084Z","updated_at":"2026-07-22T07:01:17.278Z","avatar_url":"https://github.com/schierlm.png","language":"Java","funding_links":[],"categories":["java"],"sub_categories":[],"readme":"BibleMultiConverter\n===================\n\nConverter written in Java to convert between different Bible program formats\n\nCopyright (c) 2007-2025 Michael Schierl\nLicensed unter MIT License; for details, see the LICENSE file.\n\nUsage\n-----\n\nIf you clone from Git or download a source zip, you will need a Java JDK 8 or above (tested up to 11),\nand Apache Maven 3.5 or above, to build. Just run \"mvn package\" and you will find\na suitable distribution .zip file in the TARGET folder.\n\nIf you download a precompiled .zip file, you will need a Java Runtime Environment\n8 or above, available from java.com. Just run\n\n    java -jar BibleMultiConverter.jar\n\non the command line for usage information. Each module has its own help,\nwhich can be shown by using the \"help\" module.\n\n\nDocumentation\n-------------\n\nThe documentation is currently a bit lacking. Try the commands, or look at the\nsource, or open an issue if anything is unclear.\n\n\nSupported Formats\n-----------------\n\nBibleMultiConverter supports four custom formats, which are loss-less (support\nall features supported by the BibleMultiConverter framework) and are supported\nboth for import and for export:\n\n- **Compact**: Designed for creating small text files that compress well\n- **Diffable**: Designed to make comparing different bibles easier\n- **RoundtripTaggedText**: Similar to **Diffable**, but optimized for\n  automated editing using regular expression, at the expense of legibility\n- **RoundtripXML**: Useful for interchange of modules with converters written\n  in other programming languages (that prefer XML binding to plaintext parsing)\n\nNote that the **Diffable** format got new features in v0.0.3, v0.0.8 and v0.0.9, which\nare backwards compatible but *not* forwards compatible. Use the **OldDiffable** format\nto export Bibles in v0.0.9 so that v0.0.8 or older versions are guaranteed to be able\nto read them.\n\nIn addition, there are other formats that can preserve all features supported by\nthe BibleMultiConverter framework, and can therefore used for exchanging or editing\nmodules without loss of data:\n\n- **RoundtripHTML**: HTML format that can be read back if desired (originally\n  intended for publishing on free website hosters, but with the advent of free\n  file hosters this feature is pretty much obsolete).\n- **RoundtripStructuredHTML**: Similar to above, but converts the structure (i. e.\n  paragraphs, headlines, tables) as toplevel elements, and not the verses. Often results\n  in better HTML when converting from Paratext formats.\n- **RoundtripODT**: Export as an editable .odt (OpenOffice/LibreOffice Document\n  Text), which can be edited in LibreOffice (tested with LibreOffice 6.0) and later\n  imported again. Large bibles can take a minute or so to open in LibreOffice 6, which\n  is quite some improvement since LibreOffice 5.x sometimes took more than 15 minutes.\n  Note that all formatting is exported as named Paragraph or Text styles, and other\n  individual formatting will be ignored when importing.\n\nIn addition, the following other formats are supported, with varying accuracy:\n\n- **[HaggaiXML](http://www.freie-bibel.de/official/projekt/haggai_xml.html)**: import and export\n- **[OSIS](https://ebible.org/osis/)**: import and export (only a very limited subset of OSIS standard)\n- **[ZefaniaXML](https://bgfdb.de/zefania.de/)**: import and export (There are two import filters and three export\n  filters available that focus on different subsets/features of this quite diverse\n  format)\n- **ZefDic** (Zefania's dictionary format): import and export (two export filters)\n- **[TheWord](https://www.theword.net/)**: import and export\n- **[PalmBible+](http://palmbibleplus.sourceforge.net/)**: import and export (for the XML-like format used to build PDBs)\n- **[UnboundBible](https://unbound.biola.edu/)**: Import and export\n- **[MobiPocket](https://en.wikipedia.org/wiki/Mobipocket)**: export only\n- **[Volksbibel2000](http://www.volksbibel-2000.de/)**: export only\n- **[OnLineBible](https://onlinebible.net/)**: export only\n- **[BrowserBible](https://github.com/digitalbiblesociety/browserbible-3/)**: export only\n- **[Quick Bible](http://www.bibleforandroid.com/)**: export only\n- **[SWORD](https://www.crosswire.org/sword) modules**: import only (see below for details)\n- **Original Languages with tagging**: import only\n  - [MorphGNT](https://github.com/morphgnt/sblgnt)\n  - [OpenScriptures Hebrew Bible (OSHB) MorphBB](https://github.com/openscriptures/morphhb)\n  - [Unicode/XML Leningrad Codex](https://www.tanach.us/Pages/XMLFiles.html)\n  - [Translators Amalgamated Hebrew Old Testament / Greek New Testament](https://github.com/schierlm/STEPBible-Data) (basic features only)\n- **[MyBible.Zone](https://mybible.zone/index-eng.php)** ([more bibles](http://www.ph4.org/b4_index.php)): import and export (in a special SQLite edition)\n- **[Bible Analyzer](http://www.bibleanalyzer.com/)**: export only (text export for\n  bibles and dictionaries, SQLite export for bibles)\n- **[Accordance](https://www.accordancebible.com/)**: import and export\n- **[BibleWorks](https://www.bibleworks.com/)**: import and export\n- **[Equipd Bible](https://www.equipd.me/)**: export only\n- **[SoftProjector](https://softprojector.org/)**: import and export\n- **Paratext:**\n  - **[USFM 2](https://markups.paratext.org/usfm/)**: import and export\n  - **[USX 2/USX 3](https://markups.paratext.org/usx/)**: import and export\n- **[USFX](https://ebible.org/usfx/)**: import and export\n- **[UBXF](https://resource-container.readthedocs.io/en/latest/ubxf.html)**: import (and conversion to \"normal\" USFM)\n- **[SwordSearcher](https://www.swordsearcher.com/) ([Forge](https://www.swordsearcher.com/forge/))**: export only\n- **[MySword](https://www.mysword.info/)**: import and export\n- **[Obsidian](https://obsidian.md/)**: export only\n- **[Beblia XML](https://beblia.com/)**: import and export\n- **[Laridian Book Builder](https://www.laridian.com/)**: export only\n- **[e-Sword](https://e-sword.net/)**: export only\n\nIn combination with third party tools, other export formats are available:\n\n- In combination with LibreOffice 4.4 to 7.5, it is possible to export bibles for\n  Logos Bible Software (see below for details)\n- In combination with the E-Sword ToolTipTool NT v2.51, it is possible to\n  export bibles for E-Sword versions older than 11 (see below for details)\n\nWhile the focus of this tool is for bible texts, there is also limited support\nfor (Strong) dictionaries.\n\nThe **StrongDictionary** import filter downloads a public domain Strong dictionary\nand compiles it for exporting as HTML, MobiPocket, Logos or ZefDic (currently no\nother exporters support dictionaries).\n\nThe **StrongConcordance** import filter takes a Strong dictionary and a Bible and\naugments the dictionary with concordance information (i. e. links that link back\nto all verses that contain this word in that particular Bible).\n\nThree utility exporters are also available: **Validate** validates the syntax of a\nbible file, and **StrippedDiffable** exports a Diffable, but removes certain features\n(like prologs, footnotes, headlines, etc.) In case you want to rename or remove\ncertain books automatically, have a look at the **Diffable** importer, which provides\noptions for that. **HeatMapHTML** can generate heat maps (or verse statistics) which show\nhow often a certain feature (e. g. a footnote, a divine name, or the word \"Jesus\") appears\nin the Bible and where exactly.\n\n**AugmentGrammar** can analyze the use of grammar information (Strongs, morphology,\nsource indices) in one or more bible modules and use this information to augment\nother modules (e.g. modules that contain Strongs but no morphology). It can also be\nused to dump grammar information as a CSV file to analyze it elsewhere, or generate\nsource indices in Original Language modules by counting grammar info tags.\n\nThe **ValidateXML** tool can be used to validate an input XML file against a XSD schema.\nThe schema can be given as a file, as an URL or one of the embedded schema names `OSIS`,\n`ZefaniaXML`, `HaggaiXML`, `RoundtripXML`, `USFX`, `USX` or `ZefDic`. This is useful as in case of an\ninvalid XML input file, the schema usually provides better error messages than what is\nprovided by the import modules.\n\nThe **SQLiteDump** tool (part of the SQLite edition) can dump SQLite databases in a\ndiffable text format; useful for diagnosing problems with Bible programs that use\nSQLite based formats or for importing MyBible.Zone bibles.\n\nThe **ParatextConverter** tool can be used to convert between USFM/USFX/USX formats\nwithout converting to BibleMultiConverter's internal format first, or to remove\ntagged OT/NT/Deuterocanonical content from such a file. It can also be used to convert\nfrom/to **ParatextDump** (which is a diffable plain text dump of the internal Paratext\nstructure and useful for comparing different Paratext formats), **ParatextCompact* (a more compact\nrepresentation intended for archival which will remain forward compatible) and **ParatextVPL** (which is\na different diffable format that looks more like VPL, but uses Paratext tags) formats. In combination\nwith the **ParatextStripped** format, various features of the file can be stripped or it can be\nmade compatible to an older USFM version. And **ParatextValidate** format can be used to validate\ninconsistencies of the paratext format, like unclosed/unopened milestones or paragraph markers\nwithout text or unexpected extra text.\n\nThe **MyBibleZoneListDownloader** tool (part of SQLite edition) can be used to download\nthe list of available MyBible.Zone modules from the module registry (that is also queried\nby the Android app) and create a HTML file with download links and (JavaScript) filters.\nThis is needed as the website apparently does not include all modules available in the app.\n\nPlanned formats\n---------------\n\nEPUB export is planned (but not high priority at the moment).\n\nIf you want to see any other formats, feel free to open an issue (or a pull request :-D).\n\n\nNew `FormattedText` Model\n-------------------------\n\nBibleMultiConverter is currently switching to a new `FormattedText` model (intermediate format) which can\nhandle USX3 and USFM3 inputs better. Some formats are **not** yet converted, and therefore are still\nlimited to the old intermediate format.\n\n**Status:**\n\n| Format                               | Implementation *(missing features*)      | Testing        |\n| ------------------------------------ | ---------------------------------------- | -------------- |\n| `NeUeParser`                         | complete                                 | extensive      |\n| `Validate`                           | complete                                 | partial        |\n| `Compact`                            | complete                                 | unit tests     |\n| `Diffable`                           | complete                                 | unit tests     |\n| `RoundtripTaggedText`                | complete                                 | unit tests     |\n| `RoundtripXML`                       | complete                                 | unit tests     |\n| `AbstractParatextFormat`             | partial *(maybe complete?)*              | unit tests     |\n| `RoundtripHTML`                      | partial *(Show `ga-` attributes)*        | partial        |\n| `RoundtripStructuredHTML`            | partial *(Show `ga-` attributes)*        | partial        |\n| `RoundtripODT`                       | partial *(Handling of hyperlinks)*       | unit tests     |\n| `LaridianPocketBible`    (2x)        | complete                                 | partial        |\n| `AbstractVersificationDetector`      | complete                                 | none           |\n| `AugmentGrammar`                     | complete                                 | none           |\n| `AugmentLogosLinks`                  | complete                                 | none           |\n| `BebliaXML`                          | complete                                 | none           |\n| `LogosRenumberedDiffable`            | complete                                 | none           |\n| `MorphGNT`                           | complete                                 | none           |\n| `OldDiffable`                        | complete                                 | none           |\n| `ReplaceStrongs`                     | complete                                 | none           |\n| `SimpleJSON`                         | complete                                 | none           |\n| `StrippedDiffable`                   | complete                                 | none           |\n| `TranslatorsAmalgamated`             | complete                                 | none           |\n| `VersificationCountsDetector`        | complete                                 | none           |\n| `VersificationMappedDiffable`        | complete                                 | none           |\n| `Accordance`                         | partial                                  | none           |\n| `LogosHTML`                          | partial                                  | partial        |\n| `MobiPocket`                         | partial                                  | none           |\n| `MyBibleZone`                        | partial                                  | none           |\n| `OSIS` + `SWORD`                     | partial                                  | none           |\n| `BibleAnalyzerDatabase`              | minimal                                  | none           |\n| `BibleWorks`                         | minimal                                  | none           |\n| `BrowserBible`                       | minimal                                  | none           |\n| `ESwordHTML`                         | minimal                                  | none           |\n| `ESwordV11`                          | minimal                                  | none           |\n| `EquipdEPUB`                         | minimal                                  | none           |\n| `HaggaiXML`                          | minimal                                  | none           |\n| `MyBibleZoneCrossreferences`         | minimal                                  | none           |\n| `MySword`                            | minimal                                  | none           |\n| `OSHB`                               | minimal                                  | none           |\n| `Obsidian`                           | minimal                                  | none           |\n| `OnLineBible`                        | minimal                                  | none           |\n| `QuickBible`                         | minimal                                  | none           |\n| `SoftProjector`                      | minimal                                  | none           |\n| `StrongConcordance`                  | minimal                                  | none           |\n| `StrongDictionary`                   | minimal                                  | none           |\n| `SwordSearcher`                      | minimal                                  | none           |\n| `TheWord`                            | minimal                                  | none           |\n| `UnboundBible`                       | minimal                                  | none           |\n| `Volksbibel2000`                     | minimal                                  | none           |\n| `YCHPalmBible`                       | minimal                                  | none           |\n| `ZefDic` *(2x)*                      | minimal                                  | none           |\n| `ZefaniaXML` *(3x)*                  | minimal                                  | none           |\n\n\nLimitations\n-----------\n\n\nWhen comparing the bible formats that are currently used (both free and commercial), they\ncan be divided into two broad categories (or paradigms).\n\n**The first category** uses books, prologs, chapters, verses and head-lines as primary\nstructural elements. As a consequence, formattings/styles cannot span verse boundaries,\nand paragraph separators are always inside (or often at the end of) verses.\n\nZefania XML, Haggai XML, TheWord, PalmBible+, e-Sword, SWORD, most online bible\nwebsites, and also the commercial MfChi\nformat follow this category. Therefore, the format internally used by this converter\nfollows this category.\n\n**The other category**, which covers popular formats like Logos Bible Software or\nUSFM, treats formattings and paragraphs as primary structural elements. Within these\nformattings, so-called milestone markers are used to denote the beginning and end of\nchapters and verses. Prologs, appendixes, or headlines are a concept that does not\nexist (and neither is required) for this paradigm - text that is inside a chapter\nbut before the first verse happens to be a chapter prolog, for example.\n\nNon-bible-specific Export formats like MobiPocket, HTML or ePub can also handle\nthese formats quite well, by skipping all the milestone markers.\n\n**OSIS** is some kind of hybrid format, as the creator can decide whether formatting\nor structural elements are represented as nested tags; the other type is then\nrepresented as milestones.\n\n**As this converter internally uses the first category**, conversions between\ndifferent second-category formats (like from verse-milestoned OSIS to Logos) will\nalways lose more information than needed; if you want to convert this way, perhaps\nanother converter tool is more appropriate for your needs. As soon as either the\ninput or the output format is of first category, this converter probably outperforms\nother converters easily.\n\nIn addition, some Bible formats have very sophisticated formatting features (which\nare not used by most of the available modules), like several paragraph styles or even\nlist and tables. All these formats get reduced to the bare minimum: paragraph breaks\nas well as line breaks with and without indentation.\n\n\nReporting exporter bugs\n-----------------------\n\nIn case you are trying to export a module, but the exporter throws an error message you\ndo not understand, I'd prefer if you could share a **Diffable** version of the module\nwith me. However, I understand that this is not always possible, e.g. due to copyright\nrestrictions. In that case, you can try if the bug can still be reproduced after\nexporting export the module using the **ScrambledDiffable** export format; this format\nis designed to leave the structure of the document intact but scramble all the (Greek\nand Latin) letters and digits are scrambled beyond repair (or repairable with a password\nif you prefer).\n\nTry using `=23` as argument first, which should replace all letters by 'X', resulting in\na well compressible file. In case that one does not reproduce the bug, use without\narguments (random numbers). In case you want to share a Bible where others are able to\ncompare if their verses are the same, use '#SHA-1' as argument; that way, the same verse\nwill scramble to the same 'ciphertext', so the resulting files are still diffable although\nunreadable. In case you have to be able to reverse the scrambling (if the whole file is\nunchanged), you can use '+Password' for initial scrambling and '-Password' for later\ndecrypting. To verify if two bible were scrambled from the same source (using different\nparameters), scramble them again in constant mode, and diff the results. Note that since\n'encrypting' uses a stream cipher, if you use the same password for more than one file, an\nattacker with cryptanalysis background that knows only this piece of information can use it\nfor correlation attacks to get the plain text. Therefore, use different passwords for\nmultiple bibles (like, add the bible name to them), or better, use real encryption like AES\ninstead.\n\n\nVersification handling\n----------------------\n\nMost Bible formats do not care about versifications (they just store `book chapter:verse`\nwithout caring how many verses a certain chapter has), or support only a single versification\n(usually `KJV` or `KJVA`). Exceptions being SWORD and Logos, which encode the versification mapping\nin the bible itself. Therefore, this converter usually does not care about versifications; in case\na format is limited to a versification, verses will be merged until they fit.\n\nHowever, there is some support for handling \"external\" versification mappings (stored in `.bmcv`\nfiles). A `Versification` tool can be used to import and export versification mappings from\ndifferent formats, and perform some other modifications (like renaming or deleting versifications,\nor joining or comparing them). A `VersificationDetector` export filter can be used to determine\nwhich versification in a `.bmcv` file fits a given bible best. And a `VersificationMappedDiffable`\ncan be used to \"change\" the versification of an existing Bible text.\n\nWhen referring to versification mappings in a file, the general syntax is `from`/`to` or\n`from`/`to`/`number`. Use the latter form (`number` starts with 1) in case there is more than\none mapping stored in your file between the same two versifications. If you use the form without\nnumber, but there are multiple mappings, the system will automatically try to find the \"best\" mapping;\ni. e. the one that maps more verses and/or maps them more precisely (e. g. a mapping that maps Gen 1:1\nto Gen 1:1 and Gen 1:2 to Gen 1:2 is more precise than a mapping that maps Gen 1:1-2 to Gen 1:1-2). In case\nthis cannot be determined, an error message is shown.\n\nWhen merging mappings from multiple files, you can come into a situation where you have two versifications\nthat represent essentially the same bible, but have different names. Trying to join a path between these two\nversifications will fail (as there is no common mapping). In this case, you can write `name1`/`name2`/-1 to\ndynamically create an identity mapping: all verses that exist in both versifications automatically map to\nthemselves, all other verses are unmapped.\n\nSupported Versification formats:\n\n- **BMCV** (own database format): Import and export (versifications and mappings)\n- **KJV** (hard-coded KJV versification): \"Import\" only (no mapping)\n- **[CCEL](https://web.archive.org/web/20190204014352/https://ccel.org/refsys/refsys.html)**: Import and export (versifications and mappings)\n- **[OpenScriptures](https://github.com/openscriptures/BibleOrgSys/tree/master/BibleOrgSys/DataFiles/VersificationSystems)**: Import only (versifications only, no mappings)\n- **SWORDVersification**: Import versifications and mappings from SWORD\n- **AccordanceReferenceList**: Import a reference list from Accordance\n- **SoftProjectorVersification**: Import versification mapping from SoftProjector bible\n- **ReportHTML**: Export only (HTML report that shows difference of covered verses)\n\nSWORD import\n------------\n\nAs the SWORD format is quite complex, I'm using a third party library JSword for parsing it.\nThat library adds quite some footprint to the application (almost 20MB) so SWORD import is\nonly available in a special SWORD edition, which is available as a separate download (but\nin the same source repository).\n\nSWORD is special in the sense that you do not have a file to import, but a module\ndirectory and some bibles in there to import (specified by initials). Just separate those\nby a slash, and use this as the filename.\n\nIn case you do not have a SWORD module directory locally, you can use the **SWORDDownloader**\ntool to download some bibles from a SWORD http repository into a new module directory.\n\n\nParatext formats (USFM/USX)\n---------------------------\n\nNot all verse number formats are supported by Paratext, the following conversions can occur\nwhen converting from a non Paratext format to a Paratext format (warnings will be shown\nwhen these occur):\n\n    - 11/13 becomes 11\n    - 4.6.9 becomes 4\n    - 2G becomes 2\n    - 10/12G becomes 10\n    - 1-4.7 becomes 1-4\n    - 1.4-7 becomes 1\n\nUBXF Support\n------------\n\nUBXF bibles are based on USFM 3 but contain extra alignment milestones that can be used to\nalign the text to another UBXF bible. In general, the `\\w` tags in UBXF bibles only contain\nlemma and morphology information if the bible is in a source language - other bibles contain\nalignment information to another Bible instead. BibleMulticonverter can perform the following\noperations on UBXF files:\n\n- Add `srcloc` attributes to `\\w` tags of source bibles, simply by counting them within a verse\n- Create a database file that contains word information from a (source language) bible and maps\n  it to Lemma/Strongs/Morphology\n- Use this database file to augment alignment milestones in a translated bible with those data\n- Create new `\\w` tags for parts between aligment milestones, if your bible does not have them\n  and/or you want them grouped by source word not by translated word.\n- Fill `\\w` tag attributes based on the augmentations in the alignment milestones (to convert to\n  a format that does not support aligment milestones, i.e. most formats)\n- Convert grammar tags (strongs,morphology) from the format used by\n  [unfoldingWord][https://unfoldingword.us/] to normal Strongs/RMAC/WIVU tagging used by other formats\n\nDepending on which UBXF translations you have and what format you ultimately want to convert them\nto, you will have to find out which of the steps above you want to perform and which ones not.\n\n\nE-Sword export\n--------------\n\nBibleMultiConverter has two export filters. One (**ESwordV11**) targets the new (version 11)\nmodule format, which is based on SQLite and HTML, and can be exported without any third party\ntools and natively supports Strong's numbers and footnotes.\nThe other one is the format for older versions (**ESwordHTML**), requires third party tools\n(ToolTipTool), and does not support native footnotes (puts them into a commentary module instead).\nThe rest of this chapter is about the second one.\n\nTo export for E-Sword, first use the ESwordHTML export filter, which generates two\nHTML files (.bblx.html and .cmtx.html) which can then imported into ToolTipTool and\nconverted to an E-Sword Bible. As the HTML import filter of ToolTipTool is a bit buggy\nand nondeterministic (it tends to insert line breaks in the middle of lines, resulting\nin conversion errors; sometimes it helps to just import the same file again, sometimes\nnot) there is a special \"marker\" parameter that can be set to anything that does not\noccur in the bible text (`$EOF$` works fine usually). Then import in ToolTipTool NT\n(dont mind if extra newlines get added), export in ToolTipTool NT as RTF, and run\n**ESwordRTFPostprocessor** over the RTF file to fix it. The fixed RTF file can then be\nimported in ToolTipTool without issues and converted as desired.\n\n[In case you know an easier way to deal with this issue, please tell me :-). If you\nwant to contribute an E-Sword exporter that directly writes the SQL Database files,\nit will be very much appreciated.]\n\n\nLogos Bible Software export\n---------------------------\n\nAs the dependencies are quite large and non-free, this feature is only available\nin the \"Logos Edition\" which is a separate binary download (but included in the\nsame source repository). As this format is quite complex (compared to the others),\nthis export is a multi-step process:\n\nFirst run the **LogosVersificationDetector**, which will find a verse map for you\nthat covers (hopefully) all verses of your Bible. Then run **LogosHTML** to produce\na HTML file, which you can open in LibreOffice (HTML Writer format) and save as .docx\n(Office 2007 XML format). Note that HTML import in LibreOffice 7.6 is totally broken,\nand in LibreOffice 24.2 it changed in incompatible ways, for now please use LibreOffice\n7.5 or older for conversion.\n\nIn case your bible contains cross references to books/verses that are not covered\nby your bible itself, don't forget to pass the `-xref` option to the versification\ndetector, as Logos will not render datatype links to cross references that do not\nexist in the verse map (In case you do not get a match that covers both your verses\nand your xrefs, but there is a match that covers all verses, use that one, as it is\nbetter to lose datatype links for your cross references, than to lose some verses).\n\nAs LibreOffice has some limitations in exporting of hyperlinks, if your original bible\ncontained Grammar information (Strongs or Morphology tags), you will have to run the\nresulting DOCX file through **LogosNestedHyperlinkPostprocessor** or the Grammar\ninformation will look broken in Logos.\n\n[In case anybody wants to contribute a Logos exporter that directly writes .docx files,\nit will be very much appreciated.]\n\n### Logos Word Numbers\n\nAn integral part of Logos' native resources are word numbers. These are used to link\nindividual words in a Bible text to their greek/hebrew/aramaic sources and power features\nlike word-for-word-highlighting and most advanced search and Factbook options. If your Bible\nincludes source indices / source locations that follow any of the editions covered by\n[Aligned Bible Corpus Data](https://github.com/schierlm/aligned-bible-corpus-data) (for example\nTAHOT, OSHB, LHB, UHB, TAGNT, SBLGNT, RP05, RP18, NA28 or UBS4), you can use this resource alongside with word\nnumbers lists available on the [Logos Wiki](https://community.logos.com/kb/articles/2793-word-numbers),\nto add word numbers to your converted Logos Bible. (In case your Bible does not have source locations, but it has\nStrong's numbers and another Bible that uses the same Strong's number scheme has source locations\nto a supported edition, you can use the **AugmentGrammar** module to transfer the word numbers\nfrom one resource to the other one). Note that the word number files on the Logos wiki do not include word counts\nfor verses, so even if you want to use exactly the same edition as covered by the file (e.g. LHB), you still\nneed to convert the text file to a database and then back to a word map file which includes this information.\n\nFirst you need to use **LogosWordNumberTool** to build a database that covers your edition.\n\nAt the time of writing, this example imports all available word number files into two databases for OT and NT:\n\n    LogosWordNumberTool ot.db import abcd/hebrew_mini.csv LHB wiki/wordnumber-lhb.txt\n    LogosWordNumberTool nt.db import abcd/greek_mini.csv SBLGNT wiki/wordnumber-sblgnt.txt\n    LogosWordNumberTool nt.db importapparatus abcd/sblgnt_apparatus.csv wiki/wordnumber-sblgnt-apparatus.txt SBL NA28 RP05\n    LogosWordNumberTool nt.db import abcd/na28+ubs4.csv NA28 wiki/wordnumber-na28-additions.txt\n    LogosWordNumberTool nt.db import abcd/greek_mini.csv RP05 wiki/wordnumber-rp05-additions.txt\n\nThen, convert your db to a word map for the desired target edition using the **exportmappeddb** subcommand.\n\nWhen you have an edition covered by the corpus data but without individual word number data (like UBS4, RP18, OSHB),\nsome word number assignments may be ambiguous: When your edition, compared to one with word number data available,\nreplaces a single word with a single other word, that new word may get assigned the same word number or a different one.\nIn the alignment data, it is usually mapped to the same line, so by default, it will get assigned the same word number\nin the converted Bible. If you want to avoid that, use the **updatewordlock** subcommand to create a wordlock file for\nyour source edition(s); the target edition will then only use the word if it matches one of your source editions (after\nnormalizing Unicode and stripping non-letters and modifier letters).\n\nFinally, use the `-Dbiblemulticonverter.logos.wordnumberfiles` option to point to your word maps (one for OT and one for NT)\nwhile using the **LogosHTML** export module.\n\n\nAccordance export\n-----------------\n\nAccordance export also is quite complex, but this time not because of the complexity\nof the format, but because of some quirks in Accordance and because - due to the\nlimited features - there are several common workarounds available (which are used by\npeople when manually creating modules as well), but which do not apply to every module.\nSometimes, it makes even sense to create multiple modules of the same bible with\ndifferent options and use them at the same time.\n\nCharacter formats are limited to bold, italic, underlined, small caps, subscript,\nsuperscript, and 20 named colors. While it is quite common to format divine names\nin small caps, and words of Jesus in red (which by the way is the only color that\ncan be switched on and off in the settings), it is unclear how to format e.g.\nprologs, headlines or footnotes, or whether to include them at all. Another\npeculiarity: When searching in the module, you can exclude text that is written\nin square brackets; therefore some people like to put these kinds of content\ninto square brackets; others (who prefer \"clean\" display) do not.\n\nTherefore, it is possible to configure the appearance of each of the available\nBible features individually, and whether they should be exported at all. Features\nused in the text that are not configured (except the aforementioned divine names\nand words of Jesus) cause a warning. Each feature can be configured independently\nhow it should appear if it occurs in a chapter prolog. Available appearance options\ninclude the mentioned character formats, adding newlines or paragraphs before/after\nthe items, and putting the item in round, square or curly brackets.\n\nAs character set, MacRoman or UTF-8 can be used; while MacRoman is supported better\nby older Accordance versions, UTF-8 supports more characters. Line endings can be CR\nor LF; again CR for better compatibility, LF for interoperability with other editors.\n\nFor all the options, see the help text of the module.\n\n\nAnother point to keep in mind are versification schemas.\n\nWhen importing a Bible in accordance, there are basically two options for the\nVersification schema:\n\n- When choosing \"Standard KJV\", you are quite free what verse numbers to include.\n  As long as they basically fall inside the bounds of the KJV (about 10 more verses\n  are permitted per book), verse numbers can be omitted and the number of actual\n  verses in a book does not matter (as long as there is at least one). As a\n  disadvantage, viewing this Bible in parallel with other (official) Bibles will\n  likely not match your expectations.\n\n- The other option is to choose to take the versification scheme of any other\n  Bible you own. In that case, the verse numbers (and order and gaps) have to match\n  the verse numbers of that Bible exactly. If verses at the beginning or in the middle\n  are missing, wrong verse numbers are displayed next to the verses (even when the Bible\n  is shown alone), and if verses at the end are missing or too many, only the parallel\n  view is impacted. But, on the other hand, parallel display with other Bibles will\n  most likely work as you would expect.\n\nTo cover these two variants, there are several options in the exporter.\n\n- By default, reordered verses will be sorted (and the format for the real verse\n  number can be given by the `VN=` option, `VN=BRACKETS+CERULEAN` is a good option),\n  but apart from that, verses will stay as they were in the import file. This option\n  is often suitable for \"Standard KJV\" versification.\n\n- When specifying `verseschema=restrictkjv`, verses that lie outside\n  the KJV versification will be joined, again using the `VN=` option for the real\n  verse numbers.\n\n- When specifying `verseschame=fillone`, verses that are missing and lie before\n  an existing verse (starting with verse 1) will be filled with `-`. This is the\n  poor man's option when using an existing versification scheme, in the hope that\n  this scheme does not have any reorderings or gaps, and will not help for\n  parallel view.\n\n- When specifying `verseschema=fillzero`, some Psalms (in particular 3-9, 11-32,\n  34-42, 44-70, 72-90, 92, 98, 100-103, 108-110, 120-134, 138-145) will be filled\n  starting with verse 0. This helps for versification schemes that follow KJV and\n  put the psalm title into verse 0, but still only a workaround.\n\n- The best option when using custom versifications is to export a reference list\n  from Accordance (or more if you are unsure which versification to use), import\n  them into BibleMultiConverter and then specify the versification as\n  `verseschema=\u003cname\u003e@\u003cdbname\u003e`. In that case, the versification schema is\n  followed exactly, omissions are moved to the previous verse (if present) and\n  reorderings are followed at a best effort basis. In addition, missing verses\n  at the end of the book will also be filled with `-`, and extra books will be\n  merged with the previous book.\n\n- In some cases, the total verses of a book would follow an existing versification\n  exactly, except that the chapter boundaries are moved. There are two options how\n  this can be handled: either add a `#` sign to the `verseschema=` option (like\n  `verseschema=#\u003cname\u003e@\u003cdbname\u003e`), which means that the export will still follow the\n  verse schema exactly, only that in case a book contains both gaps (empty verses)\n  and merged verses, verse content gets shifted to keep every verse separate (adding\n  real verse numbers to the beginning of the verse text). Another option exploits an\n  implementation detail in Accordance 13: In some cases, it is possible to import for\n  a versification in case the total verse number matches but not the chapter boundaries\n  (e.g if a versification has chapters with 13 and 9 verses, and the bible has 12 and 10\n  verses, it imports fine). To allow that kind of verse number tweaking,  you can give a\n  `verseschemashift=\u003cnbr\u003e` option, where `\u003cnbr\u003e` is the number of verses that may\n  be added/removed from a single chapter. In case a chapter has gaps at the end of\n  one chapter and merged verses at the end of another chapter, the verse schema is\n  tweaked accordingly. If you want to see when this happens, add a `+` to the beginning\n  of the number.\n\nThe usual workflow when using custom versifications is as follow\n\n1. Identify which versification formats you may want to use (or export all\n   if you are unsure and have the time/patience to do so).\n\n2. Export a versification list from Accordance. To do so, open the corresponding\n   Bible, choose `Display-\u003eSet Text Pane Display-\u003eShow As-\u003eReferences only` as well\n   as `Display-\u003eSet Text Pane Display-\u003eAdvanced-\u003eUse English Book Names`. Then, select\n   all verses (`Edit-\u003eSelect All`) and save them using\n   `File-\u003eSave Text Selection-\u003ePlain Text...`.\n\n3. Import the versifications into BibleMultiConverter. Therefore, a database file\n   with extension `.bmcv` (BibleMultiConverter Versification) is created. The command\n   to do so is:\n\n       java -jar BibleMultiConverter.jar Versification \u003cfile\u003e.bmcv import AccordanceReferenceList \u003cfile\u003e.txt \u003cNAME\u003e\n\n   Repeat this for every versification you want to import, into the *same* database\n   file, but using *different* names.\n\n4. Run **VersificationDetector** to decide which module to use. Use the options\n   `-title` and `-ignoreheadlines` for best results.\n\n5. Do the actual conversion, using the `verseschema=` option as mentioned above.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschierlm%2FBibleMultiConverter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschierlm%2FBibleMultiConverter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschierlm%2FBibleMultiConverter/lists"}