vscode-obsidian-notes

vscode-obsidian-notes

VS Code extension bringing Obsidian's Daily Note and Insert Template workflows directly into your editor. Perfect for Quartz, digital gardens, and markdown journaling.

MarkGarden VS Code Extension

alt text

An elegant and high-performance VS Code extension that brings Obsidian's premium note-taking workflows directly into your editor: Interactive Graph View, Wikilinks Navigation ([[ ]]), Tag & Category Management, Daily Notes, and Smart Template Insertion. Perfect for Quartz users, markdown journalers, and digital gardeners.


Features

πŸ•ΈοΈ Interactive Graph View & Local Graph

Visualize your knowledge network with a stunning, physics-driven force-directed graph:

  • Global Graph: Explore the full landscape of your digital garden, note relationships, and clusters.
  • Local Graph Mode: Focus directly on your active note and dynamically filter to immediate neighbors (customizable depth: 1-hop, 2-hop, 3-hop, 4-hop).
  • Live Synchronization: Updates in real-time as notes and wikilinks are created, edited, or deleted.
  • Search & Filters:
    • Live search by note title.
    • Filter and highlight nodes by tag or category.
    • Toggle orphan notes (notes with zero links).
  • Interactive Physics & Controls:
    • Smooth pan, zoom, and node dragging.
    • Node hover highlights connected notes and displays rich metadata tooltips (Title, Path, Tags, Categories, and Inbound/Outbound link counts).
    • Single click on any node opens the markdown note in the editor.
    • Fit-to-screen view and simulation pause/resume.
  • Commands & Shortcuts:
    • MarkGarden: Open Graph View (Ctrl+Alt+G / Cmd+Alt+G or click the graph icon in the editor title bar).
    • MarkGarden: Open Local Graph View.

πŸ”— Wikilink Navigation & Auto-Creation ([[ ]])

