XSL - chunkovane vystupy a "nerelevantni" search

Miloslav Hertl [GISoft] Hertl na gisoft.cz
Pondělí Leden 12 11:12:37 CET 2004


Dobrý den,
používám DocBook k tvorbě dokumentace ve formátu CHM a s výsledkem jsem
spokojen. Všechny obtíže se daly víceméně překonat. Teď jsem se zabýval
problémem vyhledávání požadovaných stránek. Třeba tento tip pomůže i někomu
z Vás. Pokud ale někdo zná lepší a čistší řešení, rád se poučím.

"Problém" nastává, pokud se používá např. "Navigation footer", kdy pod
odkazy "Další" a  "Předchozí" (např. ukázka na nám všem známým stránkách
http://kosek.cz/xml/db/literatura.html - úplně dole) je zobrazen nadpis
předchozí/další kapitoly. Vyhledávání pak nalezne i víceméně nerelevantní
předchozí/další stránku. Zobrazování názvů předchozích/dalších stránek je
však natolik užitečné, že jsem se snažil tento problém obejít. V CHM to bylo
možné ošidit pomocí javascriptu. Text generovaný javascriptem je searchem
CHM ignorován.

Ve své úpravě jsem XSL jsem předefinoval standardní generování
odpovídajícího textu pro "$next"

<xsl:apply-templates select="$next" mode="object.title.markup"/>

takto:

<script language="JavaScript" type="text/javascript">
   <xsl:text> document.write('</xsl:text>
      <xsl:apply-templates select="$next" mode="object.title.markup"/>
   <xsl:text>'); </xsl:text>
</script>

Samozřejmě je nutné obdobně upravit "$prev" a případně i "$up" a "$home".
--------------

Nevím jak se k javascriptům staví internetové vyhledávače (např. Google),
ale pokud je také ignorují, bylo by vhodné to implementovat přímo do
distribuce XSL pro DocBook.

S pozdravem
Miloslav Hertl


Další informace o konferenci Docbook