xiki 0.5.0a
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/Gemfile +11 -0
- data/LICENSE +22 -0
- data/README.markdown +83 -0
- data/Rakefile +8 -0
- data/bin/xiki +46 -0
- data/etc/command/xiki_command.rb +203 -0
- data/etc/command/xiki_process.rb +52 -0
- data/etc/command/xiki_wrapper +2 -0
- data/etc/js/menu1.js +55 -0
- data/etc/js/xiki.js +259 -0
- data/etc/logo.png +0 -0
- data/etc/presentations/bootstrap.deck +5 -0
- data/etc/presentations/databases.deck +41 -0
- data/etc/presentations/diffs.deck +23 -0
- data/etc/presentations/documentation.deck +14 -0
- data/etc/presentations/effects.deck +5 -0
- data/etc/presentations/face.deck +297 -0
- data/etc/presentations/files.deck +79 -0
- data/etc/presentations/icons.deck +22 -0
- data/etc/presentations/images.deck +24 -0
- data/etc/presentations/key_shortcuts.deck +16 -0
- data/etc/presentations/macros.deck +18 -0
- data/etc/presentations/menu_classes.deck +44 -0
- data/etc/presentations/menu_directories.deck +30 -0
- data/etc/presentations/notes.deck +19 -0
- data/etc/presentations/other_languages.deck +55 -0
- data/etc/presentations/other_wiki_syntaxes.deck +4 -0
- data/etc/presentations/piano.deck +5 -0
- data/etc/presentations/potential/diffs.deck +38 -0
- data/etc/presentations/potential/evolution.deck +18 -0
- data/etc/presentations/potential/intro.deck +711 -0
- data/etc/presentations/potential/intro1.deck +711 -0
- data/etc/presentations/potential/intro2.deck +97 -0
- data/etc/presentations/potential/make_mysql_menu.deck +36 -0
- data/etc/presentations/potential/ruby_development.deck +17 -0
- data/etc/presentations/potential/ui_prototyping.deck +50 -0
- data/etc/presentations/potential/web_dev.deck +4 -0
- data/etc/presentations/potential/web_development.deck +10 -0
- data/etc/presentations/potential/wiki.deck +45 -0
- data/etc/presentations/presentations.deck +24 -0
- data/etc/presentations/rails_development.deck +29 -0
- data/etc/presentations/search_key_shortcuts.deck +37 -0
- data/etc/presentations/simplest_possible_ui.deck +37 -0
- data/etc/presentations/svg.deck +5 -0
- data/etc/presentations/testing.deck +28 -0
- data/etc/presentations/the_end.deck +13 -0
- data/etc/presentations/type_something_and_double_click.deck +57 -0
- data/etc/presentations/type_the_acronym.deck +144 -0
- data/etc/presentations/web_browser.deck +56 -0
- data/etc/presentations/xiki_command.deck +20 -0
- data/etc/presentations/xiki_url.deck +14 -0
- data/etc/shark.icns +0 -0
- data/etc/shark_script.icns +0 -0
- data/etc/snippets/html.notes +7 -0
- data/etc/snippets/notes.notes +20 -0
- data/etc/snippets/rb.notes +38 -0
- data/etc/templates/menu_template.menu +2 -0
- data/etc/templates/menu_template.rb +8 -0
- data/etc/templates/template.rb +5 -0
- data/etc/themes/Dark_Metal.notes +28 -0
- data/etc/themes/Orange_Path.notes +15 -0
- data/etc/themes/Shiny_Blue.notes +27 -0
- data/etc/themes/Shiny_Green.notes +27 -0
- data/etc/wrappers/wrapper.js +17 -0
- data/etc/wrappers/wrapper.py +20 -0
- data/etc/wrappers/wrapper.rb +25 -0
- data/lib/block.rb +72 -0
- data/lib/bookmarks.rb +352 -0
- data/lib/buffers.rb +170 -0
- data/lib/clipboard.rb +333 -0
- data/lib/code.rb +860 -0
- data/lib/code_tree.rb +476 -0
- data/lib/color.rb +274 -0
- data/lib/console.rb +557 -0
- data/lib/control_lock.rb +9 -0
- data/lib/control_tab.rb +176 -0
- data/lib/core_ext.rb +31 -0
- data/lib/cursor.rb +111 -0
- data/lib/deletes.rb +65 -0
- data/lib/diff_log.rb +297 -0
- data/lib/effects.rb +145 -0
- data/lib/environment.rb +5 -0
- data/lib/file_tree.rb +1875 -0
- data/lib/files.rb +334 -0
- data/lib/hide.rb +259 -0
- data/lib/history.rb +286 -0
- data/lib/image.rb +51 -0
- data/lib/incrementer.rb +15 -0
- data/lib/insert.rb +7 -0
- data/lib/irc.rb +22 -0
- data/lib/key_bindings.rb +658 -0
- data/lib/keys.rb +754 -0
- data/lib/launcher.rb +1351 -0
- data/lib/line.rb +429 -0
- data/lib/links.rb +6 -0
- data/lib/location.rb +175 -0
- data/lib/macros.rb +48 -0
- data/lib/man.rb +19 -0
- data/lib/menu.rb +708 -0
- data/lib/merb.rb +259 -0
- data/lib/message.rb +5 -0
- data/lib/meths.rb +56 -0
- data/lib/mode.rb +34 -0
- data/lib/move.rb +248 -0
- data/lib/notes.rb +1000 -0
- data/lib/numbers.rb +45 -0
- data/lib/ol.rb +203 -0
- data/lib/ol_helper.rb +44 -0
- data/lib/overlay.rb +167 -0
- data/lib/pause_means_space.rb +68 -0
- data/lib/php.rb +22 -0
- data/lib/projects.rb +21 -0
- data/lib/relinquish_exception.rb +2 -0
- data/lib/remote.rb +206 -0
- data/lib/requirer.rb +46 -0
- data/lib/rest_tree.rb +108 -0
- data/lib/ruby.rb +57 -0
- data/lib/ruby_console.rb +165 -0
- data/lib/search.rb +1572 -0
- data/lib/search_term.rb +40 -0
- data/lib/snippet.rb +68 -0
- data/lib/specs.rb +229 -0
- data/lib/styles.rb +274 -0
- data/lib/svn.rb +682 -0
- data/lib/text_util.rb +110 -0
- data/lib/tree.rb +1871 -0
- data/lib/tree_cursor.rb +87 -0
- data/lib/trouble_shooting.rb +27 -0
- data/lib/url_tree.rb +11 -0
- data/lib/view.rb +1474 -0
- data/lib/window.rb +133 -0
- data/lib/xiki.rb +404 -0
- data/menus/accounts.rb +5 -0
- data/menus/address_book.rb +21 -0
- data/menus/agenda.rb +28 -0
- data/menus/all.rb +5 -0
- data/menus/amazon.rb +16 -0
- data/menus/app.rb +16 -0
- data/menus/applescript.rb +46 -0
- data/menus/as.rb +15 -0
- data/menus/bookmarklet.rb +63 -0
- data/menus/bootstrap.rb +568 -0
- data/menus/browse.rb +13 -0
- data/menus/browser.rb +78 -0
- data/menus/cassandra_db.rb +36 -0
- data/menus/chmod.rb +27 -0
- data/menus/classes.rb +5 -0
- data/menus/coffee_script.rb +35 -0
- data/menus/computer.rb +24 -0
- data/menus/contacts.rb +5 -0
- data/menus/cookies.rb +25 -0
- data/menus/couch.rb +184 -0
- data/menus/crop.rb +45 -0
- data/menus/css.rb +55 -0
- data/menus/current.rb +5 -0
- data/menus/db.rb +12 -0
- data/menus/deck.rb +219 -0
- data/menus/dictionary.rb +9 -0
- data/menus/dir.rb +8 -0
- data/menus/disk.rb +5 -0
- data/menus/do.rb +13 -0
- data/menus/docs.rb +58 -0
- data/menus/dotsies.rb +107 -0
- data/menus/edited.rb +18 -0
- data/menus/emacs.rb +17 -0
- data/menus/enter.rb +13 -0
- data/menus/eval.rb +17 -0
- data/menus/executable.rb +16 -0
- data/menus/filter.rb +46 -0
- data/menus/firefox.rb +607 -0
- data/menus/foo.rb +30 -0
- data/menus/french.rb +7 -0
- data/menus/git.rb +185 -0
- data/menus/gito.rb +785 -0
- data/menus/google.rb +35 -0
- data/menus/google_images.rb +11 -0
- data/menus/google_patents.rb +10 -0
- data/menus/gutenberg.rb +13 -0
- data/menus/head.rb +10 -0
- data/menus/headings.rb +39 -0
- data/menus/html.rb +61 -0
- data/menus/icon.rb +40 -0
- data/menus/images.menu +2 -0
- data/menus/img.rb +15 -0
- data/menus/info.rb +9 -0
- data/menus/ip.rb +10 -0
- data/menus/iterm.rb +36 -0
- data/menus/itunes.rb +78 -0
- data/menus/javascript.rb +74 -0
- data/menus/layout.rb +18 -0
- data/menus/local_storage.rb +67 -0
- data/menus/ls.rb +19 -0
- data/menus/mac.rb +87 -0
- data/menus/maps.rb +18 -0
- data/menus/matches.rb +18 -0
- data/menus/memcache.rb +117 -0
- data/menus/mkdir.rb +23 -0
- data/menus/mongo.rb +83 -0
- data/menus/mysql.rb +294 -0
- data/menus/node.rb +88 -0
- data/menus/open.rb +19 -0
- data/menus/outline.rb +24 -0
- data/menus/piano.rb +746 -0
- data/menus/postgres.rb +34 -0
- data/menus/pre.rb +5 -0
- data/menus/python.rb +39 -0
- data/menus/rails.rb +160 -0
- data/menus/rake.rb +12 -0
- data/menus/redmine.rb +168 -0
- data/menus/riak_tree.rb +204 -0
- data/menus/rss.rb +15 -0
- data/menus/safari.rb +11 -0
- data/menus/sass.rb +15 -0
- data/menus/say.rb +6 -0
- data/menus/scale.rb +49 -0
- data/menus/serve.rb +78 -0
- data/menus/shuffle.rb +24 -0
- data/menus/spanish.rb +7 -0
- data/menus/standalone.rb +57 -0
- data/menus/tail.rb +41 -0
- data/menus/technologies.rb +19 -0
- data/menus/themes.rb +32 -0
- data/menus/thesaurus.rb +13 -0
- data/menus/to.rb +24 -0
- data/menus/twitter.rb +57 -0
- data/menus/wikipedia.rb +34 -0
- data/menus/words.rb +11 -0
- data/spec/code_tree_spec.rb +59 -0
- data/spec/diff_log_spec.rb +40 -0
- data/spec/file_tree_spec.rb +102 -0
- data/spec/keys_spec.rb +24 -0
- data/spec/line_spec.rb +68 -0
- data/spec/menu_spec.rb +50 -0
- data/spec/ol_spec.rb +98 -0
- data/spec/remote_spec.rb +43 -0
- data/spec/search_spec.rb +162 -0
- data/spec/text_util_spec.rb +119 -0
- data/spec/tree_cursor_spec.rb +91 -0
- data/spec/tree_spec.rb +955 -0
- data/tests/console_test.rb +11 -0
- data/tests/couch_db_test.rb +12 -0
- data/tests/diff_log_test.rb +43 -0
- data/tests/el_mixin.rb +16 -0
- data/tests/git_test.rb +95 -0
- data/tests/keys_test.rb +19 -0
- data/tests/line_test.rb +38 -0
- data/tests/merb_test.rb +11 -0
- data/tests/redmine_test.rb +50 -0
- data/tests/remote_test.rb +31 -0
- data/tests/rest_tree_test.rb +70 -0
- data/xiki.gemspec +37 -0
- metadata +332 -0
data/etc/js/xiki.js
ADDED
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
Xiki = {};
|
|
2
|
+
if(typeof(exports) == "undefined"){
|
|
3
|
+
exports = Xiki;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
exports.children = function(tree, target) {
|
|
7
|
+
console.log("target:", target);
|
|
8
|
+
|
|
9
|
+
target = target.replace(/^\//, '');
|
|
10
|
+
target = target.replace(/\/$/, '');
|
|
11
|
+
|
|
12
|
+
var found=null, result="";
|
|
13
|
+
if(target == "") found = -1;
|
|
14
|
+
|
|
15
|
+
exports.traverse(tree, function(branch, path){
|
|
16
|
+
|
|
17
|
+
if(found == null) {
|
|
18
|
+
var target_match = exports.target_match(path, target);
|
|
19
|
+
|
|
20
|
+
if(target_match == 'same' || target_match == 'same'){
|
|
21
|
+
found = branch.length - 1; // Remember indent
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
}else{
|
|
25
|
+
|
|
26
|
+
current_indent = branch.length - 1;
|
|
27
|
+
|
|
28
|
+
// If found and still indented one deeper
|
|
29
|
+
if(current_indent == found + 1) {
|
|
30
|
+
var item = branch[branch.length-1];
|
|
31
|
+
if(item.match(/\/$/)) item = item.replace(/^- /, '+ ');
|
|
32
|
+
item = item.replace(/^([+-] )?\./, "$1")
|
|
33
|
+
result += item+"\n"; // Output
|
|
34
|
+
}else{ // Otherwise, stop looking for children if indent is less
|
|
35
|
+
if(current_indent <= found) found = null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
exports.target_match = function(path, target) {
|
|
46
|
+
|
|
47
|
+
var pi=0, ti=0;
|
|
48
|
+
|
|
49
|
+
while(true){
|
|
50
|
+
var pathi=path[pi], targeti=target[ti];
|
|
51
|
+
|
|
52
|
+
if(! pathi || ! targeti){
|
|
53
|
+
if(!pathi && !targeti) return 'same'; // Handles a, a and a/, a/
|
|
54
|
+
if(!pathi && !target[ti+1] && targeti == "/") return 'same'; // Handles a, a/
|
|
55
|
+
if(!targeti && !path[pi+1] && pathi == "/") return 'same' // Handles a/, a
|
|
56
|
+
if(pathi && (pathi == "/" || path[pi-1] == "/" || pi == 0)) return 'shorter'
|
|
57
|
+
if(targeti && (targeti == "/" || target[ti-1] == "/" || ti == 0)) return 'longer'
|
|
58
|
+
return null; // At end of one, but no match
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if(pathi == targeti){ // If chars equal, increment
|
|
62
|
+
pi += 1;
|
|
63
|
+
ti += 1;
|
|
64
|
+
continue;
|
|
65
|
+
}else if(pathi == "." && (path[pi-1] == "/" || pi == 0) && (target[ti-1] == "/" || ti == 0)){
|
|
66
|
+
pi += 1;
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
break; // Not found
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
exports.traverse = function(tree, callback) {
|
|
77
|
+
var branch=[], indent=0;
|
|
78
|
+
|
|
79
|
+
tree = tree.split("\n");
|
|
80
|
+
for(var i=0; i < tree.length; i++) {
|
|
81
|
+
var line = tree[i];
|
|
82
|
+
if(line == "") continue;
|
|
83
|
+
var line_indent = String(line.match(/^ */)).length / 2;
|
|
84
|
+
|
|
85
|
+
line = line.replace(/^ */, '');
|
|
86
|
+
|
|
87
|
+
branch[line_indent] = line;
|
|
88
|
+
|
|
89
|
+
if(line_indent < indent) {
|
|
90
|
+
branch = branch.slice(0, line_indent+1);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
var path = branch.join('').replace(/(^|\/)[+-] /g, "$1");
|
|
94
|
+
|
|
95
|
+
callback(branch, path);
|
|
96
|
+
|
|
97
|
+
indent = line_indent;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
exports.unindent = function(txt) {
|
|
102
|
+
|
|
103
|
+
txt = txt.replace(/^\n/, ''); // Delete initial blank line if there
|
|
104
|
+
|
|
105
|
+
// If 1st line has no indent and 2nd line has indent (at least 3 spaces)
|
|
106
|
+
if(!txt.match(/^ /) && txt.match(/^.+\n( +)/)){
|
|
107
|
+
txt = txt.replace(/^\n/, ''); // Delete initial blank line if there
|
|
108
|
+
var indent = txt.match(/^.+\n( +)/)[1];
|
|
109
|
+
return txt.replace(new RegExp("^"+indent, "gm"), '');
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
var old_indent = txt.match(/^ */); // Get indent of first line
|
|
113
|
+
txt = txt.replace(new RegExp("^"+old_indent, "gm"), ''); // Delete current indent
|
|
114
|
+
txt = txt.replace(/\n+$/g, '');
|
|
115
|
+
|
|
116
|
+
return txt;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
exports.header_html = function(title) {
|
|
120
|
+
|
|
121
|
+
return '<div data-role="header">\n\
|
|
122
|
+
<h1>'+title+'</h1>\n\
|
|
123
|
+
<a data-rel="back" href="#" data-icon="arrow-l" class="ui-btn-left">Back</a>\n\
|
|
124
|
+
<a href="#home" data-icon="home" class="ui-btn-right">Home</a>\n\
|
|
125
|
+
</div>';
|
|
126
|
+
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
exports.render_mobile_standalone = function(tree, target) {
|
|
130
|
+
return '\
|
|
131
|
+
<div data-role="page">\n\
|
|
132
|
+
'+exports.header_html("Menu")+'\n\
|
|
133
|
+
<div data-role="content">\n\
|
|
134
|
+
</div>\n\
|
|
135
|
+
</div>\n\
|
|
136
|
+
'
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
exports.render_mobile_ajax = function(tree, target) {
|
|
140
|
+
|
|
141
|
+
return '\
|
|
142
|
+
<html>\n\
|
|
143
|
+
<head>\n\
|
|
144
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">\n\
|
|
145
|
+
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />\n\
|
|
146
|
+
<script src="/js/xiki.js"></script>\n\
|
|
147
|
+
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>\n\
|
|
148
|
+
<script src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>\n\
|
|
149
|
+
</head>\n\
|
|
150
|
+
<body>\n\
|
|
151
|
+
<div data-role="page">\n\
|
|
152
|
+
'+exports.header_html("Menu")+'\n\
|
|
153
|
+
<div data-role="content">\n\
|
|
154
|
+
</div>\n\
|
|
155
|
+
</div>\n\
|
|
156
|
+
\n\
|
|
157
|
+
<script>\n\
|
|
158
|
+
$(function(){\n\
|
|
159
|
+
Xiki.ajax_setup();\n\
|
|
160
|
+
})\n\
|
|
161
|
+
</script>\n\
|
|
162
|
+
</body>\n\
|
|
163
|
+
</html>\n\
|
|
164
|
+
'
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
exports.ajax_setup = function() {
|
|
168
|
+
|
|
169
|
+
$.get("/", {}, function(txt){
|
|
170
|
+
var html = Xiki.children_to_html(txt);
|
|
171
|
+
|
|
172
|
+
$("div[data-role=content]").html(html).trigger("create");
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
$(document).bind("pagebeforechange", function(e, data) {Xiki.navigate_ajax(e, data)});
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
exports.navigate_ajax = function(e, data) {
|
|
180
|
+
|
|
181
|
+
if(typeof data.toPage != "string") return;
|
|
182
|
+
|
|
183
|
+
var hash_orig = data.toPage.replace(/.+?(#|$)/, '');
|
|
184
|
+
var hash = hash_orig.replace(/,/g, '/');
|
|
185
|
+
|
|
186
|
+
$.get("/"+hash, {}, function(txt){
|
|
187
|
+
Xiki.navigate(e, data, txt)
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
exports.navigate = function(e, data, children) {
|
|
192
|
+
|
|
193
|
+
if(typeof data.toPage != "string") return;
|
|
194
|
+
|
|
195
|
+
var hash_orig = data.toPage.replace(/.+?(#|$)/, '');
|
|
196
|
+
var hash = hash_orig.replace(/,/g, '/');
|
|
197
|
+
label = hash.replace(/.+\//, '');
|
|
198
|
+
label = label.replace(/\b\w/g, function(m){return m.toUpperCase()});
|
|
199
|
+
|
|
200
|
+
var options = data.options;
|
|
201
|
+
|
|
202
|
+
if(hash_orig == "home"){
|
|
203
|
+
hash_orig = hash = "";
|
|
204
|
+
label = "Menu";
|
|
205
|
+
options.reverse = true;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
var html = Xiki.children_to_html(children, hash_orig);
|
|
209
|
+
|
|
210
|
+
// TODO: remove page if back button?
|
|
211
|
+
|
|
212
|
+
options.dataUrl = "#"+hash;
|
|
213
|
+
|
|
214
|
+
// Add new page to the dom!
|
|
215
|
+
|
|
216
|
+
var page_html = '<div id="'+hash+'" data-role="page">\
|
|
217
|
+
'+exports.header_html(label)+'\n\
|
|
218
|
+
<div data-role="content">'+html+'</div></div>';
|
|
219
|
+
|
|
220
|
+
$("body").append(page_html);
|
|
221
|
+
var page = $("div[data-role=page]:last");
|
|
222
|
+
|
|
223
|
+
$.mobile.changePage(page, options);
|
|
224
|
+
|
|
225
|
+
e.preventDefault();
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
exports.children_to_html = function(txt, parent) {
|
|
229
|
+
|
|
230
|
+
var html = "";
|
|
231
|
+
|
|
232
|
+
// If it starts with bullet, treat them all as li
|
|
233
|
+
if(txt.match(/^[+-] /)){
|
|
234
|
+
html += '<ul data-role="listview" data-inset="true">';
|
|
235
|
+
|
|
236
|
+
$.each(txt.split("\n"), function(i, item){
|
|
237
|
+
if(! item) return;
|
|
238
|
+
item = item.replace(/^[+-] /, "")
|
|
239
|
+
item = item.replace(/\/$/, "");
|
|
240
|
+
upper = item.replace(/\b\w/g, function(m){return m.toUpperCase()});
|
|
241
|
+
|
|
242
|
+
var href = item;
|
|
243
|
+
if(parent) href = parent+","+href;
|
|
244
|
+
|
|
245
|
+
html += '<li><a href="#'+href+'">'+upper+'</a></li>';
|
|
246
|
+
})
|
|
247
|
+
html += "</ul>"
|
|
248
|
+
}else{
|
|
249
|
+
html += '<div style="margin:20px;">'
|
|
250
|
+
txt = txt.replace(/^\| ?/gm, "");
|
|
251
|
+
txt = txt.replace(/^> (.+)/gm, '<div style="font-weight:bold; margin-bottom:5px; font-size:20px">$1</div>');
|
|
252
|
+
txt = txt.replace(/$/gm, "<br>");
|
|
253
|
+
txt = txt.replace(/div><br>$/gm, "div>");
|
|
254
|
+
html += txt;
|
|
255
|
+
html += "</div>"
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
return html;
|
|
259
|
+
}
|
data/etc/logo.png
ADDED
|
Binary file
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
> Browse databases
|
|
2
|
+
|
|
3
|
+
databases/
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
> Mysql
|
|
7
|
+
|
|
8
|
+
- explore
|
|
9
|
+
|
|
10
|
+
mysql/
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
> Mysql
|
|
14
|
+
|
|
15
|
+
select * from
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
> Mongo
|
|
20
|
+
|
|
21
|
+
- explore
|
|
22
|
+
|
|
23
|
+
mongo/
|
|
24
|
+
- collections/
|
|
25
|
+
+ docs/
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
> Memcached
|
|
29
|
+
|
|
30
|
+
- explore
|
|
31
|
+
|
|
32
|
+
memcache/
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
> HTML5 local storage
|
|
36
|
+
|
|
37
|
+
- explore
|
|
38
|
+
|
|
39
|
+
local storage/
|
|
40
|
+
|
|
41
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
> Difflog
|
|
2
|
+
|
|
3
|
+
- Diffs of every change you make is saved
|
|
4
|
+
|
|
5
|
+
- key: open+difflog
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
> Edits to one file or dir
|
|
9
|
+
|
|
10
|
+
- key: search+edits
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
> Edits since backup
|
|
14
|
+
|
|
15
|
+
- Make backup: as+version
|
|
16
|
+
|
|
17
|
+
- key: do+compare+last
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
> Diff of unsaved files
|
|
21
|
+
|
|
22
|
+
- Show all changes not saved: open+not+saved
|
|
23
|
+
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
> Summary
|
|
2
|
+
|
|
3
|
+
http://xiki.org
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
> Summary
|
|
7
|
+
|
|
8
|
+
http://xiki.org
|
|
9
|
+
|
|
10
|
+
- Interact with the browser
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
> Summary
|
|
14
|
+
|
|
15
|
+
http://xiki.org
|
|
16
|
+
|
|
17
|
+
- Interact with the browser
|
|
18
|
+
- Make user interfaces
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
> Demo
|
|
22
|
+
|
|
23
|
+
face/
|
|
24
|
+
+ complexion/
|
|
25
|
+
+ eyes/
|
|
26
|
+
- hair/
|
|
27
|
+
- conservative/
|
|
28
|
+
- futuristic/
|
|
29
|
+
- unicorn/
|
|
30
|
+
+ reset/
|
|
31
|
+
|
|
32
|
+
> Code
|
|
33
|
+
|
|
34
|
+
- ~/menus/
|
|
35
|
+
+ face.menu
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
> Code
|
|
39
|
+
|
|
40
|
+
- ~/menus/
|
|
41
|
+
+ face.menu
|
|
42
|
+
+ face.rb
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
> Make simple menu
|
|
46
|
+
|
|
47
|
+
- dumbed-down version
|
|
48
|
+
|
|
49
|
+
mood/
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
> Make simple menu
|
|
53
|
+
|
|
54
|
+
- dumbed-down version
|
|
55
|
+
|
|
56
|
+
mood/
|
|
57
|
+
happy/
|
|
58
|
+
sad/
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
> Make simple menu
|
|
62
|
+
|
|
63
|
+
- dumbed-down version
|
|
64
|
+
|
|
65
|
+
mood/
|
|
66
|
+
happy/
|
|
67
|
+
:)
|
|
68
|
+
sad/
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
> Make simple menu
|
|
72
|
+
|
|
73
|
+
- dumbed-down version
|
|
74
|
+
|
|
75
|
+
mood/
|
|
76
|
+
happy/
|
|
77
|
+
:)
|
|
78
|
+
sad/
|
|
79
|
+
:(
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
> Make simple menu
|
|
83
|
+
|
|
84
|
+
- dumbed-down version
|
|
85
|
+
|
|
86
|
+
mood/
|
|
87
|
+
happy/
|
|
88
|
+
:)
|
|
89
|
+
sad/
|
|
90
|
+
:(
|
|
91
|
+
|
|
92
|
+
Browser.html ":)"
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
> Make simple menu
|
|
96
|
+
|
|
97
|
+
- dumbed-down version
|
|
98
|
+
|
|
99
|
+
- ~/menus/
|
|
100
|
+
+ mood.menu
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
> Make simple menu
|
|
104
|
+
|
|
105
|
+
- dumbed-down version
|
|
106
|
+
|
|
107
|
+
- ~/menus/
|
|
108
|
+
+ mood.menu
|
|
109
|
+
+ mood.rb
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
> Make simple menu
|
|
113
|
+
|
|
114
|
+
- dumbed-down version
|
|
115
|
+
|
|
116
|
+
- ~/menus/
|
|
117
|
+
- mood.menu
|
|
118
|
+
| happy/
|
|
119
|
+
| sad/
|
|
120
|
+
+ mood.rb
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
> Make simple menu
|
|
124
|
+
|
|
125
|
+
- dumbed-down version
|
|
126
|
+
|
|
127
|
+
- ~/menus/
|
|
128
|
+
- mood.menu
|
|
129
|
+
| happy/
|
|
130
|
+
| sad/
|
|
131
|
+
- mood.rb
|
|
132
|
+
| class Moods
|
|
133
|
+
| def self.menu mood
|
|
134
|
+
| if mood == "happy"
|
|
135
|
+
| Browser.html ":)"
|
|
136
|
+
| else
|
|
137
|
+
| Browser.html ":("
|
|
138
|
+
| end
|
|
139
|
+
| end
|
|
140
|
+
| end
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
> Make simple menu
|
|
144
|
+
|
|
145
|
+
- "Pretend like it works"
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
> Make simple menu
|
|
149
|
+
|
|
150
|
+
mood/
|
|
151
|
+
+ happy/
|
|
152
|
+
+ sad/
|
|
153
|
+
|
|
154
|
+
- /Users/craig/menus/
|
|
155
|
+
- mood.menu
|
|
156
|
+
| - happy/
|
|
157
|
+
| - sad/
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
> Make menus do something
|
|
161
|
+
|
|
162
|
+
- "Pretend like it works"
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
> Make menus do something
|
|
166
|
+
|
|
167
|
+
mood/
|
|
168
|
+
- happy/
|
|
169
|
+
- sad/
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
> Other ways to make menus
|
|
173
|
+
|
|
174
|
+
- /Users/craig/menus/
|
|
175
|
+
+ mood.menu
|
|
176
|
+
+ mood.rb
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
> Just menu
|
|
180
|
+
|
|
181
|
+
sleep/
|
|
182
|
+
- status/
|
|
183
|
+
@ Browser.html "| ( asleep"
|
|
184
|
+
@ Browser.html "8( awake"
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
> Just menu
|
|
188
|
+
|
|
189
|
+
sleep/
|
|
190
|
+
+ status/
|
|
191
|
+
- pictures/
|
|
192
|
+
@google images/sleep/
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
> Other ways to make menus
|
|
196
|
+
|
|
197
|
+
- /Users/craig/menus/
|
|
198
|
+
+ mood.menu
|
|
199
|
+
+ mood.rb
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
> Just class
|
|
203
|
+
class States
|
|
204
|
+
def self.favorite
|
|
205
|
+
"
|
|
206
|
+
- Arizado/
|
|
207
|
+
- South Alacheussets/
|
|
208
|
+
"
|
|
209
|
+
end
|
|
210
|
+
def self.time_zones
|
|
211
|
+
"I don't know any"
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
states/
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
> Just class
|
|
219
|
+
class Addresses
|
|
220
|
+
def self.menu
|
|
221
|
+
"
|
|
222
|
+
.states/
|
|
223
|
+
- Ohio/
|
|
224
|
+
- California/
|
|
225
|
+
- Florida/
|
|
226
|
+
.zip codes/
|
|
227
|
+
"
|
|
228
|
+
end
|
|
229
|
+
def self.states state
|
|
230
|
+
"Abbreviation: #{state[/../].upcase}"
|
|
231
|
+
end
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
addresses/
|
|
235
|
+
states/
|
|
236
|
+
- Ohio/
|
|
237
|
+
Abbreviation: OH
|
|
238
|
+
+ California/
|
|
239
|
+
+ Florida/
|
|
240
|
+
zip codes/
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
> Blocks
|
|
244
|
+
|
|
245
|
+
Menu.abc { |path| "You passed '#{path}'" }
|
|
246
|
+
|
|
247
|
+
abc/
|
|
248
|
+
You passed 'abc/'
|
|
249
|
+
|
|
250
|
+
hey/
|
|
251
|
+
You passed 'abc/hey/'
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
> Patterns
|
|
255
|
+
|
|
256
|
+
Launcher.add(/^aaa/) { Tree << "hi" }
|
|
257
|
+
|
|
258
|
+
aaaah/
|
|
259
|
+
hi
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
> Other things in menus
|
|
263
|
+
|
|
264
|
+
- Headings and notes
|
|
265
|
+
|
|
266
|
+
food/
|
|
267
|
+
> Lunch
|
|
268
|
+
@google images/salad
|
|
269
|
+
|
|
270
|
+
> Dinner
|
|
271
|
+
@google images/pizza
|
|
272
|
+
|
|
273
|
+
- todo/
|
|
274
|
+
> Breakfast
|
|
275
|
+
Decide what to do about
|
|
276
|
+
breakfast!
|
|
277
|
+
|
|
278
|
+
> Shell commands
|
|
279
|
+
|
|
280
|
+
disk usage/
|
|
281
|
+
> Disk usage on all volumes
|
|
282
|
+
@ $ df
|
|
283
|
+
| Filesystem 512-blocks Used Available Capacity Mounted on
|
|
284
|
+
| /dev/disk0s2 583197008 217048744 365636264 38% /
|
|
285
|
+
| devfs 215 215 0 100% /dev
|
|
286
|
+
| /dev/disk0s3 392642192 590536 392051656 1% /Volumes/Ashbury
|
|
287
|
+
| map -hosts 0 0 0 100% /net
|
|
288
|
+
| map auto_home 0 0 0 100% /home
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
> The End
|
|
292
|
+
|
|
293
|
+
"Like a Shell Terminal but Better"
|
|
294
|
+
|
|
295
|
+
http://xiki.org
|
|
296
|
+
|
|
297
|
+
|