diff options
Diffstat (limited to 'helpers/content_renderer.go')
-rw-r--r-- | helpers/content_renderer.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/helpers/content_renderer.go b/helpers/content_renderer.go index bb5b810ae..77db6833c 100644 --- a/helpers/content_renderer.go +++ b/helpers/content_renderer.go @@ -6,9 +6,11 @@ import ( "github.com/russross/blackfriday" "github.com/spf13/viper" + "github.com/miekg/mmark" ) // Wraps a blackfriday.Renderer, typically a blackfriday.Html +// Enabling Hugo to customise the rendering experience type HugoHtmlRenderer struct { blackfriday.Renderer } @@ -21,3 +23,18 @@ func (renderer *HugoHtmlRenderer) BlockCode(out *bytes.Buffer, text []byte, lang renderer.Renderer.BlockCode(out, text, lang) } } + +// Wraps a mmark.Renderer, typically a mmark.html +// Enabling Hugo to customise the rendering experience +type HugoMmarkHtmlRenderer struct { + mmark.Renderer +} + +func (renderer *HugoMmarkHtmlRenderer) BlockCode(out *bytes.Buffer, text []byte, lang string, caption []byte, subfigure bool, callouts bool) { + if viper.GetBool("PygmentsCodeFences") { + str := html.UnescapeString(string(text)) + out.WriteString(Highlight(str, lang, "")) + } else { + renderer.Renderer.BlockCode(out, text, lang, caption, subfigure, callouts) + } +} |