Documentation ¶
Overview ¶
Package htmlcore converts HTML and MD into Cogent Core widget trees.
Index ¶
- Variables
- func ExtractText(ctx *Context) string
- func Get(ctx *Context, url string) (*http.Response, error)
- func New[T tree.NodeValue](ctx *Context) *T
- func ReadHTML(ctx *Context, parent core.Widget, r io.Reader) error
- func ReadHTMLString(ctx *Context, parent core.Widget, s string) error
- func ReadMD(ctx *Context, parent core.Widget, b []byte) error
- func ReadMDString(ctx *Context, parent core.Widget, s string) error
- type Context
Constants ¶
This section is empty.
Variables ¶
var BindTextEditor func(ed *texteditor.Editor, parent core.Widget)
BindTextEditor is a function set to cogentcore.org/core/yaegicore.BindTextEditor when importing yaegicore, which provides interactive editing functionality for Go code blocks in text editors.
var ElementHandlers = map[string]func(ctx *Context) bool{}
ElementHandlers is a map of handler functions for each HTML element type (eg: "button", "input", "p"). It is empty by default, but can be used by anyone in need of behavior different than the default behavior defined in [handleElement] (for example, for custom elements). If the handler for an element returns false, then the default behavior for an element is used.
var WikilinkBaseURL = "cogentcore.org/core"
WikilinkBaseURL is the base URL to use for wiki links
Functions ¶
func ExtractText ¶
ExtractText recursively extracts all of the text from the children of the given *html.Node, adding any appropriate inline markup for formatted text. It adds any non-text elements to the given core.Widget using [readHTMLNode]. It should not be called on text nodes themselves; for that, you can directly access the html.Node.Data field. It uses the given page URL for context when resolving URLs, but it can be omitted if not available.
func Get ¶
Get is a helper function that calls [Context.GetURL] with the given URL, parsed relative to the page URL of the given context. It also checks the status code of the response and closes the response body and returns an error if it is not http.StatusOK. If the error is nil, then the response body is not closed and must be closed by the caller.
func New ¶
New adds a new widget of the given type to the context parent. It automatically calls [Context.config] on the resulting widget.
func ReadHTML ¶
ReadHTML reads HTML from the given io.Reader and adds corresponding Cogent Core widgets to the given core.Widget, using the given context.
func ReadHTMLString ¶
ReadHTMLString reads HTML from the given string and adds corresponding Cogent Core widgets to the given core.Widget, using the given context.
func ReadMD ¶
ReadMD reads MD (markdown) from the given bytes and adds corresponding Cogent Core widgets to the given core.Widget, using the given context.
func ReadMDString ¶
ReadMDString reads MD (markdown) from the given string and adds corresponding Cogent Core widgets to the given core.Widget, using the given context.
Types ¶
type Context ¶
type Context struct { // Node is the node that is currently being read. Node *html.Node // NewParent is the current parent widget that children of // the previously read element should be added to, if any. NewParent core.Widget // BlockParent is the current parent widget that non-inline elements // should be added to. BlockParent core.Widget // PageURL, if not "", is the URL of the current page. // Otherwise, there is no current page. PageURL string // OpenURL is the function used to open URLs, // which defaults to [system.App.OpenURL]. OpenURL func(url string) // GetURL is the function used to get resources from URLs, // which defaults to [http.Get]. GetURL func(url string) (*http.Response, error) // contains filtered or unexported fields }
Context contains context information about the current state of a htmlcore reader and its surrounding context. It should be created with NewContext.
func (*Context) InlineParent ¶
InlineParent returns the current parent widget that inline elements should be added to.