# emphasis URL: /api/parsing/inline/emphasis/ Section: inline -------------------------------------------------------------------------------- emphasis - 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 ParsingInline ᗢ 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 parsing.inline.emphasis Emphasis parsing for Patitas parser. Implements CommonMark delimiter stack algorithm for emphasis/strong. See: https://spec.commonmark.org/0.31.2/#emphasis-and-strong-emphasis Thread Safety: All methods are stateless or use instance-local state only. Safe for concurrent use when each parser instance is used by one thread. 1Class Classes EmphasisMixin 5 ▼ Mixin for emphasis delimiter processing. Implements CommonMark flanking rules and delimiter matchi… Mixin for emphasis delimiter processing. Implements CommonMark flanking rules and delimiter matching algorithm. Uses external MatchRegistry for match tracking (enables immutable tokens). Required Host Attributes: None Required Host Methods: None Methods Internal Methods 5 ▼ _is_left_flanking 3 bool ▼ Check if delimiter run is left-flanking. Left-flanking: not followed by whites… def _is_left_flanking(self, before: str, after: str, delim: str) -> bool Check if delimiter run is left-flanking. Left-flanking: not followed by whitespace, and either: not followed by punctuation, OR preceded by whitespace or punctuation Parameters Name Type Description before — after — delim — Returns bool _is_right_flanking 3 bool ▼ Check if delimiter run is right-flanking. Right-flanking: not preceded by whit… def _is_right_flanking(self, before: str, after: str, delim: str) -> bool Check if delimiter run is right-flanking. Right-flanking: not preceded by whitespace, and either: not preceded by punctuation, OR followed by whitespace or punctuation Parameters Name Type Description before — after — delim — Returns bool _is_whitespace 1 bool ▼ Check if character is Unicode whitespace. CommonMark uses Unicode whitespace f… def _is_whitespace(self, char: str) -> bool Check if character is Unicode whitespace. CommonMark uses Unicode whitespace for emphasis flanking rules. Includes ASCII whitespace and Unicode category Zs. Parameters Name Type Description char — Returns bool _is_punctuation 1 bool ▼ Check if character is Unicode punctuation. CommonMark uses Unicode punctuation… def _is_punctuation(self, char: str) -> bool Check if character is Unicode punctuation. CommonMark uses Unicode punctuation for emphasis flanking rules. Includes ASCII punctuation and Unicode categories P* and S*. Parameters Name Type Description char — Returns bool _process_emphasis 2 MatchRegistry ▼ Process delimiter stack to match emphasis openers/closers. Implements CommonMa… def _process_emphasis(self, tokens: list[InlineToken], registry: MatchRegistry | None = None) -> MatchRegistry Process delimiter stack to match emphasis openers/closers. Implements CommonMark emphasis algorithm using external match tracking. Tokens are immutable; all state is tracked in the registry. Parameters Name Type Description tokens — List of InlineToken NamedTuples from _tokenize_inline(). registry — Optional MatchRegistry to use. If None, creates a new one. Default: None Returns MatchRegistry MatchRegistry containing all delimiter matches. ← Previous core Next → inline 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: 932 - Reading Time: 5 minutes