Texinfo

GNU documentation is based on the Texinfo source format (conceptually similar to markdown, but better for documentation). There are tools to convert Texinfo into various formats, including PDF, HTML, and Info format. The Info format is used for reading the documentation in a terminal emulator (using the info program) or in the emacs editor.

Keyboard-centric UI in JavaScript for GNU HTML documentation

The info program is very bare-bones (no fonts or images). On the other hand, the info program has a number of conveniences for browsing documentation, and the keyboard-centric user interface is very efficient. We would like to combine the user interface and features of the info program with the rich text and graphics of HTML. Specifically porting most of the functionality of the info program to JavaScript and CSS that can work in a browser.

Desirable features of the info program that we would like to replicate in JavaScript include:

The focus of this project is writing logic and event handlers in JavaScript. You may also want to make some tweaks to how the Texinfo tools generate HTML so the HTML is cleaner and easier to work with.

Once we have a good basic browser-based documentation reader (hopefully by the mid-term), there are some possible enhancements. One is to generate on-the-fly a navigation bar. For example see the Kawa homepage, which is generated from Texinfo, but goes through some extra complex processing. It would be nice if it could be done in JavaScript and CSS.

Another enhancement is to use the DomTerm web-based terminal emulator. The idea that a modest front-end wrapper would locate the HTML files, and send a request to DomTerm to load the HTML in an iframe of the DomTerm browser window. If the user selects some other manual, the JavaScript could send a request to the front-end to locate and load the manual.

Contact: bug-texinfo@gnu.org
Mentors: Per Bothner, Gavin Smith