Initial commit
This commit is contained in:
99
skills/pandoc/assets/templates/Makefile
Normal file
99
skills/pandoc/assets/templates/Makefile
Normal file
@@ -0,0 +1,99 @@
|
||||
# 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
|
||||
52
skills/pandoc/assets/templates/academic-paper.yaml
Normal file
52
skills/pandoc/assets/templates/academic-paper.yaml
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
# Document Metadata
|
||||
title: "Paper Title"
|
||||
author: "Author Name"
|
||||
date: "Date"
|
||||
lang: en-GB # British English for citations
|
||||
|
||||
# Bibliography Settings
|
||||
bibliography: references.bib # Path to your BibTeX file
|
||||
csl: harvard.csl # Citation style (Harvard, APA, etc.)
|
||||
link-citations: true # Make citations clickable links
|
||||
|
||||
# PDF Output Settings
|
||||
documentclass: report # Document class (report, article, book)
|
||||
fontsize: 12pt # Font size (10pt, 11pt, 12pt)
|
||||
geometry: margin=1in # Page margins
|
||||
linestretch: 1.5 # Line spacing (1.0, 1.5, 2.0)
|
||||
numbersections: true # Number sections automatically
|
||||
toc: true # Include table of contents
|
||||
toc-depth: 3 # TOC depth (1-5)
|
||||
|
||||
# LaTeX Packages (optional)
|
||||
header-includes: |
|
||||
\usepackage{graphicx}
|
||||
\usepackage{float}
|
||||
\usepackage{hyperref}
|
||||
---
|
||||
|
||||
# Introduction
|
||||
|
||||
Your content goes here.
|
||||
|
||||
# Literature Review
|
||||
|
||||
More content here.
|
||||
|
||||
# Methodology
|
||||
|
||||
...
|
||||
|
||||
# Results
|
||||
|
||||
...
|
||||
|
||||
# Conclusion
|
||||
|
||||
...
|
||||
|
||||
# References
|
||||
|
||||
::: {#refs}
|
||||
:::
|
||||
24
skills/pandoc/assets/templates/article-simple.yaml
Normal file
24
skills/pandoc/assets/templates/article-simple.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
# Document Metadata
|
||||
title: "Article Title"
|
||||
author: "Author Name"
|
||||
date: "Date"
|
||||
lang: en-GB
|
||||
|
||||
# PDF Settings
|
||||
documentclass: article
|
||||
fontsize: 11pt
|
||||
geometry: margin=1in
|
||||
---
|
||||
|
||||
# Introduction
|
||||
|
||||
Your content here.
|
||||
|
||||
# Main Content
|
||||
|
||||
More content.
|
||||
|
||||
# Conclusion
|
||||
|
||||
Final thoughts.
|
||||
41
skills/pandoc/assets/templates/defaults-pdf.yaml
Normal file
41
skills/pandoc/assets/templates/defaults-pdf.yaml
Normal file
@@ -0,0 +1,41 @@
|
||||
# Pandoc Defaults File for PDF Output
|
||||
# Usage: pandoc document.md --defaults=defaults-pdf.yaml
|
||||
|
||||
# Input/Output
|
||||
from: markdown
|
||||
to: pdf
|
||||
|
||||
# PDF Engine
|
||||
pdf-engine: pdflatex # Options: pdflatex, xelatex, lualatex
|
||||
|
||||
# Citation Processing
|
||||
citeproc: true # Enable citation processing
|
||||
|
||||
# Document Options
|
||||
standalone: true # Create standalone document
|
||||
number-sections: true # Number sections automatically
|
||||
|
||||
# Metadata Defaults
|
||||
metadata:
|
||||
lang: en-GB
|
||||
fontsize: 12pt
|
||||
geometry: margin=1in
|
||||
linestretch: 1.5
|
||||
documentclass: article
|
||||
|
||||
# Table of Contents
|
||||
table-of-contents: false
|
||||
toc-depth: 3
|
||||
|
||||
# Variables
|
||||
variables:
|
||||
colorlinks: true
|
||||
linkcolor: blue
|
||||
urlcolor: blue
|
||||
citecolor: blue
|
||||
|
||||
# Include paths for images/assets
|
||||
resource-path:
|
||||
- .
|
||||
- images
|
||||
- assets
|
||||
67
skills/pandoc/assets/templates/presentation-beamer.yaml
Normal file
67
skills/pandoc/assets/templates/presentation-beamer.yaml
Normal file
@@ -0,0 +1,67 @@
|
||||
---
|
||||
# Presentation Metadata
|
||||
title: "Presentation Title"
|
||||
author: "Author Name"
|
||||
date: "Date"
|
||||
institute: "Institution Name"
|
||||
|
||||
# Beamer Theme
|
||||
theme: "Madrid" # Options: Madrid, Berlin, Copenhagen, Dresden
|
||||
colortheme: "default" # Options: default, dolphin, beaver, crane
|
||||
fonttheme: "default" # Options: default, serif, structurebold
|
||||
|
||||
# PDF Settings
|
||||
aspectratio: 169 # 16:9 aspect ratio (43 for 4:3)
|
||||
lang: en-GB
|
||||
|
||||
# Code Highlighting
|
||||
highlight-style: tango # Options: tango, pygments, kate, monochrome
|
||||
|
||||
# Beamer Options
|
||||
navigation: horizontal # Horizontal navigation symbols
|
||||
---
|
||||
|
||||
# Introduction
|
||||
|
||||
## Slide Title
|
||||
|
||||
- Point 1
|
||||
- Point 2
|
||||
- Point 3
|
||||
|
||||
## Another Slide
|
||||
|
||||
Content here.
|
||||
|
||||
# Main Section
|
||||
|
||||
## Code Example
|
||||
|
||||
```python
|
||||
def hello_world():
|
||||
print("Hello, World!")
|
||||
```
|
||||
|
||||
## Lists
|
||||
|
||||
**Incremental reveal:**
|
||||
|
||||
::: incremental
|
||||
|
||||
- First item
|
||||
- Second item
|
||||
- Third item
|
||||
|
||||
:::
|
||||
|
||||
# Conclusion
|
||||
|
||||
## Summary
|
||||
|
||||
- Key point 1
|
||||
- Key point 2
|
||||
- Key point 3
|
||||
|
||||
## Thank You
|
||||
|
||||
Questions?
|
||||
95
skills/pandoc/assets/templates/presentation-revealjs.yaml
Normal file
95
skills/pandoc/assets/templates/presentation-revealjs.yaml
Normal file
@@ -0,0 +1,95 @@
|
||||
---
|
||||
# Presentation Metadata
|
||||
title: "Presentation Title"
|
||||
author: "Author Name"
|
||||
date: "Date"
|
||||
|
||||
# Reveal.js Theme
|
||||
theme: black # Options: black, white, league, beige, sky, night, serif, simple, solarized
|
||||
transition: slide # Options: none, fade, slide, convex, concave, zoom
|
||||
|
||||
# Slide Settings
|
||||
slideNumber: true # Show slide numbers
|
||||
controls: true # Show navigation controls
|
||||
progress: true # Show progress bar
|
||||
history: true # Enable browser history
|
||||
|
||||
# Code Highlighting
|
||||
highlight-style: monokai # Options: monokai, zenburn, github, atom-one-dark
|
||||
|
||||
# Background
|
||||
background-color: "#1e1e1e"
|
||||
|
||||
# Responsive Design
|
||||
width: 1280
|
||||
height: 720
|
||||
margin: 0.1
|
||||
---
|
||||
|
||||
# Introduction {background-color="#2E3440"}
|
||||
|
||||
## Slide Title
|
||||
|
||||
- Point 1
|
||||
- Point 2
|
||||
- Point 3
|
||||
|
||||
## Another Slide {background-image="image.jpg"}
|
||||
|
||||
Content with background image.
|
||||
|
||||
# Main Section
|
||||
|
||||
## Code Example
|
||||
|
||||
```python
|
||||
def fibonacci(n):
|
||||
if n <= 1:
|
||||
return n
|
||||
return fibonacci(n-1) + fibonacci(n-2)
|
||||
```
|
||||
|
||||
## Two Column Layout
|
||||
|
||||
::::: {.columns}
|
||||
|
||||
:::: {.column width="50%"}
|
||||
**Left Column**
|
||||
|
||||
- Item 1
|
||||
- Item 2
|
||||
::::
|
||||
|
||||
:::: {.column width="50%"}
|
||||
**Right Column**
|
||||
|
||||
- Item A
|
||||
- Item B
|
||||
::::
|
||||
|
||||
:::::
|
||||
|
||||
## Fragment Animation
|
||||
|
||||
::: {.fragment}
|
||||
Fade in first
|
||||
:::
|
||||
|
||||
::: {.fragment .fade-up}
|
||||
Fade up second
|
||||
:::
|
||||
|
||||
# Conclusion
|
||||
|
||||
## Summary {background-color="#4C566A"}
|
||||
|
||||
- Key point 1
|
||||
- Key point 2
|
||||
- Key point 3
|
||||
|
||||
## Thank You
|
||||
|
||||
**Contact:**
|
||||
|
||||
- Email: email@example.com
|
||||
- Website: example.com
|
||||
135
skills/pandoc/assets/templates/references.bib
Normal file
135
skills/pandoc/assets/templates/references.bib
Normal file
@@ -0,0 +1,135 @@
|
||||
% BibTeX Bibliography Template
|
||||
% Copy this file to your project and edit the entries
|
||||
|
||||
% Article from a journal
|
||||
@article{example-article,
|
||||
author = {Smith, John and Doe, Jane},
|
||||
title = {A Comprehensive Study of Something Important},
|
||||
journal = {Journal of Important Studies},
|
||||
year = {2024},
|
||||
volume = {42},
|
||||
number = {3},
|
||||
pages = {123--145},
|
||||
doi = {10.1234/example.2024.001}
|
||||
}
|
||||
|
||||
% Book
|
||||
@book{example-book,
|
||||
author = {Johnson, Alice},
|
||||
title = {Introduction to Advanced Topics},
|
||||
publisher = {Academic Press},
|
||||
year = {2023},
|
||||
edition = {2nd},
|
||||
address = {New York},
|
||||
isbn = {978-0-12-345678-9}
|
||||
}
|
||||
|
||||
% Conference paper
|
||||
@inproceedings{example-conference,
|
||||
author = {Brown, Robert and Green, Emily},
|
||||
title = {Novel Approach to Problem Solving},
|
||||
booktitle = {Proceedings of the International Conference on Computing},
|
||||
year = {2024},
|
||||
pages = {45--52},
|
||||
publisher = {ACM},
|
||||
address = {San Francisco, CA},
|
||||
doi = {10.1145/example.2024}
|
||||
}
|
||||
|
||||
% PhD Thesis
|
||||
@phdthesis{example-phd,
|
||||
author = {Williams, Michael},
|
||||
title = {Advanced Research in Computer Science},
|
||||
school = {University Name},
|
||||
year = {2023},
|
||||
address = {City, Country},
|
||||
month = {June}
|
||||
}
|
||||
|
||||
% Master's Thesis
|
||||
@mastersthesis{example-masters,
|
||||
author = {Davis, Sarah},
|
||||
title = {Investigation of Novel Methods},
|
||||
school = {University Name},
|
||||
year = {2024},
|
||||
address = {City, Country}
|
||||
}
|
||||
|
||||
% Technical Report
|
||||
@techreport{example-report,
|
||||
author = {Miller, James},
|
||||
title = {Technical Analysis of System Performance},
|
||||
institution = {Research Institute},
|
||||
year = {2024},
|
||||
number = {TR-2024-01},
|
||||
address = {City, Country}
|
||||
}
|
||||
|
||||
% Website / Online Resource
|
||||
@misc{example-website,
|
||||
author = {Organization Name},
|
||||
title = {Important Online Resource},
|
||||
year = {2024},
|
||||
url = {https://example.com/resource},
|
||||
note = {Accessed: 2024-11-16}
|
||||
}
|
||||
|
||||
% Chapter in edited book
|
||||
@incollection{example-chapter,
|
||||
author = {Taylor, Lisa},
|
||||
title = {Specific Topic in Field},
|
||||
booktitle = {Comprehensive Handbook of Field},
|
||||
editor = {Anderson, Mark},
|
||||
publisher = {Academic Press},
|
||||
year = {2023},
|
||||
pages = {200--225},
|
||||
chapter = {10}
|
||||
}
|
||||
|
||||
% Unpublished work
|
||||
@unpublished{example-unpublished,
|
||||
author = {Wilson, David},
|
||||
title = {Work in Progress on Important Topic},
|
||||
note = {Manuscript in preparation},
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
% ===================================
|
||||
% Field Reference Guide
|
||||
% ===================================
|
||||
%
|
||||
% REQUIRED vs OPTIONAL fields vary by entry type
|
||||
%
|
||||
% Common Fields:
|
||||
% author = Author name(s) - use "and" to separate multiple authors
|
||||
% title = Title of work
|
||||
% year = Year of publication
|
||||
% journal = Journal name (for @article)
|
||||
% booktitle = Book/conference name (for @inproceedings, @incollection)
|
||||
% publisher = Publisher name (for @book)
|
||||
% school = University name (for @phdthesis, @mastersthesis)
|
||||
% pages = Page range (123--145)
|
||||
% volume = Volume number
|
||||
% number = Issue number
|
||||
% edition = Edition (2nd, 3rd, etc.)
|
||||
% address = Location (city, country)
|
||||
% doi = Digital Object Identifier
|
||||
% url = Web address
|
||||
% note = Additional information
|
||||
%
|
||||
% Author Name Formats:
|
||||
% Single: {Lastname, Firstname}
|
||||
% Multiple: {Lastname1, Firstname1 and Lastname2, Firstname2}
|
||||
% Or: {Firstname Lastname} (automatically parsed)
|
||||
%
|
||||
% Page Ranges:
|
||||
% Use double dash: 123--145 (not single dash 123-145)
|
||||
%
|
||||
% Special Characters:
|
||||
% Protect capitalization: {DNA} or {IoT} to prevent lowercasing
|
||||
% Accents: {\'e} for é, {\`e} for è, {\"o} for ö
|
||||
%
|
||||
% Citation Keys:
|
||||
% Format: author-year or descriptive-keyword
|
||||
% Examples: smith2024, johnson-ml-2023, example-article
|
||||
% Must be unique in file
|
||||
124
skills/pandoc/assets/templates/thesis-report.yaml
Normal file
124
skills/pandoc/assets/templates/thesis-report.yaml
Normal file
@@ -0,0 +1,124 @@
|
||||
---
|
||||
# Document Metadata
|
||||
title: "Thesis Title"
|
||||
author: "Author Name"
|
||||
date: "Month Year"
|
||||
lang: en-GB
|
||||
|
||||
# Academic Details
|
||||
supervisor: "Supervisor Name"
|
||||
institution: "Institution Name"
|
||||
department: "Department Name"
|
||||
degree: "Degree Name"
|
||||
|
||||
# Bibliography Settings
|
||||
bibliography: references.bib
|
||||
csl: harvard.csl
|
||||
link-citations: true
|
||||
|
||||
# PDF Output Settings
|
||||
documentclass: report
|
||||
fontsize: 12pt
|
||||
geometry: margin=1in
|
||||
linestretch: 1.5
|
||||
numbersections: true
|
||||
secnumdepth: 3
|
||||
|
||||
# Table of Contents
|
||||
toc: true
|
||||
toc-depth: 3
|
||||
lof: true # List of figures
|
||||
lot: true # List of tables
|
||||
|
||||
# LaTeX Packages
|
||||
header-includes: |
|
||||
\usepackage{graphicx}
|
||||
\usepackage{float}
|
||||
\usepackage{hyperref}
|
||||
\usepackage{setspace}
|
||||
\renewcommand{\maketitle}{
|
||||
\begin{titlepage}
|
||||
\centering
|
||||
\vspace*{2cm}
|
||||
{\Huge\bfseries $title$\par}
|
||||
\vspace{1.5cm}
|
||||
{\Large $author$\par}
|
||||
\vspace{1cm}
|
||||
{\large A thesis submitted in partial fulfilment\par}
|
||||
{\large of the requirements for the degree of\par}
|
||||
\vspace{0.5cm}
|
||||
{\large\itshape $degree$\par}
|
||||
\vspace{1.5cm}
|
||||
{\large $department$\par}
|
||||
{\large $institution$\par}
|
||||
\vspace{1cm}
|
||||
{\large $date$\par}
|
||||
\vspace{1cm}
|
||||
{\large Supervisor: $supervisor$\par}
|
||||
\end{titlepage}
|
||||
}
|
||||
---
|
||||
|
||||
<!-- Abstract -->
|
||||
\begin{abstract}
|
||||
Write your abstract here (200-300 words).
|
||||
\end{abstract}
|
||||
|
||||
\newpage
|
||||
|
||||
<!-- Declaration -->
|
||||
# Declaration
|
||||
|
||||
I hereby declare that this thesis is entirely my own work and that it has not been submitted as an exercise for a degree at any other university.
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
Signed: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
Date: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
|
||||
|
||||
\newpage
|
||||
|
||||
<!-- Acknowledgements -->
|
||||
# Acknowledgements
|
||||
|
||||
I would like to thank...
|
||||
|
||||
\newpage
|
||||
|
||||
# Introduction
|
||||
|
||||
Your content here.
|
||||
|
||||
# Literature Review
|
||||
|
||||
...
|
||||
|
||||
# Methodology
|
||||
|
||||
...
|
||||
|
||||
# Implementation
|
||||
|
||||
...
|
||||
|
||||
# Results and Discussion
|
||||
|
||||
...
|
||||
|
||||
# Conclusion
|
||||
|
||||
...
|
||||
|
||||
# References
|
||||
|
||||
::: {#refs}
|
||||
:::
|
||||
|
||||
\newpage
|
||||
|
||||
# Appendices
|
||||
|
||||
## Appendix A: Additional Material
|
||||
|
||||
...
|
||||
Reference in New Issue
Block a user