在golang中缩小html以删除多余的空格和下一行字符

时间:2014-12-20 05:43:11

标签: go

如何创建html minifier?

package main

import (
    "fmt"
)

func HtmlMinify(html string) string {
    // todo: minify html
    return html
}

func main() {

    htmlExample := `<li>
                        <a>Hello</a>
                    </li>`
    minifiedHtml := HtmlMinify(htmlExample)
    fmt.Println(minifiedHtml) //  `<li><a>Hello</a></li>` is wanted
}

输出:

<li>
                        <a>Hello</a>
                    </li>

但我希望它是

<li><a>Hello</a></li>

playground

2 个答案:

答案 0 :(得分:10)

你的例子可能只涉及删除空格,但缩小html比这更复杂(例如,你不想删除实际上重要的空格,比如在字符串中)。

您可以在以下位置查看示例:

答案 1 :(得分:6)

我使用tdewolff/minify

package main

import (
    "bytes"
    "fmt"
    "github.com/tdewolff/minify"
)

func HtmlMinify(html string) string {
    m := minify.NewMinifierDefault()
    b := &bytes.Buffer{}
    if err := m.HTML(b, bytes.NewBufferString(html)); err != nil {
        panic(err)
    }
    return b.String()
}

func main() {

    htmlExample := `<li>
                        <a>Hello</a>
                    </li>`
    minifiedHtml := HtmlMinify(htmlExample)
    fmt.Println(minifiedHtml) //  <li><a>Hello</a>
}