In 2010 I compiled a summary of HTML rendering widgets useful for embedding in Linux applications. Given recent changes and switching
Liferea from Webkit to Webkit2 I felt it is time to post an updated version. The following table give a summary of the different HTML renderers some long gone, some fully maintained:
Name | Toolkit | Platform | Derived From | Driving Force | Active |
---|
KHTML | QT | % | KDE | KDE | Yes |
wxHtml | wxWidgets | GTK, Windows | KHTML | wxWidgets | Yes |
GtkHtml | GTK+ 1.0 | GNOME 1 | KHTML | GNOME 1 | No, long gone |
GtkHtml2 | GTK+ 2.0 | GNOME 2 | GtkHtml | GNOME 2 | No, v2.11: Aug 2007 |
GtkHtml3 | GTK+ 2.0 | GNOME 2 | GtkHtml | Ximian, Evolution | No, v3.14: May 2008 |
GtkHtml4 | GTK+ 3.0 | GNOME 3 | GtkHtml | Ximian, Evolution | No, v4.6.6: Jul 2013 |
GtkMozEmbed | GTK+ 2.0 | Gecko | % | Mozilla | No |
WebKitGtk | GTK+ 2.0 GTK+ 3.0 | Webkit | KHTML/Webkit | Apple Safari | No |
WebKitGtk2 | GTK+ 3.0 | Webkit | Webkit | Apple Safari | Yes |
Note: My summary somewhat complements
this Wikipedia list. Still it focusses more on Linux renderers and does correctly distinguish between the rather mad history of GtkHtml*. Given the list above one could conclude the only acceptable renderers are KTHML, wxHtml and WebkitGtk simply based on project activity. Still other renderers like GtkHtml2 and GtkHtml3 have gone a long way and provide a limited but stable functionality. But the important question is: What features are supported by the different renderers?
Name | Widget Embed | Full HTML | CSS | JS | Java/Flash | Editor | MathML |
---|
KHTML | y | y | 1,2,3 | y | y | n | n |
wxHtml | y | n | none | n | n | n | n |
GtkHtml | y | y | none | n | n | y | n |
GtkHtml2 | y | y | 1,2 inline | n | n | n | n |
GtkHtml3 | y | y | none | n | n | y | n |
GtkHtml4 | y | y | none | n | n | y | n |
GtkMozEmbed | n | y | 1,2,3 | y | y | n | y |
WebKitGtk | n | y | 1,2,3 | y | y | n | n |
WebKitGtk2 | n | y | 1,2,3 | y | y | n | in work |
The feature matrix along with the platform listing explains why a lot of those old renderer libraries are still around. Given you want to render simple markup in an email client you might still choose wxHtml or GtkHtml4, with the latter one providing you with a HTML editor for rich mail editing. Of course when you want to allow your users to have fully fledged inline browsing you need to use either KHTML or Webkit. If you are developing for GTK you need to use Webkit, if on KDE you probably will use KHTML. If you find mistakes or have something to add please post a comment!