soywiki 0.0.9 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>