This commit adds a new PygmentsCodeFences config option (default false), which if true will allow GitHub style backtick code fences around code, which will then be rendered by Pygments.
For example:
``` language
your code
```
can be used instead of {{< highlight language >}}your code {{< /highlight >}}.
Fixes #362
viper.SetDefault("PygmentsStyle", "monokai")
viper.SetDefault("DefaultExtension", "html")
viper.SetDefault("PygmentsUseClasses", false)
+ viper.SetDefault("PygmentsCodeFences", false)
viper.SetDefault("DisableLiveReload", false)
viper.SetDefault("PluralizeListTitles", true)
viper.SetDefault("PreserveTaxonomyNames", false)
htmlFlags |= blackfriday.HTML_SMARTYPANTS_LATEX_DASHES
}
- return blackfriday.HtmlRendererWithParameters(htmlFlags, "", "", renderParameters)
+ return &HugoHtmlRenderer{
+ blackfriday.HtmlRendererWithParameters(htmlFlags, "", "", renderParameters),
+ }
}
+
func getMarkdownExtensions(ctx *RenderingContext) int {
flags := 0 | blackfriday.EXTENSION_NO_INTRA_EMPHASIS |
blackfriday.EXTENSION_TABLES | blackfriday.EXTENSION_FENCED_CODE |
--- /dev/null
+package helpers
+
+import (
+ "bytes"
+ "html"
+
+ "github.com/russross/blackfriday"
+ "github.com/spf13/viper"
+)
+
+// Wraps a blackfriday.Renderer, typically a blackfriday.Html
+type HugoHtmlRenderer struct {
+ blackfriday.Renderer
+}
+
+func (renderer *HugoHtmlRenderer) BlockCode(out *bytes.Buffer, text []byte, lang string) {
+ if viper.GetBool("PygmentsCodeFences") {
+ str := html.UnescapeString(string(text))
+ out.WriteString(Highlight(str, lang, ""))
+ } else {
+ renderer.Renderer.BlockCode(out, text, lang)
+ }
+}