Consolidate the Render funcs
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 10 Jul 2016 09:36:25 +0000 (11:36 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 10 Jul 2016 09:36:25 +0000 (11:36 +0200)
helpers/content.go
helpers/content_test.go
hugolib/page.go

index 709dc8a9758b69d13add8795d91d174c0bb7eecb..204a56104c51ae55008aaf08ea6ca15da24dd824 100644 (file)
@@ -241,16 +241,15 @@ func getMarkdownExtensions(ctx *RenderingContext) int {
 }
 
 func markdownRender(ctx *RenderingContext) []byte {
+       if ctx.RenderTOC {
+               return blackfriday.Markdown(ctx.Content,
+                       getHTMLRenderer(blackfriday.HTML_TOC, ctx),
+                       getMarkdownExtensions(ctx))
+       }
        return blackfriday.Markdown(ctx.Content, getHTMLRenderer(0, ctx),
                getMarkdownExtensions(ctx))
 }
 
-func markdownRenderWithTOC(ctx *RenderingContext) []byte {
-       return blackfriday.Markdown(ctx.Content,
-               getHTMLRenderer(blackfriday.HTML_TOC, ctx),
-               getMarkdownExtensions(ctx))
-}
-
 // getMmarkHTMLRenderer creates a new mmark HTML Renderer with the given configuration.
 func getMmarkHTMLRenderer(defaultFlags int, ctx *RenderingContext) mmark.Renderer {
        renderParameters := mmark.HtmlRendererParameters{
@@ -345,6 +344,7 @@ type RenderingContext struct {
        PageFmt      string
        DocumentID   string
        Config       *Blackfriday
+       RenderTOC    bool
        FileResolver FileResolverFunc
        LinkResolver LinkResolverFunc
        configInit   sync.Once
@@ -359,22 +359,6 @@ func (c *RenderingContext) getConfig() *Blackfriday {
        return c.Config
 }
 
-// RenderBytesWithTOC renders a []byte with table of contents included.
-func RenderBytesWithTOC(ctx *RenderingContext) []byte {
-       switch ctx.PageFmt {
-       default:
-               return markdownRenderWithTOC(ctx)
-       case "markdown":
-               return markdownRenderWithTOC(ctx)
-       case "asciidoc":
-               return []byte(getAsciidocContent(ctx.Content))
-       case "mmark":
-               return mmarkRender(ctx)
-       case "rst":
-               return []byte(getRstContent(ctx.Content))
-       }
-}
-
 // RenderBytes renders a []byte.
 func RenderBytes(ctx *RenderingContext) []byte {
        switch ctx.PageFmt {
index a89b4992e81c44d72cb45893bf594e31ff64a936..8aa645f6be695abfcc2bb36ce1ddd62431e8a1d4 100644 (file)
@@ -289,10 +289,10 @@ func TestGetMarkdownRenderer(t *testing.T) {
 }
 
 func TestGetMarkdownRendererWithTOC(t *testing.T) {
-       ctx := &RenderingContext{}
+       ctx := &RenderingContext{RenderTOC: true}
        ctx.Content = []byte("testContent")
        ctx.Config = ctx.getConfig()
-       actualRenderedMarkdown := markdownRenderWithTOC(ctx)
+       actualRenderedMarkdown := markdownRender(ctx)
        expectedRenderedMarkdown := []byte("<nav>\n</nav>\n\n<p>testContent</p>\n")
        if !bytes.Equal(actualRenderedMarkdown, expectedRenderedMarkdown) {
                t.Errorf("Actual rendered Markdown (%s) did not match expected markdown (%s)", actualRenderedMarkdown, expectedRenderedMarkdown)
index 9616bfbbd1ee2780fc3a685308afc8efba349d87..f64cdf95f9ec97b37f7dd2159f1322efd3a54d31 100644 (file)
@@ -280,7 +280,7 @@ func (p *Page) renderContent(content []byte) []byte {
                        return p.Node.Site.SourceRelativeLinkFile(ref, p)
                }
        }
-       return helpers.RenderBytesWithTOC(&helpers.RenderingContext{Content: content, PageFmt: p.determineMarkupType(),
+       return helpers.RenderBytes(&helpers.RenderingContext{Content: content, RenderTOC: true, PageFmt: p.determineMarkupType(),
                DocumentID: p.UniqueID(), Config: p.getRenderingConfig(), LinkResolver: fn, FileResolver: fileFn})
 }