rabbit 1.0.9 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. data/GPL +19 -20
  2. data/Rakefile +25 -10
  3. data/bin/rabbit +20 -844
  4. data/bin/rabbit-command +25 -36
  5. data/bin/rabbit-slide +22 -0
  6. data/bin/rabbit-theme +22 -0
  7. data/bin/rabbit-theme-manager +30 -30
  8. data/data/account.kou.gpg +0 -0
  9. data/data/locale/en/LC_MESSAGES/rabbit.mo +0 -0
  10. data/data/locale/fr/LC_MESSAGES/rabbit.mo +0 -0
  11. data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
  12. data/doc/_config.yml +8 -0
  13. data/doc/_includes/en.menu.html +8 -0
  14. data/doc/_includes/ja.menu.html +8 -0
  15. data/doc/_layouts/en.html +19 -16
  16. data/doc/_layouts/ja.html +19 -16
  17. data/doc/_plugins/converters/rd.rb +1 -1
  18. data/doc/_plugins/support_symlink.rb +11 -0
  19. data/doc/en/development.rd +2 -2
  20. data/doc/en/how-to-make/index.rd +5 -5
  21. data/doc/en/how-to-make/rd.rd +1 -1
  22. data/doc/en/index.rd +6 -12
  23. data/doc/en/sample/index.rd +3 -3
  24. data/doc/en/slides.rd +2 -0
  25. data/doc/en/usage.rd +14 -356
  26. data/doc/en/usage/rabbit.rd +360 -0
  27. data/doc/en/users.rd +3 -1
  28. data/doc/images/screenshots/en/blue-circle-raw.png +0 -0
  29. data/doc/images/screenshots/en/blue-circle.png +0 -0
  30. data/doc/images/screenshots/en/clear-blue-raw.png +0 -0
  31. data/doc/images/screenshots/en/clear-blue.png +0 -0
  32. data/doc/images/screenshots/en/cozmixng-raw.png +0 -0
  33. data/doc/images/screenshots/en/cozmixng.png +0 -0
  34. data/doc/images/screenshots/en/dark-gradation-raw.png +0 -0
  35. data/doc/images/screenshots/en/dark-gradation.png +0 -0
  36. data/doc/images/screenshots/en/day-white.png +0 -0
  37. data/doc/images/screenshots/en/debian-raw.png +0 -0
  38. data/doc/images/screenshots/en/debian.png +0 -0
  39. data/doc/images/screenshots/en/green-circle-raw.png +0 -0
  40. data/doc/images/screenshots/en/green-circle.png +0 -0
  41. data/doc/images/screenshots/en/night-black.png +0 -0
  42. data/doc/images/screenshots/en/rabbit-raw.png +0 -0
  43. data/doc/images/screenshots/en/rabbit.png +0 -0
  44. data/doc/images/screenshots/en/ranguba-raw.png +0 -0
  45. data/doc/images/screenshots/en/ranguba.png +0 -0
  46. data/doc/images/screenshots/en/red-frame-raw.png +0 -0
  47. data/doc/images/screenshots/en/red-frame.png +0 -0
  48. data/doc/images/screenshots/en/ruby-gnome2-raw.png +0 -0
  49. data/doc/images/screenshots/en/ruby-gnome2.png +0 -0
  50. data/doc/images/screenshots/en/rubykaigi2011-raw.png +0 -0
  51. data/doc/images/screenshots/en/rubykaigi2011.png +0 -0
  52. data/doc/images/screenshots/ja/blue-circle-raw.png +0 -0
  53. data/doc/images/screenshots/ja/blue-circle.png +0 -0
  54. data/doc/images/screenshots/ja/clear-blue-raw.png +0 -0
  55. data/doc/images/screenshots/ja/clear-blue.png +0 -0
  56. data/doc/images/screenshots/ja/cozmixng-raw.png +0 -0
  57. data/doc/images/screenshots/ja/cozmixng.png +0 -0
  58. data/doc/images/screenshots/ja/dark-gradation-raw.png +0 -0
  59. data/doc/images/screenshots/ja/dark-gradation.png +0 -0
  60. data/doc/images/screenshots/ja/day-white.png +0 -0
  61. data/doc/images/screenshots/ja/debian-raw.png +0 -0
  62. data/doc/images/screenshots/ja/debian.png +0 -0
  63. data/doc/images/screenshots/ja/green-circle-raw.png +0 -0
  64. data/doc/images/screenshots/ja/green-circle.png +0 -0
  65. data/doc/images/screenshots/ja/night-black.png +0 -0
  66. data/doc/images/screenshots/ja/rabbit-raw.png +0 -0
  67. data/doc/images/screenshots/ja/rabbit.png +0 -0
  68. data/doc/images/screenshots/ja/ranguba-raw.png +0 -0
  69. data/doc/images/screenshots/ja/ranguba.png +0 -0
  70. data/doc/images/screenshots/ja/red-frame-raw.png +0 -0
  71. data/doc/images/screenshots/ja/red-frame.png +0 -0
  72. data/doc/images/screenshots/ja/ruby-gnome2-raw.png +0 -0
  73. data/doc/images/screenshots/ja/ruby-gnome2.png +0 -0
  74. data/doc/images/screenshots/ja/rubykaigi2011-raw.png +0 -0
  75. data/doc/images/screenshots/ja/rubykaigi2011.png +0 -0
  76. data/doc/index.html.en +1 -1
  77. data/doc/index.html.ja +1 -1
  78. data/doc/ja/about.rd +3 -3
  79. data/doc/ja/development.rd +2 -2
  80. data/doc/ja/how-to-make/index.rd +5 -5
  81. data/doc/ja/index.rd +10 -16
  82. data/doc/ja/install/macports.rd +1 -1
  83. data/doc/ja/news.rd +4 -4
  84. data/doc/ja/sample/index.rd +3 -3
  85. data/doc/ja/usage.rd +13 -358
  86. data/doc/ja/usage/rabbit.rd +362 -0
  87. data/doc/ja/users.rd +1 -1
  88. data/lib/rabbit/action.rb +2 -2
  89. data/lib/rabbit/author-configuration.rb +73 -0
  90. data/lib/rabbit/canvas.rb +0 -14
  91. data/lib/rabbit/command/rabbit-slide.rb +571 -0
  92. data/lib/rabbit/command/rabbit-theme.rb +381 -0
  93. data/lib/rabbit/command/rabbit.rb +898 -0
  94. data/lib/rabbit/config.rb +40 -0
  95. data/lib/rabbit/console.rb +124 -55
  96. data/lib/rabbit/gem-finder.rb +61 -0
  97. data/lib/rabbit/gettext.rb +6 -79
  98. data/lib/rabbit/html/generator.rb +1 -0
  99. data/lib/rabbit/image.rb +1 -1
  100. data/lib/rabbit/logger.rb +12 -2
  101. data/lib/rabbit/logger/base.rb +33 -32
  102. data/lib/rabbit/logger/stderr.rb +1 -1
  103. data/lib/rabbit/menu.rb +1 -1
  104. data/lib/rabbit/parser.rb +2 -0
  105. data/lib/rabbit/parser/ext/image.rb +14 -20
  106. data/lib/rabbit/path-manipulatable.rb +40 -0
  107. data/lib/rabbit/rabbit.rb +18 -8
  108. data/lib/rabbit/renderer/base.rb +3 -4
  109. data/lib/rabbit/renderer/color.rb +0 -1
  110. data/lib/rabbit/slideshare.rb +116 -0
  111. data/lib/rabbit/source/base.rb +1 -1
  112. data/lib/rabbit/stock.rb +1 -1
  113. data/lib/rabbit/task.rb +18 -0
  114. data/lib/rabbit/task/slide.rb +162 -0
  115. data/lib/rabbit/task/theme.rb +122 -0
  116. data/lib/rabbit/theme-browser/tree.rb +1 -1
  117. data/lib/rabbit/theme/applier.rb +9 -0
  118. data/lib/rabbit/theme/background-image-toolkit/background-image-toolkit.rb +1 -2
  119. data/lib/rabbit/theme/blue-bar/blue-bar.rb +0 -11
  120. data/lib/rabbit/theme/clear-blue/clear-blue.rb +0 -11
  121. data/lib/rabbit/theme/cozmixng/cozmixng.rb +0 -11
  122. data/lib/rabbit/theme/day-white/day-white.rb +0 -6
  123. data/lib/rabbit/theme/default/default.rb +7 -1
  124. data/lib/rabbit/theme/enishi-green/property.rb +2 -2
  125. data/lib/rabbit/theme/entry.rb +85 -27
  126. data/lib/rabbit/theme/image-slide-number/image-slide-number.rb +4 -1
  127. data/lib/rabbit/theme/lightning-monochrome/lightning-monochrome.rb +0 -1
  128. data/lib/rabbit/theme/lightning-simple/lightning-simple.rb +0 -1
  129. data/lib/rabbit/theme/nari/nari.rb +6 -16
  130. data/lib/rabbit/theme/nari/property.rb +3 -0
  131. data/lib/rabbit/theme/night-black/night-black.rb +0 -6
  132. data/lib/rabbit/theme/pdf/pdf.rb +0 -4
  133. data/lib/rabbit/theme/rabbit/rabbit.rb +0 -6
  134. data/lib/rabbit/theme/ranguba/ranguba.rb +0 -12
  135. data/lib/rabbit/theme/ruby-gnome2/ruby-gnome2.rb +7 -4
  136. data/lib/rabbit/theme/rubykaigi2011/rubykaigi2011.rb +2 -9
  137. data/lib/rabbit/theme/searcher.rb +38 -16
  138. data/lib/rabbit/theme/syntax-highlighting/property.rb +2 -2
  139. data/lib/rabbit/version.rb +19 -0
  140. data/po/en/rabbit.po +1605 -1425
  141. data/po/fr/rabbit.po +1756 -1684
  142. data/po/ja/rabbit.po +2198 -2097
  143. data/po/rabbit.pot +1556 -1419
  144. metadata +34 -100
  145. data/bin/rabbirack +0 -99
  146. data/bin/rabbiter +0 -108
  147. data/bin/rabrick +0 -95
  148. data/bin/rabwii +0 -77
  149. data/lib/rabbit/default-config.rb +0 -24
  150. data/lib/rabbit/div/comment-i.erb +0 -7
  151. data/lib/rabbit/div/comment.erb +0 -45
  152. data/lib/rabbit/div/css.erb +0 -1
  153. data/lib/rabbit/div/js.erb +0 -1
  154. data/lib/rabbit/div/log.erb +0 -5
  155. data/lib/rabbit/div/main-i.erb +0 -24
  156. data/lib/rabbit/div/main.css +0 -40
  157. data/lib/rabbit/div/main.erb +0 -33
  158. data/lib/rabbit/div/navi-i.erb +0 -6
  159. data/lib/rabbit/div/navi.erb +0 -6
  160. data/lib/rabbit/div/prototype.js +0 -4320
  161. data/lib/rabbit/div/slide-i.erb +0 -2
  162. data/lib/rabbit/div/slide.erb +0 -5
  163. data/lib/rabbit/div/tofu.rb +0 -309
  164. data/lib/rabbit/middleware/config.ru +0 -42
  165. data/lib/rabbit/middleware/controller.rb +0 -63
  166. data/lib/rabbit/middleware/public/stylesheets/rabbirack.css +0 -12
  167. data/lib/rabbit/middleware/views/index.haml +0 -13
  168. data/lib/rabbit/middleware/views/layout.haml +0 -8
  169. data/lib/rabbit/post-setup.rb +0 -8
  170. data/lib/rabbit/pre-clean.rb +0 -2
  171. data/lib/rabbit/pre-distclean.rb +0 -2
  172. data/lib/rabbit/theme/twitter-comment/property.rb +0 -4
  173. data/lib/rabbit/theme/twitter-comment/twitter-comment.rb +0 -15
  174. data/lib/rabbit/twitter.rb +0 -239
  175. data/sample/theme-bench-en.hiki +0 -100
  176. data/sample/theme-bench-en.rab +0 -127
  177. data/sample/theme-bench.hiki +0 -101
  178. data/sample/theme-bench.rab +0 -128
  179. data/setup.rb +0 -1585
  180. data/update-mo.rb +0 -20
  181. data/update-po.rb +0 -57
