We use lots of olinks in our docbook. Olinks are a fabulous advance
in cross-referencing (as explained in Bob Stayton's The Complete
Guide) but we have one difficulty with them: it's a pain for authors
to look up target attributes (targetdoc and targetptr). They're are
scattered throughout all our olink databases, and reading raw xml
will make you blind.

So in case anybody else can use it, here's my low-tech solution, as
usual standing on the shoulders of giants, taking advantage of XXE's
CSS formatting.

Snip the lines below and save as sitemap.css:


/***************************************************************
  sitemap.css

  This CSS renders a docbook sitemap file in XML Mind in a form-like
    format. A sitemap catalogs olink targets across documents for
    DocBook cross-referencing. Olink targets can be included as olink
    databases generated by DocBook, or entered manually in the sitemap.

    I think the formatting makes the sitemap more useable than the raw XML
    for authors looking up olink targets. That's the intent anyway.
    To use it, simply edit your sitemap and add a call to this file under
    the XML declaration, like this:

      <?xml version="1.0" encoding="UTF-8"?>
      <?xml-stylesheet type="text/css" href="sitemap.css"?>

    Then copy this file to where the href points, and open your
    sitemap XML file in XXE. Note that this file uses some non-standard
    XXE-based CSS to display attributes, so it won't work correctly in a
    web browser.

    Note that XML Mind displays olink databases that are included in your
    sitemap. As with any master document in XXE, a tinted background
    indicates a referenced, non-editable document; local content
    and manual document entries have a white background and can be edited.

***************************************************************/


targetsetinfo  {
     display:block;
     padding: 5px;
     color: gray;
}

/*
DIR rules
*/

dir:before {
     content: "<dir>\A"attributes();
     margin-top: 20px;
     margin-left: 20px;
     font-size:150%;
     font-weight: bold;
     color: red;

}

dir::attribute() {
     display:block;
     attribute-content-left: attribute-label() ":";
     attribute-content-middle: value-editor(attribute, attribute());
     show-attribute: always;
}


/*
dir::attribute(name) {
     attribute-content-left: "name: ";
}
*/

dir {
     display:block;
     padding: 5px;
     margin: 5px;
     border: 2px dotted green;
}


/*
DOCUMENT rules
*/

document:before {
     content:"<document>\A"attributes();
     margin-top: 20px;
     margin-left: 20px;
     font-size:120%;
     font-weight: bold;
     color: green;

}

document::attribute() {
     attribute-content-left: attribute-label() ":";
     attribute-content-middle: value-editor(attribute, attribute());
     show-attribute: always;
}

document::attribute(targetdoc) {
     attribute-content-left: "Targetdoc:";
}

document {
     display:block;
     padding: 5px;
     margin: 5px;
     margin-left: 10px;
}


/*
DIV rules
*/

div:before {
     content:"<div>\A" attributes();
     margin-top: 20px;
     margin-left: 20px;
     font-size:100%;
     font-weight: bold;
     color: blue;

}

div::attribute() {
     attribute-content-left: attribute-label() ":";
     attribute-content-middle: value-editor(attribute, attribute());
     show-attribute: always;
}

div::attribute(number) {
     show-attribute: never;
/*    attribute-content-left: "Number:";*/
}

div {
     display:block;
     padding: 5px;
     margin: 5px;
     margin-left: 10px;
     border: 1px solid black;

}

div  {display:block;}

ttl:before {
     content: "Ttl:            ";
     color: blue;
     font-size:100%;
     font-weight: bold;
     }

ttl {display:block;}

xreftext:before {
     content: "Xreftext:    ";
     color: blue;
     font-size:100%;
     font-weight: bold;
     }

xreftext {display:block;}



Reply via email to