Personal wiki plugin for Kakoune
Personal wiki is collection of interconnected notes you can store your knowledge in. I wanted to create plugin for Kakoune that would make creating such wiki as hassle-free as possible. My main issue was manual creation of new pages and writing Markdown links by hand. When I've got an idea I want to write it down right now, without navigating file system. I want to be able to create and link other notes during writing as well.
- find and edit any page using wiki command, no matter where you are in the file system
- quickly jump between wiki pages. Just point at link and press enter
- create interconnected pages with
@pagename
syntax that expands to standard Markdown links - insert images with
@path/to/image.png
syntax - toggle Markdown check-boxes with
<ret>
key in normal mode - wiki is just bunch of Markdown files, you can process/edit them further with tools like pandoc, MdWiki, markor or any text editor. No vendor lock-ins
- minimal and simple — only essential features, script around 100 LOC
You can either:
- load
rc/wiki.kak
from yourkakrc
:source path/to/rc/wiki.kak
- put
rc/wiki.kak
in your autoloads directory~/.config/kak/autoload/
- use plug.kak - plugin manager
Then you have to choose directory for your wiki. Call following command from your kakrc:
wiki-setup `/home/user/my/wiki/directory`
# or
wiki-setup %sh{ echo $HOME/wiki }
Only last stable releases of Kakoune is supported
To create wiki page use wiki
command. Provide file name as parameter:
wiki cookies.md
This command creates file cookies.md
in your wiki directory. You can also use
subdirectories for organization purpose. To create new page in subdirectory:
wiki recipes/cookies.md
Note that path is always relative to the wiki root directory.
To edit wiki page use (you guessed it) wiki
command. You can press TAB
key for autocompletion:
wiki recipes/<TAB> # cycle through available pages
To reference other wiki page use @tag
syntax. Type @cookies<ret>
in insert
mode to create standard Markdown link to wiki page cookies.md
in your wiki
directory. As alternative you can use wiki_expand_tag
command in normal
mode when whole @tag
is selected. You can use subdirectories as well,
path is always relative to wiki root directory, however expanded link
will be relative to currently edited wiki page:
# editing recipes/cookies.md
@chocolate<ret>
expands to
[chocolate](../chocolate.md)
If page referenced by @tag
does not exist it will be created. Directories
will be created as well.
If you press <ret>
with cursor on link, Kakoune will follow link.
To insert image from your wiki directory use @!image
syntax. Type
@!image.jpg<ret>
to insert ![image.jpg](image.jpg)
. There is also
wiki_expand_pic
command (@!image
tag must be selected). You can use
subdirectories like in @tag
.
You can toggle Markdown checkboxes on and off using <ret>
key in normal
mode or wiki_toggle_checkbox
command:
# TODO
- [ ] foo
- [ ] bar # press <ret>
- [X] bar # result
- 0.1:
- initial release
- 0.2:
- ADD toggle checkbox feature
- 0.3 2018-07-15:
- ADD support for nested directories
- REMOVE hide wiki_new_page command, use wiki instead
- CHANGE wiki command use relative paths now
- 0.4 2018-09-06:
- CHANGE update to Kakoune v2018.09.04 breaking
- 0.5 2018-09-11:
- FIX tag expansion in middle of the line
- FIX new line causing unwanted tag expansion
- FIX refactoring of try statements in NormalMode hooks and commands
- 0.6 2018-10-27:
- CHANGE new directory layout (breaking: update path in source
command in
kakrc
) - CHANGE Kakoune v2018.10.27 compatibility breaking
- CHANGE Changelog formatting
- FIX update README, fix spelling mistakes
- CHANGE new directory layout (breaking: update path in source
command in
- 0.7 2019-01-04:
- CHANGE update README
- CHANGE small refactoring of wiki command
- FIX following links when pwd is not in wiki_path
- FIX following links from wiki_path subdirectories
- FIX expanding tags won't create new line anymore
- ADD wiki_expand_pic and corresponding syntax
@!path/to/pic.jpg
(based on PR #2)
- 0.8 2020-02-03:
- CHANGE Kakoune v2020.01.16 compatibility breaking
- CHANGE
wiki_setup
rename towiki-setup