On Sun, May 05, 2019 at 09:35:46PM +0100, Gavin Smith wrote: > Links to nodes in HTML output currently always have a filename and a > fragment identifier, as follows: > > https://www.gnu.org/software/emacs/manual/html_node/elisp/Lisp-Data-Types.html#Lisp-Data-Types > > "Lisp-Data-Types" is repeated. > > I wonder if it would be possible not to output the "#Lisp-Data-Types" > part of it.
For links to external manuals, I don't think that we should omit the target. But for internal links, I think that it is possible to determine if there is only one node in an output file and do not output a target in that case. I can do the code after the 17 may if needed. > > This would make the HTML output simpler. It would also mean that the > position of the page when it was loaded didn't depend on the length of > the node: a link to a long node doesn't go exactly to the top of the > page, but a link to a node which fits in a single screenful does. > Compare > https://www.gnu.org/software/emacs/manual/html_node/elisp/Lists.html#Lists > with > https://www.gnu.org/software/emacs/manual/html_node/elisp/Index.html#Index > The latter is scrolled slightly. > > This will become more of an annoyance when there is keyboard > navigation; for example, continually pressing "n" to go to the next node > will cause the page to wobble up and down according to the length of the > nodes. > > It wouldn't be completely trivial to make this change, as it should only > happen if the output is split by node. There is also a case, I seem to > remember, where more than one node can be output in the same file if the > system has a case-insensitive file system. >
