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.
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