soywiki 0.0.9 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/website/soywiki.html DELETED
@@ -1,446 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
5
- <title>Vmail</title>
6
- <link href="stylesheets-vmail/reset.css?1297299905" media="screen" rel="stylesheet" type="text/css" />
7
- <link href="stylesheets-vmail/960.css?1297299905" media="screen" rel="stylesheet" type="text/css" />
8
- <link href="stylesheets-vmail/text.css?1297299905" media="screen" rel="stylesheet" type="text/css" />
9
- <link href="stylesheets-vmail/site.css?1297299905" media="screen" rel="stylesheet" type="text/css" />
10
- <script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script><script type="text/javascript">stLight.options({publisher:'8579b5f8-0860-4ea6-9ef1-6f0f58359a99'});</script>
11
- <script type="text/javascript" src="lightbox2/js/prototype.js"></script>
12
- <script type="text/javascript" src="lightbox2/js/scriptaculous.js?load=effects,builder"></script>
13
- <script type="text/javascript" src="lightbox2/js/lightbox.js"></script>
14
- <link rel="stylesheet" href="lightbox2/css/lightbox.css" type="text/css" media="screen" />
15
- </head>
16
- <body>
17
- <div class="container_12">
18
- <div class="grid_10 alpha" id="main">
19
- <h1>SoyWiki</h1>
20
-
21
- <p>SoyWiki is lightweight application that turns Vim into a fast and
22
- powerful wiki.</p>
23
-
24
- <p>A quick overview of its characteristics and features:</p>
25
-
26
- <ul>
27
- <li>flat text files</li>
28
- <li>maximum data portability</li>
29
- <li>high interoperability with Unix tools</li>
30
- <li>Vim text editing power</li>
31
- <li>super-efficient modes of wiki traversal</li>
32
- <li>Git for versioning, distributed workflows, and blaming</li>
33
- <li>CamelCase wiki words</li>
34
- <li>namespaced wiki words</li>
35
- <li>autocompletion of wiki words</li>
36
- <li>automated global renaming of wiki words</li>
37
- <li>syntax colored wiki words</li>
38
- <li>outliner-like capability with expansion commands</li>
39
- <li>operates on all POSIX systems (e.g. OS X, Linux, FreeBSD)</li>
40
- </ul>
41
-
42
-
43
- <p>SoyWiki builds on Vim's strengths as a text editor and interface to the
44
- Unix operating system, SoyWiki makes it possible to create, navigate,
45
- and refactor wiki content at the speed of thought.</p>
46
-
47
- <p>SoyWiki is good for tracking projects, contacts, ideas, and collecting
48
- and organizing research. SoyWiki combines the affordances of notebooks,
49
- index cards, and Post-it notes, and adds to them the power of hyperlinks
50
- and automatic indexing.</p>
51
-
52
- <p>SoyWiki makes a great writing aid, especially if you do your writing in
53
- Vim. You can have SoyWiki open in multiple Vim windows, tabs, and
54
- buffers, alongside any number of regular Vim windows. Throw in a bunch
55
- of Vim abbreviations (<code>:help abbreviations</code>), a large monitor, and a
56
- teapot, and you'll have your paper, essay, book, or screenplay written
57
- in record time.</p>
58
-
59
- <p>SoyWiki is free and open source.</p>
60
-
61
- <h2>Screenshots</h2>
62
-
63
- <p><a href="images-soywiki/1.png" rel="lightbox[screens]"><img src="images-soywiki/1-small.png" /></a>
64
- <a href="images-soywiki/autocomplete.png" rel="lightbox[screens]"><img src="images-soywiki/autocomplete-small.png" /></a>
65
- <a href="images-soywiki/attach.png" rel="lightbox[screens]"><img src="images-soywiki/attach-small.png" /></a></p>
66
-
67
-
68
- <h2>Prerequisites</h2>
69
-
70
- <ul>
71
- <li>a recent version of Vim (SoyWiki is developed against Vim 7.2 and 7.3)</li>
72
- <li>a recent version of Ruby (SoyWiki is developed using Ruby 1.9.2)</li>
73
- <li>RubyGems (if Ruby version is older than 1.9)</li>
74
- <li>a recent version of Git (1.7.0.4 or above to be safe)</li>
75
- </ul>
76
-
77
-
78
- <p>The current version of SoyWiki assumes a Unix environment.</p>
79
-
80
- <p>To use SoyWiki you should be fairly good at using Vim.</p>
81
-
82
- <h2>Installation</h2>
83
-
84
- <pre><code>gem install soywiki
85
- </code></pre>
86
-
87
- <p>Test your installation by typing <code>soywiki -h</code>. You should see SoyWiki's help.</p>
88
-
89
- <p>On some systems you may run into a PATH issue, where the system can't find the
90
- <code>soywiki</code> command after installation. Please report this if you encounter this
91
- problem, and mention what system you're using. You might want to try</p>
92
-
93
- <pre><code>sudo gem install soywiki
94
- </code></pre>
95
-
96
- <p>If you ever want to uninstall SoyWiki from your system, execute this command:</p>
97
-
98
- <pre><code>gem uninstall soywiki
99
- </code></pre>
100
-
101
- <p>... and all traces of SoyWiki will removed.</p>
102
-
103
- <p>New and improved versions of SoyWiki will be released over time. To install the
104
- latest version, just type <code>gem install soywiki</code> again.</p>
105
-
106
- <h2>Starting SoyWiki</h2>
107
-
108
- <p>Before you start SoyWiki, create a directory that will hold your wiki
109
- files and <code>cd</code> into it. Then you can start SoyWiki with</p>
110
-
111
- <pre><code>soywiki
112
- </code></pre>
113
-
114
- <p>You can make as many SoyWiki wikis on your system as you want just by
115
- creating directories for them. It's not a good idea however to nest
116
- SoyWiki wiki directories within each other, for reasons that will become
117
- clear below.</p>
118
-
119
- <p>To use MacVim as your SoyWiki Vim engine, you can run soywiki like this</p>
120
-
121
- <pre><code>SOYWIKI_VIM=mvim soywiki
122
- </code></pre>
123
-
124
- <p>or you can <code>export SOYWIKI_VIM=mvim</code> in your <code>~/.bash_profile</code> and then
125
- just run <code>soywiki</code>.</p>
126
-
127
- <h2>Basic usage</h2>
128
-
129
- <p>For basic use, SoyWiki works exactly like a typical wiki.</p>
130
-
131
- <p>You write text, and when you want to create a new wiki page, you come up
132
- with a WikiWord for it and format it in CamelCase. The WikiLink you
133
- just typed will automatically be syntax-highlighted, and pressing ENTER
134
- on it will take you to the new page. Creating WikiWords and pressing
135
- ENTER on them is the main way of linking wiki pages together. You'll be
136
- surprised at how powerful this simple mechanism is for organizing your
137
- notes.</p>
138
-
139
- <p>That's all you need to know to get started.</p>
140
-
141
- <h2>Wiki navigation</h2>
142
-
143
- <p>Because SoyWiki is not just wiki but also a Vim program, it lets you
144
- work a lot faster and with more economy than browser-based wikis.</p>
145
-
146
- <p>You can navigate a SoyWiki wiki very quickly with the following
147
- commands.</p>
148
-
149
- <ul>
150
- <li><code>CTRL-n</code> and <code>CTRL-p</code> move the cursor directly to the next or previous WikiLink on the page</li>
151
- <li><code>ENTER</code> follows the WikiLink under the cursor</li>
152
- <li><code>,f</code> follows the first WikiLink after the cursor</li>
153
- <li><code>,-</code> opens a WikiLink in a split window</li>
154
- <li><code>,|</code> does the same, but in a vertical split window</li>
155
- </ul>
156
-
157
-
158
- <p>You can also use Vim's jump motions <code>CTRL-o</code> and <code>CTRL-i</code> to move back
159
- and forth in your jump history. See <code>:help jump-motions</code> for more on
160
- this. You can press <code>CTRL-^</code> to toggle between the current page and the
161
- last page you looked at.</p>
162
-
163
- <p>You can view all the pages in your wiki, most recently modified first,
164
- by press <code>,m</code>. This opens both a page list and autocompletion window.
165
- You can use the standard Vim autocompletion commands here to find the
166
- page you want and call it up. See Vim's <code>:help ins-completion-menu</code> for
167
- further instructions.</p>
168
-
169
- <p>When you're on a wiki page and you want to see all the other wiki pages
170
- that link in to it, press <code>,M</code>. If there is only one page that links in,
171
- you'll be taken there automatically.</p>
172
-
173
- <p><code>,o</code> opens the first normal web hyperlink -- the ones that begin with http://
174
- or https:// -- on or after the cursor in your default web browser.</p>
175
-
176
- <p>Under the covers, SoyWiki uses the command <code>gnome-open</code> or <code>open</code> to
177
- launch your web browser. This should cover Linux Gnome desktop and OS X
178
- users. You can change the command SoyWiki uses to open a hyperlink by
179
- adding this to your <code>~/.vimrc</code>:</p>
180
-
181
- <pre><code>let g:SoyWiki#browser_command = "your browser command here"
182
- </code></pre>
183
-
184
- <p>If your Vim has <code>netrw</code>, you can open a hyperlink directly in same Vim
185
- window by putting the cursor at the beginning of a hyperlink and typing
186
- <code>gf</code>, or <code>C-w f</code> if you want to open the webpage in a split window. See
187
- <code>:help netrw</code> for more information.</p>
188
-
189
- <h2>WikiLink autocompletion</h2>
190
-
191
- <p>When you're writing a wiki page and you want to link to another page,
192
- SoyWiki can help you autocomplete your WikiLink. Press <code>CTRL-x CTRL-u</code>
193
- in Vim insert mode to invoke it.</p>
194
-
195
- <h2>Wiki refactoring</h2>
196
-
197
- <p>You can rename a wiki page with<code>,r</code>. You'll see a prompt asking
198
- you for the new name. Make sure it is valid CamelCase. After you press
199
- ENTER, SoyWiki will rename the page and update all the links on other
200
- pages in your wiki that need updating because of the change.</p>
201
-
202
- <p>You can delete a page with <code>,#</code>.</p>
203
-
204
- <p>Beyond the standard cut and paste, SoyWiki gives you four fast ways of
205
- shuttling text from one wiki page to another.</p>
206
-
207
- <p>First, highlight the text you want to move with Vim's visual mode. (See
208
- <code>:help visual-mode</code> for more info)</p>
209
-
210
- <p>Then, type</p>
211
-
212
- <ul>
213
- <li><code>:SWInsert [target]</code> to move the text to the top of target page</li>
214
- <li><code>:SWAppend [target]</code> to move the text to the bottom of the target page</li>
215
- <li><code>:SWLinkInsert [target]</code> performs <code>:SWInsert</code> and replaces the text with a WikiWord link</li>
216
- <li><code>:SWLinkAppend [target]</code> performs <code>:SWAppend</code> and replaces the text with a WikiWord link</li>
217
- </ul>
218
-
219
-
220
- <p><code>[target]</code> is the name of the file that contains the wiki page you're
221
- targeting. Press <code>TAB</code> for autocompletion help.</p>
222
-
223
- <p>These commands will open the target page (if it isn't open already) in a
224
- split window and insert or append the selected text into it. If the
225
- target page doesn't exist, it will be created.</p>
226
-
227
- <p>You can use these shortcuts:</p>
228
-
229
- <ul>
230
- <li><code>:SWInsert</code> &rarr; <code>:SWI</code></li>
231
- <li><code>:SWAppend</code> &rarr; <code>:SWA</code></li>
232
- </ul>
233
-
234
-
235
- <p>With <code>:SWLinkInsert</code> and <code>:SWLinkAppend</code> you can use tab-autocompletion
236
- to avoid typing out the whole command name.</p>
237
-
238
- <h2>Search</h2>
239
-
240
- <p>To search your SoyWiki wiki, type <code>:SWSearch [search term]</code>. Vim will
241
- load any matches in the quickfix list window. If there are matches, you
242
- can use <code>:cn</code> and <code>:cp</code> to go from match to match. See <code>:help quickfix</code>
243
- for more QuickFix commands.</p>
244
-
245
- <p>Searches are case-insensitve by default. To do a case-sensitive search,
246
- add a <code>\C</code> to your search string, e.g.:</p>
247
-
248
- <pre><code>:SWSearch Gnu\C
249
- </code></pre>
250
-
251
- <p>Again, you can use <code>:SWS</code> as a shortcut.</p>
252
-
253
- <p>Under the hood, <code>:SWSearch</code> is just a thin wrapper around the <code>:vimgrep</code>
254
- command.</p>
255
-
256
- <h2>Revision history and distributed workflows</h2>
257
-
258
- <p>SoyWiki delegates revision-tracking, syncing, and collaboration
259
- workflows to Git. SoyWiki automatically creates a Git repository in
260
- your wiki directory and automatically commits all the edits you make to
261
- it. You can sync a SoyWiki wiki between two computers using the
262
- standard Git push and pull commands. Collaborators can also edit a
263
- common wiki this way, in peer to peer fashion.</p>
264
-
265
- <p>SoyWiki provides a few convenient key mappings to view the revision
266
- history of a wiki page:</p>
267
-
268
- <ul>
269
- <li><code>,l</code> shows a <code>git-log</code> view of the revision history of the current page</li>
270
- <li><code>,b</code> shows a <code>git-blame</code> view of the current page, which shows when each line was added and by whom.</li>
271
- <li><code>:SWLogStat</code> shows a <code>git log --stat</code> view of the current page's revision history</li>
272
- </ul>
273
-
274
-
275
- <p>You can always bypass Vim and SoyWiki altogether and use Git directly to
276
- inspect your revision history. The Git repo for your SoyWiki wiki will
277
- be located in the same directory as your wiki files.</p>
278
-
279
- <p>To sync your SoyWiki wiki between two personal computers, just follow
280
- the general instructions <a href="http://www-cs-students.stanford.edu/~blynn/gitmagic/ch03.html">here</a>.</p>
281
-
282
- <h2>Namespaced WikiWords</h2>
283
-
284
- <p>You can get very far with SoyWiki using normal CamelCase WikiWords.</p>
285
-
286
- <pre><code>NormalWikiWord
287
- </code></pre>
288
-
289
- <p>But if you want, you can also namespace your WikiWords, like so:</p>
290
-
291
- <pre><code>namespaced.WikiWord
292
- </code></pre>
293
-
294
- <p>A namespaced WikiWord is a WikiWord prefixed by a namespace and a
295
- period. The namespace word must start with a lower-case letter and
296
- consist only of letters, numbers, and underscore characters. You can't
297
- chain namespace words together: the maximum nesting level is 1.</p>
298
-
299
- <p>Namespaced WikiWords help organize your wiki space conceptually. They also
300
- have two other benefits:</p>
301
-
302
- <p>First, wiki pages that represent a namespaced WikiWord are stored under a
303
- subdirectory named after the namespace. This can help reduce clutter in
304
- your wiki directory.</p>
305
-
306
- <p>Second, a WikiWord namespace lets you use abbreviated links within that
307
- namespace. For example, if you are editing a page called
308
- <code>recipes.SoyMacaroni</code> and you want to link to another page in the same
309
- namespace called <code>recipes.SoyRaspberrySmoothie</code> you can type the link in
310
- this special abbreviated form:</p>
311
-
312
- <pre><code>.SoyRaspberrySmoothie
313
- </code></pre>
314
-
315
- <p>SoyWiki will know from the leading period that this is a link to another
316
- page in the same namespace.</p>
317
-
318
- <p>WikiLink autocompletion also works with abbreviated namespaced links. Just type a
319
- period, and invoke autocompletion with <code>CTRL-x CTRL-u</code>.</p>
320
-
321
- <h2>Expanding a wiki page</h2>
322
-
323
- <p>SoyWiki lets you "expand" a wiki page. What this does is expand all the
324
- wiki links in the page that appear alone on a line. Each of these links
325
- is replaced by the content of the wiki page the link points to. This
326
- expansion works recursively on all the expanded content. Don't worry.
327
- It can't fall into an infinite recursive loop because it will only
328
- expand each WikiWord it encounters once, leaving all subsequent
329
- references to the same WikiWord unexpanded.</p>
330
-
331
- <p>The expanded version of the page will appear in a new Vim scratch buffer.
332
- From there you can write it out to a new text file, pipe it to <code>lpr</code> to
333
- print it, or whatever you like.</p>
334
-
335
- <p>There are two forms of expansion: seamful and seamless. Seamful
336
- expansion expands wiki links into wiki pages and clearly marks where
337
- this has happened by including markers along with the WikiWord that was
338
- expanded. Seamless expansion does not mark a point of expansion with
339
- anything, and it erases the WikiWord that got expanded.</p>
340
-
341
- <ul>
342
- <li><code>,x</code> expands a wiki page seamfully</li>
343
- <li><code>,X</code> expands a wiki page seamlessly</li>
344
- </ul>
345
-
346
-
347
- <p>Both modes of expansion are useful when you want to assemble a long
348
- piece of writing by using one page as a master outline that links to
349
- other wiki pages that include the real content. And since expansion is
350
- recursive, you can effectively nest outlines within outlines, like
351
- dreams within dreams.</p>
352
-
353
- <h2>Getting help</h2>
354
-
355
- <p>Typing <code>,?</code> will open the help webpage in a browser.</p>
356
-
357
- <h2>Why CamelCase WikiLinks rule</h2>
358
-
359
- <p>Some people don't like the CamelCase (a.k.a. WikiCase) wiki link
360
- pattern. But SoyWiki embraces it and wants everyone to adopt it, for the
361
- following reasons:</p>
362
-
363
- <ul>
364
- <li>Besides being the original, CamelCase is the most elegantly minimalist approach to linking wiki pages together -- "with no additional markup whatsoever," as <a href="http://c2.com/cgi/wiki?WikiCase">Ward Cunningham put it</a>.</li>
365
- <li>It encourages you more than other wiki link patterns to create wiki pages with succinctly descriptive names that are easy to remember.</li>
366
- <li>Because the link pattern is so minimal and succinct, writing
367
- them interrupts your flow of thought a lot less than other wiki patterns.</li>
368
- <li>It is very conducive to storing
369
- wiki pages in plain text files: the page names can map directly to Unix
370
- file names without any awkward character escaping.</li>
371
- </ul>
372
-
373
-
374
- <h2>Why name a wiki engine after a legume?</h2>
375
-
376
- <p>I am a fan of food made of <a href="http://www.mayoclinic.com/health/soy/NS_patient-soy">soy</a>: soy ice cream, soy milk, soy
377
- burgers, soy butter, you name it. The word "soy" has come to signify a
378
- newer, lighter, healthier alternative to the same old same old. SoyWiki
379
- may not be an actual soy product, but it tries to be a wiki engine with
380
- soy-like benefits.</p>
381
-
382
- <h2>How to contact the developer</h2>
383
-
384
- <p>My name is Daniel Choi. I am based in Cambridge, Massachusetts, USA, and you
385
- can email me at dhchoi {at} gmail.com.</p>
386
-
387
- <h2>How to support the SoyWiki project</h2>
388
-
389
- <p>If you find SoyWiki very useful, feel free to drop me a note to say so. If you
390
- have a bug to report or a good feature to suggest, please file it on the <a href="https://github.com/danchoi/soywiki/issues">issue
391
- tracker</a>.</p>
392
-
393
- </div>
394
- <div class="grid_2 omega">
395
-
396
- <div class="sidebar">
397
-
398
- <h4>current version</h4>
399
-
400
- <ul>
401
- <li>
402
- 0.0.3
403
- </li>
404
- </ul>
405
-
406
- <h4>links</h4>
407
- <ul>
408
- <li><a href="https://github.com/danchoi/soywiki">github repo</a></li>
409
- <li><a href="https://rubygems.org/gems/soywiki">rubygems page</a></li>
410
- <li><a href="https://github.com/danchoi/soywiki/issues">issue tracker</a></li>
411
- <li><a href="https://github.com/danchoi/soywiki/commits/master">commit history</a></li>
412
- <li><a href="https://github.com/danchoi/soywiki/wiki">wiki</a></li>
413
- </ul>
414
-
415
- <h4>share this</h4>
416
-
417
- <span class="st_twitter_large" displayText="Tweet"></span><span class="st_facebook_large" displayText="Facebook"></span><span class="st_ybuzz_large" displayText="Yahoo! Buzz"></span><span class="st_gbuzz_large" displayText="Google Buzz"></span><span class="st_email_large" displayText="Email"></span><span class="st_sharethis_large" displayText="ShareThis"></span>
418
-
419
-
420
- <div class="also-by">
421
- <h4>also by this developer</h4>
422
- <ul class="cross-promo">
423
- <li><a href="http://vmail.com">vmail<a/></li>
424
- <li><a href="http://instantwatcher.com">instantwatcher.com<a/></li>
425
- <li><a href="http://openmbta.org">OpenMBTA<a/></li>
426
- <li><a href="http://kindlefeeder.com">kindlefeeder.com<a/></li>
427
- </ul>
428
- </div>
429
-
430
-
431
- </div>
432
-
433
- </div>
434
- </div>
435
-
436
- <script type="text/javascript">
437
- var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
438
- document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
439
- </script>
440
- <script type="text/javascript">
441
- var pageTracker = _gat._getTracker("UA-4028996-5");
442
- pageTracker._initData();
443
- pageTracker._trackPageview();
444
- </script>
445
- </body>
446
- </html>