sdoc 2.0.1 → 2.2.0

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 (37) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +37 -0
  3. data/.gitignore +1 -0
  4. data/CHANGELOG.md +42 -5
  5. data/README.md +22 -4
  6. data/Rakefile +54 -2
  7. data/config.ru +30 -0
  8. data/lib/rdoc/generator/template/rails/_context.rhtml +5 -5
  9. data/lib/rdoc/generator/template/rails/_head.rhtml +2 -19
  10. data/lib/rdoc/generator/template/rails/_panel.rhtml +6 -3
  11. data/lib/rdoc/generator/template/rails/class.rhtml +7 -4
  12. data/lib/rdoc/generator/template/rails/file.rhtml +7 -4
  13. data/lib/rdoc/generator/template/rails/index.rhtml +10 -10
  14. data/lib/rdoc/generator/template/rails/resources/css/main.css +37 -10
  15. data/lib/rdoc/generator/template/rails/resources/css/panel.css +125 -8
  16. data/lib/rdoc/generator/template/rails/resources/css/reset.css +0 -1
  17. data/lib/rdoc/generator/template/rails/resources/i/arrow-down-current.svg +8 -0
  18. data/lib/rdoc/generator/template/rails/resources/i/arrow-right-current.svg +8 -0
  19. data/lib/rdoc/generator/template/rails/resources/js/main.js +17 -0
  20. data/lib/rdoc/generator/template/rails/resources/js/searchdoc.js +9 -21
  21. data/lib/rdoc/generator/template/rails/search_index.rhtml +6 -2
  22. data/lib/rdoc/generator/template/sdoc/class.rhtml +5 -6
  23. data/lib/rdoc/generator/template/sdoc/file.rhtml +5 -6
  24. data/lib/rdoc/generator/template/sdoc/index.rhtml +3 -4
  25. data/lib/rdoc/generator/template/sdoc/resources/css/reset.css +0 -1
  26. data/lib/rdoc/generator/template/sdoc/resources/js/searchdoc.js +0 -10
  27. data/lib/rdoc/generator/template/sdoc/resources/panel/index.html +2 -1
  28. data/lib/rdoc/generator/template/sdoc/search_index.rhtml +6 -2
  29. data/lib/sdoc/merge.rb +5 -28
  30. data/lib/sdoc/version.rb +1 -1
  31. data/netlify.toml +39 -0
  32. data/sdoc.gemspec +2 -1
  33. data/spec/helpers_spec.rb +2 -2
  34. data/spec/rdoc_generator_spec.rb +9 -9
  35. metadata +8 -5
  36. data/.travis.yml +0 -31
  37. data/lib/rdoc/generator/template/merge/index.rhtml +0 -12
@@ -1,5 +1,9 @@
1
- <html>
2
- <head>File index</head>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>File Index</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ </head>
3
7
  <body>
4
8
  <% @files.each do |file| %>
5
9
  <a href="../<%= file.path %>"><%= file.relative_name %></a>
@@ -1,10 +1,9 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
1
+ <!DOCTYPE html>
2
+ <html lang="en">
5
3
  <head>
6
4
  <title><%= h klass.full_name %></title>
7
5
  <meta http-equiv="Content-Type" content="text/html; charset=<%= @options.charset %>" />
6
+ <meta name="viewport" content="width=device-width,initial-scale=1">
8
7
  <%= include_template '_head.rhtml', {:rel_prefix => rel_prefix} %>
9
8
 
10
9
  <meta property="og:title" value="<%= klass.full_name %>">
@@ -45,8 +44,8 @@
45
44
  <% end %>
46
45
  </ul>
47
46
  </div>
48
- <div id="bodyContent">
47
+ <main id="bodyContent">
49
48
  <%= include_template '_context.rhtml', {:context => klass, :rel_prefix => rel_prefix} %>
50
- </div>
49
+ </main>
51
50
  </body>
52
51
  </html>
@@ -1,10 +1,9 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
1
+ <!DOCTYPE html>
2
+ <html lang="en">
5
3
  <head>
