6.3 KiB
6.3 KiB
Pandoc Quick Reference Snippets
Copy-paste ready commands for common Pandoc operations.
Validation
# Validate document
PLUGIN_DIR="~/.claude/marketplaces/cadrianmae-claude-marketplace/plugins/pandoc"
python3 "$PLUGIN_DIR/skills/pandoc/scripts/validate.py" document.md
Basic Conversions
# Markdown to PDF
pandoc document.md -o document.pdf
# Markdown to HTML
pandoc document.md -o document.html --standalone
# Markdown to DOCX
pandoc document.md -o document.docx
PDF with Options
# Academic paper
pandoc paper.md -o paper.pdf \
--pdf-engine=pdflatex \
--citeproc \
--number-sections \
--toc
# With XeLaTeX (Unicode support)
pandoc paper.md -o paper.pdf \
--pdf-engine=xelatex \
--citeproc \
--number-sections
# Custom margins
pandoc doc.md -o doc.pdf \
-V geometry:margin=1.5in
HTML with Options
# Standalone HTML with TOC
pandoc doc.md -o doc.html \
--standalone \
--toc \
--toc-depth=3
# Self-contained (embed resources)
pandoc doc.md -o doc.html \
--standalone \
--self-contained
# With custom CSS
pandoc doc.md -o doc.html \
--standalone \
--css=style.css
# With syntax highlighting
pandoc doc.md -o doc.html \
--standalone \
--highlight-style=tango
Presentations
# Beamer PDF slides
pandoc slides.md -o slides.pdf --to beamer
# reveal.js web slides
pandoc slides.md -o slides.html \
--to revealjs \
--standalone \
-V theme=black
# With custom theme
pandoc slides.md -o slides.pdf \
--to beamer \
-V theme=Madrid \
-V colortheme=dolphin
Using Templates
# Copy template
PLUGIN_DIR="~/.claude/marketplaces/cadrianmae-claude-marketplace/plugins/pandoc"
cp "$PLUGIN_DIR/skills/pandoc/assets/templates/academic-paper.yaml" paper.md
# Copy bibliography template
cp "$PLUGIN_DIR/skills/pandoc/assets/templates/references.bib" references.bib
# Copy Makefile
cp "$PLUGIN_DIR/skills/pandoc/assets/templates/Makefile" Makefile
Using Defaults Files
# Create defaults file
PLUGIN_DIR="~/.claude/marketplaces/cadrianmae-claude-marketplace/plugins/pandoc"
cp "$PLUGIN_DIR/skills/pandoc/assets/templates/defaults-pdf.yaml" defaults.yaml
# Use defaults
pandoc document.md --defaults=defaults.yaml -o output.pdf
# Override output
pandoc document.md --defaults=defaults.yaml -o custom-name.pdf
Project Setup
# Create project structure
mkdir -p project/{images,.pandoc}
cd project
# Copy templates
PLUGIN_DIR="~/.claude/marketplaces/cadrianmae-claude-marketplace/plugins/pandoc"
cp "$PLUGIN_DIR/skills/pandoc/assets/templates/academic-paper.yaml" paper.md
cp "$PLUGIN_DIR/skills/pandoc/assets/templates/references.bib" references.bib
cp "$PLUGIN_DIR/skills/pandoc/assets/templates/defaults-pdf.yaml" .pandoc/defaults.yaml
cp "$PLUGIN_DIR/skills/pandoc/assets/templates/Makefile" Makefile
# Setup local scripts
make setup
# Build
make
Batch Conversion
# Convert all MD files to PDF
for file in *.md; do
pandoc "$file" -o "${file%.md}.pdf" --pdf-engine=pdflatex
done
# With validation
PLUGIN_DIR="~/.claude/marketplaces/cadrianmae-claude-marketplace/plugins/pandoc"
for file in *.md; do
if python3 "$PLUGIN_DIR/skills/pandoc/scripts/validate.py" "$file"; then
pandoc "$file" -o "${file%.md}.pdf"
fi
done
Download Citation Styles
# Harvard
curl -o harvard.csl https://raw.githubusercontent.com/citation-style-language/styles/master/harvard-cite-them-right.csl
# APA
curl -o apa.csl https://raw.githubusercontent.com/citation-style-language/styles/master/apa.csl
# IEEE
curl -o ieee.csl https://raw.githubusercontent.com/citation-style-language/styles/master/ieee.csl
# Chicago
curl -o chicago.csl https://raw.githubusercontent.com/citation-style-language/styles/master/chicago-author-date.csl
Debugging
# Check Pandoc version
pandoc --version
# Generate LaTeX to inspect
pandoc doc.md -o doc.tex
cat doc.tex
# Minimal test
echo "# Test" > test.md
pandoc test.md -o test.pdf
# Verbose output
pandoc doc.md -o doc.pdf --verbose
Environment Variables
# Set plugin directory
export PANDOC_PLUGIN_DIR="~/.claude/marketplaces/cadrianmae-claude-marketplace/plugins/pandoc"
# Use in commands
python3 "$PANDOC_PLUGIN_DIR/skills/pandoc/scripts/validate.py" document.md
Shell Functions
# Add to ~/.bashrc or ~/.zshrc
# Validate and convert
pandoc-convert() {
PLUGIN_DIR="~/.claude/marketplaces/cadrianmae-claude-marketplace/plugins/pandoc"
python3 "$PLUGIN_DIR/skills/pandoc/scripts/validate.py" "$1" && \
pandoc "$1" -o "$2" --pdf-engine=pdflatex --citeproc --number-sections
}
# Usage: pandoc-convert paper.md paper.pdf
# Quick validate
pandoc-validate() {
PLUGIN_DIR="~/.claude/marketplaces/cadrianmae-claude-marketplace/plugins/pandoc"
python3 "$PLUGIN_DIR/skills/pandoc/scripts/validate.py" "$1"
}
# Usage: pandoc-validate document.md
Git Integration
# .gitignore for Pandoc projects
cat > .gitignore << 'EOF'
# Generated files
*.pdf
*.html
*.docx
*.tex
# LaTeX auxiliary files
*.aux
*.log
*.out
*.toc
# Keep source files
!*.md
!*.bib
!*.csl
!*.yaml
EOF
CI/CD (GitHub Actions)
# .github/workflows/build.yml
name: Build Document
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Pandoc
run: |
sudo apt-get update
sudo apt-get install -y pandoc texlive-latex-base
- name: Build PDF
run: |
pandoc document.md -o document.pdf \
--pdf-engine=pdflatex \
--citeproc
- name: Upload artifact
uses: actions/upload-artifact@v2
with:
name: document
path: document.pdf
Common Patterns
# Academic paper workflow
PLUGIN_DIR="~/.claude/marketplaces/cadrianmae-claude-marketplace/plugins/pandoc"
cp "$PLUGIN_DIR/skills/pandoc/assets/templates/academic-paper.yaml" paper.md
# Edit paper.md
python3 "$PLUGIN_DIR/skills/pandoc/scripts/validate.py" paper.md
pandoc paper.md -o paper.pdf --pdf-engine=pdflatex --citeproc --number-sections
# Web article workflow
pandoc article.md -o article.html --standalone --toc --css=style.css
# Presentation workflow
cp "$PLUGIN_DIR/skills/pandoc/assets/templates/presentation-revealjs.yaml" slides.md
# Edit slides.md
pandoc slides.md -o slides.html --to revealjs --standalone