Files
ob2qualkard/README.md

76 lines
2.8 KiB
Markdown
Raw Normal View History

2026-08-05 21:11:46 -03:00
# Obsidian to QualKard (ob2qualkard)
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
Push a flashcard from an Obsidian note to a [QualKard](https://code.beco.cc/beco/kanboard)
spaced-repetition board on Kanboard. One command, one card, one direction: your notes
stay the source of truth; nothing is ever synced back.
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
## How a card is written
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
A card lives inside a fenced code block with the info string `qualcard`. The **first
blank line** splits it: the first paragraph becomes the card's **front** (the Kanboard
task title / prompt), and everything after the blank line becomes the **back** (the task
description / answer).
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
````markdown
```qualcard
When is judicial review available?
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
Only on a concrete case or controversy brought by a party with standing.
```
````
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
- The front is a single line (wrapped lines are joined with spaces), because Kanboard
task titles are single-line.
- The back keeps its Markdown, including paragraph breaks.
- A note may contain **any number** of `qualcard` blocks; the surrounding prose is never
sent.
- A block with **no blank line** has no answer and is skipped (a flashcard needs both
sides).
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
## Pushing
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
Run the command **"Push this note to QualKard"** (command palette or the editor
right-click menu):
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
- **One** `qualcard` block in the note -> it is pushed, wherever the cursor is.
- **Several** blocks -> the block **under the cursor** is pushed. If the cursor is not
inside any block, nothing is pushed and you are asked to place it.
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
Pushing is deliberate and creates a new card each time (no de-duplication). On the
QualKard board the new task is automatically adopted as a fresh "new" card in the Drafts
column.
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
## Settings
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
| Setting | Meaning |
|---|---|
| Kanboard URL | Base URL of your Kanboard, e.g. `https://organon.beco.cc` |
| API username | Kanboard user whose personal API token is used (e.g. `drbeco`) |
| API token | That user's personal API token |
| Study board | Display name of the QualKard-enabled board to push to |
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
The target board must already be set up as a QualKard study board; otherwise the task is
created but never treated as a card.
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
## Network and privacy
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
This plugin makes network requests **only** when you run the push command, and sends
**only** the front/back text of the single block you push -- never any other note
content. The API token is stored in this vault's `.obsidian` data (`data.json`) in plain
text; if you sync or back up your vault, keep that in mind and do not publish it.
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
## Build and install
2026-08-05 20:29:39 -03:00
```
2026-08-05 21:11:46 -03:00
pnpm install
make install VAULT=/abs/path/to/your/vault
2026-08-05 20:29:39 -03:00
```
2026-08-05 21:11:46 -03:00
Then fully restart Obsidian (the reload button does not reliably reload a changed plugin)
and enable **Obsidian to QualKard**. You can also install it with
[BRAT](https://github.com/TfTHacker/obsidian42-brat) from the GitHub mirror.
## License
2026-08-05 20:29:39 -03:00
2026-08-05 21:11:46 -03:00
GPL-3.0-or-later. Copyright (C) 2026 Ruben Carlo Benante <rcb@beco.cc>.