about summary refs log tree commit diff stats
path: root/README.md
Commit message (Collapse)AuthorAgeFilesLines
* sftp: switch to libssh2bptato2024-10-261-5/+7
| | | | | | | | | | | | | | | | | | | Just to remove a level of indirection; the libcurl API is annoying to deal with when you don't even need asynchrony. It doesn't change anything in actual dependencies, because libcurl uses libssh2 too - however, now only http depends on libcurl, which makes reducing it to an optional module feasible. Still, I've listed libssh2 (along with OpenSSL - long overdue) in the readme just in case some OS doesn't pull in the headers by default as a libcurl dependency. Also, fix some bugs: * fix missing CWD command in FTP * resolve directories even if they don't end in / * allow links without -> in dirlist
* sandbox: replace libseccomp with chaseccompbptato2024-10-231-4/+3
| | | | | | | | | | | | | | | This drops libseccomp as a dependency. Also, move the capsicum/pledge definitions from bindings to sandbox.nim because they are only used there. Interestingly, after integrating chaseccomp I found that the stbi process would mysteriously crash by a getrandom(2) syscall. Closer investigation revealed it is only called on the initialization of glibc's malloc; presumably it had never surfaced before because libseccomp would always allocate before entering the sandbox. So I've added getrandom to our filter as well.
* Fix compilation on Nim 2.2.0bptato2024-10-101-1/+1
|
* Update docsbptato2024-10-101-1/+1
|
* Update monouchabptato2024-09-291-2/+2
| | | | | Now we use QuickJS-NG, which is better maintained than QJS and has column tracking.
* Update docsbptato2024-09-261-4/+6
|
* Update docsbptato2024-09-131-19/+28
|
* md2html: support blockquotebptato2024-08-301-2/+2
| | | | + update todo, readme
* Update readmebptato2024-08-281-0/+8
|
* sixel: proper color quantizationbptato2024-08-271-2/+2
| | | | | | | | just use an octree. works fine afaict, though obviously somewhat slower than the static method (encoding is 2-pass now) & still has banding issues with many colors (will need dithering) also, fixed a bug that caused initial masks of bands to get misplaced
* Update readme, licensebptato2024-07-291-1/+1
|
* Update docsbptato2024-07-291-5/+11
|
* Update readmebptato2024-07-201-4/+7
|
* fix compilation on 2.0.8bptato2024-07-101-1/+1
|
* Update docsbptato2024-07-031-150/+49
|
* img: use stb_image, drop zlib as dependencybptato2024-06-201-2/+1
| | | | | | | Now we have decoders for gif, jpeg, bmp. Also, the in-house PNG decoder has been replaced in favor of the stbi implementation; this means we no longer depend on zlib, since stbi comes with a built in inflate implementation.
* Update docsbptato2024-06-021-2/+2
|
* about: markdownify & update license.htmlbptato2024-05-281-2/+2
| | | | We have a markdown converter, so why not use it?
* Update readmebptato2024-05-211-59/+53
|
* Update readmebptato2024-05-011-7/+8
|
* doc: include auto-generated manpages in repositorybptato2024-04-261-3/+1
| | | | | The 100kb or so doesn't hurt as much as not having manual pages at all without pandoc (+ not auto-updating them through make all) does.
* Update docsbptato2024-04-241-0/+1
|
* sandbox: seccomp support on Linuxbptato2024-04-181-1/+2
| | | | | | | | | | | | | | | | | We use libseccomp, which is now a semi-mandatory dependency on Linux. (You can still build without it, but only if you pass a scary long flag to make.) For this to work I had to disable getTimezoneOffset, which would otherwise call localtime_r which in turn reads in some files from /usr/share/zoneinfo. To allow this we would have to give unrestricted openat(2) access to buffer processes, which is unacceptable. (Giving websites access to the local timezone is a fingerprinting vector so if this ever gets fixed then it should be an opt-in config setting.) This patch also includes misc fixes to buffer cloning, and fixes the LIBEXECDIR override in the makefile so that it is actually useful.
* Update readmebptato2024-04-121-5/+27
|
* Initial flexbox supportbptato2024-04-051-1/+2
| | | | | | | | | Still far from being fully standards-compliant, or even complete, but it seems to work slightly less horribly than having no flexbox support at all on sites that do use it. (Also includes various refactorings in layout to make it possible at all to add flexbox.)
* Update readmebptato2024-04-021-9/+13
|
* update readme, add doc/architecture.mdbptato2024-03-251-5/+33
|
* update readmebptato2024-03-211-5/+4
|
* pager: add "open in editor" keybinding (sE)bptato2024-03-141-0/+5
| | | | | | only for source for now, rendered document is a bit more complicated (also, get rid of useless extern/editor module)
* man: rewrite in Nimbptato2024-03-131-3/+2
| | | | | | | | | | | | Depending on Perl just for this is silly. Now we use libregexp for filtering basically the same things as w3mman2html did. This required another patch to QuickJS to avoid pulling in the entire JS engine, but in return, we can now run regexes without a dummy JS context global variable. Also, man.nim now tries to find a man command on the system even if it's not in /usr/bin/man.
* update readmebptato2024-03-121-29/+67
|
* Add mouse supportbptato2024-02-291-0/+1
|
* regex: re-work compileSearchRegexbptato2024-02-171-3/+2
| | | | | | | I've gotten tired of not being able to search for forward slashes. Now it works like in vim, and you can also set default ignore case in the config.
* term: fix coloring messbptato2024-02-171-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | | Until now, the config file required manual adjustment for the output to look bearable on terminals colored differently than {bgcolor: black, fgcolor: white}. Also, it only detected RGB when COLORTERM was set, but this is not done by most (any?) terminal emulators (sad). To improve upon the situation, we now query the terminal for some attributes on startup: * OSC(10/11, ?) -> get the terminal's bg/fgcolor * DCS(+, q, 524742) -> XTGETTCAP for the "RGB" capability (only supported by a few terminals, but better than nothing) * Primary device attributes -> check if ANSI colors are supported, also make sure we don't block indefinitely even if the previous queries fail If primary device attributes does not return anything, we hang until the user types something, then notify the user that something went wrong, and tell them how to fix it. Seems like an OK fallback. (The DA1 idea comes from notcurses; since this is implemented by pretty much every terminal emulator, we don't have to rely on slow timing hacks to skip non-supported queries.)
* Update readmebptato2024-02-071-4/+4
|
* Add default md2html converterbptato2024-01-301-1/+2
|
* Add mancha man page viewerbptato2024-01-261-1/+4
| | | | | | | | | | derived from w3mman2html.cgi, there are only a few minor differences: * different man page opener command * use man:, man-k:, man-l: instead of query string to specify action * no form input (C-lC-uman:pageC-m is faster anyway) TODO rewrite in Nim so we don't have to depend on Perl...
* Add doc/protocolsbptato2023-12-151-1/+2
|
* Update readmebptato2023-12-141-1/+1
|
* Add support for gemini by default, update readmebptato2023-12-101-6/+3
| | | | | No need to leave gemini support in the bonus folder. Still TODO: proxy support.
* Enable finger protocol by defaultbptato2023-12-101-0/+1
| | | | | | * Add a default urimethodmap that points finger: to cha-finger * Install cha-finger to /usr/local/libexec/cha/cgi-bin by default * cha-finger: use ALL_PROXY if given, die if curl is not installed
* Makefile: rewritebptato2023-11-281-6/+4
| | | | | | | * Get rid of useless targets * Use real recipes instead of command runner targets * When given, use environment variables * Document Makefile stuff in doc/build.md
* readme: fix typobptato2023-11-231-1/+1
|
* Update readmebptato2023-11-231-0/+11
| | | | | | * add showcase picture * add link to sourcehut project page (until sourcehut adds one) * add example usage
* Update readme, todobptato2023-11-231-1/+1
|
* Update readmebptato2023-10-211-3/+8
|
* Update readmebptato2023-10-141-0/+2
|
* Add urimethodmap supportbptato2023-09-301-0/+1
| | | | yay
* update readme, todobptato2023-09-301-0/+1
|
* update readmebptato2023-09-241-1/+1
|