diff options
Diffstat (limited to 'markup/highlight/highlight_integration_test.go')
-rw-r--r-- | markup/highlight/highlight_integration_test.go | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/markup/highlight/highlight_integration_test.go b/markup/highlight/highlight_integration_test.go new file mode 100644 index 000000000..b53b585c0 --- /dev/null +++ b/markup/highlight/highlight_integration_test.go @@ -0,0 +1,117 @@ +// Copyright 2024 The Hugo Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package highlight_test + +import ( + "testing" + + "github.com/gohugoio/hugo/hugolib" +) + +func TestHighlightInline(t *testing.T) { + t.Parallel() + + files := ` +-- config.toml -- +[markup] +[markup.highlight] +codeFences = true +noClasses = false +-- content/p1.md -- +--- +title: "p1" +--- + +## Inline in Shortcode + +Inline:{{< highlight emacs "hl_inline=true" >}}(message "this highlight shortcode"){{< /highlight >}}:End. +Inline Unknown:{{< highlight foo "hl_inline=true" >}}(message "this highlight shortcode"){{< /highlight >}}:End. + +## Inline in code block + +Not sure if this makes sense, but add a test for it: + +§§§bash {hl_inline=true} +(message "highlight me") +§§§ + +## HighlightCodeBlock in hook + +§§§html +(message "highlight me 2") +§§§ + +## Unknown lexer + +§§§foo {hl_inline=true} +(message "highlight me 3") +§§§ + + +-- layouts/_default/_markup/render-codeblock-html.html -- +{{ $opts := dict "hl_inline" true }} +{{ $result := transform.HighlightCodeBlock . $opts }} +HighlightCodeBlock: Wrapped:{{ $result.Wrapped }}|Inner:{{ $result.Inner }} +-- layouts/_default/single.html -- +{{ .Content }} +` + + b := hugolib.NewIntegrationTestBuilder( + hugolib.IntegrationTestConfig{ + T: t, + TxtarString: files, + NeedsOsFS: false, + }, + ).Build() + + b.AssertFileContent("public/p1/index.html", + "Inline:<code class=\"code-inline language-emacs\"><span class=\"p\">(</span><span class=\"nf\">message</span> <span class=\"s\">"this highlight shortcode"</span><span class=\"p\">)</span></code>:End.", + "Inline Unknown:<code class=\"code-inline language-foo\">(message "this highlight shortcode")</code>:End.", + "Not sure if this makes sense, but add a test for it:</p>\n<code class=\"code-inline language-bash\"><span class=\"o\">(</span>message <span class=\"s2\">"highlight me"</span><span class=\"o\">)</span>\n</code>", + "HighlightCodeBlock: Wrapped:<code class=\"code-inline language-html\">(message "highlight me 2")</code>|Inner:<code class=\"code-inline language-html\">(message "highlight me 2")</code>", + "<code class=\"code-inline language-foo\">(message "highlight me 3")\n</code>", + ) +} + +// Issue #11311 +func TestIssue11311(t *testing.T) { + t.Parallel() + + files := ` +-- config.toml -- +[markup.highlight] +noClasses = false +-- content/_index.md -- +--- +title: home +--- +§§§go +xəx := 0 +§§§ +-- layouts/index.html -- +{{ .Content }} +` + + b := hugolib.NewIntegrationTestBuilder( + hugolib.IntegrationTestConfig{ + T: t, + TxtarString: files, + NeedsOsFS: false, + }, + ).Build() + + b.AssertFileContent("public/index.html", ` + <span class="nx">xəx</span> + `) +} |