Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 18:03:12 +08:00
commit bc9ae138e4
28 changed files with 7069 additions and 0 deletions

View 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

View 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}
:::

View 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.

View 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

View 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?

View 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

View 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

View 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
...