Releases: paris3200/markdown-notes.nvim
v2.1.2
Bug Fixes
Symlink Support for Vault Paths
- Fixed tag search and link following when
vault_pathis a symbolic link - Added
-Lflag tofindcommands to follow symbolic links - Resolves "No tags found in frontmatter" errors for symlinked vaults
Background: The find command doesn't follow symbolic links by default. When users had their vault path pointing to a symlink (e.g., ~/personal/docs/notes → ~/personal/repos/notes), the find commands would return 0 files, causing tag search to fail and link following to not work properly.
Impact: Users with symlinked vault directories can now use:
- Tag search (
<leader>ng) - finds all tags across notes - Link following fuzzy fallback - finds notes when exact path doesn't exist
What's Changed
- fix: add symlink support to find commands by @paris3200 in #30
Full Changelog: v2.1.1...v2.1.2
v2.1.1
Bug Fixes
Tag Search Parser Enhancement
- Fixed tag search to support YAML list format for frontmatter tags
- Previously only supported bracket format
tags: [tag1, tag2]which caused "No tags found in frontmatter" errors for notes using standard YAML list format - Parser now correctly handles both formats:
- Bracket format:
tags: [tag1, tag2, tag3] - YAML list format:
tags: - tag1 - tag2
- Bracket format:
What's Changed
- fix: support YAML list format for frontmatter tags by @paris3200 in #29
Full Changelog: v2.1.0...v2.1.1
v2.1.0 - Automatic Workspace Detection
What's New
✨ Automatic Workspace Detection
The plugin now automatically switches to the appropriate workspace when opening markdown files based on their file path. This eliminates the need to manually switch workspaces when working across multiple vaults.
How it works:
- Sets up an autocommand that runs on
BufEnterandBufReadevents for*.mdfiles - Detects which workspace the file belongs to by matching the file path against configured vault paths
- Seamlessly switches context as you navigate between different note vaults
Benefits:
- No more manual workspace switching when jumping between work notes, personal notes, and project documentation
- Improved workflow efficiency for users with multiple note vaults
- Transparent operation - the plugin handles workspace context automatically
Full Changelog
Full Changelog: v2.0.2...v2.1.0
v2.0.2 - Fix Link Following with Display Text
What's Fixed
- Link Following: The
gfcommand now properly follows wikilinks that have custom display text- Links like
[[long-filename|Short Title]]now work correctly - Previously,
gfwould fail because it tried to find a file with the entire text including the display portion
- Links like
This fixes an issue where gf wouldn't work on links formatted with pipe-separated display text.
v2.0.1 - Link Path Fix
Bug Fixes
- Links: Fixed link insertion to use paths relative to vault root directory instead of current directory (#25, #26)
- Links now generate as
[[note]]instead of[[./note]]when inserted from subfolders - Ensures consistent linking behavior regardless of current file location
- All links are now properly relative to the vault root directory
- Links now generate as
What's Changed
- fix: normalize link paths to be relative to vault root by @paris3200 in #26
Full Changelog: v2.0.0...v2.0.1
v2.0.0 - Enhanced rename functionality and documentation overhaul
🎉 Major Release - v2.0.0
✨ New Features
- Enhanced rename function with fzf-lua file preview - Better visual feedback when renaming notes
- Automatic link updates during rename operations - All wiki-style links are automatically updated when files are renamed
- Comprehensive documentation overhaul - Updated README with detailed examples and usage guides
⚠️ Breaking Changes
- Default keybinding prefix changed from
<leader>oto<leader>n- Provides semantic clarity as a notes plugin- Update your custom configurations to use the new prefix
- The old prefix can still be configured manually if preferred
📚 Documentation
- Completely rewritten README with comprehensive examples
- Updated help documentation with all new features
- Added detailed configuration guides
🔧 Developer Improvements
- Added comprehensive linting setup with luacheck
- Enhanced GitHub Actions workflow
- Expanded test coverage for template variables
- New test utilities and improved test structure
Migration Guide: Users with custom keybindings using <leader>o should update their configurations to use <leader>n or explicitly set their preferred prefix in the plugin configuration.
v1.1.1 - Keybinding Fix
What's Fixed
- Fixed
<leader>oykeybinding not opening yesterday's note
This patch release resolves a bug where the yesterday's note keybinding was not responding when pressed.
Full Changelog: v1.1.0...v1.1.1
v1.1.0 - Workspace System
🚀 v1.1.0 - Workspace System
Major New Feature: Multi-Vault Workspace Support
This release introduces a powerful workspace system that allows you to manage multiple independent note vaults simultaneously. Each workspace has its own configuration for paths, templates, and settings with predictable manual switching behavior.
✨ New Features
🏢 Workspace System
- Multi-vault support: Manage separate note collections (work, personal, projects, etc.)
- Manual workspace switching: Explicit control via
<leader>owkeybinding and commands - Flexible default workspace: Set via
default_workspaceconfig option or auto-default to first workspace - Workspace-aware operations: All plugin functions automatically use the active workspace
- Fuzzy finder integration: Interactive workspace selection with fzf-lua
🎯 New Commands
:MarkdownNotesWorkspaceStatus- Show current workspace:MarkdownNotesWorkspacePick- Interactive workspace picker:MarkdownNotesWorkspaceSwitch <name>- Switch to specific workspace:MarkdownNotesWorkspaceActive- Show active workspace
⌨️ New Keybindings
<leader>ow- Pick workspace with fuzzy finder
📝 Configuration Examples
Option 1: Set default workspace in config
require("markdown-notes").setup({
vault_path = "~/notes",
default_workspace = "personal", -- Specify default
})
require("markdown-notes").setup_workspace("work", { ... })
require("markdown-notes").setup_workspace("personal", { ... })Option 2: First workspace becomes default
require("markdown-notes").setup({ ... })
require("markdown-notes").setup_workspace("personal", { ... }) -- Auto-default
require("markdown-notes").setup_workspace("work", { ... })🔧 How It Works
- Predictable behavior: All operations use the active workspace, no magic switching
- Explicit control: Users manually switch when needed via commands/keybindings
- Smart defaults: Use configured default or first workspace as fallback
- Consistent operations: All plugin functions respect the active workspace
📚 Use Cases
- Work vs Personal: Separate professional and personal note collections
- Project-based: Different workspaces for different projects or clients
- Context-specific templates: Use different templates for different types of work
- Multi-vault workflows: Switch between different knowledge bases seamlessly
🛠️ What's Changed
- Added complete workspace system with manual switching
- Updated all core modules to use workspace-aware configuration
- Added comprehensive test coverage for workspace features
- Updated documentation with workspace examples and guides
- New fuzzy finder integration for workspace selection
📖 Full Documentation
See the updated README and help documentation (:help markdown-notes-workspaces) for complete setup guides and examples.
Full Changelog: v1.0.1...v1.1.0
v1.0.1 - Template Picker Fix
v1.0.1 - Template Picker Fix
Bug fix release for markdown-notes.nvim
Fixed
- Template picker now displays clean filenames without './' prefix
- Improved template selection UX by showing 'template-name.md' instead of './template-name.md'
Technical Details
- Modified find command in template picker to use for clean relative paths
- No breaking changes or API modifications
Installation
Same as v1.0.0 - no configuration changes needed.
v1.0.0 - First Release
markdown-notes.nvim v1.0.0
First stable release of markdown-notes.nvim - a simple, configurable markdown note-taking plugin for Neovim.
Features
- Daily Notes: Quick creation and navigation with automatic templating
- Template-based Note Creation: Flexible template system with variable substitution
- Wiki-style Links: Create and follow
[[note-name]]links between notes - Powerful Search: Find notes by filename or content with file preview and syntax highlighting
- Backlinks: Discover which notes reference the current note
- Tag Search: Search frontmatter tags with file counts and preview
- Comprehensive Documentation: Full nvim help documentation with
:help markdown-notes - Configurable: Customize paths, keybindings, and behavior
Installation
Using lazy.nvim
{
"paris3200/markdown-notes.nvim",
dependencies = {
"ibhagwan/fzf-lua",
},
config = function()
require("markdown-notes").setup({
-- your configuration here
})
end,
}Quick Start
After installation, use :help markdown-notes for comprehensive documentation.
Default key mappings:
<leader>od- Open today's daily note<leader>on- Create new note<leader>oc- Create note from template<leader>of- Find notes<leader>os- Search note contents<leader>ol- Insert wiki link<leader>ob- Show backlinksgf- Follow link under cursor
Requirements
- Neovim >= 0.8.0
- fzf-lua (for fuzzy finding)
- marksman LSP (optional, for enhanced link completion)