Skip to main content

QuizML

QuizML is a command line tool for converting a list of questions in yaml/markdown to a BlackBoard test or to a Latex exam source file.

Documentation

Assuming that you have python and pip installed, you can simply install it with:

pip install quizml

You will also need a LaTeX installation with gs and pdflatex (e.g. TeXLive or MacTeX).

Questions are written in a YAML file, using a Markdown syntax.

Here is a minimal quiz.yaml example:

- type: mc
  marks: 5           
  question: |
    If vector ${\bf w}$ is of dimension $3 \times 1$ and
    matrix ${\bf A}$ of dimension $5 \times 3$,
    then what is the dimension of
    $\left({\bf w}^{\top}{\bf A}^{\top}{\bf A}{\bf w}\right)^{\top}$?
  choices:
    - o:  $5\times 5$
    - o:  $3\times 3$
    - o:  $3\times 1$
    - x:  $1\times 1$

- type: tf
  marks: 5         
  question: |
    Is this the image of a tree?
    
    ![](figures/bee.jpg){ width=30em }
    
  answer: false

Then you can generate multiple render targets, including BlackBoard test, LaTeX, and an HTML preview.

$ quizml quiz1.yaml

  Q  Type  Marks  #  Exp  Question Statement
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  1   mc     5.0  4  1.2  If vector ${\bf w}$ is of dimension $3 \times 1$ ...
  2   tf     5.0  2  2.5  Is this the image of a tree?

  Total: 10.0 (with random expected mark at 37.5%)

╭──────────────────────────────── Target Ouputs ────────────────────────────────╮
│                                                                               │
│   BlackBoard CSV   quiz1.txt                                                  │
│   html preview     quiz1.html                                                 │
│   latex            latexmk -xelatex -pvc quiz1.tex                            │
│   Latex solutions  latexmk -xelatex -pvc quiz1.solutions.tex                  │
│                                                                               │
╰───────────────────────────────────────────────────────────────────────────────╯

and this is what the rendered outputs look like:

Metadata

Release files for quizml 0.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for quizml 0.11.0
File Size Uploaded
quizml-0.11.0.tar.gz 3.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for quizml 0.11.0
File Interpreter ABI Platform
quizml-0.11.0-py3-none-any.whl Python 3 none any Details

Total release size: 3.3 MB

Release files / quizml-0.11.0.tar.gz

Download URL quizml-0.11.0.tar.gz
Size 3.1 MB
Tags Source
SHA-256 checksum
How to use checksums
faba8187899b054e645f2e07f7446dc303049da6cf509954636c2ec0bea5c1ac
BLAKE2b-256 checksum
How to use checksums
bc910e43e41819b87361e7068fde6d72bb16e7f5adae9f7b42b48d73d40132dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 18, 2026.

Transparency log

Release files / quizml-0.11.0-py3-none-any.whl

Download URL quizml-0.11.0-py3-none-any.whl
Size 110.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
70319bf4c3e43cba275560f14d08204f0b6bdb16c259b00899d1381daaf2a917
BLAKE2b-256 checksum
How to use checksums
3b5f3f8c9aa0aa0145e7ab448d372dc05777eeacf18169ae2ea93adb5d6c6251
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.11.0 This release

2 release files

0.10.0

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.8.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page