Experience seamless cross-note hyperlinking just like in Obsidian:

  • Interactive Jumping: Ctrl/Cmd+Click or F12 (Go to Definition) on any [[Note Name]] to jump straight to the target note.
  • Heading Anchors: Link directly to section headers with [[Note#Section]] or within the current file [[#Section]]. The editor scrolls directly to the heading line.
  • Display Aliases: Support for pipe syntax [[Target Note|Custom Display Text]].
  • Automatic Note Creation: Clicking a non-existent note link prompts/creates it automatically at your preferred location with initial title metadata and opens it in the editor.
  • Follow Link Shortcut: Press Alt+Enter on any link to navigate instantly.
  • IntelliSense Autocompletion: Typing [[ suggests note titles and note headings across the workspace.

🏷️ Tag & Category Management

Organize your second brain with full hybrid tag and category support:

  • Hybrid Tag Detection: Automatically indexes YAML frontmatter (tags: [...] or multi-line list) and inline hashtags (#productivity, #project/alpha/v1).
  • Category Support: Automatically indexes YAML frontmatter (categories: [...] or category: ...).
  • Sidebar Activity Bar Views:
    • Tags Explorer: Displays all workspace tags with note count badges (e.g. 🏷️ project (5)). Expand to view matching notes and click to open.
    • Categories Explorer: Displays all workspace categories with note counts and note drill-downs.
  • Command Palette Actions:
    • MarkGarden: Add Tag to Current Note (adds to YAML frontmatter or inline)
    • MarkGarden: Remove Tag from Current Note
    • MarkGarden: Add Category to Current Note
    • MarkGarden: Remove Category from Current Note
    • MarkGarden: Find Notes by Tag (QuickPick search)
    • MarkGarden: Find Notes by Category (QuickPick search)
    • MarkGarden: Rename Tag Across Workspace (batch updates frontmatter and inline hashtags across all markdown notes)
    • MarkGarden: Rename Category Across Workspace (batch updates frontmatter across all markdown notes)
  • Tag IntelliSense: Typing # provides autocompletion of existing workspace tags (smartly filtered to ignore markdown # Heading syntax, code blocks, and URLs).

πŸ” Hover Note Previews & Transclusion (![[ ]])

Inspect connected thoughts without losing your place:

  • Rich Hover Tooltips: Hover over any [[Note Name]], [[Note#Section]], [[Note#^block-id]], or ![[Embed]] in the editor to view an instant markdown tooltip showing note title, tags, category badges, and clean note preview.
  • Anchor-Specific Peeking: Hovering over a #heading or ^block-id link isolates and previews only that specific subsection or paragraph.
  • Missing Note Indicator: Hovering over an uncreated note link displays a one-click "Create Note" quick action.

βœ‚οΈ Note Refactor & Zettelkasten Extraction

Effortlessly distill brain dumps and daily journals into atomic concept notes:

  • Extract Selection to Note: Select any markdown text and press Ctrl+Alt+E / Cmd+Alt+E (or right-click -> Extract Selection to Note).
  • Smart Title Suggestion: Automatically infers a clean note title from the selection's top heading or opening sentence.
  • Flexible Replacement Modes:
    • Replace with [[New Note]] wikilink (default).
    • Replace with ![[New Note]] transclusion embed.
    • Replace with [[New Note|Custom Alias]].
    • Create note without modifying the selection in source note.
  • Automatic Frontmatter & Source Backlinks: Generated notes automatically include YAML frontmatter with date and a bidirectional backlink source: "[[Source Note]]".

πŸ“Œ Block References (^block-id)

Link to granular paragraphs, quotes, and list items across your workspace:

  • Block Anchors: End any paragraph or bullet item with ^my-block-id.
  • Block Autocompletion: Typing [[Note#^ or [[#^ suggests all indexed block IDs in the note with preview snippets.
  • Block Navigation & Definition: Ctrl/Cmd+Click or F12 on [[Note#^my-block-id]] jumps and centers directly on that block's line.

πŸ“… Daily Note

Create or open today's daily log file instantly.

  • Command: MarkGarden: Create Daily Note
  • Keyboard Shortcut: Ctrl+Alt+D (Windows/Linux) or Cmd+Alt+D (macOS)
  • Smart Templating: If today's daily note doesn't exist, it's automatically created. If a template is configured (e.g. templates/daily.md), it is read, parsed, and populated with resolved timestamps and filename values.
  • Auto-Open: Optionally open or create your daily note automatically on editor startup.

πŸ“‹ Insert Template

Quickly insert processed markdown templates into your active markdown file at the cursor position.

  • Command: MarkGarden: Insert Template
  • Keyboard Shortcut: Ctrl+Alt+T (Windows/Linux) or Cmd+Alt+T (macOS)
  • Metadata-Rich Dropdown: Scans your templates folder and reads the YAML frontmatter of each template to display Title, Filepath, Description, and Tags in an elegant, search-filterable VS Code QuickPick selector.

πŸ“ Obsidian Properties & Frontmatter Suite

Supercharge frontmatter authoring with full Obsidian-like context-aware editing, auto-maintenance, and refactoring:

  • Context-Aware YAML IntelliSense:
    • Property Key Completion: Suggests built-in Obsidian keys (title, date, updated, modified, tags, categories, aliases, author, status, summary, draft, publish, banner, up, related, type, etc.) and all custom property keys across your workspace.
    • Tag & Category Suggestions: Typing under tags: or categories: (inline or list - item) suggests workspace-indexed tags and categories.
    • Wikilink Completion: Typing [[ inside frontmatter fields (e.g. up:, related:, source:) completes note names.
    • Date & Timestamp Snippets: Autocompletes today, now, YYYY-MM-DD, and full timestamps under date properties.
    • Workspace Enum Value Suggestions: Suggests distinct previously used values for custom properties (e.g. status: suggests draft, in-progress, completed).
  • Auto-Update Modified Date on Save:
    • Automatically updates the updated: or modified: timestamp in frontmatter on save without breaking formatting.
  • Frontmatter Management Commands:
    • MarkGarden: Add / Set Frontmatter Property: QuickPick to select or create a property key and set its value.
    • MarkGarden: Format Frontmatter: Normalizes YAML indentation, key order, and list syntax.
    • MarkGarden: Rename Property Across Workspace: Batch-renames a frontmatter property key across all notes in the vault.
    • MarkGarden: Convert Inline Tags to Frontmatter: Extracts inline #tags and moves/merges them into frontmatter tags:.
    • MarkGarden: Sync Note Title with Filename: Synchronizes title: property with filename or H1 header.

🌱 Digital Garden Suite & Growth Stages

Transform your vault into a well-tended digital garden with full Quartz & Obsidian Publish compatibility:

  • Dedicated Digital Garden Sidebar View:
    • Garden Health & Overview: Real-time health score, total note count, and publication ratio (% public).
    • Growth Stages Explorer: Organize notes into 🌱 Seedlings (raw sparks/drafts), 🌿 Budding (developing structures), and 🌲 Evergreen (mature, high-value assets) with expandable trees.
    • Publication Status Explorer: Group notes into πŸ“’ Published vs πŸ”’ Private.
    • Garden Doctor: Automated audits surfacing ⚠️ Broken Wikilinks, πŸ›‘οΈ Privacy Leaks (public notes linking to private/unreleased notes), 🏝️ Orphan Notes, and πŸšͺ Dead Ends.
  • Interactive Status Bar Controls:
    • Clickable status bar pills for instantaneous Growth Stage cycling (🌱 Seedling / 🌿 Budding / 🌲 Evergreen) and Publish Status toggling (πŸ“’ Published / πŸ”’ Private).
  • Live In-Editor Diagnostics:
    • Non-blocking editor squiggles and warnings on broken links and privacy leaks in publishable notes.
  • Commands:
    • MarkGarden: Toggle Publish Status (Ctrl+Alt+P / Cmd+Alt+P)
    • MarkGarden: Set Growth Stage
    • MarkGarden: Run Digital Garden Audit
    • MarkGarden: Refresh Digital Garden

πŸ’‘ Obsidian Callouts & Admonitions (> [!note])

Author expressive, beautiful callout blocks with standard Obsidian syntax:

  • Supported Callout Types: note, abstract, summary, tldr, info, todo, tip, hint, important, success, check, done, question, help, faq, warning, caution, attention, failure, fail, missing, danger, error, bug, example, quote, cite.
  • Quick Inserter Command: MarkGarden: Insert Obsidian Callout / Admonition (Ctrl+Alt+C / Cmd+Alt+C). Interactive QuickPick to choose callout category, custom title, and foldability (+ expanded, - collapsed, or normal).
  • Editor Styling & Decorations: Subtle tinted background and accent borders in the markdown editor.
  • Markdown Preview Rendering: Full markdown-it integration converting callouts into theme-styled HTML blocks and interactive collapsible <details><summary> elements.

Supported Template Variables

Placeholders are resolved at the moment of file creation or insertion relative to the target document:

  • {{title}} - The name of the file being edited or created (without the .md extension).
  • {{date}} - Today's date (defaults to YYYY-MM-DD).
  • {{date:FORMAT}} - Today's date formatted using customized tokens.
  • {{time}} - Current time (defaults to HH:mm).
  • {{time:FORMAT}} - Current time formatted using customized tokens.

Date/Time Format Tokens

  • YYYY - 4-digit Year (e.g., 2026)
  • MM - 2-digit Month (e.g., 05)
  • DD - 2-digit Day (e.g., 20)
  • HH - 2-digit Hour (e.g., 18)
  • mm - 2-digit Minute (e.g., 55)
  • ss - 2-digit Second (e.g., 30)
  • Z - Timezone offset formatted precisely (e.g., +07:00, -05:00, or Z)

Example: {{date:YYYY-MM-DDTHH:mm:ssZ}} yields 2026-05-20T18:55:30+07:00.


Keyboard Shortcuts

ShortcutCommandWhen
Ctrl+Alt+G / Cmd+Alt+GOpen Graph ViewGlobal
Alt+EnterFollow Wikilink Under CursorActive Markdown Document
Ctrl+Alt+E / Cmd+Alt+EExtract Selection to Note (Zettelkasten)Active Selection in Markdown
Ctrl+Alt+C / Cmd+Alt+CInsert Obsidian Callout / AdmonitionActive Editor in Markdown
Ctrl+Alt+P / Cmd+Alt+PToggle Note Publish StatusActive Editor in Markdown
Ctrl+Alt+D / Cmd+Alt+DCreate / Open Today's Daily NoteGlobal
Ctrl+Alt+T / Cmd+Alt+TInsert Markdown TemplateActive Editor

Extension Settings

Customize settings inside your settings.json (Workspace or User) under the markgarden prefix:

SettingTypeDefaultDescription
markgarden.digitalGarden.publishPropertystring"publish_external"Frontmatter property key used to determine publish status.
markgarden.digitalGarden.growthPropertystring"growth"Frontmatter property key used for note growth stages (seedling 🌱, budding 🌿, evergreen 🌲).
markgarden.digitalGarden.enableDiagnosticsbooleantrueEnable editor squiggles and warnings for broken wikilinks and privacy leaks.
markgarden.digitalGarden.showStatusBarbooleantrueShow interactive Growth Stage and Publish Status indicators in the status bar.
markgarden.callouts.enableDecorationsbooleantrueHighlight Obsidian Callouts in the editor with custom background tint and border accents.
markgarden.frontmatter.enableCompletionsbooleantrueEnable context-aware IntelliSense completions in YAML frontmatter.
markgarden.frontmatter.autoUpdateModifiedDatebooleantrueAutomatically update last modified timestamp in YAML frontmatter on saving markdown notes.
markgarden.frontmatter.modifiedDateKeystring"updated"Frontmatter property key used for auto-updating modified timestamps.
markgarden.frontmatter.dateFormatstring"YYYY-MM-DD HH:mm:ss"Date/time format string used when writing timestamps in frontmatter.
markgarden.frontmatter.defaultPropertiesarray["title", "date", ...]Default property keys suggested in frontmatter completion.
markgarden.hoverPreviewEnabledbooleantrueShow rich markdown preview tooltip when hovering over [[links]], ![[embeds]], headings, and blocks.
markgarden.hoverPreviewMaxLengthnumber1200Maximum character length for hover preview body before truncation.
markgarden.newNoteFolderStrategystring"root"Where to create new notes when following a non-existent [[link]]: "root", "sameAsCurrent", or "custom".
markgarden.notesFolderstring""Destination folder path for new notes when strategy is "custom".
markgarden.tagPrefixstring"frontmatter"Default insertion style when adding tags: "frontmatter" (YAML frontmatter) or "inline" (#tag at end of file).
markgarden.templatesFolderstring"templates"Path to the templates directory relative to workspace root.
markgarden.dailyNotesFolderstring""Path to daily notes folder relative to workspace root.
markgarden.dailyNoteTemplatestring"daily.md"Name of the daily note template file.
markgarden.dateFormatstring"YYYY-MM-DD"Format for today's daily note filename.
markgarden.openDailyNoteOnStartupbooleanfalseAutomatically open or create today's daily note on startup.
markgarden.excludedFoldersarray["**/node_modules/**", "**/.git/**", ...]Glob patterns to exclude from metadata and tag indexing.

Installation & Setup

Option 1: Install from VSIX

  1. Download the latest .vsix package from the Releases page.
  2. Install it in VS Code:
    code --install-extension markgarden-1.2.0.vsix
    
    Or open Extensions view (Ctrl+Shift+X), click ... (Views and More Actions) > Install from VSIX....

Option 2: Build from Source

git clone https://github.com/nichsedge/vscode-markgarden.git
cd vscode-markgarden
npm install
npm test
npm run package
code --install-extension markgarden-1.2.0.vsix

Related

How to Install

  1. Download the template file from GitHub
  2. Move it anywhere in your vault
  3. Open it in Obsidian β€” done!

Stats

Stars

0

Forks

0

License

MIT

Last updated 22h ago

Tags

daily-notesdigital-gardenjournalingmarkdownmarkdown-templatesobsidianproductivityquartzvscode-extension