silkworm.markdown

Convert complete or streaming HTML into Markdown with fast-h2m.

type silkworm.markdown.MarkdownMode = Literal['full', 'minimal', 'mdream']
type silkworm.markdown.MarkdownOptions = Mapping[str, object]
type silkworm.markdown.MarkdownResult = dict[str, object]
class silkworm.markdown.MarkdownStream[source]

Bases: object

Incrementally convert HTML chunks with fast-h2m.

Parameters:
  • mode – Streaming conversion strategy. minimal is the default to favor low-overhead incremental conversion.

  • options – Additional fast-h2m stream options.

Raises:
__init__(*, mode='minimal', options=None)[source]
Parameters:
Return type:

None

process_chunk(html)[source]

Feed one HTML chunk to the converter and return available Markdown.

Raises:

MarkdownConversionError – If conversion fails or returns a non-string value.

Parameters:

html (str)

Return type:

str

finish()[source]

Finalize the stream and return any buffered Markdown.

Raises:

MarkdownConversionError – If finalization fails or returns a non-string value.

Return type:

str

silkworm.markdown.convert_html_to_markdown(html, *, mode='full', options=None)[source]

Convert HTML and return fast-h2m’s structured result.

Parameters:
  • html (str) – Complete HTML input.

  • mode (MarkdownMode) – Conversion strategy.

  • options (MarkdownOptions | None) – Additional fast-h2m conversion options.

Returns:

A mapping containing Markdown and converter metadata.

Raises:
Return type:

MarkdownResult

silkworm.markdown.html_to_markdown(html, *, mode='full', options=None)[source]

Convert HTML to a Markdown string.

full uses fast-h2m’s default rich converter, minimal uses the lean Fast DOM path, and mdream exposes the mdream-backed lean path.

Parameters:
  • html (str) – Complete HTML input.

  • mode (MarkdownMode) – Conversion strategy.

  • options (MarkdownOptions | None) – Additional fast-h2m conversion options. Explicit values override defaults supplied by the selected mode.

Returns:

The converted Markdown text.

Raises:
Return type:

str

silkworm.markdown.stream_html_to_markdown(chunks, *, mode='minimal', options=None)[source]

Convert an iterable of HTML chunks and concatenate all Markdown output.

Parameters:
Returns:

Markdown emitted while consuming and finalizing the stream.

Return type:

str

async silkworm.markdown.stream_html_to_markdown_async(chunks, *, mode='minimal', options=None)[source]

Convert an async iterable of HTML chunks into one Markdown string.

Parameters:
Returns:

Markdown emitted while consuming and finalizing the stream.

Return type:

str