rdoc-markdown 0.3.4 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f34bf7fc9e0588740713d04925521cfc098ce43b057c16e55ed9bcfb5b16030f
4
- data.tar.gz: 2180ab33878a7aa893dd9daded24048319a0670d7c7530789493d41f0fccdd6b
3
+ metadata.gz: cc9298f0cd81d54367d58d68aa1cacead0c80be2e43ea591f5fe4bbf29e44ca5
4
+ data.tar.gz: 15b4e889626b4b06fe2cd98e910f26d974d849690cb11a351e6fcceae55aeae1
5
5
  SHA512:
6
- metadata.gz: 7de709a0032575a1720aa6c99be7ed712471dc02c9c99c5bdcfc2bc8035691d7b633a5431b3575767c648d36b74cf6380e0162085578a59d7367629de902232b
7
- data.tar.gz: 4c8ff9eef4209d99aa9034ccf0e7ebaca5cc097316127ff24d4875d327595c28731e1dd44f39bb1f4e5367eead1c1348653d8f2cf5bae80d6d94afd093cf6ded
6
+ metadata.gz: 779545ebd9dfdb19e8c474ff3ae851586ac9bddf069e74a828fe9cc2c482e4c1ca22fd11330065c35419099612d8977001b63940d4f583d3f6de838ccdbde25d
7
+ data.tar.gz: 2f2306bff2ca81fd87487db0f771ce24ecd4fbe4ceb8dfe379b538ea2d11689c7d7133dd91f380ce9248bafd51d3ac09bb1477f18e7adde4731444092b296415
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rdoc-markdown (0.3.3)
4
+ rdoc-markdown (0.3.7)
5
5
  erb (~> 2.0)
6
6
  extralite-bundle (~> 1.0)
7
7
  rdoc (~> 6.0)
@@ -33,29 +33,29 @@ GEM
33
33
  rdiscount (2.2.7)
34
34
  rdoc (6.4.0)
35
35
  psych (>= 4.0.0)
36
- regexp_parser (2.6.0)
36
+ regexp_parser (2.6.1)
37
37
  reverse_markdown (2.1.1)
38
38
  nokogiri
39
39
  rexml (3.2.5)
40
- rubocop (1.35.1)
40
+ rubocop (1.39.0)
41
41
  json (~> 2.3)
42
42
  parallel (~> 1.10)
43
43
  parser (>= 3.1.2.1)
44
44
  rainbow (>= 2.2.2, < 4.0)
45
45
  regexp_parser (>= 1.8, < 3.0)
46
46
  rexml (>= 3.2.5, < 4.0)
47
- rubocop-ast (>= 1.20.1, < 2.0)
47
+ rubocop-ast (>= 1.23.0, < 2.0)
48
48
  ruby-progressbar (~> 1.7)
49
49
  unicode-display_width (>= 1.4.0, < 3.0)
50
50
  rubocop-ast (1.23.0)
51
51
  parser (>= 3.1.1.0)
52
- rubocop-performance (1.14.3)
52
+ rubocop-performance (1.15.0)
53
53
  rubocop (>= 1.7.0, < 2.0)
54
54
  rubocop-ast (>= 0.4.0)
55
55
  ruby-progressbar (1.11.0)
56
- standard (1.16.1)
57
- rubocop (= 1.35.1)
58
- rubocop-performance (= 1.14.3)
56
+ standard (1.18.0)
57
+ rubocop (= 1.39.0)
58
+ rubocop-performance (= 1.15.0)
59
59
  stringio (3.0.2)
60
60
  unicode-display_width (2.3.0)
61
61
  unindent (1.0)
data/README.md CHANGED
@@ -13,13 +13,16 @@ Install gem and add to application's Gemfile by executing:
13
13
  If bundler is not being used to manage dependencies, install the gem by executing:
14
14
 
15
15
  $ gem install rdoc-markdown
16
+ ## Examples
17
+ Find examples in [/examples](/example/) folder. You can regenerate examples by running `./bin/generate.sh`, it will produce examples based on file in `test/data/*` folder.
18
+
16
19
 
17
20
  ## Usage
18
21
  RDoc will auto-detect rdoc-markdown plugin if it was installed. You just need to instruct RDoc to produce markdown output instead of standard HTML through `format` parameter.
