mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
tpl: Add highlight test
This commit is contained in:
parent
0a8583a451
commit
4dcb63c2f6
2 changed files with 27 additions and 7 deletions
|
@ -1132,15 +1132,14 @@ func returnWhenSet(a, k interface{}) interface{} {
|
|||
}
|
||||
|
||||
// highlight returns an HTML string with syntax highlighting applied.
|
||||
func highlight(in interface{}, lang, opts string) template.HTML {
|
||||
var str string
|
||||
av := reflect.ValueOf(in)
|
||||
switch av.Kind() {
|
||||
case reflect.String:
|
||||
str = av.String()
|
||||
func highlight(in interface{}, lang, opts string) (template.HTML, error) {
|
||||
str, err := cast.ToStringE(in)
|
||||
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return template.HTML(helpers.Highlight(html.UnescapeString(str), lang, opts))
|
||||
return template.HTML(helpers.Highlight(html.UnescapeString(str), lang, opts)), nil
|
||||
}
|
||||
|
||||
var markdownTrimPrefix = []byte("<p>")
|
||||
|
|
|
@ -25,6 +25,7 @@ import (
|
|||
"path"
|
||||
"reflect"
|
||||
"runtime"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
@ -1533,6 +1534,26 @@ func TestChomp(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestHighlight(t *testing.T) {
|
||||
code := "func boo() {}"
|
||||
highlighted, err := highlight(code, "go", "")
|
||||
|
||||
if err != nil {
|
||||
t.Fatal("Highlight returned error:", err)
|
||||
}
|
||||
|
||||
// this depends on a Pygments installation, but will always contain the function name.
|
||||
if !strings.Contains(string(highlighted), "boo") {
|
||||
t.Errorf("Highlight mismatch, got %v", highlighted)
|
||||
}
|
||||
|
||||
_, err = highlight(t, "go", "")
|
||||
|
||||
if err == nil {
|
||||
t.Error("Expected highlight error")
|
||||
}
|
||||
}
|
||||
|
||||
func TestInflect(t *testing.T) {
|
||||
for i, this := range []struct {
|
||||
inflectFunc func(i interface{}) (string, error)
|
||||
|
|
Loading…
Reference in a new issue