Coverage for src / rendercv / renderer / markdown.py: 100%
11 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-25 13:49 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-25 13:49 +0000
1import pathlib
3from rendercv.schema.models.rendercv_model import RenderCVModel
5from .path_resolver import resolve_rendercv_file_path
6from .templater.templater import render_full_template
9def generate_markdown(rendercv_model: RenderCVModel) -> pathlib.Path | None:
10 """Generate Markdown file from CV model via Jinja2 templates.
12 Why:
13 Markdown provides human-readable CV format for version control and
14 web platforms. Acts as intermediate format for HTML generation.
16 Args:
17 rendercv_model: Validated CV model with content.
19 Returns:
20 Path to generated Markdown file, or None if generation disabled.
21 """
22 if rendercv_model.settings.render_command.dont_generate_markdown:
23 return None
24 markdown_path = resolve_rendercv_file_path(
25 rendercv_model, rendercv_model.settings.render_command.markdown_path
26 )
27 markdown_contents = render_full_template(rendercv_model, "markdown")
28 markdown_path.write_text(markdown_contents, encoding="utf-8")
29 return markdown_path