h2m library

Classes

AnnotationKind
ConversionOptions
Main conversion options for HTML to Markdown conversion.
ConversionOptionsUpdate
Partial update for ConversionOptions.
ConversionResult
The primary result of HTML conversion and extraction.
DocumentMetadata
Document-level metadata extracted from <head> and top-level elements.
DocumentNode
A single node in the document tree.
DocumentStructure
A structured document tree representing the semantic content of an HTML document.
GridCell
A single cell in a table grid.
H2mBridge
HeaderMetadata
Header element metadata with hierarchy tracking.
HtmlMetadata
Comprehensive metadata extraction result from HTML document.
ImageMetadata
Image metadata with source and dimensions.
LinkMetadata
Hyperlink metadata with categorization and attributes.
NodeContent
NodeContext
Context information passed to all visitor methods.
PreprocessingOptions
HTML preprocessing options for document cleanup before conversion.
PreprocessingOptionsUpdate
Partial update for PreprocessingOptions.
ProcessingWarning
A non-fatal diagnostic produced during HTML conversion.
StructuredData
Structured data block (JSON-LD, Microdata, or RDFa).
TableData
A top-level extracted table with both structured data and markdown representation.
TableGrid
A structured table grid with cell-level data including spans.
TextAnnotation
A styling or semantic annotation that applies to a byte range within a node's text.
VisitorHandle
VisitResult

Enums

CodeBlockStyle
Code block fence style in Markdown output.
HeadingStyle
Heading style options for Markdown output.
HighlightStyle
Highlight rendering style for <mark> elements.
ImageType
Image source classification for proper handling and processing.
LinkStyle
Link rendering style in Markdown output.
LinkType
Link classification based on href value and document context.
ListIndentType
List indentation character type.
NewlineStyle
Line break syntax in Markdown output.
NodeType
Node type enumeration covering all HTML element types.
OutputFormat
Output format for conversion.
PreprocessingPreset
HTML preprocessing aggressiveness level.
StructuredDataType
Structured data format type.
TextDirection
Text directionality of document content.
WarningKind
Categories of processing warnings.
WhitespaceMode
Whitespace handling strategy during conversion.

Extensions

AnnotationKindPatterns on AnnotationKind
Adds pattern-matching-related methods to AnnotationKind.
NodeContentPatterns on NodeContent
Adds pattern-matching-related methods to NodeContent.
VisitResultPatterns on VisitResult
Adds pattern-matching-related methods to VisitResult.

Functions

