@@ -191,7 +191,10 @@ func renderViewPage(ctx *context.Context) (*git.Repository, *git.TreeEntry) {
191191 ctx .Data ["title" ] = pageName
192192 ctx .Data ["RequireHighlightJS" ] = true
193193
194- //lookup filename in wiki - get filecontent, gitTree entry , real filename
194+ isSideBar := pageName == "_Sidebar"
195+ isFooter := pageName == "_Footer"
196+
197+ // lookup filename in wiki - get filecontent, gitTree entry , real filename
195198 data , entry , pageFilename , noEntry := wikiContentsByName (ctx , commit , pageName )
196199 if noEntry {
197200 ctx .Redirect (ctx .Repo .RepoLink + "/wiki/?action=_pages" )
@@ -203,23 +206,33 @@ func renderViewPage(ctx *context.Context) (*git.Repository, *git.TreeEntry) {
203206 return nil , nil
204207 }
205208
206- sidebarContent , _ , _ , _ := wikiContentsByName (ctx , commit , "_Sidebar" )
207- if ctx .Written () {
208- if wikiRepo != nil {
209- wikiRepo .Close ()
209+ var sidebarContent []byte
210+ if ! isSideBar {
211+ sidebarContent , _ , _ , _ = wikiContentsByName (ctx , commit , "_Sidebar" )
212+ if ctx .Written () {
213+ if wikiRepo != nil {
214+ wikiRepo .Close ()
215+ }
216+ return nil , nil
210217 }
211- return nil , nil
218+ } else {
219+ sidebarContent = data
212220 }
213221
214- footerContent , _ , _ , _ := wikiContentsByName (ctx , commit , "_Footer" )
215- if ctx .Written () {
216- if wikiRepo != nil {
217- wikiRepo .Close ()
222+ var footerContent []byte
223+ if ! isFooter {
224+ footerContent , _ , _ , _ = wikiContentsByName (ctx , commit , "_Footer" )
225+ if ctx .Written () {
226+ if wikiRepo != nil {
227+ wikiRepo .Close ()
228+ }
229+ return nil , nil
218230 }
219- return nil , nil
231+ } else {
232+ footerContent = data
220233 }
221234
222- var rctx = & markup.RenderContext {
235+ rctx : = & markup.RenderContext {
223236 URLPrefix : ctx .Repo .RepoLink ,
224237 Metas : ctx .Repo .Repository .ComposeDocumentMetas (),
225238 IsWiki : true ,
@@ -236,27 +249,35 @@ func renderViewPage(ctx *context.Context) (*git.Repository, *git.TreeEntry) {
236249
237250 ctx .Data ["EscapeStatus" ], ctx .Data ["content" ] = charset .EscapeControlString (buf .String ())
238251
239- buf .Reset ()
240- if err := markdown .Render (rctx , bytes .NewReader (sidebarContent ), & buf ); err != nil {
241- if wikiRepo != nil {
242- wikiRepo .Close ()
252+ if ! isSideBar {
253+ buf .Reset ()
254+ if err := markdown .Render (rctx , bytes .NewReader (sidebarContent ), & buf ); err != nil {
255+ if wikiRepo != nil {
256+ wikiRepo .Close ()
257+ }
258+ ctx .ServerError ("Render" , err )
259+ return nil , nil
243260 }
244- ctx .ServerError ("Render" , err )
245- return nil , nil
261+ ctx .Data ["sidebarPresent" ] = sidebarContent != nil
262+ ctx .Data ["sidebarEscapeStatus" ], ctx .Data ["sidebarContent" ] = charset .EscapeControlString (buf .String ())
263+ } else {
264+ ctx .Data ["sidebarPresent" ] = false
246265 }
247- ctx .Data ["sidebarPresent" ] = sidebarContent != nil
248- ctx .Data ["sidebarEscapeStatus" ], ctx .Data ["sidebarContent" ] = charset .EscapeControlString (buf .String ())
249266
250- buf .Reset ()
251- if err := markdown .Render (rctx , bytes .NewReader (footerContent ), & buf ); err != nil {
252- if wikiRepo != nil {
253- wikiRepo .Close ()
267+ if ! isFooter {
268+ buf .Reset ()
269+ if err := markdown .Render (rctx , bytes .NewReader (footerContent ), & buf ); err != nil {
270+ if wikiRepo != nil {
271+ wikiRepo .Close ()
272+ }
273+ ctx .ServerError ("Render" , err )
274+ return nil , nil
254275 }
255- ctx .ServerError ("Render" , err )
256- return nil , nil
276+ ctx .Data ["footerPresent" ] = footerContent != nil
277+ ctx .Data ["footerEscapeStatus" ], ctx .Data ["footerContent" ] = charset .EscapeControlString (buf .String ())
278+ } else {
279+ ctx .Data ["footerPresent" ] = false
257280 }
258- ctx .Data ["footerPresent" ] = footerContent != nil
259- ctx .Data ["footerEscapeStatus" ], ctx .Data ["footerContent" ] = charset .EscapeControlString (buf .String ())
260281
261282 // get commit count - wiki revisions
262283 commitsCount , _ := wikiRepo .FileCommitsCount ("master" , pageFilename )
@@ -290,7 +311,7 @@ func renderRevisionPage(ctx *context.Context) (*git.Repository, *git.TreeEntry)
290311 ctx .Data ["Username" ] = ctx .Repo .Owner .Name
291312 ctx .Data ["Reponame" ] = ctx .Repo .Repository .Name
292313
293- //lookup filename in wiki - get filecontent, gitTree entry , real filename
314+ // lookup filename in wiki - get filecontent, gitTree entry , real filename
294315 data , entry , pageFilename , noEntry := wikiContentsByName (ctx , commit , pageName )
295316 if noEntry {
296317 ctx .Redirect (ctx .Repo .RepoLink + "/wiki/?action=_pages" )
@@ -364,7 +385,7 @@ func renderEditPage(ctx *context.Context) {
364385 ctx .Data ["title" ] = pageName
365386 ctx .Data ["RequireHighlightJS" ] = true
366387
367- //lookup filename in wiki - get filecontent, gitTree entry , real filename
388+ // lookup filename in wiki - get filecontent, gitTree entry , real filename
368389 data , entry , _ , noEntry := wikiContentsByName (ctx , commit , pageName )
369390 if noEntry {
370391 ctx .Redirect (ctx .Repo .RepoLink + "/wiki/?action=_pages" )
0 commit comments