https://github.com/jmtd/nvim-microwiki
A minimalist neovim plugin to add wiki features to Markdown documents
https://github.com/jmtd/nvim-microwiki
markdown neovim-plugin wiki
Last synced: 2 months ago
JSON representation
A minimalist neovim plugin to add wiki features to Markdown documents
- Host: GitHub
- URL: https://github.com/jmtd/nvim-microwiki
- Owner: jmtd
- License: gpl-3.0
- Created: 2025-01-23T14:26:23.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-08T20:40:35.000Z (4 months ago)
- Last Synced: 2026-04-08T21:27:46.873Z (4 months ago)
- Topics: markdown, neovim-plugin, wiki
- Language: Lua
- Homepage:
- Size: 25.4 KB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# nvim-µwiki
A minimalist plugin to add basic wiki functions to [Markdown] documents.
## ✨ Features
Relevant function names in parentheses
* Jump the cursor between wiki-links (enclosed in double-braces, e.g. `[[this]]`)
in a document (`prevWikiLink`, `nextWikiLink`)
* Follow wiki-links to existing pages where they exist, or start editing empty buffers (`maybeFollowWikiLink`)
* Quickly edit a page corresponding to Today's date (`todayDatePage`)
* Quickly Navigate to previous/next days from any page with a filename matching
`%Y-%m-%d` e.g. `2025-01-23` (`prevDatePage`, `nextDatePage`)
* Populate the tag stack as you follow wiki-links
* Don't take over the FileType: play nicely with any other Markdown
configuration or plugins you are using.
## ⚡️ Requirements
* [Neovim]. This has been developed with version 0.10.0.
* [This Treesitter grammar for markdown](https://github.com/tree-sitter-grammars/tree-sitter-markdown).
It's bundled with Neovim since version 0.10.0.
## 📦 Installation
Use your favourite plugin manager. I'm using
[vim-plug](https://github.com/junegunn/vim-plug/). E.g.:
```Vim
call plug#begin()
Plug 'jmtd/nvim-microwiki'
call plug#end()
```
## ⚙️ Configuration
```Lua
vim.api.nvim_create_autocmd('FileType', {pattern='markdown', callback=function(args)
-- You need to have TreeSitter enabled for Markdown documents. (This
-- isn't needed for neovim >= 0.12.0, where it is enabled by default).
vim.treesitter.start(args.buf, 'markdown')
-- nvim-µwiki determines your preferred file extension by reading the
-- first value from vim's existing `suffixesadd` option
vim.opt_local.suffixesadd = { ".mdwn" , ".md" }
-- Here are some suggested key mappings:
local wiki = require("nvim-µwiki")
vim.keymap.set('n', 'wd', wiki.todayDatePage)
vim.keymap.set('n', '', wiki.followWikiLink, {buffer = true})
vim.keymap.set('n', '', wiki.maybeFollowWikiLink, {buffer = true})
vim.keymap.set('n', '', wiki.nextWikiLink, {buffer = true})
vim.keymap.set('n', '', wiki.prevWikiLink, {buffer = true})
vim.keymap.set('n', '', wiki.nextDatePage, {buffer = true})
vim.keymap.set('n', '', wiki.prevDatePage, {buffer = true})
end })
```
## 🧐 See also
* [Vimwiki]: fully featured VimScript wiki
* [Potwiki]: VimScript wiki of text files
## Authors
* Copyright © 2025-2026 [Jonathan Dowland], all rights reserved.
Distributed under the GNU General Public License, version 3. See [LICENSE](LICENSE).
[Markdown]: https://commonmark.org/
[Jonathan Dowland]: https://jmtd.net/
[Vimwiki]: https://github.com/vimwiki/vimwiki
[Neovim]: https://neovim.io/
[Potwiki]: https://www.vim.org/scripts/script.php?script_id=1018