convert({required String html, ConversionOptions? options}) Future<ConversionResult>
Convert HTML to Markdown, returning a ConversionResult with content, metadata, images, and warnings.
createConversionOptionsFromJson({required String json}) Future<ConversionOptions>
createConversionOptionsFromJsonWithVisitor({required String json, VisitorHandle? visitor}) Future<ConversionOptions>
Build a ConversionOptions from a JSON blob and attach a Dart-built VisitorHandle to its visitor field. The mirror struct uses final dart fields, so callers cannot patch the visitor in after JSON load — this helper does the merge on the Rust side instead.
createConversionOptionsUpdateFromJson({required String json}) Future<ConversionOptionsUpdate>
createConversionResultFromJson({required String json}) Future<ConversionResult>
createDocumentMetadataFromJson({required String json}) Future<DocumentMetadata>
createDocumentNodeFromJson({required String json}) Future<DocumentNode>
createDocumentStructureFromJson({required String json}) Future<DocumentStructure>
createGridCellFromJson({required String json}) Future<GridCell>
createHeaderMetadataFromJson({required String json}) Future<HeaderMetadata>
createHtmlMetadataFromJson({required String json}) Future<HtmlMetadata>
createHtmlVisitor({required FutureOr<VisitResult> visitText(NodeContext, String), required FutureOr<VisitResult> visitElementStart(NodeContext), required FutureOr<VisitResult> visitElementEnd(NodeContext, String), required FutureOr<VisitResult> visitLink(NodeContext, String, String, String?), required FutureOr<VisitResult> visitImage(NodeContext, String, String, String?), required FutureOr<VisitResult> visitHeading(NodeContext, PlatformInt64, String, String?), required FutureOr<VisitResult> visitCodeBlock(NodeContext, String?, String), required FutureOr<VisitResult> visitCodeInline(NodeContext, String), required FutureOr<VisitResult> visitListItem(NodeContext, bool, String, String), required FutureOr<VisitResult> visitListStart(NodeContext, bool), required FutureOr<VisitResult> visitListEnd(NodeContext, bool, String), required FutureOr<VisitResult> visitTableStart(NodeContext), required FutureOr<VisitResult> visitTableRow(NodeContext, List<String>, bool), required FutureOr<VisitResult> visitTableEnd(NodeContext, String), required FutureOr<VisitResult> visitBlockquote(NodeContext, String, PlatformInt64), required FutureOr<VisitResult> visitStrong(NodeContext, String), required FutureOr<VisitResult> visitEmphasis(NodeContext, String), required FutureOr<VisitResult> visitStrikethrough(NodeContext, String), required FutureOr<VisitResult> visitUnderline(NodeContext, String), required FutureOr<VisitResult> visitSubscript(NodeContext, String), required FutureOr<VisitResult> visitSuperscript(NodeContext, String), required FutureOr<VisitResult> visitMark(NodeContext, String), required FutureOr<VisitResult> visitLineBreak(NodeContext), required FutureOr<VisitResult> visitHorizontalRule(NodeContext), required FutureOr<VisitResult> visitCustomElement(NodeContext, String, String), required FutureOr<VisitResult> visitDefinitionListStart(NodeContext), required FutureOr<VisitResult> visitDefinitionTerm(NodeContext, String), required FutureOr<VisitResult> visitDefinitionDescription(NodeContext, String), required FutureOr<VisitResult> visitDefinitionListEnd(NodeContext, String), required FutureOr<VisitResult> visitForm(NodeContext, String?, String?), required FutureOr<VisitResult> visitInput(NodeContext, String, String?, String?), required FutureOr<VisitResult> visitButton(NodeContext, String), required FutureOr<VisitResult> visitAudio(NodeContext, String?), required FutureOr<VisitResult> visitVideo(NodeContext, String?), required FutureOr<VisitResult> visitIframe(NodeContext, String?), required FutureOr<VisitResult> visitDetails(NodeContext, bool), required FutureOr<VisitResult> visitSummary(NodeContext, String), required FutureOr<VisitResult> visitFigureStart(NodeContext), required FutureOr<VisitResult> visitFigcaption(NodeContext, String), required FutureOr<VisitResult> visitFigureEnd(NodeContext, String)}) Future<VisitorHandle>
Construct a VisitorHandle from Dart callback closures. FRB synthesises a Dart-callable function type for each closure parameter, which is the whole point of taking them as impl Fn(...) -> DartFnFuture<R> parameters rather than storing them as Box<dyn Fn(...)> fields on an opaque struct (FRB v2 cannot generate callable closure types in that shape).
createImageMetadataFromJson({required String json}) Future<ImageMetadata>
createLinkMetadataFromJson({required String json}) Future<LinkMetadata>
createNodeContextFromJson({required String json}) Future<NodeContext>
createPreprocessingOptionsFromJson({required String json}) Future<PreprocessingOptions>
createPreprocessingOptionsUpdateFromJson({required String json}) Future<PreprocessingOptionsUpdate>
createProcessingWarningFromJson({required String json}) Future<ProcessingWarning>
createStructuredDataFromJson({required String json}) Future<StructuredData>
createTableDataFromJson({required String json}) Future<TableData>
createTableGridFromJson({required String json}) Future<TableGrid>
createTextAnnotationFromJson({required String json}) Future<TextAnnotation>