{{define "head"}} {{- $alt := "The AUR Report Card masthead over pkglint's grade ramp: A for no warnings through F for any critical finding." -}} {{.Title}} {{/* No font preloads: the stylesheet is same-origin and small, every face is font-display:swap, and Chromium reports same-origin font preloads as unused even when they are the only fetch. A false warning on every page costs more here than the millisecond it buys. */}} {{/* Declaring the icon is also how the /favicon.ico request is avoided: without a link the browser asks for one on every page and takes a 404. */}} {{/* Link previews — X, Slack, Discord, iMessage — read Open Graph out of the head and will not resolve a relative URL, so the page and its card image are spelled out against the published origin. twitter:card is the only twitter:* tag that earns its place: X falls back to og:title, og:description and og:image, but has no fallback for the image's alt text, which is the one thing a screen reader on that timeline needs. */}} {{end}} {{define "topbar"}}
pkglintAUR report card
{{end}} {{/* rostertable renders a slice of results as the roster. Three things show these rows — the index's head, each alphabetical shard, and site.js rebuilding them from roster.json — so the row shape is defined once here. .Sort names the column the rows are already in, which is the only part that differs: the index arrives votes-first, a shard alphabetically. */}} {{define "rostertable"}} {{/* Root and Total ride on the table because the script renders rows the server never sent, and has to spell their links relative to whichever page it is running on. Total is the corpus behind the table, not the rows in it, so the count can say "1000 of 47429" before roster.json lands. */}} {{range .Results}} {{/* Neither the maintainer nor the co-maintainers have a column of their own, so they ride in data attributes for the filter to match, and in the name cell's tooltip so a row that matched on one can still say why. Co-maintainers are space-joined into one attribute, the same shape roster.json carries them in. */}} {{end}}
Grade Package Findings Votes Description
{{.Grade}} {{.Name}}{{if .Drift}} {{end}} {{len .Findings}} {{.Votes}} {{.Description}}
{{end}} {{/* shardnav links the alphabetical roster pages. Every package page on the site is reachable through these, which is what keeps the corpus outside the index's head crawlable and browsable without JavaScript. */}} {{define "shardnav"}} {{end}} {{/* fixpill renders an auto-fix badge for a rules.FixLevel; nothing when the rule has no fix. */}} {{define "fixpill"}}{{if .Fixable}}{{.Flag}}{{end}}{{end}} {{/* sevpills renders a rules.SeverityRange: one badge for a rule that always reports the same severity, two spanned by an en dash for one that escalates on what it finds. */}} {{define "sevpills"}}{{sev .Low}}{{if .Varies}}{{sev .High}}{{end}}{{end}}