GSoC Idea: ePubKit, an eReader built upon TkHtml3

GSoC Idea: ePubKit, an eReader built upon TkHtml3

Areas HTML Rendering, Web Development
Good if student knows Tcl, Javascript, C, SQLite
Priority High
Difficulty Medium
Benefits to the student High-quality C/Tcl foundation, High-profile technologies (Javascript, eBooks)
Benefits to Tcl Maintenance of TkHtml3, Conflation with emerging eReader technology
Mentor George Jempty, comp.lang.tcl

Project Description

An ebook reader incorporating the TkHtml3 renderer, via the Hv3 browser, and the DeskML platform (for devising desktop applications from web technologies). The name 'epubkit' (for which George Jempty has acquired the .com and .net domains) pays homage to the Starkit and TclKit technologies which are the additional pillars besides TkHtml3, and this will not be "just another" ePub reader. Rather epubKit will strive to innovate in a couple of important ways:

  1. It will allow any epub file to be wrapped with an entire epub reader and distributed as an .exe (ergo "epubkit": an ebook and ereader wrapped together)
  2. It will strive to "disrupt" the epub standard, currently built on XHTML 1.1, by supporting Javascript widgets within pages.

Since epubKit will be built upon DeskML, it will essentially be a web application (albeit an .exe), therefore requiring Javascript, HTML, and CSS, as well as server-side Tcl. There will also be opportunity for contributing to C/Tcl foundation of TkHtml3, written by D. Richard Hipp (of SQLite) and Dan Kennedy, as well as the C-based Simple EcmaScript Engine (SEE)

Please consider George Jempty's recent track record with "DeskML" (a rough equivalent of Adobe AIR prototyped within the past year or so), as evident from comp.lang.tcl, code.google.com, etc.

References

Comments

The imagination is the only limit as to the applicability of scripting within ePubs, another idea besides chess for instance, being an in-page recipe converter for applying a ratio such as .75 or 2.0 to the quantities called for within cookbooks.

Partial/Tentative "RoadMap"

More generally:

  • Check code into (fossil) repository
  • Devise build system with make
  • Port to Mac platform (DeskML currently runs on Windows & Linux)
  • Confirm viability on embedded Linux devices