38 lines
937 B
Python
38 lines
937 B
Python
"""Assemble .fodt from markdown."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
from .emitter import emit_fodt
|
|
|
|
|
|
def convert_md_to_fodt(
|
|
md_path: str | Path,
|
|
out_path: str | Path | None = None,
|
|
*,
|
|
emdash_to_hyphen: bool = False,
|
|
) -> Path:
|
|
"""
|
|
Convert markdown to Flat ODF Text (.fodt).
|
|
|
|
Returns path to written .fodt file.
|
|
"""
|
|
md_path = Path(md_path).resolve()
|
|
if out_path is None:
|
|
out_path = md_path.with_suffix(".fodt")
|
|
else:
|
|
out_path = Path(out_path)
|
|
if out_path.suffix.lower() != ".fodt":
|
|
out_path = out_path.with_suffix(".fodt")
|
|
|
|
md_text = md_path.read_text(encoding="utf-8")
|
|
xml = emit_fodt(
|
|
md_text,
|
|
work_dir=md_path.parent,
|
|
emdash_to_hyphen=emdash_to_hyphen,
|
|
)
|
|
out_path.parent.mkdir(parents=True, exist_ok=True)
|
|
out_path.write_text(xml, encoding="utf-8")
|
|
return out_path.resolve()
|