From 2ce4f5d8f6871482bc1f26dcc04759c8c2fe2562 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sun, 11 Jul 2021 23:15:08 +0200 Subject: [PATCH 1/3] fix external renderer --- routers/web/repo/view.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index cf076bdf1a839..21bd80c406673 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -336,6 +336,7 @@ func renderDirectory(ctx *context.Context, treeLink string) { ctx.Data["MarkupType"] = string(markupType) var result strings.Builder err := markup.Render(&markup.RenderContext{ + Ctx: ctx, Filename: readmeFile.name, URLPrefix: readmeTreelink, Metas: ctx.Repo.Repository.ComposeDocumentMetas(), @@ -511,6 +512,7 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st ctx.Data["MarkupType"] = markupType var result strings.Builder err := markup.Render(&markup.RenderContext{ + Ctx: ctx, Filename: blob.Name(), URLPrefix: path.Dir(treeLink), Metas: ctx.Repo.Repository.ComposeDocumentMetas(), @@ -570,6 +572,7 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st ctx.Data["MarkupType"] = markupType var result strings.Builder err := markup.Render(&markup.RenderContext{ + Ctx: ctx, Filename: blob.Name(), URLPrefix: path.Dir(treeLink), Metas: ctx.Repo.Repository.ComposeDocumentMetas(), From 8d170397af2ee01c67813790e3a26c966e135d1d Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sun, 11 Jul 2021 23:15:22 +0200 Subject: [PATCH 2/3] use GBackground context as fallback --- modules/markup/external/external.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/markup/external/external.go b/modules/markup/external/external.go index e35a1b99c0fd8..e2809bb459e79 100644 --- a/modules/markup/external/external.go +++ b/modules/markup/external/external.go @@ -98,7 +98,14 @@ func (p *Renderer) Render(ctx *markup.RenderContext, input io.Reader, output io. args = append(args, f.Name()) } - processCtx, cancel := context.WithCancel(ctx.Ctx) + parentCtx := context.Background() + if ctx != nil && ctx.Ctx != nil { + parentCtx = ctx.Ctx + } else { + log.Error("RenderContext did not provide context)") + } + + processCtx, cancel := context.WithCancel(parentCtx) defer cancel() pid := process.GetManager().Add(fmt.Sprintf("Render [%s] for %s", commands[0], ctx.URLPrefix), cancel) From 0c984ccec810fe48b1fb571c84257ee54061908d Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sun, 11 Jul 2021 23:27:35 +0200 Subject: [PATCH 3/3] no fallback, return error --- modules/markup/external/external.go | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/modules/markup/external/external.go b/modules/markup/external/external.go index e2809bb459e79..52139f5a49c3c 100644 --- a/modules/markup/external/external.go +++ b/modules/markup/external/external.go @@ -98,14 +98,11 @@ func (p *Renderer) Render(ctx *markup.RenderContext, input io.Reader, output io. args = append(args, f.Name()) } - parentCtx := context.Background() - if ctx != nil && ctx.Ctx != nil { - parentCtx = ctx.Ctx - } else { - log.Error("RenderContext did not provide context)") + if ctx == nil || ctx.Ctx == nil { + return fmt.Errorf("RenderContext did not provide context") } - processCtx, cancel := context.WithCancel(parentCtx) + processCtx, cancel := context.WithCancel(ctx.Ctx) defer cancel() pid := process.GetManager().Add(fmt.Sprintf("Render [%s] for %s", commands[0], ctx.URLPrefix), cancel)