Johannes.Hofmann at gmx.de
Wed Oct 22 18:36:33 CEST 2008
here comes my proposal to get css support started. Note that I'm new
to this stuff so I will probabely simplify things a lot and miss many
issues that will have to be addressed later on.
* Separate out the style handling from html.cc in a new class
StyleEngine (better name welcome).
This class will be fed the html tree via a SAX like interface as the
document is parsed and will hand out the current Style object.
* Initially StyleEngine will be implemented to just mimic the
current behaviour of html.cc. So after this step everything should
work as currently.
* Then we can design the data structures to hold parsed css data and
make StyleEngine use these structures which will be statically
Again dillo should work as it does now.
* Next we can implement a css parser that is able to fill the data
structures from the last step.
Now we should already be able to set a fixed user style sheet.
* Hooking up the css parser to automatically load css information as
referenced in html pages would be next.
* In parallel to all this we would need to make floating objects
work in dw/textblock.cc.
This approach has some issues. In contrast to
http://www.dillo.org/CSS.html it would only be possible to apply
style information that is available when starting parsing of a
document. However we could start rendering with what style
information is available and reload once all css files have been
Currently dillo parses attributes on demand. So we don't have a
complete list of attributes and their values. As StyleEngine might
access any attribute, we might need to change this.
Comments or more advanced plans would be more than welcome!
More information about the Dillo-dev