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.12.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.12.0
File Size Uploaded
quizml-0.12.0.tar.gz 3.2 MB Details

Built distribution (wheel)

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

Total release size: 3.3 MB

Release files / quizml-0.12.0.tar.gz

Download URL quizml-0.12.0.tar.gz
Size 3.2 MB
Tags Source
SHA-256 checksum
How to use checksums
5dd2a3655cd6b867abd1a888825290f294260f27293fe9c698674de61bb7fa4f
BLAKE2b-256 checksum
How to use checksums
581de9a97630a1a412361da4767cd7640460c051274813a345b12ee59c9149a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 3, 2026.

Transparency log

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

Download URL quizml-0.12.0-py3-none-any.whl
Size 110.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5358c5a84b815dc64b7e6f2310d8cf5aa71b5a3edc2257806902dc22db354d7d
BLAKE2b-256 checksum
How to use checksums
6cc0598bfb9008c2aa42e0f2f6717a1867284fdf386fc37ee665b8c60933ac04
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.12.0 This release

2 release files

0.11.0

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