AgeCommit message (Collapse)AuthorLines
Give every summary section the same columnsBryce Kwon-26/+38
The ref rows always spanned five columns and the log three to five, so with the default config the log and clone rows stopped 160px short of the table's edge, and with any config the log rows did on a phone, where they alone lost their counts. A column no cell began in also made the summary and refs pages invalid HTML.
Sort an empty list without handing qsort a nullBryce Kwon-6/+6
Every list sorted here is null until its first entry, and C leaves a null base undefined even with nothing to sort. glibc declares it nonnull and its UBSan build aborted the stats page of a repository with no commits in the window, which the Linux matrix caught.
Read a negative ref count as no limitBryce Kwon-4/+2
summary-branches, summary-tags and max-ref-count already listed every ref at 0, but a negative value reached qsort as a count and crashed the summary and refs pages, and emptied the branch switcher.
Add stable markup hooks for site themesBryce Kwon-12/+17
Harden the page renderersBryce Kwon-19/+28
Name the tagged object under its full idBryce Kwon-2/+2
Clean up the whole treeBryce Kwon-16/+8
Replace `nbsp` spacing with CSSBryce Kwon-4/+4
Tidy the structure of the generated markupBryce Kwon-5/+5
Give the stub and tag rows their full widthBryce Kwon-1/+3
Let the listings wrap and the diff tables scrollBryce Kwon-1/+1
Restyle the sources and fix the audit's findingsBryce Kwon-112/+140
Sort refs by the date the ref actually carriesBryce Kwon-13/+9
Settle the names, types and layout of the sourcesBryce Kwon-4/+4
Declutter the interface on small screensBryce Kwon-4/+4
Cap and paginate the ref listingsBryce Kwon-14/+114
Point the fork's links and credits at itselfBryce Kwon-1/+1
AUTHORS now records the upstream developers as the project's history rather than as maintainers of the fork.
Reorganize into source, assets and librariesBryce Kwon-0/+224
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.