Re: using olinks everywhere?

Mark Giffin <[email protected]>
Newsgroups gmane.text.docbook.apps
Message-ID <[email protected]>
Thanks very much for the detailed answers from many people! Exactly the 
kind of info I need. I even got a bonus with the inter-PDF linking 
information, which will come in handy if I ever decide to try that again.

Barton, I am not running 4.3 and 5.1 docbook in the same build. They are 
run separately so there's a minimum of problems. I'm also converting 
everything to 5.1 soon, so that will help.

Mark

On 7/10/2020 6:17 AM, Barton Wright wrote:
> The 5000-page doc set I support 
> <https://docs.tibco.com/pub/str/10.6.0/doc/html/index.html> is heavily 
> olinked between books. It’s a glorious thing for end-users, because we 
> never have to repeat basic information in one book, we just 
> cross-reference to it with an olink to a location in another book.
>
> Our DockBook XML files are one file per article or part, and we 
> Xinclude each book’s files into the index.xml <book> file for the book.
>
> We still use link and xref for same-page (same file) cross-refs, but 
> all other cross-refs are olinks. Olinks are a PITA to work with, 
> require strict discipline, and they double your doc set build times 
> because you have to run two XSL passes over the entire doc set: one to 
> build the olink database, the other to build the HTML for each book. 
> However, the value for end-users and the avoidance of repeated text 
> for you are worth it.
>
> The trick to making an olink system work is setting up your 
> <targetset> XML file (that uses Norm Walsh’s targetetdatabase.dtd). 
> This file is a description of the ultimately /installed and 
> deployed/ folder structure of your doc set. Then, as an authoring 
> convenience, keep your /development/ folder structure identical to the 
> eventual /deployed/ folder structure, with one book’s files in each 
> parallel folder.
>
> The strict discipline required is that each combination of 
> /targetdoc/ plus /targetptr/ attributes in your entire olink database 
> must be globally unique. If you have duplicate attribute combos in 
> different places, say, books A and B, pages AA and BB, then a 
> cross-ref to B+BB ends up pointing to the first instance encountered 
> during the doc build, A+AA, which is almost certainly not what you want.
>
> We set up a policy of naming our DocBook files and their containing 
> folders so that cross-referencing to them is as easy as possible, and 
> so that ID combos are always unique. The <targetset> file will name 
> /folders/ as locations. We then have a strict policy that the ID for 
> each <article> or <part> file is the exact same as the file’s 
> basename. That way, you don’t have to stop to look inside a file to 
> obtain the /targetptr/ attribute to point to in your olink, you just 
> look at a folder listing in your OS. The /targetptr/ attribute of an 
> olink to the top of each article file is always the basename of the file.
>
> Further, our policy is that <section> IDs always begin with the 
> article ID. So file *expr-eval.xml* has an <article> ID of 
> *expr-eval*, and section IDs take the form *expr-eval_/sectionname/*. 
> This, again, is to make all section IDs globally unique and to cut 
> down on having to look much inside target files to find the cross-ref 
> /targetptr/ attribute. Yes, this means that you can cross-ref down to 
> the section or subsection level in a page. Or to a table, figure, 
> paragraph or even to a single listitem in a list, as long as it has an ID.
>
> We use XXE as our DocBook editor and love it to pieces. However, we do 
> not use XXE’s built-in support for olinks for various historical 
> reasons. In editing, we construct the olink by specifying the 
> /targetdoc/ and /targetptr/ attributes for each one. Your mileage will 
> vary, depending on your editor and build system.
>
> I would love to claim credit for setting up the system described 
> above, but all praise goes to one Denis Bradford, a former tech writer 
> at our company from a decade ago.
>
> Further notes:
>
>   * PDFs. Yeah, you can’t cross-ref from one PDF into a page or
>     section inside another PDF — or not without profound PDF-fu above
>     my level. Make sure your doc build system for PDFs substitutes
>     reasonable text in place of each olinked cross-ref, or the mastery
>     of your prose will end up garbled in your PDFs.
>   * An olink system can be limiting. For example, we would love to
>     switch to a modern-looking, three-panel webhelp HTML system with
>     each book in the TOC panel and all cross-refs working as expected.
>     (This is what happens in the Eclipse Help version
>     <https://docs.streambase.com/sb16/index.jsp> of our doc set.)
>     However, there is never time to experiment with drastic changes to
>     the doc build system and preserve olink effectiveness at the same
>     time.
>   * You can build one olinked book individually, but its cross-refs to
>     other books might become stale without rebuilding the olink
>     database for entire doc set at the same time. You end up building
>     the entire doc set more often than not.
>   * I have no experience with mixing DocBook 4 and 5 olinks in the
>     same olink database. It should work fine, but you’re on your own
>     there.
>   * I’m amazed that you /can/ mix namespaced and non-namespaced XSL in
>     the same doc build system. You’re a wizard.
>   * You can upgrade your DocBook 4.3 files to 4.5, the last supported
>     version of DocBook 4, by just editing the number in the DOCTYPE
>     line of each file, and adjusting the version of XSL you’re using
>     to match. It was painless for us to do that.
>
>
>
>> On Jul 10, 2020, at 2:12 AM, Mark Giffin <[email protected] 
>> <mailto:[email protected]>> wrote:
>>
>> I have a large collection of user guides in Docbook 4.3 and 5.1, and 
>> they have a top-level Docbook files with a <book> element, and 
>> sub-chapters are pulled in using xincludes like this:
>>
>> <book id="book_1" lang="en" xmlns:xi="http://www.w3.org/2001/XInclude">
>>     <bookinfo>
>>         <title>my title</title>
>>     </bookinfo>
>>
>>     <xi:include href="overview.xml"/>
>>     <xi:include href="platform.xml"/>
>>     <xi:include href="components.xml"/>
>>     <xi:include href="install.xml"/>
>> etc.
>>
>> In the interests of simplicity for authors, we have the idea of using 
>> only <olink>s for linking across these books. Does anyone know of any 
>> problems with using only olinks?
>>
>> Thanks,
>> Mark
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected] 
>> <mailto:[email protected]>
>> For additional commands, e-mail: 
>> [email protected] 
>> <mailto:[email protected]>
>>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.