This is a mini browser project. I started working on this initially for Andreas Kling's Browser Jam held from Sept 13 - Sept 15 2024. It didn't make the submission but I intend to keep working on it atleast as a way to learn about how browsers work and also learn about rust.
It's called Wonder Land because I don't really know what I'm doing. This is a learning process.
The first component is the html parser. This parses the html string into DOM objects. It consists of two parts;
- Tokenizer -- reads the html string into tokens that the parser can use
- Parser -- does the actual parsing I'm working with the official html spec as my guide, so this parser should be spec compliant
As of last commit, I have a html tokenizer that can tokenize
- doctype
- start and end tags
- characters
- and comments!
<!-- this is comment -->
<!DOCTYPE html>
<!--tiny comment-->
<html>
<!--yet another-->
<body>
<p>hello</p>
<div>
<p>Hello there</p>
</div>
</body>
</html>
- clone the project
cd
intowonder-land
cargo build
cargo run