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

Max*_*mov 6 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
}
Run Code Online (Sandbox Code Playgroud)

输出:

<li>
                        <a>Hello</a>
                    </li>
Run Code Online (Sandbox Code Playgroud)

但我希望它是

<li><a>Hello</a></li>
Run Code Online (Sandbox Code Playgroud)

操场

Von*_*onC 10

您的示例可能只涉及删除空格,但缩小html比这更复杂(例如,您不希望删除实际上重要的空格,例如在字符串中).

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


Max*_*mov 5

我用过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>
}
Run Code Online (Sandbox Code Playgroud)

  • 该代码目前不起作用。库可能会更新。 (3认同)