[sword-devel] OSIS markup best practice: sanity check

John Austin gpl.programs.info at gmail.com
Fri May 2 00:36:39 MST 2014

IBT's repository has dozens of SWORD Bible modules, and they all need to 
be rebuilt for SWORD 1.7+ using OSIS module best practices (as outlined 
in the extremely useful CrossWire wiki). Below are some conceivably 
controversial issues. We hope to achieve excellent module functionality 
with the various front-ends. So if you see something below which makes 
you groan, please speak up. Otherwise, the plan is to proceed as follows:

- Missing books, chapters, or verses within a Bible's chosen v11n will 
be completely left out of the OSIS file, and thus out of the module's 
index. There will be no mention of them and no empty holding-places 
within the OSIS file.

- There will be a Scope parameter in the .conf file, formatted as an 
osisID of the specified v11n, which details the books, chapters, and 
verses that are included in the entire module. The Scope param is the 
only way to detect which books (etc) are available in a module without 
first having to install the module, as necessary for some applications.

- Updated SFM to OSIS converters (osis-converters) will closely emulate 
the markup now generated by usfm2osis.py and will utilize its 
extensions. But additionally, the OSIS subType attribute will be used to 
pass optional CSS classes through HTML filters to front-ends which they 
can implement, or not, as desired. For instance: x-p-first (to add a 
drop-cap to some particular paragraph or line-group), x-text-image (for 
an image with text flowing around it) etc.. IBT is soon to begin 
publishing their Children's Bibles as OSIS GenBook modules. They have 
nice pictures, pretty formatting, and audio. Presentation extensibility 
is necessary, and OSIS subType seems to be the best way to encode 
optional presentation classes. NOTE: Front-end implementation of this 
would require either simple additions to osisxhtml.cpp & 
osishtmlhref.cpp (to pass subType as class) or a customized filter.

- Scripture reference tags will all specify target modules using 
osisRefs like this: "ESV:Matt.1.1" (and it may be that the specified 
module is not always installed, thus its av11n unknowable).

- ?? Any other concerns with IBT's modules??

God willing, these new modules will work great on the various 
front-ends. Thanks for reading...

More information about the sword-devel mailing list