cerrado @ 10925e006bf43edc79331fbe601e09a28c43df2b

fix: Reduce some redirects
  1diff --git a/pkg/handler/router.go b/pkg/handler/router.go
  2index 3da812feb835f6d0e5ceed41bb688d45f34baae0..c8f89840effc9263911f7afc73b02722436b36f9 100644
  3--- a/pkg/handler/router.go
  4+++ b/pkg/handler/router.go
  5@@ -36,11 +36,11 @@ 	mux.AddMiddleware(ext.Log)
  6 
  7 	mux.HandleFunc("/static/{file}", staticHandler)
  8 	mux.HandleFunc("/{name}/about/{$}", gitHandler.About)
  9-	mux.HandleFunc("/{name}", gitHandler.Summary)
 10+	mux.HandleFunc("/{name}/", gitHandler.Summary)
 11 	mux.HandleFunc("/{name}/refs/{$}", gitHandler.Refs)
 12 	mux.HandleFunc("/{name}/tree/{ref}/{rest...}", gitHandler.Tree)
 13 	mux.HandleFunc("/{name}/blob/{ref}/{rest...}", gitHandler.Blob)
 14-	mux.HandleFunc("/{name}/log/{ref}", gitHandler.Log)
 15+	mux.HandleFunc("/{name}/log/{ref}/", gitHandler.Log)
 16 	mux.HandleFunc("/config", configHandler)
 17 	mux.HandleFunc("/about", aboutHandler.About)
 18 	mux.HandleFunc("/", gitHandler.List)
 19diff --git a/templates/gititemrefs.qtpl b/templates/gititemrefs.qtpl
 20index 09d7446a2dfa524db36d016a9ffcffafc57d504b..ff1561b7626970689ef318510c4610dbf20d5623 100644
 21--- a/templates/gititemrefs.qtpl
 22+++ b/templates/gititemrefs.qtpl
 23@@ -21,8 +21,8 @@            {%s t.Name().Short() %}
 24           </div>
 25           <div class="col-8">
 26             <div class="float-end">
 27-              <a href="/{%s name %}/tree/{%s t.Name().Short() %}">tree</a>
 28-              <a href="/{%s name %}/log/{%s t.Name().Short() %}">log</a>
 29+              <a href="/{%s name %}/tree/{%s t.Name().Short() %}/">tree</a>
 30+              <a href="/{%s name %}/log/{%s t.Name().Short() %}/">log</a>
 31             </div>
 32           </div>
 33       </div>
 34@@ -41,8 +41,8 @@            {%s b.Name().Short() %}
 35           </div>
 36           <div class="col-8">
 37             <div class="float-end">
 38-              <a href="/{%s name %}/tree/{%s b.Name().Short() %}">tree</a>
 39-              <a href="/{%s name %}/log/{%s b.Name().Short() %}">log</a>
 40+              <a href="/{%s name %}/tree/{%s b.Name().Short() %}/">tree</a>
 41+              <a href="/{%s name %}/log/{%s b.Name().Short() %}/">log</a>
 42             </div>
 43           </div>
 44       </div>
 45diff --git a/templates/gititemrefs.qtpl.go b/templates/gititemrefs.qtpl.go
 46index 62c1725248bccf069a7ab9b0f1fa10816fb1bc90..b00736ecb57ca6d0fca34676cb9e455591c92d7a 100644
 47--- a/templates/gititemrefs.qtpl.go
 48+++ b/templates/gititemrefs.qtpl.go
 49@@ -94,7 +94,7 @@ 			qw422016.N().S(`/tree/`)
 50 //line gititemrefs.qtpl:24
 51 			qw422016.E().S(t.Name().Short())
 52 //line gititemrefs.qtpl:24
 53-			qw422016.N().S(`">tree</a>
 54+			qw422016.N().S(`/">tree</a>
 55               <a href="/`)
 56 //line gititemrefs.qtpl:25
 57 			qw422016.E().S(name)
 58@@ -103,7 +103,7 @@ 			qw422016.N().S(`/log/`)
 59 //line gititemrefs.qtpl:25
 60 			qw422016.E().S(t.Name().Short())
 61 //line gititemrefs.qtpl:25
 62-			qw422016.N().S(`">log</a>
 63+			qw422016.N().S(`/">log</a>
 64             </div>
 65           </div>
 66       </div>
 67@@ -150,7 +150,7 @@ 		qw422016.N().S(`/tree/`)
 68 //line gititemrefs.qtpl:44
 69 		qw422016.E().S(b.Name().Short())
 70 //line gititemrefs.qtpl:44
 71-		qw422016.N().S(`">tree</a>
 72+		qw422016.N().S(`/">tree</a>
 73               <a href="/`)
 74 //line gititemrefs.qtpl:45
 75 		qw422016.E().S(name)
 76@@ -159,7 +159,7 @@ 		qw422016.N().S(`/log/`)
 77 //line gititemrefs.qtpl:45
 78 		qw422016.E().S(b.Name().Short())
 79 //line gititemrefs.qtpl:45
 80-		qw422016.N().S(`">log</a>
 81+		qw422016.N().S(`/">log</a>
 82             </div>
 83           </div>
 84       </div>
 85diff --git a/templates/gititemsummary.qtpl b/templates/gititemsummary.qtpl
 86index 9a3e2ee56526ef12d8b10e699d8ca98a3446cb88..e3d3a0828874c51b78a70cc172d34a7fada73a1e 100644
 87--- a/templates/gititemsummary.qtpl
 88+++ b/templates/gititemsummary.qtpl
 89@@ -23,8 +23,8 @@            {%s t.Name().Short() %}
 90           </div>
 91           <div class="col-8">
 92             <div class="float-end">
 93-              <a href="/{%s name %}/tree/{%s t.Name().Short() %}">tree</a>
 94-              <a href="/{%s name %}/log/{%s t.Name().Short() %}">log</a>
 95+              <a href="/{%s name %}/tree/{%s t.Name().Short() %}/">tree</a>
 96+              <a href="/{%s name %}/log/{%s t.Name().Short() %}/">log</a>
 97             </div>
 98           </div>
 99       </div>
100@@ -43,8 +43,8 @@            {%s b.Name().Short() %}
101           </div>
102           <div class="col-8">
103             <div class="float-end">
104-              <a href="/{%s name %}/tree/{%s b.Name().Short() %}">tree</a>
105-              <a href="/{%s name %}/log/{%s b.Name().Short() %}">log</a>
106+              <a href="/{%s name %}/tree/{%s b.Name().Short() %}/">tree</a>
107+              <a href="/{%s name %}/log/{%s b.Name().Short() %}/">log</a>
108             </div>
109           </div>
110       </div>
111diff --git a/templates/gititemsummary.qtpl.go b/templates/gititemsummary.qtpl.go
112index cf1c07cac00b465234917bc9e5a92e2ec7eab62b..ad025f7e8a8343850615d1c5e27c1f2cbf89d68c 100644
113--- a/templates/gititemsummary.qtpl.go
114+++ b/templates/gititemsummary.qtpl.go
115@@ -98,7 +98,7 @@ 			qw422016.N().S(`/tree/`)
116 //line gititemsummary.qtpl:26
117 			qw422016.E().S(t.Name().Short())
118 //line gititemsummary.qtpl:26
119-			qw422016.N().S(`">tree</a>
120+			qw422016.N().S(`/">tree</a>
121               <a href="/`)
122 //line gititemsummary.qtpl:27
123 			qw422016.E().S(name)
124@@ -107,7 +107,7 @@ 			qw422016.N().S(`/log/`)
125 //line gititemsummary.qtpl:27
126 			qw422016.E().S(t.Name().Short())
127 //line gititemsummary.qtpl:27
128-			qw422016.N().S(`">log</a>
129+			qw422016.N().S(`/">log</a>
130             </div>
131           </div>
132       </div>
133@@ -154,7 +154,7 @@ 		qw422016.N().S(`/tree/`)
134 //line gititemsummary.qtpl:46
135 		qw422016.E().S(b.Name().Short())
136 //line gititemsummary.qtpl:46
137-		qw422016.N().S(`">tree</a>
138+		qw422016.N().S(`/">tree</a>
139               <a href="/`)
140 //line gititemsummary.qtpl:47
141 		qw422016.E().S(name)
142@@ -163,7 +163,7 @@ 		qw422016.N().S(`/log/`)
143 //line gititemsummary.qtpl:47
144 		qw422016.E().S(b.Name().Short())
145 //line gititemsummary.qtpl:47
146-		qw422016.N().S(`">log</a>
147+		qw422016.N().S(`/">log</a>
148             </div>
149           </div>
150       </div>
151diff --git a/templates/gitlist.qtpl b/templates/gitlist.qtpl
152index 937ba224e5709efc8c22623cf9b382ada77c2ba9..ff2eca9942e5a5fe2f053e1842bda33993d33977 100644
153--- a/templates/gitlist.qtpl
154+++ b/templates/gitlist.qtpl
155@@ -18,14 +18,14 @@     <div class="event-list">
156       {% for _, r := range p.Respositories %}
157       <div class="event">
158         <h4>
159-          <a href="/{%s r.Name %}">{%s r.Name %}</a>
160+          <a href="/{%s r.Name %}/">{%s r.Name %}</a>
161         </h4>
162         </hr>
163         <p>{%s r.Description %}</p>
164         <p>
165-          <a href="/{%s r.Name %}/log/{%s r.Ref %}">log</a>
166-          <a href="/{%s r.Name %}/tree/{%s r.Ref %}">tree</a>
167-          <a href="/{%s r.Name %}/refs">refs</a>
168+          <a href="/{%s r.Name %}/log/{%s r.Ref %}/">log</a>
169+          <a href="/{%s r.Name %}/tree/{%s r.Ref %}/">tree</a>
170+          <a href="/{%s r.Name %}/refs/">refs</a>
171         </p>
172       </div>
173       {% endfor %}
174diff --git a/templates/gitlist.qtpl.go b/templates/gitlist.qtpl.go
175index 435626eee0d43f1f780dcae81de5fea21a7f8017..f38c404b328255e0ab6d6fdc932b31e31465b723 100644
176--- a/templates/gitlist.qtpl.go
177+++ b/templates/gitlist.qtpl.go
178@@ -110,7 +110,7 @@           <a href="/`)
179 //line gitlist.qtpl:21
180 		qw422016.E().S(r.Name)
181 //line gitlist.qtpl:21
182-		qw422016.N().S(`">`)
183+		qw422016.N().S(`/">`)
184 //line gitlist.qtpl:21
185 		qw422016.E().S(r.Name)
186 //line gitlist.qtpl:21
187@@ -131,7 +131,7 @@ 		qw422016.N().S(`/log/`)
188 //line gitlist.qtpl:26
189 		qw422016.E().S(r.Ref)
190 //line gitlist.qtpl:26
191-		qw422016.N().S(`">log</a>
192+		qw422016.N().S(`/">log</a>
193           <a href="/`)
194 //line gitlist.qtpl:27
195 		qw422016.E().S(r.Name)
196@@ -140,12 +140,12 @@ 		qw422016.N().S(`/tree/`)
197 //line gitlist.qtpl:27
198 		qw422016.E().S(r.Ref)
199 //line gitlist.qtpl:27
200-		qw422016.N().S(`">tree</a>
201+		qw422016.N().S(`/">tree</a>
202           <a href="/`)
203 //line gitlist.qtpl:28
204 		qw422016.E().S(r.Name)
205 //line gitlist.qtpl:28
206-		qw422016.N().S(`/refs">refs</a>
207+		qw422016.N().S(`/refs/">refs</a>
208         </p>
209       </div>
210       `)
211diff --git a/templates/navbar.qtpl b/templates/navbar.qtpl
212index 4d2a6a93af93586389c21b685b1df89c818c39f5..9e2796166f9a668ee427deaaf977e186df2e262f 100644
213--- a/templates/navbar.qtpl
214+++ b/templates/navbar.qtpl
215@@ -27,11 +27,11 @@           <div class="navbar-nav">
216             <a class="nav-link{%= insertIfEqual(s, Git) %}" href="/">git</a>
217 {% comment %}
218 Add this back once needed
219-            <a class="nav-link{%= insertIfEqual(s, List) %}" href="/list">list</a>
220+            <a class="nav-link{%= insertIfEqual(s, List) %}" href="/list/">list</a>
221 {% endcomment %}
222 {% comment %}
223 Add this back if needed
224-            <a class="nav-link{%= insertIfEqual(s, About) %}" href="/about">about</a>
225+            <a class="nav-link{%= insertIfEqual(s, About) %}" href="/about/">about</a>
226 {% endcomment %}
227             <a class="nav-link{%= insertIfEqual(s, Config) %}" href="/config">config</a>
228           </div>
229@@ -45,19 +45,19 @@ </div>
230 <div class="row">
231   <ul class="nav">
232     <li class="nav-item">
233-      <a class="nav-link{%= insertIfEqual(s, Readme) %}" aria-current="page" href="/{%s name %}/about">about</a>
234+      <a class="nav-link{%= insertIfEqual(s, Readme) %}" aria-current="page" href="/{%s name %}/about/">about</a>
235     </li>
236     <li class="nav-item">
237-      <a class="nav-link{%= insertIfEqual(s, Log) %}" aria-current="page" href="/{%s name %}/log/{%s ref %}">log</a>
238+      <a class="nav-link{%= insertIfEqual(s, Log) %}" aria-current="page" href="/{%s name %}/log/{%s ref %}/">log</a>
239     </li>
240     <li class="nav-item">
241-      <a class="nav-link{%= insertIfEqual(s, Summary) %}" aria-current="page" href="/{%s name %}">summary</a>
242+      <a class="nav-link{%= insertIfEqual(s, Summary) %}" aria-current="page" href="/{%s name %}/">summary</a>
243     </li>
244     <li class="nav-item">
245       <a class="nav-link{%= insertIfEqual(s, Refs) %}" aria-current="page" href="/{%s name %}/refs">refs</a>
246     </li>
247     <li class="nav-item">
248-      <a class="nav-link{%= insertIfEqual(s, Tree) %}" aria-current="page" href="/{%s name %}/tree/{%s ref %}">tree</a>
249+      <a class="nav-link{%= insertIfEqual(s, Tree) %}" aria-current="page" href="/{%s name %}/tree/{%s ref %}/">tree</a>
250     </li>
251   </ul>
252 </div>
253diff --git a/templates/navbar.qtpl.go b/templates/navbar.qtpl.go
254index 1eacd6a7b0142adb82f16595cfc41d4dd9fafac5..28e6f8e2b587b4c7fffb019f9e02f42231496760 100644
255--- a/templates/navbar.qtpl.go
256+++ b/templates/navbar.qtpl.go
257@@ -161,7 +161,7 @@ 	qw422016.N().S(`" aria-current="page" href="/`)
258 //line navbar.qtpl:48
259 	qw422016.E().S(name)
260 //line navbar.qtpl:48
261-	qw422016.N().S(`/about">about</a>
262+	qw422016.N().S(`/about/">about</a>
263     </li>
264     <li class="nav-item">
265       <a class="nav-link`)
266@@ -176,7 +176,7 @@ 	qw422016.N().S(`/log/`)
267 //line navbar.qtpl:51
268 	qw422016.E().S(ref)
269 //line navbar.qtpl:51
270-	qw422016.N().S(`">log</a>
271+	qw422016.N().S(`/">log</a>
272     </li>
273     <li class="nav-item">
274       <a class="nav-link`)
275@@ -187,7 +187,7 @@ 	qw422016.N().S(`" aria-current="page" href="/`)
276 //line navbar.qtpl:54
277 	qw422016.E().S(name)
278 //line navbar.qtpl:54
279-	qw422016.N().S(`">summary</a>
280+	qw422016.N().S(`/">summary</a>
281     </li>
282     <li class="nav-item">
283       <a class="nav-link`)
284@@ -213,7 +213,7 @@ 	qw422016.N().S(`/tree/`)
285 //line navbar.qtpl:60
286 	qw422016.E().S(ref)
287 //line navbar.qtpl:60
288-	qw422016.N().S(`">tree</a>
289+	qw422016.N().S(`/">tree</a>
290     </li>
291   </ul>
292 </div>