compilation:
- reduce binary size
* remove the null columns in EUC-KR decoding
* fbf for unifont
* maybe use system wcwidth?
charsets:
- set up some fuzzer
- use appropriate charsets in forms, urls, etc.
display:
- important: buffer list
* either a buffer list buffer, or a buffer list popup menu. ideally
both.
- dark mode (basically max Y)
- override bgcolor ourselves when terminal fails to report it
config:
- important: fix crash on missing /tmp dir with default config
- important: config editor
- completely replace siteconf; the new solution should:
* not be based on table arrays
* allow overriding pretty much every global value per URL
* allow better URL matching (regexes aren't great for this task)
* be called url-config
* allow matching $TERM string, buffer groups (but maybe this should
be a separate setting?)
- add per-scheme configuration (e.g. proto.gemini.known-hosts = '/some/path')
- add RPC for CGI scripts e.g. toggle settings/issue downloads/etc
* also some way to set permissions for RPC calls
buffer:
- important: validate returned values
* do not block container when receiving buffer data; if invalid, kill
buffer
* this also includes not crashing when the buffer dies while
container is reading...
- important: improve sandboxing
* sandbox more built-in CGI protocol handlers
- configurable/better url filtering in loader
- when the log buffer crashes, print its contents to stderr
* easiest way seems to be to just dump its cache file
- add buffer groups
- xhtml
pager:
- better horizontal line handling: allow viewing content positioned before page
start, handle long lines, etc
- figure out a way to show long messages on the status line
- history, bookmarks (w3m format?)
- save/edit buffer output
- alert on external command failure
network:
- uBO integration? (or at least implement filter lists)
- websockets (curl supports ws)
javascript:
- add support for JS mixins
- distinguish double from unrestricted double
- better dom support: more events, CSSOM, ...
- implement ReadableStream, XHR
- separate console for each buffer
- buffer selection
layout engine:
- box borders
* will probably need special treatment, as borders must round to
1ch in x direction and 1em in y direction.
- do not break inline boxes with out-of-flow block boxes (float, absolute, etc.)
* this seems hard to fix properly :(
* reminder: this does *not* apply to flexbox; in fact it has the inverse
problem AFAICT.
- table layout: include caption in width calculation
- flexbox: align-self, align-items, justify-content, proper margin handling,
proper flex base size resolution
- details element
- overflow
- partial layout, layout caching
- iframe
- writing-mode, grid, ruby, ... (i.e. cool new stuff)
images:
- more efficient sixel display (store encoded images)
- proper sixel color register allocation, dithering
- incremental decoding, interlaced images, animation
man:
- add a DOM -> man page converter so that we do not depend on pandoc
for man page conversion
gmifetch:
- rewrite in Nim
etc:
- orc support
- maybe windows support? (blocker: needs a windows machine)