Source code for rmdawn.catren
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tempfile
from pathlib import Path
from typing import List, Optional
from rmdawn.rmdawn import rmdawn
from rmdawn.render import render
[docs]def catren(in_files: List[str],
rmd_file: Optional[str] = None,
out_file: Optional[str] = None,
out_format: Optional[str] = None) -> None:
"""Create an R markdown file from source files and then render it.
:param in_files: A list of YAML, markdown, and code file names.
:param rmd_file: The name of the intermediate rmd file.
:param out_file: The name of the final output file.
:param out_format: The format of the final output file.
:note: If ``out_format`` is not provided, the output format will be
inferred from the ``out_file`` argument. To create an html
notebook, the ``out_format`` must be ``html_notebook``.
For slides in html or pdf format, the ``out_format`` must be
- ``slidy_presentation``,
- ``ioslides_presentation``,
- ``beamer_presentation``, or
- ``revealjs::revealjs_presentation``.
"""
if rmd_file:
Path(rmd_file).write_text(rmdawn(in_files))
render(rmd_file, out_file=out_file, out_format=out_format)
elif out_file:
rmd_file = Path(out_file).stem + ".Rmd"
Path(rmd_file).write_text(rmdawn(in_files))
render(rmd_file, out_file=out_file, out_format=out_format)
else:
with tempfile.NamedTemporaryFile(mode="w") as ntf:
ntf.write(rmdawn(in_files))
render(ntf.name, out_file=out_file, out_format=out_format)