Skip to content
/ RetroFit Public

A retro-themed web-browser for the terrminal with command line

License

Notifications You must be signed in to change notification settings

yesco/RetroFit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Aug 3, 2024
a7bcbd3 · Aug 3, 2024
Sep 28, 2021
Jul 4, 2024
Sep 28, 2021
Aug 30, 2021
Jul 13, 2021
Aug 8, 2021
Sep 24, 2021
Sep 13, 2021
Jul 28, 2024
Jul 31, 2024
Aug 19, 2021
Jul 13, 2021
Aug 8, 2021
Aug 8, 2021
Sep 11, 2021
Aug 8, 2021
Aug 20, 2021
Aug 20, 2021
Sep 14, 2021
Jul 13, 2021
Aug 24, 2021
Aug 24, 2021
Aug 4, 2021
Jul 2, 2024
Aug 13, 2021
Aug 30, 2021
Sep 14, 2021
Aug 3, 2024
Aug 14, 2021
Jul 13, 2021
Jul 13, 2021
Jul 13, 2021
Jul 13, 2021
Jul 29, 2024
Jul 29, 2024
Aug 17, 2021
Jul 27, 2024
Aug 3, 2024
Aug 29, 2021
Aug 30, 2021
Jul 13, 2021
Jul 13, 2021
Oct 18, 2022
Sep 11, 2021
Jul 13, 2021
Oct 18, 2022
Oct 18, 2022
Aug 21, 2021
Sep 24, 2021
Sep 28, 2021
Aug 22, 2021
Sep 28, 2021
Sep 28, 2021
Jul 13, 2021
Aug 17, 2021
Jul 13, 2021
Aug 14, 2021
Aug 15, 2021
Sep 11, 2021
Aug 15, 2021
Sep 4, 2021
Jul 29, 2024
Sep 21, 2021
Aug 17, 2021
Sep 28, 2021
Sep 2, 2021
Sep 28, 2021
Sep 28, 2021
Sep 7, 2021

Repository files navigation

RetroFit

A retro-themed web-browser for the terrminal with command line.

Purpose

An experiment in minimalistic textual web experience meant to be easily ported to retro-homoecomputer architectures such as 6502, z80.

Features

  • Parses and displays simlified HTML
  • Using ANSI colors for retro-style display
  • CSS is ignored
  • Javascript is ignored
  • No cookies, GDR, popups etc
  • Aims to minimize latency as in TTFC (Time To First Char)

Origin

It started as a feature of the ORIC ATMOS WebBasic Simulator, running in the browser.

Versions

  • retro.js is an extract of that code, incomplete, and unfinished. This can be used as a browser inside the browser. LOL
  • w.c is a smaller plain C-code implementation.

How to use

Well, it's not in any place where normal sites can be used, or displayed in pleasing ways, but it's a funny interesting concept.

Files:

  • ./w< - user script to call, will compile if w.c changed
  • w.c - the actual code - the workhorse.
  • entities.h - list of HTML entities stored in one long string, genereated from entities.json using entities.js and then sow manual editing (already done - only needs to be done one time)

Test files:

  • ./w test.html - general testfile and examples, and bug-tracker!

  • ./w google.com - rendered like crap; Google uses a lot of &#nnnn; entities.

  • w - in this start/compile script, there are many URLs

    w.c - the actual code to render

Wants

  • a modular streamed browser
  • commands can be external independent scripts
  • easily extensible (Unix-style/CGI-style)
  • plain C to be portable to even smaller 8-bit systems

Possible TODO:

  • stream download HTML
  • stream parse HTML
  • serial out
  • ansi display HTML serially
  • go link by number
  • go link by
  • page down
  • line down
  • beginning
  • page up
  • [ ]
  • keep history (append)
  • tabs/several buffers
  • bookmarks?
  • cookies?
  • news (check bookmarks, sort, order)

Graphics