From 766c82a6bbf4423a037beb2b1967f720080e4658 Mon Sep 17 00:00:00 2001 From: "C. Hoeppler" Date: Thu, 13 Oct 2016 10:30:43 +0200 Subject: [PATCH] Add context to asciidoc/-tor error logging Add DocumentName (path to the file being rendered) to RenderingContext and use that information to include the path in the error print. See #2399 Closes #2567 --- helpers/content.go | 8 +++++--- hugolib/page.go | 3 ++- hugolib/shortcode.go | 4 +++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/helpers/content.go b/helpers/content.go index f2909f208..516fc72b9 100644 --- a/helpers/content.go +++ b/helpers/content.go @@ -354,6 +354,7 @@ type RenderingContext struct { Content []byte PageFmt string DocumentID string + DocumentName string Config *Blackfriday RenderTOC bool FileResolver FileResolverFunc @@ -383,7 +384,7 @@ func RenderBytes(ctx *RenderingContext) []byte { case "markdown": return markdownRender(ctx) case "asciidoc": - return getAsciidocContent(ctx.Content) + return getAsciidocContent(ctx) case "mmark": return mmarkRender(ctx) case "rst": @@ -533,7 +534,8 @@ func HasAsciidoc() bool { // getAsciidocContent calls asciidoctor or asciidoc as an external helper // to convert AsciiDoc content to HTML. -func getAsciidocContent(content []byte) []byte { +func getAsciidocContent(ctx *RenderingContext) []byte { + content := ctx.Content cleanContent := bytes.Replace(content, SummaryDivider, []byte(""), 1) path := getAsciidocExecPath() @@ -555,7 +557,7 @@ func getAsciidocContent(content []byte) []byte { for _, item := range strings.Split(string(cmderr.Bytes()), "\n") { item := strings.TrimSpace(item) if item != "" { - jww.ERROR.Println(item) + jww.ERROR.Println(strings.Replace(item, "", ctx.DocumentName, 1)) } } if err != nil { diff --git a/hugolib/page.go b/hugolib/page.go index abd56b3ea..d2205e32f 100644 --- a/hugolib/page.go +++ b/hugolib/page.go @@ -380,7 +380,8 @@ func (p *Page) renderContent(content []byte) []byte { return helpers.RenderBytes(&helpers.RenderingContext{ Content: content, RenderTOC: true, PageFmt: p.determineMarkupType(), ConfigProvider: p.Language(), - DocumentID: p.UniqueID(), Config: p.getRenderingConfig(), LinkResolver: fn, FileResolver: fileFn}) + DocumentID: p.UniqueID(), DocumentName: p.Path(), + Config: p.getRenderingConfig(), LinkResolver: fn, FileResolver: fileFn}) } func (p *Page) getRenderingConfig() *helpers.Blackfriday { diff --git a/hugolib/shortcode.go b/hugolib/shortcode.go index 88c06baf5..0b583b753 100644 --- a/hugolib/shortcode.go +++ b/hugolib/shortcode.go @@ -243,7 +243,9 @@ func renderShortcode(sc shortcode, parent *ShortcodeWithPage, p *Page, t tpl.Tem newInner := helpers.RenderBytes(&helpers.RenderingContext{ Content: []byte(inner), PageFmt: p.determineMarkupType(), ConfigProvider: p.Language(), - DocumentID: p.UniqueID(), Config: p.getRenderingConfig()}) + DocumentID: p.UniqueID(), + DocumentName: p.Path(), + Config: p.getRenderingConfig()}) // If the type is “unknown” or “markdown”, we assume the markdown // generation has been performed. Given the input: `a line`, markdown