C implementation of Matt Brubeck's "Robinson" HTML engine.
It uses this bitmap library to render graphics.
- Let's build a browser engine!, Matt Brubeck
- From the W3C specification for CSS:
- How Browsers Work: Behind the scenes of modern web browsers, by Tali Garsiel and Paul Irish
- Understanding the CSS box model for inline elements, Patrick Brosset, Mozilla
- Quantum Up Close: What is a browser engine?, Mozilla
Other implementations:
- WebWhir
- https://github.com/gooofy/robinson is an implementation in Python that does support text and inline elements (GPL).
Organised according to priority and (apparent) ease of implementation
- Text rendering, obviously.
- Inline elements. To implement, start at the Normal Flow
section of (2).
- Lines that do not fit in the width of a container should be split into
multiple
inline
blocks. - Note what happens to the margin and especially the border.
- Lines that do not fit in the width of a container should be split into
multiple
- Absolute positioning
- Collapsing Margins
- Image support - might depend on the framework I use to render it
-
style
attribute, and<style/>
tag - More sophisticated CSS parsing as per Syntax and basic data types
MIT License. See the file LICENSE for details.