Files
gh-cadrianmae-claude-market…/skills/pandoc/references/snippets.md
2025-11-29 18:03:12 +08:00

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