# options URL: /api/directives/options/ Section: directives -------------------------------------------------------------------------------- options - Patitas window.BENGAL_THEME_DEFAULTS = { appearance: 'light', palette: 'brown-bengal' }; window.Bengal = window.Bengal || {}; window.Bengal.enhanceBaseUrl = '/patitas/assets/js/enhancements'; window.Bengal.watchDom = true; window.Bengal.debug = false; window.Bengal.enhanceUrls = { 'toc': '/patitas/assets/js/enhancements/toc.632a9783.js', 'docs-nav': '/patitas/assets/js/enhancements/docs-nav.57e4b129.js', 'tabs': '/patitas/assets/js/enhancements/tabs.aac9e817.js', 'lightbox': '/patitas/assets/js/enhancements/lightbox.1ca22aa1.js', 'interactive': '/patitas/assets/js/enhancements/interactive.fc077855.js', 'mobile-nav': '/patitas/assets/js/enhancements/mobile-nav.d991657f.js', 'action-bar': '/patitas/assets/js/enhancements/action-bar.d62417f4.js', 'copy-link': '/patitas/assets/js/enhancements/copy-link.7d9a5c29.js', 'data-table': '/patitas/assets/js/enhancements/data-table.1f5bc1eb.js', 'lazy-loaders': '/patitas/assets/js/enhancements/lazy-loaders.a5c38245.js', 'holo': '/patitas/assets/js/enhancements/holo.ee13c841.js', 'link-previews': '/patitas/assets/js/enhancements/link-previews.8d906535.js' }; (function () { try { var defaults = window.BENGAL_THEME_DEFAULTS || { appearance: 'system', palette: '' }; var defaultAppearance = defaults.appearance; if (defaultAppearance === 'system') { defaultAppearance = (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) ? 'dark' : 'light'; } var storedTheme = localStorage.getItem('bengal-theme'); var storedPalette = localStorage.getItem('bengal-palette'); var theme = storedTheme ? (storedTheme === 'system' ? defaultAppearance : storedTheme) : defaultAppearance; var palette = storedPalette ?? defaults.palette; document.documentElement.setAttribute('data-theme', theme); if (palette) { document.documentElement.setAttribute('data-palette', palette); } } catch (e) { document.documentElement.setAttribute('data-theme', 'light'); } })(); { "prerender": [ { "where": { "and": [ { "href_matches": "/docs/*" }, { "not": { "selector_matches": "[data-external], [target=_blank], .external" } } ] }, "eagerness": "conservative" } ], "prefetch": [ { "where": { "and": [ { "href_matches": "/*" }, { "not": { "selector_matches": "[data-external], [target=_blank], .external" } } ] }, "eagerness": "conservative" } ] } Skip to main content Magnifying Glass ESC Recent Clear Magnifying Glass No results for "" Start typing to search... ↑↓ Navigate ↵ Open ESC Close Powered by Lunr ฅᨐฅ DocumentationArrow ClockwiseGet StartedCodeSyntaxDirectivesStarburstExtendingBookmarkReferenceInfoAboutTroubleshootingReleasesDevGitHubPatitas API Reference Magnifying Glass Search ⌘K Palette Appearance Chevron Down Mode Monitor System Sun Light Moon Dark Palette Snow Lynx Brown Bengal Silver Bengal Charcoal Bengal Blue Bengal List ฅᨐฅ Magnifying Glass Search X Close Documentation Caret Down Arrow Clockwise Get Started Code Syntax Directives Starburst Extending Bookmark Reference Info About Troubleshooting Releases Dev Caret Down GitHub Patitas API Reference Palette Appearance Chevron Down Mode Monitor System Sun Light Moon Dark Palette Snow Lynx Brown Bengal Silver Bengal Charcoal Bengal Blue Bengal Patitas API Reference Caret Right Directives Caret Right Builtins admonition container dropdown tabs contracts decorator options protocol registry Caret Right Lexer Caret Right Classifiers directive fence footnote heading html link_ref list quote thematic Caret Right Scanners block directive fence html core modes Caret Right Parsing Caret Right Blocks Caret Right List blank_line indent item_blocks marker mixin nested trace types core directive footnote table Caret Right Inline core emphasis links match_registry special tokens charsets containers token_nav Caret Right Plugins autolinks footnotes math strikethrough table task_lists Caret Right Renderers html Caret Right Roles Caret Right Builtins formatting icons math reference protocol registry Caret Right Utils hashing logger text errors highlighting icons location nodes parser patitas protocols stringbuilder tokens Patitas API ReferenceDirectives ᗢ Caret Down Link Copy URL External Open LLM text Copy Copy LLM text Share with AI Ask Claude Ask ChatGPT Ask Gemini Ask Copilot 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 8Classes 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 — ← Previous directives Next → protocol List © 2026 Patitas built in ᓚᘏᗢ { "linkPreviews": { "enabled": true, "hoverDelay": 200, "hideDelay": 150, "showSection": true, "showReadingTime": true, "showWordCount": true, "showDate": true, "showTags": true, "maxTags": 3, "includeSelectors": [".prose"], "excludeSelectors": ["nav", ".toc", ".breadcrumb", ".pagination", ".card", "[class*='-card']", ".tab-nav", "[class*='-widget']", ".child-items", ".content-tiles"], "allowedHosts": [], "allowedSchemes": ["https"], "hostFailureThreshold": 3 } } window.BENGAL_LAZY_ASSETS = { tabulator: '/patitas/assets/js/tabulator.min.js', dataTable: '/patitas/assets/js/data-table.js', mermaidToolbar: '/patitas/assets/js/mermaid-toolbar.9de5abba.js', mermaidTheme: '/patitas/assets/js/mermaid-theme.344822c5.js', graphMinimap: '/patitas/assets/js/graph-minimap.ff04e939.js', graphContextual: '/patitas/assets/js/graph-contextual.355458ba.js' }; window.BENGAL_ICONS = { close: '/patitas/assets/icons/close.911d4fe1.svg', enlarge: '/patitas/assets/icons/enlarge.652035e5.svg', copy: '/patitas/assets/icons/copy.3d56e945.svg', 'download-svg': '/patitas/assets/icons/download.04f07e1b.svg', 'download-png': '/patitas/assets/icons/image.c34dfd40.svg', 'zoom-in': '/patitas/assets/icons/zoom-in.237b4a83.svg', 'zoom-out': '/patitas/assets/icons/zoom-out.38857c77.svg', reset: '/patitas/assets/icons/reset.d26dba29.svg' }; Arrow Up -------------------------------------------------------------------------------- Metadata: - Word Count: 1030 - Reading Time: 5 minutes