soywiki 0.2.3 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -43,7 +43,7 @@ SoyWiki is free and open source.
43
43
  ## Prerequisites
44
44
 
45
45
  * a recent version of Vim (SoyWiki is developed against Vim 7.2 and 7.3)
46
- * a recent version of Ruby (SoyWiki is developed using Ruby 1.9.2)
46
+ * a recent version of Ruby: Ruby 1.9.2 is recommended
47
47
  * RubyGems (if Ruby version is older than 1.9)
48
48
  * a recent version of [Git][git] (1.7.0.4 or above to be safe)
49
49
 
@@ -97,17 +97,19 @@ To use MacVim as your SoyWiki Vim engine, you can run soywiki like this
97
97
  or you can `export SOYWIKI_VIM=mvim` in your `~/.bash_profile` and then
98
98
  just run `soywiki`.
99
99
 
100
+
100
101
  ## Basic usage
101
102
 
102
103
  For basic use, SoyWiki works exactly like a typical wiki.
103
104
 
104
- You write text, and when you want to create a new wiki page, you come up
105
- with a WikiWord for it and format it in CamelCase. The WikiLink you just
106
- typed will automatically be syntax-highlighted, and pressing ENTER on it
107
- will take you to the new page. Creating WikiWords and pressing ENTER on
108
- them is how you create wiki pages and link them together. You'll be
109
- surprised at how powerful this simple mechanism is for organizing your
110
- notes.
105
+ You write text, and when you want to create a new wiki page, you come up with a
106
+ WikiWord for it and format it in CamelCase. Whenever you type a valid WikiLink,
107
+ it will automatically be syntax-highlighted, and pressing ENTER on it will take
108
+ you to the new page.
109
+
110
+ Creating WikiWords and pressing ENTER on them is how you create wiki pages and
111
+ link them together. You'll be surprised at how powerful this simple mechanism
112
+ is for organizing your notes.
111
113
 
112
114
  In SoyWiki, a wiki page is a simple text file that has a WikiWord title
113
115
  on the first line (don't alter this line) and any text your want to
@@ -119,36 +121,41 @@ That's all you need to know to get started.
119
121
 
120
122
  ## Namespaced WikiWords
121
123
 
122
- You can get very far with SoyWiki using normal CamelCase WikiWords.
124
+ Every WikiWord in SoyWiki is implicitly or explicitly namespaced.
123
125
 
124
- NormalWikiWord
126
+ An explicitly namespaced WikiWord looks like this:
125
127
 
126
- But if you want, you can also namespace your WikiWords, like so:
128
+ recipes.SoyRaspberrySmoothie
127
129
 
128
- namespace.WikiWord
130
+ The implicitly namespaced form looks just like a conventional WikiWord:
129
131
 
130
- A namespaced WikiWord is a WikiWord prefixed by a namespace and a
131
- period. The namespace word must start with a lower-case letter and
132
- consist only of letters, numbers, and underscore characters. You can't
133
- chain namespace words together: the maximum nesting level is 1.
132
+ SoyRaspberrySmoothie
134
133
 
135
- Namespaced WikiWords help organize your wiki space conceptually. They also
136
- have two other benefits:
134
+ A namespace must start with a lower-case letter and consist only of letters,
135
+ numbers, and underscore characters.
137
136
 
138
- First, wiki pages that represent a namespaced WikiWord are stored under a
139
- subdirectory named after the namespace. This can help reduce clutter in
140
- your wiki directory.
137
+ Within a WikiWord namespace you can use unqualified WikiWords to link pages
138
+ within that namespace together. For example, if you are editing a page called
139
+ `recipes.SoyMacaroni` and you want to link to a page called
140
+ `recipes.SoyRaspberrySmoothie`, you can type a link called
141
+ `SoyRaspberrySmoothie`. SoyWiki will treat this link as an implicitly
142
+ namespaced link to another page in the `recipes` namespace.
141
143
 
142
- Every WikiWord namespace lets you use abbreviated links within that
143
- namespace. For example, if you are editing a page called
144
- `recipes.SoyMacaroni` and you want to link to another page in the same
145
- namespace called `recipes.SoyRaspberrySmoothie` you can type the link as
146
- just `SoyRaspberrySmoothie`. SoyWiki will know that this is a link to
147
- another page in the same namespace.
144
+ You can't chain namespace words together. The maximum nesting level is 1. More
145
+ nesting would imply hierarchical relationships, and permitting hierarchical
146
+ nesting goes against the grain of what a wiki is, which is an [undirected
147
+ graph][graph]. SoyWiki namespaces are not supposed to represent hierarchies,
148
+ but domains (e.g., personal, work, project1, project2, etc.). You can easily
149
+ represent hierarchical relationships _within_ a wiki page. See "Expanding a
150
+ wiki page" below to see how you can use SoyWiki like an outliner program.
148
151
 
149
- When you start SoyWiki for the first time, the active namespace is the
150
- default namespace `main`.
152
+ [graph]:http://en.wikipedia.org/wiki/Graph_theory
151
153
 
154
+ SoyWiki's namespaced WikiWords help organize your wiki space conceptually.
155
+ They also help reduce clutter in your wiki directory.
156
+
157
+ When you start SoyWiki for the first time, the active namespace is the default
158
+ namespace `main`. `main.HomePage` is the first page you will see.
152
159
 
153
160
  ## Wiki navigation
154
161
 
@@ -174,7 +181,7 @@ this. You can press `CTRL-^` to toggle between the current page and the
174
181
  last page you looked at.
175
182
 
176
183
  You can view all the pages in your wiki, most recently modified first,
177
- by press `,m`. This opens both a page list and autocompletion window.
184
+ by pressing `,m`. This opens both a page list and autocompletion window.
178
185
  You can use the standard Vim autocompletion commands here to find the
179
186
  page you want and call it up. See Vim's `:help ins-completion-menu` for
180
187
  further instructions.
@@ -310,11 +317,13 @@ You can always bypass Vim and SoyWiki altogether and use Git directly to
310
317
  inspect your revision history. The Git repo for your SoyWiki wiki will
311
318
  be located in the same directory as your wiki files.
312
319
 
313
- To sync your SoyWiki wiki between two personal computers, just follow
314
- the general instructions [here][git-sync].
320
+ To sync your SoyWiki wiki between two personal computers, you can follow the
321
+ instructions [here][git-sync] or you can set up an bare Git repository
322
+ upstream on some server for all your computers to push to and pull from.
315
323
 
316
324
  [git-sync]:http://www-cs-students.stanford.edu/~blynn/gitmagic/ch03.html
317
325
 
326
+
318
327
  If you want to edit a common SoyWiki with many other people, it's
319
328
  probably best to set up a common upstream Git repository and to work
320
329
  locally on a development branch before pulling the HEAD of the master
@@ -347,8 +356,8 @@ anything, and it erases the WikiWord that got expanded.
347
356
 
348
357
  * `,x` expands a wiki page seamfully and opens on a vertical split
349
358
  * `,X` expands a wiki page seamlessly and opens on a vertical split
350
- * `,nx` expands a wiki page seamfully and opens on normal split
351
- * `,nX` expands a wiki page seamlessly and opens on a normal split
359
+ * `,hx` expands a wiki page seamfully and opens on normal split
360
+ * `,hX` expands a wiki page seamlessly and opens on a normal split
352
361
  * `q` closes the expanded view window
353
362
 
354
363
  Both modes of expansion are useful when you want to assemble a long
@@ -360,8 +369,8 @@ dreams within dreams.
360
369
 
361
370
  ## Exporting to HTML
362
371
 
363
- Want to share your wiki with non-Vim-users? Export your wiki into a directory
364
- of html pages, type `soywiki --html` from the root directory of your wiki.
372
+ Want to share your wiki with non-Vim-users? You can export your wiki into a directory
373
+ of html pages. Type `soywiki --html` from the root directory of your wiki.
365
374
 
366
375
 
367
376
  ## Extra macros
@@ -386,7 +395,7 @@ Some people don't like the CamelCase (a.k.a. WikiCase) wiki link
386
395
  pattern. But SoyWiki embraces it and wants everyone to adopt it, for the
387
396
  following reasons:
388
397
 
389
- * Besides being the original, CamelCase is the most elegantly minimalist approach to linking wiki pages together -- "with no additional markup whatsoever," as [Ward Cunningham put it][ward].
398
+ * Besides being the original, CamelCase is the most elegantly minimalist approach to linking wiki pages together -- "with no additional markup whatsoever," [as Ward Cunninghamb put it][ward].
390
399
  * It encourages you more than other wiki link patterns to create wiki pages with succinctly descriptive names that are easy to remember.
391
400
  * Because the link pattern is so minimal and succinct, writing
392
401
  them interrupts your flow of thought a lot less than other wiki patterns.
@@ -407,9 +416,9 @@ can email me at dhchoi {at} gmail.com.
407
416
 
408
417
  ## How to support the SoyWiki project
409
418
 
410
- If you find SoyWiki very useful, feel free to drop me a note to say so. If you
411
- have a bug to report or a good feature to suggest, please file it on the [issue
412
- tracker][1].
419
+ SoyWiki is very new, so there are kinks and bugs to iron out and lot of
420
+ desirable features to add. If you have a bug to report or a good feature to
421
+ suggest, please file it on the [issue tracker][1]. That will help a lot.
413
422
 
414
423
  [1]:https://github.com/danchoi/soywiki/issues
415
424
 
data/Rakefile CHANGED
@@ -1,5 +1,4 @@
1
1
  $LOAD_PATH.unshift File.join(File.dirname(__FILE__), 'lib')
2
- require 'couchrest'
3
2
  require 'yaml'
4
3
  require 'json'
5
4
  require 'rake'
data/lib/soywiki.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'string_ext'
2
2
 
3
3
  module Soywiki
4
- VERSION = '0.2.3'
4
+ VERSION = '0.2.7'
5
5
  WIKI_WORD = /\b([a-z][\w_]+\.)?[A-Z][a-z]+[A-Z]\w*\b/
6
6
  HYPERLINK = %r|\bhttps?://[^ >)\n\]]+|
7
7
 
data/lib/soywiki.vim CHANGED
@@ -292,13 +292,15 @@ endfunc
292
292
  func! s:get_page_list()
293
293
  " no file current in buffer
294
294
  if len(bufname('')) == 0
295
- return split(system(s:ls_command), "\n")
295
+ let pages = split(system(s:ls_command), "\n")
296
296
  elseif bufname('') == 'pages-linking-in'
297
297
  " this needs refactoring to rely less on state
298
- return s:pages_linking_in
298
+ let pages = s:pages_linking_in
299
299
  else
300
- return s:omit_this_page(split(system(s:ls_command), "\n"))
300
+ "let pages = s:omit_this_page(split(system(s:ls_command), "\n"))
301
+ let pages = split(system(s:ls_command), "\n")
301
302
  endif
303
+ return pages
302
304
  endfunction
303
305
 
304
306
 
@@ -389,12 +391,11 @@ function! CompletePageTitle(findstart, base)
389
391
  endif
390
392
  endfun
391
393
 
392
-
393
394
  function! s:select_page()
394
395
  let page = s:trimString( get(split(getline(line('.')), ": "), 1) )
395
396
  close
396
397
  exe s:return_to_winnr . "wincmd w"
397
- if (page == '0' || page == '') " no selection
398
+ if (page == '') " no selection
398
399
  return
399
400
  end
400
401
  let match = ""
@@ -599,8 +600,8 @@ func! s:prep_buffer()
599
600
 
600
601
  noremap <buffer> <leader>x :call <SID>expand(0,1)<CR>
601
602
  noremap <buffer> <leader>X :call <SID>expand(1,1)<CR>
602
- noremap <buffer> <leader>nx :call <SID>expand(0,0)<CR>
603
- noremap <buffer> <leader>nX :call <SID>expand(1,0)<CR>
603
+ noremap <buffer> <leader>hx :call <SID>expand(0,0)<CR>
604
+ noremap <buffer> <leader>hX :call <SID>expand(1,0)<CR>
604
605
 
605
606
  noremap <silent> <leader>? :call <SID>show_help()<cr>
606
607
 
@@ -615,7 +616,7 @@ endfunc
615
616
 
616
617
  func! s:highlight_wikiwords()
617
618
  if (s:is_wiki_page())
618
- syntax clear
619
+ " syntax clear
619
620
  exe "syn match Comment /". s:wiki_link_pattern. "/"
620
621
  exe "syn match Constant /". s:http_link_pattern . "/"
621
622
  endif
@@ -650,3 +651,5 @@ endif
650
651
  syntax enable
651
652
  let mapleader = ','
652
653
  call s:highlight_wikiwords()
654
+
655
+
data/website/gen.rb CHANGED
@@ -1,14 +1,14 @@
1
- require 'liquid'
2
1
  require 'rdiscount'
2
+ require 'liquid'
3
3
 
4
4
  module Webpage
5
5
  def self.generate(version)
6
6
  screenshots = RDiscount.new(File.read("top.screenshots")).to_html
7
7
  readme = File.expand_path("../../README.markdown", __FILE__)
8
- raise "no README" unless File.size?(readme)
8
+ raise "No README" unless File.size?(readme)
9
9
  md = File.read(readme).split(/^\s*$/)
10
- headers = md.grep(/## Prerequisites/)
11
- insert_at = md.index headers.first
10
+ insert_before = md.grep(/^A quick overview of/)
11
+ insert_at = md.index insert_before.first
12
12
  md.insert(insert_at, screenshots)
13
13
  md = md.join("\n\n")
14
14
  # for some reason markdown inserts extra blank lines
Binary file
Binary file
Binary file
Binary file
@@ -36,6 +36,7 @@
36
36
  <li><a href="https://rubygems.org/gems/soywiki">rubygems page</a></li>
37
37
  <li><a href="https://github.com/danchoi/soywiki/issues">issue tracker</a></li>
38
38
  <li><a href="https://github.com/danchoi/soywiki/commits/master">commit history</a></li>
39
+ <li><a href="http://groups.google.com/group/soywiki-users?msg=new&lnk=gcis">google group</a></li>
39
40
  <li><a href="https://github.com/danchoi/soywiki/wiki">wiki</a></li>
40
41
  </ul>
41
42
 
@@ -43,6 +44,7 @@
43
44
 
44
45
  <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
+ <iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdanielchoi.com%2Fsoftware%2Fsoywiki.html&amp;layout=button_count&amp;show_faces=false&amp;width=50&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:120px; height:25px; margin-top:6px;"></iframe>
46
48
 
47
49
  <div class="also-by">
48
50
  <h4>also by this developer</h4>
@@ -1,7 +1,7 @@
1
1
  ## Screenshots
2
2
 
3
- <a href="images-soywiki/1.png" rel="lightbox[screens]"><img src="images-soywiki/1-small.png" /></a>
4
- <a href="images-soywiki/autocomplete.png" rel="lightbox[screens]"><img src="images-soywiki/autocomplete-small.png" /></a>
5
- <a href="images-soywiki/attach.png" rel="lightbox[screens]"><img src="images-soywiki/attach-small.png" /></a>
3
+ <a href="images-soywiki/page-select.png" rel="lightbox[screens]"><img src="images-soywiki/sm-page-select.png" /></a>
4
+ <a href="images-soywiki/search.png" rel="lightbox[screens]"><img src="images-soywiki/sm-search.png" /></a>
5
+ <a href="images-soywiki/expand.png" rel="lightbox[screens]"><img src="images-soywiki/sm-expand.png" /></a>
6
6
 
7
7
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 3
9
- version: 0.2.3
8
+ - 7
9
+ version: 0.2.7
10
10
  platform: ruby
11
11
  authors:
12
12
  - Daniel Choi
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-02-13 00:00:00 -05:00
17
+ date: 2011-02-14 00:00:00 -05:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -65,6 +65,15 @@ files:
65
65
  - website/.gitignore
66
66
  - website/bottom.markdown
67
67
  - website/gen.rb
68
+ - website/images-soywiki/expand.png
69
+ - website/images-soywiki/expand.xcf
70
+ - website/images-soywiki/page-select.png
71
+ - website/images-soywiki/page-select.xcf
72
+ - website/images-soywiki/search.png
73
+ - website/images-soywiki/search.xcf
74
+ - website/images-soywiki/sm-expand.png
75
+ - website/images-soywiki/sm-page-select.png
76
+ - website/images-soywiki/sm-search.png
68
77
  - website/lightbox2/css/lightbox.css
69
78
  - website/lightbox2/images/bullet.gif
70
79
  - website/lightbox2/images/close.gif