> Date: Thu, 14 Feb 2002 23:50:59 -0800 > From: Per Bothner <[EMAIL PROTECTED]> > > Solution: Maintain a table mapping node names to file names. > We call this the file name table. When we see a mode name (in > a menu, xref, or @node header), look for it in the file name > table. If it is found, use the file name in the table for urls. > If not, generate a file name. Try first the simple aesthetic > mapping, where all "funny" characters are mapped to '-'. If there > is no entry yet in the file name table for a node that maps to that > filename, enter the filename in the table, and use it. If there > is a clash, then generate a unique name in some other way. > One way is to use the standard url mangling (i.e. spaces are > mapped to '%20'). Another is to append an integer (i.e. look for > "foo1', then 'Foo2', etc). A third is to use a more complex > mapping - e.g. 'Foo*' gets mapped to 'Foo_star'.
Something like that was the first approach to split-HTML operation. Unfortunately, it loses badly for links between two different manuals, because makeinfo cannot know what nodes are in the other document (that other document might not yet exist), and so cannot reproduce the disambiguation process you describe that will happen when the other document is produced in HTML format, and some of its file names clash. We need a scheme that produces file names for other documents without knowing anything about those other documents except the name of the node that is the target of the xref. (Btw, the table you described already exists in makeinfo: that's how makeinfo keeps track of file names it produced for the current run, and that's how it knows whether a file name it generated will clash with another file name that was already used for one of the previous nodes.) _______________________________________________ Bug-texinfo mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-texinfo
