sdoc 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -121,7 +121,7 @@
121
121
  <div class="sectiontitle"><%= type.capitalize %> <%= visibility.to_s.capitalize %> methods</div>
122
122
  <% methods.each do |method| %>
123
123
  <div class="method">
124
- <div class="title" id="<%= method.aref %>">
124
+ <div class="title method-title" id="<%= method.aref %>">
125
125
  <% if method.call_seq %>
126
126
  <a name="<%= method.aref %>"></a><b><%= method.call_seq.gsub(/->/, '&rarr;') %></b>
127
127
  <% else %>
@@ -142,24 +142,26 @@
142
142
  </div>
143
143
  <% end %>
144
144
  <% if method.token_stream %>
145
- <% markup = method.markup_code %>
145
+ <% markup = method.sdoc_markup_code %>
146
146
  <div class="sourcecode">
147
147
  <p class="source-link">
148
148
  Source: <a href="javascript:toggleSource('<%= method.aref %>_source')" id="l_<%= method.aref %>_source">show</a>
149
149
  <%
150
- if options.github
151
150
  if markup =~ /File\s(\S+), line (\d+)/
152
151
  path = $1
153
152
  line = $2.to_i
154
153
  end
155
- github = github_url(path)
156
- if github
154
+ %>
155
+ <%
156
+ if options.github && path
157
+ github = github_url(path)
158
+ if github
157
159
  %>
158
160
  | <a href="<%= "#{github}#L#{line}" %>" target="_blank" class="github_url">on GitHub</a>
159
161
  <% end end %>
160
162
  </p>
161
- <div id="<%= method.aref %>_source" class="dyn-source x">
162
- <pre><%= method.markup_code %></pre>
163
+ <div id="<%= method.aref %>_source" class="dyn-source">
164
+ <pre><%= markup %></pre>
163
165
  </div>
164
166
  </div>
165
167
  <% end %>
@@ -147,7 +147,7 @@ ol li
147
147
  margin-bottom: 0;
148
148
  }
149
149
 
150
- pre
150
+ pre
151
151
  {
152
152
  margin-bottom: 1em;
153
153
  }
@@ -261,7 +261,7 @@ tt {
261
261
  font-size: 1.1em;
262
262
  color:#333;
263
263
  }