6
4
  <title><%= h file.name %></title>
7
5
  <meta http-equiv="Content-Type" content="text/html; charset=<%= @options.charset %>" />
6
+ <meta name="viewport" content="width=device-width,initial-scale=1">
8
7
  <%= include_template '_head.rhtml', {:rel_prefix => rel_prefix} %>
9
8
  </head>
10
9
 
@@ -22,8 +21,8 @@
22
21
  </ul>
23
22
  </div>
24
23
 
25
- <div id="bodyContent">
24
+ <main id="bodyContent">
26
25
  <%= include_template '_context.rhtml', {:context => file, :rel_prefix => rel_prefix} %>
27
- </div>
26
+ </main>
28
27
  </body>
29
28
  </html>
@@ -1,10 +1,9 @@
1
- <!DOCTYPE html
2
- PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
1
+ <!DOCTYPE html>
2
+ <html lang="en">
5
3
  <head>
6
4
  <meta http-equiv="Content-Type" content="text/html; charset=<%= @options.charset %>" />
7
5
  <title><%= @options.title %></title>
6
+ <meta name="viewport" content="width=device-width,initial-scale=1">
8
7
  </head>
9
8
  <frameset cols="300,*" frameborder="1" border="1" bordercolor="#999999" framespacing="1">
10
9
  <frame src="panel/index.html" title="Search" name="panel" />
