Files
gh-cadrianmae-claude-market…/skills/pandoc/assets/templates/Makefile
2025-11-29 18:03:12 +08:00

100 lines
2.5 KiB
Makefile

# Pandoc Makefile Template
# Copy this to your project directory and customize
# Configuration
PANDOC = pandoc
PYTHON = python3
PLUGIN_DIR = ~/.claude/marketplaces/cadrianmae-claude-marketplace/plugins/pandoc
VALIDATE = $(PYTHON) $(PLUGIN_DIR)/skills/pandoc/scripts/validate.py
# Project files
MAIN_DOC = document.md
OUTPUT_PDF = document.pdf
OUTPUT_HTML = document.html
OUTPUT_DOCX = document.docx
# Pandoc options
PDF_ENGINE = pdflatex
PANDOC_OPTS = --number-sections
CITE_OPTS = --citeproc
# Default target
all: pdf
# PDF output
pdf: $(OUTPUT_PDF)
$(OUTPUT_PDF): $(MAIN_DOC)
@echo "Validating $(MAIN_DOC)..."
@$(VALIDATE) $(MAIN_DOC)
@echo "Converting to PDF..."
$(PANDOC) $(MAIN_DOC) -o $(OUTPUT_PDF) \
--pdf-engine=$(PDF_ENGINE) \
$(PANDOC_OPTS) \
$(CITE_OPTS)
@echo "✅ Created: $(OUTPUT_PDF)"
# HTML output
html: $(OUTPUT_HTML)
$(OUTPUT_HTML): $(MAIN_DOC)
@echo "Validating $(MAIN_DOC)..."
@$(VALIDATE) $(MAIN_DOC)
@echo "Converting to HTML..."
$(PANDOC) $(MAIN_DOC) -o $(OUTPUT_HTML) \
--standalone \
--self-contained \
--toc
@echo "✅ Created: $(OUTPUT_HTML)"
# DOCX output
docx: $(OUTPUT_DOCX)
$(OUTPUT_DOCX): $(MAIN_DOC)
@echo "Validating $(MAIN_DOC)..."
@$(VALIDATE) $(MAIN_DOC)
@echo "Converting to DOCX..."
$(PANDOC) $(MAIN_DOC) -o $(OUTPUT_DOCX) \
--standalone \
$(CITE_OPTS)
@echo "✅ Created: $(OUTPUT_DOCX)"
# Validation only
validate:
@$(VALIDATE) $(MAIN_DOC)
# Watch for changes and rebuild
watch:
@echo "Watching $(MAIN_DOC) for changes..."
@while true; do \
inotifywait -e modify $(MAIN_DOC) 2>/dev/null && make pdf; \
done
# Clean generated files
clean:
rm -f $(OUTPUT_PDF) $(OUTPUT_HTML) $(OUTPUT_DOCX)
rm -f *.aux *.log *.out *.toc
# Install project scripts locally
setup:
@echo "Copying validation script to project..."
@mkdir -p ./scripts
@cp $(PLUGIN_DIR)/skills/pandoc/scripts/validate.py ./scripts/
@chmod +x ./scripts/validate.py
@echo "✅ Setup complete - validation script available at ./scripts/validate.py"
# Help
help:
@echo "Available targets:"
@echo " all (default) - Build PDF"
@echo " pdf - Build PDF document"
@echo " html - Build HTML document"
@echo " docx - Build DOCX document"
@echo " validate - Validate document only"
@echo " watch - Watch for changes and rebuild"
@echo " setup - Copy scripts to project directory"
@echo " clean - Remove generated files"
@echo " help - Show this help message"
.PHONY: all pdf html docx validate watch clean setup help