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: if Ollama is missing, the daemon is unreachable, the vision model is not pulled (and cannot be pulled), or the request fails, the original content is returned unchanged. The pass is never load-bearing.
- md2star.is_ollama_installed()[source]
True iff the
ollamabinary is reachable onPATH.Used as the auto-enable gate for lint: if the user does not have Ollama installed at all, we stay completely silent. If they do, we take care of starting the daemon and pulling the model on demand — the rationale being “the tool is here, so use it without asking”.
- Return type:
- 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: