[sword-devel] Headings, Titles and Intros
Manfred Bergmann
bergmannmd at web.de
Fri Dec 18 09:08:42 MST 2009
Am 18.12.2009 um 13:33 schrieb DM Smith:
> For details see:
> http://crosswire.org/wiki/OSIS_Bibles
> and
> http://crosswire.org/wiki/Osis2mod#Handling_of_Introductions.2C_Titles_and_Inter-Verse_Material
Umm. I haven't seen the wiki page about Osis2Mod.
Actually I think many things there should rather go into OsisBibles instead.
Manfred
> On Dec 18, 2009, at 5:10 AM, Manfred Bergmann wrote:
>
>> Hello Troy.
>>
>> Ok, let me summarise:
>>
>> Headings (as the name of the VerseKey function) are used for module, testament, book and chapter intros.
>>> From looking into osis2mod.cpp they have to be encoded in OSIS like:
>> // Everything between the begin book tag and the first begin chapter tag is inBookIntro
>> // Everything between the begin chapter tag and the first begin verse tag is inChapterIntro
>> Books are encoded with:
>> <div canonical="true" type="book" osisID="Gen">
>> So everything between this tag and the first <chapter /> tag is a book intro and retrievable using:
>> testament.book.0
>>
>> Can the intro be embedded in another node which is not a text node?
>> Chris mentioned something like:
>> <div type="introduction" />
>>
>>
>> The global option "Headings" is used for pre-verse titles/headings.
>> They have to be embedded in a <title /> tag and have to be placed right before the <verse /> tag.
>> They are retrievable using:
>> getEntryAttributes()["Heading"]["Preverse"]["0"]
>>
>>
>>> Hope this is helpful.
>>
>> Yes, very much.
>>
>>
>>
>> Manfred
>>
>>
>> Am 17.12.2009 um 22:52 schrieb Troy A. Griffitts:
>>
>>> Dear Manfred,
>>>
>>> On 12/17/2009 12:02 PM, Manfred Bergmann wrote:
>>>> Is it necessary to use a VerseKey for positioning in order to retrieve the headings?
>>>>
>>> VerseKey::Headings(true|false) is currently how to turn intro records on
>>> and off for VerseKey navigated modules. These include:
>>> testament.book.chap.0 for chapter intro
>>> testament.book.0 for book intro
>>> testament.0 for testament intro
>>> 0 for module intro
>>>
>>> By default intro's are turned off.
>>>
>>> The method name is confusing because 'Headings' was chosen before we had
>>> any semblance of OSIS subheadings in verses. VerseKey::Headings is a
>>> prime candidate for a name change when we normalize the API naming
>>> conventions in 2.0.
>>>
>>>> Which XML/OSIS tags are then used to create the headings in the module?
>>>>
>>> DM and others who maintain osis2mod can answer better than me, but I
>>> believe these intros are populated from an OSIS doc by osis2mod choosing
>>> the interverse text in the correct position, e.g.
>>>
>>> <verse osisID="John.1.51">
>>> ...
>>> </verse>
>>> John Chapter 2 intro material
>>> <verse osisID="John.2.1">
>>> ...
>>> </verse>
>>>
>>> The API lets you set this material with code like:
>>>
>>> VerseKey *vk = (VerseKey *)module.getKey();
>>> vk->Headings(true);
>>> (*vk) = "jn.2.0";
>>> module.setEntry("Intro Text for John 2");
>>> The wiki mentions the <title/> tag and that it has to be placed right
>>> before the verse/chapter.
>>>
>>>> Does this also work for testament and book?
>>>>
>>> Text parsing should work for jn.0.0, but I think you have to use some
>>> crazy text for text parsing of book and testament headings...
>>> Basically, the text you get out of VerseKey::getText() should work for
>>> setting with VerseKey::setText(), but I would suggest just using the
>>> setters:
>>>
>>> VerseKey::setTestament(0);
>>> VerseKey::setBook(0);
>>>
>>>> What is the "Headings" global option doing?
>>>>
>>> Something entirely different. These are for sections headings in the
>>> text, including 'pre-verse' section headings. These can be turned on
>>> and off. Headings are the little blurbs before a section like:
>>>
>>> The Baptism of Jesus
>>>
>>> Some of these are 'pre-verse', which means they should be displayed
>>> before your frontend's verse marker. These can be pulled from
>>> entryAttributes, and each SWORD frontend has chapter display logic
>>> similar to:
>>>
>>> VerseKey *key = (VerseKey *)currentText.getKey();
>>> VerseKey saveKey = *key;
>>>
>>> if (key->getVerse() != 1) {
>>> key->setChapter(0);
>>> } else {
>>> key->setVerse(0);
>>>
>>> SWBuf text = "<html><body>";
>>> for (; ((key->Chapter() == chapter) && (key->Book() == book) &&
>>> !currentText.Error()); currentText++) {
>>>
>>> if (key->getVerse() == 0) {
>>> text += currentText.RenderText(); // intro material
>>> text += "<br/><br/>";
>>> continue;
>>> }
>>>
>>> // see if there are any pre-verse headings
>>> SWBuf preverseHeading =
>>> currentText->getEntryAttributes()["Heading"]["Preverse"]["0"].c_str();
>>> if (preverseHeading.length()) {
>>> text += "<br/><br/><b>";
>>> text += currentText.RenderText(preverseHeading); // do
>>> any tag conversions for our requested markup
>>> text += "</b><br/><br/>";
>>> }
>>>
>>> // render our verse number marker
>>> text += "<font color=\"#0000ff\"><small>" + key->getVerse()
>>> + "</small></font>";
>>> }
>>> text += "</body></html>";
>>> textDisplay->setText(text);
>>> textDisplay->scrollToAnchor("curVerse");
>>> currentText->SetKey(saveKey);
>>>
>>> }
>>>
>>> Hope this is helpful.
>>>
>>> Troy
>>>
>>>
>>>>
>>>>
>>>> Manfred
>>>> _______________________________________________
>>>> sword-devel mailing list: sword-devel at crosswire.org
>>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>>> Instructions to unsubscribe/change your settings at above page
>>>>
>>>
>>>
>>> _______________________________________________
>>> sword-devel mailing list: sword-devel at crosswire.org
>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
>>
>>
>> _______________________________________________
>> sword-devel mailing list: sword-devel at crosswire.org
>> http://www.crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>
>
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
More information about the sword-devel
mailing list