cerrado @ 2fb43cc1271572d26298da70f823814cae87a3a0

chore: Regenerate go templates

Now they should have correct path for the source template file.
   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 }