(find-maximanode ...): elisp hyperlinks to the Maxima manualMy main pages about Maxima are this html page, that is in a human-friendly format, and maxima.e, that is made to be used from Emacs, typically like this. Some of the e-script blocks in maxima.e contain elisp hyperlinks like these ones,
that were trivial to implement in Emacs, but were very tricky to htmlize correctly. For the Emacs side I just had to do this:
The problem is that the Maxima manual uses "@anchor{...}"s - look at Differentiation.texi, for example - and so the string after the `find-maximanode' can be the name of an anchor instead of the name of a node, and we need a way to translate each name of an anchor, like "gradef", to its target... When we compile Maxima like this (the original is here),
it generates a file called maxima-index-html.lisp, that is a translation table in Lisp. The definition of `find-maximanode' in my htmlizer is here; it loads maxima-index-html.lua if it hasn't been loaded yet, and this parses the translation table in Lua with Lisp4.lua and converts it to a Lua table. Then `find-maximanode' uses that table to convert the tag to the a URL, and that's it. |