An example GNU doc viewer as a single page browser app
JavaScript Emacs Lisp CSS Shell
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


a GNU doc viewer

This is an example GNU doc viewer as a single page javascript app.

That means it's a webapp, you use a modern HTML5 browser to view it. The context changes you see while using it are not browser page changes, they are DOM manipulations achieved through AJAX events.

The app is designed to show how a complex info reader could be made with very little control over the HTML.

Eventually, perhaps, this could be an info reader in a browser. That would be useful. Every smart phone has a good browser. Perhaps your Emacs could even open info pages on your phone, as if it was a second screen.

The HTML here is proxied from the GNU website. It's only the Emacs Lisp manual but that's just to simplify things slightly. Mostly it would not be difficult to make an info reader for all GNU documents. It would just require a bit of code mapping them together. That is now an enhancement suggestion here.

Can I see it?




  • 13 Aug 2014
    • added a menu command
      • press m to get a menu completion
      • complete with the TAB key
      • press ESC to get rid of the box
      • this is a pre-requisite to multiple manuals I think
  • 05 Aug 2014
    • an index lookup system, somewhat like GNU Info's
      • press i to get the index box
      • press ESC to get rid of the index box
      • press TAB while in the index box to try a completion
      • if there is a completion a selection list will appear
      • you can click on a selection or simply type more to narrow

The role of elnode

Elnode is here because it's easy to make do lots of different things. In this app it's proxying the GNU website to send Emacs info manual nodes to our JS and it's browserifying the JavaScript (browserify is a particular way of combining JavaScript files together).

Elnode could easily be replaced by other technologies here. I'm using it because it's easy for me.

how to


  • emacs 24.3
  • elnode for emacs
  • nodejs and npm

The Dockerfile describes the build process.