A Claude Code plugin that converts LaTeX quiz files to Moodle GIFT format.
The latex-to-gift skill reads a .tex file containing multiple-choice quiz questions and writes a .gift file in the same directory, ready for import into Moodle.
Supported question types:
| Type | Detection |
|---|---|
| True/False | Answer choices are exactly "True" and "False" |
| Single correct | Exactly one \textbf{(x)} in the solution |
| Multiple correct | Two or more \textbf{(x)} in the solution — partial credit applied automatically |
\setcounter{number}{4} % quiz number
\begin{enumerate}[label=\arabic*]
\item Question text here.
\begin{enumerate}[label=(\alph*)]
\item Answer A
\item Answer B
\item Answer C
\item Answer D
\end{enumerate}
\begin{solution}
The correct answer is \textbf{(b)} because ...
\end{solution}
\end{enumerate}
First add this repo as a marketplace, then install the plugin by name:
/plugin marketplace add Schneggera/latex-moodle-skill
/plugin install latex-moodle
git clone https://github.com/Schneggera/latex-moodle-skill
claude plugin install ./latex-moodle-skill/plugins/latex-moodle
/latex-to-gift path/to/quiz.tex
The output file is written to the same directory with a .gift extension (e.g. quiz04.tex → quiz04.gift) and starts with a // Generated from <filename> comment.
Title line for every question:
::Quiz N, Q<i>::
::Quiz N, Q<i>:: <question text>
{TRUE}
{FALSE} is used when False is the correct answer.
The correct choice is listed first (prefixed =), wrong choices follow (prefixed ~):
::Quiz N, Q<i>:: <question text>
{
=<correct answer>
~<wrong answer>
~<wrong answer>
}
Correct answers receive partial credit; wrong answers receive a %-100% penalty to discourage selecting all options:
| Correct answers | Credit per correct |
|---|---|
| 2 | %50% |
| 3 | %33.33333% |
| 4 | %25% |
::Quiz N, Q<i>:: <question text>
{
~%50%<correct answer 1>
~%50%<correct answer 2>
~%-100%<wrong answer 1>
~%-100%<wrong answer 2>
}
$...$ → \( ... \), display math $$...$$ → \[ ... \]\textbf{}, \emph{}, \text{}, \textrm{} wrappers stripped (content kept)\rightarrow → →, \leftarrow → ←, \ldots / \dots → …~, =, #, {, }, :) escaped in plain text regionsMIT
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub schneggera/latex-moodle-skill --plugin latex-moodleUltra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Frontend design skill for UI/UX implementation
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Memory compression system for Claude Code - persist context across sessions
Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, ad creative, and growth
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.