[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...
-John
More information about the sword-devel
mailing list