@@ -1,8 +0,0 @@
1
- %html
2
- %head
3
- %meta(http-equiv="Content-Type" content="text/html; charset=UTF-8")
4
- %link(rel="stylesheet" type="text/css" media="all" href="/stylesheets/rabbirack.css")
5
- %title
6
- =slide_title
7
- %body
8
- =yield
@@ -1,8 +0,0 @@
1
- File.open("config.rb", "w") do |f|
2
- f.print <<-EOC
3
- require "rabbit/default-config"
4
-
5
- Rabbit::Config::IMAGE_PATH.unshift('#{config("datadir")}')
6
- Rabbit::Config::GETTEXT_PATH = '#{File.join(config("datadir"), "locale")}'
7
- EOC
8
- end
@@ -1,2 +0,0 @@
1
- filename = 'config.rb'
2
- File.delete(filename) if File.exist?(filename)
@@ -1,2 +0,0 @@
1
- filename = 'config.rb'
2
- File.delete(filename) if File.exist?(filename)
@@ -1,4 +0,0 @@
1
- @category = N_("Comment")
2
- @title = N_("Twitter Comment")
3
- @abstract = N_("Get comments from Twitter TL.")
4
- @description = N_("Get comments from Twitter TL.")
@@ -1,15 +0,0 @@
1
- theme_exit unless display?
2
-
3
- @twitter_footer_color ||= @foreground
4
- if !defined?(@twitter_footer_filters) or @twitter_footer_filters.nil?
5
- theme_exit("must specify @twitter_footer_filters!! as " +
6
- "array of keyword: ['keyword1', 'keyword1', ...])")
7
- end
8
-
9
- canvas.twitter.close
10
- theme_exit if @twitter_footer_uninstall
11
-
12
- canvas.twitter.start(@twitter_footer_filters) do |status|
13
- tweet = "@#{status['user']['screen_name']}: #{status['text']}"
14
- canvas.append_comment(tweet)
15
- end
@@ -1,239 +0,0 @@
1
- require "shellwords"
2
- require "pathname"
3
- require "gio2"
4
-
5
- module Rabbit
6
- class Twitter
7
- CONSUMER_KEY = "wT9WSC0afRw94fxUw0iIKw"
8
- CONSUMER_SECRET = "mwY35vfQfmWde9lZbyNNB15QzCq3k2VwGj3X1IAkQ8"
9
-
10
- def initialize(logger)
11
- @logger = logger
12
- @oauth_parameters = nil
13
- @config_file_path = Pathname.new("~/.rabbit/twitter-oauth.yaml")
14
- @config_file_path = @config_file_path.expand_path
15
- @listeners = []
16
- @connection = nil
17
- end
18
-
19
- def register_listener(&block)
20
- @listeners << block
21
- end
22
-
23
- def setup
24
- return unless @oauth_parameters.nil?
25
- require 'yaml'
26
- begin
27
- require 'twitter_oauth'
28
- rescue LoadError
29
- @logger.warn(_("twitter_oauth gem is missing. " \
30
- "Install it by 'gem install twitter_oauth'."))
31
- return
32
- end
33
- setup_access_token unless @config_file_path.exist?
34
- oauth_access_parameters = YAML.load(@config_file_path.read)
35
- @oauth_parameters = {
36
- :consumer_key => CONSUMER_KEY,
37
- :consumer_secret => CONSUMER_SECRET,
38
- :access_key => oauth_access_parameters[:access_token],
39
- :access_secret => oauth_access_parameters[:access_secret],
40
- }
41
- end
42
-
43
- def close
44
- return if @connection.nil?
45
- @connection.close
46
- @connection = nil
47
- end
48
-
49
- def start(*filters, &block)
50
- register_listener(&block) if block_given?
51
- setup if @oauth_parameters.nil?
52
- return if @oauth_parameters.nil?
53
- begin
54
- require 'twitter/json_stream'
55
- rescue LoadError
56
- @logger.warn(_("twitter-stream gem is missing. " \
57
- "Install it by 'gem install twitter-stream'."))
58
- return
59
- end
60
-
61
- stream_options = {
62
- :oauth => @oauth_parameters,
63
- :user_agent => "Rabitter #{Rabbit::VERSION}",
64
- :method => "POST",
65
- :filters => filters,
66
- }
67
- @stream = ::Twitter::JSONStream.allocate
68
- @stream.send(:initialize, stream_options)
69
- @stream.send(:reset_state)
70
- @connection = GLibConnection.new(@logger, @stream)
71
-
72
- @stream.each_item do |item|
73
- status = JSON.parse(item)
74
- @listeners.each do |listener|
75
- listener.call(status)
76
- end
77
- end
78
-
79
- @stream.on_error do |message|
80
- @logger.error("[twitter] #{message}")
81
- end
82
-
83
- @stream.on_reconnect do |timeout, retries|
84
- @logger.info("[twitter][reconnect] #{timeout} seconds (#{retries})")
85
- end
86
-
87
- @stream.on_max_reconnects do |timeout, retries|
88
- @logger.info("[twitter][max-reconnects] " +
89
- "Failed after #{retries} failed reconnects")
90
- end
91
-
92
- @connection.connect
93
- end
94
-
95
- private
96
- def setup_access_token
97
- FileUtils.mkdir_p(@config_file_path.dirname)
98
- oauth_options = {
99
- :consumer_key => CONSUMER_KEY,
100
- :consumer_secret => CONSUMER_SECRET,
101
- :proxy => ENV["http_proxy"],
102
- }
103
- client = TwitterOAuth::Client.new(oauth_options)
104
- request_token = client.request_token
105
- puts "1) Access this URL: #{request_token.authorize_url}"
106
- print "2) Enter the PIN: "
107
- pin = STDIN.gets.strip
108
- access_token = request_token.get_access_token(:oauth_verifier => pin)
109
- oauth_parameters = {
110
- :access_token => access_token.token,
111
- :access_secret => access_token.secret,
112
- }
113
- @config_file_path.open("w") do |config_file|
114
- config_file.chmod(0600)
115
- config_file.puts(YAML.dump(oauth_parameters))
116
- end
117
- end
118
-
119
- class GLibConnection
120
- def initialize(logger, handler)
121
- @logger = logger
122
- @handler = handler
123
- @options = @handler.instance_variable_get("@options")
124
- @client = nil
125
- @connection = nil
126
- @socket = nil
127
- @source_ids = []
128
- end
129
-
130
- def connect
131
- close
132
- @client = Gio::SocketClient.new
133
- @client.tls = @options[:ssl]
134
- @connection = @client.connect_to_host(@options[:host], @options[:port])
135
- @socket = @connection.socket
136
- @socket.blocking = false
137
- @input = @connection.input_stream
138
- @output = @connection.output_stream
139
-
140
- reader_source = @socket.create_source(:in) do |socket, condition|
141
- @logger.debug("[twitter][read][start]")
142
- data = @input.read(8192) || ""
143
- @logger.debug("[twitter][read][done] #{data.bytesize}")
144
- if data.empty?
145
- @source_ids.reject! {|id| id == reader_source.id}
146
- @logger.debug("[twitter][read][eof]")
147
- false
148
- else
149
- @handler.receive_data(data)
150
- true
151
- end
152
- end
153
- @source_ids << reader_source.attach
154
-
155
- error_source = @socket.create_source(:err) do |socket, condition|
156
- @handler.receive_error(condition)
157
- true
158
- end
159
- @source_ids << error_source.attach
160
-
161
- @handler.extend(GLibAdapter)
162
- @handler.connection = self
163
- @handler.connection_completed
164
- end
165
-
166
- def send_data(data)
167
- rest = data.bytesize
168
- writer_source = @socket.create_source(:out) do |socket, condition|
169
- if rest.zero?
170
- @logger.debug("[twitter][flush][start]")
171
- @output.flush
172
- @logger.debug("[twitter][flush][done]")
173
- @source_ids.reject! {|id| id == writer_source.id}
174
- false
175
- else
176
- @logger.debug("[twitter][write][start]")
177
- written_size = @output.write(data)
178
- @logger.debug("[twitter][write][done] #{written_size}")
179
- rest -= written_size
180
- data[0, written_size] = ""
181
- true
182
- end
183
- end
184
- @source_ids << writer_source.attach
185
- end
186
-
187
- def close
188
- return if @client.nil?
189
- @source_ids.reject! do |id|
190
- GLib::Source.remove(id)
191
- true
192
- end
193
- @socket.close
194
- @socket = nil
195
- @input = nil
196
- @output = nil
197
- @connection = nil
198
- @client = nil
199
- end
200
-
201
- def reconnect(options={})
202
- close
203
- after = options[:after] || 0
204
- if after.zero?
205
- connect
206
- else
207
- id = GLib::Timeout.add(after) do
208
- connect
209
- false
210
- end
211
- @source_ids << id
212
- end
213
- end
214
- end
215
-
216
- module GLibAdapter
217
- attr_accessor :connection
218
- def start_tls
219
- end
220
-
221
- def send_data(data)
222
- @connection.send_data(data)
223
- end
224
-
225
- def reconnect_after(timeout)
226
- @reconnect_callback.call(timeout, @reconnect_retries) if @reconnect_callback
227
- @connection.reconnect(:after => timeout)
228
- end
229
-
230
- def reconnect(server, port)
231
- @connection.reconnect
232
- end
233
-
234
- def close_connection
235
- @connection.close
236
- end
237
- end
238
- end
239
- end
@@ -1,100 +0,0 @@
1
- ! Theme Bench
2
-
3
- :author:Kouhei Sutou
4
- :institution:COZMIXNG
5
- :date:2007/06/24
6
- :allotted-time:10m
7
-
8
- ! What is this?
9
-
10
- For benchmarking a theme
11
- * includes basic elements
12
-
13
- ! Itemization
14
-
15
- * Level 1-1
16
- ** Level 2-1
17
- ** Level 2-2
18
- *** Level 3
19
- ** Level 1-2
20
-
21
- ! Enumeration
22
-
23
- # Level 1-1
24
- ## Level 2-1
25
- ## Level 2-2
26
- ### Level 3
27
- # Level 1-2
28
-
29
- ! Composite List
30
-
31
- # Level 1-1
32
- ** Level 2-1
33
- ** Level 2-2
34
- *** Level 3
35
- # Level 1-2
36
-
37
- ! Description List
38
-
39
- :Lavie:The mascot of Rabbit
40
- :Shockers:Rabbit User's Group
41
-
42
- ! Image
43
-
44
- {{image("lavie.png",
45
- :relative_height => 100)}}
46
-
47
- ! Image with caption
48
-
49
- {{image("lavie.png",
50
- :caption => "Lavie",
51
- :relative_height => 100)}}
52
-
53
- ! Pre-formatted Text
54
-
55
- <<<
56
- require 'drb'
57
- uri =
58
- 'druby://localhost:10101/'
59
- rabbit =
60
- DRbObject.new_with_uri(uri)
61
- rabbit.move_to_next_if_can
62
- >>>
63
-
64
- ! Source
65
-
66
- <<< ruby
67
- class You
68
- def love?(it)
69
- it == "Rabbit"
70
- end
71
- end
72
- >>>
73
-
74
- ! Quotation with title
75
-
76
- "" You take the ''red pill'', you stay in Wonderland and
77
- "" I show you how deep the ''rabbit-hole'' goes.
78
-
79
- ! Quotation with item.
80
-
81
- "" Itemization in quotation
82
- "" * Level 1
83
-
84
- ! Table
85
-
86
- ||!Caption 1||!Caption 2||
87
- ||Content 1-1||Content 2-1||
88
- ||Content 1-2||Content 2-2||
89
-
90
- ! Only Title
91
-
92
- ! The last slide
93
-
94
- New themes are welcome
95
-
96
- * ==COMPLETENESS==
97
- ** OK: unsupported elements
98
- ** e.g. composite list
99
-
100
- New ideas are welcome too
@@ -1,127 +0,0 @@
1
- = Theme Bench
2
-
3
- : author
4
- Kouhei Sutou
5
-
6
- : institution
7
- COZMIXNG
8
-
9
- : date
10
- 2007/06/24
11
-
12
- : allotted-time
13
- 10m
14
-
15
- = What is this?
16
-
17
- For benchmarking a theme
18
-
19
- * includes basic elements
20
-
21
- = Itemization
22
-
23
- * Level 1-1
24
- * Level 2-1
25
- * Level 2-2
26
- * Level 3
27
- * Level 1-2
28
-
29
- = Enumeration
30
-
31
- (1) Level 1-1
32
- (1) Level 2-1
33
- (1) Level 2-2
34
- (1) Level 3
35
- (1) Level 1-2
36
-
37
- = Composite List
38
-
39
- (1) Level 1-1
40
- * Level 2-1
41
- * Level 2-2
42
- * Level 3
43
- (1) Level 1-2
44
-
45
- = Description List
46
-
47
- : Lavie
48
- The mascot of Rabbit
49
-
50
- : Shockers
51
- Rabbit User's Group
52
-
53
- = Desc. List + Enum.
54
-
55
- : Label 1
56
- * Level 1-1
57
- * Level 1-2
58
-
59
- : Label 2
60
- * Level 1-1
61
- * Level 1-2
62
-
63
- = Image
64
-
65
- # image
66
- # src = lavie.png
67
- # relative_height = 100
68
-
69
- = Image with caption
70
-
71
- # image
72
- # src = lavie.png
73
- # caption = Lavie
74
- # relative_height = 100
75
-
76
- = Pre-formatted Text
77
-
78
- require 'drb'
79
- uri =
80
- 'druby://localhost:10101/'
81
- rabbit =
82
- DRbObject.new_with_uri(uri)
83
- rabbit.move_to_next_if_can
84
-
85
- = Source
86
-
87
- # coderay ruby
88
- class You
89
- def love?(it)
90
- it == "Rabbit"
91
- end
92
- end
93
-
94
- = Quotation with title
95
-
96
- # blockquote
97
- # title = The Matrix
98
- You take the ((*red pill*)), you stay in Wonderland and
99
- I show you how deep the ((*rabbit-hole*)) goes.
100
-
101
- = Quotation with item.
102
-
103
- # blockquote
104
- Itemization in quotation
105
- * Level 1
106
-
107
- = Table
108
-
109
- # RT
110
- caption = A Simple Table
111
-
112
- Caption 1, Caption 2
113
-
114
- Content 1-1, Content 2-1
115
- Content 1-2, Content 2-2
116
-
117
- = Only Title
118
-
119
- = The last slide
120
-
121
- New themes are welcome
122
-
123
- * (('del:COMPLETENESS'))
124
- * OK: unsupported elements
125
- * e.g. composite list
126
-
127
- New ideas are welcome too