tpl/transform: Add CanHighlight - hugo - [fork] hugo port for 9front
HTML git clone git@git.drkhsh.at/hugo.git
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
DIR LICENSE
---
DIR commit 39261b689e47116de5cfd3bee6b6e3af57deb97c
DIR parent cff14144a6306b9a60c4fc56d1dce17f0b3778e9
HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Sun, 27 Feb 2022 17:09:11 +0100
tpl/transform: Add CanHighlight
Closes #9573
Diffstat:
M tpl/transform/transform.go | 6 ++++++
M tpl/transform/transform_test.go | 10 ++++++++++
2 files changed, 16 insertions(+), 0 deletions(-)
---
DIR diff --git a/tpl/transform/transform.go b/tpl/transform/transform.go
@@ -18,6 +18,7 @@ import (
"html"
"html/template"
+ "github.com/alecthomas/chroma/lexers"
"github.com/gohugoio/hugo/cache/namedmemcache"
"github.com/gohugoio/hugo/common/herrors"
"github.com/gohugoio/hugo/markup/converter/hooks"
@@ -90,6 +91,11 @@ func (ns *Namespace) HighlightCodeBlock(ctx hooks.CodeblockContext, opts ...inte
return hl.HighlightCodeBlock(ctx, optsv)
}
+// CanHighlight returns whether the given language is supported by the Chroma highlighter.
+func (ns *Namespace) CanHighlight(lang string) bool {
+ return lexers.Get(lang) != nil
+}
+
// HTMLEscape returns a copy of s with reserved HTML characters escaped.
func (ns *Namespace) HTMLEscape(s interface{}) (string, error) {
ss, err := cast.ToStringE(s)
DIR diff --git a/tpl/transform/transform_test.go b/tpl/transform/transform_test.go
@@ -95,6 +95,16 @@ func TestHighlight(t *testing.T) {
}
}
+func TestCanHighlight(t *testing.T) {
+ t.Parallel()
+
+ c := qt.New(t)
+ ns := &transform.Namespace{}
+
+ c.Assert(ns.CanHighlight("go"), qt.Equals, true)
+ c.Assert(ns.CanHighlight("foo"), qt.Equals, false)
+}
+
func TestHTMLEscape(t *testing.T) {
t.Parallel()
b := hugolib.NewIntegrationTestBuilder(