Rêve Signum Studios5 downloadsInsert Markdown templates from a searchable grid with English and Brazilian Portuguese support.
Insert Markdown formatting, tables, links, and embeds through a searchable grid inside Obsidian. Format selected text or insert editable examples without remembering Markdown syntax.
Version 0.2.13, with 52 entries, English/Brazilian Portuguese translations, vault-aware selectors, and contextual selection formatting.
Use Tab to move between controls and Esc to close or cancel. Select text before opening the menu to format that selection; open it without a selection to insert a template. Cancelling leaves the note unchanged.
Browse Markdown templates with previews, search, and category filters.

Choose the number of columns, example rows, and column alignment before inserting a table.

Find links, note references, heading and block references, tags, and footnotes in one category.

Choose an existing note by name, path, or alias. Full paths help distinguish notes with the same name.

isDesktopOnly: true).Publication in the Obsidian Community directory has not yet been confirmed. Once the plugin is listed, open Settings → Community plugins → Browse, search for Markdown Quick Insert, then select Install and Enable.
main.js, manifest.json, and styles.css from a published GitHub release of this repository. Use files from the same release, not GitHub's automatically generated source archives.<vault>/.obsidian/plugins/markdown-quick-insert/ if it does not exist.To upgrade, disable the plugin, replace those three files, and enable it again. Preserve any existing data.json, which stores the language preference. If no release is available, build from source below.
Run npm ci and npm run build. Manually copy main.js, manifest.json, and styles.css into <vault>/.obsidian/plugins/markdown-quick-insert/, then enable or reload the plugin. Keep existing data.json to preserve language settings.
The project does not install itself, create notes, alter reference targets, or change vault configuration. Only an explicit insertion changes the active editor. Discovery uses the public Obsidian API; the plugin makes no network requests.
Select text before running the command or using your assigned shortcut to open Format selected text. This mode shows only compatible transformations, with Markdown previews using the actual selection. It hides insertion-only entries such as sample tables, embeds, separators, and existing tags. With no selection, the full insertion catalog remains available.
Selection endpoints are captured before keyboard shortcut dispatch, then verified against the source editor and document. A recent selection can be recovered if dispatch collapses it. Reversed selections are normalized. Cached ranges expire after 500 ms, are consumed once, and are cleared on pointer interaction. Select text in the Markdown editor (Source or Live Preview); selecting rendered text in Reading view is not supported.
Supported transformations include headings, quotes/nested quotes, bullet/numbered lists, checklists/completed tasks, callouts, fenced code, inline formatting, links, comments, math, and escaping. Available choices depend on the selected text: unsafe multiline inline formats and comments containing closing delimiters are omitted. Blank lines are preserved; list numbering counts nonempty lines. Existing heading markers are replaced when changing heading level.
Code and callout options still open their follow-up selectors while preserving the captured text. Code fences grow when needed to contain existing backticks. Selected text containing placeholder-like syntax is preserved literally. External links use the selection as their label and select the URL for editing. Note references with display text use the selection as the initial alias. Cancelling any step leaves the selection unchanged. Formatting is one editor replacement; real-host undo/redo remains a manual validation item.
| Entry | Workflow |
|---|---|
| Note reference | Search existing Markdown notes by name, full path, or frontmatter alias. |
| Reference with display text | Choose a note, then edit display text. Selected editor text is the initial value. |
| Heading reference | Choose a note, then one of its cached headings. |
| Block reference | Choose a note, then one of its existing cached block IDs. |
| Embed note, heading, or block | Choose the target in the same way; insert an embed. |
| Existing tag | Search deduplicated inline and frontmatter tags from notes. |
| Block identifier | Insert an example paragraph with an identifier unused in the current document. |
| Footnote | Insert an unused reference and append its definition in one editor transaction. |
Paths distinguish duplicate names. Generated links honor Obsidian's link-format and path preferences, including Markdown links instead of wikilinks. Selecting an alias preserves it as display text. Generated links are inserted literally even when names contain placeholder-like text.
Headings, block IDs, aliases, and tags depend on Obsidian's metadata cache. Empty selectors show a localized message and insert nothing. Blocks must already have IDs: target notes are never modified. Deleted/renamed targets and removed headings/blocks are rejected at confirmation. Changes to source text or active editor also cancel insertion.
Includes H1–H6, tables, bullet/numbered lists, checklist, completed task, nested lists/subtasks, quote/nested quote, fenced and inline code, external links/images, separator, bold, italic, bold+italic, strikethrough, highlight, comments, footnotes, inline/block math, Mermaid flowchart/sequence, collapsible HTML, hard line break, and escaped Markdown, alongside the dynamic entries above.
Without a selection, entries insert editable examples and select the first placeholder; concrete vault targets place the cursor after insertion. Footnotes select their definition text. Block templates add blank lines as needed; inline templates preserve sentence layout. With a selection, the contextual mode above preserves and formats its content.
This is a broad catalog, not every possible native construct or combination. YAML property editing, embedded search queries, every Mermaid diagram family, arbitrary HTML, custom CSS callouts, and community-plugin syntax are outside this release.
Automatic uses the public Obsidian language API. Only pt-BR selects Brazilian Portuguese; every other language falls back to English. Override this in Settings → Markdown Quick Insert. Reopen the grid after changing language. Reload the plugin to refresh the registered command name.
Read the Privacy Policy (Brazilian Portuguese).
Report bugs and feature requests through this repository's GitHub Issues, if enabled. Include the plugin version, Obsidian version, operating system, reproduction steps, and expected versus actual behavior. Remove private note content, credentials, and personal file paths from reports and screenshots.
See the changelog for release history. This is a community plugin and is not an official Obsidian product.
Requires Node.js 22.12 or newer.
npm ci
npm test
npm run build
npm run dev
Translations: src/i18n/. Catalog/helpers: src/templates.ts and src/automation.ts. The build bundles the plugin with Obsidian external; test dependencies are not bundled.
Automated tests cover language resolution, templates, filtering, boundaries, selection wrapping, table limits, identifiers, and reference/media flows through a focused host adapter. They do not establish real Obsidian rendering, keyboard behavior, or undo history.
Manual checks in an authorized test vault:
Official references: Internal links, Embeds, Callouts, and Vault API.
Licensed under the GNU General Public License v3.0 only (GPL-3.0-only). See LICENSE for the full terms. This software is provided without warranty, as described in the license.
Push or merge changes into main to automatically test, build, and publish the version recorded in manifest.json. Each new release requires a new project version; pushes with an already published version run validation but skip publication. Version tags without a v prefix (for example, 0.2.13) and Actions → Release → Run workflow remain supported. The workflow does not increment versions.
Before releasing, synchronize manifest.json, package.json, package-lock.json, and versions.json, and add a versioned entry in docs/changelog.md. Commit and push all release changes first.
The workflow validates metadata, installs locked dependencies, runs tests, builds the plugin, and publishes a GitHub release with main.js, manifest.json, and styles.css. Release notes come from the matching changelog section. It uses the automatic GitHub token; no personal access token is required. Existing releases are not overwritten. A failed run can be inspected in Actions. Obsidian Community review remains separate.