Changes
4 changed files (+41/-1)
-
-
@@ -1,10 +1,13 @@package routes import ( "bytes" "html/template" "io" "log" "net/http" "path/filepath" "strings" "icyphox.sh/legit/git" )
-
@@ -40,12 +43,42 @@ return} } func countLines(r io.Reader) (int, error) { buf := make([]byte, 32*1024) count := 0 nl := []byte{'\n'} for { c, err := r.Read(buf) count += bytes.Count(buf[:c], nl) switch { case err == io.EOF: return count, nil case err != nil: return 0, err } } } func (d *deps) showFile(content string, data map[string]any, w http.ResponseWriter) { tpath := filepath.Join(d.c.Template.Dir, "*") t := template.Must(template.ParseGlob(tpath)) // TODO: Process content here. lc, err := countLines(strings.NewReader(content)) if err != nil { // Non-fatal, we'll just skip showing line numbers in the template. log.Printf("counting lines: %s", err) } lines := make([]int, lc) if lc > 0 { for i := range lines { lines[i] = i + 1 } } data["linecount"] = lines data["content"] = content data["meta"] = d.c.Meta
-
-
-
@@ -9,6 +9,11 @@ </header><body> {{ template "nav" . }} <main> <pre> {{ range .linecount }} <a id="#L{{ . }}" href="#{{ . }}">{{ . }}</a> {{- end -}} </pre> <pre> {{ .content }} </pre>
-
-
-
@@ -2,6 +2,7 @@ {{ define "head" }}<head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="/static/style.css" type="text/css"> <!-- other meta tags here --> </head> {{ end }}
-
-
-
@@ -9,6 +9,7 @@ {{ if .ref }}<li><a href="/{{ .name }}/tree/{{ .ref }}/">tree</a> <li><a href="/{{ .name }}/log/{{ .ref }}">log</a> {{ end }} <li><a href="/{{ .name }}/refs">refs</a> </ul> </nav> {{ end }}
-