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 theBrowserand 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

- HTML tokenizer
- 📝 CSS Parsing
- CSS tokenizer

- CSS parser

- CSS tokenizer
- 📐 Style
- CSS cascade 🚧
- Style computation 🚧
- Render tree 🚧
- Selector matching 🚧
- 🎴 Layout process
- Layouts
- Table

- Block🚧
- Flex🚧
- Grid🚧
- Table
- Layouts
- 🎨 Rendering🚧
- 🌍 Networking🚧
- 🖼️ Media🚧
- JavaScript
Reference (MS Edge):

