reduce binary size: - fbf for unifont - init some JS APIs from byte-code compiled JS? * ones that return static values could just use a defineProperty. e.g. most of navigator, parts of screen 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) config: - important: config editor - better siteconf URL matching - $TERM-based display config - add RPC for CGI scripts e.g. toggle settings/issue downloads/etc * also some way to set permissions for RPC calls mailcap: - save custom command? - w3mmee extensions? * browsecap looks cleaner than urimethodmap, and would be useful for mailto - it overlaps with siteconf quite a bit... 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... - color visited links * needs some sort of conditional formatting in pager, e.g. give all Formats an id in buffer and send a list of "if URL visited, change Format" commands - 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 tabs - xhtml pager: - handle long lines - save/edit buffer output * just reuse dump mode code - alert on external command failure - pipe copiousoutput, x-htmloutput stderr to console network: - uBO integration? (or at least implement filter lists) - dict - nntp - websockets javascript: - support defining one function with multiple names (maybe with magic?) - "this" value as JSValue - distinguish double from unrestricted double - more events - ReadableStream - separate console for each buffer - buffer selection layout: - box borders * will probably need special treatment, as borders must round to 1ch in x direction and 1em in y direction. * table is high priority; for other boxes, I don't know if it would work - flexbox: align-self, align-items, justify-content, proper margin handling - details element - layout caching * sub-layout is done, now for reusing old trees * use memcmp/memcpy for sizes check? * non-root block too, if no floats exist? - partial rendering * buffer.lines must go, so rewrite getCursorStyledNode and findPrev/NextLink to use the box tree - also findPrevMatch/findNextMatch, but it's hard without a line array... we can render it as we go, but it will be slow * we must calculate the overflow box, but the current approach is broken, easier to just set it as a property on render * inline layout's output must be flattened again, so that we can deal with tall inline boxes (like the tag in text/plain buffers) - partial layout? * may be more trouble than it's worth... for pager-like behavior, it's easier to just backpressure input - frame, iframe - z order * for images it's straight up broken - grid images: - animation man: - add a DOM -> man page converter so that we do not depend on pandoc for man page conversion tests: - pager? (how?)