package html

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

Package html implements renderer that outputs HTMLs.

Index

Variables

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

BlockquoteAttributeFilter defines attribute names which blockquote elements can have.

var CodeAttributeFilter = GlobalAttributeFilter

CodeAttributeFilter defines attribute names which code elements can have.

var DefaultWriter = NewWriter()

DefaultWriter is a default instance of the Writer.

var EmphasisAttributeFilter = GlobalAttributeFilter

EmphasisAttributeFilter defines attribute names which emphasis 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("role"),
	[]byte("slot"),
	[]byte("spellcheck"),
	[]byte("style"),
	[]byte("tabindex"),
	[]byte("title"),
	[]byte("translate"),
)

GlobalAttributeFilter defines attribute names which any elements can have.

var HeadingAttributeFilter = GlobalAttributeFilter

HeadingAttributeFilter defines attribute names which heading 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"),
)

ImageAttributeFilter defines attribute names which image elements can have.

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

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

LinkAttributeFilter defines attribute names which link elements can have.

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

ListAttributeFilter defines attribute names which list elements can have.

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

ListItemAttributeFilter defines attribute names which list item elements can have.

var ParagraphAttributeFilter = GlobalAttributeFilter

ParagraphAttributeFilter defines attribute names which paragraph elements can have.

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

ThematicAttributeFilter defines attribute names which hr elements can have.

Functions

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(e EastAsianLineBreaks) 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.

Types

type Config

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

A Config struct has configurations for the HTML based renderers.

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 EastAsianLineBreaks

type EastAsianLineBreaks int

A EastAsianLineBreaks is a style of east asian line breaks.

const (
	//EastAsianLineBreaksNone renders line breaks as it is.
	EastAsianLineBreaksNone EastAsianLineBreaks = iota
	// EastAsianLineBreaksSimple follows east_asian_line_breaks in Pandoc.
	EastAsianLineBreaksSimple
	// EastAsianLineBreaksCSS3Draft follows CSS text level3 "Segment Break Transformation Rules" with some enhancements.
	EastAsianLineBreaksCSS3Draft
)

type Option

type Option interface {
	SetHTMLOption(*Config)
}

An Option interface sets options for HTML based renderers.

type Renderer

type Renderer struct {
	Config
}

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

func (*Renderer) RegisterFuncs

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

RegisterFuncs implements NodeRenderer.RegisterFuncs .

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

A Writer interface writes textual contents to a writer.

func NewWriter

func NewWriter(opts ...WriterOption) Writer

NewWriter returns a new Writer.

type WriterConfig

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

A WriterConfig struct has configurations for the HTML based writers.

type WriterOption

type WriterOption func(*WriterConfig)

A WriterOption interface sets options for HTML based writers.

func WithEscapedSpace

func WithEscapedSpace() WriterOption

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

Source Files

html.go

Version
v1.7.8 (latest)
Published
Oct 16, 2024
Platform
linux/amd64
Imports
8 packages
Last checked
4 days ago

Tools for package owners.