bug-texinfo
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mapping node names to filenames/urls


From: Eli Zaretskii
Subject: Re: mapping node names to filenames/urls
Date: Fri, 15 Feb 2002 11:43:21 +0200

> Date: Thu, 14 Feb 2002 23:50:59 -0800
> From: Per Bothner <address@hidden>
> 
> 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.)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]