shithub: hugo

Download patch

ref: 2194cc77de3bcfc0107d8e8284781f9f7b31c5c2
parent: 5df0cf7ecac3240c57fd2d3b3cf3f4eb9c966dc4
author: LK4D4 <[email protected]>
date: Wed May 7 16:38:14 EDT 2014

Add pygmentsstyle and pygmentsuseclasses options

Fixes #204

Conflicts:
	commands/hugo.go

--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -110,6 +110,8 @@
 	viper.SetDefault("Indexes", map[string]string{"tag": "tags", "category": "categories"})
 	viper.SetDefault("Permalinks", make(hugolib.PermalinkOverrides, 0))
 	viper.SetDefault("Sitemap", hugolib.Sitemap{Priority: -1})
+	viper.SetDefault("PygmentsStyle", "monokai")
+	viper.SetDefault("PygmentsUseClasses", false)
 
 	if hugoCmdV.PersistentFlags().Lookup("build-drafts").Changed {
 		viper.Set("BuildDrafts", Draft)
@@ -134,7 +136,6 @@
 	if hugoCmdV.PersistentFlags().Lookup("logfile").Changed {
 		viper.Set("LogFile", LogFile)
 	}
-
 	if BaseUrl != "" {
 		if !strings.HasSuffix(BaseUrl, "/") {
 			BaseUrl = BaseUrl + "/"
--- a/docs/content/extras/highlighting.md
+++ b/docs/content/extras/highlighting.md
@@ -27,13 +27,13 @@
  * **Warning** pygments is relatively slow and our integration isn't
 as optimized as it could be. Expect much longer build times when using server side highlighting.
  * Languages available depends on your pygments installation.
- * While pygments supports a few different output formats and options we currently
-only support output=html, style=monokai, noclasses=true, and encoding=utf-8.
  * Styles are inline in order to be supported in syndicated content when references
 to style sheets are not carried over.
  * We have sought to have the simplest interface possible, which consequently
 limits configuration. An ambitious user is encouraged to extend the current
 functionality to offer more customization.
+* You can change appearance with config options `pygmentsstyle`(default
+`"monokai"`) and `pygmentsuseclasses`(defaut `false`).
 
 ### Usage
 Highlight takes exactly one required parameter of language and requires a
--- a/helpers/pygments.go
+++ b/helpers/pygments.go
@@ -15,10 +15,12 @@
 
 import (
 	"bytes"
+	"fmt"
 	"os/exec"
 	"strings"
 
 	jww "github.com/spf13/jwalterweatherman"
+	"github.com/spf13/viper"
 )
 
 func Highlight(code string, lexer string) string {
@@ -32,8 +34,15 @@
 
 	var out bytes.Buffer
 	var stderr bytes.Buffer
+	style := viper.GetString("PygmentsStyle")
 
-	cmd := exec.Command(pygmentsBin, "-l"+lexer, "-fhtml", "-O style=monokai,noclasses=true,encoding=utf-8")
+	noclasses := "true"
+	if viper.GetBool("PygmentsUseClasses") {
+		noclasses = "false"
+	}
+
+	cmd := exec.Command(pygmentsBin, "-l"+lexer, "-fhtml", "-O",
+		fmt.Sprintf("style=%s,noclasses=%s,encoding=utf8", style, noclasses))
 	cmd.Stdin = strings.NewReader(code)
 	cmd.Stdout = &out
 	cmd.Stderr = &stderr