xiki 0.5.3a → 0.6.0a

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. data/etc/command/xiki_command.rb +6 -5
  2. data/etc/presentations/face.deck +9 -9
  3. data/etc/presentations/menu_directories.deck +6 -6
  4. data/etc/presentations/potential/intro.deck +1 -1
  5. data/etc/presentations/potential/intro1.deck +1 -1
  6. data/etc/presentations/potential/make_mysql_menu.deck +1 -1
  7. data/etc/www/sinatra_server.rb +2 -2
  8. data/lib/xiki.rb +2 -2
  9. data/lib/xiki/code.rb +2 -2
  10. data/lib/xiki/console.rb +0 -3
  11. data/lib/xiki/file_tree.rb +2 -2
  12. data/lib/xiki/image.rb +3 -1
  13. data/lib/xiki/launcher.rb +5 -5
  14. data/lib/xiki/menu.rb +19 -19
  15. data/lib/xiki/notes.rb +2 -4
  16. data/lib/xiki/projects.rb +1 -1
  17. data/lib/xiki/requirer.rb +1 -1
  18. data/lib/xiki/window.rb +1 -1
  19. data/{menus → menu}/accounts.rb +0 -0
  20. data/{menus → menu}/address_book.rb +0 -0
  21. data/{menus → menu}/agenda.rb +0 -0
  22. data/{menus → menu}/all.rb +0 -0
  23. data/{menus → menu}/amazon.rb +0 -0
  24. data/menu/apache.rb +21 -0
  25. data/{menus → menu}/app.rb +0 -0
  26. data/{menus → menu}/applescript.rb +0 -0
  27. data/menu/aquamacs.menu +10 -0
  28. data/{menus → menu}/as.rb +0 -0
  29. data/menu/ascii.menu +131 -0
  30. data/{menus → menu}/black.menu +0 -0
  31. data/{menus → menu}/bookmarklet.rb +0 -0
  32. data/{menus → menu}/bootstrap.rb +0 -0
  33. data/menu/brew.menu +12 -0
  34. data/{menus → menu}/browser.rb +2 -3
  35. data/menu/calendar.rb +42 -0
  36. data/{menus → menu}/cassandra_db.rb +0 -0
  37. data/menu/chgrp.menu +1 -0
  38. data/{menus → menu}/chmod.rb +0 -0
  39. data/menu/chown.rb +32 -0
  40. data/menu/cla.rb +19 -0
  41. data/{menus → menu}/classes.rb +0 -0
  42. data/{menus → menu}/coffee_script.rb +0 -0
  43. data/menu/colors.menu +2 -0
  44. data/menu/computer.menu +4 -0
  45. data/{menus → menu}/conf.rb +0 -0
  46. data/{menus → menu}/contacts.rb +0 -0
  47. data/{menus → menu}/cookies.rb +0 -0
  48. data/{menus → menu}/couch.rb +0 -0
  49. data/menu/count.menu +4 -0
  50. data/menu/cpu.menu +2 -0
  51. data/{menus → menu}/create.rb +1 -1
  52. data/{menus → menu}/crop.rb +0 -0
  53. data/{menus → menu}/css.rb +0 -0
  54. data/menu/curl.menu +8 -0
  55. data/{menus → menu}/current.rb +0 -0
  56. data/menu/databases.menu +6 -0
  57. data/{menus → menu}/db.rb +0 -0
  58. data/{menus → menu}/deck.rb +0 -0
  59. data/menu/def.rb +17 -0
  60. data/{menus → menu}/dictionary.rb +0 -0
  61. data/menu/diffs.menu +2 -0
  62. data/menu/dimensions_config.menu +8 -0
  63. data/{menus → menu}/dimensions_config.rb +0 -0
  64. data/{menus → menu}/disk.rb +0 -0
  65. data/{menus → menu}/do.rb +0 -0
  66. data/menu/docs.menu +74 -0
  67. data/menu/dom.rb +252 -0
  68. data/{menus → menu}/dotsies.rb +0 -0
  69. data/{menus → menu}/edited.rb +0 -0
  70. data/menu/edits.rb +5 -0
  71. data/{menus → menu}/emacs.rb +0 -0
  72. data/menu/encoding.rb +32 -0
  73. data/{menus → menu}/enter.rb +0 -0
  74. data/{menus → menu}/executable.rb +0 -0
  75. data/{menus → menu}/filter.rb +0 -0
  76. data/{menus → menu}/firefox.rb +0 -0
  77. data/menu/font.menu +1 -0
  78. data/{menus → menu}/foo.rb +0 -0
  79. data/menu/frameworks.menu +3 -0
  80. data/{menus → menu}/french.rb +0 -0
  81. data/menu/gems.rb +77 -0
  82. data/{menus → menu}/git.rb +1 -1
  83. data/{menus → menu}/gito.rb +0 -0
  84. data/{menus → menu}/google.rb +0 -0
  85. data/{menus → menu}/google_images.rb +0 -0
  86. data/{menus → menu}/google_patents.rb +0 -0
  87. data/menu/grep.menu +14 -0
  88. data/{menus → menu}/gutenberg.rb +0 -0
  89. data/{menus → menu}/head.rb +0 -0
  90. data/{menus → menu}/headings.rb +0 -0
  91. data/menu/hosts.menu +5 -0
  92. data/{menus → menu}/html.rb +0 -0
  93. data/menu/html5.menu +164 -0
  94. data/{menus → menu}/http.rb +0 -0
  95. data/menu/httpd.menu +1 -0
  96. data/{menus → menu}/icon.rb +0 -0
  97. data/{menus → menu}/images.menu +0 -0
  98. data/{menus → menu}/img.rb +0 -0
  99. data/{menus → menu}/info.rb +0 -0
  100. data/{menus → menu}/ip.rb +0 -0
  101. data/{menus → menu}/iterm.rb +0 -0
  102. data/{menus → menu}/itunes.rb +0 -0
  103. data/{menus → menu}/javascript.rb +0 -0
  104. data/{menus → menu}/layout.rb +0 -0
  105. data/menu/lighttp.menu +30 -0
  106. data/menu/linebreaks.menu +1 -0
  107. data/menu/list.menu +1 -0
  108. data/menu/ln.menu +2 -0
  109. data/{menus → menu}/local_storage.rb +0 -0
  110. data/{menus → menu}/ls.rb +0 -0
  111. data/{menus → menu}/mac.rb +0 -0
  112. data/{menus → menu}/maps.rb +0 -0
  113. data/menu/markdown.rb +52 -0
  114. data/{menus → menu}/matches.rb +0 -0
  115. data/{menus → menu}/memcache.rb +0 -0
  116. data/{menus → menu}/mkdir.rb +0 -0
  117. data/{menus → menu}/models.rb +0 -0
  118. data/{menus → menu}/mongo.rb +0 -0
  119. data/menu/music.menu +1 -0
  120. data/{menus → menu}/mysql.rb +2 -2
  121. data/{menus → menu}/node.rb +0 -0
  122. data/menu/opacity.menu +1 -0
  123. data/{menus → menu}/open.rb +0 -0
  124. data/{menus → menu}/outline.rb +0 -0
  125. data/menu/permissions.menu +2 -0
  126. data/{menus → menu}/piano.rb +0 -0
  127. data/{menus → menu}/postgres.rb +0 -0
  128. data/{menus → menu}/pre.rb +0 -0
  129. data/menu/processes.menu +8 -0
  130. data/menu/ps.menu +1 -0
  131. data/{menus → menu}/python.rb +0 -0
  132. data/menu/qri.rb +11 -0
  133. data/{menus → menu}/r.rb +0 -0
  134. data/{menus → menu}/rails.rb +0 -0
  135. data/{menus → menu}/rake.rb +0 -0
  136. data/menu/random.menu +1 -0
  137. data/menu/redis.menu +10 -0
  138. data/{menus → menu}/redmine.rb +0 -0
  139. data/{menus → menu}/riak_tree.rb +0 -0
  140. data/{menus → menu}/rss.rb +0 -0
  141. data/menu/rsync.menu +8 -0
  142. data/menu/rvm.menu +6 -0
  143. data/{menus → menu}/safari.rb +0 -0
  144. data/{menus → menu}/sass.rb +0 -0
  145. data/{menus → menu}/say.rb +0 -0
  146. data/{menus → menu}/scale.rb +0 -0
  147. data/menu/scroll_bars.menu +1 -0
  148. data/{menus → menu}/serve.rb +1 -1
  149. data/{menus → menu}/settings.menu +0 -0
  150. data/menu/shell_commands.menu +1 -0
  151. data/{menus → menu}/shuffle.rb +0 -0
  152. data/menu/sinatra.menu +19 -0
  153. data/menu/size.menu +1 -0
  154. data/menu/source.menu +2 -0
  155. data/{menus → menu}/spanish.rb +0 -0
  156. data/menu/specials.rb +7 -0
  157. data/{menus → menu}/standalone.rb +1 -1
  158. data/menu/svg.rb +139 -0
  159. data/menu/synonyms.menu +1 -0
  160. data/menu/tabs.rb +20 -0
  161. data/{menus → menu}/tail.rb +0 -0
  162. data/{menus → menu}/technologies.rb +0 -0
  163. data/menu/tests.menu +2 -0
  164. data/menu/textile.rb +44 -0
  165. data/menu/themes.rb +56 -0
  166. data/{menus → menu}/thesaurus.rb +0 -4
  167. data/{menus → menu}/to.rb +0 -0
  168. data/{menus → menu}/twitter.rb +0 -0
  169. data/{menus → menu}/urls.menu +0 -0
  170. data/menu/web_development.menu +24 -0
  171. data/{menus → menu}/web_interface.rb +0 -4
  172. data/{menus → menu}/welcome.menu +3 -3
  173. data/{menus → menu}/white.menu +0 -0
  174. data/menu/wiki.menu +9 -0
  175. data/menu/wiki_syntax.menu +19 -0
  176. data/{menus → menu}/wikipedia.rb +0 -0
  177. data/{menus → menu}/words.rb +0 -0
  178. data/{menus → menu}/youtube.rb +0 -0
  179. data/xiki.gemspec +2 -2
  180. metadata +406 -340
  181. data/menus/browse.rb +0 -13
  182. data/menus/computer.rb +0 -24
  183. data/menus/dimensions_config.menu +0 -30
  184. data/menus/docs.rb +0 -57
  185. data/menus/eval.rb +0 -17
  186. data/menus/themes.rb +0 -32
