1 # VViki
2
3 <img src="raw/vviki.svg" alt="VViki Logo">
4
5 ## Overview
6
7 VViki is a tiny AsciiDoc-flavored wiki plugin for Vim.
8 It was inspired by link:https://github.com/vimwiki/vimwiki[VimWiki],
9 uses Vim's existing AsciiDoc syntax highlighting,
10 and aims to be extremely lightweight.
11
12 ## Features / Usage
13
14 * Hit Enter on a word to create a link
15 * Hit Enter on a link to edit that page (or open URL in a browser)
16 * Backspace opens previous page
17 * Tab jumps the cursor to the next link on the page
18
19
20 ## Install
21
22 VViki is in the standard Vim plugin structure. Any plugin installation method (incuding popular plugin managers) should work. If you have additional installation instructions to add here, I'll gladly add them:
23
24 ### Vundle
25
26 Add this to your plugin list (in your `.vimrc` file):
27
28 Plugin 'ratfactor/vviki'
29
30 Then run `:source %` and `:BundleInstall`.
31
32 ## Setup
33
34 Add something like this to your `~/.vimrc` file (or equivalent):
35
36 " VViki setup - relies on the default wiki root dir (~/wiki)
37 nnoremap <leader>ww :e ~/wiki/index.adoc<cr>
38
39 The above mapping will open a page called `index` when you type '<leader>ww'. (Vim's default leader key is '\'. If you've not changed it, you'd type type '\ww'.) Users coming from VimWiki will be familiar with this mapping.
40
41 Note: VViki does not currently create directories, so you'll need to create `~/wiki` if it does not already exist.
42
43 ## Advanced Setup
44
45 By default, VViki uses `~/wiki` as the wiki "root" directory and looks for pages having an `.adoc` extension. Any file under this directory (or subdirectory) ending in .adoc will be detected as a wiki page.
46
47 Here's a setup example which changes the root directory and extension:
48
49 " VViki setup
50 let g:vviki_root = "~/secret_diary"
51 let g:vviki_ext = ".txt"
52 nnoremap <leader>ww :e ~/secret_diary/index.txt<cr>
53
54 See `:help vviki` for complete documentation and specifically `:help vviki-configuration` for all settings.
55
56 ## Why?
57
58 I love link:https://github.com/vimwiki/vimwiki[VimWiki].
59 I also love AsciiDoc, but VimWiki doesn't support AsciiDoc syntax.
60 I put a day or two into adding full AsciiDoc support to VimWiki, but eventually concluded, "it would be faster just to create my own plugin." And it was!
61
62 VViki aims to "do one thing and do it well".
63 This table explains the difference:
64
65 <table>
66 <thead>
67 <tr>
68 <th>Feature</th>
69 <th>VimWiki</th>
70 <th>VViki</th>
71 </tr>
72 </thead>
73 <tbody>
74 <tr>
75 <td>Wiki functionality</td>
76 <td>X</td>
77 <td>X</td>
78 </tr>
79 <tr>
80 <td>Syntax highlighting</td>
81 <td>X</td>
82 <td></td>
83 </tr>
84 <tr>
85 <td>Tooling (search, HTML export, etc.</td>
86 <td>X</td>
87 <td></td>
88 </tr>
89 </tbody>
90 </table>
91
92 ## Testing
93
94 Running the interactive test script is an easy way to try out VViki's basic functionality without setting up or installing anything. VViki does not even need to be installed as a plugin!
95
96 To go from nothing to trying out and testing a wiki, try this:
97
98 git clone https://github.com/ratfactor/vviki
99 cd vviki
100 vim -S test/test.vim
101
102 The first test document should open immediately. It contains instructions for using the tests (shortcut keys are mapped for fast/easy usage). All tests are self-documented.
103
104
105 ## TODO
106
107 * [x] Absolute vs relative internal links
108 * [x] Make VViki a "real" plugin
109 * [x] Fix bug with description in link macros - need proper line parsing
110 * [x] Try using 'conceal' for syntax to display pretty links
111 * [x] Configurable wiki path
112 * [x] Configurable wiki file extension
113 * [x] Add default "index" files for "directory/" wiki paths
114 * [x] Start help doc
115 * [x] Finish help doc
116 * [x] Global setting to turn off link syntax conceal
117 * [x] Add <tab> key link navigation (jump to next link)
118 * [x] Release 1.0
119 * [ ] Wishlist: Consider creating directories as needed (limit to wiki root)
120 * [ ] Wishlist: some sort of shortcut (with pattern matching) to add
121 links to existing wiki pages
122 * [ ] Wishlist: checklist shortcuts (check/uncheck [ ] boxes)
123
124
125 ## License
126
127 MIT License
128
129 Copyright (c) 2020 Dave Gauer
130
131 Permission is hereby granted, free of charge, to any person obtaining a copy
132 of this software and associated documentation files (the "Software"), to deal
133 in the Software without restriction, including without limitation the rights
134 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
135 copies of the Software, and to permit persons to whom the Software is
136 furnished to do so, subject to the following conditions:
137
138 The above copyright notice and this permission notice shall be included in all
139 copies or substantial portions of the Software.
140
141 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
142 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
143 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
144 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
145 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
146 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
147 SOFTWARE.