...

Package html

import "github.com/yuin/goldmark/renderer/html"
Overview
Index

Overview ▾

Variables

BlockquoteAttributeFilter defines attribute names which blockquote elements can have

var BlockquoteAttributeFilter = GlobalAttributeFilter.Extend(
    []byte("cite"),
)

CodeAttributeFilter defines attribute names which code elements can have.

var CodeAttributeFilter = GlobalAttributeFilter

DefaultWriter is a default instance of the Writer.

var DefaultWriter = NewWriter()

EmphasisAttributeFilter defines attribute names which emphasis elements can have.

var EmphasisAttributeFilter = GlobalAttributeFilter

GlobalAttributeFilter defines attribute names which any elements can have.

var GlobalAttributeFilter = util.NewBytesFilter(
    []byte("accesskey"),
    []byte("autocapitalize"),
    []byte("autofocus"),
    []byte("class"),
    []byte("contenteditable"),
    []byte("dir"),
    []byte("draggable"),
    []byte("enterkeyhint"),
    []byte("hidden"),
    []byte("id"),
    []byte("inert"),
    []byte("inputmode"),
    []byte("is"),
    []byte("itemid"),
    []byte("itemprop"),
    []byte("itemref"),
    []byte("itemscope"),
    []byte("itemtype"),
    []byte("lang"),
    []byte("part"),
    []byte("slot"),
    []byte("spellcheck"),
    []byte("style"),
    []byte("tabindex"),
    []byte("title"),
    []byte("translate"),
)

HeadingAttributeFilter defines attribute names which heading elements can have

var HeadingAttributeFilter = GlobalAttributeFilter

ImageAttributeFilter defines attribute names which image elements can have.

var ImageAttributeFilter = GlobalAttributeFilter.Extend(
    []byte("align"),
    []byte("border"),
    []byte("crossorigin"),
    []byte("decoding"),
    []byte("height"),
    []byte("importance"),
    []byte("intrinsicsize"),
    []byte("ismap"),
    []byte("loading"),
    []byte("referrerpolicy"),
    []byte("sizes"),
    []byte("srcset"),
    []byte("usemap"),
    []byte("width"),
)

LinkAttributeFilter defines attribute names which link elements can have.

var LinkAttributeFilter = GlobalAttributeFilter.Extend(
    []byte("download"),

    []byte("hreflang"),
    []byte("media"),
    []byte("ping"),
    []byte("referrerpolicy"),
    []byte("rel"),
    []byte("shape"),
    []byte("target"),
)

ListAttributeFilter defines attribute names which list elements can have.

var ListAttributeFilter = GlobalAttributeFilter.Extend(
    []byte("start"),
    []byte("reversed"),
    []byte("type"),
)

ListItemAttributeFilter defines attribute names which list item elements can have.

var ListItemAttributeFilter = GlobalAttributeFilter.Extend(
    []byte("value"),
)

ParagraphAttributeFilter defines attribute names which paragraph elements can have.

var ParagraphAttributeFilter = GlobalAttributeFilter

ThematicAttributeFilter defines attribute names which hr elements can have.

var ThematicAttributeFilter = GlobalAttributeFilter.Extend(
    []byte("align"),
    []byte("color"),
    []byte("noshade"),
    []byte("size"),
    []byte("width"),
)

func IsDangerousURL

func IsDangerousURL(url []byte) bool

IsDangerousURL returns true if the given url seems a potentially dangerous url, otherwise false.

func NewRenderer

func NewRenderer(opts ...Option) renderer.NodeRenderer

NewRenderer returns a new Renderer with given options.

func RenderAttributes

func RenderAttributes(w util.BufWriter, node ast.Node, filter util.BytesFilter)

RenderAttributes renders given node's attributes. You can specify attribute names to render by the filter. If filter is nil, RenderAttributes renders all attributes.

func WithEastAsianLineBreaks

func WithEastAsianLineBreaks() interface {
    renderer.Option
    Option
}

WithEastAsianLineBreaks is a functional option that indicates whether softline breaks between east asian wide characters should be ignored.

func WithHardWraps

func WithHardWraps() interface {
    renderer.Option
    Option
}

WithHardWraps is a functional option that indicates whether softline breaks should be rendered as '<br>'.

func WithUnsafe

func WithUnsafe() interface {
    renderer.Option
    Option
}

WithUnsafe is a functional option that renders dangerous contents (raw htmls and potentially dangerous links) as it is.

func WithWriter

func WithWriter(writer Writer) interface {
    renderer.Option
    Option
}

WithWriter is a functional option that allow you to set the given writer to the renderer.

func WithXHTML

func WithXHTML() interface {
    Option
    renderer.Option
}

WithXHTML is a functional option indicates that nodes should be rendered in xhtml instead of HTML5.

type Config

A Config struct has configurations for the HTML based renderers.

type Config struct {
    Writer              Writer
    HardWraps           bool
    EastAsianLineBreaks bool
    XHTML               bool
    Unsafe              bool
}

func NewConfig

func NewConfig() Config

NewConfig returns a new Config with defaults.

func (*Config) SetOption

func (c *Config) SetOption(name renderer.OptionName, value interface{})

SetOption implements renderer.NodeRenderer.SetOption.

type Option

An Option interface sets options for HTML based renderers.

type Option interface {
    SetHTMLOption(*Config)
}

type Renderer

A Renderer struct is an implementation of renderer.NodeRenderer that renders nodes as (X)HTML.

type Renderer struct {
    Config
}

func (*Renderer) RegisterFuncs

func (r *Renderer) RegisterFuncs(reg renderer.NodeRendererFuncRegisterer)

RegisterFuncs implements NodeRenderer.RegisterFuncs .

type Writer

A Writer interface writes textual contents to a writer.

type Writer interface {
    // Write writes the given source to writer with resolving references and unescaping
    // backslash escaped characters.
    Write(writer util.BufWriter, source []byte)

    // RawWrite writes the given source to writer without resolving references and
    // unescaping backslash escaped characters.
    RawWrite(writer util.BufWriter, source []byte)

    // SecureWrite writes the given source to writer with replacing insecure characters.
    SecureWrite(writer util.BufWriter, source []byte)
}

func NewWriter

func NewWriter(opts ...WriterOption) Writer

NewWriter returns a new Writer.

type WriterConfig

A WriterConfig struct has configurations for the HTML based writers.

type WriterConfig struct {
    // EscapedSpace is an option that indicates that a '\' escaped half-space(0x20) should not be rendered.
    EscapedSpace bool
}

type WriterOption

A WriterOption interface sets options for HTML based writers.

type WriterOption func(*WriterConfig)

func WithEscapedSpace

func WithEscapedSpace() WriterOption

WithEscapedSpace is a WriterOption indicates that a '\' escaped half-space(0x20) should not be rendered.