Skip to content

C implementation of mbrubeck's Robinson HTML engine.

License

Notifications You must be signed in to change notification settings

wernsey/robinson-c

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robinson-C

C implementation of Matt Brubeck's "Robinson" HTML engine.

It uses this bitmap library to render graphics.

References

  1. Let's build a browser engine!, Matt Brubeck
  2. From the W3C specification for CSS:
  1. How Browsers Work: Behind the scenes of modern web browsers, by Tali Garsiel and Paul Irish
  2. Understanding the CSS box model for inline elements, Patrick Brosset, Mozilla
  3. Quantum Up Close: What is a browser engine?, Mozilla

Other implementations:

  1. WebWhir
  2. https://github.com/gooofy/robinson is an implementation in Python that does support text and inline elements (GPL).

TODO

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.
  • 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

License

MIT License. See the file LICENSE for details.

About

C implementation of mbrubeck's Robinson HTML engine.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages