md2star package
Subpackages
- md2star.preprocessing package
- Submodules
- md2star.preprocessing.alt_text module
- md2star.preprocessing.images module
- md2star.preprocessing.language module
- md2star.preprocessing.lint module
- md2star.preprocessing.math module
- md2star.preprocessing.mermaid module
- md2star.preprocessing.pipeline module
- md2star.preprocessing.regexes module
- md2star.preprocessing.tables module
- Module contents
- Submodules
Submodules
- md2star.api module
- md2star.cache module
- md2star.cli module
- md2star.click_cli module
- md2star.doctor module
- md2star.errors module
- md2star.gui module
- md2star.gui_server module
- md2star.logging module
- md2star.mcp module
- md2star.postprocess module
- md2star.reverse module
- md2star.reverse_diagrams module
- md2star.templates module
- md2star.twin_cli module
Module contents
md2star — Markdown → DOCX/PPTX/PDF bridge built on Pandoc.
Module summary
Public package surface for md2star. Re-exports the preprocessor entry
points so consumers can import them either from the top-level package
or from the md2star.preprocessing submodule.
Usage
>>> from md2star import preprocess_markdown
>>> out = preprocess_markdown("# Hello\n", base_dir=".")
>>> print(out.splitlines()[0]) # '# Hello'
# Hello
- md2star.fill_empty_alt_text(content, base_dir='.', model=None)[source]
Replace
empty-alt images with an LLM-generated description.Mirrors
md2star.preprocessing.lint.lint_with_llm()’s safety net: the model call in_generate_alt()swallows every failure (engine unresolvable, backend/model unreachable, transport error) intoNone, and each such image is left untouched. The pass is never load-bearing. model is an optional per-call vision-model tag override; whenNonethe tag comes from md2star’s resolved engine descriptor.
- md2star.lint_with_llm(content, model=None)[source]
Send content to the local LLM for syntax-only fixes; return original on any failure.
The 0.5×–2× length guard is a coarse hallucination/truncation check; if the response strays outside that band, the original is kept. Resolution of which model and backend to use is delegated entirely to the suite’s brief -> engine contract (
md2star._engine.engine()); model is an optional per-call tag override passed straight through tobest_engine_ai_helper.llm.chat(). Any failure — the engine cannot be resolved (missing brief, no reachable backend/model), the request errors, or the output looks wrong — degrades to the untouched content.
- md2star.preprocess_markdown(content, base_dir='.', inject_metadata=True, lint_enabled=False, skip_phases=None, *, allow_remote_images=False, offline=False)[source]
Run the full preprocessing pipeline on a Markdown string.
- Parameters:
content (str) – Raw Markdown source.
base_dir (str) – Directory used to resolve relative image paths and to receive downloaded remote images / mermaid renders.
inject_metadata (bool) – Whether to inject
lang/date_formatbased on language detection (default: True). Equivalent to skippinglanguage.lint_enabled (bool) – Whether to run the optional Ollama LLM lint (default: False). Opt-in because it requires Ollama, adds latency, and can in rare cases rewrite content despite the safety guard.
skip_phases (Iterable[str], optional) – Phase names to skip (see
PHASES). Merged with anymd2star_skip:list found in the document’s YAML front-matter.allow_remote_images (bool, keyword-only) – Whether to download
references. Defaults toFalse(the safe-by-default policy introduced in v1.2.0): remote image markers are left in place, and the user sees a warning if any were skipped. PassTrueto opt in.offline (bool, keyword-only) – Hard-disable every network-touching phase. Takes precedence over
allow_remote_imagesandlint_enabled.
- Return type: