27 lines
553 B
Go
27 lines
553 B
Go
package atomfeed
|
|
|
|
import (
|
|
"fmt"
|
|
"html"
|
|
)
|
|
|
|
type Text interface {
|
|
Check() error
|
|
IsText() bool
|
|
}
|
|
|
|
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.EscapeString(content)}, nil
|
|
case "xhtml":
|
|
return &XHTMLText{Type: textType, XHTMLDiv: content}, nil
|
|
case "":
|
|
return &PlainText{Type: "text", Text: content}, nil
|
|
default:
|
|
return nil, fmt.Errorf("%v is not a valid text type", textType)
|
|
}
|
|
}
|