Create a `History` structure
The goal is to move the history data out of global state and into the
user-data area provided by `cursive`. This begins that process by
creating a self-contained structure for manipulating history. For now,
the original module functions are provided. Once the history structure
is embedded as user data, they will no longer be necessary.
This also changes behaviour slightly, by allowing all URLs in the
history stack to be popped off, thereby returning to the start page.
However, the content loading and drawing functions don't yet support
this, so nothing changes on the user end.
Add reload capability
This adds a reload button, with shortcut `r`, that reloads the current
page (if any). This simply re-fetches the content and redraws the page
(which also resets the cursor position).
Replace `absolute::make` with `Url::join`
`Url::join` implements all the functionality of `absolute::make` when it
is given the current URL as the base. As such, the `absolute` module
has been removed in its entirety, and now-unused functions removed.
In addition, some functions have been transitioned to using `Url`s
instead of normal strings for URLs.
handle preformatted lines
Update Link parsing RegEx
Fixes issue on gemini://tilde.pink:1965/~fabricius/ regarding multiple
whitspaces before destination in a link.
Move bookmarks to a proper location
Remove history browser, add bookmarks
Don't try to display non-text content in the SelectView
Fix a bug where opening an image was making Asuka crash
after closing the external viewer.
Open any mime type.
Reworked parser to split header from content directly at the bytes
Open files by downloading them to a temp file before opening them.
Refactor non-Cursive functions into other modules.
Sean's Conman test suite regarding URLs is passing
Display history in reverse order
Fix issue with redirects and missing views