From ee769f7459ffba310563cd735f503d3d7576da60 Mon Sep 17 00:00:00 2001 From: Gusted Date: Sun, 10 Apr 2022 17:01:35 +0200 Subject: [PATCH] Add logic to switch between source/rendered on Markdown (#19356) Adds a button to switch between the source blob and the rendered markdown. --- routers/web/repo/view.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index 7fc178cf31164..0faa01d573ce0 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -489,9 +489,17 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st } rd := charset.ToUTF8WithFallbackReader(io.MultiReader(bytes.NewReader(buf), dataRc)) + + shouldRenderSource := ctx.FormString("display") == "source" readmeExist := markup.IsReadmeFile(blob.Name()) ctx.Data["ReadmeExist"] = readmeExist - if markupType := markup.Type(blob.Name()); markupType != "" { + + markupType := markup.Type(blob.Name()) + if markupType != "" { + ctx.Data["HasSourceRenderedToggle"] = true + } + + if markupType != "" && !shouldRenderSource { ctx.Data["IsMarkup"] = true ctx.Data["MarkupType"] = markupType var result strings.Builder @@ -507,7 +515,7 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st return } ctx.Data["EscapeStatus"], ctx.Data["FileContent"] = charset.EscapeControlString(result.String()) - } else if readmeExist { + } else if readmeExist && !shouldRenderSource { buf := &bytes.Buffer{} ctx.Data["IsRenderedHTML"] = true