A MkDocs plugin to create interactive quizzes in your markdown.
Project description
MkDocs Quiz Plugin
A modern MkDocs plugin to create interactive quizzes directly in your markdown documentation. Perfect for educational content, tutorials, and documentation that requires user engagement.
📚 Documentation and examples: https://ewels.github.io/mkdocs-quiz/
Features
- ✨ Simple markdown syntax - Create quizzes using GitHub-flavored markdown checkboxes
- 🎯 Multiple quiz types - Single choice (radio), multiple choice (checkboxes), and fill-in-the-blank
- ⚡ Instant feedback - Visual indicators show correct/incorrect answers
- 📊 Progress tracking - Automatic progress sidebar and results panel, with confetti 🎉
- 💾 Results saved - Answers are saved to the browser's local storage
- 🌐 Internationalization - Quiz elements support multi-lingual sites
- 📤 LMS Export - Export quizzes to QTI format for Canvas, Blackboard, Moodle
- 🖥️ CLI Quiz Runner - Take quizzes in your terminal, from local files or website URLs
[!TIP] Check out the documentation to see the plugin in action.
<quiz>
What's the best static site generator?
- [x] mkdocs
- [ ] Jekyll
- [ ] Sphinx
If you entered mkdocs, you've come to the right place!

</quiz>
Installation
Install the package with pip:
pip install mkdocs-quiz
Quick Start
1. Enable the plugin
Add the plugin to your mkdocs.yml:
plugins:
- mkdocs_quiz
2. Add your first question
Create a quiz with radio buttons (only one correct answer):
<quiz>
What is 2+2?
- [x] 4
- [ ] 3
- [ ] 5
Correct! Basic math is important.
</quiz>
Use - [x] for correct answers and - [ ] for incorrect answers.
If multiple answers are correct, checkboxes instead of radio buttons will be shown (the user has to select all correct answers).
3. Intro text and results
Insert these placeholder comments for some intro text with a reset button and a final results panel (which shoots confetti when you finish):
<!-- mkdocs-quiz intro -->
..quiz content here..
<!-- mkdocs-quiz results -->
CLI Quiz Runner
Take quizzes directly in your terminal:
# Interactive mode - select from discovered quizzes in the current repository
# (you can also use `mkdocs-quiz` instead of `quiz`)
quiz
# Run from a website URL
quiz run https://ewels.github.io/mkdocs-quiz/multiple-choice/
# Run a specific file
mkdocs-quiz run docs/quiz.md
See the CLI Runner documentation for more details.
Contributing
Contributions are welcome! Please see the contribution guidelines for details.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Credits
- Original author: Sebastian Jörz
- Rewritten by: Phil Ewels
Changelog
See CHANGELOG.md for version history and changes.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mkdocs_quiz-1.5.4.tar.gz.
File metadata
- Download URL: mkdocs_quiz-1.5.4.tar.gz
- Upload date:
- Size: 98.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42f5ee7c0eefaa5111c3851d31c565eb8e79e6a68c967a3f69d60219beb8ee3c
|
|
| MD5 |
5ceee21a92ef084c9008e951de054174
|
|
| BLAKE2b-256 |
4e8cbc9fd71f3520ccae5c94a93c0175b6e569ee428602c6a36c25d6fc546355
|
Provenance
The following attestation bundles were made for mkdocs_quiz-1.5.4.tar.gz:
Publisher:
publish.yml on ewels/mkdocs-quiz
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mkdocs_quiz-1.5.4.tar.gz -
Subject digest:
42f5ee7c0eefaa5111c3851d31c565eb8e79e6a68c967a3f69d60219beb8ee3c - Sigstore transparency entry: 872260538
- Sigstore integration time:
-
Permalink:
ewels/mkdocs-quiz@44379ad556a4d23512d86ddbf05ae11b94a8af87 -
Branch / Tag:
refs/tags/v1.5.4 - Owner: https://github.com/ewels
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@44379ad556a4d23512d86ddbf05ae11b94a8af87 -
Trigger Event:
release
-
Statement type:
File details
Details for the file mkdocs_quiz-1.5.4-py3-none-any.whl.
File metadata
- Download URL: mkdocs_quiz-1.5.4-py3-none-any.whl
- Upload date:
- Size: 90.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70c2c442ecc71c0d99580173a02d34636bf789f85347c5cbfd955f8fe83922bd
|
|
| MD5 |
38ae0ddcbd09a5548affb3dc10917b95
|
|
| BLAKE2b-256 |
b30a6f62dd82c157e48a6247d98dcfdcdc6f05f6eb79dfd63abb8ea5c84ddb9b
|
Provenance
The following attestation bundles were made for mkdocs_quiz-1.5.4-py3-none-any.whl:
Publisher:
publish.yml on ewels/mkdocs-quiz
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mkdocs_quiz-1.5.4-py3-none-any.whl -
Subject digest:
70c2c442ecc71c0d99580173a02d34636bf789f85347c5cbfd955f8fe83922bd - Sigstore transparency entry: 872260541
- Sigstore integration time:
-
Permalink:
ewels/mkdocs-quiz@44379ad556a4d23512d86ddbf05ae11b94a8af87 -
Branch / Tag:
refs/tags/v1.5.4 - Owner: https://github.com/ewels
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@44379ad556a4d23512d86ddbf05ae11b94a8af87 -
Trigger Event:
release
-
Statement type: