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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,321 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only">
<info>
<title>Cite Them Right 12th edition - Harvard</title>
<id>http://www.zotero.org/styles/harvard-cite-them-right</id>
<link href="http://www.zotero.org/styles/harvard-cite-them-right" rel="self"/>
<link href="http://www.zotero.org/styles/harvard-cite-them-right-11th-edition" rel="template"/>
<link href="http://www.citethemrightonline.com/" rel="documentation"/>
<author>
<name>Patrick O'Brien</name>
</author>
<category citation-format="author-date"/>
<category field="generic-base"/>
<summary>Harvard according to Cite Them Right, 11th edition.</summary>
<updated>2025-10-29T07:34:23+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<locale xml:lang="en-GB">
<terms>
<term name="editor" form="short">
<single>ed.</single>
<multiple>eds</multiple>
</term>
<term name="editortranslator" form="verb">edited and translated by</term>
<term name="edition" form="short">edn.</term>
</terms>
</locale>
<macro name="editor">
<choose>
<if type="chapter paper-conference" match="any">
<names variable="container-author" delimiter=", " suffix=", ">
<name and="text" initialize-with=". " delimiter=", " sort-separator=", " name-as-sort-order="all"/>
</names>
<choose>
<if variable="container-author" match="none">
<names variable="editor translator" delimiter=", ">
<name and="text" initialize-with="."/>
<label form="short" prefix=" (" suffix=")"/>
</names>
</if>
</choose>
</if>
</choose>
</macro>
<macro name="secondary-contributors">
<choose>
<if type="chapter paper-conference" match="none">
<names variable="editor translator" delimiter=". ">
<label form="verb" text-case="capitalize-first" suffix=" "/>
<name and="text" initialize-with="."/>
</names>
</if>
<else-if variable="container-author" match="any">
<names variable="editor translator" delimiter=". ">
<label form="verb" text-case="capitalize-first" suffix=" "/>
<name and="text" initialize-with=". " delimiter=", "/>
</names>
</else-if>
</choose>
</macro>
<macro name="author">
<names variable="author">
<name and="text" delimiter-precedes-last="never" initialize-with="." name-as-sort-order="all"/>
<label form="short" prefix=" (" suffix=")"/>
<et-al font-style="italic"/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<choose>
<if type="article-newspaper article-magazine article-journal" match="any">
<text variable="container-title" text-case="title" font-style="italic"/>
</if>
<else>
<text macro="title"/>
</else>
</choose>
</substitute>
</names>
</macro>
<macro name="author-short">
<names variable="author">
<name form="short" and="text" delimiter=", " delimiter-precedes-last="never" initialize-with=". "/>
<et-al font-style="italic"/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<choose>
<if type="article-newspaper article-magazine article-journal" match="any">
<text variable="container-title" text-case="title" font-style="italic"/>
</if>
<else>
<text macro="title"/>
</else>
</choose>
</substitute>
</names>
</macro>
<macro name="access">
<choose>
<if variable="DOI">
<group delimiter=": ">
<text term="available at" text-case="capitalize-first"/>
<text variable="DOI" prefix="https://doi.org/"/>
</group>
</if>
<else-if variable="URL">
<text term="available at" suffix=": " text-case="capitalize-first"/>
<text variable="URL"/>
<group prefix=" (" delimiter=": " suffix=")">
<text term="accessed" text-case="capitalize-first"/>
<date form="text" variable="accessed">
<date-part name="day"/>
<date-part name="month"/>
<date-part name="year"/>
</date>
</group>
</else-if>
</choose>
</macro>
<macro name="number-volumes">
<choose>
<if variable="volume" match="none">
<group delimiter=" " prefix="(" suffix=")">
<text variable="number-of-volumes"/>
<label variable="volume" form="short" strip-periods="true"/>
</group>
</if>
</choose>
</macro>
<macro name="title">
<choose>
<if type="bill book legal_case legislation motion_picture report song thesis webpage graphic" match="any">
<group delimiter=". ">
<group delimiter=" ">
<group delimiter=" ">
<text variable="title" font-style="italic"/>
<text variable="medium" prefix="[" suffix="]"/>
</group>
<text macro="number-volumes"/>
</group>
<text macro="edition"/>
</group>
</if>
<else>
<text variable="title" form="long" quotes="true"/>
</else>
</choose>
</macro>
<macro name="publisher">
<choose>
<if type="thesis">
<group delimiter=". ">
<text variable="genre"/>
<text variable="publisher"/>
</group>
</if>
<else-if type="report">
<group delimiter=". ">
<group delimiter=" ">
<text variable="genre"/>
<text variable="number"/>
</group>
<group delimiter=": ">
<text variable="publisher-place"/>
<text variable="publisher"/>
</group>
</group>
</else-if>
<else-if type="article-journal article-newspaper article-magazine" match="none">
<group delimiter=" ">
<group delimiter=", ">
<choose>
<if type="speech" variable="event" match="any">
<text variable="event" font-style="italic"/>
</if>
</choose>
<group delimiter=": ">
<text variable="publisher-place"/>
<text variable="publisher"/>
</group>
</group>
<group prefix="(" suffix=")" delimiter=", ">
<text variable="collection-title"/>
<text variable="collection-number"/>
</group>
</group>
</else-if>
</choose>
</macro>
<macro name="year-date">
<choose>
<if variable="issued">
<date variable="issued">
<date-part name="year"/>
</date>
<text variable="year-suffix"/>
</if>
<else>
<text term="no date"/>
<text variable="year-suffix" prefix=" "/>
</else>
</choose>
</macro>
<macro name="locator">
<choose>
<if type="article-journal">
<text variable="volume"/>
<text variable="issue" prefix="(" suffix=")"/>
</if>
</choose>
</macro>
<macro name="published-date">
<choose>
<if type="article-newspaper article-magazine post-weblog speech" match="any">
<date variable="issued">
<date-part name="day" suffix=" "/>
<date-part name="month" form="long"/>
</date>
</if>
</choose>
</macro>
<macro name="pages">
<choose>
<if type="chapter paper-conference article-journal article article-magazine article-newspaper book review review-book report" match="any">
<group delimiter=" ">
<label variable="page" form="short"/>
<text variable="page"/>
</group>
</if>
</choose>
</macro>
<macro name="container-title">
<choose>
<if variable="container-title">
<group delimiter=". ">
<group delimiter=" ">
<text variable="container-title" font-style="italic"/>
<choose>
<if type="article article-journal" match="any">
<choose>
<if match="none" variable="page volume">
<text value="Preprint" prefix="[" suffix="]"/>
</if>
</choose>
</if>
</choose>
</group>
<text macro="edition"/>
</group>
</if>
</choose>
</macro>
<macro name="edition">
<choose>
<if is-numeric="edition">
<group delimiter=" ">
<number variable="edition" form="ordinal"/>
<text term="edition" form="short" strip-periods="true"/>
</group>
</if>
<else>
<text variable="edition"/>
</else>
</choose>
</macro>
<macro name="container-prefix">
<choose>
<if type="chapter paper-conference" match="any">
<text term="in"/>
</if>
</choose>
</macro>
<citation et-al-min="4" et-al-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="true" disambiguate-add-givenname="true" collapse="year">
<sort>
<key macro="year-date"/>
</sort>
<layout prefix="(" suffix=")" delimiter="; ">
<group delimiter=", ">
<group delimiter=", ">
<text macro="author-short"/>
<text macro="year-date"/>
</group>
<group>
<label variable="locator" form="short" suffix=" "/>
<text variable="locator"/>
</group>
</group>
</layout>
</citation>
<bibliography and="text" et-al-min="4" et-al-use-first="1">
<sort>
<key macro="author"/>
<key macro="year-date"/>
<key variable="title"/>
</sort>
<layout suffix=".">
<group delimiter=". ">
<group delimiter=" ">
<text macro="author"/>
<text macro="year-date" prefix="(" suffix=")"/>
<group delimiter=", ">
<text macro="title"/>
<group delimiter=" ">
<text macro="container-prefix"/>
<text macro="editor"/>
<text macro="container-title"/>
</group>
</group>
</group>
<text macro="secondary-contributors"/>
<text macro="publisher"/>
</group>
<group delimiter=", " prefix=", ">
<text macro="locator"/>
<text macro="published-date"/>
<text macro="pages"/>
</group>
<text macro="access" prefix=". "/>
</layout>
</bibliography>
</style>