@@ -13,7 +13,6 @@ table, caption, tbody, tfoot, thead, tr, th, td {
13
13
  margin: 0;
14
14
  padding: 0;
15
15
  border: 0;
16
- outline: 0;
17
16
  font-size: 100%;
18
17
  vertical-align: baseline;
19
18
  background: transparent;
@@ -32,10 +32,6 @@ Searchdoc.Navigation = new function() {
32
32
  case 74: // j
33
33
  case 75: // k
34
34
  case 76: // l
35
- case 67: // c - dvorak
36
- case 72: // h
37
- case 84: // t
38
- case 78: // n
39
35
  this.clearMoveTimeout();
40
36
  break;
41
37
  }
@@ -46,12 +42,10 @@ Searchdoc.Navigation = new function() {
46
42
  switch (e.keyCode) {
47
43
  case 37: //Event.KEY_LEFT:
48
44
  case 74: // j (qwerty)
49
- case 72: // h (dvorak)
50
45
  if (this.moveLeft()) e.preventDefault();
51
46
  break;
52
47
  case 38: //Event.KEY_UP:
53
48
  case 73: // i (qwerty)
54
- case 67: // c (dvorak)
55
49
  if (e.keyCode == 38 || e.ctrlKey) {
56
50
  if (this.moveUp()) e.preventDefault();
57
51
  this.startMoveTimeout(false);
@@ -59,23 +53,19 @@ Searchdoc.Navigation = new function() {
59
53
  break;
60
54
  case 39: //Event.KEY_RIGHT:
61
55
  case 76: // l (qwerty)
62
- case 78: // n (dvorak)
63
56
  if (this.moveRight()) e.preventDefault();
64
57
  break;
65
58
  case 40: //Event.KEY_DOWN:
66
59
  case 75: // k (qwerty)
67
- case 84: // t (dvorak)
68
60
  if (e.keyCode == 40 || e.ctrlKey) {
69
61
  if (this.moveDown()) e.preventDefault();
70
62
  this.startMoveTimeout(true);
71
63
  }
72
64
  break;
73
- case 9: //Event.KEY_TAB:
74
65
  case 13: //Event.KEY_RETURN:
75
66
  if (this.$current) this.select(this.$current);
76
67
  break;
77
68
  case 83: // s (qwerty)
78
- case 79: // o (dvorak)
79
69
  if (e.ctrlKey) {
80
70
  $('#search').focus();
81
71
  e.preventDefault();
@@ -1,7 +1,8 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en">
3
3
  <head>
4
- <title>search index</title>
4
+ <title>Search Index</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
5
6
  <link rel="stylesheet" href="../css/reset.css" type="text/css" media="screen" charset="utf-8" />
6
7
  <link rel="stylesheet" href="../css/panel.css" type="text/css" media="screen" charset="utf-8" />
7
8
  <script src="../js/search_index.js" type="text/javascript" charset="utf-8"></script>
@@ -1,5 +1,9 @@
1
- <html>
2
- <head>File index</head>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>File Index</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ </head>
3
7
  <body>
4
8
  <% @files.each do |file| %>
5
9
  <a href="../<%= file.path %>"><%= file.relative_name %></a>
data/lib/sdoc/merge.rb CHANGED
@@ -3,11 +3,7 @@ require 'pathname'
3
3
  require 'fileutils'
4
4
  require 'json'
5
5
 
6
- require 'sdoc/templatable'
7
-
8
6
  class SDoc::Merge
9
- include SDoc::Templatable
10
-
11
7
  FLAG_FILE = "created.rid"
12
8
 
13
9
  def initialize()
@@ -20,9 +16,6 @@ class SDoc::Merge
20
16
 
21
17
  def merge(options)
22
18
  parse_options options
23
-
24
- @outputdir = Pathname.new( @op_dir )
25
-
26
19
  check_directories
27
20
  setup_output_dir
28
21
  setup_names
@@ -30,7 +23,7 @@ class SDoc::Merge
30
23
  copy_docs if @urls.empty?
31
24
  merge_search_index
32
25
  merge_tree
33
- generate_index_file
26
+ copy_index_file
34
27
  end
35
28
 
36
29
  def parse_options(options)
@@ -56,7 +49,6 @@ class SDoc::Merge
56
49
  end
57
50
  end
58
51
  opts.parse! options
59
- @template_dir = Pathname.new(RDoc::Options.new.template_dir_for 'merge')
60
52
  @directories = options.dup
61
53
  end
62
54
 
@@ -70,7 +62,7 @@ class SDoc::Merge
70
62
  subtree = JSON.parse(data, :max_nesting => 0)
71
63
  item = [
72
64
  name,
73
- url + '/' + extract_index_path(dir),
65
+ url + '/index.html',
74
66
  '',
75
67
  append_path(subtree, url)
76
68
  ]
@@ -137,24 +129,8 @@ class SDoc::Merge
137
129
  end
138
130
  end
139
131
 
140
- def extract_index_path dir
141
- filename = File.join dir, 'index.html'
142
- content = File.open(filename) { |f| f.read }
143
- match = content.match(/<frame\s+src="([^"]+)"\s+name="docwin"/mi)
144
- if match
145
- match[1]
146
- else
147
- ''
148
- end
149
- end
150
-
151
- def generate_index_file
152
- templatefile = @template_dir + 'index.rhtml'
153
- outfile = @outputdir + 'index.html'
154
- url = @urls.empty? ? @names[0] : @urls[0]
155
- index_path = url + '/' + extract_index_path(@directories[0])
156
-
157
- render_template templatefile, binding(), outfile
132
+ def copy_index_file
133
+ FileUtils.cp File.join(@directories[0], 'index.html'), @op_dir
158
134
  end
159
135
 
160
136
  def setup_names
@@ -178,6 +154,7 @@ class SDoc::Merge
178
154
  FileUtils.cp_r File.join(dir, item), File.join(@op_dir, name, item), :preserve => true
179
155
  end
180
156
  end
157
+ FileUtils.cp File.join(dir, 'index.html'), File.join(@op_dir, name)
181
158
  end
182
159
  end
183
160
 
data/lib/sdoc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module SDoc
2
- VERSION = '2.0.1'
2
+ VERSION = '2.2.0'
3
3
  end
data/netlify.toml ADDED
@@ -0,0 +1,39 @@
1
+ [build]
2
+ command = "rake install && sdoc -o doc/public -T rails -f sdoc"
3
+ publish = "doc/public"
4
+
5
+ [build.processing]
6
+ skip_processing = false
7
+ [build.processing.css]
8
+ bundle = true
9
+ minify = true
10
+ [build.processing.js]
11
+ bundle = true
12
+ minify = true
13
+ [build.processing.html]
14
+ pretty_urls = true
15
+ [build.processing.images]
16
+ compress = true
17
+
18
+ [[headers]]
19
+ for = "*"
20
+ [headers.values]
21
+ X-Frame-Options = "DENY"
22
+ X-XSS-Protection = "1; mode=block"
23
+ X-Content-Type-Options = "nosniff"
24
+ Content-Security-Policy = '''
25
+ object-src 'none';
26
+ worker-src 'none';
27
+ block-all-mixed-content;
28
+ upgrade-insecure-requests;'''
29
+ Strict-Transport-Security = "max-age=15552000; includeSubDomains"
30
+ Referrer-Policy = "no-referrer-when-downgrade"
31
+ Cache-Control = "public, max-age=604800, s-max-age=604800"
32
+
33
+ [[headers]]
34
+ for = "/"
35
+
36
+ [[headers]]
37
+ for = "/*.(png|jpg|js|css|svg|woff|ttf|eot|ico|woff2)"
38
+ [headers.values]
39
+ Cache-Control = "public, max-age=31536000, s-max-age=31536000"
data/sdoc.gemspec CHANGED
@@ -23,7 +23,8 @@ Gem::Specification.new do |s|
23
23
  s.extra_rdoc_files = ["README.md"]
24
24
 
25
25
  s.add_runtime_dependency("rdoc", ">= 5.0")
26
- s.add_runtime_dependency("rack")
26
+
27
+ s.add_development_dependency("rack")
27
28
 
28
29
  s.files = `git ls-files`.split("\n")
29
30
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
data/spec/helpers_spec.rb CHANGED
@@ -19,14 +19,14 @@ describe SDoc::Helpers do
19
19
  ]
20
20
 
21
21
  strings.each do |(html, stripped)|
22
- @helpers.strip_tags(html).must_equal stripped
22
+ _(@helpers.strip_tags(html)).must_equal stripped
23
23
  end
24
24
  end
25
25
  end
26
26
 
27
27
  describe "#truncate" do
28
28
  it "should truncate the given text around a given length" do
29
- @helpers.truncate("Hello world", length: 5).must_equal "Hello."
29
+ _(@helpers.truncate("Hello world", length: 5)).must_equal "Hello."
30
30
  end
31
31
  end
32
32
  end
@@ -8,12 +8,12 @@ describe RDoc::Generator::SDoc do
8
8
  end
9
9
 
10
10
  it "should find sdoc generator" do
11
- RDoc::RDoc::GENERATORS.must_include 'sdoc'
11
+ _(RDoc::RDoc::GENERATORS).must_include 'sdoc'
12
12
  end
13
13
 
14
14
  it "should use sdoc generator" do
15
- @options.generator.must_equal RDoc::Generator::SDoc
16
- @options.generator_name.must_equal 'sdoc'
15
+ _(@options.generator).must_equal RDoc::Generator::SDoc
16
+ _(@options.generator_name).must_equal 'sdoc'
17
17
  end
18
18
 
19
19
  it "should parse github option" do
@@ -23,8 +23,8 @@ describe RDoc::Generator::SDoc do
23
23
  @parser.parse %w[--github]
24
24
  end
25
25
 
26
- err.wont_match(/^invalid options/)
27
- @options.github.must_equal true
26
+ _(err).wont_match(/^invalid options/)
27
+ _(@options.github).must_equal true
28
28
  end
29
29
 
30
30
  it "should parse github short-hand option" do
@@ -34,15 +34,15 @@ describe RDoc::Generator::SDoc do
34
34
  @parser.parse %w[-g]
35
35
  end
36
36
 
37
- err.wont_match(/^invalid options/)
38
- @options.github.must_equal true
37
+ _(err).wont_match(/^invalid options/)
38
+ _(@options.github).must_equal true
39
39
  end
40
40
 
41
41
  it "should display SDoc version on -v or --version" do
42
42
  out_full = `./bin/sdoc --version`
43
43
  out_short = `./bin/sdoc -v`
44
44
 
45
- out_short.strip.must_equal SDoc::VERSION
46
- out_full.strip.must_equal SDoc::VERSION
45
+ _(out_short.strip).must_equal SDoc::VERSION
46
+ _(out_full.strip).must_equal SDoc::VERSION
47
47
  end
48
48
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sdoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladimir Kolesnikov
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-11-09 00:00:00.000000000 Z
14
+ date: 2021-05-21 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rdoc
@@ -34,7 +34,7 @@ dependencies:
34
34
  - - ">="
35
35
  - !ruby/object:Gem::Version
36
36
  version: '0'
37
- type: :runtime
37
+ type: :development
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
@@ -50,8 +50,8 @@ extensions: []
50
50
  extra_rdoc_files:
51
51
  - README.md
52
52
  files:
53
+ - ".github/workflows/test.yml"
53
54
  - ".gitignore"
54
- - ".travis.yml"
55
55
  - CHANGELOG.md
56
56
  - Gemfile
57
57
  - LICENSE
@@ -59,8 +59,8 @@ files:
59
59
  - Rakefile
60
60
  - bin/sdoc
61
61
  - bin/sdoc-merge
62
+ - config.ru
62
63
  - lib/rdoc/discover.rb
63
- - lib/rdoc/generator/template/merge/index.rhtml
64
64
  - lib/rdoc/generator/template/rails/_context.rhtml
65
65
  - lib/rdoc/generator/template/rails/_head.rhtml
66
66
  - lib/rdoc/generator/template/rails/_panel.rhtml
@@ -73,7 +73,9 @@ files:
73
73
  - lib/rdoc/generator/template/rails/resources/css/panel.css
74
74
  - lib/rdoc/generator/template/rails/resources/css/reset.css
75
75
  - lib/rdoc/generator/template/rails/resources/favicon.ico
76
+ - lib/rdoc/generator/template/rails/resources/i/arrow-down-current.svg
76
77
  - lib/rdoc/generator/template/rails/resources/i/arrow-down.svg
78
+ - lib/rdoc/generator/template/rails/resources/i/arrow-right-current.svg
77
79
  - lib/rdoc/generator/template/rails/resources/i/arrow-right.svg
78
80
  - lib/rdoc/generator/template/rails/resources/i/search.svg
79
81
  - lib/rdoc/generator/template/rails/resources/i/tree_bg.svg
@@ -110,6 +112,7 @@ files:
110
112
  - lib/sdoc/merge.rb
111
113
  - lib/sdoc/templatable.rb
112
114
  - lib/sdoc/version.rb
115
+ - netlify.toml
113
116
  - sdoc.gemspec
114
117
  - spec/helpers_spec.rb
115
118
  - spec/rdoc_generator_spec.rb
data/.travis.yml DELETED
@@ -1,31 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- before_install:
4
- - gem update --system || gem update --system 2.7.8
5
- - gem install bundler || gem install bundler -v 1.17.3
6
- rvm:
7
- - 1.9.3
8
- - 2.0.0
9
- - 2.1.0
10
- - 2.2.10
11
- - 2.3.7
12
- - 2.4.4
13
- - 2.5.1
14
- - 2.6.0
15
- - ruby-head
16
- - jruby-head
17
- matrix:
18
- allow_failures:
19
- - env: rdoc=master
20
- - rvm: jruby-head
21
- include:
22
- - { rvm: 2.2.10, env: rdoc=master }
23
- - { rvm: 2.3.7, env: rdoc=master }
24
- - { rvm: 2.4.4, env: rdoc=master }
25
- - { rvm: 2.5.1, env: rdoc=master }
26
- - { rvm: 2.6.0, env: rdoc=master }
27
- - { rvm: ruby-head, env: rdoc=master }
28
- - { rvm: jruby-head, env: rdoc=master }
29
- notifications:
30
- email:
31
- - mail@zzak.io