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

1import pathlib 

2 

3from rendercv.schema.models.rendercv_model import RenderCVModel 

4 

5from .path_resolver import resolve_rendercv_file_path 

6from .templater.templater import render_full_template 

7 

8 

9def generate_markdown(rendercv_model: RenderCVModel) -> pathlib.Path | None: 

10 """Generate Markdown file from CV model via Jinja2 templates. 

11 

12 Why: 

13 Markdown provides human-readable CV format for version control and 

14 web platforms. Acts as intermediate format for HTML generation. 

15 

16 Args: 

17 rendercv_model: Validated CV model with content. 

18 

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