summary refs log tree commit diff
path: root/.vim/plugin/zettel.vim
diff options
context:
space:
mode:
Diffstat (limited to '.vim/plugin/zettel.vim')
-rw-r--r--.vim/plugin/zettel.vim43
1 files changed, 43 insertions, 0 deletions
diff --git a/.vim/plugin/zettel.vim b/.vim/plugin/zettel.vim
new file mode 100644
index 0000000..948bb91
--- /dev/null
+++ b/.vim/plugin/zettel.vim
@@ -0,0 +1,43 @@
+" markdown extended for bullet journaling and personal wiki-keeping
+
+if exists('g:loaded_zettel')
+	finish
+endif
+let g:loaded_zettel = 1
+
+if !exists('g:zettel_root')
+	let g:zettel_root = expand($HOME.'/wiki')
+endif
+
+if !exists('g:zettel_create_on_empty')
+	let g:zettel_create_on_emtpy = 1
+endif
+
+if v:progname =~ 'vimdiff'
+	let g:zettel_create_on_empty = 0
+endif
+
+function! <SID>make_new_zettel()
+	let l:pastebackup = &paste
+	set nopaste
+
+	0 put ='---'
+	read !yq n date $(date -Iseconds) | yq w - title "%:t:r"
+	put ='---'
+	call feedkeys('Go', 'n')
+
+	if pastebackup == 0
+		set nopaste
+	endif
+endfunction
+
+command! -nargs=0 NewZettel call <SID>make_new_zettel()
+
+augroup NewZettel
+	au!
+	au BufNewFile *.md
+		\ if expand('%:p') =~# fnameescape(g:zettel_root).'/.*.md' |
+		\ 	call <SID>make_new_zettel() |
+		\ endif
+augroup END
+