View File

@@ -0,0 +1,512 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only">
<info>
<title>IEEE</title>
<id>http://www.zotero.org/styles/ieee</id>
<link href="http://www.zotero.org/styles/ieee" rel="self"/>
<!-- <link href="https://ieeeauthorcenter.ieee.org/wp-content/uploads/IEEE-Reference-Guide.pdf" rel="documentation"/> - 2018 guidelines -->
<link href="http://journals.ieeeauthorcenter.ieee.org/wp-content/uploads/sites/7/IEEE_Reference_Guide.pdf" rel="documentation"/>
<link href="https://journals.ieeeauthorcenter.ieee.org/your-role-in-article-production/ieee-editorial-style-manual/" rel="documentation"/>
<author>
<name>Michael Berkowitz</name>
<email>mberkowi@gmu.edu</email>
</author>
<contributor>
<name>Julian Onions</name>
<email>julian.onions@gmail.com</email>
</contributor>
<contributor>
<name>Rintze Zelle</name>
<uri>http://twitter.com/rintzezelle</uri>
</contributor>
<contributor>
<name>Stephen Frank</name>
<uri>http://www.zotero.org/sfrank</uri>
</contributor>
<contributor>
<name>Sebastian Karcher</name>
</contributor>
<contributor>
<name>Giuseppe Silano</name>
<email>g.silano89@gmail.com</email>
<uri>http://giuseppesilano.net</uri>
</contributor>
<contributor>
<name>Patrick O'Brien</name>
</contributor>
<contributor>
<name>Brenton M. Wiernik</name>
</contributor>
<contributor>
<name>Oliver Couch</name>
<email>oliver.couch@gmail.com</email>
</contributor>
<category citation-format="numeric"/>
<category field="engineering"/>
<category field="generic-base"/>
<summary>IEEE style as per the 2023 guidelines, V 11.29.2023.</summary>
<updated>2024-03-27T11:41:27+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<locale xml:lang="en">
<date form="text">
<date-part name="month" form="short" suffix=" "/>
<date-part name="day" form="numeric-leading-zeros" suffix=", "/>
<date-part name="year"/>
</date>
<terms>
<term name="chapter" form="short">ch.</term>
<term name="chapter-number" form="short">ch.</term>
<term name="presented at">presented at the</term>
<term name="available at">available</term>
</terms>
</locale>
<!-- Macros -->
<macro name="status">
<choose>
<if variable="page issue volume" match="none">
<text variable="status" text-case="capitalize-first" suffix="" font-weight="bold"/>
</if>
</choose>
</macro>
<macro name="edition">
<choose>
<if type="bill book chapter graphic legal_case legislation motion_picture paper-conference report song" match="any">
<choose>
<if is-numeric="edition">
<group delimiter=" ">
<number variable="edition" form="ordinal"/>
<text term="edition" form="short"/>
</group>
</if>
<else>
<text variable="edition" text-case="capitalize-first" suffix="."/>
</else>
</choose>
</if>
</choose>
</macro>
<macro name="issued">
<choose>
<if type="article-journal report" match="any">
<date variable="issued">
<date-part name="month" form="short" suffix=" "/>
<date-part name="year" form="long"/>
</date>
</if>
<else-if type="bill book chapter graphic legal_case legislation song thesis" match="any">
<date variable="issued">
<date-part name="year" form="long"/>
</date>
</else-if>
<else-if type="paper-conference" match="any">
<date variable="issued">
<date-part name="month" form="short"/>
<date-part name="year" prefix=" "/>
</date>
</else-if>
<else-if type="motion_picture" match="any">
<date variable="issued" form="text" prefix="(" suffix=")"/>
</else-if>
<else>
<date variable="issued" form="text"/>
</else>
</choose>
</macro>
<macro name="author">
<names variable="author">
<name and="text" et-al-min="7" et-al-use-first="1" initialize-with=". "/>
<label form="short" prefix=", " text-case="capitalize-first"/>
<et-al font-style="italic"/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<text macro="director"/>
</substitute>
</names>
</macro>
<macro name="editor">
<names variable="editor">
<name initialize-with=". " delimiter=", " and="text"/>
<label form="short" prefix=", " text-case="capitalize-first"/>
</names>
</macro>
<macro name="director">
<names variable="director">
<name and="text" et-al-min="7" et-al-use-first="1" initialize-with=". "/>
<et-al font-style="italic"/>
</names>
</macro>
<macro name="locators">
<group delimiter=", ">
<text macro="edition"/>
<group delimiter=" ">
<text term="volume" form="short"/>
<number variable="volume" form="numeric"/>
</group>
<group delimiter=" ">
<number variable="number-of-volumes" form="numeric"/>
<text term="volume" form="short" plural="true"/>
</group>
<group delimiter=" ">
<text term="issue" form="short"/>
<number variable="issue" form="numeric"/>
</group>
</group>
</macro>
<macro name="title">
<choose>
<if type="bill book graphic legal_case legislation motion_picture song standard software" match="any">
<text variable="title" font-style="italic"/>
</if>
<else>
<text variable="title" quotes="true"/>
</else>
</choose>
</macro>
<macro name="publisher">
<choose>
<if type="bill book chapter graphic legal_case legislation motion_picture paper-conference song" match="any">
<group delimiter=": ">
<text variable="publisher-place"/>
<text variable="publisher"/>
</group>
</if>
<else>
<group delimiter=", ">
<text variable="publisher"/>
<text variable="publisher-place"/>
</group>
</else>
</choose>
</macro>
<macro name="event">
<choose>
<!-- Published Conference Paper -->
<if type="paper-conference speech" match="any">
<choose>
<if variable="container-title" match="any">
<group delimiter=" ">
<text term="in"/>
<text variable="container-title" font-style="italic"/>
</group>
</if>
<!-- Unpublished Conference Paper -->
<else>
<group delimiter=" ">
<text term="presented at"/>
<text variable="event"/>
</group>
</else>
</choose>
</if>
</choose>
</macro>
<macro name="access">
<choose>
<if type="webpage post post-weblog" match="any">
<!-- https://url.com/ (accessed Mon. DD, YYYY). -->
<choose>
<if variable="URL">
<group delimiter=". " prefix=" ">
<group delimiter=": ">
<text term="accessed" text-case="capitalize-first"/>
<date variable="accessed" form="text"/>
</group>
<text term="online" prefix="[" suffix="]" text-case="capitalize-first"/>
<group delimiter=": ">
<text term="available at" text-case="capitalize-first"/>
<text variable="URL"/>
</group>
</group>
</if>
</choose>
</if>
<else-if match="any" variable="DOI">
<!-- doi: 10.1000/xyz123. -->
<text variable="DOI" prefix=" doi: " suffix="."/>
</else-if>
<else-if variable="URL">
<!-- Accessed: Mon. DD, YYYY. [Medium]. Available: https://URL.com/ -->
<group delimiter=". " prefix=" " suffix=". ">
<!-- Accessed: Mon. DD, YYYY. -->
<group delimiter=": ">
<text term="accessed" text-case="capitalize-first"/>
<date variable="accessed" form="text"/>
</group>
<!-- [Online Video]. -->
<group prefix="[" suffix="]" delimiter=" ">
<choose>
<if variable="medium" match="any">
<text variable="medium" text-case="capitalize-first"/>
</if>
<else>
<text term="online" text-case="capitalize-first"/>
<choose>
<if type="motion_picture">
<text term="video" text-case="capitalize-first"/>
</if>
</choose>
</else>
</choose>
</group>
</group>
<!-- Available: https://URL.com/ -->
<group delimiter=": " prefix=" ">
<text term="available at" text-case="capitalize-first"/>
<text variable="URL"/>
</group>
</else-if>
</choose>
</macro>
<macro name="page">
<choose>
<if type="article-journal" variable="number" match="all">
<group delimiter=" ">
<text value="Art."/>
<text term="issue" form="short"/>
<text variable="number"/>
</group>
</if>
<else>
<group delimiter=" ">
<label variable="page" form="short"/>
<text variable="page"/>
</group>
</else>
</choose>
</macro>
<macro name="citation-locator">
<group delimiter=" ">
<choose>
<if locator="page">
<label variable="locator" form="short"/>
</if>
<else>
<label variable="locator" form="short" text-case="capitalize-first"/>
</else>
</choose>
<text variable="locator"/>
</group>
</macro>
<macro name="geographic-location">
<group delimiter=", " suffix=".">
<choose>
<if variable="publisher-place">
<text variable="publisher-place" text-case="title"/>
</if>
<else-if variable="event-place">
<text variable="event-place" text-case="title"/>
</else-if>
</choose>
</group>
</macro>
<!-- Series -->
<macro name="collection">
<choose>
<if variable="collection-title" match="any">
<text term="in" suffix=" "/>
<group delimiter=", " suffix=". ">
<text variable="collection-title"/>
<text variable="collection-number" prefix="no. "/>
<text variable="volume" prefix="vol. "/>
</group>
</if>
</choose>
</macro>
<!-- Citation -->
<citation>
<sort>
<key variable="citation-number"/>
</sort>
<layout delimiter=", ">
<group prefix="[" suffix="]" delimiter=", ">
<text variable="citation-number"/>
<text macro="citation-locator"/>
</group>
</layout>
</citation>
<!-- Bibliography -->
<bibliography entry-spacing="0" second-field-align="flush">
<layout>
<!-- Citation Number -->
<text variable="citation-number" prefix="[" suffix="]"/>
<!-- Author(s) -->
<text macro="author" suffix=", "/>
<!-- Rest of Citation -->
<choose>
<!-- Specific Formats -->
<if type="article-journal">
<group delimiter=", ">
<text macro="title"/>
<text variable="container-title" font-style="italic" form="short"/>
<text macro="locators"/>
<text macro="page"/>
<text macro="issued"/>
<text macro="status"/>
</group>
<choose>
<if variable="URL DOI" match="none">
<text value="."/>
</if>
<else>
<text value=","/>
</else>
</choose>
<text macro="access"/>
</if>
<else-if type="paper-conference speech" match="any">
<group delimiter=", " suffix=", ">
<text macro="title"/>
<text macro="event"/>
<text macro="editor"/>
</group>
<text macro="collection"/>
<group delimiter=", " suffix=".">
<text macro="publisher"/>
<text macro="issued"/>
<text macro="page"/>
<text macro="status"/>
</group>
<text macro="access"/>
</else-if>
<else-if type="chapter">
<group delimiter=", " suffix=".">
<text macro="title"/>
<group delimiter=" ">
<text term="in" suffix=" "/>
<text variable="container-title" font-style="italic"/>
</group>
<text macro="locators"/>
<text macro="editor"/>
<text macro="collection"/>
<text macro="publisher"/>
<text macro="issued"/>
<group delimiter=" ">
<label variable="chapter-number" form="short"/>
<text variable="chapter-number"/>
</group>
<text macro="page"/>
</group>
<text macro="access"/>
</else-if>
<else-if type="report">
<group delimiter=", " suffix=".">
<text macro="title"/>
<text macro="publisher"/>
<group delimiter=" ">
<text variable="genre"/>
<text variable="number"/>
</group>
<text macro="issued"/>
</group>
<text macro="access"/>
</else-if>
<else-if type="thesis">
<group delimiter=", " suffix=".">
<text macro="title"/>
<text variable="genre"/>
<text macro="publisher"/>
<text macro="issued"/>
</group>
<text macro="access"/>
</else-if>
<else-if type="software">
<group delimiter=". " suffix=".">
<text macro="title"/>
<text macro="issued" prefix="(" suffix=")"/>
<text variable="genre"/>
<text macro="publisher"/>
</group>
<text macro="access"/>
</else-if>
<else-if type="article">
<group delimiter=", " suffix=".">
<text macro="title"/>
<text macro="issued"/>
<group delimiter=": ">
<text macro="publisher" font-style="italic"/>
<text variable="number"/>
</group>
</group>
<text macro="access"/>
</else-if>
<else-if type="webpage post-weblog post" match="any">
<group delimiter=", " suffix=".">
<text macro="title"/>
<text variable="container-title"/>
</group>
<text macro="access"/>
</else-if>
<else-if type="patent">
<group delimiter=", ">
<text macro="title"/>
<text variable="number"/>
<text macro="issued"/>
</group>
<text macro="access"/>
</else-if>
<!-- Online Video -->
<else-if type="motion_picture">
<text macro="geographic-location" suffix=". "/>
<group delimiter=", " suffix=".">
<text macro="title"/>
<text macro="issued"/>
</group>
<text macro="access"/>
</else-if>
<else-if type="standard">
<group delimiter=", " suffix=".">
<text macro="title"/>
<group delimiter=" ">
<text variable="genre"/>
<text variable="number"/>
</group>
<text macro="geographic-location"/>
<text macro="issued"/>
</group>
<text macro="access"/>
</else-if>
<!-- Generic/Fallback Formats -->
<else-if type="bill book graphic legal_case legislation report song" match="any">
<group delimiter=", " suffix=". ">
<text macro="title"/>
<text macro="locators"/>
</group>
<text macro="collection"/>
<group delimiter=", " suffix=".">
<text macro="publisher"/>
<text macro="issued"/>
<text macro="page"/>
</group>
<text macro="access"/>
</else-if>
<else-if type="article-magazine article-newspaper broadcast interview manuscript map patent personal_communication song speech thesis webpage" match="any">
<group delimiter=", " suffix=".">
<text macro="title"/>
<text variable="container-title" font-style="italic"/>
<text macro="locators"/>
<text macro="publisher"/>
<text macro="page"/>
<text macro="issued"/>
</group>
<text macro="access"/>
</else-if>
<else>
<group delimiter=", " suffix=". ">
<text macro="title"/>
<text variable="container-title" font-style="italic"/>
<text macro="locators"/>
</group>
<text macro="collection"/>
<group delimiter=", " suffix=".">
<text macro="publisher"/>
<text macro="page"/>
<text macro="issued"/>
</group>
<text macro="access"/>
</else>
</choose>
</layout>
</bibliography>
</style>

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