Skip to content

Commit 5bc3b3c

Browse files
committed
🐛 Fix Code block syntax highlighting issue https://ld246.com/article/1742670873034
1 parent 17588eb commit 5bc3b3c

6 files changed

+48
-48
lines changed

javascript/lute.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

javascript/lute.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

render/code_block_html_render.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ func (r *HtmlRenderer) renderCodeBlockCode(node *ast.Node, entering bool) ast.Wa
123123
if r.Options.CodeSyntaxHighlightDetectLang {
124124
language := detectLanguage(tokens)
125125
if "" != language {
126-
r.WriteString("<code class=\"language-" + language)
126+
r.WriteString("<code class=\"language-" + language + "\">")
127127
} else {
128128
r.WriteString("<code>")
129129
}

test/code_syntax_highlight_detect_lang_test.go

-45
This file was deleted.

test/code_syntax_highlight_test.go

+44
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,50 @@ import (
1818
"github.com/88250/lute"
1919
)
2020

21+
func TestCodeSyntaxHighlightDetectLang(t *testing.T) {
22+
// 围栏代码块自动探测语言 https://github.com/88250/lute/issues/22
23+
24+
luteEngine := lute.New()
25+
luteEngine.SetCodeSyntaxHighlightDetectLang(true)
26+
for _, test := range issue22Tests {
27+
html := luteEngine.MarkdownStr(test.name, test.from)
28+
if test.to != html {
29+
t.Fatalf("test case [%s] failed\nexpected\n\t%q\ngot\n\t%q\noriginal markdown text\n\t%q", test.name, test.to, html, test.from)
30+
}
31+
}
32+
}
33+
34+
var issue22Tests = []parseTest{
35+
{"0", issue22Case0[0], issue22Case0[1]},
36+
}
37+
38+
var issue22Case0 = []string{
39+
"```" + `
40+
package lute
41+
42+
func test() {
43+
return
44+
}
45+
` + "```",
46+
"<pre><code class=\"language-go highlight-chroma\"><span class=\"highlight-line\"><span class=\"highlight-cl\"><span class=\"highlight-kn\">package</span> <span class=\"highlight-nx\">lute</span>\n</span></span><span class=\"highlight-line\"><span class=\"highlight-cl\">\n</span></span><span class=\"highlight-line\"><span class=\"highlight-cl\"><span class=\"highlight-kd\">func</span> <span class=\"highlight-nf\">test</span><span class=\"highlight-p\">()</span> <span class=\"highlight-p\">{</span>\n</span></span><span class=\"highlight-line\"><span class=\"highlight-cl\">\t<span class=\"highlight-k\">return</span>\n</span></span><span class=\"highlight-line\"><span class=\"highlight-cl\"><span class=\"highlight-p\">}</span>\n</span></span></code></pre>\n",
47+
}
48+
49+
func TestCodeSyntaxHighlightDetectLang1(t *testing.T) {
50+
luteEngine := lute.New()
51+
luteEngine.SetCodeSyntaxHighlight(false)
52+
luteEngine.SetCodeSyntaxHighlightDetectLang(true)
53+
for _, test := range codeSyntaxHighlightDetectLang1Tests {
54+
html := luteEngine.MarkdownStr(test.name, test.from)
55+
if test.to != html {
56+
t.Fatalf("test case [%s] failed\nexpected\n\t%q\ngot\n\t%q\noriginal markdown text\n\t%q", test.name, test.to, html, test.from)
57+
}
58+
}
59+
}
60+
61+
var codeSyntaxHighlightDetectLang1Tests = []parseTest{
62+
{"0", "```\nmysql> SELECT * FROM `test_table`;\n```\n", "<pre><code class=\"language-mysql\">mysql&gt; SELECT * FROM `test_table`;\n</code></pre>\n"},
63+
}
64+
2165
func TestCodeSyntaxHighlightIssue17(t *testing.T) {
2266
// 语法高亮支持内联样式 https://github.com/b3log/lute/issues/17
2367

test/debug_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ var debugTests = []parseTest{
136136

137137
func TestDebug(t *testing.T) {
138138
luteEngine := lute.New()
139+
luteEngine.SetCodeSyntaxHighlightDetectLang(true)
139140
luteEngine.SetHeadingID(true)
140141
for _, test := range debugTests {
141142
html := luteEngine.MarkdownStr(test.name, test.from)

0 commit comments

Comments
 (0)