1diff --git a/templates/about.qtpl.go b/templates/about.qtpl.go
2index aaa25148913dfd971fc954840e85f3c2aef70905..2c07ceb1818619df56672b4bea08b8b1af0bcb62 100644
3--- a/templates/about.qtpl.go
4+++ b/templates/about.qtpl.go
5@@ -1,162 +1,162 @@
6 // Code generated by qtc from "about.qtpl". DO NOT EDIT.
7 // See https://github.com/valyala/quicktemplate for details.
8
9-//line about.qtpl:1
10+//line templates/about.qtpl:1
11 package templates
12
13-//line about.qtpl:1
14+//line templates/about.qtpl:1
15 import (
16 qtio422016 "io"
17
18 qt422016 "github.com/valyala/quicktemplate"
19 )
20
21-//line about.qtpl:1
22+//line templates/about.qtpl:1
23 var (
24 _ = qtio422016.Copy
25 _ = qt422016.AcquireByteBuffer
26 )
27
28-//line about.qtpl:2
29+//line templates/about.qtpl:2
30 type AboutPage struct {
31 Body []byte
32 }
33
34-//line about.qtpl:7
35+//line templates/about.qtpl:7
36 func (p *AboutPage) StreamTitle(qw422016 *qt422016.Writer) {
37-//line about.qtpl:7
38+//line templates/about.qtpl:7
39 qw422016.N().S(`Hello`)
40-//line about.qtpl:7
41+//line templates/about.qtpl:7
42 }
43
44-//line about.qtpl:7
45+//line templates/about.qtpl:7
46 func (p *AboutPage) WriteTitle(qq422016 qtio422016.Writer) {
47-//line about.qtpl:7
48+//line templates/about.qtpl:7
49 qw422016 := qt422016.AcquireWriter(qq422016)
50-//line about.qtpl:7
51+//line templates/about.qtpl:7
52 p.StreamTitle(qw422016)
53-//line about.qtpl:7
54+//line templates/about.qtpl:7
55 qt422016.ReleaseWriter(qw422016)
56-//line about.qtpl:7
57+//line templates/about.qtpl:7
58 }
59
60-//line about.qtpl:7
61+//line templates/about.qtpl:7
62 func (p *AboutPage) Title() string {
63-//line about.qtpl:7
64+//line templates/about.qtpl:7
65 qb422016 := qt422016.AcquireByteBuffer()
66-//line about.qtpl:7
67+//line templates/about.qtpl:7
68 p.WriteTitle(qb422016)
69-//line about.qtpl:7
70+//line templates/about.qtpl:7
71 qs422016 := string(qb422016.B)
72-//line about.qtpl:7
73+//line templates/about.qtpl:7
74 qt422016.ReleaseByteBuffer(qb422016)
75-//line about.qtpl:7
76+//line templates/about.qtpl:7
77 return qs422016
78-//line about.qtpl:7
79+//line templates/about.qtpl:7
80 }
81
82-//line about.qtpl:9
83+//line templates/about.qtpl:9
84 func (p *AboutPage) StreamNavbar(qw422016 *qt422016.Writer) {
85-//line about.qtpl:9
86+//line templates/about.qtpl:9
87 StreamNavbar(qw422016, About)
88-//line about.qtpl:9
89+//line templates/about.qtpl:9
90 }
91
92-//line about.qtpl:9
93+//line templates/about.qtpl:9
94 func (p *AboutPage) WriteNavbar(qq422016 qtio422016.Writer) {
95-//line about.qtpl:9
96+//line templates/about.qtpl:9
97 qw422016 := qt422016.AcquireWriter(qq422016)
98-//line about.qtpl:9
99+//line templates/about.qtpl:9
100 p.StreamNavbar(qw422016)
101-//line about.qtpl:9
102+//line templates/about.qtpl:9
103 qt422016.ReleaseWriter(qw422016)
104-//line about.qtpl:9
105+//line templates/about.qtpl:9
106 }
107
108-//line about.qtpl:9
109+//line templates/about.qtpl:9
110 func (p *AboutPage) Navbar() string {
111-//line about.qtpl:9
112+//line templates/about.qtpl:9
113 qb422016 := qt422016.AcquireByteBuffer()
114-//line about.qtpl:9
115+//line templates/about.qtpl:9
116 p.WriteNavbar(qb422016)
117-//line about.qtpl:9
118+//line templates/about.qtpl:9
119 qs422016 := string(qb422016.B)
120-//line about.qtpl:9
121+//line templates/about.qtpl:9
122 qt422016.ReleaseByteBuffer(qb422016)
123-//line about.qtpl:9
124+//line templates/about.qtpl:9
125 return qs422016
126-//line about.qtpl:9
127+//line templates/about.qtpl:9
128 }
129
130-//line about.qtpl:11
131+//line templates/about.qtpl:11
132 func (p *AboutPage) StreamContent(qw422016 *qt422016.Writer) {
133-//line about.qtpl:11
134+//line templates/about.qtpl:11
135 qw422016.N().S(`
136 `)
137-//line about.qtpl:12
138+//line templates/about.qtpl:12
139 qw422016.N().Z(p.Body)
140-//line about.qtpl:12
141+//line templates/about.qtpl:12
142 qw422016.N().S(`
143 `)
144-//line about.qtpl:13
145+//line templates/about.qtpl:13
146 }
147
148-//line about.qtpl:13
149+//line templates/about.qtpl:13
150 func (p *AboutPage) WriteContent(qq422016 qtio422016.Writer) {
151-//line about.qtpl:13
152+//line templates/about.qtpl:13
153 qw422016 := qt422016.AcquireWriter(qq422016)
154-//line about.qtpl:13
155+//line templates/about.qtpl:13
156 p.StreamContent(qw422016)
157-//line about.qtpl:13
158+//line templates/about.qtpl:13
159 qt422016.ReleaseWriter(qw422016)
160-//line about.qtpl:13
161+//line templates/about.qtpl:13
162 }
163
164-//line about.qtpl:13
165+//line templates/about.qtpl:13
166 func (p *AboutPage) Content() string {
167-//line about.qtpl:13
168+//line templates/about.qtpl:13
169 qb422016 := qt422016.AcquireByteBuffer()
170-//line about.qtpl:13
171+//line templates/about.qtpl:13
172 p.WriteContent(qb422016)
173-//line about.qtpl:13
174+//line templates/about.qtpl:13
175 qs422016 := string(qb422016.B)
176-//line about.qtpl:13
177+//line templates/about.qtpl:13
178 qt422016.ReleaseByteBuffer(qb422016)
179-//line about.qtpl:13
180+//line templates/about.qtpl:13
181 return qs422016
182-//line about.qtpl:13
183+//line templates/about.qtpl:13
184 }
185
186-//line about.qtpl:15
187+//line templates/about.qtpl:15
188 func (p *AboutPage) StreamScript(qw422016 *qt422016.Writer) {
189-//line about.qtpl:15
190+//line templates/about.qtpl:15
191 qw422016.N().S(`
192 `)
193-//line about.qtpl:16
194+//line templates/about.qtpl:16
195 }
196
197-//line about.qtpl:16
198+//line templates/about.qtpl:16
199 func (p *AboutPage) WriteScript(qq422016 qtio422016.Writer) {
200-//line about.qtpl:16
201+//line templates/about.qtpl:16
202 qw422016 := qt422016.AcquireWriter(qq422016)
203-//line about.qtpl:16
204+//line templates/about.qtpl:16
205 p.StreamScript(qw422016)
206-//line about.qtpl:16
207+//line templates/about.qtpl:16
208 qt422016.ReleaseWriter(qw422016)
209-//line about.qtpl:16
210+//line templates/about.qtpl:16
211 }
212
213-//line about.qtpl:16
214+//line templates/about.qtpl:16
215 func (p *AboutPage) Script() string {
216-//line about.qtpl:16
217+//line templates/about.qtpl:16
218 qb422016 := qt422016.AcquireByteBuffer()
219-//line about.qtpl:16
220+//line templates/about.qtpl:16
221 p.WriteScript(qb422016)
222-//line about.qtpl:16
223+//line templates/about.qtpl:16
224 qs422016 := string(qb422016.B)
225-//line about.qtpl:16
226+//line templates/about.qtpl:16
227 qt422016.ReleaseByteBuffer(qb422016)
228-//line about.qtpl:16
229+//line templates/about.qtpl:16
230 return qs422016
231-//line about.qtpl:16
232+//line templates/about.qtpl:16
233 }
234diff --git a/templates/base.qtpl.go b/templates/base.qtpl.go
235index b2356feb0c1d6dd3aa6cd1105c63a81005a9093f..51b2b8bac5c49299eb9ec03633e03a202a87bc0d 100644
236--- a/templates/base.qtpl.go
237+++ b/templates/base.qtpl.go
238@@ -4,61 +4,61 @@
239 // This is a base page template. All the other template pages implement this interface.
240 //
241
242-//line base.qtpl:3
243+//line templates/base.qtpl:3
244 package templates
245
246-//line base.qtpl:3
247+//line templates/base.qtpl:3
248 import "strconv"
249
250-//line base.qtpl:4
251+//line templates/base.qtpl:4
252 import "time"
253
254-//line base.qtpl:6
255+//line templates/base.qtpl:6
256 import (
257 qtio422016 "io"
258
259 qt422016 "github.com/valyala/quicktemplate"
260 )
261
262-//line base.qtpl:6
263+//line templates/base.qtpl:6
264 var (
265 _ = qtio422016.Copy
266 _ = qt422016.AcquireByteBuffer
267 )
268
269-//line base.qtpl:7
270+//line templates/base.qtpl:7
271 var Slug = ""
272
273-//line base.qtpl:11
274+//line templates/base.qtpl:11
275 type Page interface {
276-//line base.qtpl:11
277+//line templates/base.qtpl:11
278 Title() string
279-//line base.qtpl:11
280+//line templates/base.qtpl:11
281 StreamTitle(qw422016 *qt422016.Writer)
282-//line base.qtpl:11
283+//line templates/base.qtpl:11
284 WriteTitle(qq422016 qtio422016.Writer)
285-//line base.qtpl:11
286+//line templates/base.qtpl:11
287 Content() string
288-//line base.qtpl:11
289+//line templates/base.qtpl:11
290 StreamContent(qw422016 *qt422016.Writer)
291-//line base.qtpl:11
292+//line templates/base.qtpl:11
293 WriteContent(qq422016 qtio422016.Writer)
294-//line base.qtpl:11
295+//line templates/base.qtpl:11
296 Script() string
297-//line base.qtpl:11
298+//line templates/base.qtpl:11
299 StreamScript(qw422016 *qt422016.Writer)
300-//line base.qtpl:11
301+//line templates/base.qtpl:11
302 WriteScript(qq422016 qtio422016.Writer)
303-//line base.qtpl:11
304+//line templates/base.qtpl:11
305 Navbar() string
306-//line base.qtpl:11
307+//line templates/base.qtpl:11
308 StreamNavbar(qw422016 *qt422016.Writer)
309-//line base.qtpl:11
310+//line templates/base.qtpl:11
311 WriteNavbar(qq422016 qtio422016.Writer)
312-//line base.qtpl:11
313+//line templates/base.qtpl:11
314 }
315
316-//line base.qtpl:20
317+//line templates/base.qtpl:20
318 func FromUInttoString(u *uint) string {
319 if u != nil {
320 return strconv.FormatUint(uint64(*u), 10)
321@@ -66,21 +66,21 @@ }
322 return ""
323 }
324
325-//line base.qtpl:28
326+//line templates/base.qtpl:28
327 func TimeFormat(t time.Time) string {
328 return t.Format("02.01.2006")
329 }
330
331-//line base.qtpl:33
332+//line templates/base.qtpl:33
333 func Ignore[T any](v T, _ error) T {
334 return v
335 }
336
337 // Page prints a page implementing Page interface.
338
339-//line base.qtpl:39
340+//line templates/base.qtpl:39
341 func StreamPageTemplate(qw422016 *qt422016.Writer, p Page) {
342-//line base.qtpl:39
343+//line templates/base.qtpl:39
344 qw422016.N().S(`
345 <!DOCTYPE html>
346 <html lang="en">
347@@ -88,14 +88,14 @@ <head>
348 <meta charset="utf-8">
349 <link rel="icon" href="data:,">
350 <title>`)
351-//line base.qtpl:45
352+//line templates/base.qtpl:45
353 p.StreamTitle(qw422016)
354-//line base.qtpl:45
355+//line templates/base.qtpl:45
356 qw422016.N().S(`</title>
357 <link rel="stylesheet" href="/static/main`)
358-//line base.qtpl:46
359+//line templates/base.qtpl:46
360 qw422016.E().S(Slug)
361-//line base.qtpl:46
362+//line templates/base.qtpl:46
363 qw422016.N().S(`.css">
364 <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
365 <meta name="viewport" content="width=device-width, initial-scale=1" />
366@@ -105,50 +105,50 @@ <div class="alert alert-warning text-center" role="alert">
367 This project is under development, things may be broken or incomplete.
368 </div>
369 `)
370-//line base.qtpl:54
371+//line templates/base.qtpl:54
372 p.StreamNavbar(qw422016)
373-//line base.qtpl:54
374+//line templates/base.qtpl:54
375 qw422016.N().S(`
376 <div class="container">
377 `)
378-//line base.qtpl:56
379+//line templates/base.qtpl:56
380 p.StreamContent(qw422016)
381-//line base.qtpl:56
382+//line templates/base.qtpl:56
383 qw422016.N().S(`
384 </div>
385 </body>
386 `)
387-//line base.qtpl:59
388+//line templates/base.qtpl:59
389 p.StreamScript(qw422016)
390-//line base.qtpl:59
391+//line templates/base.qtpl:59
392 qw422016.N().S(`
393 </html>
394 `)
395-//line base.qtpl:61
396+//line templates/base.qtpl:61
397 }
398
399-//line base.qtpl:61
400+//line templates/base.qtpl:61
401 func WritePageTemplate(qq422016 qtio422016.Writer, p Page) {
402-//line base.qtpl:61
403+//line templates/base.qtpl:61
404 qw422016 := qt422016.AcquireWriter(qq422016)
405-//line base.qtpl:61
406+//line templates/base.qtpl:61
407 StreamPageTemplate(qw422016, p)
408-//line base.qtpl:61
409+//line templates/base.qtpl:61
410 qt422016.ReleaseWriter(qw422016)
411-//line base.qtpl:61
412+//line templates/base.qtpl:61
413 }
414
415-//line base.qtpl:61
416+//line templates/base.qtpl:61
417 func PageTemplate(p Page) string {
418-//line base.qtpl:61
419+//line templates/base.qtpl:61
420 qb422016 := qt422016.AcquireByteBuffer()
421-//line base.qtpl:61
422+//line templates/base.qtpl:61
423 WritePageTemplate(qb422016, p)
424-//line base.qtpl:61
425+//line templates/base.qtpl:61
426 qs422016 := string(qb422016.B)
427-//line base.qtpl:61
428+//line templates/base.qtpl:61
429 qt422016.ReleaseByteBuffer(qb422016)
430-//line base.qtpl:61
431+//line templates/base.qtpl:61
432 return qs422016
433-//line base.qtpl:61
434+//line templates/base.qtpl:61
435 }
436diff --git a/templates/commit.qtpl.go b/templates/commit.qtpl.go
437index 04d1c9c1aa74769d3201657d54974bd9572672a2..9a25741aebc4e36f555a2c563899ecf9cfed7d1b 100644
438--- a/templates/commit.qtpl.go
439+++ b/templates/commit.qtpl.go
440@@ -1,125 +1,125 @@
441 // Code generated by qtc from "commit.qtpl". DO NOT EDIT.
442 // See https://github.com/valyala/quicktemplate for details.
443
444-//line commit.qtpl:1
445+//line templates/commit.qtpl:1
446 package templates
447
448-//line commit.qtpl:1
449+//line templates/commit.qtpl:1
450 import "github.com/go-git/go-git/v5/plumbing/object"
451
452-//line commit.qtpl:3
453+//line templates/commit.qtpl:3
454 import (
455 qtio422016 "io"
456
457 qt422016 "github.com/valyala/quicktemplate"
458 )
459
460-//line commit.qtpl:3
461+//line templates/commit.qtpl:3
462 var (
463 _ = qtio422016.Copy
464 _ = qt422016.AcquireByteBuffer
465 )
466
467-//line commit.qtpl:3
468+//line templates/commit.qtpl:3
469 func StreamCommit(qw422016 *qt422016.Writer, name string, c *object.Commit, showTar bool) {
470-//line commit.qtpl:3
471+//line templates/commit.qtpl:3
472 qw422016.N().S(`
473 <div class="row event">
474 <div class="row">
475 <div class="col-md">
476 <a title="`)
477-//line commit.qtpl:7
478+//line templates/commit.qtpl:7
479 qw422016.E().S(c.Hash.String())
480-//line commit.qtpl:7
481+//line templates/commit.qtpl:7
482 qw422016.N().S(`" href="/`)
483-//line commit.qtpl:7
484+//line templates/commit.qtpl:7
485 qw422016.E().S(name)
486-//line commit.qtpl:7
487+//line templates/commit.qtpl:7
488 qw422016.N().S(`/commit/`)
489-//line commit.qtpl:7
490+//line templates/commit.qtpl:7
491 qw422016.E().S(c.Hash.String())
492-//line commit.qtpl:7
493+//line templates/commit.qtpl:7
494 qw422016.N().S(`">`)
495-//line commit.qtpl:7
496+//line templates/commit.qtpl:7
497 qw422016.E().S(c.Hash.String()[0:8])
498-//line commit.qtpl:7
499+//line templates/commit.qtpl:7
500 qw422016.N().S(`</a>
501 </div>
502 `)
503-//line commit.qtpl:9
504+//line templates/commit.qtpl:9
505 if showTar {
506-//line commit.qtpl:9
507+//line templates/commit.qtpl:9
508 qw422016.N().S(`
509 <div class="col-md text-md-center">
510 <a title="tar.gz for `)
511-//line commit.qtpl:11
512+//line templates/commit.qtpl:11
513 qw422016.E().S(c.Hash.String())
514-//line commit.qtpl:11
515+//line templates/commit.qtpl:11
516 qw422016.N().S(`" href="/`)
517-//line commit.qtpl:11
518+//line templates/commit.qtpl:11
519 qw422016.E().S(name)
520-//line commit.qtpl:11
521+//line templates/commit.qtpl:11
522 qw422016.N().S(`/archive/`)
523-//line commit.qtpl:11
524+//line templates/commit.qtpl:11
525 qw422016.E().S(c.Hash.String())
526-//line commit.qtpl:11
527+//line templates/commit.qtpl:11
528 qw422016.N().S(`.tar.gz">tar.gz</a>
529 </div>
530 `)
531-//line commit.qtpl:13
532+//line templates/commit.qtpl:13
533 }
534-//line commit.qtpl:13
535+//line templates/commit.qtpl:13
536 qw422016.N().S(`
537 <div class="col-md text-md-end">
538 <a title="`)
539-//line commit.qtpl:15
540+//line templates/commit.qtpl:15
541 qw422016.E().S(c.Committer.Email)
542-//line commit.qtpl:15
543+//line templates/commit.qtpl:15
544 qw422016.N().S(`" href="mailto:`)
545-//line commit.qtpl:15
546+//line templates/commit.qtpl:15
547 qw422016.E().S(c.Committer.Email)
548-//line commit.qtpl:15
549+//line templates/commit.qtpl:15
550 qw422016.N().S(`">`)
551-//line commit.qtpl:15
552+//line templates/commit.qtpl:15
553 qw422016.E().S(c.Committer.Name)
554-//line commit.qtpl:15
555+//line templates/commit.qtpl:15
556 qw422016.N().S(`</a>
557 </div>
558 </div>
559 <div class="code-view">
560 <pre>`)
561-//line commit.qtpl:19
562+//line templates/commit.qtpl:19
563 qw422016.E().S(c.Message)
564-//line commit.qtpl:19
565+//line templates/commit.qtpl:19
566 qw422016.N().S(`</pre>
567 </div>
568 </div>
569 `)
570-//line commit.qtpl:22
571+//line templates/commit.qtpl:22
572 }
573
574-//line commit.qtpl:22
575+//line templates/commit.qtpl:22
576 func WriteCommit(qq422016 qtio422016.Writer, name string, c *object.Commit, showTar bool) {
577-//line commit.qtpl:22
578+//line templates/commit.qtpl:22
579 qw422016 := qt422016.AcquireWriter(qq422016)
580-//line commit.qtpl:22
581+//line templates/commit.qtpl:22
582 StreamCommit(qw422016, name, c, showTar)
583-//line commit.qtpl:22
584+//line templates/commit.qtpl:22
585 qt422016.ReleaseWriter(qw422016)
586-//line commit.qtpl:22
587+//line templates/commit.qtpl:22
588 }
589
590-//line commit.qtpl:22
591+//line templates/commit.qtpl:22
592 func Commit(name string, c *object.Commit, showTar bool) string {
593-//line commit.qtpl:22
594+//line templates/commit.qtpl:22
595 qb422016 := qt422016.AcquireByteBuffer()
596-//line commit.qtpl:22
597+//line templates/commit.qtpl:22
598 WriteCommit(qb422016, name, c, showTar)
599-//line commit.qtpl:22
600+//line templates/commit.qtpl:22
601 qs422016 := string(qb422016.B)
602-//line commit.qtpl:22
603+//line templates/commit.qtpl:22
604 qt422016.ReleaseByteBuffer(qb422016)
605-//line commit.qtpl:22
606+//line templates/commit.qtpl:22
607 return qs422016
608-//line commit.qtpl:22
609+//line templates/commit.qtpl:22
610 }
611diff --git a/templates/config.qtpl.go b/templates/config.qtpl.go
612index 58b3881dbe2f792160c905f25a90783743b442b2..975fea3e6c0c0108638792a2f2d42a8fced14631 100644
613--- a/templates/config.qtpl.go
614+++ b/templates/config.qtpl.go
615@@ -1,165 +1,165 @@
616 // Code generated by qtc from "config.qtpl". DO NOT EDIT.
617 // See https://github.com/valyala/quicktemplate for details.
618
619-//line config.qtpl:1
620+//line templates/config.qtpl:1
621 package templates
622
623-//line config.qtpl:1
624+//line templates/config.qtpl:1
625 import (
626 qtio422016 "io"
627
628 qt422016 "github.com/valyala/quicktemplate"
629 )
630
631-//line config.qtpl:1
632+//line templates/config.qtpl:1
633 var (
634 _ = qtio422016.Copy
635 _ = qt422016.AcquireByteBuffer
636 )
637
638-//line config.qtpl:2
639+//line templates/config.qtpl:2
640 type ConfigPage struct {
641 Body []byte
642 }
643
644-//line config.qtpl:7
645+//line templates/config.qtpl:7
646 func (p *ConfigPage) StreamTitle(qw422016 *qt422016.Writer) {
647-//line config.qtpl:7
648+//line templates/config.qtpl:7
649 qw422016.N().S(`Hello`)
650-//line config.qtpl:7
651+//line templates/config.qtpl:7
652 }
653
654-//line config.qtpl:7
655+//line templates/config.qtpl:7
656 func (p *ConfigPage) WriteTitle(qq422016 qtio422016.Writer) {
657-//line config.qtpl:7
658+//line templates/config.qtpl:7
659 qw422016 := qt422016.AcquireWriter(qq422016)
660-//line config.qtpl:7
661+//line templates/config.qtpl:7
662 p.StreamTitle(qw422016)
663-//line config.qtpl:7
664+//line templates/config.qtpl:7
665 qt422016.ReleaseWriter(qw422016)
666-//line config.qtpl:7
667+//line templates/config.qtpl:7
668 }
669
670-//line config.qtpl:7
671+//line templates/config.qtpl:7
672 func (p *ConfigPage) Title() string {
673-//line config.qtpl:7
674+//line templates/config.qtpl:7
675 qb422016 := qt422016.AcquireByteBuffer()
676-//line config.qtpl:7
677+//line templates/config.qtpl:7
678 p.WriteTitle(qb422016)
679-//line config.qtpl:7
680+//line templates/config.qtpl:7
681 qs422016 := string(qb422016.B)
682-//line config.qtpl:7
683+//line templates/config.qtpl:7
684 qt422016.ReleaseByteBuffer(qb422016)
685-//line config.qtpl:7
686+//line templates/config.qtpl:7
687 return qs422016
688-//line config.qtpl:7
689+//line templates/config.qtpl:7
690 }
691
692-//line config.qtpl:9
693+//line templates/config.qtpl:9
694 func (p *ConfigPage) StreamNavbar(qw422016 *qt422016.Writer) {
695-//line config.qtpl:9
696+//line templates/config.qtpl:9
697 StreamNavbar(qw422016, Config)
698-//line config.qtpl:9
699+//line templates/config.qtpl:9
700 }
701
702-//line config.qtpl:9
703+//line templates/config.qtpl:9
704 func (p *ConfigPage) WriteNavbar(qq422016 qtio422016.Writer) {
705-//line config.qtpl:9
706+//line templates/config.qtpl:9
707 qw422016 := qt422016.AcquireWriter(qq422016)
708-//line config.qtpl:9
709+//line templates/config.qtpl:9
710 p.StreamNavbar(qw422016)
711-//line config.qtpl:9
712+//line templates/config.qtpl:9
713 qt422016.ReleaseWriter(qw422016)
714-//line config.qtpl:9
715+//line templates/config.qtpl:9
716 }
717
718-//line config.qtpl:9
719+//line templates/config.qtpl:9
720 func (p *ConfigPage) Navbar() string {
721-//line config.qtpl:9
722+//line templates/config.qtpl:9
723 qb422016 := qt422016.AcquireByteBuffer()
724-//line config.qtpl:9
725+//line templates/config.qtpl:9
726 p.WriteNavbar(qb422016)
727-//line config.qtpl:9
728+//line templates/config.qtpl:9
729 qs422016 := string(qb422016.B)
730-//line config.qtpl:9
731+//line templates/config.qtpl:9
732 qt422016.ReleaseByteBuffer(qb422016)
733-//line config.qtpl:9
734+//line templates/config.qtpl:9
735 return qs422016
736-//line config.qtpl:9
737+//line templates/config.qtpl:9
738 }
739
740-//line config.qtpl:11
741+//line templates/config.qtpl:11
742 func (p *ConfigPage) StreamContent(qw422016 *qt422016.Writer) {
743-//line config.qtpl:11
744+//line templates/config.qtpl:11
745 qw422016.N().S(`
746 <p>This is the configuration that is currently loaded</p>
747 <div class="code-view">
748 `)
749-//line config.qtpl:14
750+//line templates/config.qtpl:14
751 qw422016.N().Z(p.Body)
752-//line config.qtpl:14
753+//line templates/config.qtpl:14
754 qw422016.N().S(`
755 </div>
756 `)
757-//line config.qtpl:16
758+//line templates/config.qtpl:16
759 }
760
761-//line config.qtpl:16
762+//line templates/config.qtpl:16
763 func (p *ConfigPage) WriteContent(qq422016 qtio422016.Writer) {
764-//line config.qtpl:16
765+//line templates/config.qtpl:16
766 qw422016 := qt422016.AcquireWriter(qq422016)
767-//line config.qtpl:16
768+//line templates/config.qtpl:16
769 p.StreamContent(qw422016)
770-//line config.qtpl:16
771+//line templates/config.qtpl:16
772 qt422016.ReleaseWriter(qw422016)
773-//line config.qtpl:16
774+//line templates/config.qtpl:16
775 }
776
777-//line config.qtpl:16
778+//line templates/config.qtpl:16
779 func (p *ConfigPage) Content() string {
780-//line config.qtpl:16
781+//line templates/config.qtpl:16
782 qb422016 := qt422016.AcquireByteBuffer()
783-//line config.qtpl:16
784+//line templates/config.qtpl:16
785 p.WriteContent(qb422016)
786-//line config.qtpl:16
787+//line templates/config.qtpl:16
788 qs422016 := string(qb422016.B)
789-//line config.qtpl:16
790+//line templates/config.qtpl:16
791 qt422016.ReleaseByteBuffer(qb422016)
792-//line config.qtpl:16
793+//line templates/config.qtpl:16
794 return qs422016
795-//line config.qtpl:16
796+//line templates/config.qtpl:16
797 }
798
799-//line config.qtpl:18
800+//line templates/config.qtpl:18
801 func (p *ConfigPage) StreamScript(qw422016 *qt422016.Writer) {
802-//line config.qtpl:18
803+//line templates/config.qtpl:18
804 qw422016.N().S(`
805 `)
806-//line config.qtpl:19
807+//line templates/config.qtpl:19
808 }
809
810-//line config.qtpl:19
811+//line templates/config.qtpl:19
812 func (p *ConfigPage) WriteScript(qq422016 qtio422016.Writer) {
813-//line config.qtpl:19
814+//line templates/config.qtpl:19
815 qw422016 := qt422016.AcquireWriter(qq422016)
816-//line config.qtpl:19
817+//line templates/config.qtpl:19
818 p.StreamScript(qw422016)
819-//line config.qtpl:19
820+//line templates/config.qtpl:19
821 qt422016.ReleaseWriter(qw422016)
822-//line config.qtpl:19
823+//line templates/config.qtpl:19
824 }
825
826-//line config.qtpl:19
827+//line templates/config.qtpl:19
828 func (p *ConfigPage) Script() string {
829-//line config.qtpl:19
830+//line templates/config.qtpl:19
831 qb422016 := qt422016.AcquireByteBuffer()
832-//line config.qtpl:19
833+//line templates/config.qtpl:19
834 p.WriteScript(qb422016)
835-//line config.qtpl:19
836+//line templates/config.qtpl:19
837 qs422016 := string(qb422016.B)
838-//line config.qtpl:19
839+//line templates/config.qtpl:19
840 qt422016.ReleaseByteBuffer(qb422016)
841-//line config.qtpl:19
842+//line templates/config.qtpl:19
843 return qs422016
844-//line config.qtpl:19
845+//line templates/config.qtpl:19
846 }
847diff --git a/templates/error.qtpl.go b/templates/error.qtpl.go
848index 099395f076a3fea1744d060bf5d96617e3c3bc21..f415968c0d258de095a65790f09956cbf2976396 100644
849--- a/templates/error.qtpl.go
850+++ b/templates/error.qtpl.go
851@@ -1,162 +1,162 @@
852 // Code generated by qtc from "error.qtpl". DO NOT EDIT.
853 // See https://github.com/valyala/quicktemplate for details.
854
855-//line error.qtpl:1
856+//line templates/error.qtpl:1
857 package templates
858
859-//line error.qtpl:1
860+//line templates/error.qtpl:1
861 import (
862 qtio422016 "io"
863
864 qt422016 "github.com/valyala/quicktemplate"
865 )
866
867-//line error.qtpl:1
868+//line templates/error.qtpl:1
869 var (
870 _ = qtio422016.Copy
871 _ = qt422016.AcquireByteBuffer
872 )
873
874-//line error.qtpl:2
875+//line templates/error.qtpl:2
876 type ErrorPage struct {
877 Message string
878 }
879
880-//line error.qtpl:7
881+//line templates/error.qtpl:7
882 func (p *ErrorPage) StreamTitle(qw422016 *qt422016.Writer) {
883-//line error.qtpl:7
884+//line templates/error.qtpl:7
885 qw422016.N().S(`Error`)
886-//line error.qtpl:7
887+//line templates/error.qtpl:7
888 }
889
890-//line error.qtpl:7
891+//line templates/error.qtpl:7
892 func (p *ErrorPage) WriteTitle(qq422016 qtio422016.Writer) {
893-//line error.qtpl:7
894+//line templates/error.qtpl:7
895 qw422016 := qt422016.AcquireWriter(qq422016)
896-//line error.qtpl:7
897+//line templates/error.qtpl:7
898 p.StreamTitle(qw422016)
899-//line error.qtpl:7
900+//line templates/error.qtpl:7
901 qt422016.ReleaseWriter(qw422016)
902-//line error.qtpl:7
903+//line templates/error.qtpl:7
904 }
905
906-//line error.qtpl:7
907+//line templates/error.qtpl:7
908 func (p *ErrorPage) Title() string {
909-//line error.qtpl:7
910+//line templates/error.qtpl:7
911 qb422016 := qt422016.AcquireByteBuffer()
912-//line error.qtpl:7
913+//line templates/error.qtpl:7
914 p.WriteTitle(qb422016)
915-//line error.qtpl:7
916+//line templates/error.qtpl:7
917 qs422016 := string(qb422016.B)
918-//line error.qtpl:7
919+//line templates/error.qtpl:7
920 qt422016.ReleaseByteBuffer(qb422016)
921-//line error.qtpl:7
922+//line templates/error.qtpl:7
923 return qs422016
924-//line error.qtpl:7
925+//line templates/error.qtpl:7
926 }
927
928-//line error.qtpl:9
929+//line templates/error.qtpl:9
930 func (p *ErrorPage) StreamNavbar(qw422016 *qt422016.Writer) {
931-//line error.qtpl:9
932+//line templates/error.qtpl:9
933 StreamNavbar(qw422016, Git)
934-//line error.qtpl:9
935+//line templates/error.qtpl:9
936 }
937
938-//line error.qtpl:9
939+//line templates/error.qtpl:9
940 func (p *ErrorPage) WriteNavbar(qq422016 qtio422016.Writer) {
941-//line error.qtpl:9
942+//line templates/error.qtpl:9
943 qw422016 := qt422016.AcquireWriter(qq422016)
944-//line error.qtpl:9
945+//line templates/error.qtpl:9
946 p.StreamNavbar(qw422016)
947-//line error.qtpl:9
948+//line templates/error.qtpl:9
949 qt422016.ReleaseWriter(qw422016)
950-//line error.qtpl:9
951+//line templates/error.qtpl:9
952 }
953
954-//line error.qtpl:9
955+//line templates/error.qtpl:9
956 func (p *ErrorPage) Navbar() string {
957-//line error.qtpl:9
958+//line templates/error.qtpl:9
959 qb422016 := qt422016.AcquireByteBuffer()
960-//line error.qtpl:9
961+//line templates/error.qtpl:9
962 p.WriteNavbar(qb422016)
963-//line error.qtpl:9
964+//line templates/error.qtpl:9
965 qs422016 := string(qb422016.B)
966-//line error.qtpl:9
967+//line templates/error.qtpl:9
968 qt422016.ReleaseByteBuffer(qb422016)
969-//line error.qtpl:9
970+//line templates/error.qtpl:9
971 return qs422016
972-//line error.qtpl:9
973+//line templates/error.qtpl:9
974 }
975
976-//line error.qtpl:11
977+//line templates/error.qtpl:11
978 func (p *ErrorPage) StreamContent(qw422016 *qt422016.Writer) {
979-//line error.qtpl:11
980+//line templates/error.qtpl:11
981 qw422016.N().S(`
982 `)
983-//line error.qtpl:12
984+//line templates/error.qtpl:12
985 qw422016.E().S(p.Message)
986-//line error.qtpl:12
987+//line templates/error.qtpl:12
988 qw422016.N().S(`
989 `)
990-//line error.qtpl:13
991+//line templates/error.qtpl:13
992 }
993
994-//line error.qtpl:13
995+//line templates/error.qtpl:13
996 func (p *ErrorPage) WriteContent(qq422016 qtio422016.Writer) {
997-//line error.qtpl:13
998+//line templates/error.qtpl:13
999 qw422016 := qt422016.AcquireWriter(qq422016)
1000-//line error.qtpl:13
1001+//line templates/error.qtpl:13
1002 p.StreamContent(qw422016)
1003-//line error.qtpl:13
1004+//line templates/error.qtpl:13
1005 qt422016.ReleaseWriter(qw422016)
1006-//line error.qtpl:13
1007+//line templates/error.qtpl:13
1008 }
1009
1010-//line error.qtpl:13
1011+//line templates/error.qtpl:13
1012 func (p *ErrorPage) Content() string {
1013-//line error.qtpl:13
1014+//line templates/error.qtpl:13
1015 qb422016 := qt422016.AcquireByteBuffer()
1016-//line error.qtpl:13
1017+//line templates/error.qtpl:13
1018 p.WriteContent(qb422016)
1019-//line error.qtpl:13
1020+//line templates/error.qtpl:13
1021 qs422016 := string(qb422016.B)
1022-//line error.qtpl:13
1023+//line templates/error.qtpl:13
1024 qt422016.ReleaseByteBuffer(qb422016)
1025-//line error.qtpl:13
1026+//line templates/error.qtpl:13
1027 return qs422016
1028-//line error.qtpl:13
1029+//line templates/error.qtpl:13
1030 }
1031
1032-//line error.qtpl:15
1033+//line templates/error.qtpl:15
1034 func (p *ErrorPage) StreamScript(qw422016 *qt422016.Writer) {
1035-//line error.qtpl:15
1036+//line templates/error.qtpl:15
1037 qw422016.N().S(`
1038 `)
1039-//line error.qtpl:16
1040+//line templates/error.qtpl:16
1041 }
1042
1043-//line error.qtpl:16
1044+//line templates/error.qtpl:16
1045 func (p *ErrorPage) WriteScript(qq422016 qtio422016.Writer) {
1046-//line error.qtpl:16
1047+//line templates/error.qtpl:16
1048 qw422016 := qt422016.AcquireWriter(qq422016)
1049-//line error.qtpl:16
1050+//line templates/error.qtpl:16
1051 p.StreamScript(qw422016)
1052-//line error.qtpl:16
1053+//line templates/error.qtpl:16
1054 qt422016.ReleaseWriter(qw422016)
1055-//line error.qtpl:16
1056+//line templates/error.qtpl:16
1057 }
1058
1059-//line error.qtpl:16
1060+//line templates/error.qtpl:16
1061 func (p *ErrorPage) Script() string {
1062-//line error.qtpl:16
1063+//line templates/error.qtpl:16
1064 qb422016 := qt422016.AcquireByteBuffer()
1065-//line error.qtpl:16
1066+//line templates/error.qtpl:16
1067 p.WriteScript(qb422016)
1068-//line error.qtpl:16
1069+//line templates/error.qtpl:16
1070 qs422016 := string(qb422016.B)
1071-//line error.qtpl:16
1072+//line templates/error.qtpl:16
1073 qt422016.ReleaseByteBuffer(qb422016)
1074-//line error.qtpl:16
1075+//line templates/error.qtpl:16
1076 return qs422016
1077-//line error.qtpl:16
1078+//line templates/error.qtpl:16
1079 }
1080diff --git a/templates/gititem.qtpl.go b/templates/gititem.qtpl.go
1081index 7cfeeb452cbabce7c1677e04a308500d05e7125c..c9a00b29d0fd28cd514db8e97d63f5dcff9b172b 100644
1082--- a/templates/gititem.qtpl.go
1083+++ b/templates/gititem.qtpl.go
1084@@ -1,190 +1,190 @@
1085 // Code generated by qtc from "gititem.qtpl". DO NOT EDIT.
1086 // See https://github.com/valyala/quicktemplate for details.
1087
1088-//line gititem.qtpl:1
1089+//line templates/gititem.qtpl:1
1090 package templates
1091
1092-//line gititem.qtpl:1
1093+//line templates/gititem.qtpl:1
1094 import (
1095 qtio422016 "io"
1096
1097 qt422016 "github.com/valyala/quicktemplate"
1098 )
1099
1100-//line gititem.qtpl:1
1101+//line templates/gititem.qtpl:1
1102 var (
1103 _ = qtio422016.Copy
1104 _ = qt422016.AcquireByteBuffer
1105 )
1106
1107-//line gititem.qtpl:2
1108+//line templates/gititem.qtpl:2
1109 type GitItemBase interface {
1110-//line gititem.qtpl:2
1111+//line templates/gititem.qtpl:2
1112 Nav(name, ref string) string
1113-//line gititem.qtpl:2
1114+//line templates/gititem.qtpl:2
1115 StreamNav(qw422016 *qt422016.Writer, name, ref string)
1116-//line gititem.qtpl:2
1117+//line templates/gititem.qtpl:2
1118 WriteNav(qq422016 qtio422016.Writer, name, ref string)
1119-//line gititem.qtpl:2
1120+//line templates/gititem.qtpl:2
1121 GitContent(name, ref string) string
1122-//line gititem.qtpl:2
1123+//line templates/gititem.qtpl:2
1124 StreamGitContent(qw422016 *qt422016.Writer, name, ref string)
1125-//line gititem.qtpl:2
1126+//line templates/gititem.qtpl:2
1127 WriteGitContent(qq422016 qtio422016.Writer, name, ref string)
1128-//line gititem.qtpl:2
1129+//line templates/gititem.qtpl:2
1130 }
1131
1132-//line gititem.qtpl:9
1133+//line templates/gititem.qtpl:9
1134 type GitItemPage struct {
1135 Name string
1136 Ref string
1137 GitItemBase
1138 }
1139
1140-//line gititem.qtpl:16
1141+//line templates/gititem.qtpl:16
1142 func (p *GitItemPage) StreamTitle(qw422016 *qt422016.Writer) {
1143-//line gititem.qtpl:16
1144+//line templates/gititem.qtpl:16
1145 qw422016.N().S(`Git | `)
1146-//line gititem.qtpl:16
1147+//line templates/gititem.qtpl:16
1148 qw422016.E().S(p.Name)
1149-//line gititem.qtpl:16
1150+//line templates/gititem.qtpl:16
1151 }
1152
1153-//line gititem.qtpl:16
1154+//line templates/gititem.qtpl:16
1155 func (p *GitItemPage) WriteTitle(qq422016 qtio422016.Writer) {
1156-//line gititem.qtpl:16
1157+//line templates/gititem.qtpl:16
1158 qw422016 := qt422016.AcquireWriter(qq422016)
1159-//line gititem.qtpl:16
1160+//line templates/gititem.qtpl:16
1161 p.StreamTitle(qw422016)
1162-//line gititem.qtpl:16
1163+//line templates/gititem.qtpl:16
1164 qt422016.ReleaseWriter(qw422016)
1165-//line gititem.qtpl:16
1166+//line templates/gititem.qtpl:16
1167 }
1168
1169-//line gititem.qtpl:16
1170+//line templates/gititem.qtpl:16
1171 func (p *GitItemPage) Title() string {
1172-//line gititem.qtpl:16
1173+//line templates/gititem.qtpl:16
1174 qb422016 := qt422016.AcquireByteBuffer()
1175-//line gititem.qtpl:16
1176+//line templates/gititem.qtpl:16
1177 p.WriteTitle(qb422016)
1178-//line gititem.qtpl:16
1179+//line templates/gititem.qtpl:16
1180 qs422016 := string(qb422016.B)
1181-//line gititem.qtpl:16
1182+//line templates/gititem.qtpl:16
1183 qt422016.ReleaseByteBuffer(qb422016)
1184-//line gititem.qtpl:16
1185+//line templates/gititem.qtpl:16
1186 return qs422016
1187-//line gititem.qtpl:16
1188+//line templates/gititem.qtpl:16
1189 }
1190
1191-//line gititem.qtpl:18
1192+//line templates/gititem.qtpl:18
1193 func (p *GitItemPage) StreamNavbar(qw422016 *qt422016.Writer) {
1194-//line gititem.qtpl:18
1195+//line templates/gititem.qtpl:18
1196 StreamNavbar(qw422016, Git)
1197-//line gititem.qtpl:18
1198+//line templates/gititem.qtpl:18
1199 }
1200
1201-//line gititem.qtpl:18
1202+//line templates/gititem.qtpl:18
1203 func (p *GitItemPage) WriteNavbar(qq422016 qtio422016.Writer) {
1204-//line gititem.qtpl:18
1205+//line templates/gititem.qtpl:18
1206 qw422016 := qt422016.AcquireWriter(qq422016)
1207-//line gititem.qtpl:18
1208+//line templates/gititem.qtpl:18
1209 p.StreamNavbar(qw422016)
1210-//line gititem.qtpl:18
1211+//line templates/gititem.qtpl:18
1212 qt422016.ReleaseWriter(qw422016)
1213-//line gititem.qtpl:18
1214+//line templates/gititem.qtpl:18
1215 }
1216
1217-//line gititem.qtpl:18
1218+//line templates/gititem.qtpl:18
1219 func (p *GitItemPage) Navbar() string {
1220-//line gititem.qtpl:18
1221+//line templates/gititem.qtpl:18
1222 qb422016 := qt422016.AcquireByteBuffer()
1223-//line gititem.qtpl:18
1224+//line templates/gititem.qtpl:18
1225 p.WriteNavbar(qb422016)
1226-//line gititem.qtpl:18
1227+//line templates/gititem.qtpl:18
1228 qs422016 := string(qb422016.B)
1229-//line gititem.qtpl:18
1230+//line templates/gititem.qtpl:18
1231 qt422016.ReleaseByteBuffer(qb422016)
1232-//line gititem.qtpl:18
1233+//line templates/gititem.qtpl:18
1234 return qs422016
1235-//line gititem.qtpl:18
1236+//line templates/gititem.qtpl:18
1237 }
1238
1239-//line gititem.qtpl:20
1240+//line templates/gititem.qtpl:20
1241 func (p *GitItemPage) StreamContent(qw422016 *qt422016.Writer) {
1242-//line gititem.qtpl:20
1243+//line templates/gititem.qtpl:20
1244 qw422016.N().S(`
1245 `)
1246-//line gititem.qtpl:21
1247+//line templates/gititem.qtpl:21
1248 p.StreamNav(qw422016, p.Name, p.Ref)
1249-//line gititem.qtpl:21
1250+//line templates/gititem.qtpl:21
1251 qw422016.N().S(`
1252 <div class="container">
1253 `)
1254-//line gititem.qtpl:23
1255+//line templates/gititem.qtpl:23
1256 p.StreamGitContent(qw422016, p.Name, p.Ref)
1257-//line gititem.qtpl:23
1258+//line templates/gititem.qtpl:23
1259 qw422016.N().S(`
1260 </div>
1261 `)
1262-//line gititem.qtpl:25
1263+//line templates/gititem.qtpl:25
1264 }
1265
1266-//line gititem.qtpl:25
1267+//line templates/gititem.qtpl:25
1268 func (p *GitItemPage) WriteContent(qq422016 qtio422016.Writer) {
1269-//line gititem.qtpl:25
1270+//line templates/gititem.qtpl:25
1271 qw422016 := qt422016.AcquireWriter(qq422016)
1272-//line gititem.qtpl:25
1273+//line templates/gititem.qtpl:25
1274 p.StreamContent(qw422016)
1275-//line gititem.qtpl:25
1276+//line templates/gititem.qtpl:25
1277 qt422016.ReleaseWriter(qw422016)
1278-//line gititem.qtpl:25
1279+//line templates/gititem.qtpl:25
1280 }
1281
1282-//line gititem.qtpl:25
1283+//line templates/gititem.qtpl:25
1284 func (p *GitItemPage) Content() string {
1285-//line gititem.qtpl:25
1286+//line templates/gititem.qtpl:25
1287 qb422016 := qt422016.AcquireByteBuffer()
1288-//line gititem.qtpl:25
1289+//line templates/gititem.qtpl:25
1290 p.WriteContent(qb422016)
1291-//line gititem.qtpl:25
1292+//line templates/gititem.qtpl:25
1293 qs422016 := string(qb422016.B)
1294-//line gititem.qtpl:25
1295+//line templates/gititem.qtpl:25
1296 qt422016.ReleaseByteBuffer(qb422016)
1297-//line gititem.qtpl:25
1298+//line templates/gititem.qtpl:25
1299 return qs422016
1300-//line gititem.qtpl:25
1301+//line templates/gititem.qtpl:25
1302 }
1303
1304-//line gititem.qtpl:27
1305+//line templates/gititem.qtpl:27
1306 func (p *GitItemPage) StreamScript(qw422016 *qt422016.Writer) {
1307-//line gititem.qtpl:27
1308+//line templates/gititem.qtpl:27
1309 qw422016.N().S(`
1310 `)
1311-//line gititem.qtpl:28
1312+//line templates/gititem.qtpl:28
1313 }
1314
1315-//line gititem.qtpl:28
1316+//line templates/gititem.qtpl:28
1317 func (p *GitItemPage) WriteScript(qq422016 qtio422016.Writer) {
1318-//line gititem.qtpl:28
1319+//line templates/gititem.qtpl:28
1320 qw422016 := qt422016.AcquireWriter(qq422016)
1321-//line gititem.qtpl:28
1322+//line templates/gititem.qtpl:28
1323 p.StreamScript(qw422016)
1324-//line gititem.qtpl:28
1325+//line templates/gititem.qtpl:28
1326 qt422016.ReleaseWriter(qw422016)
1327-//line gititem.qtpl:28
1328+//line templates/gititem.qtpl:28
1329 }
1330
1331-//line gititem.qtpl:28
1332+//line templates/gititem.qtpl:28
1333 func (p *GitItemPage) Script() string {
1334-//line gititem.qtpl:28
1335+//line templates/gititem.qtpl:28
1336 qb422016 := qt422016.AcquireByteBuffer()
1337-//line gititem.qtpl:28
1338+//line templates/gititem.qtpl:28
1339 p.WriteScript(qb422016)
1340-//line gititem.qtpl:28
1341+//line templates/gititem.qtpl:28
1342 qs422016 := string(qb422016.B)
1343-//line gititem.qtpl:28
1344+//line templates/gititem.qtpl:28
1345 qt422016.ReleaseByteBuffer(qb422016)
1346-//line gititem.qtpl:28
1347+//line templates/gititem.qtpl:28
1348 return qs422016
1349-//line gititem.qtpl:28
1350+//line templates/gititem.qtpl:28
1351 }
1352diff --git a/templates/gititemabout.qtpl.go b/templates/gititemabout.qtpl.go
1353index e1c1db423a94f90e4a9fb1d3563acfbdca7c9698..12b4be9e2617762bec48eba9b5990b740a0eef5a 100644
1354--- a/templates/gititemabout.qtpl.go
1355+++ b/templates/gititemabout.qtpl.go
1356@@ -1,97 +1,97 @@
1357 // Code generated by qtc from "gititemabout.qtpl". DO NOT EDIT.
1358 // See https://github.com/valyala/quicktemplate for details.
1359
1360-//line gititemabout.qtpl:1
1361+//line templates/gititemabout.qtpl:1
1362 package templates
1363
1364-//line gititemabout.qtpl:1
1365+//line templates/gititemabout.qtpl:1
1366 import (
1367 qtio422016 "io"
1368
1369 qt422016 "github.com/valyala/quicktemplate"
1370 )
1371
1372-//line gititemabout.qtpl:1
1373+//line templates/gititemabout.qtpl:1
1374 var (
1375 _ = qtio422016.Copy
1376 _ = qt422016.AcquireByteBuffer
1377 )
1378
1379-//line gititemabout.qtpl:2
1380+//line templates/gititemabout.qtpl:2
1381 type GitItemAboutPage struct {
1382 About []byte
1383 }
1384
1385-//line gititemabout.qtpl:7
1386+//line templates/gititemabout.qtpl:7
1387 func (g *GitItemAboutPage) StreamNav(qw422016 *qt422016.Writer, name, ref string) {
1388-//line gititemabout.qtpl:7
1389+//line templates/gititemabout.qtpl:7
1390 StreamGitItemNav(qw422016, name, ref, Readme)
1391-//line gititemabout.qtpl:7
1392+//line templates/gititemabout.qtpl:7
1393 }
1394
1395-//line gititemabout.qtpl:7
1396+//line templates/gititemabout.qtpl:7
1397 func (g *GitItemAboutPage) WriteNav(qq422016 qtio422016.Writer, name, ref string) {
1398-//line gititemabout.qtpl:7
1399+//line templates/gititemabout.qtpl:7
1400 qw422016 := qt422016.AcquireWriter(qq422016)
1401-//line gititemabout.qtpl:7
1402+//line templates/gititemabout.qtpl:7
1403 g.StreamNav(qw422016, name, ref)
1404-//line gititemabout.qtpl:7
1405+//line templates/gititemabout.qtpl:7
1406 qt422016.ReleaseWriter(qw422016)
1407-//line gititemabout.qtpl:7
1408+//line templates/gititemabout.qtpl:7
1409 }
1410
1411-//line gititemabout.qtpl:7
1412+//line templates/gititemabout.qtpl:7
1413 func (g *GitItemAboutPage) Nav(name, ref string) string {
1414-//line gititemabout.qtpl:7
1415+//line templates/gititemabout.qtpl:7
1416 qb422016 := qt422016.AcquireByteBuffer()
1417-//line gititemabout.qtpl:7
1418+//line templates/gititemabout.qtpl:7
1419 g.WriteNav(qb422016, name, ref)
1420-//line gititemabout.qtpl:7
1421+//line templates/gititemabout.qtpl:7
1422 qs422016 := string(qb422016.B)
1423-//line gititemabout.qtpl:7
1424+//line templates/gititemabout.qtpl:7
1425 qt422016.ReleaseByteBuffer(qb422016)
1426-//line gititemabout.qtpl:7
1427+//line templates/gititemabout.qtpl:7
1428 return qs422016
1429-//line gititemabout.qtpl:7
1430+//line templates/gititemabout.qtpl:7
1431 }
1432
1433-//line gititemabout.qtpl:9
1434+//line templates/gititemabout.qtpl:9
1435 func (g *GitItemAboutPage) StreamGitContent(qw422016 *qt422016.Writer, name, ref string) {
1436-//line gititemabout.qtpl:9
1437+//line templates/gititemabout.qtpl:9
1438 qw422016.N().S(`
1439 <div class="m-2">
1440 `)
1441-//line gititemabout.qtpl:11
1442+//line templates/gititemabout.qtpl:11
1443 qw422016.N().Z(g.About)
1444-//line gititemabout.qtpl:11
1445+//line templates/gititemabout.qtpl:11
1446 qw422016.N().S(`
1447 </div>
1448 `)
1449-//line gititemabout.qtpl:13
1450+//line templates/gititemabout.qtpl:13
1451 }
1452
1453-//line gititemabout.qtpl:13
1454+//line templates/gititemabout.qtpl:13
1455 func (g *GitItemAboutPage) WriteGitContent(qq422016 qtio422016.Writer, name, ref string) {
1456-//line gititemabout.qtpl:13
1457+//line templates/gititemabout.qtpl:13
1458 qw422016 := qt422016.AcquireWriter(qq422016)
1459-//line gititemabout.qtpl:13
1460+//line templates/gititemabout.qtpl:13
1461 g.StreamGitContent(qw422016, name, ref)
1462-//line gititemabout.qtpl:13
1463+//line templates/gititemabout.qtpl:13
1464 qt422016.ReleaseWriter(qw422016)
1465-//line gititemabout.qtpl:13
1466+//line templates/gititemabout.qtpl:13
1467 }
1468
1469-//line gititemabout.qtpl:13
1470+//line templates/gititemabout.qtpl:13
1471 func (g *GitItemAboutPage) GitContent(name, ref string) string {
1472-//line gititemabout.qtpl:13
1473+//line templates/gititemabout.qtpl:13
1474 qb422016 := qt422016.AcquireByteBuffer()
1475-//line gititemabout.qtpl:13
1476+//line templates/gititemabout.qtpl:13
1477 g.WriteGitContent(qb422016, name, ref)
1478-//line gititemabout.qtpl:13
1479+//line templates/gititemabout.qtpl:13
1480 qs422016 := string(qb422016.B)
1481-//line gititemabout.qtpl:13
1482+//line templates/gititemabout.qtpl:13
1483 qt422016.ReleaseByteBuffer(qb422016)
1484-//line gititemabout.qtpl:13
1485+//line templates/gititemabout.qtpl:13
1486 return qs422016
1487-//line gititemabout.qtpl:13
1488+//line templates/gititemabout.qtpl:13
1489 }
1490diff --git a/templates/gititemblob.qtpl.go b/templates/gititemblob.qtpl.go
1491index 5d986b4928df2b4ee4fcb489179821ff7759fd90..73742f6b614d8b0da61e9c1c366348e70d55e8e7 100644
1492--- a/templates/gititemblob.qtpl.go
1493+++ b/templates/gititemblob.qtpl.go
1494@@ -1,140 +1,140 @@
1495 // Code generated by qtc from "gititemblob.qtpl". DO NOT EDIT.
1496 // See https://github.com/valyala/quicktemplate for details.
1497
1498-//line gititemblob.qtpl:1
1499+//line templates/gititemblob.qtpl:1
1500 package templates
1501
1502-//line gititemblob.qtpl:1
1503+//line templates/gititemblob.qtpl:1
1504 import "git.gabrielgio.me/cerrado/pkg/u"
1505
1506-//line gititemblob.qtpl:3
1507+//line templates/gititemblob.qtpl:3
1508 import (
1509 qtio422016 "io"
1510
1511 qt422016 "github.com/valyala/quicktemplate"
1512 )
1513
1514-//line gititemblob.qtpl:3
1515+//line templates/gititemblob.qtpl:3
1516 var (
1517 _ = qtio422016.Copy
1518 _ = qt422016.AcquireByteBuffer
1519 )
1520
1521-//line gititemblob.qtpl:4
1522+//line templates/gititemblob.qtpl:4
1523 type GitItemBlobPage struct {
1524 Path []string
1525 Content []byte
1526 }
1527
1528-//line gititemblob.qtpl:10
1529+//line templates/gititemblob.qtpl:10
1530 func (g *GitItemBlobPage) StreamNav(qw422016 *qt422016.Writer, name, ref string) {
1531-//line gititemblob.qtpl:10
1532+//line templates/gititemblob.qtpl:10
1533 StreamGitItemNav(qw422016, name, ref, Tree)
1534-//line gititemblob.qtpl:10
1535+//line templates/gititemblob.qtpl:10
1536 }
1537
1538-//line gititemblob.qtpl:10
1539+//line templates/gititemblob.qtpl:10
1540 func (g *GitItemBlobPage) WriteNav(qq422016 qtio422016.Writer, name, ref string) {
1541-//line gititemblob.qtpl:10
1542+//line templates/gititemblob.qtpl:10
1543 qw422016 := qt422016.AcquireWriter(qq422016)
1544-//line gititemblob.qtpl:10
1545+//line templates/gititemblob.qtpl:10
1546 g.StreamNav(qw422016, name, ref)
1547-//line gititemblob.qtpl:10
1548+//line templates/gititemblob.qtpl:10
1549 qt422016.ReleaseWriter(qw422016)
1550-//line gititemblob.qtpl:10
1551+//line templates/gititemblob.qtpl:10
1552 }
1553
1554-//line gititemblob.qtpl:10
1555+//line templates/gititemblob.qtpl:10
1556 func (g *GitItemBlobPage) Nav(name, ref string) string {
1557-//line gititemblob.qtpl:10
1558+//line templates/gititemblob.qtpl:10
1559 qb422016 := qt422016.AcquireByteBuffer()
1560-//line gititemblob.qtpl:10
1561+//line templates/gititemblob.qtpl:10
1562 g.WriteNav(qb422016, name, ref)
1563-//line gititemblob.qtpl:10
1564+//line templates/gititemblob.qtpl:10
1565 qs422016 := string(qb422016.B)
1566-//line gititemblob.qtpl:10
1567+//line templates/gititemblob.qtpl:10
1568 qt422016.ReleaseByteBuffer(qb422016)
1569-//line gititemblob.qtpl:10
1570+//line templates/gititemblob.qtpl:10
1571 return qs422016
1572-//line gititemblob.qtpl:10
1573+//line templates/gititemblob.qtpl:10
1574 }
1575
1576-//line gititemblob.qtpl:12
1577+//line templates/gititemblob.qtpl:12
1578 func (g *GitItemBlobPage) StreamGitContent(qw422016 *qt422016.Writer, name, ref string) {
1579-//line gititemblob.qtpl:12
1580+//line templates/gititemblob.qtpl:12
1581 qw422016.N().S(`
1582 <div class="pathing">
1583 `)
1584-//line gititemblob.qtpl:15
1585+//line templates/gititemblob.qtpl:15
1586 if len(g.Path) != 0 {
1587-//line gititemblob.qtpl:15
1588+//line templates/gititemblob.qtpl:15
1589 qw422016.N().S(`<a href="`)
1590-//line gititemblob.qtpl:16
1591+//line templates/gititemblob.qtpl:16
1592 qw422016.E().S(url(name, Folder, ref, Root, []string{}))
1593-//line gititemblob.qtpl:16
1594+//line templates/gititemblob.qtpl:16
1595 qw422016.N().S(`">root/</a>`)
1596-//line gititemblob.qtpl:17
1597+//line templates/gititemblob.qtpl:17
1598 for i, e := range g.Path[:len(g.Path)-1] {
1599-//line gititemblob.qtpl:17
1600+//line templates/gititemblob.qtpl:17
1601 qw422016.N().S(`<a href="`)
1602-//line gititemblob.qtpl:18
1603+//line templates/gititemblob.qtpl:18
1604 qw422016.E().S(url(name, Folder, ref, Root, g.Path[:1+i]))
1605-//line gititemblob.qtpl:18
1606+//line templates/gititemblob.qtpl:18
1607 qw422016.N().S(`">`)
1608-//line gititemblob.qtpl:18
1609+//line templates/gititemblob.qtpl:18
1610 qw422016.E().S(e)
1611-//line gititemblob.qtpl:18
1612+//line templates/gititemblob.qtpl:18
1613 qw422016.N().S(`/</a>`)
1614-//line gititemblob.qtpl:19
1615+//line templates/gititemblob.qtpl:19
1616 }
1617-//line gititemblob.qtpl:19
1618+//line templates/gititemblob.qtpl:19
1619 qw422016.N().S(`<a>`)
1620-//line gititemblob.qtpl:20
1621+//line templates/gititemblob.qtpl:20
1622 qw422016.E().S(u.LastOrZero(g.Path))
1623-//line gititemblob.qtpl:20
1624+//line templates/gititemblob.qtpl:20
1625 qw422016.N().S(`</a>`)
1626-//line gititemblob.qtpl:21
1627+//line templates/gititemblob.qtpl:21
1628 } else {
1629-//line gititemblob.qtpl:21
1630+//line templates/gititemblob.qtpl:21
1631 qw422016.N().S(`<a>root/</a>`)
1632-//line gititemblob.qtpl:23
1633+//line templates/gititemblob.qtpl:23
1634 }
1635-//line gititemblob.qtpl:24
1636+//line templates/gititemblob.qtpl:24
1637 qw422016.N().S(`
1638 </div>
1639 <div class="code-view">
1640 `)
1641-//line gititemblob.qtpl:27
1642+//line templates/gititemblob.qtpl:27
1643 qw422016.N().Z(g.Content)
1644-//line gititemblob.qtpl:27
1645+//line templates/gititemblob.qtpl:27
1646 qw422016.N().S(`
1647 </div>
1648 `)
1649-//line gititemblob.qtpl:29
1650+//line templates/gititemblob.qtpl:29
1651 }
1652
1653-//line gititemblob.qtpl:29
1654+//line templates/gititemblob.qtpl:29
1655 func (g *GitItemBlobPage) WriteGitContent(qq422016 qtio422016.Writer, name, ref string) {
1656-//line gititemblob.qtpl:29
1657+//line templates/gititemblob.qtpl:29
1658 qw422016 := qt422016.AcquireWriter(qq422016)
1659-//line gititemblob.qtpl:29
1660+//line templates/gititemblob.qtpl:29
1661 g.StreamGitContent(qw422016, name, ref)
1662-//line gititemblob.qtpl:29
1663+//line templates/gititemblob.qtpl:29
1664 qt422016.ReleaseWriter(qw422016)
1665-//line gititemblob.qtpl:29
1666+//line templates/gititemblob.qtpl:29
1667 }
1668
1669-//line gititemblob.qtpl:29
1670+//line templates/gititemblob.qtpl:29
1671 func (g *GitItemBlobPage) GitContent(name, ref string) string {
1672-//line gititemblob.qtpl:29
1673+//line templates/gititemblob.qtpl:29
1674 qb422016 := qt422016.AcquireByteBuffer()
1675-//line gititemblob.qtpl:29
1676+//line templates/gititemblob.qtpl:29
1677 g.WriteGitContent(qb422016, name, ref)
1678-//line gititemblob.qtpl:29
1679+//line templates/gititemblob.qtpl:29
1680 qs422016 := string(qb422016.B)
1681-//line gititemblob.qtpl:29
1682+//line templates/gititemblob.qtpl:29
1683 qt422016.ReleaseByteBuffer(qb422016)
1684-//line gititemblob.qtpl:29
1685+//line templates/gititemblob.qtpl:29
1686 return qs422016
1687-//line gititemblob.qtpl:29
1688+//line templates/gititemblob.qtpl:29
1689 }
1690diff --git a/templates/gititemcommit.qtpl.go b/templates/gititemcommit.qtpl.go
1691index 39348ee98773d0c5aa684e0b804bd24bf88f9516..8048e5878e26da40142490268067ed5d5eb18b70 100644
1692--- a/templates/gititemcommit.qtpl.go
1693+++ b/templates/gititemcommit.qtpl.go
1694@@ -1,108 +1,108 @@
1695 // Code generated by qtc from "gititemcommit.qtpl". DO NOT EDIT.
1696 // See https://github.com/valyala/quicktemplate for details.
1697
1698-//line gititemcommit.qtpl:1
1699+//line templates/gititemcommit.qtpl:1
1700 package templates
1701
1702-//line gititemcommit.qtpl:1
1703+//line templates/gititemcommit.qtpl:1
1704 import "github.com/go-git/go-git/v5/plumbing/object"
1705
1706-//line gititemcommit.qtpl:3
1707+//line templates/gititemcommit.qtpl:3
1708 import (
1709 qtio422016 "io"
1710
1711 qt422016 "github.com/valyala/quicktemplate"
1712 )
1713
1714-//line gititemcommit.qtpl:3
1715+//line templates/gititemcommit.qtpl:3
1716 var (
1717 _ = qtio422016.Copy
1718 _ = qt422016.AcquireByteBuffer
1719 )
1720
1721-//line gititemcommit.qtpl:4
1722+//line templates/gititemcommit.qtpl:4
1723 type GitItemCommitPage struct {
1724 Commit *object.Commit
1725 Diff string
1726 }
1727
1728-//line gititemcommit.qtpl:10
1729+//line templates/gititemcommit.qtpl:10
1730 func (g *GitItemCommitPage) StreamNav(qw422016 *qt422016.Writer, name, ref string) {
1731-//line gititemcommit.qtpl:10
1732+//line templates/gititemcommit.qtpl:10
1733 StreamGitItemNav(qw422016, name, ref, Log)
1734-//line gititemcommit.qtpl:10
1735+//line templates/gititemcommit.qtpl:10
1736 }
1737
1738-//line gititemcommit.qtpl:10
1739+//line templates/gititemcommit.qtpl:10
1740 func (g *GitItemCommitPage) WriteNav(qq422016 qtio422016.Writer, name, ref string) {
1741-//line gititemcommit.qtpl:10
1742+//line templates/gititemcommit.qtpl:10
1743 qw422016 := qt422016.AcquireWriter(qq422016)
1744-//line gititemcommit.qtpl:10
1745+//line templates/gititemcommit.qtpl:10
1746 g.StreamNav(qw422016, name, ref)
1747-//line gititemcommit.qtpl:10
1748+//line templates/gititemcommit.qtpl:10
1749 qt422016.ReleaseWriter(qw422016)
1750-//line gititemcommit.qtpl:10
1751+//line templates/gititemcommit.qtpl:10
1752 }
1753
1754-//line gititemcommit.qtpl:10
1755+//line templates/gititemcommit.qtpl:10
1756 func (g *GitItemCommitPage) Nav(name, ref string) string {
1757-//line gititemcommit.qtpl:10
1758+//line templates/gititemcommit.qtpl:10
1759 qb422016 := qt422016.AcquireByteBuffer()
1760-//line gititemcommit.qtpl:10
1761+//line templates/gititemcommit.qtpl:10
1762 g.WriteNav(qb422016, name, ref)
1763-//line gititemcommit.qtpl:10
1764+//line templates/gititemcommit.qtpl:10
1765 qs422016 := string(qb422016.B)
1766-//line gititemcommit.qtpl:10
1767+//line templates/gititemcommit.qtpl:10
1768 qt422016.ReleaseByteBuffer(qb422016)
1769-//line gititemcommit.qtpl:10
1770+//line templates/gititemcommit.qtpl:10
1771 return qs422016
1772-//line gititemcommit.qtpl:10
1773+//line templates/gititemcommit.qtpl:10
1774 }
1775
1776-//line gititemcommit.qtpl:12
1777+//line templates/gititemcommit.qtpl:12
1778 func (g *GitItemCommitPage) StreamGitContent(qw422016 *qt422016.Writer, name, ref string) {
1779-//line gititemcommit.qtpl:12
1780+//line templates/gititemcommit.qtpl:12
1781 qw422016.N().S(`
1782 <div class="event-list">
1783 `)
1784-//line gititemcommit.qtpl:14
1785+//line templates/gititemcommit.qtpl:14
1786 StreamCommit(qw422016, name, g.Commit, true)
1787-//line gititemcommit.qtpl:14
1788+//line templates/gititemcommit.qtpl:14
1789 qw422016.N().S(`
1790 </div>
1791 <div class="code-view">
1792 <pre>`)
1793-//line gititemcommit.qtpl:17
1794+//line templates/gititemcommit.qtpl:17
1795 qw422016.E().S(g.Diff)
1796-//line gititemcommit.qtpl:17
1797+//line templates/gititemcommit.qtpl:17
1798 qw422016.N().S(`</pre>
1799 </div>
1800 `)
1801-//line gititemcommit.qtpl:19
1802+//line templates/gititemcommit.qtpl:19
1803 }
1804
1805-//line gititemcommit.qtpl:19
1806+//line templates/gititemcommit.qtpl:19
1807 func (g *GitItemCommitPage) WriteGitContent(qq422016 qtio422016.Writer, name, ref string) {
1808-//line gititemcommit.qtpl:19
1809+//line templates/gititemcommit.qtpl:19
1810 qw422016 := qt422016.AcquireWriter(qq422016)
1811-//line gititemcommit.qtpl:19
1812+//line templates/gititemcommit.qtpl:19
1813 g.StreamGitContent(qw422016, name, ref)
1814-//line gititemcommit.qtpl:19
1815+//line templates/gititemcommit.qtpl:19
1816 qt422016.ReleaseWriter(qw422016)
1817-//line gititemcommit.qtpl:19
1818+//line templates/gititemcommit.qtpl:19
1819 }
1820
1821-//line gititemcommit.qtpl:19
1822+//line templates/gititemcommit.qtpl:19
1823 func (g *GitItemCommitPage) GitContent(name, ref string) string {
1824-//line gititemcommit.qtpl:19
1825+//line templates/gititemcommit.qtpl:19
1826 qb422016 := qt422016.AcquireByteBuffer()
1827-//line gititemcommit.qtpl:19
1828+//line templates/gititemcommit.qtpl:19
1829 g.WriteGitContent(qb422016, name, ref)
1830-//line gititemcommit.qtpl:19
1831+//line templates/gititemcommit.qtpl:19
1832 qs422016 := string(qb422016.B)
1833-//line gititemcommit.qtpl:19
1834+//line templates/gititemcommit.qtpl:19
1835 qt422016.ReleaseByteBuffer(qb422016)
1836-//line gititemcommit.qtpl:19
1837+//line templates/gititemcommit.qtpl:19
1838 return qs422016
1839-//line gititemcommit.qtpl:19
1840+//line templates/gititemcommit.qtpl:19
1841 }
1842diff --git a/templates/gititemlog.qtpl.go b/templates/gititemlog.qtpl.go
1843index bb37a0815d9e9b4287a17fb160a66dc06a977778..20fc1f54a9f6ce2ea4a7a14cbb6dc6e6d60b5d6e 100644
1844--- a/templates/gititemlog.qtpl.go
1845+++ b/templates/gititemlog.qtpl.go
1846@@ -1,110 +1,110 @@
1847 // Code generated by qtc from "gititemlog.qtpl". DO NOT EDIT.
1848 // See https://github.com/valyala/quicktemplate for details.
1849
1850-//line gititemlog.qtpl:1
1851+//line templates/gititemlog.qtpl:1
1852 package templates
1853
1854-//line gititemlog.qtpl:1
1855+//line templates/gititemlog.qtpl:1
1856 import "github.com/go-git/go-git/v5/plumbing/object"
1857
1858-//line gititemlog.qtpl:3
1859+//line templates/gititemlog.qtpl:3
1860 import (
1861 qtio422016 "io"
1862
1863 qt422016 "github.com/valyala/quicktemplate"
1864 )
1865
1866-//line gititemlog.qtpl:3
1867+//line templates/gititemlog.qtpl:3
1868 var (
1869 _ = qtio422016.Copy
1870 _ = qt422016.AcquireByteBuffer
1871 )
1872
1873-//line gititemlog.qtpl:4
1874+//line templates/gititemlog.qtpl:4
1875 type GitItemLogPage struct {
1876 Commits []*object.Commit
1877 }
1878
1879-//line gititemlog.qtpl:9
1880+//line templates/gititemlog.qtpl:9
1881 func (g *GitItemLogPage) StreamNav(qw422016 *qt422016.Writer, name, ref string) {
1882-//line gititemlog.qtpl:9
1883+//line templates/gititemlog.qtpl:9
1884 StreamGitItemNav(qw422016, name, ref, Log)
1885-//line gititemlog.qtpl:9
1886+//line templates/gititemlog.qtpl:9
1887 }
1888
1889-//line gititemlog.qtpl:9
1890+//line templates/gititemlog.qtpl:9
1891 func (g *GitItemLogPage) WriteNav(qq422016 qtio422016.Writer, name, ref string) {
1892-//line gititemlog.qtpl:9
1893+//line templates/gititemlog.qtpl:9
1894 qw422016 := qt422016.AcquireWriter(qq422016)
1895-//line gititemlog.qtpl:9
1896+//line templates/gititemlog.qtpl:9
1897 g.StreamNav(qw422016, name, ref)
1898-//line gititemlog.qtpl:9
1899+//line templates/gititemlog.qtpl:9
1900 qt422016.ReleaseWriter(qw422016)
1901-//line gititemlog.qtpl:9
1902+//line templates/gititemlog.qtpl:9
1903 }
1904
1905-//line gititemlog.qtpl:9
1906+//line templates/gititemlog.qtpl:9
1907 func (g *GitItemLogPage) Nav(name, ref string) string {
1908-//line gititemlog.qtpl:9
1909+//line templates/gititemlog.qtpl:9
1910 qb422016 := qt422016.AcquireByteBuffer()
1911-//line gititemlog.qtpl:9
1912+//line templates/gititemlog.qtpl:9
1913 g.WriteNav(qb422016, name, ref)
1914-//line gititemlog.qtpl:9
1915+//line templates/gititemlog.qtpl:9
1916 qs422016 := string(qb422016.B)
1917-//line gititemlog.qtpl:9
1918+//line templates/gititemlog.qtpl:9
1919 qt422016.ReleaseByteBuffer(qb422016)
1920-//line gititemlog.qtpl:9
1921+//line templates/gititemlog.qtpl:9
1922 return qs422016
1923-//line gititemlog.qtpl:9
1924+//line templates/gititemlog.qtpl:9
1925 }
1926
1927-//line gititemlog.qtpl:11
1928+//line templates/gititemlog.qtpl:11
1929 func (g *GitItemLogPage) StreamGitContent(qw422016 *qt422016.Writer, name, ref string) {
1930-//line gititemlog.qtpl:11
1931+//line templates/gititemlog.qtpl:11
1932 qw422016.N().S(`
1933 <div class="event-list">
1934 `)
1935-//line gititemlog.qtpl:13
1936+//line templates/gititemlog.qtpl:13
1937 for _, c := range g.Commits {
1938-//line gititemlog.qtpl:13
1939+//line templates/gititemlog.qtpl:13
1940 qw422016.N().S(`
1941 `)
1942-//line gititemlog.qtpl:14
1943+//line templates/gititemlog.qtpl:14
1944 StreamCommit(qw422016, name, c, false)
1945-//line gititemlog.qtpl:14
1946+//line templates/gititemlog.qtpl:14
1947 qw422016.N().S(`
1948 `)
1949-//line gititemlog.qtpl:15
1950+//line templates/gititemlog.qtpl:15
1951 }
1952-//line gititemlog.qtpl:15
1953+//line templates/gititemlog.qtpl:15
1954 qw422016.N().S(`
1955 </div>
1956 `)
1957-//line gititemlog.qtpl:17
1958+//line templates/gititemlog.qtpl:17
1959 }
1960
1961-//line gititemlog.qtpl:17
1962+//line templates/gititemlog.qtpl:17
1963 func (g *GitItemLogPage) WriteGitContent(qq422016 qtio422016.Writer, name, ref string) {
1964-//line gititemlog.qtpl:17
1965+//line templates/gititemlog.qtpl:17
1966 qw422016 := qt422016.AcquireWriter(qq422016)
1967-//line gititemlog.qtpl:17
1968+//line templates/gititemlog.qtpl:17
1969 g.StreamGitContent(qw422016, name, ref)
1970-//line gititemlog.qtpl:17
1971+//line templates/gititemlog.qtpl:17
1972 qt422016.ReleaseWriter(qw422016)
1973-//line gititemlog.qtpl:17
1974+//line templates/gititemlog.qtpl:17
1975 }
1976
1977-//line gititemlog.qtpl:17
1978+//line templates/gititemlog.qtpl:17
1979 func (g *GitItemLogPage) GitContent(name, ref string) string {
1980-//line gititemlog.qtpl:17
1981+//line templates/gititemlog.qtpl:17
1982 qb422016 := qt422016.AcquireByteBuffer()
1983-//line gititemlog.qtpl:17
1984+//line templates/gititemlog.qtpl:17
1985 g.WriteGitContent(qb422016, name, ref)
1986-//line gititemlog.qtpl:17
1987+//line templates/gititemlog.qtpl:17
1988 qs422016 := string(qb422016.B)
1989-//line gititemlog.qtpl:17
1990+//line templates/gititemlog.qtpl:17
1991 qt422016.ReleaseByteBuffer(qb422016)
1992-//line gititemlog.qtpl:17
1993+//line templates/gititemlog.qtpl:17
1994 return qs422016
1995-//line gititemlog.qtpl:17
1996+//line templates/gititemlog.qtpl:17
1997 }
1998diff --git a/templates/gititemrefs.qtpl.go b/templates/gititemrefs.qtpl.go
1999index d54301de94e72454f4fc6070f0f5fa906febf1c9..eb1b6576eae0baf26927ef66957693b8566a1f83 100644
2000--- a/templates/gititemrefs.qtpl.go
2001+++ b/templates/gititemrefs.qtpl.go
2002@@ -1,160 +1,160 @@
2003 // Code generated by qtc from "gititemrefs.qtpl". DO NOT EDIT.
2004 // See https://github.com/valyala/quicktemplate for details.
2005
2006-//line gititemrefs.qtpl:1
2007+//line templates/gititemrefs.qtpl:1
2008 package templates
2009
2010-//line gititemrefs.qtpl:1
2011+//line templates/gititemrefs.qtpl:1
2012 import "github.com/go-git/go-git/v5/plumbing"
2013
2014-//line gititemrefs.qtpl:2
2015+//line templates/gititemrefs.qtpl:2
2016 import "git.gabrielgio.me/cerrado/pkg/git"
2017
2018-//line gititemrefs.qtpl:4
2019+//line templates/gititemrefs.qtpl:4
2020 import (
2021 qtio422016 "io"
2022
2023 qt422016 "github.com/valyala/quicktemplate"
2024 )
2025
2026-//line gititemrefs.qtpl:4
2027+//line templates/gititemrefs.qtpl:4
2028 var (
2029 _ = qtio422016.Copy
2030 _ = qt422016.AcquireByteBuffer
2031 )
2032
2033-//line gititemrefs.qtpl:5
2034+//line templates/gititemrefs.qtpl:5
2035 type GitItemRefsPage struct {
2036 Tags []*git.TagReference
2037 Branches []*plumbing.Reference
2038 }
2039
2040-//line gititemrefs.qtpl:11
2041+//line templates/gititemrefs.qtpl:11
2042 func (g *GitItemRefsPage) StreamNav(qw422016 *qt422016.Writer, name, ref string) {
2043-//line gititemrefs.qtpl:11
2044+//line templates/gititemrefs.qtpl:11
2045 StreamGitItemNav(qw422016, name, ref, Refs)
2046-//line gititemrefs.qtpl:11
2047+//line templates/gititemrefs.qtpl:11
2048 }
2049
2050-//line gititemrefs.qtpl:11
2051+//line templates/gititemrefs.qtpl:11
2052 func (g *GitItemRefsPage) WriteNav(qq422016 qtio422016.Writer, name, ref string) {
2053-//line gititemrefs.qtpl:11
2054+//line templates/gititemrefs.qtpl:11
2055 qw422016 := qt422016.AcquireWriter(qq422016)
2056-//line gititemrefs.qtpl:11
2057+//line templates/gititemrefs.qtpl:11
2058 g.StreamNav(qw422016, name, ref)
2059-//line gititemrefs.qtpl:11
2060+//line templates/gititemrefs.qtpl:11
2061 qt422016.ReleaseWriter(qw422016)
2062-//line gititemrefs.qtpl:11
2063+//line templates/gititemrefs.qtpl:11
2064 }
2065
2066-//line gititemrefs.qtpl:11
2067+//line templates/gititemrefs.qtpl:11
2068 func (g *GitItemRefsPage) Nav(name, ref string) string {
2069-//line gititemrefs.qtpl:11
2070+//line templates/gititemrefs.qtpl:11
2071 qb422016 := qt422016.AcquireByteBuffer()
2072-//line gititemrefs.qtpl:11
2073+//line templates/gititemrefs.qtpl:11
2074 g.WriteNav(qb422016, name, ref)
2075-//line gititemrefs.qtpl:11
2076+//line templates/gititemrefs.qtpl:11
2077 qs422016 := string(qb422016.B)
2078-//line gititemrefs.qtpl:11
2079+//line templates/gititemrefs.qtpl:11
2080 qt422016.ReleaseByteBuffer(qb422016)
2081-//line gititemrefs.qtpl:11
2082+//line templates/gititemrefs.qtpl:11
2083 return qs422016
2084-//line gititemrefs.qtpl:11
2085+//line templates/gititemrefs.qtpl:11
2086 }
2087
2088-//line gititemrefs.qtpl:13
2089+//line templates/gititemrefs.qtpl:13
2090 func (g *GitItemRefsPage) StreamGitContent(qw422016 *qt422016.Writer, name, ref string) {
2091-//line gititemrefs.qtpl:13
2092+//line templates/gititemrefs.qtpl:13
2093 qw422016.N().S(`
2094 <div class="row">
2095 <div class="col-md-8">
2096 `)
2097-//line gititemrefs.qtpl:16
2098+//line templates/gititemrefs.qtpl:16
2099 StreamListTags(qw422016, name, g.Tags)
2100-//line gititemrefs.qtpl:16
2101+//line templates/gititemrefs.qtpl:16
2102 qw422016.N().S(`
2103 </div>
2104 <div class="col-md-4">
2105 <div class="event-list">
2106 `)
2107-//line gititemrefs.qtpl:20
2108+//line templates/gititemrefs.qtpl:20
2109 for _, b := range g.Branches {
2110-//line gititemrefs.qtpl:20
2111+//line templates/gititemrefs.qtpl:20
2112 qw422016.N().S(`
2113 <div class="row event">
2114 <div class="col-4">
2115 `)
2116-//line gititemrefs.qtpl:23
2117+//line templates/gititemrefs.qtpl:23
2118 qw422016.E().S(b.Name().Short())
2119-//line gititemrefs.qtpl:23
2120+//line templates/gititemrefs.qtpl:23
2121 qw422016.N().S(`
2122 </div>
2123 <div class="col-8">
2124 <div class="float-end">
2125 <a href="/`)
2126-//line gititemrefs.qtpl:27
2127+//line templates/gititemrefs.qtpl:27
2128 qw422016.E().S(name)
2129-//line gititemrefs.qtpl:27
2130+//line templates/gititemrefs.qtpl:27
2131 qw422016.N().S(`/archive/`)
2132-//line gititemrefs.qtpl:27
2133+//line templates/gititemrefs.qtpl:27
2134 qw422016.E().S(b.Name().Short())
2135-//line gititemrefs.qtpl:27
2136+//line templates/gititemrefs.qtpl:27
2137 qw422016.N().S(`.tar.gz">tar.gz</a>
2138 <a href="/`)
2139-//line gititemrefs.qtpl:28
2140+//line templates/gititemrefs.qtpl:28
2141 qw422016.E().S(name)
2142-//line gititemrefs.qtpl:28
2143+//line templates/gititemrefs.qtpl:28
2144 qw422016.N().S(`/tree/`)
2145-//line gititemrefs.qtpl:28
2146+//line templates/gititemrefs.qtpl:28
2147 qw422016.E().S(b.Name().Short())
2148-//line gititemrefs.qtpl:28
2149+//line templates/gititemrefs.qtpl:28
2150 qw422016.N().S(`/">tree</a>
2151 <a href="/`)
2152-//line gititemrefs.qtpl:29
2153+//line templates/gititemrefs.qtpl:29
2154 qw422016.E().S(name)
2155-//line gititemrefs.qtpl:29
2156+//line templates/gititemrefs.qtpl:29
2157 qw422016.N().S(`/log/`)
2158-//line gititemrefs.qtpl:29
2159+//line templates/gititemrefs.qtpl:29
2160 qw422016.E().S(b.Name().Short())
2161-//line gititemrefs.qtpl:29
2162+//line templates/gititemrefs.qtpl:29
2163 qw422016.N().S(`/">log</a>
2164 </div>
2165 </div>
2166 </div>
2167 `)
2168-//line gititemrefs.qtpl:33
2169+//line templates/gititemrefs.qtpl:33
2170 }
2171-//line gititemrefs.qtpl:33
2172+//line templates/gititemrefs.qtpl:33
2173 qw422016.N().S(`
2174 </div>
2175 </div>
2176 </div>
2177 `)
2178-//line gititemrefs.qtpl:37
2179+//line templates/gititemrefs.qtpl:37
2180 }
2181
2182-//line gititemrefs.qtpl:37
2183+//line templates/gititemrefs.qtpl:37
2184 func (g *GitItemRefsPage) WriteGitContent(qq422016 qtio422016.Writer, name, ref string) {
2185-//line gititemrefs.qtpl:37
2186+//line templates/gititemrefs.qtpl:37
2187 qw422016 := qt422016.AcquireWriter(qq422016)
2188-//line gititemrefs.qtpl:37
2189+//line templates/gititemrefs.qtpl:37
2190 g.StreamGitContent(qw422016, name, ref)
2191-//line gititemrefs.qtpl:37
2192+//line templates/gititemrefs.qtpl:37
2193 qt422016.ReleaseWriter(qw422016)
2194-//line gititemrefs.qtpl:37
2195+//line templates/gititemrefs.qtpl:37
2196 }
2197
2198-//line gititemrefs.qtpl:37
2199+//line templates/gititemrefs.qtpl:37
2200 func (g *GitItemRefsPage) GitContent(name, ref string) string {
2201-//line gititemrefs.qtpl:37
2202+//line templates/gititemrefs.qtpl:37
2203 qb422016 := qt422016.AcquireByteBuffer()
2204-//line gititemrefs.qtpl:37
2205+//line templates/gititemrefs.qtpl:37
2206 g.WriteGitContent(qb422016, name, ref)
2207-//line gititemrefs.qtpl:37
2208+//line templates/gititemrefs.qtpl:37
2209 qs422016 := string(qb422016.B)
2210-//line gititemrefs.qtpl:37
2211+//line templates/gititemrefs.qtpl:37
2212 qt422016.ReleaseByteBuffer(qb422016)
2213-//line gititemrefs.qtpl:37
2214+//line templates/gititemrefs.qtpl:37
2215 return qs422016
2216-//line gititemrefs.qtpl:37
2217+//line templates/gititemrefs.qtpl:37
2218 }
2219diff --git a/templates/gititemsummary.qtpl.go b/templates/gititemsummary.qtpl.go
2220index d70823eb4c78c511c1ab9e775224170a12a22d93..41d5b67ee7faf9741b2c745216506dd4fc49fc10 100644
2221--- a/templates/gititemsummary.qtpl.go
2222+++ b/templates/gititemsummary.qtpl.go
2223@@ -1,134 +1,134 @@
2224 // Code generated by qtc from "gititemsummary.qtpl". DO NOT EDIT.
2225 // See https://github.com/valyala/quicktemplate for details.
2226
2227-//line gititemsummary.qtpl:1
2228+//line templates/gititemsummary.qtpl:1
2229 package templates
2230
2231-//line gititemsummary.qtpl:1
2232+//line templates/gititemsummary.qtpl:1
2233 import "github.com/go-git/go-git/v5/plumbing"
2234
2235-//line gititemsummary.qtpl:2
2236+//line templates/gititemsummary.qtpl:2
2237 import "github.com/go-git/go-git/v5/plumbing/object"
2238
2239-//line gititemsummary.qtpl:3
2240+//line templates/gititemsummary.qtpl:3
2241 import "git.gabrielgio.me/cerrado/pkg/git"
2242
2243-//line gititemsummary.qtpl:5
2244+//line templates/gititemsummary.qtpl:5
2245 import (
2246 qtio422016 "io"
2247
2248 qt422016 "github.com/valyala/quicktemplate"
2249 )
2250
2251-//line gititemsummary.qtpl:5
2252+//line templates/gititemsummary.qtpl:5
2253 var (
2254 _ = qtio422016.Copy
2255 _ = qt422016.AcquireByteBuffer
2256 )
2257
2258-//line gititemsummary.qtpl:6
2259+//line templates/gititemsummary.qtpl:6
2260 type GitItemSummaryPage struct {
2261 Tags []*git.TagReference
2262 Branches []*plumbing.Reference
2263 Commits []*object.Commit
2264 }
2265
2266-//line gititemsummary.qtpl:13
2267+//line templates/gititemsummary.qtpl:13
2268 func (g *GitItemSummaryPage) StreamNav(qw422016 *qt422016.Writer, name, ref string) {
2269-//line gititemsummary.qtpl:13
2270+//line templates/gititemsummary.qtpl:13
2271 StreamGitItemNav(qw422016, name, ref, Summary)
2272-//line gititemsummary.qtpl:13
2273+//line templates/gititemsummary.qtpl:13
2274 }
2275
2276-//line gititemsummary.qtpl:13
2277+//line templates/gititemsummary.qtpl:13
2278 func (g *GitItemSummaryPage) WriteNav(qq422016 qtio422016.Writer, name, ref string) {
2279-//line gititemsummary.qtpl:13
2280+//line templates/gititemsummary.qtpl:13
2281 qw422016 := qt422016.AcquireWriter(qq422016)
2282-//line gititemsummary.qtpl:13
2283+//line templates/gititemsummary.qtpl:13
2284 g.StreamNav(qw422016, name, ref)
2285-//line gititemsummary.qtpl:13
2286+//line templates/gititemsummary.qtpl:13
2287 qt422016.ReleaseWriter(qw422016)
2288-//line gititemsummary.qtpl:13
2289+//line templates/gititemsummary.qtpl:13
2290 }
2291
2292-//line gititemsummary.qtpl:13
2293+//line templates/gititemsummary.qtpl:13
2294 func (g *GitItemSummaryPage) Nav(name, ref string) string {
2295-//line gititemsummary.qtpl:13
2296+//line templates/gititemsummary.qtpl:13
2297 qb422016 := qt422016.AcquireByteBuffer()
2298-//line gititemsummary.qtpl:13
2299+//line templates/gititemsummary.qtpl:13
2300 g.WriteNav(qb422016, name, ref)
2301-//line gititemsummary.qtpl:13
2302+//line templates/gititemsummary.qtpl:13
2303 qs422016 := string(qb422016.B)
2304-//line gititemsummary.qtpl:13
2305+//line templates/gititemsummary.qtpl:13
2306 qt422016.ReleaseByteBuffer(qb422016)
2307-//line gititemsummary.qtpl:13
2308+//line templates/gititemsummary.qtpl:13
2309 return qs422016
2310-//line gititemsummary.qtpl:13
2311+//line templates/gititemsummary.qtpl:13
2312 }
2313
2314-//line gititemsummary.qtpl:15
2315+//line templates/gititemsummary.qtpl:15
2316 func (g *GitItemSummaryPage) StreamGitContent(qw422016 *qt422016.Writer, name, ref string) {
2317-//line gititemsummary.qtpl:15
2318+//line templates/gititemsummary.qtpl:15
2319 qw422016.N().S(`
2320 <div class="row">
2321 <div class="col-md-8">
2322 `)
2323-//line gititemsummary.qtpl:18
2324+//line templates/gititemsummary.qtpl:18
2325 StreamListTags(qw422016, name, g.Tags)
2326-//line gititemsummary.qtpl:18
2327+//line templates/gititemsummary.qtpl:18
2328 qw422016.N().S(`
2329 </div>
2330 <div class="col-md-4">
2331 <div class="event-list">
2332 `)
2333-//line gititemsummary.qtpl:22
2334+//line templates/gititemsummary.qtpl:22
2335 for _, b := range g.Branches {
2336-//line gititemsummary.qtpl:22
2337+//line templates/gititemsummary.qtpl:22
2338 qw422016.N().S(`
2339 <div class="row event">
2340 <div class="col-4">
2341 `)
2342-//line gititemsummary.qtpl:25
2343+//line templates/gititemsummary.qtpl:25
2344 qw422016.E().S(b.Name().Short())
2345-//line gititemsummary.qtpl:25
2346+//line templates/gititemsummary.qtpl:25
2347 qw422016.N().S(`
2348 </div>
2349 <div class="col-8">
2350 <div class="float-end">
2351 <a href="/`)
2352-//line gititemsummary.qtpl:29
2353+//line templates/gititemsummary.qtpl:29
2354 qw422016.E().S(name)
2355-//line gititemsummary.qtpl:29
2356+//line templates/gititemsummary.qtpl:29
2357 qw422016.N().S(`/archive/`)
2358-//line gititemsummary.qtpl:29
2359+//line templates/gititemsummary.qtpl:29
2360 qw422016.E().S(b.Name().Short())
2361-//line gititemsummary.qtpl:29
2362+//line templates/gititemsummary.qtpl:29
2363 qw422016.N().S(`.tar.gz">tar.gz</a>
2364 <a href="/`)
2365-//line gititemsummary.qtpl:30
2366+//line templates/gititemsummary.qtpl:30
2367 qw422016.E().S(name)
2368-//line gititemsummary.qtpl:30
2369+//line templates/gititemsummary.qtpl:30
2370 qw422016.N().S(`/tree/`)
2371-//line gititemsummary.qtpl:30
2372+//line templates/gititemsummary.qtpl:30
2373 qw422016.E().S(b.Name().Short())
2374-//line gititemsummary.qtpl:30
2375+//line templates/gititemsummary.qtpl:30
2376 qw422016.N().S(`/">tree</a>
2377 <a href="/`)
2378-//line gititemsummary.qtpl:31
2379+//line templates/gititemsummary.qtpl:31
2380 qw422016.E().S(name)
2381-//line gititemsummary.qtpl:31
2382+//line templates/gititemsummary.qtpl:31
2383 qw422016.N().S(`/log/`)
2384-//line gititemsummary.qtpl:31
2385+//line templates/gititemsummary.qtpl:31
2386 qw422016.E().S(b.Name().Short())
2387-//line gititemsummary.qtpl:31
2388+//line templates/gititemsummary.qtpl:31
2389 qw422016.N().S(`/">log</a>
2390 </div>
2391 </div>
2392 </div>
2393 `)
2394-//line gititemsummary.qtpl:35
2395+//line templates/gititemsummary.qtpl:35
2396 }
2397-//line gititemsummary.qtpl:35
2398+//line templates/gititemsummary.qtpl:35
2399 qw422016.N().S(`
2400 </div>
2401 </div>
2402@@ -136,48 +136,48 @@ </div>
2403 <div class="row">
2404 <div class="event-list">
2405 `)
2406-//line gititemsummary.qtpl:41
2407+//line templates/gititemsummary.qtpl:41
2408 for _, c := range g.Commits {
2409-//line gititemsummary.qtpl:41
2410+//line templates/gititemsummary.qtpl:41
2411 qw422016.N().S(`
2412 `)
2413-//line gititemsummary.qtpl:42
2414+//line templates/gititemsummary.qtpl:42
2415 StreamCommit(qw422016, name, c, false)
2416-//line gititemsummary.qtpl:42
2417+//line templates/gititemsummary.qtpl:42
2418 qw422016.N().S(`
2419 `)
2420-//line gititemsummary.qtpl:43
2421+//line templates/gititemsummary.qtpl:43
2422 }
2423-//line gititemsummary.qtpl:43
2424+//line templates/gititemsummary.qtpl:43
2425 qw422016.N().S(`
2426 </div>
2427 </div>
2428 `)
2429-//line gititemsummary.qtpl:46
2430+//line templates/gititemsummary.qtpl:46
2431 }
2432
2433-//line gititemsummary.qtpl:46
2434+//line templates/gititemsummary.qtpl:46
2435 func (g *GitItemSummaryPage) WriteGitContent(qq422016 qtio422016.Writer, name, ref string) {
2436-//line gititemsummary.qtpl:46
2437+//line templates/gititemsummary.qtpl:46
2438 qw422016 := qt422016.AcquireWriter(qq422016)
2439-//line gititemsummary.qtpl:46
2440+//line templates/gititemsummary.qtpl:46
2441 g.StreamGitContent(qw422016, name, ref)
2442-//line gititemsummary.qtpl:46
2443+//line templates/gititemsummary.qtpl:46
2444 qt422016.ReleaseWriter(qw422016)
2445-//line gititemsummary.qtpl:46
2446+//line templates/gititemsummary.qtpl:46
2447 }
2448
2449-//line gititemsummary.qtpl:46
2450+//line templates/gititemsummary.qtpl:46
2451 func (g *GitItemSummaryPage) GitContent(name, ref string) string {
2452-//line gititemsummary.qtpl:46
2453+//line templates/gititemsummary.qtpl:46
2454 qb422016 := qt422016.AcquireByteBuffer()
2455-//line gititemsummary.qtpl:46
2456+//line templates/gititemsummary.qtpl:46
2457 g.WriteGitContent(qb422016, name, ref)
2458-//line gititemsummary.qtpl:46
2459+//line templates/gititemsummary.qtpl:46
2460 qs422016 := string(qb422016.B)
2461-//line gititemsummary.qtpl:46
2462+//line templates/gititemsummary.qtpl:46
2463 qt422016.ReleaseByteBuffer(qb422016)
2464-//line gititemsummary.qtpl:46
2465+//line templates/gititemsummary.qtpl:46
2466 return qs422016
2467-//line gititemsummary.qtpl:46
2468+//line templates/gititemsummary.qtpl:46
2469 }
2470diff --git a/templates/gititemtree.qtpl.go b/templates/gititemtree.qtpl.go
2471index f26b5ca558d08f97e2851d3f4a18c18924ed5f77..9116cd7ad048807f0680548d264b163eed71f1b5 100644
2472--- a/templates/gititemtree.qtpl.go
2473+++ b/templates/gititemtree.qtpl.go
2474@@ -1,45 +1,45 @@
2475 // Code generated by qtc from "gititemtree.qtpl". DO NOT EDIT.
2476 // See https://github.com/valyala/quicktemplate for details.
2477
2478-//line gititemtree.qtpl:1
2479+//line templates/gititemtree.qtpl:1
2480 package templates
2481
2482-//line gititemtree.qtpl:1
2483+//line templates/gititemtree.qtpl:1
2484 import "git.gabrielgio.me/cerrado/pkg/u"
2485
2486-//line gititemtree.qtpl:2
2487+//line templates/gititemtree.qtpl:2
2488 import "github.com/go-git/go-git/v5/plumbing/object"
2489
2490-//line gititemtree.qtpl:3
2491+//line templates/gititemtree.qtpl:3
2492 import "github.com/go-git/go-git/v5/plumbing/filemode"
2493
2494-//line gititemtree.qtpl:5
2495+//line templates/gititemtree.qtpl:5
2496 import (
2497 qtio422016 "io"
2498
2499 qt422016 "github.com/valyala/quicktemplate"
2500 )
2501
2502-//line gititemtree.qtpl:5
2503+//line templates/gititemtree.qtpl:5
2504 var (
2505 _ = qtio422016.Copy
2506 _ = qt422016.AcquireByteBuffer
2507 )
2508
2509-//line gititemtree.qtpl:5
2510+//line templates/gititemtree.qtpl:5
2511 type GitItemTreePage struct {
2512 Path []string
2513 Tree *object.Tree
2514 }
2515
2516-//line gititemtree.qtpl:11
2517+//line templates/gititemtree.qtpl:11
2518 const (
2519 Folder = "tree"
2520 Blob = "blob"
2521 Root = ""
2522 )
2523
2524-//line gititemtree.qtpl:18
2525+//line templates/gititemtree.qtpl:18
2526 func url(name, mode, ref, filename string, path []string) string {
2527 return u.NewPathing().
2528 AddPath(name).
2529@@ -50,200 +50,200 @@ AddPath(filename).
2530 Done()
2531 }
2532
2533-//line gititemtree.qtpl:29
2534+//line templates/gititemtree.qtpl:29
2535 func (g *GitItemTreePage) StreamNav(qw422016 *qt422016.Writer, name, ref string) {
2536-//line gititemtree.qtpl:29
2537+//line templates/gititemtree.qtpl:29
2538 StreamGitItemNav(qw422016, name, ref, Tree)
2539-//line gititemtree.qtpl:29
2540+//line templates/gititemtree.qtpl:29
2541 }
2542
2543-//line gititemtree.qtpl:29
2544+//line templates/gititemtree.qtpl:29
2545 func (g *GitItemTreePage) WriteNav(qq422016 qtio422016.Writer, name, ref string) {
2546-//line gititemtree.qtpl:29
2547+//line templates/gititemtree.qtpl:29
2548 qw422016 := qt422016.AcquireWriter(qq422016)
2549-//line gititemtree.qtpl:29
2550+//line templates/gititemtree.qtpl:29
2551 g.StreamNav(qw422016, name, ref)
2552-//line gititemtree.qtpl:29
2553+//line templates/gititemtree.qtpl:29
2554 qt422016.ReleaseWriter(qw422016)
2555-//line gititemtree.qtpl:29
2556+//line templates/gititemtree.qtpl:29
2557 }
2558
2559-//line gititemtree.qtpl:29
2560+//line templates/gititemtree.qtpl:29
2561 func (g *GitItemTreePage) Nav(name, ref string) string {
2562-//line gititemtree.qtpl:29
2563+//line templates/gititemtree.qtpl:29
2564 qb422016 := qt422016.AcquireByteBuffer()
2565-//line gititemtree.qtpl:29
2566+//line templates/gititemtree.qtpl:29
2567 g.WriteNav(qb422016, name, ref)
2568-//line gititemtree.qtpl:29
2569+//line templates/gititemtree.qtpl:29
2570 qs422016 := string(qb422016.B)
2571-//line gititemtree.qtpl:29
2572+//line templates/gititemtree.qtpl:29
2573 qt422016.ReleaseByteBuffer(qb422016)
2574-//line gititemtree.qtpl:29
2575+//line templates/gititemtree.qtpl:29
2576 return qs422016
2577-//line gititemtree.qtpl:29
2578+//line templates/gititemtree.qtpl:29
2579 }
2580
2581-//line gititemtree.qtpl:31
2582+//line templates/gititemtree.qtpl:31
2583 func (g *GitItemTreePage) StreamGitContent(qw422016 *qt422016.Writer, name, ref string) {
2584-//line gititemtree.qtpl:31
2585+//line templates/gititemtree.qtpl:31
2586 qw422016.N().S(`
2587 <div class="pathing">
2588 `)
2589-//line gititemtree.qtpl:34
2590+//line templates/gititemtree.qtpl:34
2591 if len(g.Path) != 0 {
2592-//line gititemtree.qtpl:34
2593+//line templates/gititemtree.qtpl:34
2594 qw422016.N().S(`<a href="`)
2595-//line gititemtree.qtpl:35
2596+//line templates/gititemtree.qtpl:35
2597 qw422016.E().S(url(name, Folder, ref, Root, []string{}))
2598-//line gititemtree.qtpl:35
2599+//line templates/gititemtree.qtpl:35
2600 qw422016.N().S(`">root/</a>`)
2601-//line gititemtree.qtpl:36
2602+//line templates/gititemtree.qtpl:36
2603 for i, e := range g.Path[:len(g.Path)-1] {
2604-//line gititemtree.qtpl:36
2605+//line templates/gititemtree.qtpl:36
2606 qw422016.N().S(`<a href="`)
2607-//line gititemtree.qtpl:37
2608+//line templates/gititemtree.qtpl:37
2609 qw422016.E().S(url(name, Folder, ref, Root, g.Path[:1+i]))
2610-//line gititemtree.qtpl:37
2611+//line templates/gititemtree.qtpl:37
2612 qw422016.N().S(`">`)
2613-//line gititemtree.qtpl:37
2614+//line templates/gititemtree.qtpl:37
2615 qw422016.E().S(e)
2616-//line gititemtree.qtpl:37
2617+//line templates/gititemtree.qtpl:37
2618 qw422016.N().S(`/</a>`)
2619-//line gititemtree.qtpl:38
2620+//line templates/gititemtree.qtpl:38
2621 }
2622-//line gititemtree.qtpl:38
2623+//line templates/gititemtree.qtpl:38
2624 qw422016.N().S(`<a>`)
2625-//line gititemtree.qtpl:39
2626+//line templates/gititemtree.qtpl:39
2627 qw422016.E().S(u.LastOrZero(g.Path))
2628-//line gititemtree.qtpl:39
2629+//line templates/gititemtree.qtpl:39
2630 qw422016.N().S(`</a>`)
2631-//line gititemtree.qtpl:40
2632+//line templates/gititemtree.qtpl:40
2633 } else {
2634-//line gititemtree.qtpl:40
2635+//line templates/gititemtree.qtpl:40
2636 qw422016.N().S(`<a>root/</a>`)
2637-//line gititemtree.qtpl:42
2638+//line templates/gititemtree.qtpl:42
2639 }
2640-//line gititemtree.qtpl:43
2641+//line templates/gititemtree.qtpl:43
2642 qw422016.N().S(`
2643 </div>
2644 <div class="row">
2645 <div class="col-md-12">
2646 <div class="tree-list">
2647 `)
2648-//line gititemtree.qtpl:48
2649+//line templates/gititemtree.qtpl:48
2650 if len(g.Path) != 0 {
2651-//line gititemtree.qtpl:48
2652+//line templates/gititemtree.qtpl:48
2653 qw422016.N().S(`
2654 <div class="mode"><a href="`)
2655-//line gititemtree.qtpl:49
2656+//line templates/gititemtree.qtpl:49
2657 qw422016.E().S(url(name, Folder, ref, g.Path[len(g.Path)-1], g.Path[:len(g.Path)-1]))
2658-//line gititemtree.qtpl:49
2659+//line templates/gititemtree.qtpl:49
2660 qw422016.N().S(`">..</a></div>
2661 <div class="name tree"></div>
2662 <div class="commit"></div>
2663 <div class="date"></div>
2664 <div class="size"></div>
2665 `)
2666-//line gititemtree.qtpl:54
2667+//line templates/gititemtree.qtpl:54
2668 }
2669-//line gititemtree.qtpl:54
2670+//line templates/gititemtree.qtpl:54
2671 qw422016.N().S(`
2672 `)
2673-//line gititemtree.qtpl:55
2674+//line templates/gititemtree.qtpl:55
2675 for _, e := range g.Tree.Entries {
2676-//line gititemtree.qtpl:55
2677+//line templates/gititemtree.qtpl:55
2678 qw422016.N().S(`
2679 `)
2680-//line gititemtree.qtpl:56
2681+//line templates/gititemtree.qtpl:56
2682 if e.Mode.IsFile() {
2683-//line gititemtree.qtpl:56
2684+//line templates/gititemtree.qtpl:56
2685 qw422016.N().S(`
2686 <div class="mode">`)
2687-//line gititemtree.qtpl:57
2688+//line templates/gititemtree.qtpl:57
2689 qw422016.E().S(Ignore(e.Mode.ToOSFileMode()).String())
2690-//line gititemtree.qtpl:57
2691+//line templates/gititemtree.qtpl:57
2692 qw422016.N().S(`</div>
2693 <div class="name blob"><a href="`)
2694-//line gititemtree.qtpl:58
2695+//line templates/gititemtree.qtpl:58
2696 qw422016.E().S(url(name, Blob, ref, e.Name, g.Path))
2697-//line gititemtree.qtpl:58
2698+//line templates/gititemtree.qtpl:58
2699 qw422016.N().S(`">`)
2700-//line gititemtree.qtpl:58
2701+//line templates/gititemtree.qtpl:58
2702 qw422016.E().S(e.Name)
2703-//line gititemtree.qtpl:58
2704+//line templates/gititemtree.qtpl:58
2705 qw422016.N().S(`</a></div>
2706 `)
2707-//line gititemtree.qtpl:59
2708+//line templates/gititemtree.qtpl:59
2709 } else if e.Mode == filemode.Submodule {
2710-//line gititemtree.qtpl:59
2711+//line templates/gititemtree.qtpl:59
2712 qw422016.N().S(`
2713 <div class="mode">m---------</div>
2714 <div class="name tree">`)
2715-//line gititemtree.qtpl:61
2716+//line templates/gititemtree.qtpl:61
2717 qw422016.E().S(e.Name)
2718-//line gititemtree.qtpl:61
2719+//line templates/gititemtree.qtpl:61
2720 qw422016.N().S(` (submodule)</div>
2721 `)
2722-//line gititemtree.qtpl:62
2723+//line templates/gititemtree.qtpl:62
2724 } else {
2725-//line gititemtree.qtpl:62
2726+//line templates/gititemtree.qtpl:62
2727 qw422016.N().S(`
2728 <div class="mode">d---------</div>
2729 <div class="name tree"><a href="`)
2730-//line gititemtree.qtpl:64
2731+//line templates/gititemtree.qtpl:64
2732 qw422016.E().S(url(name, Folder, ref, e.Name, g.Path))
2733-//line gititemtree.qtpl:64
2734+//line templates/gititemtree.qtpl:64
2735 qw422016.N().S(`">`)
2736-//line gititemtree.qtpl:64
2737+//line templates/gititemtree.qtpl:64
2738 qw422016.E().S(e.Name)
2739-//line gititemtree.qtpl:64
2740+//line templates/gititemtree.qtpl:64
2741 qw422016.N().S(`</a></div>
2742 `)
2743-//line gititemtree.qtpl:65
2744+//line templates/gititemtree.qtpl:65
2745 }
2746-//line gititemtree.qtpl:65
2747+//line templates/gititemtree.qtpl:65
2748 qw422016.N().S(`
2749 <div class="commit"></div>
2750 <div class="date"></div>
2751 <div class="size">`)
2752-//line gititemtree.qtpl:68
2753+//line templates/gititemtree.qtpl:68
2754 qw422016.N().DL(Ignore(g.Tree.Size(e.Name)))
2755-//line gititemtree.qtpl:68
2756+//line templates/gititemtree.qtpl:68
2757 qw422016.N().S(` KiB</div>
2758 `)
2759-//line gititemtree.qtpl:69
2760+//line templates/gititemtree.qtpl:69
2761 }
2762-//line gititemtree.qtpl:69
2763+//line templates/gititemtree.qtpl:69
2764 qw422016.N().S(`
2765 </div>
2766 </div>
2767 </div>
2768 `)
2769-//line gititemtree.qtpl:73
2770+//line templates/gititemtree.qtpl:73
2771 }
2772
2773-//line gititemtree.qtpl:73
2774+//line templates/gititemtree.qtpl:73
2775 func (g *GitItemTreePage) WriteGitContent(qq422016 qtio422016.Writer, name, ref string) {
2776-//line gititemtree.qtpl:73
2777+//line templates/gititemtree.qtpl:73
2778 qw422016 := qt422016.AcquireWriter(qq422016)
2779-//line gititemtree.qtpl:73
2780+//line templates/gititemtree.qtpl:73
2781 g.StreamGitContent(qw422016, name, ref)
2782-//line gititemtree.qtpl:73
2783+//line templates/gititemtree.qtpl:73
2784 qt422016.ReleaseWriter(qw422016)
2785-//line gititemtree.qtpl:73
2786+//line templates/gititemtree.qtpl:73
2787 }
2788
2789-//line gititemtree.qtpl:73
2790+//line templates/gititemtree.qtpl:73
2791 func (g *GitItemTreePage) GitContent(name, ref string) string {
2792-//line gititemtree.qtpl:73
2793+//line templates/gititemtree.qtpl:73
2794 qb422016 := qt422016.AcquireByteBuffer()
2795-//line gititemtree.qtpl:73
2796+//line templates/gititemtree.qtpl:73
2797 g.WriteGitContent(qb422016, name, ref)
2798-//line gititemtree.qtpl:73
2799+//line templates/gititemtree.qtpl:73
2800 qs422016 := string(qb422016.B)
2801-//line gititemtree.qtpl:73
2802+//line templates/gititemtree.qtpl:73
2803 qt422016.ReleaseByteBuffer(qb422016)
2804-//line gititemtree.qtpl:73
2805+//line templates/gititemtree.qtpl:73
2806 return qs422016
2807-//line gititemtree.qtpl:73
2808+//line templates/gititemtree.qtpl:73
2809 }
2810diff --git a/templates/gitlist.qtpl.go b/templates/gitlist.qtpl.go
2811index f38c404b328255e0ab6d6fdc932b31e31465b723..e2644d06a4b51b517edd8914543d4bf7f70ee436 100644
2812--- a/templates/gitlist.qtpl.go
2813+++ b/templates/gitlist.qtpl.go
2814@@ -1,228 +1,228 @@
2815 // Code generated by qtc from "gitlist.qtpl". DO NOT EDIT.
2816 // See https://github.com/valyala/quicktemplate for details.
2817
2818-//line gitlist.qtpl:1
2819+//line templates/gitlist.qtpl:1
2820 package templates
2821
2822-//line gitlist.qtpl:1
2823+//line templates/gitlist.qtpl:1
2824 import "git.gabrielgio.me/cerrado/pkg/service"
2825
2826-//line gitlist.qtpl:3
2827+//line templates/gitlist.qtpl:3
2828 import (
2829 qtio422016 "io"
2830
2831 qt422016 "github.com/valyala/quicktemplate"
2832 )
2833
2834-//line gitlist.qtpl:3
2835+//line templates/gitlist.qtpl:3
2836 var (
2837 _ = qtio422016.Copy
2838 _ = qt422016.AcquireByteBuffer
2839 )
2840
2841-//line gitlist.qtpl:4
2842+//line templates/gitlist.qtpl:4
2843 type GitListPage struct {
2844 Respositories []*service.Repository
2845 About []byte
2846 }
2847
2848-//line gitlist.qtpl:10
2849+//line templates/gitlist.qtpl:10
2850 func (p *GitListPage) StreamTitle(qw422016 *qt422016.Writer) {
2851-//line gitlist.qtpl:10
2852+//line templates/gitlist.qtpl:10
2853 qw422016.N().S(`Git | List`)
2854-//line gitlist.qtpl:10
2855+//line templates/gitlist.qtpl:10
2856 }
2857
2858-//line gitlist.qtpl:10
2859+//line templates/gitlist.qtpl:10
2860 func (p *GitListPage) WriteTitle(qq422016 qtio422016.Writer) {
2861-//line gitlist.qtpl:10
2862+//line templates/gitlist.qtpl:10
2863 qw422016 := qt422016.AcquireWriter(qq422016)
2864-//line gitlist.qtpl:10
2865+//line templates/gitlist.qtpl:10
2866 p.StreamTitle(qw422016)
2867-//line gitlist.qtpl:10
2868+//line templates/gitlist.qtpl:10
2869 qt422016.ReleaseWriter(qw422016)
2870-//line gitlist.qtpl:10
2871+//line templates/gitlist.qtpl:10
2872 }
2873
2874-//line gitlist.qtpl:10
2875+//line templates/gitlist.qtpl:10
2876 func (p *GitListPage) Title() string {
2877-//line gitlist.qtpl:10
2878+//line templates/gitlist.qtpl:10
2879 qb422016 := qt422016.AcquireByteBuffer()
2880-//line gitlist.qtpl:10
2881+//line templates/gitlist.qtpl:10
2882 p.WriteTitle(qb422016)
2883-//line gitlist.qtpl:10
2884+//line templates/gitlist.qtpl:10
2885 qs422016 := string(qb422016.B)
2886-//line gitlist.qtpl:10
2887+//line templates/gitlist.qtpl:10
2888 qt422016.ReleaseByteBuffer(qb422016)
2889-//line gitlist.qtpl:10
2890+//line templates/gitlist.qtpl:10
2891 return qs422016
2892-//line gitlist.qtpl:10
2893+//line templates/gitlist.qtpl:10
2894 }
2895
2896-//line gitlist.qtpl:12
2897+//line templates/gitlist.qtpl:12
2898 func (p *GitListPage) StreamNavbar(qw422016 *qt422016.Writer) {
2899-//line gitlist.qtpl:12
2900+//line templates/gitlist.qtpl:12
2901 StreamNavbar(qw422016, Git)
2902-//line gitlist.qtpl:12
2903+//line templates/gitlist.qtpl:12
2904 }
2905
2906-//line gitlist.qtpl:12
2907+//line templates/gitlist.qtpl:12
2908 func (p *GitListPage) WriteNavbar(qq422016 qtio422016.Writer) {
2909-//line gitlist.qtpl:12
2910+//line templates/gitlist.qtpl:12
2911 qw422016 := qt422016.AcquireWriter(qq422016)
2912-//line gitlist.qtpl:12
2913+//line templates/gitlist.qtpl:12
2914 p.StreamNavbar(qw422016)
2915-//line gitlist.qtpl:12
2916+//line templates/gitlist.qtpl:12
2917 qt422016.ReleaseWriter(qw422016)
2918-//line gitlist.qtpl:12
2919+//line templates/gitlist.qtpl:12
2920 }
2921
2922-//line gitlist.qtpl:12
2923+//line templates/gitlist.qtpl:12
2924 func (p *GitListPage) Navbar() string {
2925-//line gitlist.qtpl:12
2926+//line templates/gitlist.qtpl:12
2927 qb422016 := qt422016.AcquireByteBuffer()
2928-//line gitlist.qtpl:12
2929+//line templates/gitlist.qtpl:12
2930 p.WriteNavbar(qb422016)
2931-//line gitlist.qtpl:12
2932+//line templates/gitlist.qtpl:12
2933 qs422016 := string(qb422016.B)
2934-//line gitlist.qtpl:12
2935+//line templates/gitlist.qtpl:12
2936 qt422016.ReleaseByteBuffer(qb422016)
2937-//line gitlist.qtpl:12
2938+//line templates/gitlist.qtpl:12
2939 return qs422016
2940-//line gitlist.qtpl:12
2941+//line templates/gitlist.qtpl:12
2942 }
2943
2944-//line gitlist.qtpl:14
2945+//line templates/gitlist.qtpl:14
2946 func (p *GitListPage) StreamContent(qw422016 *qt422016.Writer) {
2947-//line gitlist.qtpl:14
2948+//line templates/gitlist.qtpl:14
2949 qw422016.N().S(`
2950 <div class="row">
2951 <div class="col-md-6 order-last order-md-first">
2952 <div class="event-list">
2953 `)
2954-//line gitlist.qtpl:18
2955+//line templates/gitlist.qtpl:18
2956 for _, r := range p.Respositories {
2957-//line gitlist.qtpl:18
2958+//line templates/gitlist.qtpl:18
2959 qw422016.N().S(`
2960 <div class="event">
2961 <h4>
2962 <a href="/`)
2963-//line gitlist.qtpl:21
2964+//line templates/gitlist.qtpl:21
2965 qw422016.E().S(r.Name)
2966-//line gitlist.qtpl:21
2967+//line templates/gitlist.qtpl:21
2968 qw422016.N().S(`/">`)
2969-//line gitlist.qtpl:21
2970+//line templates/gitlist.qtpl:21
2971 qw422016.E().S(r.Name)
2972-//line gitlist.qtpl:21
2973+//line templates/gitlist.qtpl:21
2974 qw422016.N().S(`</a>
2975 </h4>
2976 </hr>
2977 <p>`)
2978-//line gitlist.qtpl:24
2979+//line templates/gitlist.qtpl:24
2980 qw422016.E().S(r.Description)
2981-//line gitlist.qtpl:24
2982+//line templates/gitlist.qtpl:24
2983 qw422016.N().S(`</p>
2984 <p>
2985 <a href="/`)
2986-//line gitlist.qtpl:26
2987+//line templates/gitlist.qtpl:26
2988 qw422016.E().S(r.Name)
2989-//line gitlist.qtpl:26
2990+//line templates/gitlist.qtpl:26
2991 qw422016.N().S(`/log/`)
2992-//line gitlist.qtpl:26
2993+//line templates/gitlist.qtpl:26
2994 qw422016.E().S(r.Ref)
2995-//line gitlist.qtpl:26
2996+//line templates/gitlist.qtpl:26
2997 qw422016.N().S(`/">log</a>
2998 <a href="/`)
2999-//line gitlist.qtpl:27
3000+//line templates/gitlist.qtpl:27
3001 qw422016.E().S(r.Name)
3002-//line gitlist.qtpl:27
3003+//line templates/gitlist.qtpl:27
3004 qw422016.N().S(`/tree/`)
3005-//line gitlist.qtpl:27
3006+//line templates/gitlist.qtpl:27
3007 qw422016.E().S(r.Ref)
3008-//line gitlist.qtpl:27
3009+//line templates/gitlist.qtpl:27
3010 qw422016.N().S(`/">tree</a>
3011 <a href="/`)
3012-//line gitlist.qtpl:28
3013+//line templates/gitlist.qtpl:28
3014 qw422016.E().S(r.Name)
3015-//line gitlist.qtpl:28
3016+//line templates/gitlist.qtpl:28
3017 qw422016.N().S(`/refs/">refs</a>
3018 </p>
3019 </div>
3020 `)
3021-//line gitlist.qtpl:31
3022+//line templates/gitlist.qtpl:31
3023 }
3024-//line gitlist.qtpl:31
3025+//line templates/gitlist.qtpl:31
3026 qw422016.N().S(`
3027 </div>
3028 </div>
3029 <div id="about" class="col-md-4 order-first order-md-last">
3030 `)
3031-//line gitlist.qtpl:35
3032+//line templates/gitlist.qtpl:35
3033 qw422016.N().Z(p.About)
3034-//line gitlist.qtpl:35
3035+//line templates/gitlist.qtpl:35
3036 qw422016.N().S(`
3037 </div>
3038 </div>
3039 `)
3040-//line gitlist.qtpl:38
3041+//line templates/gitlist.qtpl:38
3042 }
3043
3044-//line gitlist.qtpl:38
3045+//line templates/gitlist.qtpl:38
3046 func (p *GitListPage) WriteContent(qq422016 qtio422016.Writer) {
3047-//line gitlist.qtpl:38
3048+//line templates/gitlist.qtpl:38
3049 qw422016 := qt422016.AcquireWriter(qq422016)
3050-//line gitlist.qtpl:38
3051+//line templates/gitlist.qtpl:38
3052 p.StreamContent(qw422016)
3053-//line gitlist.qtpl:38
3054+//line templates/gitlist.qtpl:38
3055 qt422016.ReleaseWriter(qw422016)
3056-//line gitlist.qtpl:38
3057+//line templates/gitlist.qtpl:38
3058 }
3059
3060-//line gitlist.qtpl:38
3061+//line templates/gitlist.qtpl:38
3062 func (p *GitListPage) Content() string {
3063-//line gitlist.qtpl:38
3064+//line templates/gitlist.qtpl:38
3065 qb422016 := qt422016.AcquireByteBuffer()
3066-//line gitlist.qtpl:38
3067+//line templates/gitlist.qtpl:38
3068 p.WriteContent(qb422016)
3069-//line gitlist.qtpl:38
3070+//line templates/gitlist.qtpl:38
3071 qs422016 := string(qb422016.B)
3072-//line gitlist.qtpl:38
3073+//line templates/gitlist.qtpl:38
3074 qt422016.ReleaseByteBuffer(qb422016)
3075-//line gitlist.qtpl:38
3076+//line templates/gitlist.qtpl:38
3077 return qs422016
3078-//line gitlist.qtpl:38
3079+//line templates/gitlist.qtpl:38
3080 }
3081
3082-//line gitlist.qtpl:40
3083+//line templates/gitlist.qtpl:40
3084 func (p *GitListPage) StreamScript(qw422016 *qt422016.Writer) {
3085-//line gitlist.qtpl:40
3086+//line templates/gitlist.qtpl:40
3087 qw422016.N().S(`
3088 `)
3089-//line gitlist.qtpl:41
3090+//line templates/gitlist.qtpl:41
3091 }
3092
3093-//line gitlist.qtpl:41
3094+//line templates/gitlist.qtpl:41
3095 func (p *GitListPage) WriteScript(qq422016 qtio422016.Writer) {
3096-//line gitlist.qtpl:41
3097+//line templates/gitlist.qtpl:41
3098 qw422016 := qt422016.AcquireWriter(qq422016)
3099-//line gitlist.qtpl:41
3100+//line templates/gitlist.qtpl:41
3101 p.StreamScript(qw422016)
3102-//line gitlist.qtpl:41
3103+//line templates/gitlist.qtpl:41
3104 qt422016.ReleaseWriter(qw422016)
3105-//line gitlist.qtpl:41
3106+//line templates/gitlist.qtpl:41
3107 }
3108
3109-//line gitlist.qtpl:41
3110+//line templates/gitlist.qtpl:41
3111 func (p *GitListPage) Script() string {
3112-//line gitlist.qtpl:41
3113+//line templates/gitlist.qtpl:41
3114 qb422016 := qt422016.AcquireByteBuffer()
3115-//line gitlist.qtpl:41
3116+//line templates/gitlist.qtpl:41
3117 p.WriteScript(qb422016)
3118-//line gitlist.qtpl:41
3119+//line templates/gitlist.qtpl:41
3120 qs422016 := string(qb422016.B)
3121-//line gitlist.qtpl:41
3122+//line templates/gitlist.qtpl:41
3123 qt422016.ReleaseByteBuffer(qb422016)
3124-//line gitlist.qtpl:41
3125+//line templates/gitlist.qtpl:41
3126 return qs422016
3127-//line gitlist.qtpl:41
3128+//line templates/gitlist.qtpl:41
3129 }
3130diff --git a/templates/navbar.qtpl.go b/templates/navbar.qtpl.go
3131index 806df94d8b133cc246045e0bce8932bd569aefe5..5a27bb48ff8a7727d9f8494beb32945777735fc3 100644
3132--- a/templates/navbar.qtpl.go
3133+++ b/templates/navbar.qtpl.go
3134@@ -1,23 +1,23 @@
3135 // Code generated by qtc from "navbar.qtpl". DO NOT EDIT.
3136 // See https://github.com/valyala/quicktemplate for details.
3137
3138-//line navbar.qtpl:1
3139+//line templates/navbar.qtpl:1
3140 package templates
3141
3142-//line navbar.qtpl:1
3143+//line templates/navbar.qtpl:1
3144 import (
3145 qtio422016 "io"
3146
3147 qt422016 "github.com/valyala/quicktemplate"
3148 )
3149
3150-//line navbar.qtpl:1
3151+//line templates/navbar.qtpl:1
3152 var (
3153 _ = qtio422016.Copy
3154 _ = qt422016.AcquireByteBuffer
3155 )
3156
3157-//line navbar.qtpl:2
3158+//line templates/navbar.qtpl:2
3159 type Selection int
3160
3161 const (
3162@@ -27,7 +27,7 @@ About
3163 Config
3164 )
3165
3166-//line navbar.qtpl:12
3167+//line templates/navbar.qtpl:12
3168 type GitSelection int
3169
3170 const (
3171@@ -38,211 +38,211 @@ Refs
3172 Tree
3173 )
3174
3175-//line navbar.qtpl:22
3176+//line templates/navbar.qtpl:22
3177 func streaminsertIfEqual(qw422016 *qt422016.Writer, s, d any) {
3178-//line navbar.qtpl:22
3179+//line templates/navbar.qtpl:22
3180 if s == d {
3181-//line navbar.qtpl:22
3182+//line templates/navbar.qtpl:22
3183 qw422016.N().S(` selected`)
3184-//line navbar.qtpl:22
3185+//line templates/navbar.qtpl:22
3186 }
3187-//line navbar.qtpl:22
3188+//line templates/navbar.qtpl:22
3189 }
3190
3191-//line navbar.qtpl:22
3192+//line templates/navbar.qtpl:22
3193 func writeinsertIfEqual(qq422016 qtio422016.Writer, s, d any) {
3194-//line navbar.qtpl:22
3195+//line templates/navbar.qtpl:22
3196 qw422016 := qt422016.AcquireWriter(qq422016)
3197-//line navbar.qtpl:22
3198+//line templates/navbar.qtpl:22
3199 streaminsertIfEqual(qw422016, s, d)
3200-//line navbar.qtpl:22
3201+//line templates/navbar.qtpl:22
3202 qt422016.ReleaseWriter(qw422016)
3203-//line navbar.qtpl:22
3204+//line templates/navbar.qtpl:22
3205 }
3206
3207-//line navbar.qtpl:22
3208+//line templates/navbar.qtpl:22
3209 func insertIfEqual(s, d any) string {
3210-//line navbar.qtpl:22
3211+//line templates/navbar.qtpl:22
3212 qb422016 := qt422016.AcquireByteBuffer()
3213-//line navbar.qtpl:22
3214+//line templates/navbar.qtpl:22
3215 writeinsertIfEqual(qb422016, s, d)
3216-//line navbar.qtpl:22
3217+//line templates/navbar.qtpl:22
3218 qs422016 := string(qb422016.B)
3219-//line navbar.qtpl:22
3220+//line templates/navbar.qtpl:22
3221 qt422016.ReleaseByteBuffer(qb422016)
3222-//line navbar.qtpl:22
3223+//line templates/navbar.qtpl:22
3224 return qs422016
3225-//line navbar.qtpl:22
3226+//line templates/navbar.qtpl:22
3227 }
3228
3229-//line navbar.qtpl:24
3230+//line templates/navbar.qtpl:24
3231 func StreamNavbar(qw422016 *qt422016.Writer, s Selection) {
3232-//line navbar.qtpl:24
3233+//line templates/navbar.qtpl:24
3234 qw422016.N().S(`
3235 <nav class="container navbar navbar-expand">
3236 <div class="navbar-nav">
3237 <a class="nav-link`)
3238-//line navbar.qtpl:27
3239+//line templates/navbar.qtpl:27
3240 streaminsertIfEqual(qw422016, s, Git)
3241-//line navbar.qtpl:27
3242+//line templates/navbar.qtpl:27
3243 qw422016.N().S(`" href="/">git</a>
3244 `)
3245-//line navbar.qtpl:31
3246+//line templates/navbar.qtpl:31
3247 qw422016.N().S(`
3248 `)
3249-//line navbar.qtpl:35
3250+//line templates/navbar.qtpl:35
3251 qw422016.N().S(`
3252 <a class="nav-link`)
3253-//line navbar.qtpl:36
3254+//line templates/navbar.qtpl:36
3255 streaminsertIfEqual(qw422016, s, Config)
3256-//line navbar.qtpl:36
3257+//line templates/navbar.qtpl:36
3258 qw422016.N().S(`" href="/config">config</a>
3259 </div>
3260 </nav>
3261 `)
3262-//line navbar.qtpl:39
3263+//line templates/navbar.qtpl:39
3264 }
3265
3266-//line navbar.qtpl:39
3267+//line templates/navbar.qtpl:39
3268 func WriteNavbar(qq422016 qtio422016.Writer, s Selection) {
3269-//line navbar.qtpl:39
3270+//line templates/navbar.qtpl:39
3271 qw422016 := qt422016.AcquireWriter(qq422016)
3272-//line navbar.qtpl:39
3273+//line templates/navbar.qtpl:39
3274 StreamNavbar(qw422016, s)
3275-//line navbar.qtpl:39
3276+//line templates/navbar.qtpl:39
3277 qt422016.ReleaseWriter(qw422016)
3278-//line navbar.qtpl:39
3279+//line templates/navbar.qtpl:39
3280 }
3281
3282-//line navbar.qtpl:39
3283+//line templates/navbar.qtpl:39
3284 func Navbar(s Selection) string {
3285-//line navbar.qtpl:39
3286+//line templates/navbar.qtpl:39
3287 qb422016 := qt422016.AcquireByteBuffer()
3288-//line navbar.qtpl:39
3289+//line templates/navbar.qtpl:39
3290 WriteNavbar(qb422016, s)
3291-//line navbar.qtpl:39
3292+//line templates/navbar.qtpl:39
3293 qs422016 := string(qb422016.B)
3294-//line navbar.qtpl:39
3295+//line templates/navbar.qtpl:39
3296 qt422016.ReleaseByteBuffer(qb422016)
3297-//line navbar.qtpl:39
3298+//line templates/navbar.qtpl:39
3299 return qs422016
3300-//line navbar.qtpl:39
3301+//line templates/navbar.qtpl:39
3302 }
3303
3304-//line navbar.qtpl:41
3305+//line templates/navbar.qtpl:41
3306 func StreamGitItemNav(qw422016 *qt422016.Writer, name, ref string, s GitSelection) {
3307-//line navbar.qtpl:41
3308+//line templates/navbar.qtpl:41
3309 qw422016.N().S(`
3310 <div class="row">
3311 <h3 id="name">`)
3312-//line navbar.qtpl:43
3313+//line templates/navbar.qtpl:43
3314 qw422016.E().S(name)
3315-//line navbar.qtpl:43
3316+//line templates/navbar.qtpl:43
3317 qw422016.N().S(` `)
3318-//line navbar.qtpl:43
3319+//line templates/navbar.qtpl:43
3320 if ref != "" && (s == Log || s == Tree) {
3321-//line navbar.qtpl:43
3322+//line templates/navbar.qtpl:43
3323 qw422016.N().S(`@ `)
3324-//line navbar.qtpl:43
3325+//line templates/navbar.qtpl:43
3326 qw422016.E().S(ref)
3327-//line navbar.qtpl:43
3328+//line templates/navbar.qtpl:43
3329 }
3330-//line navbar.qtpl:43
3331+//line templates/navbar.qtpl:43
3332 qw422016.N().S(`</h3>
3333 </div>
3334 <div class="row">
3335 <ul class="nav">
3336 <li class="nav-item">
3337 <a class="nav-link`)
3338-//line navbar.qtpl:48
3339+//line templates/navbar.qtpl:48
3340 streaminsertIfEqual(qw422016, s, Readme)
3341-//line navbar.qtpl:48
3342+//line templates/navbar.qtpl:48
3343 qw422016.N().S(`" aria-current="page" href="/`)
3344-//line navbar.qtpl:48
3345+//line templates/navbar.qtpl:48
3346 qw422016.E().S(name)
3347-//line navbar.qtpl:48
3348+//line templates/navbar.qtpl:48
3349 qw422016.N().S(`/about/">about</a>
3350 </li>
3351 <li class="nav-item">
3352 <a class="nav-link`)
3353-//line navbar.qtpl:51
3354+//line templates/navbar.qtpl:51
3355 streaminsertIfEqual(qw422016, s, Summary)
3356-//line navbar.qtpl:51
3357+//line templates/navbar.qtpl:51
3358 qw422016.N().S(`" aria-current="page" href="/`)
3359-//line navbar.qtpl:51
3360+//line templates/navbar.qtpl:51
3361 qw422016.E().S(name)
3362-//line navbar.qtpl:51
3363+//line templates/navbar.qtpl:51
3364 qw422016.N().S(`/">summary</a>
3365 </li>
3366 <li class="nav-item">
3367 <a class="nav-link`)
3368-//line navbar.qtpl:54
3369+//line templates/navbar.qtpl:54
3370 streaminsertIfEqual(qw422016, s, Refs)
3371-//line navbar.qtpl:54
3372+//line templates/navbar.qtpl:54
3373 qw422016.N().S(`" aria-current="page" href="/`)
3374-//line navbar.qtpl:54
3375+//line templates/navbar.qtpl:54
3376 qw422016.E().S(name)
3377-//line navbar.qtpl:54
3378+//line templates/navbar.qtpl:54
3379 qw422016.N().S(`/refs">refs</a>
3380 </li>
3381 <li class="nav-item">
3382 <a class="nav-link`)
3383-//line navbar.qtpl:57
3384+//line templates/navbar.qtpl:57
3385 streaminsertIfEqual(qw422016, s, Log)
3386-//line navbar.qtpl:57
3387+//line templates/navbar.qtpl:57
3388 qw422016.N().S(`" aria-current="page" href="/`)
3389-//line navbar.qtpl:57
3390+//line templates/navbar.qtpl:57
3391 qw422016.E().S(name)
3392-//line navbar.qtpl:57
3393+//line templates/navbar.qtpl:57
3394 qw422016.N().S(`/log/`)
3395-//line navbar.qtpl:57
3396+//line templates/navbar.qtpl:57
3397 qw422016.E().S(ref)
3398-//line navbar.qtpl:57
3399+//line templates/navbar.qtpl:57
3400 qw422016.N().S(`/">log</a>
3401 </li>
3402 <li class="nav-item">
3403 <a class="nav-link`)
3404-//line navbar.qtpl:60
3405+//line templates/navbar.qtpl:60
3406 streaminsertIfEqual(qw422016, s, Tree)
3407-//line navbar.qtpl:60
3408+//line templates/navbar.qtpl:60
3409 qw422016.N().S(`" aria-current="page" href="/`)
3410-//line navbar.qtpl:60
3411+//line templates/navbar.qtpl:60
3412 qw422016.E().S(name)
3413-//line navbar.qtpl:60
3414+//line templates/navbar.qtpl:60
3415 qw422016.N().S(`/tree/`)
3416-//line navbar.qtpl:60
3417+//line templates/navbar.qtpl:60
3418 qw422016.E().S(ref)
3419-//line navbar.qtpl:60
3420+//line templates/navbar.qtpl:60
3421 qw422016.N().S(`/">tree</a>
3422 </li>
3423 </ul>
3424 </div>
3425 `)
3426-//line navbar.qtpl:64
3427+//line templates/navbar.qtpl:64
3428 }
3429
3430-//line navbar.qtpl:64
3431+//line templates/navbar.qtpl:64
3432 func WriteGitItemNav(qq422016 qtio422016.Writer, name, ref string, s GitSelection) {
3433-//line navbar.qtpl:64
3434+//line templates/navbar.qtpl:64
3435 qw422016 := qt422016.AcquireWriter(qq422016)
3436-//line navbar.qtpl:64
3437+//line templates/navbar.qtpl:64
3438 StreamGitItemNav(qw422016, name, ref, s)
3439-//line navbar.qtpl:64
3440+//line templates/navbar.qtpl:64
3441 qt422016.ReleaseWriter(qw422016)
3442-//line navbar.qtpl:64
3443+//line templates/navbar.qtpl:64
3444 }
3445
3446-//line navbar.qtpl:64
3447+//line templates/navbar.qtpl:64
3448 func GitItemNav(name, ref string, s GitSelection) string {
3449-//line navbar.qtpl:64
3450+//line templates/navbar.qtpl:64
3451 qb422016 := qt422016.AcquireByteBuffer()
3452-//line navbar.qtpl:64
3453+//line templates/navbar.qtpl:64
3454 WriteGitItemNav(qb422016, name, ref, s)
3455-//line navbar.qtpl:64
3456+//line templates/navbar.qtpl:64
3457 qs422016 := string(qb422016.B)
3458-//line navbar.qtpl:64
3459+//line templates/navbar.qtpl:64
3460 qt422016.ReleaseByteBuffer(qb422016)
3461-//line navbar.qtpl:64
3462+//line templates/navbar.qtpl:64
3463 return qs422016
3464-//line navbar.qtpl:64
3465+//line templates/navbar.qtpl:64
3466 }
3467diff --git a/templates/tags.qtpl.go b/templates/tags.qtpl.go
3468index 7d8eca8f5a309f79029bdef9a1ec902ff0a40375..a89ddd3d9cc785f08d07597c5bc495b0a2aa73d0 100644
3469--- a/templates/tags.qtpl.go
3470+++ b/templates/tags.qtpl.go
3471@@ -1,154 +1,154 @@
3472 // Code generated by qtc from "tags.qtpl". DO NOT EDIT.
3473 // See https://github.com/valyala/quicktemplate for details.
3474
3475-//line tags.qtpl:1
3476+//line templates/tags.qtpl:1
3477 package templates
3478
3479-//line tags.qtpl:1
3480+//line templates/tags.qtpl:1
3481 import "git.gabrielgio.me/cerrado/pkg/git"
3482
3483-//line tags.qtpl:3
3484+//line templates/tags.qtpl:3
3485 import (
3486 qtio422016 "io"
3487
3488 qt422016 "github.com/valyala/quicktemplate"
3489 )
3490
3491-//line tags.qtpl:3
3492+//line templates/tags.qtpl:3
3493 var (
3494 _ = qtio422016.Copy
3495 _ = qt422016.AcquireByteBuffer
3496 )
3497
3498-//line tags.qtpl:3
3499+//line templates/tags.qtpl:3
3500 func StreamListTags(qw422016 *qt422016.Writer, name string, tags []*git.TagReference) {
3501-//line tags.qtpl:3
3502+//line templates/tags.qtpl:3
3503 qw422016.N().S(`
3504 `)
3505-//line tags.qtpl:4
3506+//line templates/tags.qtpl:4
3507 if len(tags) > 0 {
3508-//line tags.qtpl:4
3509+//line templates/tags.qtpl:4
3510 qw422016.N().S(`
3511 <div class="event-list">
3512 `)
3513-//line tags.qtpl:6
3514+//line templates/tags.qtpl:6
3515 for _, t := range tags {
3516-//line tags.qtpl:6
3517+//line templates/tags.qtpl:6
3518 qw422016.N().S(`
3519 <div class="event me-md-2">
3520 <div class="row ">
3521 <div class="col-4">
3522 <a title="`)
3523-//line tags.qtpl:10
3524+//line templates/tags.qtpl:10
3525 qw422016.E().S(t.HashString())
3526-//line tags.qtpl:10
3527+//line templates/tags.qtpl:10
3528 qw422016.N().S(`" href="/`)
3529-//line tags.qtpl:10
3530+//line templates/tags.qtpl:10
3531 qw422016.E().S(name)
3532-//line tags.qtpl:10
3533+//line templates/tags.qtpl:10
3534 qw422016.N().S(`/commit/`)
3535-//line tags.qtpl:10
3536+//line templates/tags.qtpl:10
3537 qw422016.E().S(t.HashString())
3538-//line tags.qtpl:10
3539+//line templates/tags.qtpl:10
3540 qw422016.N().S(`">`)
3541-//line tags.qtpl:10
3542+//line templates/tags.qtpl:10
3543 qw422016.E().S(t.ShortName())
3544-//line tags.qtpl:10
3545+//line templates/tags.qtpl:10
3546 qw422016.N().S(`</a>
3547 </div>
3548 <div class="col-8">
3549 <div class="float-end">
3550 <a href="/`)
3551-//line tags.qtpl:14
3552+//line templates/tags.qtpl:14
3553 qw422016.E().S(name)
3554-//line tags.qtpl:14
3555+//line templates/tags.qtpl:14
3556 qw422016.N().S(`/archive/`)
3557-//line tags.qtpl:14
3558+//line templates/tags.qtpl:14
3559 qw422016.E().S(t.ShortName())
3560-//line tags.qtpl:14
3561+//line templates/tags.qtpl:14
3562 qw422016.N().S(`.tar.gz">tar.gz</a>
3563 <a href="/`)
3564-//line tags.qtpl:15
3565+//line templates/tags.qtpl:15
3566 qw422016.E().S(name)
3567-//line tags.qtpl:15
3568+//line templates/tags.qtpl:15
3569 qw422016.N().S(`/tree/`)
3570-//line tags.qtpl:15
3571+//line templates/tags.qtpl:15
3572 qw422016.E().S(t.ShortName())
3573-//line tags.qtpl:15
3574+//line templates/tags.qtpl:15
3575 qw422016.N().S(`/">tree</a>
3576 <a href="/`)
3577-//line tags.qtpl:16
3578+//line templates/tags.qtpl:16
3579 qw422016.E().S(name)
3580-//line tags.qtpl:16
3581+//line templates/tags.qtpl:16
3582 qw422016.N().S(`/log/`)
3583-//line tags.qtpl:16
3584+//line templates/tags.qtpl:16
3585 qw422016.E().S(t.ShortName())
3586-//line tags.qtpl:16
3587+//line templates/tags.qtpl:16
3588 qw422016.N().S(`/">log</a>
3589 </div>
3590 </div>
3591 </div>
3592 `)
3593-//line tags.qtpl:20
3594+//line templates/tags.qtpl:20
3595 if t.Message() != "" {
3596-//line tags.qtpl:20
3597+//line templates/tags.qtpl:20
3598 qw422016.N().S(`
3599 <div class="code-view">
3600 <pre>`)
3601-//line tags.qtpl:22
3602+//line templates/tags.qtpl:22
3603 qw422016.E().S(t.Message())
3604-//line tags.qtpl:22
3605+//line templates/tags.qtpl:22
3606 qw422016.N().S(`</pre>
3607 </div>
3608 `)
3609-//line tags.qtpl:24
3610+//line templates/tags.qtpl:24
3611 }
3612-//line tags.qtpl:24
3613+//line templates/tags.qtpl:24
3614 qw422016.N().S(`
3615 </div>
3616 `)
3617-//line tags.qtpl:26
3618+//line templates/tags.qtpl:26
3619 }
3620-//line tags.qtpl:26
3621+//line templates/tags.qtpl:26
3622 qw422016.N().S(`
3623 </div>
3624 `)
3625-//line tags.qtpl:28
3626+//line templates/tags.qtpl:28
3627 } else {
3628-//line tags.qtpl:28
3629+//line templates/tags.qtpl:28
3630 qw422016.N().S(`
3631 <p> No tags </p>
3632 `)
3633-//line tags.qtpl:30
3634+//line templates/tags.qtpl:30
3635 }
3636-//line tags.qtpl:30
3637+//line templates/tags.qtpl:30
3638 qw422016.N().S(`
3639 `)
3640-//line tags.qtpl:31
3641+//line templates/tags.qtpl:31
3642 }
3643
3644-//line tags.qtpl:31
3645+//line templates/tags.qtpl:31
3646 func WriteListTags(qq422016 qtio422016.Writer, name string, tags []*git.TagReference) {
3647-//line tags.qtpl:31
3648+//line templates/tags.qtpl:31
3649 qw422016 := qt422016.AcquireWriter(qq422016)
3650-//line tags.qtpl:31
3651+//line templates/tags.qtpl:31
3652 StreamListTags(qw422016, name, tags)
3653-//line tags.qtpl:31
3654+//line templates/tags.qtpl:31
3655 qt422016.ReleaseWriter(qw422016)
3656-//line tags.qtpl:31
3657+//line templates/tags.qtpl:31
3658 }
3659
3660-//line tags.qtpl:31
3661+//line templates/tags.qtpl:31
3662 func ListTags(name string, tags []*git.TagReference) string {
3663-//line tags.qtpl:31
3664+//line templates/tags.qtpl:31
3665 qb422016 := qt422016.AcquireByteBuffer()
3666-//line tags.qtpl:31
3667+//line templates/tags.qtpl:31
3668 WriteListTags(qb422016, name, tags)
3669-//line tags.qtpl:31
3670+//line templates/tags.qtpl:31
3671 qs422016 := string(qb422016.B)
3672-//line tags.qtpl:31
3673+//line templates/tags.qtpl:31
3674 qt422016.ReleaseByteBuffer(qb422016)
3675-//line tags.qtpl:31
3676+//line templates/tags.qtpl:31
3677 return qs422016
3678-//line tags.qtpl:31
3679+//line templates/tags.qtpl:31
3680 }