Module

lexer.scanners.html

HTML block mode scanner mixin.

Classes

HtmlScannerMixin 14
Mixin providing HTML block mode scanning logic. Scans content inside HTML blocks until the appropr…

Mixin providing HTML block mode scanning logic.

Scans content inside HTML blocks until the appropriate end condition based on the HTML block type (1-7 per CommonMark spec).

Attributes

Name Type Description
_source str
_pos int
_source_len int
_mode LexerMode
_html_block_type int
_html_block_content list[str]
_html_block_start int
_consumed_newline bool

Methods

Internal Methods 6
_save_location 0
Save current location for O(1) token location creation.
def _save_location(self) -> None
_find_line_end 0 int
Find end of current line.
def _find_line_end(self) -> int
Returns
int
_commit_to 1
Commit position to line_end.
def _commit_to(self, line_end: int) -> None
Parameters
Name Type Description
line_end
_location_from 1 SourceLocation
Get source location from saved position.
def _location_from(self, start_pos: int) -> SourceLocation
Parameters
Name Type Description
start_pos
Returns
SourceLocation
_emit_html_block 0 Iterator[Token]
Emit accumulated HTML block. Implemented by HtmlClassifierMixin.
def _emit_html_block(self) -> Iterator[Token]
Returns
Iterator[Token]
_scan_html_block_content 0 Iterator[Token]
Scan content inside HTML block until end condition. **The end condition depend…
def _scan_html_block_content(self) -> Iterator[Token]

Scan content inside HTML block until end condition.

The end condition depends on the HTML block type:

  • Type 1: Ends with closing tag (, , etc.)
  • Type 2: Ends with -->
  • Type 3: Ends with ?>
  • Type 4: Ends with >
  • Type 5: Ends with ]]>
  • Types 6, 7: End with blank line
Returns
Iterator[Token]