19
22
 
20
23
  Run following command in directory with ruby source code:
21
24
 
22
- `rdoc --format=markdown`
25
+ `rdoc --format=markdown --markup=markdown`
23
26
 
24
27
  This will produce a tree of markdown documents and search index in `/doc` folder. Every class in library will have it's own markdown file.
25
28
 
data/example/Bird.md ADDED
@@ -0,0 +1,17 @@
1
+ # class Bird [](#class-Bird) [](#top)
2
+ The base class for all birds.
3
+
4
+ ## Public Instance Methods
5
+ ### fly(string, number) -> bool [](#method-i-fly)
6
+ Fly somewhere.
7
+
8
+ Flying is the most critical feature of birds.
9
+
10
+ = Example
11
+
12
+ fly(:south, 70)
13
+
14
+ ### speak() { |text| ... } [](#method-i-speak)
15
+ Produce some noise.
16
+
17
+
data/example/Duck.md ADDED
@@ -0,0 +1,50 @@
1
+ # class Duck [](#class-Duck) [](#top)
2
+ A duck is a [`Waterfowl`](Waterfowl.html) [`Bird`](Bird.html).
3
+
4
+ Features:
5
+
6
+ bird::
7
+
8
+ - speak
9
+
10
+ - fly
11
+
12
+ waterfowl::
13
+
14
+ - swim
15
+
16
+ ## Constants
17
+ | Name | Description |
18
+ | ---- | ----------- |
19
+ | **MAX_VELOCITY[](#MAX_VELOCITY)** | Not documented |
20
+ ## Bird overrides ## Constants
21
+ | Name | Description |
22
+ | ---- | ----------- |
23
+ | **MAX_VELOCITY[](#MAX_VELOCITY)** | Not documented |
24
+ ## Public Instance Methods
25
+ ### speak() { |speech| ... } [](#method-i-speak)
26
+ [`Duck`](Duck.html) overrides generic implementation.
27
+
28
+ ## Duck extensions ## Constants
29
+ | Name | Description |
30
+ | ---- | ----------- |
31
+ | **MAX_VELOCITY[](#MAX_VELOCITY)** | Not documented |
32
+ ## Attributes
33
+ ### domestic[RW] [](#attribute-i-domestic)
34
+ True for domestic ducks.
35
+
36
+ ### rubber[R] [](#attribute-i-rubber)
37
+ True for rubber ducks.
38
+
39
+ ## Public Class Methods
40
+ ### new(domestic, rubber) [](#method-c-new)
41
+ Creates a new duck.
42
+
43
+ ### rubber_ducks() [](#method-c-rubber_ducks)
44
+ Returns list of all rubber ducks.
45
+
46
+ ## Public Instance Methods
47
+ ### useful? -> bool [](#method-i-useful-3F)
48
+ Checks if this duck is a useful one.
49
+
50
+
data/example/Object.md ADDED
@@ -0,0 +1,8 @@
1
+ # class Object [](#class-Object) [](#top)
2
+ ## Constants
3
+ | Name | Description |
4
+ | ---- | ----------- |
5
+ | **DEFAULT_DUCK_VELOCITY[](#DEFAULT_DUCK_VELOCITY)** | Default velocity for a flying duck.
6
+
7
+ |
8
+
@@ -0,0 +1,32 @@
1
+ # class RDoc::Generator::Markdown [](#class-RDoc::Generator::Markdown) [](#top)
2
+ ## Constants
3
+ | Name | Description |
4
+ | ---- | ----------- |
5
+ | **TEMPLATE_DIR[](#TEMPLATE_DIR)** | Defines a constant for directory where templates could be found
6
+
7
+ |
8
+ ## Attributes
9
+ ### base_dir[R] [](#attribute-i-base_dir)
10
+ The path to generate files into, combined with `--op` from the options for a full path.
11
+
12
+ ### classes[R] [](#attribute-i-classes)
13
+ Classes and modules to be used by this generator, not necessarily displayed.
14
+
15
+ ### store[R] [](#attribute-i-store)
16
+ The RDoc::Store that is the source of the generated content
17
+
18
+ ## Public Class Methods
19
+ ### new(store, options) [](#method-c-new)
20
+ Initializer method for Rdoc::Generator::Markdown
21
+
22
+ ## Public Instance Methods
23
+ ### class_dir() [](#method-i-class_dir)
24
+ Directory where generated class HTML files live relative to the output dir.
25
+
26
+ ### file_dir() [](#method-i-file_dir)
27
+ this alias is required for rdoc to work
28
+
29
+ ### generate() [](#method-i-generate)
30
+ Generates markdown files and search index file
31
+
32
+
@@ -0,0 +1,2 @@
1
+ # module RDoc::Generator [](#module-RDoc::Generator) [](#top)
2
+
@@ -0,0 +1,2 @@
1
+ # class RDoc::Markdown [](#class-RDoc::Markdown) [](#top)
2
+
data/example/RDoc.md ADDED
@@ -0,0 +1,2 @@
1
+ # module RDoc [](#module-RDoc) [](#top)
2
+
@@ -0,0 +1,6 @@
1
+ # module Rdoc::Markdown [](#module-Rdoc::Markdown) [](#top)
2
+ ## Constants
3
+ | Name | Description |
4
+ | ---- | ----------- |
5
+ | **VERSION[](#VERSION)** | Not documented |
6
+
data/example/Rdoc.md ADDED
@@ -0,0 +1,2 @@
1
+ # module Rdoc [](#module-Rdoc) [](#top)
2
+
@@ -0,0 +1,10 @@
1
+ # class TestGenerator [](#class-TestGenerator) [](#top)
2
+ ## Constants
3
+ | Name | Description |
4
+ | ---- | ----------- |
5
+ | **CLASSES[](#CLASSES)** | Not documented |
6
+ ## Public Instance Methods
7
+ ### run_generator(file, title) { |options| ... } [](#method-i-run_generator)
8
+ ### source_file() [](#method-i-source_file)
9
+ ### test_generator() [](#method-i-test_generator)
10
+
@@ -0,0 +1,8 @@
1
+ # module Waterfowl [](#module-Waterfowl) [](#top)
2
+ A mixin for waterfowl creatures.
3
+
4
+ ## Public Instance Methods
5
+ ### swim() [](#method-i-swim)
6
+ Swimming helper.
7
+
8
+
data/example/index.db ADDED
Binary file
@@ -62,6 +62,8 @@ class RDoc::Generator::Markdown
62
62
  # Generates markdown files and search index file
63
63
 
64
64
  def generate
65
+ # TODO: Make sure to set --markup parameter to 'markdown'.
66
+
65
67
  debug("Setting things up #{@output_dir}")
66
68
 
67
69
  setup
@@ -70,7 +72,7 @@ class RDoc::Generator::Markdown
70
72
 
71
73
  emit_classfiles
72
74
 
73
- debug("Generate index db file: #{output_dir}/index.db")
75
+ debug("Generate search index in #{output_dir}/index.db")
74
76
 
75
77
  emit_sqlite
76
78
  end
@@ -149,12 +151,14 @@ class RDoc::Generator::Markdown
149
151
 
150
152
  def emit_classfiles
151
153
  @classes.each do |klass|
152
- template = ERB.new File.read(File.join(TEMPLATE_DIR, "classfile.md.erb"))
154
+ template_content = File.read(File.join(TEMPLATE_DIR, "classfile.md.erb"))
155
+
156
+ template = ERB.new template_content, trim_mode: ">"
153
157
 
154
158
  out_file = Pathname.new("#{output_dir}/#{turn_to_path klass.full_name}")
155
159
  out_file.dirname.mkpath
156
160
 
157
- result = template.result(binding).squeeze.gsub("\n ", "\n").squeeze("\n")
161
+ result = template.result(binding).squeeze(" ")
158
162
 
159
163
  File.write(out_file, result)
160
164
  end
@@ -171,7 +175,14 @@ class RDoc::Generator::Markdown
171
175
  # Converts HTML string into a Markdown string with some cleaning and improvements.
172
176
 
173
177
  def markdownify(input)
174
- md = ReverseMarkdown.convert input
178
+ # TODO: I should be able to set unknown_tags to "raise" for debugging purposes. Probably through rdoc parameters?
179
+ # Allowed parameters:
180
+ # - pass_through - (default) Include the unknown tag completely into the result
181
+ # - drop - Drop the unknown tag and its content
182
+ # - bypass - Ignore the unknown tag but try to convert its content
183
+ # - raise - Raise an error to let you know
184
+
185
+ md = ReverseMarkdown.convert input, unknown_tags: :pass_through, github_flavored: true
175
186
 
176
187
  # unintent multiline strings
177
188
  md.unindent!
@@ -182,6 +193,8 @@ class RDoc::Generator::Markdown
182
193
 
183
194
  "[#{match[1]}](#{match[2]}.md#{match[3]})"
184
195
  end
196
+
197
+ md.gsub("=== ", "### ").gsub("== ", "## ")
185
198
  end
186
199
 
187
200
  # Aliasing a shorter method name for use in templates
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rdoc
4
4
  module Markdown
5
- VERSION = "0.3.4"
5
+ VERSION = "0.3.6"
6
6
  end
7
7
  end
@@ -1,20 +1,20 @@
1
- # <%= klass.type %> <%= klass.full_name.strip %> [](#<%= klass.aref.strip %>) [](#top)
1
+ # <%= klass.type %> <%= klass.full_name %> [](#<%= klass.aref.strip %>) [](#top)
2
2
  <%= h klass.description %>
3
3
  <% klass.each_section do |section, constants, attributes| %>
4
4
  <% if section.title %>## <%= section.title.strip %> <% end %>
5
5
  <% if section.comment %> <%=h section.description %><% end%>
6
6
  <% unless klass.constants.empty? %>
7
7
  ## Constants
8
- <% klass.constants.each do |const| %>
9
- ### <%= const.name.strip %>[](#<%= const.name.strip %>)
10
- <% if const.comment %> <%= h const.description %> <%else%> (Not documented) <% end %>
8
+ | Name | Description |
9
+ | ---- | ----------- |
10
+ <% klass.constants.each do |const| %> | **<%= const.name %>[](#<%= const.name %>)** | <% unless const.description.empty? %> <%= h const.description %> <%else%> Not documented <% end %> |
11
11
  <% end %>
12
12
  <% end %>
13
13
  <% unless attributes&.empty? %>
14
14
  ## Attributes
15
15
  <% attributes.each do |attr| %>
16
16
  ### <%= attr.name %>[<%= attr.rw %>] [](#<%= attr.aref.strip %>)
17
- <% if attr.comment %> <%= h attr.description %> <%else%> (Not documented) <% end %>
17
+ <% if attr.comment %> <%= h(attr.description) %> <%else%> Not documented <% end %>
18
18
  <% end %>
19
19
  <% end %>
20
20
  <% klass.methods_by_type(section).each do |type, visibilities| %>
@@ -23,8 +23,8 @@
23
23
  <% next if methods.empty? %>
24
24
  ## <%= visibility.capitalize %> <%= type.capitalize %> Methods
25
25
  <% methods.each do |method|%>
26
- ### <%= method.name.strip %><%= method.param_seq.strip %> [](#<%= method.aref.strip %>)
27
- <% if method.comment %> <%= h method.description %> <% else %> (Not documented) <%end%>
26
+ ### <%= method.name %><%= method.param_seq %> [](#<%= method.aref %>)
27
+ <% if method.comment %> <%= h(method.description) %> <% else %> Not documented <%end%>
28
28
  <% end %>
29
29
  <% end %>
30
30
  <% end %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdoc-markdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stanislav (Stas) Katkov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-05 00:00:00.000000000 Z
11
+ date: 2022-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdoc
@@ -166,6 +166,18 @@ files:
166
166
  - LICENSE
167
167
  - README.md
168
168
  - Rakefile
169
+ - example/Bird.md
170
+ - example/Duck.md
171
+ - example/Object.md
172
+ - example/RDoc.md
173
+ - example/RDoc/Generator.md
174
+ - example/RDoc/Generator/Markdown.md
175
+ - example/RDoc/Markdown.md
176
+ - example/Rdoc.md
177
+ - example/Rdoc/Markdown.md
178
+ - example/TestGenerator.md
179
+ - example/Waterfowl.md
180
+ - example/index.db
169
181
  - lib/markdown.rb
170
182
  - lib/rdoc/discover.rb
171
183
  - lib/rdoc/generator/markdown.rb