Go 템플릿에 HTML 삽입
Go 템플릿으로 작업할 때 예기치 않은 동작을 피하기 위해 HTML 콘텐츠를 삽입하는 방법을 고려하는 것이 중요합니다. 예를 들어 HTML 코드가 포함된 문자열을 삽입하면 원치 않는 문자 이스케이프가 발생하여 잘못된 출력이 발생할 수 있습니다.
Go 템플릿에서 HTML 삽입을 올바르게 처리하려면 다음 지침을 따르세요.
통과 HTML을 template.HTML로 사용:
문자열을 직접 전달하는 대신 HTML 콘텐츠를 template.HTML 유형으로 래핑하세요. 이는 템플릿 엔진이 콘텐츠를 원시 HTML로 처리하여 이스케이프 문자를 방지하도록 지시합니다.
예:
<code class="go">tpl := template.Must(template.New("main").Parse(`{{define "T"}}{{.Html}}{{.String}}{{end}}`)) tplVars := map[string]interface{} { "Html": template.HTML("<p>Paragraph</p>"), "String": "<p>Paragraph</p>", } tpl.ExecuteTemplate(os.Stdout, "T", tplVars) //OUTPUT: <p>Paragraph</p>&lt;p&gt;Paragraph&lt;/p&gt;</code>
문자열 전달 방지:
HTML 콘텐츠를 문자열로 전달하면 원치 않는 이스케이프가 발생할 수 있습니다. 예:
<code class="go">tpl := template.Must(template.New("main").Parse(`{{define "T"}}{{.Html}}<p>{{.String}}</p>{{end}}`)) tplVars := map[string]interface{} { "Html": "<p>Paragraph</p>", "String": "<p>Paragraph</p>", } tpl.ExecuteTemplate(os.Stdout, "T", tplVars) //OUTPUT: <p>Paragraph</p>&lt;p&gt;Paragraph&lt;/p&gt;</code>
JSON 데이터:
JSON 데이터를 템플릿에 삽입하는 경우 인코딩/json과 같은 라이브러리를 사용하여 인코딩할 수 있습니다. 문자열로. 그런 다음 인코딩된 문자열을 템플릿에 전달하고 json 템플릿 함수를 사용하여 템플릿 내에서 디코딩할 수 있습니다.
위 내용은 이스케이프 없이 Go 템플릿에 HTML을 어떻게 삽입할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!