Module

rendering.plugins.directives.icon

Icon directive for Mistune.

Provides inline SVG icons from Bengal's icon library.

Architecture:

Migrated to BengalDirective base class as part of directive system v2.
Note: Module-level icon cache preserved for performance.

Syntax:

:::{icon} terminal
:size: 24
:class: my-icon-class
:::

Classes

IconOptions dataclass
Options for icon directive.
1

Options for icon directive.

Inherits from DirectiveOptions

Attributes

Name Type Description
size int

Icon size in pixels

css_class str

Additional CSS classes

aria_label str

Accessibility label

_field_aliases ClassVar[dict[str, str]]
Internal Methods 1
__post_init__
Validate size falls back to default on invalid input.
0 None
def __post_init__(self) -> None

Validate size falls back to default on invalid input.

IconDirective
Icon directive for inline SVG icons. Syntax: :::{icon} terminal ::: :::{icon} docs …
2

Icon directive for inline SVG icons.

Syntax:

:::{icon} terminal
:::

:::{icon} docs
:size: 16
:class: text-muted
:::

Options:

:size: Icon size in pixels (default: 24)
:class: Additional CSS classes
:aria-label: Accessibility label (default: icon name)
Inherits from BengalDirective

Attributes

Name Type Description
NAMES ClassVar[list[str]]
TOKEN_TYPE ClassVar[str]
OPTIONS_CLASS ClassVar[type[DirectiveOptions]]
DIRECTIVE_NAMES ClassVar[list[str]]

Methods 2

parse_directive
Build icon token.
5 DirectiveToken
def parse_directive(self, title: str, options: IconOptions, content: str, children: list[Any], state: Any) -> DirectiveToken

Build icon token.

Parameters 5
title str
options IconOptions
content str
children list[Any]
state Any
Returns

DirectiveToken

render
Render icon directive to inline SVG.
2 str
def render(self, renderer: Any, text: str, **attrs: Any) -> str

Render icon directive to inline SVG.

Parameters 2
renderer Any
text str
Returns

str

Functions

_set_icons_directory
Set the icons directory (called during site initialization).
1 None
def _set_icons_directory(path: Path) -> None

Set the icons directory (called during site initialization).

Parameters 1

Name Type Default Description
path Path
_load_icon
Load an icon SVG by name.
1 str | None
def _load_icon(name: str) -> str | None

Load an icon SVG by name.

Parameters 1

Name Type Default Description
name str

Returns

str | None

get_available_icons
Get list of available icon names.
0 list[str]
def get_available_icons() -> list[str]

Get list of available icon names.

Returns

list[str]

render_icon
Legacy render function for backward compatibility.
2 str
def render_icon(renderer: Any, text: str, **attrs: Any) -> str

Legacy render function for backward compatibility.

Parameters 2

Name Type Default Description
renderer Any
text str

Returns

str