Skip to content
cccskills
FreePublished on GitHub

pandoc

Universal document conversion with Pandoc. Use when converting between document formats (Markdown, DOCX, HTML, LaTeX, PDF, EPUB, PPTX, reveal.js, CSV, RST, Org), generating polished deliverables from plain text, batch-converting files, applying custom templates or Lua filters, or producing slide decks from Markdown.

The English summary is being prepared. Showing the original description.

Works withWordPowerPoint
See how to install

Files included (1)

  • SKILL.md5.9 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Pandoc Skill

Universal document converter — transforms content between 40+ formats while preserving structure, metadata, and styling.

When to Use

  • Convert Markdown → DOCX, PDF, HTML, EPUB, PPTX, or slides
  • Convert DOCX/HTML → Markdown (for ingestion into repos or KBs)
  • Batch-convert multiple files in one pass
  • Generate professional reports with custom templates
  • Build reveal.js slide decks from Markdown
  • Extract structured content from HTML or EPUB
  • Apply Lua filters for custom transformations (citation rewriting, heading renumbering, metadata injection)
  • Produce camera-ready LaTeX or PDF from Markdown drafts

Core Commands

# Markdown → Word
pandoc input.md -o output.docx

# Markdown → PDF (requires LaTeX engine)
pandoc input.md -o output.pdf --pdf-engine=lualatex

# Markdown → PDF (no LaTeX — use HTML intermediate)
pandoc input.md -t html5 -o output.pdf --pdf-engine=wkhtmltopdf

# Markdown → reveal.js slides
pandoc slides.md -t revealjs -s -o slides.html

# Markdown → PowerPoint
pandoc input.md -o output.pptx

# Markdown → EPUB
pandoc input.md --metadata title="My Book" -o output.epub

# Word → Markdown (for repo ingestion)
pandoc input.docx -t markdown -o output.md

# HTML → Markdown
pandoc input.html -t markdown -o output.md

# CSV → HTML table
pandoc input.csv -f csv -t html -o table.html

# With custom template
pandoc input.md --template=template.tex -o output.pdf

# With Lua filter
pandoc input.md --lua-filter=filter.lua -o output.docx

# Batch convert (all .md in directory)
for f in *.md; do pandoc "$f" -o "${f%.md}.docx"; done

Workflow

  1. Identify source and target formats — determine the conversion path.
  2. Check if extras are needed:
    • PDF output → needs a LaTeX engine (lualatex, xelatex) or wkhtmltopdf
    • Styled DOCX → use --reference-doc=reference.docx
    • Slides → choose revealjs (HTML) or pptx (PowerPoint)
    • Citations → use --citeproc with a .bib file
  3. Run the conversion — use the simplest command that achieves the goal.
  4. Verify output:
    • For DOCX/PPTX: open or use the doc/pptx skill for visual QA
    • For PDF: use the pdf skill to render pages and inspect
    • For HTML: open in browser or use agent-browser skill
  5. Iterate — adjust metadata, templates, or filters as needed.
  6. Clean up — remove intermediate files.

Key Options

FlagPurpose
-f FORMATInput format (auto-detected from extension if omitted)
-t FORMATOutput format (auto-detected from extension if omitted)
-s / --standaloneProduce complete document (not fragment)
--template=FILECustom template for output
--reference-doc=FILEStyle reference for DOCX/PPTX output
--pdf-engine=ENGINEPDF engine: lualatex, xelatex, wkhtmltopdf, weasyprint
--tocGenerate table of contents
--number-sectionsNumber headings
--metadata KEY=VALSet metadata (title, author, date)
--lua-filter=FILEApply Lua filter for custom transforms
--citeprocProcess citations from bibliography
--bibliography=FILEBibTeX/CSL JSON bibliography
--highlight-style=STYLECode syntax highlighting theme
--columns=NLine wrap width for plain text output
--wrap=noneNo line wrapping (useful for Markdown output)
--extract-media=DIRExtract images to directory

YAML Metadata Block

Place at the top of Markdown files for rich output:

