Emacs Should Adopt HTML as Texinfo Replacement

By Xah Lee. Date:

Dan Davison wrote:

What does this syntax mean? “See Info node `(viper)Top'.”

Is there some way of using it to immediately access the info node referred to?

Lennart Borgman wrote:

M-: (info "(viper) Top")

It'd be much better if emacs adopted HTML as its standard doc format.

It would then just be: 〔http://gnu.org/doc/emacs/viper/top.html〕

in this format, every programer understand what it is. In (info "(viper)Top") or (viper)Top, maybe 0.001% of programers knew what it is. If we count among all emacs users who used emacs for at least 1 year, the percentage is perhaps 10%.

Personally, i use emacs daily, staying in emacs most of the time when using computer, since 1998, and have been using text terminal based emacs exclusively from 1998 to 2005. I didn't know what is (info "…") until 2005 or so thru chatting in freenode's emacs irc.

Adopting HTML as standard doc format is easy to do, in fact mostly just a political gesture. The texinfo util already does export to HTML, and most if not all GNU's doc are already presented in HTML format on GNU's site.

With adoption of HTML, people will naturally cite doc by URL instead of lisp code (info …). This will help understanding and consequently spread emacs. For example, if in a discussion in some programing forum, someone might mention “look (info xyz) in emacs”. Vast majority of readers wouldn't understand what that is will simply ignore it. But if HTML doc is official, then the citing would be 〔http://gnu.org/doc/xyz.html〕, and those who saw this are very likely to click it.

This wouldn't effect emacs much since emacs can and should still use info doc in emacs as a integrated system. But down the road, say in 5 years, emacs will need to deprecate texinfo eventually. The HTML/XHTML/CSS/JavaScript world is literally with few million more users and developers. Their tools, technical power, extensibility, adoption… in every area, are few order of magnitude better than texinfo. In fact, it isn't surprising that modern browser such as Firefox actually render a HTML doc faster than emacs can parse a texinfo file.

By adopting HTML now, it can pave the way for emacs transition to using HTML/XHTML as integrated doc component. For example, currently there's w3m for reading HTML. However, it's some 5 times slower than Firefox, and some 5 times slower than info reading texinfo. However, this can be improved. One could have HTML/XML parser builtin elisp as c code (or borrowing the rendering engine from Firefox), so that reading HTML docs in emacs is acceptably fast as current reading in info.

The integrated nature of info in emacs is really a joy to use, especially programing in elisp. You can lookup any function or keyword in the language so easily, and all cross-referenced by a click-able link. However, if the language is not elisp but Perl, Python, PHP, etc, then it's not so easy because you often have to download and install a info version of their doc (if it exist at all), and depending whether the guy who implemented your lang's mode took the fancy to implement info doc lookup features. (in late 1990s, it's not uncommon to see in a newsgroup or mailing list where someone asking about a info version of a language's documentation so that she can browse it in emacs. Today, HTML and browser is so universal and rooted, the “GNU info” format almost unknown outside of hardcore FSF/GNU community.)

When emacs accepted more HTML docs, it would mean the integrated doc feature automatically apply to all langs, such as Java, Perl, Python, Ruby, PHP, JavaScript, … since their official doc are all HTML.

Note: Here's some explanation of “M-: (info "(viper) Top")”. The “M-:” is emacs's notation for keyboard shortcut 【Alt+:】. This shortcut invokes the command eval-expression. So, in order to go to the documentation for “viper” in emacs, a user is told to evaluate the lisp expression (info "(viper) Top"). See also: Emacs M-x key Notation vs Alt+x Notation.

the issue resurfaced by esr.

[On being web-friendly and why info must die By Eric S Raymond. At https://lists.gnu.org/archive/html/emacs-devel/2014-12/msg00347.html , accessed on 2014-12-07 ]

Emacs Modernization

  1. Simple Changes Emacs Should Adopt
  2. Why Emacs Keys are Painful
  3. Problems of the Scratch Buffer
  4. M-key Notation vs Alt+key Notation
  5. Menu Problem
  6. Mode Line Problem
  7. cua-mode Problems
  8. kill-buffer Induces Buffer Accumulation
  9. Emacs Form Feed ^L
  10. Inconsistency of Search Features
  11. Single Key to Delete Whole Line
  12. Emacs HTML Mode Sucks
  13. Emacs Does Not Support Viewing Images Files In Windows
  14. Emacs Spell Checker Problems
  15. Adopt HTML as Texinfo Replacement
  16. Support HTML Mail
  17. Problems of “man” Command
  18. Emacs Lisp Mode Syntax Coloring Problem
  19. Emacs Ahk Mode Problems
  20. Problems of Emacs's Manual
  21. Problems of Emacs's Manual; Examples
  22. Emacs: Have You Read Emacs Manual?
  23. Elisp: Ban Syntax Table
  24. Emacs: Make elisp-index-search use Current Symbol
  25. Emacs: Usability Problems of Mode Documentation
  26. Emacs GNU Texinfo Problems; Invalid HTML
  27. A Record of Frustration in IT Industry; Disappearing FSF URLs, 2006
  28. Emacs Manual Node Persistency Issues
  29. Emacs: dired-do-query-replace-regex Replace ALL (fixed)
  30. Problems of Emacs Supporting Obsolete Systems
  31. Elisp: Function to Copy/Delete a Dir Recursively (fixed)
  32. Thoughts on Common Lisp Scheme Lisp Based Emacs
  33. Text Editors Popularity and Market Research
  34. Text Editor's Cursor Movement Behavior (emacs, vi, Notepad++)
  35. GNU Emacs Development Inefficiency
  36. Emacs Dev Inefficiency and Emacs Web 2.0?
  37. Letter-Case Commands Usability Problems
  38. Emacs: Select Line, between Quotes, Extend Selection
  39. Emacs: isearch Current Word
  40. Suggestions on Line Wrap Commands
  41. Emacs: Single Key to Delete Whole Line
  42. Emacs Undo and Emacs Cult Problem

If you have a question, put $5 at patreon and message me.
Or Buy Xah Emacs Tutorial
Or buy a nice keyboard: Best Keyboards for Emacs


Emacs Lisp