[sword-devel] HTML filter cross references link

Manfred Bergmann bergmannmd at web.de
Mon Jul 28 00:18:37 MST 2008


Hi Ben.

Ok, one can get the cross-references by getting the entry attributes.
But if the body is not passed in again to the filter you can't figure  
anymore to which word the cross-reference is related to by just  
parsing the attributes.
The only chance to get the relationship is to show the information in  
the tooltip or while clicking on the cross-ref link.
Please correct me if I'm wrong.
If this is correct I have to say that this is quite unflexible.
If someone chooses to not render anything related to cross-references  
but still wants to have the data (to show it somewhere else) there is  
no way to get the word -> cross-ref relationship.



Regards,
Manfred


Am 28.07.2008 um 01:35 schrieb Ben Morgan:

> Yes, there was a change.
> I had to change BPBible as well :)
>
> >From r2157:
> Modified: trunk/src/modules/filters/
> osisfootnotes.cpp
> ===================================================================
> --- trunk/src/modules/filters/osisfootnotes.cpp 2008-05-13 02:58:16  
> UTC (rev 2156)
> +++ trunk/src/modules/filters/osisfootnotes.cpp 2008-05-13 23:37:56  
> UTC (rev 2157)
> @@ -108,7 +108,7 @@
>                                        hide = false;
>                                        if (option ||  
> (startTag.getAttribute("type") && ! 
> strcmp(startTag.getAttribute("type"), "crossReference"))) {    // we  
> want the tag in the text; crossReferences are handled by another  
> filter
>                                                text.append(startTag);
> -                                               text.append(tagText);
> +//                                              
> text.append(tagText);   // we don't put the body back in because it  
> is retrievable from EntryAttributes["Footnotes"][]["body"].
>                                        }
>                                        else    continue;
>                                }
>
> As it says, you can just get the text using getEntryAttributes at  
> the end of the note.
>
> The way BPBible installs custom filters is by subclassing the  
> MarkupFilterMgr's AddRenderFilters, rather than the SWMgr's
>
> It would be nice if you could pass the filters you wanted used in,  
> though. This would be a pretty common use case...
>
> God Bless,
> Ben
> -------------------------------------------------------------------------------------------
> The Lord is not slow to fulfill his promise as some count slowness,
> but is patient toward you, not wishing that any should perish,
> but that all should reach repentance.
> 2 Peter 3:9 (ESV)
>
>
> On Sun, Jul 27, 2008 at 9:09 PM, Manfred Bergmann  
> <bergmannmd at web.de> wrote:
> Hi Troy.
>
>
> Am 26.07.2008 um 18:44 schrieb Troy A. Griffitts:
>
> >       Do you have:
> >
> >      swordManager.setGlobalOption("Cross-references", "On");
> >
> > anywhere in your code?
>
> Yes.
> I just tested a version of MacSword with Sword library 1.5.10 where
> the cross ref list (<reference> elements) are placed inside the note
> element and are passed to the HTML filter.
> Has there been a change for this from 1.5.10 to 1.5.11?
>
> > Yes.  You should never have to call AddRenderFilter to a module,
> > though
> > we do allow you to add your own special filters by overriding the
> > virtual SWMgr::AddRenderFilters() method if one of the default SWORD
> > filter sets does not work for you.  Not sure how MacSword does it  
> now.
>
> Hmm, we are doing exactly that ATM.
> We didn't override AddRenderFilters() in SWMgr but set Filter subclass
> instances for every module in a loop via Module::AddRenderFilter().
> So the prefered way is to do this via SWMgr::AddRenderFilters().
>
> > The MarkupFilterMgr is the mechanism to ask SWORD to give you a
> > specific
> > output markup from RenderText().  This code figures out which filter
> > set
> > to apply to each module depending on the module SourceType (OSIS,  
> GBF,
> > ThML, etc...) and will apply the correct filters to meet your
> > requested
> > output type.  But if you can't use any of the default filter sets,
> > then
> > you'll have to override SWMgr::AddRenderFilters() and apply your
> > custom
> > filters.
>
> We did that and used RenderFilters from BibleTime project from 2001.
> But I adapted some changes of the current Sword render filters so the
> new attributes are checked for additionally to the depricated ones.
>
>
>
> Regards,
> 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




More information about the sword-devel mailing list