A conversion utility designed to bridge the gap between VCE (Visual CertExam) exports and obsidian-cbt-exam. This tool transforms PDF source files into professional, human-readable FlashQuiz markdown format compatible with the Obsidian CBT Exam Simulator.
- Extract: Export your VCE exam as a PDF.
- Convert: Run
vce2flashquizto generate a structured markdown file. - Simulate: Drop the generated file into your Obsidian vault and start your exam using the CBT Exam Simulator.
- Automated PDF Parsing: Extracts questions, options, and correct answers directly from PDF exports.
- Self-Contained Exhibits: Automatically identifies "Exhibits," extracts the images, and embeds them as Base64 strings for maximum portability.
- Type Intelligence:
- Automatically detects Multiple Choice (
@mc), Select All That Apply (@sata), and True/False (@tf) formats. - Handles concatenated answer strings (e.g.,
ABCD→a, b, c, d).
- Automatically detects Multiple Choice (
- Obsidian Ready: Generates required YAML frontmatter with optimized defaults (shuffling, pass scores, and timers).
This project uses uv for lightning-fast dependency management.
# Clone the repository
git clone https://github.com/nazdridoy/vce2flashquiz.git
cd vce2flashquiz
# Install dependencies
uv sync# Clone the repository
git clone https://github.com/nazdridoy/vce2flashquiz.git
cd vce2flashquiz
# Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txtuv run vce2flashquiz.py -h# Using uv
uv run vce2flashquiz.py source.pdf > quiz.md
# Using python
python vce2flashquiz.py source.pdf > quiz.mdProcess all PDFs in a directory at once. Creates a .md file alongside each PDF:
# Using uv
uv run vce2flashquiz.py /path/to/pdfs/
# Using python
python vce2flashquiz.py /path/to/pdfs/This will convert exam1.pdf, exam2.pdf, etc. into exam1.md, exam2.md, etc.
Place the resulting .md files in your Obsidian vault and open them with the CBT Exam Simulator plugin.
This project is licensed under the MIT License - see the LICENSE file for details.