Merge pull request #387 from n-peugnet/mangled-lines

Fix mangled newlines in some code blocks
This commit is contained in:
Tulir Asokan 2022-10-21 23:15:25 +03:00 committed by GitHub
commit 99a5c7caed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -305,28 +305,22 @@ func (parser *htmlParser) syntaxHighlight(text, language string) Entity {
var children []Entity var children []Entity
for _, token := range tokens { for _, token := range tokens {
if token.Value == "\n" { lines := strings.SplitAfter(token.Value, "\n")
children = append(children, NewBreakEntity()) for _, line := range lines {
line_len := len(line)
} else if token.Type.String() == "CommentSingle" { if line_len == 0 {
children = append(children, tokenToTextEntity(style, &token)) continue
children = append(children, NewBreakEntity()) }
} else if token.Type.String() == "CommentMultiline" {
lines := strings.Split(token.Value, "\n")
for i, line := range lines {
t := token.Clone() t := token.Clone()
if line[line_len-1:] == "\n" {
t.Value = line[:line_len-1]
children = append(children, tokenToTextEntity(style, &t), NewBreakEntity())
} else {
t.Value = line t.Value = line
children = append(children, tokenToTextEntity(style, &t)) children = append(children, tokenToTextEntity(style, &t))
if i < len(lines)-1 {
children = append(children, NewBreakEntity())
} }
} }
} else {
children = append(children, tokenToTextEntity(style, &token))
}
} }
return NewCodeBlockEntity(children, styleEntryToStyle(style.Get(chroma.Background))) return NewCodeBlockEntity(children, styleEntryToStyle(style.Get(chroma.Background)))