MDS067: callout-type
Validate Obsidian callout types against an allowed set.
A blockquote whose first paragraph begins with
[!type] is an Obsidian callout. MDS067 flags the
callout when type is not in the effective allow
set. Matching is case-insensitive. Custom types are
opt-in via the allow setting; the rule turns off
entirely under allow-unknown: true.
Disabled by default. Set convention: obsidian (or
toggle the rule on directly) to enable it.
# Settings
| Setting | Type | Default | Description |
|---|---|---|---|
allow | list | [] | Extra callout-type names to permit alongside the built-in set. |
allow-unknown | bool | false | When true, accept any [!name] token without validation. |
The built-in vocabulary is the Obsidian base set:
noteabstract(aliasessummary,tldr)info(aliastodo)tip(aliaseshint,important)success(aliasescheck,done)question(aliaseshelp,faq)warning(aliasescaution,attention)failure(aliasesfail,missing)danger(aliaserror)bugexamplequote(aliascite)
allow uses append merge semantics. A kind or
override that adds a custom type preserves entries
from earlier layers.
# Config
Enable:
rules:
callout-type: trueDisable:
rules:
callout-type: falseExtend the allowed set:
rules:
callout-type:
allow:
- review
- decisionAccept any type:
rules:
callout-type:
allow-unknown: true# Examples
# Good
# Standard Callouts
> [!note]
> A note callout.
Some prose between callouts.
> [!warning]
> A warning callout.
More prose between callouts.
> [!tip]
> A tip callout.# Bad
# Bad Callout
> [!REVIEW]
> Unknown type.# Meta-Information
- ID: MDS067
- Name:
callout-type - Status: ready
- Default: disabled
- Fixable: no
- Implementation: source
- Category: structural