package atom import ( "fmt" "html" ) type Text interface { isText() bool Check() error } // NewText creates a new Text. It returns a Text and an error. func NewText(textType, content string) (Text, error) { switch textType { case "text", "": return &PlainText{Type: textType, Text: content}, nil case "html": return &PlainText{Type: textType, Text: html.UnescapeString(content)}, nil case "xhtml": return &XHTMLText{ Type: textType, XHTMLDiv: &XHTMLDiv{ XMLNS: "http://www.w3.org/1999/xhtml", Content: content, }, }, nil default: return nil, fmt.Errorf("%v is not a valid text type", textType) } }