Comments (13)
Hopefully a status code for a stream will be added.
Edit: This will not be happening.
from amfora.
The rendering functions should already work well with partial content, maybe only passing parts of content can be the default mode, updating the Page each time? The only state that would need to be passed each call would be whether it's in a preformatted mode or not, which could be added to Page or something.
from amfora.
Stream support will require the ability to load URLs and setpages even when another tab is selected. This means the tab number should be passed to funcs like There will also have to be a way to stop the loading when the tab is closed.handleURL
and setPage
, so they don't just use curTab
.
Edit: The first part of this is completed.
from amfora.
As of 7fe78f4 there is now a configurable download timeout on pages. This would need to be disabled for streams.
from amfora.
There could be a render and page display pipeline that implements io.Writer
, so network input can be written directly and displayed live.
from amfora.
Using the protocol It is no longer encouraged or "required", see here.gemini+stream://
has been proposed.
from amfora.
The default 2 MiB page limit can be upped or page limits can be removed entirely once this is implemented.
Edit: Maybe just upped instead of removed, so that infinite or gigantic pages don't take up too much memory
from amfora.
Once this feature is added the info bar (#142) code will have to be modified so that the total page lines and page percentage changes on the fly.
from amfora.
What is described in #182 is closely related to this.
from amfora.
There should be a line-based parser that implements io.ReadWriter
. Each tab
will have a parser and also be refactored to hold the network connection. Page
can be changed so that Raw
and Content
are bytes.Buffer
. To load a page, the tab
will copy the incoming network bytes to Raw
and to the parser, and then copy the parser output to Content
and the TextView
of the tab. When loading a new page, the parser will be scrapped and recreated, and the old network connection closed.
The parser will also have a links channel (buffered), which the tab can pull from to fill the Links
slice of the Page
. Page
will probably need a mutex, in case the user is tabbing around the links while the page is loading.
from amfora.
This happening on the stream
branch.
from amfora.
Look into #57 once this is done and see if it can be closed too.
from amfora.
Moving this to v1.10.0. It has been slowing down the release of v1.9.0 for much too long. There are more important updates that are already in master but are unreleased, or still need to be added. This would be great to have but is not really important from a user's point of view.
from amfora.
Related Issues (20)
- Open/Download/Cancel buttons inaccessible HOT 3
- fatal error: sync: Unlock of unlocked RWMutex HOT 1
- Agena proxy problem HOT 1
- don't url-decode slash or plus in redirect URLs HOT 1
- Feed subscription - support text/gemini feeds
- Bind jk to behave as TAB for next/prev URL selection HOT 1
- localhost address HOT 3
- open in new tab? HOT 1
- wildcard cert is not considered valid HOT 1
- yes/no dialogue for redirect is confusing since it is not clear what is active HOT 1
- Please bump golang.org/x/sys dependency HOT 6
- How to bind Shift-Space HOT 1
- Build fails for go go1.16 HOT 1
- Inputs should allow newlines
- New releases scheduled? HOT 4
- Allow client certificates to be set for a full URI HOT 1
- Crash on ARM64 (RaspberryPi CM4, Alpine Linux 6.1.64) HOT 8
- -W option from less HOT 1
- Cache downloads HOT 1
- Please make a new release HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from amfora.