299 lines
6.3 KiB
Markdown
299 lines
6.3 KiB
Markdown
# Pandoc Quick Reference Snippets
|
|
|
|
Copy-paste ready commands for common Pandoc operations.
|
|
|
|
## Validation
|
|
|
|
```bash
|
|
# Validate document
|
|
PLUGIN_DIR="~/.claude/marketplaces/cadrianmae-claude-marketplace/plugins/pandoc"
|
|
python3 "$PLUGIN_DIR/skills/pandoc/scripts/validate.py" document.md
|
|
```
|
|
|
|
## Basic Conversions
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# .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)
|
|
|
|
```yaml
|
|
# .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
|
|
|
|
```bash
|
|
# 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
|
|
```
|