2014-12-20 1 views
4

html minifier 만드는 방법은 무엇입니까?golang에서 html을 사용하여 여분의 공백과 다음 줄 문자를 삭제하십시오.

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

+0

을 참조, [HTTP 미들웨어 축소] (http s : //github.com/jeevatkm/middleware) [tdewolff/minify] (https://github.com/tdewolff/minify)를 사용하여 – jeevatkm

답변

9

귀하의 예는 단순히 공간을 제거하지만, HTML을 축소 조금 더 복잡 포함 할 수있다 그것보다 (예를 들어, 당신은 실제로 중요한 곳에 공백을 제거하고 싶지 않다. n 문자열).

당신은 예에서 볼 수

:

4

나는 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> 
} 
+0

좋은 의견. +1 – VonC

+1

아직 tdewolff/minify 작업 중이므로 가까운 시일 내에 개선 될 것으로 기대됩니다! 나는 그것을 철저히 시험하지만, 어떤 이상이 발생하면 알려주십시오. –

관련 문제