all2md.parsers.mediawiki

MediaWiki/WikiText to AST converter.

This module provides conversion from MediaWiki markup (WikiText) to AST representation using the mwparserfromhell parser. It enables bidirectional transformation by parsing wiki markup into the same AST structure used for other formats.

class all2md.parsers.mediawiki.MediaWikiParser

Bases: BaseParser

Convert MediaWiki/WikiText to AST representation.

This converter uses mwparserfromhell to parse WikiText and builds an AST that matches the structure used throughout all2md, enabling bidirectional conversion and transformation pipelines.

Parameters:

options (MediaWikiParserOptions or None, default = None) – Parser configuration options

Examples

Basic parsing:

>>> parser = MediaWikiParser()
>>> doc = parser.parse("== Heading ==\\n\\nThis is '''bold'''.")

With options:

>>> options = MediaWikiParserOptions(parse_templates=True)
>>> parser = MediaWikiParser(options)
>>> doc = parser.parse(wikitext)

Initialize the MediaWiki parser with options and progress callback.

__init__(options: MediaWikiParserOptions | None = None, progress_callback: Callable[[ProgressEvent], None] | None = None)

Initialize the MediaWiki parser with options and progress callback.

parse(input_data: str | Path | IO[bytes] | bytes) Document

Parse MediaWiki input into AST Document.

Parameters:

input_data (str, Path, IO[bytes], or bytes) – MediaWiki/WikiText input to parse. Can be: - File path (str or Path) - File-like object in binary mode - Raw WikiText bytes - WikiText string

Returns:

AST document node

Return type:

Document

Raises:
extract_metadata(document: Any) DocumentMetadata

Extract metadata from MediaWiki document.

Parameters:

document (mwparserfromhell.Wikicode) – Parsed MediaWiki document

Returns:

Extracted metadata

Return type:

DocumentMetadata

Notes

MediaWiki documents may have metadata in templates or special syntax. This implementation extracts basic information where available.