Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Skill for the rendering infrastructure module providing multi-format output generation including PDF manuscripts, HTML web pages, and Beamer/Reveal.js slides. Use when rendering research outputs, converting markdown to PDF, generating slides, or configuring LaTeX rendering.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | -8% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 40% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -43% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -14% | 0% |
Multi-format output generation for research manuscripts. Converts markdown source into professional PDFs, HTML, and slides.
core.py)The primary entry point for all rendering operations:
pythonfrom pathlib import Path from infrastructure.rendering import RenderManager, RenderingConfig # Default configuration (loaded from environment) renderer = RenderManager() # Custom configuration config = RenderingConfig() # configure attributes as needed renderer = RenderManager( config=config, manuscript_dir=Path("projects/my_project/manuscript"), figures_dir=Path("projects/my_project/output/figures"), ) # Render a single source file (.md or .tex) renderer.render_pdf(source_file) renderer.render_web(source_file) # standalone HTML renderer.render_slides(source_file) # beamer (PDF) by default renderer.render_all(source_file) # md → slides + web; tex → PDF # Render combined manuscript from multiple ordered source files renderer.render_combined_pdf(source_files, manuscript_dir, project_name="my_project")
config.py)pythonfrom infrastructure.rendering import RenderingConfig config = RenderingConfig() # Configure PDF, HTML, slides options
pythonfrom infrastructure.rendering import discover_manuscript_files, verify_figures_exist # Find all manuscript markdown (and .tex) files in canonical order files = discover_manuscript_files(manuscript_dir) # Verify expected figures exist (returns dict with figures_dir_exists, # found_figures, missing_figures, total_expected) status = verify_figures_exist(project_root, manuscript_dir)
pdf_renderer.py)The main PDF rendering engine using Pandoc and LaTeX. Not re-exported via __init__.py — use direct import:
pythonfrom infrastructure.rendering.pdf_renderer import PDFRenderer renderer = PDFRenderer(config) renderer.render(source_file) renderer.render_markdown(source_file) renderer.render_combined(source_files, manuscript_dir, project_name="my_project")
CLI:
bashuv run python -m infrastructure.rendering.cli pdf manuscript.tex # Subcommands: pdf | all | slides | web — each takes a positional source file (TeX or Markdown) uv run python -m infrastructure.rendering.cli all manuscript.tex uv run python -m infrastructure.rendering.render_all_cli
slides_renderer.py)Direct import required (not in __init__.py):
pythonfrom infrastructure.rendering.slides_renderer import SlidesRenderer renderer = SlidesRenderer(config) renderer.render(source_file, output_format="beamer") # PDF slides renderer.render(source_file, output_format="revealjs") # HTML slides
web_renderer.py)Direct import required (not in __init__.py):
pythonfrom infrastructure.rendering.web_renderer import WebRenderer renderer = WebRenderer(config) renderer.render(source_file) renderer.render_combined(source_files, manuscript_dir, project_name="my_project")
latex_utils.py)pythonfrom infrastructure.rendering.latex_utils import compile_latex # Core LaTeX compilation function used by PDF and slides renderers
latex_package_validator.py)Module-level CLI entry point — run as a module to validate the host LaTeX install:
bashuv run python -m infrastructure.rendering.latex_package_validator
Troubleshooting:
bash# Install missing LaTeX packages sudo tlmgr install multirow cleveref doi newunicodechar
docx_renderer.py, epub_renderer.py)Re-exported at package level — render Microsoft Word and e-reader outputs from a combined Markdown file (both via pandoc):
pythonfrom pathlib import Path from infrastructure.rendering import render_docx, render_epub docx_result = render_docx(Path("combined.md"), Path("output.docx"), bibliography=None) epub_result = render_epub(Path("combined.md"), Path("output.epub"), cover_image=None)
Signatures:
pythonrender_docx(combined_md: Path, output_path: Path, *, bibliography: Path | None = None, reference_doc: Path | None = None, pandoc_path: str = "pandoc", extra_args: list[str] | None = None) -> DocxRenderResult render_epub(combined_md: Path, output_path: Path, *, bibliography: Path | None = None, cover_image: Path | None = None, pandoc_path: str = "pandoc", extra_args: list[str] | None = None) -> EpubRenderResult
convert_latex_images.lua — Pandoc Lua filter for LaTeX image conversionide_style.css — CSS stylesheet for IDE-style rendering__init__.py)Only these are re-exported at package level:
| Export | Type | | --- | --- | | RenderManager | Class | | RenderingConfig | Class | | DocxRenderResult | Class | | EpubRenderResult | Class | | discover_manuscript_files | Function | | verify_figures_exist | Function | | render_docx | Function | | render_epub | Function | | substitute_manuscript_text | Function | | write_resolved_manuscript_tree | Function | | EXCLUDED_DOC_FILENAMES | Constant |
Other measured skills in the registry, with their headline benchmark lift.