betty.render module#

Provide the Render API.

final class betty.render.RenderDispatcher#

Bases: object

Dispatch content to a renderer that supports it.

Unsupported content is rendered as plain text to make it safe for inclusion in HTML.

__init__(*renderers: Renderer)#
async render(content: str, media_type: ResolvableMediaType | None, /) str#

Render the content.

class betty.render.Renderer#

Bases: ABC, Plugin[RendererDefinition]

Render content in a different media type to HTML.

abstract property media_type: MediaType#

The media type this renderer can render from.

abstractmethod async render(content: str, /) str#

Render content.

final class betty.render.RendererDefinition#

Bases: HumanFacingDefinition, PluginClsDefinition[Renderer]

The renderer plugin type.

Plugin type ID

renderer

Definition

@RendererDefinition(...)

Built-in renderers:

html (Html)
HTML: The values of the following HTML attributes will automatically be replaced with the URLs generated from them where possible: href and src
plain-text (PlainText)
Plain text
__init__(plugin_id: ResolvableMachineName, *, label: ResolvableLocalizable, auto: bool = True, description: ResolvableLocalizable | None = None, requires: Requires = ())#
static type() PluginTypeDefinition[Self]#

The plugin type definition.