Please sign in to access this page
A browser from scratch in Python and the arcade module which uses OpenGL. I followed the tutorial from browser.engineering and ported it from Tkinter to Arcade/pyglet. To try it, enter https://browser.engineering/styles.html or https://example.com and most sites dont work because there is no way anyone is writing a CSS and Javascript engine from scratch. Some Javascript will be supported, but not much. The URL i linked is what works the best and shows off the most about the browser.
Chris
Check their projects out: C Calculator, Karatasi | Command Line Web Browser, CartCommands Framework, Strings Lite, Strings, NameColor, Enchanted Happy Ghast Harnesses
BnaJns
Check their projects out: SoM Commits Extension, visittallinn-waffles, ralseibot, roblox-outfit-finder
Abū al-Barāʾ
Check their projects out: Image Compressor, Typing Speed Test, QR Code Scanner, Moaz Video Downloader, QR Code Generator, Hangman Code Generator, Text Transformer, Text to voice converter, Text to Handwriting Converter, Currency Convertor , Python Learning Website, Moaz Website generator, Pac Man Game, Beautiful Chess
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
I fixed crashing if a click happened before rendering, fixed crashing if inline css didnt have text children, fixed css loading issues with weird urls that include parameters, fixed font size issues with font sizes that are rem and fixed text merging on Windows cause space width is 0. I made clicking on links change search bar text, made it so https:// is added if no scheme is found in the address bar, added tab support by having separate renderers and http clients for each tab, made link clicking open new tabs. I alos added better default headers, fixed style elements showing as text, fixed crash if there are no nodes but needs_render is True, and fixed view-source scheme not working by converting from parsed html cache to simple html caching. So much stuff i havent made a devlog about but i had to fix to get the first ship done, and then now i finally have tab support which was easy to implement but its a great feature!
Fix SSL not working by using certifi to find them, I added css caching which was pretty easy. I adapted to LineLayout and Textlayout instead of BlockLayout placing texts. I added link support, but no tab support currently. I added a resolve_url function which was needed to resolve the link urls, and css urls. The program now caches name to color values and space widths for fonts. And i fixed a bug crashing if font doesnt exist that is on the webpage.
I fixed everything. I just had to multiply the ascent and descent of the font's more and now the background is adjusted to be great as well and it looks so nice! I am really happy i figured it out. Btw, the browser's default CSS will be editable in assets/css/browser.css if you dont want to highlight pre elements or add more css.
Something is very off currently but I worked on CSS styling that automatically layouts HTTP client that gathers the remote CSS and also parses inline CSS. I also worked on better layouting because of the CSS display value. I have added the background color rects to finish the layout tutorial, but currently they are very off. I have worked on faster speeds due to less labels.
Implemented proper layouting by the tutorial. I made resizing work, i switched to pyglet for the renderer for speed, made emojis work, fixed an issue with caching not working and the project is now on Github!
I implemented my own scrolling and better positioning. I fixed the text being too close or too far from eachother. I implemented implicit tags by the tutorial. I started to work on http caching. Also, it turns out that i have to figure something out for text layouting because having thousands of labels for each word is way too slow. You can see that in the video. Hopefully the tutorial will cover line conversion which i can port to Arcade.
I have a search bar, scrollable renderer, file opening, source viewing, html parsing ,i can know tags for styling, i have HTTPS done, redirects done, but text placing has problems for some reason.. I will try to follow the tutorial but some stuff is hard to port from Tkinter to Arcade.