Skip to content
This repository has been archived by the owner on Apr 29, 2024. It is now read-only.
/ vado Public archive

A demo web browser engine written in Haskell

License

Notifications You must be signed in to change notification settings

chrisdone-archive/vado

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vado

Vado is Italian for I go.

This is a demonstration program that is able to load a web page up and render it like in the early 90's. It supports laying out text, different font sizes for headings, inline and block elements, hyperlinks, bold and italics. It supports mousewheel scrolling, too.

I wrote this in a couple evenings, because it seemed straight-forward to do so given the libraries available today. That's a good sign for Haskell. Also, there's an inarticulate gut feeling I have that tells me maybe it's worth celebrating these days in which the web is still viewable in its simplest, earliest form.

The project was possible thanks to a few established Haskell packages:

This project is intended to be easy to build and cross-platform. If you succeed in building this package on a platform that isn't listed in the Building section, please open a PR with those instructions. It uses the cross-platform SDL package, and the probably-less-so cross-platform Cairo package for rendering text.

There's some groundwork for rendering boxes, padding, etc. but no attempt has been made to implement that. One could use the language-css package to parse CSS and add styling to elements.

Demo

Demo video

Building

Get Stack for building Haskell projects.

OS X instructions:

$ brew install pkg-config libffi cairo sdl2 sdl2_image
$ export PKG_CONFIG_PATH=/usr/local/opt/libffi/lib/pkgconfig
$ stack install --install-ghc gtk2hs-buildtools
$ stack install

Ubuntu Linux instructions:

$ sudo apt-get install libcairo2-dev libsdl2-dev libsdl2-image-dev
$ stack install --install-ghc gtk2hs-buildtools
$ stack install

FreeBSD instructions:

NOTE: These instructions have not been updated to include SDL-image. If you use FreeBSD, please contribute changes to these instructions!

$ pkg install cairo
$ pkg install sdl2
$ stack install --install-ghc gtk2hs-buildtools
$ stack install

Windows instructions

$ stack exec -- pacman -Sy mingw-w64-x86_64-cairo mingw-w64-x86_64-pkg-config mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_image
$ stack install --install-ghc gtk2hs-buildtools
$ stack install

Running

It accepts an initial home page URL:

$ vado <complete URL including https or http>

It doesn't support back/forward or other history features.

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •