soywiki 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,58 @@
1
+ // script.aculo.us scriptaculous.js v1.8.1, Thu Jan 03 22:07:12 -0500 2008
2
+
3
+ // Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
4
+ //
5
+ // Permission is hereby granted, free of charge, to any person obtaining
6
+ // a copy of this software and associated documentation files (the
7
+ // "Software"), to deal in the Software without restriction, including
8
+ // without limitation the rights to use, copy, modify, merge, publish,
9
+ // distribute, sublicense, and/or sell copies of the Software, and to
10
+ // permit persons to whom the Software is furnished to do so, subject to
11
+ // the following conditions:
12
+ //
13
+ // The above copyright notice and this permission notice shall be
14
+ // included in all copies or substantial portions of the Software.
15
+ //
16
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ //
24
+ // For details, see the script.aculo.us web site: http://script.aculo.us/
25
+
26
+ var Scriptaculous = {
27
+ Version: '1.8.1',
28
+ require: function(libraryName) {
29
+ // inserting via DOM fails in Safari 2.0, so brute force approach
30
+ document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');
31
+ },
32
+ REQUIRED_PROTOTYPE: '1.6.0',
33
+ load: function() {
34
+ function convertVersionString(versionString){
35
+ var r = versionString.split('.');
36
+ return parseInt(r[0])*100000 + parseInt(r[1])*1000 + parseInt(r[2]);
37
+ }
38
+
39
+ if((typeof Prototype=='undefined') ||
40
+ (typeof Element == 'undefined') ||
41
+ (typeof Element.Methods=='undefined') ||
42
+ (convertVersionString(Prototype.Version) <
43
+ convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
44
+ throw("script.aculo.us requires the Prototype JavaScript framework >= " +
45
+ Scriptaculous.REQUIRED_PROTOTYPE);
46
+
47
+ $A(document.getElementsByTagName("script")).findAll( function(s) {
48
+ return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/))
49
+ }).each( function(s) {
50
+ var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,'');
51
+ var includes = s.src.match(/\?.*load=([a-z,]*)/);
52
+ (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider,sound').split(',').each(
53
+ function(include) { Scriptaculous.require(path+include+'.js') });
54
+ });
55
+ }
56
+ }
57
+
58
+ Scriptaculous.load();
@@ -0,0 +1,73 @@
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?{{timestamp}}" media="screen" rel="stylesheet" type="text/css" />
7
+ <link href="stylesheets-vmail/960.css?{{timestamp}}" media="screen" rel="stylesheet" type="text/css" />
8
+ <link href="stylesheets-vmail/text.css?{{timestamp}}" media="screen" rel="stylesheet" type="text/css" />
9
+ <link href="stylesheets-vmail/site.css?{{timestamp}}" 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
+ {{content}}
20
+ </div>
21
+ <div class="grid_2 omega">
22
+
23
+ <div class="sidebar">
24
+
25
+ <h4>current version</h4>
26
+
27
+ <ul>
28
+ <li>
29
+ {{version}}
30
+ </li>
31
+ </ul>
32
+
33
+ <h4>links</h4>
34
+ <ul>
35
+ <li><a href="https://github.com/danchoi/soywiki">github repo</a></li>
36
+ <li><a href="https://rubygems.org/gems/soywiki">rubygems page</a></li>
37
+ <li><a href="https://github.com/danchoi/soywiki/issues">issue tracker</a></li>
38
+ <li><a href="https://github.com/danchoi/soywiki/commits/master">commit history</a></li>
39
+ <li><a href="https://github.com/danchoi/soywiki/wiki">wiki</a></li>
40
+ </ul>
41
+
42
+ <h4>share this</h4>
43
+
44
+ <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>
45
+
46
+
47
+ <div class="also-by">
48
+ <h4>also by this developer</h4>
49
+ <ul class="cross-promo">
50
+ <li><a href="http://vmail.com">vmail<a/></li>
51
+ <li><a href="http://instantwatcher.com">instantwatcher.com<a/></li>
52
+ <li><a href="http://openmbta.org">OpenMBTA<a/></li>
53
+ <li><a href="http://kindlefeeder.com">kindlefeeder.com<a/></li>
54
+ </ul>
55
+ </div>
56
+
57
+
58
+ </div>
59
+
60
+ </div>
61
+ </div>
62
+
63
+ <script type="text/javascript">
64
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
65
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
66
+ </script>
67
+ <script type="text/javascript">
68
+ var pageTracker = _gat._getTracker("UA-4028996-5");
69
+ pageTracker._initData();
70
+ pageTracker._trackPageview();
71
+ </script>
72
+ </body>
73
+ </html>
@@ -0,0 +1,446 @@
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>