Module

directives.options

Typed options system for directive configuration.

Directive options are parsed from :key: value lines in the directive body. This module provides base classes for type-safe option parsing.

Thread Safety:

All options classes are frozen dataclasses (immutable). Safe to share across threads.

Example:

>>> @dataclass(frozen=True, slots=True)
... class AdmonitionOptions(DirectiveOptions):
...     name: str | None = None
...     class_: str | None = None
...     collapsible: bool = False
...
>>> raw = {"name": "my-note", "collapsible": "true"}
>>> opts = AdmonitionOptions.from_raw(raw)
>>> opts.collapsible

True

Classes

DirectiveOptions 3
Base class for typed directive options. Subclass this to define options for your directive. Option…

Base class for typed directive options.

Subclass this to define options for your directive. Options are automatically parsed from :key: value lines in the directive.

Type coercion is automatic based on type hints:

  • str: Used as-is
  • bool: "true", "yes", "1", "" → True; others → False
  • int: Parsed with int()
  • float: Parsed with float()
  • list[str]: Split by whitespace

Thread Safety: Frozen dataclass ensures immutability for safe sharing.

Attributes

Name Type Description
_aliases ClassVar[dict[str, str]]

Methods

from_raw 1 Self
Parse raw string options into typed values.
classmethod
def from_raw(cls, raw: dict[str, str]) -> Self
Parameters
Name Type Description
raw

Dictionary of raw string options from directive

Returns
Self Typed options instance
Internal Methods 1
_coerce 3 Any
Coerce string value to the target type.
classmethod
def _coerce(cls, value: str, target_type: type, field_name: str) -> Any
Parameters
Name Type Description
value

Raw string value

target_type

Target type from type hint

field_name

Field name for error messages

Returns
Any Coerced value
StyledOptions 2
Common options for styled directives. Provides standard styling options that most directives suppo…

Common options for styled directives.

Provides standard styling options that most directives support:

  • class_: Additional CSS classes
  • name: Reference ID/anchor

Attributes

Name Type Description
class_ str | None
name str | None
AdmonitionOptions 2
Options for admonition directives (note, warning, tip, etc.).

Options for admonition directives (note, warning, tip, etc.).

Attributes

Name Type Description
collapsible bool
open bool
CodeBlockOptions 5
Options for code-block directive.

Options for code-block directive.

Attributes

Name Type Description
language str | None
linenos bool
lineno_start int
emphasize_lines str | None
caption str | None
ImageOptions 4
Options for image directive.

Options for image directive.

Attributes

Name Type Description
width str | None
height str | None
alt str | None
align str | None
FigureOptions 2
Options for figure directive (extends ImageOptions).

Options for figure directive (extends ImageOptions).

Attributes

Name Type Description
figwidth str | None
figclass str | None
TabSetOptions 1
Options for tab-set directive.

Options for tab-set directive.

Attributes

Name Type Description
sync_group str | None
TabItemOptions 2
Options for tab-item directive.

Options for tab-item directive.

Attributes

Name Type Description
selected bool
sync str | None