rabbit 3.0.3 → 3.0.4

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.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +31 -0
  3. data/Rakefile +51 -73
  4. data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
  5. data/doc/en/how-to-make/markdown.md +28 -2
  6. data/doc/en/how-to-make/rd.rd +28 -2
  7. data/doc/en/install/homebrew.rd +0 -15
  8. data/doc/en/news.rd +67 -0
  9. data/doc/en/sample/hiki/rabbit.hiki +1 -1
  10. data/doc/en/sample/markdown/rabbit.md +1 -1
  11. data/doc/en/sample/rd/rabbit.rd +1 -1
  12. data/doc/en/usage/rabbit-slide.rd +1 -1
  13. data/doc/en/usage/rabbit.rd +1 -1
  14. data/doc/ja/how-to-make/markdown.md +25 -5
  15. data/doc/ja/how-to-make/rd.rd +25 -5
  16. data/doc/ja/install/homebrew.rd +0 -15
  17. data/doc/ja/news.rd +67 -0
  18. data/doc/ja/usage/rabbit.rd +1 -1
  19. data/lib/rabbit/action.rb +1 -23
  20. data/lib/rabbit/canvas.rb +2 -10
  21. data/lib/rabbit/command/rabbit-slide.rb +1 -1
  22. data/lib/rabbit/command/rabbit.rb +6 -4
  23. data/lib/rabbit/cursor-manager.rb +5 -5
  24. data/lib/rabbit/element/text.rb +66 -0
  25. data/lib/rabbit/error.rb +9 -1
  26. data/lib/rabbit/frame.rb +22 -2
  27. data/lib/rabbit/front.rb +1 -1
  28. data/lib/rabbit/gesture/handler.rb +5 -8
  29. data/lib/rabbit/gtk.rb +44 -2
  30. data/lib/rabbit/info-window.rb +16 -2
  31. data/lib/rabbit/menu.rb +1 -3
  32. data/lib/rabbit/parser/ext/charty.rb +9 -0
  33. data/lib/rabbit/parser/markdown/converter.rb +3 -3
  34. data/lib/rabbit/parser/rd/ext/block-verbatim.rb +0 -12
  35. data/lib/rabbit/parser/rd/ext/inline-verbatim.rb +23 -0
  36. data/lib/rabbit/parser/wiki/output.rb +0 -6
  37. data/lib/rabbit/renderer/base.rb +1 -9
  38. data/lib/rabbit/renderer/display/base.rb +7 -5
  39. data/lib/rabbit/renderer/display/button-handler.rb +25 -10
  40. data/lib/rabbit/renderer/display/cursor.rb +18 -2
  41. data/lib/rabbit/renderer/display/drawing-area-base.rb +23 -7
  42. data/lib/rabbit/renderer/display/drawing-area-primitive.rb +35 -20
  43. data/lib/rabbit/renderer/display/gesture.rb +17 -1
  44. data/lib/rabbit/renderer/engine/cairo.rb +27 -13
  45. data/lib/rabbit/renderer/gl.rb +0 -81
  46. data/lib/rabbit/renderer/kernel.rb +0 -50
  47. data/lib/rabbit/renderer/offscreen.rb +1 -6
  48. data/lib/rabbit/renderer/printer.rb +2 -8
  49. data/lib/rabbit/renderer/screen.rb +6 -7
  50. data/lib/rabbit/source/argf.rb +17 -1
  51. data/lib/rabbit/source/base.rb +35 -10
  52. data/lib/rabbit/source/file.rb +17 -1
  53. data/lib/rabbit/source/uri.rb +17 -1
  54. data/lib/rabbit/theme/dark-gradation/dark-gradation.rb +2 -2
  55. data/lib/rabbit/theme/default-comment/default-comment.rb +1 -5
  56. data/lib/rabbit/theme/image-slide-number/property.rb +1 -1
  57. data/lib/rabbit/theme/title-background-image/title-background-image.rb +2 -2
  58. data/lib/rabbit/trackball.rb +21 -21
  59. data/lib/rabbit/utils.rb +5 -45
  60. data/lib/rabbit/version.rb +1 -1
  61. data/lib/rabbit/video-window.rb +6 -2
  62. data/po/en/rabbit.edit.po +24 -38
  63. data/po/en/rabbit.po +9 -21
  64. data/po/fr/rabbit.edit.po +24 -38
  65. data/po/fr/rabbit.po +9 -21
  66. data/po/ja/rabbit.edit.po +56 -58
  67. data/po/ja/rabbit.po +12 -21
  68. data/rabbit.gemspec +11 -14
  69. data/sample/gl-sample.rd +2 -4
  70. data/sample/rabbit/theme/gl-sample/gl-sample.rb +1 -1
  71. data/sample/rabbit-en.hiki +1 -1
  72. data/sample/rabbit-en.md +1 -1
  73. data/sample/rabbit-en.rd +1 -13
  74. data/sample/rabbit.rd +1 -13
  75. data/test/helper.rb +1 -2
  76. data/test/parser/test-markdown.rb +4 -3
  77. data/test/parser/test-rd.rb +3 -3
  78. data/test/parser/test-wiki.rb +2 -2
  79. data/test/test-readme-parser.rb +15 -12
  80. data/test/test-source.rb +2 -2
  81. metadata +35 -122
  82. data/doc/images/screenshots/en/blue-circle-raw.png +0 -0
  83. data/doc/images/screenshots/en/blue-circle.png +0 -0
  84. data/doc/images/screenshots/en/clear-blue-raw.png +0 -0
  85. data/doc/images/screenshots/en/clear-blue.png +0 -0
  86. data/doc/images/screenshots/en/cozmixng-raw.png +0 -0
  87. data/doc/images/screenshots/en/cozmixng.png +0 -0
  88. data/doc/images/screenshots/en/dark-gradation-raw.png +0 -0
  89. data/doc/images/screenshots/en/dark-gradation.png +0 -0
  90. data/doc/images/screenshots/en/day-white-raw.png +0 -0
  91. data/doc/images/screenshots/en/day-white.png +0 -0
  92. data/doc/images/screenshots/en/debian-raw.png +0 -0
  93. data/doc/images/screenshots/en/debian.png +0 -0
  94. data/doc/images/screenshots/en/green-circle-raw.png +0 -0
  95. data/doc/images/screenshots/en/green-circle.png +0 -0
  96. data/doc/images/screenshots/en/night-black-raw.png +0 -0
  97. data/doc/images/screenshots/en/night-black.png +0 -0
  98. data/doc/images/screenshots/en/rabbit-raw.png +0 -0
  99. data/doc/images/screenshots/en/rabbit.png +0 -0
  100. data/doc/images/screenshots/en/ranguba-raw.png +0 -0
  101. data/doc/images/screenshots/en/ranguba.png +0 -0
  102. data/doc/images/screenshots/en/red-frame-raw.png +0 -0
  103. data/doc/images/screenshots/en/red-frame.png +0 -0
  104. data/doc/images/screenshots/en/ruby-gnome2-raw.png +0 -0
  105. data/doc/images/screenshots/en/ruby-gnome2.png +0 -0
  106. data/doc/images/screenshots/en/rubykaigi2011-raw.png +0 -0
  107. data/doc/images/screenshots/en/rubykaigi2011.png +0 -0
  108. data/doc/images/screenshots/ja/blue-circle-raw.png +0 -0
  109. data/doc/images/screenshots/ja/blue-circle.png +0 -0
  110. data/doc/images/screenshots/ja/clear-blue-raw.png +0 -0
  111. data/doc/images/screenshots/ja/clear-blue.png +0 -0
  112. data/doc/images/screenshots/ja/cozmixng-raw.png +0 -0
  113. data/doc/images/screenshots/ja/cozmixng.png +0 -0
  114. data/doc/images/screenshots/ja/dark-gradation-raw.png +0 -0
  115. data/doc/images/screenshots/ja/dark-gradation.png +0 -0
  116. data/doc/images/screenshots/ja/day-white-raw.png +0 -0
  117. data/doc/images/screenshots/ja/day-white.png +0 -0
  118. data/doc/images/screenshots/ja/debian-raw.png +0 -0
  119. data/doc/images/screenshots/ja/debian.png +0 -0
  120. data/doc/images/screenshots/ja/green-circle-raw.png +0 -0
  121. data/doc/images/screenshots/ja/green-circle.png +0 -0
  122. data/doc/images/screenshots/ja/night-black-raw.png +0 -0
  123. data/doc/images/screenshots/ja/night-black.png +0 -0
  124. data/doc/images/screenshots/ja/rabbit-raw.png +0 -0
  125. data/doc/images/screenshots/ja/rabbit.png +0 -0
  126. data/doc/images/screenshots/ja/ranguba-raw.png +0 -0
  127. data/doc/images/screenshots/ja/ranguba.png +0 -0
  128. data/doc/images/screenshots/ja/red-frame-raw.png +0 -0
  129. data/doc/images/screenshots/ja/red-frame.png +0 -0
  130. data/doc/images/screenshots/ja/ruby-gnome2-raw.png +0 -0
  131. data/doc/images/screenshots/ja/ruby-gnome2.png +0 -0
  132. data/doc/images/screenshots/ja/rubykaigi2011-raw.png +0 -0
  133. data/doc/images/screenshots/ja/rubykaigi2011.png +0 -0
  134. data/lib/rabbit/parser/ext/emacs.rb +0 -121
  135. data/lib/rabbit/renderer/display/clutter-embed.rb +0 -606
  136. data/lib/rabbit/theme/clutter-comment/clutter-comment.rb +0 -76
  137. data/lib/rabbit/theme/clutter-comment/property.rb +0 -3
