From 895ff49a9efc7caac0bcd10e7758985915f1661e Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 21 Mar 2013 01:17:28 -0400 Subject: [PATCH 1/3] add func html2str() --- template.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/template.go b/template.go index 2a98dc52..bd462150 100644 --- a/template.go +++ b/template.go @@ -54,6 +54,33 @@ func Substr(s string, start, length int) string { return string(bt[start:end]) } +// Html2str() returns escaping text convert from html +func Html2str(html string) string { + src := string(html) + + //将HTML标签全转换成小写 + re, _ := regexp.Compile("\\<[\\S\\s]+?\\>") + src = re.ReplaceAllStringFunc(src, strings.ToLower) + + //去除STYLE + re, _ = regexp.Compile("\\") + src = re.ReplaceAllString(src, "") + + //去除SCRIPT + re, _ = regexp.Compile("\\") + src = re.ReplaceAllString(src, "") + + //去除所有尖括号内的HTML代码,并换成换行符 + re, _ = regexp.Compile("\\<[\\S\\s]+?\\>") + src = re.ReplaceAllString(src, "\n") + + //去除连续的换行符 + re, _ = regexp.Compile("\\s{2,}") + src = re.ReplaceAllString(src, "\n") + + return strings.TrimSpace(src) +} + // DateFormat takes a time and a layout string and returns a string with the formatted date. Used by the template parser as "dateformat" func DateFormat(t time.Time, layout string) (datestring string) { datestring = t.Format(layout) From 73a52c98440eed38882afb8bb106480c642a56c5 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 21 Mar 2013 01:18:39 -0400 Subject: [PATCH 2/3] add func Html2str() --- template.go | 1 + 1 file changed, 1 insertion(+) diff --git a/template.go b/template.go index bd462150..ed21ccda 100644 --- a/template.go +++ b/template.go @@ -10,6 +10,7 @@ import ( "os" "path" "path/filepath" + "regexp" "strings" "time" ) From 63d8881f4d3fad646e6de760ba10e7ce76926c1c Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 21 Mar 2013 01:21:04 -0400 Subject: [PATCH 3/3] add func Html2str() --- template.go | 1 + 1 file changed, 1 insertion(+) diff --git a/template.go b/template.go index ed21ccda..3e0df9a8 100644 --- a/template.go +++ b/template.go @@ -31,6 +31,7 @@ func init() { beegoTplFuncMap["date"] = Date beegoTplFuncMap["compare"] = Compare beegoTplFuncMap["substr"] = Substr + beegoTplFuncMap["html2str"] = Html2str } // MarkDown parses a string in MarkDown format and returns HTML. Used by the template parser as "markdown"