如何创建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>
答案 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>
}