data/menu/redis.menu ADDED
@@ -0,0 +1,10 @@
1
+ - start/
2
+ @ % redis-server
3
+ - docs/
4
+ > Hello World
5
+ @ % redis-cli
6
+ $ set counter 100
7
+ $ redis-cli get counter
8
+ @ % incr counter
9
+ @ % incrby counter 10
10
+ @ % get counter
File without changes
File without changes
File without changes
data/menu/rsync.menu ADDED
@@ -0,0 +1,8 @@
1
+ > Normal transfer
2
+ $ rsync -vauz -e ssh --delete local_dir foo@foo.com:~
3
+
4
+ > Dry run (don't actually transfer)
5
+ | add --dry-run parameter
6
+
7
+ > Exclude certain dirs / files
8
+ | --exclude=public/cache/* --exclude=wik.js --exclude=.git
data/menu/rvm.menu ADDED
@@ -0,0 +1,6 @@
1
+ - list/
2
+ @$ rvm list
3
+ - set default/
4
+ @% rvm --default use system
5
+ @% rvm --default use 1.8.7
6
+ @% rvm --default use 1.9.3
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1 @@
1
+ << window/scroll bars/
@@ -23,7 +23,7 @@ class Serve
23
23
 
24
24
 
25
25
  if children.blank?
26
- file = File.expand_path "~/menus/#{trunk[0]}.menu"
26
+ file = File.expand_path "~/menu/#{trunk[0]}.menu"
27
27
  else
28
28
  file = "/tmp/tmp.menu"
29
29
  File.open(file, "w") { |f| f << children }
File without changes
@@ -0,0 +1 @@
1
+ << console/
File without changes
data/menu/sinatra.menu ADDED
@@ -0,0 +1,19 @@
1
+ + hello world/
2
+ @/tmp/
3
+ - sinatra_hi.rb
4
+ | require 'sinatra'
5
+ |
6
+ | get '/' do
7
+ | "Hello World!"
8
+ | end
9
+ % ruby -rubygems sinatra_hi.rb
10
+ @http://localhost:4567
11
+ + notes/
12
+ @technologies/sinatra/
13
+ + docs/
14
+ > Intro
15
+ @http://www.sinatrarb.com/intro
16
+
17
+ > See
18
+ << rails/
19
+ << ruby/
data/menu/size.menu ADDED
@@ -0,0 +1 @@
1
+ << @styles/font size/
data/menu/source.menu ADDED
@@ -0,0 +1,2 @@
1
+ > Xiki source
2
+ << $x/
File without changes
data/menu/specials.rb ADDED
@@ -0,0 +1,7 @@
1
+ class Specials
2
+ def self.menu *args
3
+ dir = Tree.dir :file=>1
4
+
5
+ `od -ct uC #{dir}`.gsub(/^/, '| ').gsub(/ +$/, '')
6
+ end
7
+ end
@@ -24,7 +24,7 @@ class Standalone
24
24
  menu = "untitled"
25
25
 
26
26
  if children.blank?
27
- file = File.expand_path "~/menus/#{trunk[0]}.menu"
27
+ file = File.expand_path "~/menu/#{trunk[0]}.menu"
28
28
  menu = trunk[0]
29
29
  children = File.read file
30
30
  end
data/menu/svg.rb ADDED
@@ -0,0 +1,139 @@
1
+ class Svg
2
+ def self.menu
3
+ %`
4
+ > Pass svg xml here to show in browser
5
+ | <polygon points="60,20 300,80 120,240" style="fill:orange;stroke:red;" />
6
+ - .show/
7
+ - api/
8
+ > Render in browser
9
+ @Svg.render "<polygon points='50,20 190,80' style='stroke:red;' />"
10
+
11
+ > Save as a .png file
12
+ @Svg.to_png "<polygon points='50,20 190,80' style='stroke:red;' />", "/tmp/line.png"
13
+ - examples/
14
+ - circle/
15
+ @svg/
16
+ | <circle cx="200" cy="50" r="40" style="fill:orange;stroke:red;stroke-width:5;" />
17
+ - rectangle/
18
+ @svg/
19
+ | <rect x="70" y="20" rx="10" ry="10" width="200" height="100" style="fill:rgb(0,0,255);stroke-width:1;stroke:rgb(0,0,0)"/>
20
+ - triangle/
21
+ @svg/
22
+ | <polygon points="60,20 300,80 120,240" style="fill:orange;stroke:red;" />
23
+ - star/
24
+ @svg/
25
+ | <polygon points="100,10 40,180 190,60 10,60 160,180" style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
26
+ - text/
27
+ @svg/
28
+ | <text x="100" y="50" style="fill:#f00; font-family:arial; font-size:50px;">Hey</text>
29
+ | <text x="100" y="50" style="fill:green; font-family:arial; font-size:50px; text-anchor:end;">Hey</text>
30
+ | <text x="100" y="50" style="fill:orange; font-family:arial; font-size:50px; text-anchor:middle;">Hey</text>
31
+ - gradient/
32
+ @svg/
33
+ | <defs>
34
+ | <linearGradient id="fade" x1="0%" y1="0%" x2="0%" y2="100%" spreadMethod="pad">
35
+ | <stop offset="0%" stop-color="#0c0" stop-opacity="1"/>
36
+ | <stop offset="100%" stop-color="#060" stop-opacity="1"/>
37
+ | </linearGradient>
38
+ | </defs>
39
+ | <rect x="10" y="10" width="75" height="100" style="fill:url(#fade); stroke: #005000; stroke-width: 4;" />
40
+ - attributes instead of style/
41
+ @svg/
42
+ | <circle cx="100" cy="50" r="40" stroke="black" stroke-width="5" fill="red" />
43
+ - shrink it down/
44
+ @svg/
45
+ | <g transform="scale(0.3)">
46
+ | <polygon points="60,20 300,80 120,240" style="fill:orange;stroke:red; stroke-width:10" />
47
+ | </g>
48
+ - css/
49
+ @svg/
50
+ | <defs>
51
+ | <style type="text/css">
52
+ | #t { fill: #c3c; }
53
+ | </style>
54
+ | </defs>
55
+ | <text id="t" x="100" y="50" style="font-family:arial; font-size:50px;">Hey</text>
56
+
57
+ > See
58
+ @svg drawing tool/
59
+ `
60
+ end
61
+
62
+ def self.menu_after output, *args
63
+ return output if output
64
+
65
+ txt = ENV['txt']
66
+
67
+ Svg.render txt
68
+ end
69
+
70
+ def self.show
71
+ txt = Tree.siblings.grep(/^\|/).join("\n")
72
+ txt = Tree.unquote txt
73
+ tmp_png = "/tmp/tmp.png"
74
+ self.to_png txt, tmp_png
75
+ Image >> tmp_png
76
+ end
77
+
78
+ def self.to_png xml, file
79
+
80
+ # Wrap in <svg> tags if doesn't have any
81
+ if xml !~ /<svg /
82
+
83
+ xml = %`
84
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
85
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="250" width="350">
86
+ #{xml}
87
+ </svg>
88
+ `.unindent
89
+
90
+ end
91
+
92
+ tmp_path = "/tmp/tmp.svg"
93
+ File.open(tmp_path, "w") { |f| f << xml }
94
+
95
+ `convert #{tmp_path} "#{file}"`
96
+
97
+ nil
98
+ end
99
+
100
+ def self.render xml
101
+ Browser.html %`<!DOCTYPE html><html><body>
102
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="500">
103
+ #{xml}
104
+ </svg>
105
+ </body></html>
106
+ `.unindent
107
+ end
108
+
109
+ # Scale numeric values according to default font size
110
+ def self.scale xml, options={}
111
+
112
+ scale = options[:scale] || Styles.height / 110.0
113
+
114
+ white_list = ["height", "width", "x", "y", "rx", "ry", "stroke-width"].inject({}){|o, i| o[i] = true; o}
115
+
116
+ # foo="123"...
117
+
118
+ xml.gsub!(/([-\w]+)="(\d+)"/) do |match|
119
+ key, val = $1, $2
120
+ val = (val.to_i * scale).round if white_list[key]
121
+ "#{key}=\"#{val}\""
122
+ end
123
+
124
+ # 12,34...
125
+
126
+ xml.gsub!(/(\d+),(\d+)/) do |match|
127
+ x, y = $1, $2
128
+ "#{(x.to_i * scale).round},#{(y.to_i * scale).round}"
129
+ end
130
+
131
+ # font-size:12...
132
+
133
+ xml.gsub!(/font-size:(\d+)/) do |match|
134
+ "font-size:#{($1.to_i * scale).round}"
135
+ end
136
+
137
+ xml
138
+ end
139
+ end
@@ -0,0 +1 @@
1
+ << thesaurus/
data/menu/tabs.rb ADDED
@@ -0,0 +1,20 @@
1
+ class Tabs
2
+ def self.menu *args
3
+
4
+ # If no args, show option that toggles...
5
+
6
+ return $el.elvar.tabbar_mode ? "- hide tabs/" : "- show tabs/" if args.empty?
7
+
8
+ # Option was passed in
9
+
10
+ turn_on = args == ['show tabs']
11
+
12
+ $el.customize_set_variable :tabbar_mode, turn_on
13
+
14
+ new_menu_item = turn_on ? "hide tabs/" : "show tabs/"
15
+ Tree.replace_item new_menu_item
16
+ Effects.glow :fade_in=>1
17
+
18
+ nil
19
+ end
20
+ end
File without changes
File without changes
data/menu/tests.menu ADDED
@@ -0,0 +1,2 @@
1
+ > See
2
+ << xiki/tests/
data/menu/textile.rb ADDED
@@ -0,0 +1,44 @@
1
+ gem 'RedCloth'
2
+ require 'redcloth'
3
+
4
+ class Textile
5
+
6
+ def self.render txt
7
+
8
+ html = RedCloth.new(txt).to_html
9
+ html << "
10
+ <style type='text/css'>
11
+ body {
12
+ font-family: arial;
13
+ font-size: 12px;
14
+ }
15
+ </style>
16
+ ".unindent
17
+
18
+ html
19
+ end
20
+
21
+ def self.menu *args
22
+
23
+ # If nothing passed, show example textile
24
+ return "
25
+ > Render the textile wiki format in the browser
26
+ | h1. Heading
27
+ |
28
+ | h2. Small Heading
29
+ |
30
+ | * Bullet
31
+ | ** Another
32
+ |
33
+ | A normal sentence.
34
+ |
35
+ | bc.. Code can be displayed
36
+ | like this.
37
+ " if args.blank?
38
+
39
+ html = self.render(ENV['txt'])
40
+
41
+ Browser.html html
42
+
43
+ end
44
+ end
data/menu/themes.rb ADDED
@@ -0,0 +1,56 @@
1
+ #
2
+ # Lists themes and run them. Make files here
3
+ # to make more themes:
4
+ #
5
+ # @$x/etc/themes/
6
+ #
7
+ class Themes
8
+ def self.menu
9
+ "
10
+ + .list/
11
+ - dir/
12
+ @$x/etc/themes/
13
+ - docs/
14
+ > What themes control
15
+ | The window dividers (mode line) or all fonts and bg colors.
16
+ | So, it can make sense to use multiple themes at once.
17
+ "
18
+ end
19
+
20
+ def self.list name=nil
21
+
22
+ # If nothing passed, list themes
23
+
24
+ if ! name
25
+ path = "#{Xiki.dir}etc/themes/"
26
+ themes = Dir.new(path).entries.select{|o| o =~ /^\w/}
27
+ return themes.map{|o| "- #{o[/\w+/].gsub('_', ' ')}/\n"}.join()
28
+ end
29
+
30
+ # Theme name passed
31
+
32
+ if Keys.open? # If as+open, just navigate to it
33
+ path = "#{Xiki.dir}etc/themes/#{TextUtil.title_case name, :underscores=>1}.notes"
34
+ View.open path
35
+ return
36
+ end
37
+
38
+ # Just use theme
39
+
40
+ self.use name
41
+
42
+ ".flash - updated!"
43
+ end
44
+
45
+ def self.use name
46
+ path = "#{Xiki.dir}etc/themes/#{TextUtil.title_case name, :underscores=>1}.notes"
47
+ return "| Theme doesn't exist" if ! File.exists? path
48
+
49
+ load path
50
+
51
+ Styles.reload_styles
52
+
53
+ nil
54
+ end
55
+
56
+ end
@@ -1,12 +1,8 @@
1
- # - @http://thesaurus.com/browse/<here>
2
-
3
1
  class Thesaurus
4
- # self.add :paren=>"th" do # - (th): thesaurus.com
5
2
  def self.menu word=nil
6
3
  return View.prompt('Type a word to look up') if word.nil?
7
4
 
8
5
  word = word.sub(/^\s+/, '').gsub('"', '%22').gsub(':', '%3A').gsub(' ', '%20')
9
- # Browser.url "http://en.wiktionary.org/wiki/Wikisaurus:#{word}"
10
6
  $el.browse_url "http://thesaurus.reference.com/browse/#{word}"
11
7
  nil
12
8
  end
File without changes
File without changes
File without changes
@@ -0,0 +1,24 @@
1
+ > See
2
+ @html/
3
+ @js/
4
+ @css/
5
+ @dom/
6
+ @cookies/
7
+ @local storage/
8
+ @append/
9
+ @click/
10
+ @bookmarklets/
11
+
12
+ docs/
13
+ > HTML
14
+ @html/
15
+ | <p>Show this in the browser</p>
16
+ @append/
17
+ | <p>Append this to what's being shown in the browser</p>
18
+
19
+ > Javascript
20
+ @js/
21
+ | $('p').toggle()
22
+
23
+ > Others
24
+ | Just click them to see what they do
@@ -48,10 +48,6 @@ class WebInterface
48
48
  % ruby -rubygems sinatra_server.rb
49
49
  @http://localhost:8161
50
50
  @http://xiki
51
-
52
- - TODO: should apache mod-proxy tell them how to start it up?
53
- - can I give it an error message?
54
-
55
51
  `
56
52
  end
57
53