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/menus/css.rb
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
class Css
|
|
2
|
+
def self.menu_before *args
|
|
3
|
+
return if args[0] != "list"
|
|
4
|
+
|
|
5
|
+
args.shift
|
|
6
|
+
|
|
7
|
+
# If just "css/list/", list all
|
|
8
|
+
|
|
9
|
+
if args.blank?
|
|
10
|
+
js = %`
|
|
11
|
+
var result="";
|
|
12
|
+
$('*[class]').each(function(i, e){
|
|
13
|
+
var id = $(e).attr('class');
|
|
14
|
+
result += "+ "+id+"/\\n";
|
|
15
|
+
})
|
|
16
|
+
result;
|
|
17
|
+
`.unindent
|
|
18
|
+
|
|
19
|
+
result = Firefox.run js
|
|
20
|
+
return "> No class attributes found!" if result == '""'
|
|
21
|
+
return result
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Add "." to beginning of first (it was removed due to it meaning a method call)
|
|
25
|
+
args.first.sub! /^/, '.'
|
|
26
|
+
|
|
27
|
+
Dom.dom args
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.menu *args
|
|
31
|
+
|
|
32
|
+
if args.empty?
|
|
33
|
+
return "
|
|
34
|
+
+ list/
|
|
35
|
+
| /* Or type some css here (to run in the browser) */
|
|
36
|
+
| h1 { color: red; }
|
|
37
|
+
| body {
|
|
38
|
+
| font-family: arial;
|
|
39
|
+
| font-size: 12px;
|
|
40
|
+
| color: #000;
|
|
41
|
+
| background-color: #fff;
|
|
42
|
+
| }
|
|
43
|
+
"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
txt = ENV['txt'].dup
|
|
47
|
+
|
|
48
|
+
txt.gsub!("\n", '\n')
|
|
49
|
+
txt.gsub!('"', '\"')
|
|
50
|
+
code = "$('head').append(\"<style>#{txt}</style>\")"
|
|
51
|
+
Firefox.run code #, :jquery=>1
|
|
52
|
+
|
|
53
|
+
nil
|
|
54
|
+
end
|
|
55
|
+
end
|
data/menus/current.rb
ADDED
data/menus/db.rb
ADDED
data/menus/deck.rb
ADDED
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
require "mode"
|
|
2
|
+
|
|
3
|
+
# Makes text in .deck files huge, and makes left and right arrow keys treat
|
|
4
|
+
# headings as slides.
|
|
5
|
+
class Deck
|
|
6
|
+
|
|
7
|
+
def self.menu
|
|
8
|
+
%`
|
|
9
|
+
- .enable arrow keys/
|
|
10
|
+
- docs/
|
|
11
|
+
> Summary
|
|
12
|
+
| Create a file with a ".deck" extension to create a lightweight
|
|
13
|
+
| presentation. The left and right arrow keys will go back and forth
|
|
14
|
+
| between the "slides".
|
|
15
|
+
|
|
|
16
|
+
| Make .deck files just like you make .notes files, with sections divided
|
|
17
|
+
| by headings ("> foo" lines). The sections behave like slides. Only one
|
|
18
|
+
| section is shown at a time.
|
|
19
|
+
|
|
|
20
|
+
> Keys
|
|
21
|
+
| Use these keys to go back and forth between slides:
|
|
22
|
+
| - right+arrow+key: show next slide (hiding everything else)
|
|
23
|
+
| - left+arrow+key: show next slide
|
|
24
|
+
| - custom+reminder: jump to corresponding heading at end
|
|
25
|
+
|
|
|
26
|
+
> Hints
|
|
27
|
+
| To create and show hints that correspond to a section, create a section
|
|
28
|
+
| near the bottom of the file with the same heading but starting with
|
|
29
|
+
| ">>" instead of ">"
|
|
30
|
+
|
|
|
31
|
+
| Then, type open+related+heading to jump back and forth.
|
|
32
|
+
|
|
|
33
|
+
> To enable the deck keys in a .notes file
|
|
34
|
+
- type: do+keys+deck
|
|
35
|
+
- or use) @deck/enable arrow keys/
|
|
36
|
+
|
|
|
37
|
+
`
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
@@size = 10
|
|
41
|
+
|
|
42
|
+
def self.enable_arrow_keys options={}
|
|
43
|
+
|
|
44
|
+
# If in an actual file, just enable for it
|
|
45
|
+
if View.file
|
|
46
|
+
$el.use_local_map $el.elvar.deck_mode_map
|
|
47
|
+
return View.flash "- Enabling arrow keys"
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
last = View.files.find{|o| o =~ /\.notes$/}
|
|
51
|
+
basename = File.basename(last)
|
|
52
|
+
View.open last
|
|
53
|
+
|
|
54
|
+
View.flash "- Enabling arrow keys!", :times=>4 unless options[:silent]
|
|
55
|
+
$el.use_local_map $el.elvar.deck_mode_map
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def self.keys # mode=:deck_mode_map
|
|
59
|
+
return if ! $el
|
|
60
|
+
|
|
61
|
+
$el.elvar.deck_mode_map = $el.make_sparse_keymap unless $el.boundp :deck_mode_map
|
|
62
|
+
$el.set_keymap_parent $el.elvar.deck_mode_map, $el.elvar.notes_mode_map
|
|
63
|
+
|
|
64
|
+
Keys.custom_reminder(:deck_mode_map) { Deck.open_related_heading }
|
|
65
|
+
Keys.layout_uncover(:deck_mode_map) {
|
|
66
|
+
View.status nil, :nth=>3
|
|
67
|
+
Hide.reveal
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
$el.define_key(:deck_mode_map, $el.kbd("<right>")) { Deck.right_arrow }
|
|
71
|
+
$el.define_key(:deck_mode_map, $el.kbd("<left>")) { Deck.left_arrow }
|
|
72
|
+
|
|
73
|
+
# TODO Get this to not add item at top of "Keys > Do" menu bar menu - how?!
|
|
74
|
+
Keys.do_keys_deck { Deck.enable_arrow_keys }
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def self.open_related_heading
|
|
78
|
+
|
|
79
|
+
orig = Location.new
|
|
80
|
+
|
|
81
|
+
was_hidden = View.hidden?
|
|
82
|
+
|
|
83
|
+
Hide.reveal if was_hidden
|
|
84
|
+
|
|
85
|
+
left, after_header, right = View.block_positions "^>"
|
|
86
|
+
heading = View.txt left, after_header-1
|
|
87
|
+
|
|
88
|
+
delimeter = heading[/^>+/]
|
|
89
|
+
|
|
90
|
+
delimeter.size > 1 ?
|
|
91
|
+
heading.sub!(/./, '') :
|
|
92
|
+
heading.sub!(/^/, '>')
|
|
93
|
+
|
|
94
|
+
View.to_highest
|
|
95
|
+
found = Search.forward "^#{$el.regexp_quote heading}$"
|
|
96
|
+
|
|
97
|
+
if ! found
|
|
98
|
+
orig.go
|
|
99
|
+
return View.flash "- No related heading found"
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
Move.to_axis
|
|
103
|
+
View.recenter_top
|
|
104
|
+
Notes.narrow_block(:delimiter=>delimeter == ">" ? ">>" : ">") if was_hidden
|
|
105
|
+
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def self.left_arrow
|
|
109
|
+
|
|
110
|
+
Notes.narrow_block if ! View.hidden? # If not hidden, hide first, for simplicity
|
|
111
|
+
|
|
112
|
+
column = View.column
|
|
113
|
+
number = View.visible_line_number
|
|
114
|
+
|
|
115
|
+
View.visible_line_number = 1
|
|
116
|
+
|
|
117
|
+
self.show_all
|
|
118
|
+
|
|
119
|
+
Notes.to_block(:up)
|
|
120
|
+
|
|
121
|
+
result = self.set_bars
|
|
122
|
+
|
|
123
|
+
left, ignore, right = View.block_positions
|
|
124
|
+
lines_in_block = Line.number(right) - Line.number(left)
|
|
125
|
+
line = Line.number
|
|
126
|
+
|
|
127
|
+
number = lines_in_block if number > lines_in_block
|
|
128
|
+
|
|
129
|
+
View.line = line + number - 1
|
|
130
|
+
View.column = column
|
|
131
|
+
|
|
132
|
+
Notes.narrow_block
|
|
133
|
+
|
|
134
|
+
Effects.glow :fade_in=>1, :what=>:block if result[0] == 0
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
def self.right_arrow
|
|
138
|
+
|
|
139
|
+
Notes.narrow_block if ! View.hidden? # If not hidden, hide first, for simplicity
|
|
140
|
+
|
|
141
|
+
column = View.column
|
|
142
|
+
|
|
143
|
+
number = View.visible_line_number
|
|
144
|
+
Move.backward if View.bottom == View.cursor # If at bottom of visible, back up one
|
|
145
|
+
|
|
146
|
+
self.show_all
|
|
147
|
+
|
|
148
|
+
Notes.to_block
|
|
149
|
+
|
|
150
|
+
result = self.set_bars
|
|
151
|
+
|
|
152
|
+
Notes.narrow_block
|
|
153
|
+
|
|
154
|
+
View.visible_line_number = number
|
|
155
|
+
|
|
156
|
+
View.column = column
|
|
157
|
+
|
|
158
|
+
Effects.glow :fade_in=>1, :what=>:block if result[2]
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
# Sets little bars at bottom of window (mode line)
|
|
162
|
+
def self.set_bars
|
|
163
|
+
|
|
164
|
+
first_in_block = false
|
|
165
|
+
|
|
166
|
+
my_line_number = View.line
|
|
167
|
+
|
|
168
|
+
top_bar, bottom_bar = 0, 0 # remaining in group, remaining total
|
|
169
|
+
|
|
170
|
+
header, header_match_count, my_header = nil, 0, nil
|
|
171
|
+
View.txt.split("\n").each_with_index do |line, i|
|
|
172
|
+
i = i + 1
|
|
173
|
+
is_header = line =~ /^> /
|
|
174
|
+
if is_header
|
|
175
|
+
|
|
176
|
+
if header == line # If same header as last
|
|
177
|
+
header_match_count += 1
|
|
178
|
+
else
|
|
179
|
+
header_match_count = 1
|
|
180
|
+
header = line
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
if my_header # If we found it, start accumulating
|
|
184
|
+
top_bar += 1 if header == my_header
|
|
185
|
+
bottom_bar += 1
|
|
186
|
+
end
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
# If line matched, remember it's this header
|
|
190
|
+
if i == my_line_number # && ! my_line_number
|
|
191
|
+
my_header = header
|
|
192
|
+
first_in_block = true if header_match_count == 1
|
|
193
|
+
top_bar, bottom_bar = 0, 0 # remaining in group, remaining total
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
View.status :bars=>[top_bar, bottom_bar]
|
|
199
|
+
|
|
200
|
+
[top_bar, bottom_bar, first_in_block]
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
def self.init
|
|
205
|
+
self.keys
|
|
206
|
+
# Make deck mode happen for .deck files
|
|
207
|
+
Mode.define(:deck, ".deck") do
|
|
208
|
+
Notes.mode
|
|
209
|
+
$el.use_local_map $el.elvar.deck_mode_map # Adds arrow keys onto notes map
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
def self.show_all
|
|
214
|
+
$el.widen
|
|
215
|
+
Hide.show
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
end
|
|
219
|
+
Deck.init # Define mode
|
data/menus/dictionary.rb
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
class Dictionary
|
|
2
|
+
def self.menu word=nil
|
|
3
|
+
return View.prompt('Type a word to look up') if word.nil?
|
|
4
|
+
|
|
5
|
+
word = word.sub(/^\s+/, '').gsub('"', '%22').gsub(':', '%3A').gsub(' ', '%20')
|
|
6
|
+
$el.browse_url "http://dictionary.reference.com/browse/#{word}"
|
|
7
|
+
nil
|
|
8
|
+
end
|
|
9
|
+
end
|
data/menus/dir.rb
ADDED
data/menus/disk.rb
ADDED
data/menus/do.rb
ADDED
data/menus/docs.rb
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
class Docs
|
|
2
|
+
def self.menu
|
|
3
|
+
%`
|
|
4
|
+
- Introduction/
|
|
5
|
+
| Most of the Xiki documentation is spread out among other menus, under
|
|
6
|
+
| their respective 'docs' menus.
|
|
7
|
+
|
|
|
8
|
+
> Here are some to check out first
|
|
9
|
+
@keys/docs/
|
|
10
|
+
@menu/docs/
|
|
11
|
+
@files/docs/
|
|
12
|
+
@view/docs/
|
|
13
|
+
|
|
|
14
|
+
- Try typing stuff/
|
|
15
|
+
> Try just typing a menu
|
|
16
|
+
| Think of a menu name that might exist and sounds likely to solve your
|
|
17
|
+
| problem. For example, if you want to do something with images, try the
|
|
18
|
+
| 'images' menu. Type it on a blank line and double-click, or use
|
|
19
|
+
| open+menu (type Ctrl-O, Ctrl-M).
|
|
20
|
+
|
|
|
21
|
+
| Help us improve the docs, and contribute back to the Xiki project. If
|
|
22
|
+
| the menu doesn't exist, create it! If it exists, but could be improved,
|
|
23
|
+
| edit it! Many menus exist just to direct you to other menus. It takes
|
|
24
|
+
| only seconds to create them.
|
|
25
|
+
|
|
|
26
|
+
@menu/docs/how_to_create/
|
|
27
|
+
|
|
|
28
|
+
- Other places to look/
|
|
29
|
+
- You may want to check out__
|
|
30
|
+
__
|
|
31
|
+
- for developers
|
|
32
|
+
- code dirs/__
|
|
33
|
+
> All Commands
|
|
34
|
+
@all/
|
|
35
|
+
|
|
|
36
|
+
- FAQ/
|
|
37
|
+
> What is Xiki?
|
|
38
|
+
| Xiki is an environment that can be used in several ways:
|
|
39
|
+
| - Shell terminal on steroids
|
|
40
|
+
| - Development environment for coding rails or node.js apps, etc.
|
|
41
|
+
| - Framework for making lightweight user interfaces
|
|
42
|
+
|
|
|
43
|
+
> What does Xiki stand for?
|
|
44
|
+
| XIKI is short for eXecutable wIKI
|
|
45
|
+
|
|
|
46
|
+
> What are Xiki's main dependencies?
|
|
47
|
+
| - Xiki runs inside of Emacs
|
|
48
|
+
| - and takes advantage of many powerful Emacs features
|
|
49
|
+
| - but you don't need to know Emacs to use Xiki
|
|
50
|
+
| - Xiki is implemented mostly in ruby
|
|
51
|
+
| - but can use other languages like python, javascript, and coffeescript
|
|
52
|
+
|
|
|
53
|
+
> What's the best way to figure out how to do something?
|
|
54
|
+
- @docs/Try typing stuff/
|
|
55
|
+
|
|
|
56
|
+
`
|
|
57
|
+
end
|
|
58
|
+
end
|
data/menus/dotsies.rb
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
class Dotsies
|
|
2
|
+
def self.menu
|
|
3
|
+
%`
|
|
4
|
+
|~this is an example
|
|
5
|
+
- .apply/
|
|
6
|
+
- .one view/
|
|
7
|
+
- .all views/
|
|
8
|
+
- .web browser/
|
|
9
|
+
- .browse/
|
|
10
|
+
- api/
|
|
11
|
+
> HTML to include in web page
|
|
12
|
+
| <link href='http://xiki.org/dotsies.css' rel='stylesheet' type='text/css'>
|
|
13
|
+
| <style> .dotsies {font-family:Dotsies} </style>
|
|
14
|
+
- docs/
|
|
15
|
+
> Summary
|
|
16
|
+
| Has to do with the "dotsies" font.
|
|
17
|
+
|
|
|
18
|
+
> Show dotsies text inline
|
|
19
|
+
|~Show dotsies text inline
|
|
20
|
+
|
|
|
21
|
+
> To show something in the browser
|
|
22
|
+
| Use the "browse" menu.
|
|
23
|
+
|
|
24
|
+
> See
|
|
25
|
+
<< dotsies tweets/
|
|
26
|
+
`
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.all_views
|
|
30
|
+
|
|
31
|
+
View.kill if View.name == "menu" || View.name =~ /^@/
|
|
32
|
+
|
|
33
|
+
faces = {
|
|
34
|
+
:default=>"monaco",
|
|
35
|
+
:ls_dir=>"verdana",
|
|
36
|
+
:notes_exclamation=>"arial black",
|
|
37
|
+
:notes_h1=>"arial",
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if Styles.attribute(:default, :family) =~ /dotsies/
|
|
41
|
+
faces.each{|k,v| Styles.define k, :face=>v}
|
|
42
|
+
else
|
|
43
|
+
faces.each{|k,v| Styles.define k, :face=>"dotsies"}
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
nil
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def self.one_view
|
|
50
|
+
View.kill if View.name == "menu" || View.name =~ /^@/
|
|
51
|
+
|
|
52
|
+
$el.make_local_variable :dotsies_enabled
|
|
53
|
+
dotsies_enabled = $el.boundp(:dotsies_enabled) && $el.elvar.dotsies_enabled
|
|
54
|
+
|
|
55
|
+
font =
|
|
56
|
+
if dotsies_enabled
|
|
57
|
+
:default
|
|
58
|
+
elsif Keys.prefix_u
|
|
59
|
+
:dotsies_experimental
|
|
60
|
+
else
|
|
61
|
+
:dotsies
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
Styles.apply(".+", font)
|
|
65
|
+
|
|
66
|
+
$el.elvar.dotsies_enabled = ! dotsies_enabled
|
|
67
|
+
nil
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def self.web_browser
|
|
71
|
+
Firefox.js "$('head').append('<style>body{font-family: dotsies}</style>')"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def self.browse txt=nil
|
|
75
|
+
return ".flash - Type some text" if txt.nil?
|
|
76
|
+
"do"
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def self.define_styles
|
|
80
|
+
Styles.define :dotsies, :size => '+2', :face => "Dotsies"
|
|
81
|
+
Styles.define :dotsies_white, :size => '+2', :face => "Dotsies", :fg=>"fff"
|
|
82
|
+
Styles.define :dotsies_experimental, :size => '+2', :face => "Dotsies Experimental"
|
|
83
|
+
Styles.define :dotsies_roman, :size => '+2', :face => "Dotsies Roman"
|
|
84
|
+
Styles.define :dotsies_mono, :size => '+2', :face => "Dotsies Mono"
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def self.apply_styles
|
|
88
|
+
Styles.apply ".+", :dotsies
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def self.init
|
|
92
|
+
|
|
93
|
+
return if ! $el
|
|
94
|
+
|
|
95
|
+
$el.defun(:dotsies_mode, :interactive => "", :docstring => "Apply dotsies styles, etc") {
|
|
96
|
+
$el.el4r_lisp_eval "(setq font-lock-defaults '(nil t))"
|
|
97
|
+
Dotsies.apply_styles
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
self.define_styles
|
|
101
|
+
|
|
102
|
+
$el.el4r_lisp_eval %q<
|
|
103
|
+
(add-to-list 'auto-mode-alist '("\\\\.dotsies\\\\'" . dotsies-mode))
|
|
104
|
+
>
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
Dotsies.init
|