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)
 | 
						|
	}
 | 
						|
}
 |