Module

rendering.plugins.directives.container

Container directive for Mistune.

Provides a generic wrapper div with custom CSS classes. Similar to Sphinx/MyST container directive.

Use cases:

  • Wrapping content with semantic styling (api-attributes, api-signatures)
  • Creating styled blocks without affecting heading hierarchy
  • Grouping related content with a common class

Architecture:

Migrated to BengalDirective base class as part of directive system v2.

Classes

ContainerOptions dataclass
Options for container directive.
0

Options for container directive.

Inherits from DirectiveOptions

Attributes

Name Type Description
css_class str

Additional CSS classes (merged with title classes)

_field_aliases ClassVar[dict[str, str]]
ContainerDirective
Container directive for wrapping content in a styled div. Syntax: :::{container} class-name …
2

Container directive for wrapping content in a styled div.

Syntax:

:::{container} class-name
Content goes here...
:::

:::{container} api-attributes
`attr1`
: Description of attr1
:::

Multiple classes:

:::{container} api-section highlighted
Content with multiple classes...
:::

The first line after the directive (title) is the class(es) to apply. Additional classes can be added via :class: option. Content is parsed as markdown.

Aliases:

  • container: Primary name
  • div: HTML semantic alias
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 container token from parsed components. The title is treated as class na…
5 DirectiveToken
def parse_directive(self, title: str, options: ContainerOptions, content: str, children: list[Any], state: Any) -> DirectiveToken

Build container token from parsed components.

The title is treated as class names. Additional classes from :class: option are merged.

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

DirectiveToken

render
Render container to HTML. Renders as a div with the specified classes.
2 str
def render(self, renderer: Any, text: str, **attrs: Any) -> str

Render container to HTML.

Renders as a div with the specified classes.

Parameters 2
renderer Any
text str
Returns

str

Functions

render_container
Legacy render function for backward compatibility.
2 str
def render_container(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