Binary file
@@ -1,121 +0,0 @@
1
- require 'rabbit/utils'
2
- require 'rabbit/parser/ext/escape'
3
-
4
- module Rabbit
5
- module Parser
6
- module Ext
7
- module Emacs
8
- include Element
9
- include GetText
10
-
11
- module_function
12
- def highlight(text, logger, mode_line=nil)
13
- begin
14
- require 'nokogiri'
15
- rescue
16
- logger.warning("Syntax highlight by Emacs requires nokogiri.")
17
- return nil
18
- end
19
-
20
- src_file = Tempfile.new("rabbit-emacs")
21
- src_file.open
22
- src_file.print("#{mode_line}\n") if mode_line
23
- src_file.print(text)
24
- src_file.close
25
- html_file = Tempfile.new("rabbit-emacs-html")
26
- args = [
27
- "--batch",
28
- "--eval",
29
- "(htmlize-file \"#{src_file.path}\" \"#{html_file.path}\")",
30
- ]
31
- if SystemRunner.run("emacs", *args)
32
- html_file.open
33
- html_to_rabbit(html_file.read, mode_line, logger)
34
- else
35
- nil
36
- end
37
- end
38
-
39
- def html_to_rabbit(html, mode_line, logger)
40
- html = remove_newline_around_pre(html)
41
- html = remove_mode_line(html, mode_line)
42
- node = Nokogiri::HTML(html)
43
- pre = find_element(node, "pre")
44
- address = find_element(node, "address")
45
- element = node_to_rabbit(pre, logger)
46
- if element
47
- logger.info(address.text) if address
48
- element
49
- else
50
- nil
51
- end
52
- end
53
-
54
- def remove_newline_around_pre(html)
55
- html = html.gsub(/<pre([^>]*)>\n/i, '<pre\1>')
56
- html.gsub(/\n<\/pre>/i, '</pre>')
57
- end
58
-
59
- def remove_mode_line(html, mode_line)
60
- return html if mode_line.nil?
61
- html.gsub(/<pre([^>]*)>([^\n]+\n)/i) do
62
- attributes = $1
63
- mode_line_html = $2
64
- mode_line_text = mode_line_html.gsub(/<.+?>/, '')
65
- if mode_line_text.strip == mode_line.strip
66
- "<pre#{attributes}>"
67
- else
68
- "<pre#{attributes}>#{mode_line_html}"
69
- end
70
- end
71
- end
72
-
73
- def find_element(node, name)
74
- node.css(name)[0]
75
- end
76
-
77
- def node_to_rabbit(node, logger)
78
- case node.name
79
- when "pre"
80
- element = SyntaxHighlightingBlock.new
81
- node.children.each do |child|
82
- if child.text?
83
- element << text_to_rabbit(child.text, "plain")
84
- else
85
- child_element = node_to_rabbit(child, logger)
86
- element << child_element unless child_element.nil?
87
- end
88
- end
89
- element
90
- when "span"
91
- p [node.text, node["class"]] if Utils.syntax_highlighting_debug?
92
- text_to_rabbit(node.text, normalize_class_name(node["class"]))
93
- else
94
- format = _("emacs: unsupported element name: %s")
95
- logger.warn(format % element.name)
96
- nil
97
- end
98
- end
99
-
100
- def normalize_class_name(name)
101
- case name
102
- when "comment-delimiter"
103
- "comment"
104
- when "keyword"
105
- "reserved"
106
- when "variable-name"
107
- "variable"
108
- else
109
- name
110
- end
111
- end
112
-
113
- def text_to_rabbit(text, type)
114
- escaped_text = Escape.escape_meta_character(text)
115
- text_element = SyntaxHighlightingText.new(Text.new(escaped_text))
116
- CustomTag.new("syntax-#{type}", text_element)
117
- end
118
- end
119
- end
120
- end
121
- end