github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/html2md/core.go (about) 1 package html2md 2 3 import "regexp" 4 5 const ( 6 Foreign = iota 7 Void 8 ) 9 10 type ReplaceFunc func(string, []string) string 11 12 type Rule struct { 13 Patterns []string 14 Tp int 15 Replacement ReplaceFunc 16 } 17 18 func AttrRegExp(attr string) *regexp.Regexp { 19 return regexp.MustCompile(attr + `\s*=\s*["']?([^"\"']*)["']?`) 20 } 21 22 var ( 23 rules = make(map[string]*Rule) 24 converts = make([]func(string) string, 0) 25 ) 26 27 func AddRule(name string, rule *Rule) { 28 rules[name] = rule 29 } 30 31 func AddConvert(f func(string) string) { 32 converts = append(converts, f) 33 }