Module

roles.builtins.icons

Icon role handler.

Provides inline SVG icon support via syntax. The icon resolver can be configured per-instance for registry isolation.

Classes

IconRole 5
Role for inline SVG icons. Icon rendering requires a resolver function that maps icon names to SVG…

Role for inline SVG icons.

Icon rendering requires a resolver function that maps icon names to SVG. Without a resolver, this role renders placeholder text.

Usage (with resolver configured): ... ...

Usage (without resolver): → [icon:github]

Thread Safety:

Instance-level resolver ensures registry isolation.
Safe for concurrent use when resolver is thread-safe.

Attributes

Name Type Description
names ClassVar[tuple[str, ...]]
token_type ClassVar[str]

Methods

parse 3 Role
Build the icon role AST node.
def parse(self, name: str, content: str, location: SourceLocation) -> Role
Parameters
Name Type Description
name

The role name ("icon")

content

Icon name (e.g., "github", "check")

location

Source location for error reporting

Returns
Role A Role node for the AST
render 2
Render icon role to HTML.
def render(self, node: Role, sb: StringBuilder) -> None
Parameters
Name Type Description
node

The Role AST node to render

sb

StringBuilder to append output to

Internal Methods 1
__init__ 1
Initialize IconRole with optional resolver.
def __init__(self, resolver: Callable[[str], str | None] | None = None) -> None
Parameters
Name Type Description
resolver

Function that takes icon name and returns SVG string or None. If None, icons render as placeholder text.

Default:None