---
title: "Document Title"
author: "Author Name"
date: 2026-05-16
abstract: "Brief summary"
lang: en
toc: true
number-sections: true
geometry: margin=1in
fontsize: 12pt
---

Lua Filters (Advanced)

Pandoc supports Lua scripting for custom transformations. Save as .lua:

-- uppercase-headings.lua — capitalize all headings
function Header(el)
  el.content = pandoc.walk_inline(el.content, {
    Str = function(s) return pandoc.Str(s.text:upper()) end
  })
  return el
end

Use with: pandoc input.md --lua-filter=uppercase-headings.lua -o output.docx

Temp and Output Conventions

  • Intermediate files: tmp/pandoc/ — delete when done
  • Final deliverables: output/pandoc/ or alongside source file
  • Templates: store in ~/.pandoc/templates/ or project-local templates/
  • Lua filters: store in ~/.pandoc/filters/ or project-local filters/

Dependencies

Pandoc is installed via the system package manager (brew install pandoc on macOS, apt install pandoc on Linux).

For PDF output, one of:

# LaTeX (full — large install ~4GB)
brew install --cask mactex

# LaTeX (minimal — recommended)
brew install basictex
# then: sudo tlmgr install collection-fontsrecommended

# No LaTeX alternative
brew install wkhtmltopdf
# or: pip install weasyprint

Format Quick Reference

InputBest Output Targets
Markdowndocx, pdf, html, epub, pptx, revealjs, latex
DOCXmarkdown, html, plain
HTMLmarkdown, docx, epub, pdf
LaTeXpdf, html, docx
CSVhtml (tables), markdown
EPUBmarkdown, html, docx
Org-modemarkdown, html, docx, pdf
RSTmarkdown, html, docx, pdf

Integration with Other Skills

  • doc/docx skill — use pandoc to generate DOCX, then doc skill for visual QA
  • pdf skill — use pandoc for PDF generation, then pdf skill to render and verify
  • pptx skill — use pandoc for slide generation, then pptx skill for refinement
  • deep-research — convert research outputs to polished deliverables
  • hyperframes — convert Markdown scripts to HTML for video compositions

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

ai-sdk

Free

Vercel AI SDK expert guidance. Use when building AI-powered features — chat interfaces, text generation, structured output, tool calling, agents, MCP integration, streaming, embeddings, reranking, image generation, or working with any LLM provider.

The English summary is being prepared. Showing the original description.

garochee33/DSH4Updated Oct 12, 2026

Algorithm design and analysis skill for DSH; use when working on optimization, data structures, or computational procedures.

The English summary is being prepared. Showing the original description.

garochee33/DSH4Updated Oct 12, 2026

Design and implement scalable API gateways, RESTful APIs, GraphQL endpoints, WebSocket handlers, and microservice communication patterns. Use when creating API routes, designing endpoints, implementing middleware, or setting up service mesh architectures.

The English summary is being prepared. Showing the original description.

garochee33/DSH4Updated Oct 12, 2026

Implement a task N ways in parallel and pick the best. Spawns multiple subagents in isolated worktrees, evaluates all candidates, and applies the winner. Use when asked to "best of n", "try multiple approaches", "parallel implementations", "/best-of-n", or "/bon".

The English summary is being prepared. Showing the original description.

garochee33/DSH4Updated Oct 12, 2026

check

Free

Check your work with a verification subagent. Spawns a verifier that reviews diffs, runs builds and tests, and evaluates correctness. Use when asked to "check work", "verify changes", "self-verify", "/check", "/verify", "/check-work", or "/self-verify".

The English summary is being prepared. Showing the original description.

garochee33/DSH4Updated Oct 12, 2026

CI/CD pipeline design, GitHub Actions workflows, deployment automation, infrastructure as code, and release management. Use when setting up CI/CD, automating deployments, configuring build pipelines, or managing releases.

The English summary is being prepared. Showing the original description.

garochee33/DSH4Updated Oct 12, 2026

See all skills by garochee33

Report a problem with this skill