@@ -191,6 +191,9 @@ func renderViewPage(ctx *context.Context) (*git.Repository, *git.TreeEntry) {
191191 ctx .Data ["title" ] = pageName
192192 ctx .Data ["RequireHighlightJS" ] = true
193193
194+ isSideBar := pageName == "_Sidebar"
195+ isFooter := pageName == "_Footer"
196+
194197 // lookup filename in wiki - get filecontent, gitTree entry , real filename
195198 data , entry , pageFilename , noEntry := wikiContentsByName (ctx , commit , pageName )
196199 if noEntry {
@@ -203,20 +206,30 @@ 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
222235 rctx := & markup.RenderContext {
@@ -237,27 +250,35 @@ func renderViewPage(ctx *context.Context) (*git.Repository, *git.TreeEntry) {
237250
238251 ctx .Data ["EscapeStatus" ], ctx .Data ["content" ] = charset .EscapeControlString (buf .String ())
239252
240- buf .Reset ()
241- if err := markdown .Render (rctx , bytes .NewReader (sidebarContent ), & buf ); err != nil {
242- if wikiRepo != nil {
243- wikiRepo .Close ()
253+ if ! isSideBar {
254+ buf .Reset ()
255+ if err := markdown .Render (rctx , bytes .NewReader (sidebarContent ), & buf ); err != nil {
256+ if wikiRepo != nil {
257+ wikiRepo .Close ()
258+ }
259+ ctx .ServerError ("Render" , err )
260+ return nil , nil
244261 }
245- ctx .ServerError ("Render" , err )
246- return nil , nil
262+ ctx .Data ["sidebarPresent" ] = sidebarContent != nil
263+ ctx .Data ["sidebarEscapeStatus" ], ctx .Data ["sidebarContent" ] = charset .EscapeControlString (buf .String ())
264+ } else {
265+ ctx .Data ["sidebarPresent" ] = false
247266 }
248- ctx .Data ["sidebarPresent" ] = sidebarContent != nil
249- ctx .Data ["sidebarEscapeStatus" ], ctx .Data ["sidebarContent" ] = charset .EscapeControlString (buf .String ())
250267
251- buf .Reset ()
252- if err := markdown .Render (rctx , bytes .NewReader (footerContent ), & buf ); err != nil {
253- if wikiRepo != nil {
254- wikiRepo .Close ()
268+ if ! isFooter {
269+ buf .Reset ()
270+ if err := markdown .Render (rctx , bytes .NewReader (footerContent ), & buf ); err != nil {
271+ if wikiRepo != nil {
272+ wikiRepo .Close ()
273+ }
274+ ctx .ServerError ("Render" , err )
275+ return nil , nil
255276 }
256- ctx .ServerError ("Render" , err )
257- return nil , nil
277+ ctx .Data ["footerPresent" ] = footerContent != nil
278+ ctx .Data ["footerEscapeStatus" ], ctx .Data ["footerContent" ] = charset .EscapeControlString (buf .String ())
279+ } else {
280+ ctx .Data ["footerPresent" ] = false
258281 }
259- ctx .Data ["footerPresent" ] = footerContent != nil
260- ctx .Data ["footerEscapeStatus" ], ctx .Data ["footerContent" ] = charset .EscapeControlString (buf .String ())
261282
262283 // get commit count - wiki revisions
263284 commitsCount , _ := wikiRepo .FileCommitsCount ("master" , pageFilename )
0 commit comments