{{/* One note, on its own — the page a shared permalink opens. It has to stand up for a reader who has never seen this site: what was said, about which lines of which file, at which change, and the code itself, right there. Everything else on the page is a way further in. */}} {{define "page-note"}} {{$n := .Note}}

{{if $n.File}}{{base $n.File}}{{lines $n}}{{else}}Note{{end}}

note #{{$n.ID}} by {{$n.Agent.Short}}{{if $n.Kind}} · {{$n.Kind}}{{end}} {{if not $n.At.IsZero}} · ({{$n.Ago}}){{end}} {{if $n.Change}} · read at {{if .Live}}{{short $n.Change}} {{else}}{{short $n.Change}}{{end}} {{end}}

{{if ne $n.File (base $n.File)}}

{{$n.File}}

{{end}}
{{template "note" (dict "N" $n "P" $)}}
{{$open := .HasCode $n.File}} {{if .Excerpt}}

lines {{.ExFrom}}–{{.ExTo}} of {{$n.File}}{{if $open}} · open the whole file →{{end}}

{{.Excerpt}}
{{else if .ExErr}}

{{.ExErr}}

{{else if $n.File}}

this note is about the whole file{{if $open}} — open {{base $n.File}} →{{end}}

{{else}}

this note is not pinned to a file

{{end}} {{if .Live}}{{template "replyform" (dict "N" $n "P" $)}}{{end}}

Replies & mentions {{len $n.Replies}} repl{{if eq (len $n.Replies) 1}}y{{else}}ies{{end}} · {{len $n.Mentions}} mention{{if ne (len $n.Mentions) 1}}s{{end}}

{{if .Thread.Children}}
{{range .Thread.Children}}{{template "threadnode" (dict "Node" . "P" $)}}{{end}}
{{else}}

no notes reply to or mention this one yet

{{end}}

← every note in the log

{{end}}