# blank_line URL: /api/parsing/blocks/list/blank_line/ Section: list -------------------------------------------------------------------------------- blank_line - 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 BlocksList ᗢ 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.blocks.list.blank_line Blank line handling for list parsing. Handles the complex logic for blank lines within and between list items. Phase 4: Uses ContainerStack for indent queries (stack is source of truth). 6Classes2Functions Classes BlankLineResult 0 ▼ Base class for blank line handling results. Base class for blank line handling results. ContinueList 1 ▼ Continue parsing the current list (may mark as loose). Continue parsing the current list (may mark as loose). Methods Internal Methods 1 ▼ __init__ 2 ▼ def __init__(self, is_loose: bool = False, save_paragraph: bool = False) Parameters Name Type Description is_loose — Default: False save_paragraph — Default: False EndItem 1 ▼ End the current list item but continue the list. End the current list item but continue the list. Methods Internal Methods 1 ▼ __init__ 1 ▼ def __init__(self, is_loose: bool = True) Parameters Name Type Description is_loose — Default: True EndList 0 ▼ End the entire list. End the entire list. ParseBlock 1 ▼ Parse the next token as a block element within the list item. Parse the next token as a block element within the list item. Methods Internal Methods 1 ▼ __init__ 1 ▼ def __init__(self, is_loose: bool = True) Parameters Name Type Description is_loose — Default: True ParseContinuation 1 ▼ Parse the next token as continuation content. Parse the next token as continuation content. Methods Internal Methods 1 ▼ __init__ 2 ▼ def __init__(self, is_loose: bool = True, save_paragraph: bool = True) Parameters Name Type Description is_loose — Default: True save_paragraph — Default: True Functions handle_blank_line 2 BlankLineResult ▼ Handle blank line in list parsing using ContainerStack. Determines what action… def handle_blank_line(next_token: Token | None, containers: ContainerStack) -> BlankLineResult Handle blank line in list parsing using ContainerStack. Determines what action to take after encountering a blank line within a list item. Queries indent values from the container stack (the stack is the source of truth for indent context). Parameters Name Type Description next_token Token | None The token following the blank line(s) containers ContainerStack The container stack with current frame context Returns BlankLineResult _handle_blank_then_indented_code 2 BlankLineResult ▼ Handle INDENTED_CODE token after blank line using ContainerStack. This is comp… def _handle_blank_then_indented_code(token: Token, containers: ContainerStack) -> BlankLineResult Handle INDENTED_CODE token after blank line using ContainerStack. This is complex because INDENTED_CODE may be: A list marker continuation (at list level) Paragraph continuation (at content level) Block quote or fenced code Actual indented code block (4+ beyond content) Parameters Name Type Description token Token The INDENTED_CODE token containers ContainerStack The container stack with current frame context Returns BlankLineResult Next → indent 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: 955 - Reading Time: 5 minutes