264
- .method .title {
264
+ .method .method-title {
265
265
  border-bottom: 1px dotted #666;
266
266
  padding: 0 0 0.15em 0;
267
267
  margin: 0 0 0.5em 0;
@@ -284,4 +284,43 @@ tt {
284
284
  .method .source-link
285
285
  {
286
286
  font-size: 0.85em;
287
- }
287
+ }
288
+
289
+ .ruby-constant {
290
+ color: teal;
291
+ }
292
+ .ruby-keyword {
293
+ color: #000;
294
+ font-weight: bold
295
+ }
296
+ .ruby-title {
297
+ color: #900;
298
+ font-weight: bold;
299
+ }
300
+ .ruby-ivar {
301
+ color: teal;
302
+ }
303
+ .ruby-operator {
304
+ color: #000;
305
+ font-weight: bold
306
+ }
307
+ .ruby-identifier {
308
+ color: #000;
309
+ }
310
+ .ruby-string,
311
+ .ruby-node {
312
+ color: #D14;
313
+ }
314
+ .ruby-comment {
315
+ color: #998;
316
+ font-style: italic;
317
+ }
318
+ .ruby-regexp {
319
+ color: #009926;
320
+ }
321
+ .ruby-value {
322
+ color: #990073;
323
+ }
324
+ .ruby-number {
325
+ color: #40A070;
326
+ }
@@ -51,7 +51,7 @@
51
51
  font-size: 12px;
52
52
  line-height: 29px;
53
53
  margin-left: 3px;
54
- color: #999;
54
+ color: #777;
55
55
  cursor: text;
56
56
  }
57
57
 
@@ -127,7 +127,7 @@
127
127
  .panel .result ul li h1 i,
128
128
  .panel .result ul li p.snippet
129
129
  {
130
- color: #999;
130
+ color: #777;
131
131
  }
132
132
 
133
133
  .panel .result ul li b
@@ -1,12 +1,8 @@
1
- function toggleSource( id )
1
+ function toggleSource(id)
2
2
  {
3
3
  var src = $('#' + id).toggle();
4
4
  var isVisible = src.is(':visible');
5
5
  $('#l_' + id).html(isVisible ? 'hide' : 'show');
6
- if (!src.data('syntax-higlighted')) {
7
- src.data('syntax-higlighted', 1);
8
- hljs.highlightBlock(src[0]);
9
- }
10
6
  }
11
7
 
12
8
  window.highlight = function(url) {
@@ -121,7 +121,7 @@
121
121
  <div class="sectiontitle"><%= type.capitalize %> <%= visibility.to_s.capitalize %> methods</div>
122
122
  <% methods.each do |method| %>
123
123
  <div class="method">
124
- <div class="title" id="<%= method.aref %>">
124
+ <div class="title method-title" id="<%= method.aref %>">
125
125
  <% if method.call_seq %>
126
126
  <a name="<%= method.aref %>"></a><b><%= method.call_seq.gsub(/->/, '&rarr;') %></b>
127
127
  <% else %>
@@ -142,24 +142,26 @@
142
142
  </div>
143
143
  <% end %>
144
144
  <% if method.token_stream %>
145
- <% markup = method.markup_code %>
145
+ <% markup = method.sdoc_markup_code %>
146
146
  <div class="sourcecode">
147
147
  <p class="source-link">
148
148
  Source: <a href="javascript:toggleSource('<%= method.aref %>_source')" id="l_<%= method.aref %>_source">show</a>
149
149
  <%
150
- if options.github
151
150
  if markup =~ /File\s(\S+), line (\d+)/
152
151
  path = $1
153
152
  line = $2.to_i
154
153
  end
155
- github = github_url(path)
156
- if github
154
+ %>
155
+ <%
156
+ if options.github && path
157
+ github = github_url(path)
158
+ if github
157
159
  %>
158
160
  | <a href="<%= "#{github}#L#{line}" %>" target="_blank" class="github_url">on GitHub</a>
159
161
  <% end end %>
160
162
  </p>
161
- <div id="<%= method.aref %>_source" class="dyn-source x">
162
- <pre><%= method.markup_code %></pre>
163
+ <div id="<%= method.aref %>_source" class="dyn-source">
164
+ <pre><%= markup %></pre>
163
165
  </div>
164
166
  </div>
165
167
  <% end %>
@@ -252,7 +252,7 @@ tt {
252
252
  font-size: 1.1em;
253
253
  color:#333;
254
254
  }
255
- .method .title {
255
+ .method .method-title {
256
256
  border-bottom: 1px dotted #666;
257
257
  padding: 0 0 0.15em 0;
258
258
  margin: 0 0 0.5em 0;
@@ -275,4 +275,43 @@ tt {
275
275
  .method .source-link
276
276
  {
277
277
  font-size: 0.85em;
278
- }
278
+ }
279
+
280
+ .ruby-constant {
281
+ color: teal;
282
+ }
283
+ .ruby-keyword {
284
+ color: #000;
285
+ font-weight: bold
286
+ }
287
+ .ruby-title {
288
+ color: #900;
289
+ font-weight: bold;
290
+ }
291
+ .ruby-ivar {
292
+ color: teal;
293
+ }
294
+ .ruby-operator {
295
+ color: #000;
296
+ font-weight: bold
297
+ }
298
+ .ruby-identifier {
299
+ color: #000;
300
+ }
301
+ .ruby-string,
302
+ .ruby-node {
303
+ color: #D14;
304
+ }
305
+ .ruby-comment {
306
+ color: #998;
307
+ font-style: italic;
308
+ }
309
+ .ruby-regexp {
310
+ color: #009926;
311
+ }
312
+ .ruby-value {
313
+ color: #990073;
314
+ }
315
+ .ruby-number {
316
+ color: #40A070;
317
+ }
@@ -1,4 +1,4 @@
1
- function toggleSource( id )
1
+ function toggleSource(id)
2
2
  {
3
3
  var src = $('#' + id).toggle();
4
4
  var isVisible = src.is(':visible');
@@ -31,6 +31,77 @@ class RDoc::Options
31
31
  attr_accessor :se_index
32
32
  end
33
33
 
34
+ class RDoc::AnyMethod
35
+
36
+ TITLE_AFTER = %w(def class module)
37
+
38
+ ##
39
+ # Turns the method's token stream into HTML.
40
+ #
41
+ # Prepends line numbers if +add_line_numbers+ is true.
42
+
43
+ def sdoc_markup_code
44
+ return '' unless @token_stream
45
+
46
+ src = ""
47
+ starting_title = false
48
+
49
+ @token_stream.each do |t|
50
+ next unless t
51
+
52
+ style = case t
53
+ when RDoc::RubyToken::TkFLOAT then 'ruby-number'
54
+ when RDoc::RubyToken::TkINTEGER then 'ruby-number'
55
+ when RDoc::RubyToken::TkCONSTANT then 'ruby-constant'
56
+ when RDoc::RubyToken::TkKW then 'ruby-keyword'
57
+ when RDoc::RubyToken::TkIVAR then 'ruby-ivar'
58
+ when RDoc::RubyToken::TkOp then 'ruby-operator'
59
+ when RDoc::RubyToken::TkId then 'ruby-identifier'
60
+ when RDoc::RubyToken::TkNode then 'ruby-node'
61
+ when RDoc::RubyToken::TkCOMMENT then 'ruby-comment'
62
+ when RDoc::RubyToken::TkREGEXP then 'ruby-regexp'
63
+ when RDoc::RubyToken::TkSTRING then 'ruby-string'
64
+ when RDoc::RubyToken::TkVal then 'ruby-value'
65
+ end
66
+
67
+ if RDoc::RubyToken::TkId === t && starting_title
68
+ starting_title = false
69
+ style = 'ruby-keyword ruby-title'
70
+ end
71
+
72
+ if RDoc::RubyToken::TkKW === t && TITLE_AFTER.include?(t.text)
73
+ starting_title = true
74
+ end
75
+
76
+ text = CGI.escapeHTML t.text
77
+
78
+ if style then
79
+ src << "<span class=\"#{style}\">#{text}</span>"
80
+ else
81
+ src << text
82
+ end
83
+ end
84
+
85
+ # dedent the source
86
+ indent = src.length
87
+ lines = src.lines.to_a
88
+ lines.shift if src =~ /\A.*#\ *File/i # remove '# File' comment
89
+ lines.each do |line|
90
+ if line =~ /^ *(?=\S)/
91
+ n = $&.length
92
+ indent = n if n < indent
93
+ break if n == 0
94
+ end
95
+ end
96
+ src.gsub!(/^#{' ' * indent}/, '') if indent > 0
97
+
98
+ add_line_numbers(src) if self.class.add_line_numbers
99
+
100
+ src
101
+ end
102
+
103
+ end
104
+
34
105
  class RDoc::Generator::SDoc
35
106
  RDoc::RDoc.add_generator self
36
107
 
@@ -85,7 +156,7 @@ class RDoc::Generator::SDoc
85
156
  options.se_index = false
86
157
  end
87
158
  opt.separator nil
88
-
159
+
89
160
  end
90
161
 
91
162
  def initialize(options)
@@ -94,7 +165,7 @@ class RDoc::Generator::SDoc
94
165
  @options.diagram = false
95
166
  end
96
167
  @github_url_cache = {}
97
-
168
+
98
169
  @template_dir = Pathname.new(options.template_dir)
99
170
  @basedir = Pathname.pwd.expand_path
100
171
  end
data/lib/sdoc/github.rb CHANGED
@@ -40,7 +40,7 @@ module SDoc::GitHub
40
40
  `git config --get remote.origin.url`
41
41
  end
42
42
  m = s.match(%r{github.com[/:](.*)\.git$})
43
- m ? "http://github.com/#{m[1]}/blob/" : false
43
+ m ? "https://github.com/#{m[1]}/blob/" : false
44
44
  end
45
45
 
46
46
  def path_relative_to_repository(path)
data/sdoc.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "sdoc"
5
- s.version = "0.3.4"
5
+ s.version = "0.3.5"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Vladimir Kolesnikov"]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sdoc
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 4
10
- version: 0.3.4
9
+ - 5
10
+ version: 0.3.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Vladimir Kolesnikov