Skip to content

Commit 30254b9

Browse files
author
Aly Sewelam
committed
Detect markup rendering from filename
Instead of hard coding it to be markdown only and allow for org files to be detected and rendered properly
1 parent 688430e commit 30254b9

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

routers/web/repo/wiki.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ func renderViewPage(ctx *context.Context) (*git.Repository, *git.TreeEntry) {
252252

253253
rctx := renderhelper.NewRenderContextRepoWiki(ctx, ctx.Repo.Repository)
254254

255-
renderFn := func(data []byte) (escaped *charset.EscapeStatus, output template.HTML, err error) {
255+
renderFn := func(data []byte, filename string) (escaped *charset.EscapeStatus, output template.HTML, err error) {
256256
buf := &strings.Builder{}
257257
markupRd, markupWr := io.Pipe()
258258
defer markupWr.Close()
@@ -265,13 +265,21 @@ func renderViewPage(ctx *context.Context) (*git.Repository, *git.TreeEntry) {
265265
close(done)
266266
}()
267267

268-
err = markdown.Render(rctx, bytes.NewReader(data), markupWr)
268+
// Detect markup type from filename and use the appropriate renderer
269+
// (.md -> markdown, .org -> orgmode)
270+
markupType := markup.DetectMarkupTypeByFileName(filename)
271+
if markupType == "" {
272+
// Default to markdown if detection fails
273+
markupType = markdown.MarkupName
274+
}
275+
fileRctx := rctx.WithMarkupType(markupType).WithRelativePath(filename)
276+
err = markup.Render(fileRctx, bytes.NewReader(data), markupWr)
269277
_ = markupWr.CloseWithError(err)
270278
<-done
271279
return escaped, output, err
272280
}
273281

274-
ctx.Data["EscapeStatus"], ctx.Data["WikiContentHTML"], err = renderFn(data)
282+
ctx.Data["EscapeStatus"], ctx.Data["WikiContentHTML"], err = renderFn(data, pageFilename)
275283
if err != nil {
276284
ctx.ServerError("Render", err)
277285
return nil, nil

0 commit comments

Comments
 (0)