tyler-dot-earth45 downloadsAnswer questions in reading view with plain Markdown callouts.
Answer questions inside Obsidian callouts in reading view. Put the question in the title and its answer in the body. Answers and notes stay in plain Markdown.
Write a question callout and switch to reading view. Unanswered questions keep your theme’s question appearance; saved answers use its success color and a check icon. The icon tracks the answer, with no separate task-completion checkbox.
> [!question] What time works for you?
Answer… opens a blank editor, and Done saves your answer. Saved text has Edit. The question stays in the title while you edit its answer.
> [!question|choice] When should we leave?
>
> - [ ] 🤖 After lunch
> - [ ] Before dinner
Tap an option to save it immediately. Picking another clears the first, including Other; unticking clears your answer. A single 🤖 option is enough when you just want to offer a suggestion. The instruction above the choices says “pick 1”.
> [!question|choices] What should we bring?
>
> - [x] Water
> - [x] A snack
> - [ ] A jacket
Tick any combination. Each tap saves, and the instruction above the choices says “pick 1+”. No Done button is needed for picks.
Checkboxes show selected options. Callouts, lists, and paragraphs follow your Obsidian theme, with the theme’s success color, a check icon, and an Answered label when an answer is saved.
Every pick question offers Write another answer…. Open the editor, type your answer, and press Save. Opening or canceling keeps saved picks unchanged. Saving a custom answer clears the options in a single-pick question, and picking an option clears the custom answer. Multiple picks can accompany a custom answer.
> [!question|choice] How should we meet?
>
> - [ ] In person
> - [ ] Video call
>
> Other: A phone call.
Saved Other text appears in an Other answer callout with Edit and Clear actions. The Markdown stays a plain Other: paragraph. Clear removes only the custom answer. Clearing it or replacing it with a single pick asks for confirmation first. If you cancel an unsaved custom draft, use Write another answer… again to resume it.
Each checkbox option has its own Add a note action. Saved notes appear beneath that option as native nested callouts. They stay attached to the option when you select or deselect answers; you can annotate an option without choosing it.
Add a trailing nested [!note] when you want a comment separate from the answer:
> [!question] What should we try next?
> A weekend workshop.
>
> > [!note]
> > Ask again after checking the dates.
Use Add a note beside the answer actions to open the note editor. Saving creates a trailing nested [!note]; opening or canceling leaves the Markdown unchanged. Existing notes keep their native callout and Edit note action. A note never counts as an answer. Saving an existing note as empty asks for confirmation first.
Keep callouts at the document's top level, give each one a nonempty question title, and separate them with a blank line. Use > on every body line, including blank lines. The body can start directly under the title or after a blank > line; both layouts work for text, single picks, and multiple picks. See the format and save rules for the details.
Requires Obsidian 1.13.0 or newer, on desktop or mobile.
For a manual install, build the plugin or get the three files from a release:
main.js, manifest.json, and styles.css into Vault/.obsidian/plugins/tincan/.For Obsidian Sync, enable syncing the installed and active community plugin lists on each device. Let syncing finish, restart the receiving app, and enable Tincan there.
example/vault contains synthetic title questions covering text, recommendations, single and multiple picks, Other, and explicit notes. Build the plugin, then run:
bash example/setup-plugin.sh
Open example/vault as a vault in Obsidian, enable Tincan, and open Questions.md in reading view. See the example instructions.
Tincan aims to fit your theme by using Obsidian’s native styling and design tokens for colors, typography, spacing, and controls. We mainly test against the default Obsidian theme and Baseline.
nix develop
pnpm install --frozen-lockfile
pnpm check
pnpm build
pnpm dev watches for changes. The Nix shell supplies Node, pinned pnpm, and lefthook, and configures the Git hooks. Copy or symlink only the three release files into a development vault.
See the format and save rules for the details.
The check workflow runs pnpm check on pushes to main and pull requests. The release workflow checks a bare version tag, such as 0.1.0, runs the full check, attests the build, and attaches the three plugin files to a GitHub release.
pnpm release -- patch uses the release helper to bump versions, commit, tag, and push to remotes named github and origin. versions.json maps each release to its minimum Obsidian version.
License is 0BSD. Vendored tooling keeps its original notices.