Skip to content

Commit 8a74dca

Browse files
committed
Really fix empty line rendering
Followup to go-gitea#19798. Trim off both the .line and .cl classes from Chroma's HTML which made the old conditional work again. This fixed Copy of YAML files for me.
1 parent 460c03c commit 8a74dca

File tree

2 files changed

+33
-29
lines changed

2 files changed

+33
-29
lines changed

modules/highlight/highlight.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -198,16 +198,18 @@ func File(numLines int, fileName, language string, code []byte) []string {
198198
m := make([]string, 0, numLines)
199199
for _, v := range strings.SplitN(htmlbuf.String(), "\n", numLines) {
200200
content := string(v)
201+
202+
// remove useless wrapper nodes
203+
content = strings.Replace(content, "<span class=\"line\"><span class=\"cl\">", "", 1)
204+
content = strings.TrimPrefix(content, `</span></span>`)
205+
201206
// need to keep lines that are only \n so copy/paste works properly in browser
202207
if content == "" {
203208
content = "\n"
204209
} else if content == `</span><span class="w">` {
205-
content += "\n</span>"
206-
} else if content == `</span></span><span class="line"><span class="cl">` {
207210
content += "\n"
208211
}
209-
content = strings.TrimSuffix(content, `<span class="w">`)
210-
content = strings.TrimPrefix(content, `</span>`)
212+
211213
m = append(m, content)
212214
}
213215
if finalNewLine {

modules/highlight/highlight_test.go

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,19 @@ func TestFile(t *testing.T) {
4343
- go test -v -race -coverprofile=coverage.txt -covermode=atomic
4444
`),
4545
want: util.Dedent(`
46-
<span class="line"><span class="cl"><span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l">pipeline</span>
47-
</span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">default</span>
48-
</span></span><span class="line"><span class="cl">
49-
</span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">steps</span><span class="p">:</span>
50-
</span></span><span class="line"><span class="cl"><span class="w"></span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">test</span>
51-
</span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l">golang:1.13</span>
52-
</span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">environment</span><span class="p">:</span>
53-
</span></span><span class="line"><span class="cl"><span class="w"></span><span class="w"> </span><span class="nt">GOPROXY</span><span class="p">:</span><span class="w"> </span><span class="l">https://goproxy.cn</span>
54-
</span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">commands</span><span class="p">:</span>
55-
</span></span><span class="line"><span class="cl"><span class="w"></span><span class="w"> </span>- <span class="l">go get -u</span>
56-
</span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">go build -v</span>
57-
</span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">go test -v -race -coverprofile=coverage.txt -covermode=atomic</span></span></span>
46+
<span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l">pipeline</span><span class="w">
47+
</span><span class="w"></span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">default</span><span class="w">
48+
</span><span class="w">
49+
50+
</span><span class="w"></span><span class="nt">steps</span><span class="p">:</span><span class="w">
51+
</span><span class="w"></span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">test</span><span class="w">
52+
</span><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l">golang:1.13</span><span class="w">
53+
</span><span class="w"> </span><span class="nt">environment</span><span class="p">:</span><span class="w">
54+
</span><span class="w"></span><span class="w"> </span><span class="nt">GOPROXY</span><span class="p">:</span><span class="w"> </span><span class="l">https://goproxy.cn</span><span class="w">
55+
</span><span class="w"> </span><span class="nt">commands</span><span class="p">:</span><span class="w">
56+
</span><span class="w"></span><span class="w"> </span>- <span class="l">go get -u</span><span class="w">
57+
</span><span class="w"> </span>- <span class="l">go build -v</span><span class="w">
58+
</span><span class="w"> </span>- <span class="l">go test -v -race -coverprofile=coverage.txt -covermode=atomic</span></span></span>
5859
`),
5960
},
6061
{
@@ -76,19 +77,20 @@ func TestFile(t *testing.T) {
7677
- go test -v -race -coverprofile=coverage.txt -covermode=atomic
7778
`)+"\n", "name: default", "name: default ", 1),
7879
want: util.Dedent(`
79-
<span class="line"><span class="cl"><span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l">pipeline</span>
80-
</span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">default </span>
81-
</span></span><span class="line"><span class="cl">
82-
</span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">steps</span><span class="p">:</span>
83-
</span></span><span class="line"><span class="cl"><span class="w"></span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">test</span>
84-
</span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l">golang:1.13</span>
85-
</span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">environment</span><span class="p">:</span>
86-
</span></span><span class="line"><span class="cl"><span class="w"></span><span class="w"> </span><span class="nt">GOPROXY</span><span class="p">:</span><span class="w"> </span><span class="l">https://goproxy.cn</span>
87-
</span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">commands</span><span class="p">:</span>
88-
</span></span><span class="line"><span class="cl"><span class="w"></span><span class="w"> </span>- <span class="l">go get -u</span>
89-
</span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">go build -v</span>
90-
</span></span><span class="line"><span class="cl"><span class="w"> </span>- <span class="l">go test -v -race -coverprofile=coverage.txt -covermode=atomic</span>
91-
</span></span>
80+
<span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l">pipeline</span><span class="w">
81+
</span><span class="w"></span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">default </span><span class="w">
82+
</span><span class="w">
83+
84+
</span><span class="w"></span><span class="nt">steps</span><span class="p">:</span><span class="w">
85+
</span><span class="w"></span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">test</span><span class="w">
86+
</span><span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l">golang:1.13</span><span class="w">
87+
</span><span class="w"> </span><span class="nt">environment</span><span class="p">:</span><span class="w">
88+
</span><span class="w"></span><span class="w"> </span><span class="nt">GOPROXY</span><span class="p">:</span><span class="w"> </span><span class="l">https://goproxy.cn</span><span class="w">
89+
</span><span class="w"> </span><span class="nt">commands</span><span class="p">:</span><span class="w">
90+
</span><span class="w"></span><span class="w"> </span>- <span class="l">go get -u</span><span class="w">
91+
</span><span class="w"> </span>- <span class="l">go build -v</span><span class="w">
92+
</span><span class="w"> </span>- <span class="l">go test -v -race -coverprofile=coverage.txt -covermode=atomic</span><span class="w">
93+
</span>
9294
<span class="w">
9395
</span>
9496
`),

0 commit comments

Comments
 (0)