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