AgeCommit message (Collapse)AuthorLines
Harden the blob view error pathsBryce Kwon-7/+15
A blob requested by ref with an unknown path fell through to the commit object and was served with a 200 instead of a 404, two error pages passed a null pointer to a %s format when the request carried no object id, and the error pages left the layout open.
Cast signed chars before ctype callsBryce Kwon-2/+2
A plain char is undefined in the ctype functions for negative values, which a high byte produces wherever char is signed.
Add built-in syntax highlightingBryce Kwon-1/+8
Highlighting previously required a source filter shelling out to something like Pygments. A configured source filter still takes precedence, every character is preserved so the line gutter stays aligned, and large files are skipped.
Add `enable-tree-group-dirs` to list dirs firstBryce Kwon-5/+60
Reorganize into source, assets and librariesBryce Kwon-0/+407
The C sources move to source/, the served files to assets/, the bundled Git submodule to libraries/git and the filter scripts to extensions/. Everything the build generates now lands in build/, so a clean is a single remove and the tree stays clean.