Older blog entries for jenglish (starting at number 3)

I have to take back (some of) the nasty things I said about XSLT earlier (13 Jul 2000)... Of course it's possible to do what I was trying to do, and had I bothered to RTFM (XPATH section 12.2, to be precise) it would have been blindingly obvious what I was doing wrong.

I still wish XSLT were more composable, though...

Eric Melski (The Other Tcl Guy) was kind enough to give me write access to the Tcl CVS repository so I could fix markup errors in the man pages... but now I'm swamped with Real Work again so it'll have to wait 'til the weekend.

Finally started writing up those notes on XPath that I've been meaning to write for a while.

Worked on the XML-to-HTML conversion scripts some more on the train this morning. Cross-references are working pretty well now, but thanks to (yet another) XLST limitation, processing the stylesheet is much slower than it ought to be. If I could only do

< xsl:key select="document('INDEX.XML')//DEFINITION"
use="@name"/>
(where INDEX.XML is generated on a separate preprocessing pass) then I could use the key() function to look up cross-references. Since this isn't allowed, it's necessary to do a linear scan through the entire index document for each hyperlink.

XSLT is a really nice language for the most part, but I keep running into (apparently arbitrary) limitations like this. I'd really like to be able to define functions from node-sets to node-sets. xsl:template can emulate node set functions, but can only return strings or result-tree-fragments. Compositionality is lacking...

Well, I guess I'll try this diary thing out...

Trying to get cross-references working right in the Tcl man page conversion. This really boils down to a matter of classifying each "hyperlinkable" term. Right now I'm getting a lot of false positives. For example, if

\fBinterp\fP \fBeval\fP \fIscript...\fP
appears in the NROFF source, the converter will (mistakenly) identify 'eval' as a Tcl command and create a cross-reference to the eval(n) reference page, when it really ought to be tagged as a sub-command instead.

Fortunately, I think I've found a way to partially solve this...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!