diff options
Diffstat (limited to 'modules/markup/html.go')
-rw-r--r-- | modules/markup/html.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/modules/markup/html.go b/modules/markup/html.go index 51d161ecca..294b870d8c 100644 --- a/modules/markup/html.go +++ b/modules/markup/html.go @@ -351,6 +351,27 @@ func (ctx *postProcessCtx) visitNode(node *html.Node, visitText bool) { visitText = false } else if node.Data == "code" || node.Data == "pre" { return + } else if node.Data == "i" { + for _, attr := range node.Attr { + if attr.Key != "class" { + continue + } + classes := strings.Split(attr.Val, " ") + for i, class := range classes { + if class == "icon" { + classes[0], classes[i] = classes[i], classes[0] + attr.Val = strings.Join(classes, " ") + + // Remove all children of icons + child := node.FirstChild + for child != nil { + node.RemoveChild(child) + child = node.FirstChild + } + break + } + } + } } for n := node.FirstChild; n != nil; n = n.NextSibling { ctx.visitNode(n, visitText) |