rdoc-markdown 0.1.13 → 0.2
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +17 -4
- data/lib/rdoc/generator/markdown.rb +36 -7
- data/lib/rdoc/markdown/version.rb +1 -1
- data/lib/templates/classfile.md.erb +4 -4
- metadata +30 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 761747d3a9b32015fca088a58b871d0dbd1ab62b6239d2a4e6f6b3065a0e655e
|
4
|
+
data.tar.gz: e8948dfc980ee3a316699579d254fcb43c8f43549c07fd67ea7d4232bf16ae58
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b7cce412555f74e6bb4798cdc1fe03d304f694144608ba20c71e8ea77e4b1caa2d791001ee3b58824d740bc55fe5634f8174a4b54be33a64d12f971ce55da7f
|
7
|
+
data.tar.gz: efea582acb0a4012734c1cdd974987c52df2cac297ca4c773cf268e84f6af325ae95e9391a10c0f89bd31e25a990cd64f1c990ba02c35c5d2dc23573c12ed7e9
|
data/Gemfile.lock
CHANGED
@@ -1,25 +1,35 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rdoc-markdown (0.1.
|
4
|
+
rdoc-markdown (0.1.14)
|
5
|
+
activesupport (~> 7.0)
|
5
6
|
erb (~> 2.0)
|
6
7
|
extralite-bundle (~> 1.0)
|
7
8
|
rdoc (~> 6.0)
|
8
9
|
reverse_markdown (~> 2.0)
|
10
|
+
unindent (~> 1.0)
|
9
11
|
|
10
12
|
GEM
|
11
13
|
remote: https://rubygems.org/
|
12
14
|
specs:
|
15
|
+
activesupport (7.0.4)
|
16
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
17
|
+
i18n (>= 1.6, < 2)
|
18
|
+
minitest (>= 5.1)
|
19
|
+
tzinfo (~> 2.0)
|
13
20
|
ast (2.4.2)
|
14
21
|
cgi (0.3.3)
|
22
|
+
concurrent-ruby (1.1.10)
|
15
23
|
erb (2.2.3)
|
16
24
|
cgi
|
17
25
|
extralite-bundle (1.16)
|
26
|
+
i18n (1.12.0)
|
27
|
+
concurrent-ruby (~> 1.0)
|
18
28
|
json (2.6.2)
|
19
29
|
minitest (5.16.3)
|
20
|
-
nokogiri (1.13.
|
30
|
+
nokogiri (1.13.9-arm64-darwin)
|
21
31
|
racc (~> 1.4)
|
22
|
-
nokogiri (1.13.
|
32
|
+
nokogiri (1.13.9-x86_64-linux)
|
23
33
|
racc (~> 1.4)
|
24
34
|
parallel (1.22.1)
|
25
35
|
parser (3.1.2.1)
|
@@ -46,7 +56,7 @@ GEM
|
|
46
56
|
rubocop-ast (>= 1.20.1, < 2.0)
|
47
57
|
ruby-progressbar (~> 1.7)
|
48
58
|
unicode-display_width (>= 1.4.0, < 3.0)
|
49
|
-
rubocop-ast (1.
|
59
|
+
rubocop-ast (1.22.0)
|
50
60
|
parser (>= 3.1.1.0)
|
51
61
|
rubocop-performance (1.14.3)
|
52
62
|
rubocop (>= 1.7.0, < 2.0)
|
@@ -56,7 +66,10 @@ GEM
|
|
56
66
|
rubocop (= 1.35.1)
|
57
67
|
rubocop-performance (= 1.14.3)
|
58
68
|
stringio (3.0.2)
|
69
|
+
tzinfo (2.0.5)
|
70
|
+
concurrent-ruby (~> 1.0)
|
59
71
|
unicode-display_width (2.3.0)
|
72
|
+
unindent (1.0)
|
60
73
|
|
61
74
|
PLATFORMS
|
62
75
|
arm64-darwin-21
|
@@ -6,10 +6,15 @@ require "pathname"
|
|
6
6
|
require "erb"
|
7
7
|
require "reverse_markdown"
|
8
8
|
require 'extralite'
|
9
|
+
require 'active_support/core_ext/string/inflections'
|
10
|
+
require 'unindent'
|
9
11
|
|
10
12
|
class RDoc::Generator::Markdown
|
11
13
|
RDoc::RDoc.add_generator self
|
12
14
|
|
15
|
+
##
|
16
|
+
# Defines a constant for directory where templates could be found
|
17
|
+
|
13
18
|
TEMPLATE_DIR = File.expand_path(
|
14
19
|
File.join(File.dirname(__FILE__), "..", "..", "templates")
|
15
20
|
)
|
@@ -42,6 +47,9 @@ class RDoc::Generator::Markdown
|
|
42
47
|
# this alias is required for rdoc to work
|
43
48
|
alias_method :file_dir, :class_dir
|
44
49
|
|
50
|
+
##
|
51
|
+
# Initializer method for Rdoc::Generator::Markdown
|
52
|
+
|
45
53
|
def initialize(store, options)
|
46
54
|
@store = store
|
47
55
|
@options = options
|
@@ -51,6 +59,9 @@ class RDoc::Generator::Markdown
|
|
51
59
|
@classes = nil
|
52
60
|
end
|
53
61
|
|
62
|
+
##
|
63
|
+
# Generates markdown files and search index file
|
64
|
+
|
54
65
|
def generate
|
55
66
|
setup
|
56
67
|
|
@@ -72,6 +83,9 @@ class RDoc::Generator::Markdown
|
|
72
83
|
attr_reader :options
|
73
84
|
attr_reader :output_dir
|
74
85
|
|
86
|
+
##
|
87
|
+
# This method is used to output debugging information in case rdoc is run with --debug parameter
|
88
|
+
|
75
89
|
def debug(str = nil)
|
76
90
|
if $DEBUG_RDOC
|
77
91
|
puts "[rdoc-markdown] #{str}" if str
|
@@ -79,8 +93,12 @@ class RDoc::Generator::Markdown
|
|
79
93
|
end
|
80
94
|
end
|
81
95
|
|
82
|
-
|
83
|
-
|
96
|
+
##
|
97
|
+
# This class emits a search index for generated documentation as sqlite database
|
98
|
+
#
|
99
|
+
|
100
|
+
def emit_sqlite(name="index.db")
|
101
|
+
db = Extralite::Database.new("#{output_dir}/#{name}")
|
84
102
|
|
85
103
|
db.execute <<-SQL
|
86
104
|
create table contentIndex (
|
@@ -106,7 +124,7 @@ class RDoc::Generator::Markdown
|
|
106
124
|
result << {
|
107
125
|
name: "#{klass.full_name}.#{method.name}",
|
108
126
|
type: "Method",
|
109
|
-
path: turn_to_path(klass.full_name)
|
127
|
+
path: "#{turn_to_path(klass.full_name)}#meth-#{ActiveSupport::Inflector.parameterize method.name}"
|
110
128
|
}
|
111
129
|
end
|
112
130
|
|
@@ -114,7 +132,7 @@ class RDoc::Generator::Markdown
|
|
114
132
|
result << {
|
115
133
|
name: "#{klass.full_name}.#{const.name}",
|
116
134
|
type: "Constant",
|
117
|
-
path: turn_to_path(klass.full_name)
|
135
|
+
path: "#{turn_to_path(klass.full_name)}#const-#{ActiveSupport::Inflector.parameterize const.name}"
|
118
136
|
}
|
119
137
|
end
|
120
138
|
|
@@ -122,7 +140,7 @@ class RDoc::Generator::Markdown
|
|
122
140
|
result << {
|
123
141
|
name: "#{klass.full_name}.#{attr.name}",
|
124
142
|
type: "Attribute",
|
125
|
-
path: turn_to_path(klass.full_name)
|
143
|
+
path: "#{turn_to_path(klass.full_name)}#attr-#{ActiveSupport::Inflector.parameterize attr.name}"
|
126
144
|
}
|
127
145
|
end
|
128
146
|
end
|
@@ -158,16 +176,22 @@ class RDoc::Generator::Markdown
|
|
158
176
|
end
|
159
177
|
end
|
160
178
|
|
161
|
-
|
162
|
-
|
179
|
+
##
|
180
|
+
# Takes a class name and converts it into a Pathname
|
163
181
|
|
164
182
|
def turn_to_path(class_name)
|
165
183
|
"#{class_name.gsub("::", "/")}.md"
|
166
184
|
end
|
167
185
|
|
186
|
+
##
|
187
|
+
# Converts HTML string into a Markdown string with some cleaning and improvements.
|
188
|
+
|
168
189
|
def markdownify(input)
|
169
190
|
md= ReverseMarkdown.convert input, github_flavored: true
|
170
191
|
|
192
|
+
# unintent multiline strings
|
193
|
+
md.unindent!
|
194
|
+
|
171
195
|
# Replace .html to .md extension in all markdown links
|
172
196
|
md = md.gsub(/\[(.+)\]\((.+).html(.*)\)/) do |_|
|
173
197
|
match = Regexp.last_match
|
@@ -180,8 +204,13 @@ class RDoc::Generator::Markdown
|
|
180
204
|
md.gsub("[↑](#top)", "").lstrip
|
181
205
|
end
|
182
206
|
|
207
|
+
# Aliasing a shorter method name for use in templates
|
183
208
|
alias_method :h, :markdownify
|
184
209
|
|
210
|
+
##
|
211
|
+
# Prepares for document generation, by creating required folders and initializing variables.
|
212
|
+
# Could be called multiple times.
|
213
|
+
|
185
214
|
def setup
|
186
215
|
return if instance_variable_defined?(:@output_dir)
|
187
216
|
|
@@ -3,22 +3,22 @@
|
|
3
3
|
<% unless klass.constants.empty? %>
|
4
4
|
## Constants
|
5
5
|
***
|
6
|
-
<% klass.constants.sort_by { |x| x.name }.each do |const| %> **<%= const.name %>**
|
6
|
+
<% klass.constants.sort_by { |x| x.name }.each do |const| %> **<%= const.name %>** [[⚓]](#const-<%= ActiveSupport::Inflector.parameterize const.name%>)
|
7
7
|
<%= h const.description %>
|
8
8
|
<% end %><% end %>
|
9
9
|
<% unless klass.attributes.empty? %>
|
10
10
|
## Attributes
|
11
11
|
<% klass.attributes.sort_by { |x| x.name }.each do |attr| %>
|
12
|
-
**[<%= attr.rw %>]** <%= attr.name %>
|
12
|
+
**[<%= attr.rw %>]** <%= attr.name %> [[⚓]](#attr-<%= ActiveSupport::Inflector.parameterize attr.name %>)
|
13
13
|
<% end %><% end %>
|
14
14
|
<% unless klass_methods.empty? %>
|
15
15
|
## Public Class Methods
|
16
16
|
***
|
17
|
-
<% klass_methods.each do |method| %>### <%= method.name %><%= method.params %>
|
17
|
+
<% klass_methods.each do |method| %>### <%= method.name %><%= method.params %> [[⚓]](#meth-<%= ActiveSupport::Inflector.parameterize method.name %>)
|
18
18
|
|
19
19
|
<%= h method.description %><% end %><% end %>
|
20
20
|
<% unless instance_methods.empty? %>
|
21
21
|
## Public Instance Methods
|
22
|
-
<% instance_methods.each do |method| %>### <%= method.name %><%= method.params %>
|
22
|
+
<% instance_methods.each do |method| %>### <%= method.name %><%= method.params %> [[⚓]](#meth-<%= ActiveSupport::Inflector.parameterize method.name %>)
|
23
23
|
|
24
24
|
<%= h method.description %><% end %><% 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.
|
4
|
+
version: '0.2'
|
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-10-
|
11
|
+
date: 2022-10-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rdoc
|
@@ -66,6 +66,34 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: activesupport
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '7.0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '7.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: unindent
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.0'
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
98
|
name: minitest
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|