hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 766c82a6bbf4423a037beb2b1967f720080e4658
parent 9f9b93af2c379b10d2d5c514cfe5f0658795b9bb
Author: C. Hoeppler <hoeppler@gmx.net>
Date:   Thu, 13 Oct 2016 10:30:43 +0200

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

Diffstat:
Mhelpers/content.go | 8+++++---
Mhugolib/page.go | 3++-
Mhugolib/shortcode.go | 4+++-
3 files changed, 10 insertions(+), 5 deletions(-)
diff --git 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, "<stdin>", ctx.DocumentName, 1))
 		}
 	}
 	if err != nil {
diff --git 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
@@ -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