all2md.transforms.options

Parameter dataclasses for built-in transforms.

This module defines dataclasses for transform parameters, following the same pattern as all2md.options. These are used for CLI argument generation and validation.

Examples

Create options for HeadingOffsetTransform:

>>> options = HeadingOffsetOptions(offset=2)
>>> transform = HeadingOffsetTransform(offset=options.offset)
class all2md.transforms.options.RemoveNodesOptions

Bases: object

Options for RemoveNodesTransform.

Parameters:

node_types (list[str], default = ['image']) – List of node types to remove (e.g., ‘image’, ‘table’, ‘code_block’)

Examples

>>> options = RemoveNodesOptions(node_types=['image', 'table'])
node_types: list[str]
__init__(node_types: list[str] = <factory>) None
class all2md.transforms.options.HeadingOffsetOptions

Bases: object

Options for HeadingOffsetTransform.

Parameters:

offset (int, default = 1) – Number of levels to shift headings (positive or negative)

Examples

>>> options = HeadingOffsetOptions(offset=2)
offset: int = 1
__init__(offset: int = 1) None
class all2md.transforms.options.LinkRewriterOptions

Bases: object

Options for LinkRewriterTransform.

Parameters:
  • pattern (str) – Regex pattern to match in URLs

  • replacement (str) – Replacement string for matched pattern

Examples

>>> options = LinkRewriterOptions(
...     pattern=r'^/docs/',
...     replacement='https://example.com/docs/'
... )
pattern: str = ''
replacement: str = ''
__init__(pattern: str = '', replacement: str = '') None
class all2md.transforms.options.TextReplacerOptions

Bases: object

Options for TextReplacerTransform.

Parameters:
  • find (str) – Text to find

  • replace (str) – Replacement text

Examples

>>> options = TextReplacerOptions(find="TODO", replace="DONE")
find: str = ''
replace: str = ''
__init__(find: str = '', replace: str = '') None
class all2md.transforms.options.AddHeadingIdsOptions

Bases: object

Options for AddHeadingIdsTransform.

Parameters:
  • id_prefix (str, default = "") – Prefix to add to all generated IDs

  • separator (str, default = "-") – Separator for multi-word slugs and duplicate handling

Examples

>>> options = AddHeadingIdsOptions(id_prefix="doc-", separator="-")
id_prefix: str = ''
separator: str = '-'
__init__(id_prefix: str = '', separator: str = '-') None
class all2md.transforms.options.RemoveBoilerplateOptions

Bases: object

Options for RemoveBoilerplateTextTransform.

Parameters:
  • patterns (list[str], default = common patterns) – List of regex patterns to match for removal

  • skip_if_truncated (bool, default = True) – Skip pattern matching when text exceeds MAX_TEXT_LENGTH_FOR_REGEX to avoid false positives with end-anchored patterns

Examples

>>> options = RemoveBoilerplateOptions(
...     patterns=[r"^CONFIDENTIAL$", r"^Page \d+ of \d+$"]
... )
patterns: list[str]
skip_if_truncated: bool = True
__init__(patterns: list[str] = <factory>, skip_if_truncated: bool = True) None
class all2md.transforms.options.AddTimestampOptions

Bases: object

Options for AddConversionTimestampTransform.

Parameters:
  • field_name (str, default = "conversion_timestamp") – Metadata field name for timestamp

  • format (str, default = "iso") – Timestamp format: “iso”, “unix”, or strftime format string

  • timespec (str, default = "seconds") – Time precision for ISO format timestamps. Valid values are: “auto”, “hours”, “minutes”, “seconds”, “milliseconds”, “microseconds”. Only applies when format=”iso”.

Examples

>>> options = AddTimestampOptions(
...     field_name="converted_at",
...     format="%Y-%m-%d %H:%M:%S"
... )
>>> options = AddTimestampOptions(
...     format="iso",
...     timespec="microseconds"
... )
field_name: str = 'conversion_timestamp'
format: str = 'iso'
timespec: str = 'seconds'
__init__(field_name: str = 'conversion_timestamp', format: str = 'iso', timespec: str = 'seconds') None
class all2md.transforms.options.WordCountOptions

Bases: object

Options for CalculateWordCountTransform.

Parameters:
  • word_field (str, default = "word_count") – Metadata field name for word count

  • char_field (str, default = "char_count") – Metadata field name for character count

Examples

>>> options = WordCountOptions(
...     word_field="words",
...     char_field="characters"
... )
word_field: str = 'word_count'
char_field: str = 'char_count'
__init__(word_field: str = 'word_count', char_field: str = 'char_count') None
class all2md.transforms.options.AddAttachmentFootnotesOptions

Bases: object

Options for AddAttachmentFootnotesTransform.

Parameters:
  • section_title (str or None, default = "Attachments") – Title for the footnote section heading (None to skip heading)

  • add_definitions_for_images (bool, default = True) – Add definitions for image footnote references

  • add_definitions_for_links (bool, default = True) – Add definitions for link footnote references

Examples

>>> options = AddAttachmentFootnotesOptions(
...     section_title="Image Sources",
...     add_definitions_for_images=True
... )
section_title: str | None = 'Attachments'
add_definitions_for_images: bool = True
__init__(section_title: str | None = 'Attachments', add_definitions_for_images: bool = True, add_definitions_for_links: bool = True) None
class all2md.transforms.options.GenerateTocOptions

Bases: object

Options for GenerateTocTransform.

Parameters:
  • title (str, default = "Table of Contents") – Title for the TOC section

  • max_depth (int, default = 3) – Maximum heading level to include (1-6)

  • position (str, default = "top") – Position to insert the TOC (“top” or “bottom”)

  • add_links (bool, default = True) – Whether to create links to headings (requires heading IDs)

  • separator (str, default = "-") – Separator for generating heading IDs when not present

  • set_ids_if_missing (bool, default = False) – Inject generated IDs into heading metadata when missing

Examples

>>> options = GenerateTocOptions(
...     title="Contents",
...     max_depth=2,
...     position="bottom"
... )
title: str = 'Table of Contents'
max_depth: int = 3
position: str = 'top'
separator: str = '-'
set_ids_if_missing: bool = False
__init__(title: str = 'Table of Contents', max_depth: int = 3, position: str = 'top', add_links: bool = True, separator: str = '-', set_ids_if_missing: bool = False) None