soywiki 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +0 -1
- data/README.markdown +37 -45
- data/Rakefile +2 -6
- data/lib/soywiki.rb +1 -1
- data/lib/soywiki.vim +1 -1
- data/website/.gitignore +1 -0
- data/website/bottom.markdown +0 -0
- data/website/gen.rb +19 -0
- data/website/lightbox2/css/lightbox.css +27 -0
- data/website/lightbox2/images/bullet.gif +0 -0
- data/website/lightbox2/images/close.gif +0 -0
- data/website/lightbox2/images/closelabel.gif +0 -0
- data/website/lightbox2/images/donate-button.gif +0 -0
- data/website/lightbox2/images/download-icon.gif +0 -0
- data/website/lightbox2/images/image-1.jpg +0 -0
- data/website/lightbox2/images/loading.gif +0 -0
- data/website/lightbox2/images/nextlabel.gif +0 -0
- data/website/lightbox2/images/prevlabel.gif +0 -0
- data/website/lightbox2/images/thumb-1.jpg +0 -0
- data/website/lightbox2/index.html +63 -0
- data/website/lightbox2/js/builder.js +136 -0
- data/website/lightbox2/js/effects.js +1122 -0
- data/website/lightbox2/js/lightbox.js +498 -0
- data/website/lightbox2/js/prototype.js +4221 -0
- data/website/lightbox2/js/scriptaculous.js +58 -0
- data/website/soywiki-template.html +73 -0
- data/website/soywiki.html +446 -0
- data/website/stylesheets-vmail/960.css +1 -0
- data/website/stylesheets-vmail/reset.css +1 -0
- data/website/stylesheets-vmail/site.css +67 -0
- data/website/stylesheets-vmail/syntax-colors.css +33 -0
- data/website/stylesheets-vmail/text.css +1 -0
- data/website/top.screenshots +7 -0
- metadata +30 -2
@@ -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> → <code>:SWI</code></li>
|
231
|
+
<li><code>:SWAppend</code> → <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>
|