summaryrefslogtreecommitdiffstats
path: root/tpl
diff options
context:
space:
mode:
authorJoe Mooring <joe.mooring@veriphor.com>2023-12-03 14:38:49 -0800
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-12-04 11:38:23 +0100
commit4583b4130516dfc97c13b2336740e333bcca66de (patch)
treedbf9e1f6009053f804156819ee40246c66893bcd /tpl
parent507f4e356b8470146e4cfb4d7758af4167251f83 (diff)
tpl/transform: Display Chroma highlighting errors
Closes #9642
Diffstat (limited to 'tpl')
-rw-r--r--tpl/transform/integration_test.go22
-rw-r--r--tpl/transform/transform.go5
2 files changed, 26 insertions, 1 deletions
diff --git a/tpl/transform/integration_test.go b/tpl/transform/integration_test.go
index 9a68b7ff2..3ba65c715 100644
--- a/tpl/transform/integration_test.go
+++ b/tpl/transform/integration_test.go
@@ -16,6 +16,7 @@ package transform_test
import (
"testing"
+ qt "github.com/frankban/quicktest"
"github.com/gohugoio/hugo/hugolib"
)
@@ -85,3 +86,24 @@ a **b** c
<description>&lt;p&gt;a &lt;strong&gt;b&lt;/strong&gt; c&lt;/p&gt;</description>
`)
}
+
+// Issue #9642
+func TestHighlightError(t *testing.T) {
+ t.Parallel()
+
+ files := `
+-- hugo.toml --
+disableKinds = ['page','rss','section','sitemap','taxonomy','term']
+-- layouts/index.html --
+{{ highlight "a" "b" 0 }}
+ `
+ b := hugolib.NewIntegrationTestBuilder(
+ hugolib.IntegrationTestConfig{
+ T: t,
+ TxtarString: files,
+ },
+ )
+
+ _, err := b.BuildE()
+ b.Assert(err.Error(), qt.Contains, "error calling highlight: invalid Highlight option: 0")
+}
diff --git a/tpl/transform/transform.go b/tpl/transform/transform.go
index 178db84e4..8078bc0ce 100644
--- a/tpl/transform/transform.go
+++ b/tpl/transform/transform.go
@@ -79,7 +79,10 @@ func (ns *Namespace) Highlight(s any, lang string, opts ...any) (template.HTML,
}
hl := ns.deps.ContentSpec.Converters.GetHighlighter()
- highlighted, _ := hl.Highlight(ss, lang, optsv)
+ highlighted, err := hl.Highlight(ss, lang, optsv)
+ if err != nil {
+ return "", err
+ }
return template.HTML(highlighted), nil
}