Exam Master
unlistedby HU
Mock exam simulator: timed exams, tag-filtered practice, wrong-answer review with per-question notes, and per-tag analytics.
Exam Master
Take mock exams, practise with tag filters, review wrong answers, and track per-tag accuracy — all from inside your Obsidian vault.
Features
- Exam mode — timed, fixed-count session that draws a fresh random sample for every attempt. Per-bank parameters (e.g. AIP-C01 = 65 questions / 130 minutes) are read from the bank's
INDEX.md. - Practice mode — random questions filtered by tag, with optional immediate feedback or end-of-session reveal.
- Always-visible question navigator — colour-coded grid (current / answered / flagged / unanswered) that lets you jump anywhere instantly.
- Wrong-answer collection — each wrong question becomes its own markdown note with a writable
## Noteblock; tags are normalised so they index correctly in Obsidian's tag pane. - In-plugin review screen for wrong answers, fully styled to match the rest of the UI (no jarring jump to the default markdown viewer).
- Per-attempt history persisted as one markdown file per session (Dataview-friendly frontmatter).
- Stats screen — overall accuracy donut and per-tag bar chart, weakest tags first.
- Markdown rendering through Obsidian's renderer — code blocks, LaTeX, tables, internal links and images all work.
- i18n — UI follows your Obsidian language (中文 / 日本語 / English) automatically; manual override available in settings.
Screenshots
Replace these placeholders with real screenshots before publishing.
| Home | Exam screen | Result |
|---|---|---|
![]() | ![]() | ![]() |
Install
From the Community plugins list
Once the plugin is approved on the official list:
- Open Settings → Community plugins
- Disable Restricted mode if it's on
- Browse and install Exam Master
- Enable it
Beta install (via BRAT)
While the plugin is awaiting official review:
- Install BRAT
- BRAT settings → Add beta plugin → paste
hu-shukang/obsidian-exam-master - BRAT will install from the latest GitHub release
Manual install
# from a release zip:
mkdir -p <vault>/.obsidian/plugins/exam-master
cp main.js manifest.json styles.css <vault>/.obsidian/plugins/exam-master/
# then enable under Settings → Community plugins
Quick start
- Create a folder under
Exam/Banks/(configurable in settings) — sayAIP-C01/. - Add an
INDEX.mdwith the per-bank exam-mode parameters. - Add one
Qxxx.mdper question. - Open the Exam Master view (ribbon icon or command palette → Open Exam Master).
- Click Reload Banks, pick your bank, and start an exam or practice session.
A fully-worked sample with 122 questions lives in examples/AIP-C01/.
Bank file format
Each bank is a folder. INDEX.md holds bank-level metadata; every other .md file is one question.
INDEX.md
---
exam: AIP-C01 # display name (defaults to folder name)
version: V12.65 # optional, free-form
exam_questions: 65 # how many random questions per exam-mode session
exam_minutes: 130 # exam-mode time limit
---
# Free-form body — table of contents, instructions, etc.
exam_questions and exam_minutes are required for Start exam to be enabled on this bank. Practice mode does not need them.
One question per file
---
id: 1
tags:
- category/bedrock-core
- aws/bedrock/guardrails
---
# 問題 1 ← optional h1, ignored
## 質問
<question stem markdown>
## 選択肢
**A.** option A markdown
**B.** option B markdown
**C.** …
**D.** …
## 正解
> [!success]- Show answer
> **A, D**
## 解説
> [!note]- Show explanation
> <explanation markdown>
---
[[Q002|next]] | [[INDEX|index]] ← anything after the trailing --- is ignored
Notes:
- Section order matters; section titles can be in any language.
idis unique per bank. Tags can be a YAML list or comma/space-separated string.- Options are detected by
**A.**,**B.**, … markers. Multi-line content is supported. - Answer letters are picked from the first
## 正解section —**A, D**and> Aboth work. - Explanation callout markers and the trailing wiki-link footer are stripped automatically.
Folder layout in vault
Exam/
├─ Banks/ # one sub-folder per bank (each contains .md questions)
├─ History/ # auto-generated session records (markdown)
└─ Wrong/ # auto-generated wrong-answer notes (markdown)
All three paths are configurable in plugin settings.
Privacy
This plugin runs entirely on your device. It does not make any network requests. No telemetry, no analytics, no remote loading.
Development
npm install
npm run dev # watch mode, rebuilds on save
npm run build # one-shot production build
For active development, symlink the project folder into your vault's plugin directory:
ln -s "$(pwd)" /path/to/vault/.obsidian/plugins/exam-master
Then reload Obsidian (Cmd/Ctrl+R) to pick up the new build. The community Hot Reload plugin automates this.
License
MIT © HU
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.


