Browser made completely (or as much as possible) with Python and complies with the HTML spec.
- Check that you have Python 3.8 or newer installed
- Clone the repo from git
git clone https://github.com/aaralh/theBrowser.git
- Make python virtual env with
python3 -m venv theBrowser
and activate itsource theBrowser/bin/activate
- Install dependencies by running
pip install -r requirements.txt
- To run mypy and unit tests, execute
./test.sh
- Happy hacking! :)
Bolded items with 🚧 are currently in WIP. Items marked with are working but may be partially lacking, hence not considerable as finished yet. Completed features are marked with 🚀 List will be extended in more detail on the go.
- 📝 HTML Parsing
- HTML tokenizer
- HTML parser
- 📝 CSS Parsing
- CSS tokenizer
- CSS parser
- 📐 Style
- CSS cascade 🚧
- Style computation 🚧
- Render tree 🚧
- Selector matching 🚧
- 🎴 Layout process
- Layouts
- Table
- Block🚧
- Flex🚧
- Grid🚧
- Layouts
- 🎨 Rendering🚧
- 🌍 Networking🚧
- 🖼️ Media🚧
- JavaScript
Reference (MS Edge):