Documentation ¶
Index ¶
- func FromHtmlNode(doc *html.Node) (string, error)
- func FromReader(reader io.Reader) (string, error)
- func FromReaderWithRenderer(reader io.Reader, n NodeRenderer) (string, error)
- func FromString(input string) (string, error)
- func FromStringWithRenderer(input string, n NodeRenderer) (string, error)
- func LoopChildren(node *html.Node, d DefaultRenderer) error
- type DefaultRenderer
- type DefaultRendererWriter
- type NodeRenderer
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FromHtmlNode ¶
FromHtmlNode renders text output from a pre-parsed HTML document.
func FromReader ¶
FromReader renders text output after parsing HTML for the specified io.Reader.
func FromReaderWithRenderer ¶
func FromReaderWithRenderer(reader io.Reader, n NodeRenderer) (string, error)
FromReaderWithRenderer like FromReader but with optional 'n' for custom node.
func FromString ¶
FromString parses HTML from the input string, then renders the text form.
Example ¶
inputHtml := ` <html> <head> <title>My Mega Service</title> <link rel=\"stylesheet\" href=\"main.css\"> <style type=\"text/css\">body { color: #fff; }</style> </head> <body> <div class="logo"> <a href="http://mymegaservice.com/"><img src="/logo-image.jpg" alt="Mega Service"/></a> </div> <h1>Welcome to your new account on my service!</h1> <p> Here is some more information: <ul> <li>Link 1: <a href="https://example.com">Example.com</a></li> <li>Link 2: <a href="https://example2.com">Example2.com</a></li> <li>Something else</li> </ul> </p> </body> </html> ` text, err := FromString(inputHtml) if err != nil { panic(err) } fmt.Println(text)
Output: Mega Service ( http://mymegaservice.com/ ) ****************************************** Welcome to your new account on my service! ****************************************** Here is some more information: * Link 1: Example.com ( https://example.com ) * Link 2: Example2.com ( https://example2.com ) * Something else
func FromStringWithRenderer ¶
func FromStringWithRenderer(input string, n NodeRenderer) (string, error)
FromStringWithRenderer like FromString but with optional 'n' for custom node.
func LoopChildren ¶
func LoopChildren(node *html.Node, d DefaultRenderer) error
LoopChildren is helper for custom node that need default render engine.
Types ¶
type DefaultRenderer ¶
DefaultRenderer pass to custom node to trigger default render engine.
type DefaultRendererWriter ¶
type DefaultRendererWriter interface { DefaultRenderer io.Writer }
DefaultRendererWriter implements both DefaultRenderer and io.Writer.
type NodeRenderer ¶
type NodeRenderer interface {
NodeRender(node *html.Node, d DefaultRendererWriter) (next *html.Node, err error)
}
NodeRenderer take html 'node' and convert to plain text by writing to 'd'. 'd' can also be used to handle html node using the default method. Return non-nil 'err' if any error. Return non-nil 'next' if there is any child node that need to be handled by default renderer else return nil 'next' to indicate done for this 'node'.