murdoc 0.1.12 → 0.1.13
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 +7 -0
- data/.document +2 -2
- data/.travis.yml +2 -2
- data/Gemfile +1 -0
- data/Gemfile.lock +44 -4
- data/README.md +6 -4
- data/Rakefile +2 -1
- data/VERSION +1 -1
- data/bin/murdoc +12 -4
- data/bin/murdoc-strip-comments +28 -0
- data/lib/murdoc.rb +24 -3
- data/lib/murdoc/annotator.rb +23 -10
- data/lib/murdoc/languages/html.rb +43 -0
- data/markup/stylesheet.css +84 -16
- data/markup/template_multifile.haml +17 -0
- data/murdoc.gemspec +18 -18
- metadata +94 -76
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ff69e5073e356e1352ca86544832cf54a4aa59fd
|
4
|
+
data.tar.gz: 157c3522d529acf574fb7bca9c673dc5fde93d23
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d48ee92831d38fb6299f1c1ba6fffc56579a4b0b99e8235d9813c50daec1146b9d2d1c0eca56222f69280ffe90c2eb8b7320c67ebec150619ff26036dd84f837
|
7
|
+
data.tar.gz: 403188b4870aa15f253dd6222f9f5e49e8751965b15d2e1a7b11836d8d165be191103fdd2b655d7290741e6a560ef340a1f8ff6958d45bd83f4cd0bb8f86fc95
|
data/.document
CHANGED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,16 +1,54 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
addressable (2.3.8)
|
5
|
+
builder (3.2.2)
|
6
|
+
descendants_tracker (0.0.4)
|
7
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
4
8
|
diff-lcs (1.1.2)
|
5
|
-
|
9
|
+
faraday (0.9.1)
|
10
|
+
multipart-post (>= 1.2, < 3)
|
11
|
+
git (1.2.9.1)
|
12
|
+
github_api (0.12.3)
|
13
|
+
addressable (~> 2.3)
|
14
|
+
descendants_tracker (~> 0.0.4)
|
15
|
+
faraday (~> 0.8, < 0.10)
|
16
|
+
hashie (>= 3.3)
|
17
|
+
multi_json (>= 1.7.5, < 2.0)
|
18
|
+
nokogiri (~> 1.6.3)
|
19
|
+
oauth2
|
6
20
|
haml (3.0.24)
|
7
|
-
|
8
|
-
|
21
|
+
hashie (3.4.2)
|
22
|
+
highline (1.7.2)
|
23
|
+
jeweler (2.0.1)
|
24
|
+
builder
|
25
|
+
bundler (>= 1.0)
|
9
26
|
git (>= 1.2.5)
|
27
|
+
github_api
|
28
|
+
highline (>= 1.6.15)
|
29
|
+
nokogiri (>= 1.5.10)
|
10
30
|
rake
|
31
|
+
rdoc
|
32
|
+
json (1.8.3)
|
33
|
+
jwt (1.5.1)
|
11
34
|
kramdown (0.13.2)
|
12
|
-
|
35
|
+
mini_portile (0.6.2)
|
36
|
+
multi_json (1.11.2)
|
37
|
+
multi_xml (0.5.5)
|
38
|
+
multipart-post (2.0.0)
|
39
|
+
nokogiri (1.6.6.2)
|
40
|
+
mini_portile (~> 0.6.0)
|
41
|
+
oauth2 (1.0.0)
|
42
|
+
faraday (>= 0.8, < 0.10)
|
43
|
+
jwt (~> 1.0)
|
44
|
+
multi_json (~> 1.3)
|
45
|
+
multi_xml (~> 0.5)
|
46
|
+
rack (~> 1.2)
|
47
|
+
rack (1.6.4)
|
48
|
+
rake (10.4.2)
|
13
49
|
rdiscount (1.6.8)
|
50
|
+
rdoc (4.2.0)
|
51
|
+
json (~> 1.4)
|
14
52
|
rspec (2.4.0)
|
15
53
|
rspec-core (~> 2.4.0)
|
16
54
|
rspec-expectations (~> 2.4.0)
|
@@ -19,6 +57,7 @@ GEM
|
|
19
57
|
rspec-expectations (2.4.0)
|
20
58
|
diff-lcs (~> 1.1.2)
|
21
59
|
rspec-mocks (2.4.0)
|
60
|
+
thread_safe (0.3.5)
|
22
61
|
|
23
62
|
PLATFORMS
|
24
63
|
ruby
|
@@ -27,5 +66,6 @@ DEPENDENCIES
|
|
27
66
|
haml (~> 3.0.0)
|
28
67
|
jeweler
|
29
68
|
kramdown
|
69
|
+
rake
|
30
70
|
rdiscount (~> 1.6.5)
|
31
71
|
rspec (~> 2.4.0)
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Murdoc --
|
1
|
+
Murdoc -- ruby documenter
|
2
2
|
==============================
|
3
3
|
|
4
4
|
Murdoc is a doccu-style annotated documentation generator.
|
@@ -17,11 +17,13 @@ Dependencies
|
|
17
17
|
Example
|
18
18
|
=======
|
19
19
|
|
20
|
-
See example at [GH.pages](http://
|
20
|
+
See example at [GH.pages](http://jsus.github.com/murdoc).
|
21
21
|
|
22
|
-
|
22
|
+
See also:
|
23
|
+
* [example](http://jsus.github.com/murdoc/docs) of integration with [jsus](http://github.com/jsus/jsus)
|
24
|
+
* [LSD documentation guides](https://github.com/lovelyscalabledrawings/lsd-guides/tree/gh-pages/grid)
|
23
25
|
|
24
26
|
License and authorship
|
25
27
|
======================
|
26
28
|
|
27
|
-
|
29
|
+
Public domain, see UNLICENSE file.
|
data/Rakefile
CHANGED
@@ -19,6 +19,7 @@ Jeweler::Tasks.new do |gem|
|
|
19
19
|
gem.description = "Annotated documentation generator, see README.md for details"
|
20
20
|
gem.email = "markizko@gmail.com"
|
21
21
|
gem.authors = ["Mark Abramov"]
|
22
|
+
gem.executables = ["murdoc", "murdoc-strip-comments"]
|
22
23
|
end
|
23
24
|
Jeweler::RubygemsDotOrgTasks.new
|
24
25
|
|
@@ -35,7 +36,7 @@ end
|
|
35
36
|
|
36
37
|
task :default => :spec
|
37
38
|
|
38
|
-
require '
|
39
|
+
require 'rdoc/task'
|
39
40
|
Rake::RDocTask.new do |rdoc|
|
40
41
|
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
41
42
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.13
|
data/bin/murdoc
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require "optparse"
|
3
|
-
$: << "
|
3
|
+
$: << File.expand_path("../../lib/", __FILE__)
|
4
4
|
require "murdoc"
|
5
5
|
|
6
6
|
options = {}
|
7
7
|
|
8
8
|
option_parser = OptionParser.new do |opts|
|
9
|
-
opts.banner = "murdoc <input file> <output html>"
|
9
|
+
opts.banner = "murdoc <input file> <output html>"
|
10
10
|
|
11
11
|
opts.on("--[no-]syntax-highlight", "Highlight syntax using pygments") do |h|
|
12
12
|
options[:highlight_source] = h
|
@@ -20,6 +20,10 @@ option_parser = OptionParser.new do |opts|
|
|
20
20
|
options[:stylesheet] = s
|
21
21
|
end
|
22
22
|
|
23
|
+
opts.on("--do-not-count-comment-lines") do |dncl|
|
24
|
+
options[:do_not_count_comment_lines] = dncl
|
25
|
+
end
|
26
|
+
|
23
27
|
opts.on_tail("-h", "--help", "Show this message") do
|
24
28
|
puts opts
|
25
29
|
exit
|
@@ -32,5 +36,9 @@ option_parser.parse!
|
|
32
36
|
if ARGV.size < 2
|
33
37
|
puts option_parser
|
34
38
|
else
|
35
|
-
|
36
|
-
|
39
|
+
if ARGV.size == 2
|
40
|
+
Murdoc.generate_from_file(ARGV[0], ARGV[1], options)
|
41
|
+
else
|
42
|
+
Murdoc.generate_from_multiple_files(ARGV[0..-2], ARGV[-1], options)
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require "optparse"
|
3
|
+
$: << "./lib/"
|
4
|
+
require "murdoc"
|
5
|
+
|
6
|
+
options = {}
|
7
|
+
source_type = nil
|
8
|
+
|
9
|
+
option_parser = OptionParser.new do |opts|
|
10
|
+
opts.banner = "murdoc-strip-comments [input file]\n\nWhen no input file is provided, murdoc-strip-comments uses standard input stream."
|
11
|
+
|
12
|
+
opts.on("-t", "--type TYPE", "Source type (html, ruby, javascript)") do |st|
|
13
|
+
source_type = st
|
14
|
+
end
|
15
|
+
|
16
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
17
|
+
puts opts
|
18
|
+
exit
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
option_parser.parse!
|
24
|
+
|
25
|
+
annotator = Murdoc::Annotator.from_file(ARGV[0] || "/dev/stdin", source_type, {})
|
26
|
+
annotator.paragraphs.each do |paragraph|
|
27
|
+
puts paragraph.source
|
28
|
+
end
|
data/lib/murdoc.rb
CHANGED
@@ -14,21 +14,42 @@ module Murdoc
|
|
14
14
|
options = default_options.merge(options)
|
15
15
|
annotator = Annotator.from_file(input, nil, options)
|
16
16
|
File.open(output, "w+") do |f|
|
17
|
-
f.puts Formatter.new(options[:template]).render(:paragraphs => annotator.paragraphs,
|
17
|
+
f.puts Formatter.new(options[:template]).render(:paragraphs => annotator.paragraphs,
|
18
|
+
:stylesheet => File.read(options[:stylesheet]))
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.generate_from_multiple_files(input_files, output, options = {})
|
23
|
+
options = default_options_for_multiple_files.merge(options)
|
24
|
+
annotators = input_files.map {|fn| Annotator.from_file(fn, nil, options) }
|
25
|
+
File.open(output, "w+") do |f|
|
26
|
+
f.puts Formatter.new(options[:template]).render(:annotators => annotators,
|
27
|
+
:filenames => input_files,
|
28
|
+
:stylesheet => File.read(options[:stylesheet]))
|
18
29
|
end
|
19
30
|
end
|
20
31
|
|
21
32
|
def self.default_options
|
22
|
-
markup_dir = File.dirname(__FILE__)+ "/../markup"
|
23
33
|
@@options ||= {
|
24
34
|
:template => "#{markup_dir}/template.haml",
|
25
35
|
:stylesheet => "#{markup_dir}/stylesheet.css"
|
26
36
|
}
|
27
37
|
end
|
38
|
+
|
39
|
+
def self.default_options_for_multiple_files
|
40
|
+
@@options ||= {
|
41
|
+
:template => "#{markup_dir}/template_multifile.haml",
|
42
|
+
:stylesheet => "#{markup_dir}/stylesheet.css"
|
43
|
+
}
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.markup_dir
|
47
|
+
File.expand_path("../..", __FILE__)+ "/markup"
|
48
|
+
end
|
28
49
|
end
|
29
50
|
|
30
51
|
require "murdoc/annotator"
|
31
52
|
require "murdoc/paragraph"
|
32
53
|
require "murdoc/formatter"
|
33
54
|
|
34
|
-
Dir["#{File.dirname(File.expand_path(__FILE__))}/murdoc/languages/*.rb"].each {|lang| require lang }
|
55
|
+
Dir["#{File.dirname(File.expand_path(__FILE__))}/murdoc/languages/*.rb"].each {|lang| require lang }
|
data/lib/murdoc/annotator.rb
CHANGED
@@ -32,7 +32,9 @@ module Murdoc
|
|
32
32
|
# You may also initialize annotator from file, it will even try to detect the
|
33
33
|
# source type from extension.
|
34
34
|
def self.from_file(filename, source_type = nil, options = {})
|
35
|
-
self.new(File.read(filename),
|
35
|
+
self.new(File.read(filename),
|
36
|
+
source_type || detect_source_type_from_filename(filename),
|
37
|
+
options)
|
36
38
|
end
|
37
39
|
|
38
40
|
def source_type
|
@@ -51,6 +53,7 @@ module Murdoc
|
|
51
53
|
|
52
54
|
# splitting stuff into lines and setting cursor into initial position
|
53
55
|
i = 0
|
56
|
+
source_lines_counter = 0
|
54
57
|
while i < lines.size
|
55
58
|
comment_lines = []
|
56
59
|
# get single line comments
|
@@ -75,22 +78,32 @@ module Murdoc
|
|
75
78
|
end
|
76
79
|
|
77
80
|
# getting source lines
|
78
|
-
starting_line = i
|
79
81
|
source_lines = []
|
82
|
+
starting_line = if options[:do_not_count_comment_lines]
|
83
|
+
source_lines_counter
|
84
|
+
else
|
85
|
+
i
|
86
|
+
end
|
87
|
+
|
80
88
|
while i < lines.size && !is_comment(lines[i])
|
81
89
|
source_lines << lines[i]
|
90
|
+
source_lines_counter += 1
|
82
91
|
i += 1
|
83
92
|
end
|
84
93
|
|
85
94
|
# post-processing: stripping comments and removing empty strings from beginnings and ends
|
86
95
|
starting_line += postprocess_source(source_lines)
|
87
|
-
postprocess_comments(comment_lines)
|
96
|
+
postprocess_comments(comment_lines)
|
88
97
|
# clear comment lines if that's commented out code
|
89
98
|
comment_lines.clear if comment_lines[0] =~ /^:code:$/
|
90
|
-
|
99
|
+
|
91
100
|
# if we have comments or source
|
92
101
|
if comment_lines.size > 0 || source_lines.size > 0
|
93
|
-
@paragraphs << Paragraph.new(source_lines.join("\n"),
|
102
|
+
@paragraphs << Paragraph.new(source_lines.join("\n"),
|
103
|
+
comment_lines.join("\n"),
|
104
|
+
starting_line,
|
105
|
+
source_type,
|
106
|
+
options)
|
94
107
|
end
|
95
108
|
end
|
96
109
|
end
|
@@ -99,7 +112,7 @@ module Murdoc
|
|
99
112
|
def source
|
100
113
|
@source
|
101
114
|
end
|
102
|
-
|
115
|
+
|
103
116
|
protected
|
104
117
|
def comment_symbols
|
105
118
|
super || {}
|
@@ -131,7 +144,7 @@ module Murdoc
|
|
131
144
|
comment_lines.delete_at(-1) while comment_lines.size > 0 && comment_lines[-1].empty?
|
132
145
|
end
|
133
146
|
|
134
|
-
|
147
|
+
|
135
148
|
# Removes blank lines from beginning and end of source lines
|
136
149
|
# returns starting offset for source (number of lines deleted from beginning)
|
137
150
|
def postprocess_source(source_lines)
|
@@ -140,11 +153,11 @@ module Murdoc
|
|
140
153
|
starting_offset += 1
|
141
154
|
source_lines.delete_at(0)
|
142
155
|
end
|
143
|
-
|
156
|
+
|
144
157
|
while source_lines.size > 0 && source_lines[-1] =~ /^\s*$/
|
145
|
-
source_lines.delete_at(-1)
|
158
|
+
source_lines.delete_at(-1)
|
146
159
|
end
|
147
160
|
starting_offset
|
148
161
|
end
|
149
162
|
end
|
150
|
-
end
|
163
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# Html language module
|
2
|
+
module Murdoc
|
3
|
+
module Languages
|
4
|
+
module Html
|
5
|
+
module Annotator
|
6
|
+
def self.included(base)
|
7
|
+
base.extend ClassMethods
|
8
|
+
end
|
9
|
+
|
10
|
+
module ClassMethods
|
11
|
+
protected
|
12
|
+
def detect_source_type_from_filename(filename)
|
13
|
+
if File.extname(filename) == ".html"
|
14
|
+
:html
|
15
|
+
else
|
16
|
+
super if defined?(super)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
module CommentSymbols
|
23
|
+
protected
|
24
|
+
def comment_symbols
|
25
|
+
if source_type == "html"
|
26
|
+
{:single_line => nil, :multiline => {:begin => "<!--", :end => "-->"}}
|
27
|
+
else
|
28
|
+
super if defined?(super)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
class Annotator
|
36
|
+
include Languages::Html::Annotator
|
37
|
+
include Languages::Html::CommentSymbols
|
38
|
+
end
|
39
|
+
|
40
|
+
class Paragraph
|
41
|
+
include Languages::Html::CommentSymbols
|
42
|
+
end
|
43
|
+
end
|
data/markup/stylesheet.css
CHANGED
@@ -6,6 +6,10 @@ p, h1, h2, h3, ol, li, ul, dt, dd, dl, body, html {
|
|
6
6
|
padding: 0;
|
7
7
|
margin: 0; }
|
8
8
|
|
9
|
+
p + br {
|
10
|
+
display: none;
|
11
|
+
}
|
12
|
+
|
9
13
|
body {
|
10
14
|
width: 40%;
|
11
15
|
padding-left: 2.5%;
|
@@ -27,7 +31,7 @@ body > * {
|
|
27
31
|
padding-right: 6%; }
|
28
32
|
|
29
33
|
html {
|
30
|
-
background: #
|
34
|
+
background: #FFC873; }
|
31
35
|
|
32
36
|
header {
|
33
37
|
background: rgba(255, 255, 255, 0.1);
|
@@ -41,10 +45,23 @@ header {
|
|
41
45
|
width: 5em;
|
42
46
|
font-weight: bold; }
|
43
47
|
|
44
|
-
section
|
48
|
+
section {
|
45
49
|
float: left;
|
46
50
|
clear: both;
|
47
|
-
width:
|
51
|
+
width: 85%; }
|
52
|
+
|
53
|
+
section iframe {
|
54
|
+
width: 260%;
|
55
|
+
height: 250px;
|
56
|
+
border: 1px solid #333;
|
57
|
+
margin-bottom: 1em;
|
58
|
+
margin-top: 1.5em;
|
59
|
+
}
|
60
|
+
|
61
|
+
section iframe.high {
|
62
|
+
height: 300px;
|
63
|
+
}
|
64
|
+
|
48
65
|
|
49
66
|
p, dl, li {
|
50
67
|
color: #665504;
|
@@ -57,12 +74,42 @@ a {
|
|
57
74
|
a:visited {
|
58
75
|
color: #A64E00; }
|
59
76
|
|
60
|
-
p {
|
77
|
+
p + p, h2 + p, h1 + p, ul + p, ol + p{
|
61
78
|
margin-top: 1.5em; }
|
62
79
|
|
80
|
+
p code {
|
81
|
+
background-color: rgba(200, 220, 200, 0.2);
|
82
|
+
display: inline-block;
|
83
|
+
-moz-border-radius: 4px;
|
84
|
+
-webkit-border-radius: 4px;
|
85
|
+
border-radius: 4px;
|
86
|
+
padding: 0 0.2em;
|
87
|
+
font-family: "monaco", "Courier New", Courier, monospace, serif;
|
88
|
+
font-size:0.8em;
|
89
|
+
line-height:1.5em;
|
90
|
+
}
|
91
|
+
p:last-child {
|
92
|
+
margin-bottom: 1.5em;
|
93
|
+
}
|
94
|
+
|
63
95
|
h1 {
|
64
96
|
font-size: 2em; }
|
65
97
|
|
98
|
+
h1 + ul {
|
99
|
+
float: right;
|
100
|
+
width: 140%;
|
101
|
+
margin-right: -160%;
|
102
|
+
margin-top: -2em;
|
103
|
+
}
|
104
|
+
|
105
|
+
h1 + ul li {
|
106
|
+
display: inline;
|
107
|
+
}
|
108
|
+
|
109
|
+
h1 + ul li + li{
|
110
|
+
margin-left: 1em;
|
111
|
+
}
|
112
|
+
|
66
113
|
h2 {
|
67
114
|
font-size: 1em; }
|
68
115
|
|
@@ -72,13 +119,18 @@ h1, h2, h3 {
|
|
72
119
|
ol, li {
|
73
120
|
margin-left: 1em; }
|
74
121
|
|
75
|
-
body > p, body > h1
|
122
|
+
body > p, body > h1 {
|
76
123
|
clear: left; }
|
77
124
|
|
125
|
+
body > h2 {
|
126
|
+
clear: both;
|
127
|
+
}
|
128
|
+
|
78
129
|
header {
|
79
130
|
padding-bottom: 1em;
|
80
131
|
overflow: hidden; }
|
81
132
|
|
133
|
+
|
82
134
|
dl {
|
83
135
|
clear: left; }
|
84
136
|
dl dt, dl dd {
|
@@ -91,29 +143,45 @@ dl {
|
|
91
143
|
figure {
|
92
144
|
display: block;
|
93
145
|
float: right;
|
94
|
-
margin-right: -
|
146
|
+
margin-right: -135%;
|
95
147
|
width: 122.75%;
|
96
148
|
clear: right;
|
97
|
-
|
149
|
+
margin-top: -0.1em;
|
150
|
+
padding: 0 0 3em; }
|
98
151
|
figure > ol {
|
99
|
-
|
100
|
-
|
101
|
-
-
|
152
|
+
font-family: 0.75em/2.25em Arial;
|
153
|
+
text-shadow: 0 1px 0 #eee;
|
154
|
+
-moz-text-shadow: 0 1px 0 #eee;
|
155
|
+
-webkit-text-shadow: 0 1px 0 #eee;
|
156
|
+
box-shadow: 0 1px 2px #333;
|
157
|
+
-moz-box-shadow: 0 1px 2px #333;
|
158
|
+
-webkit-box-shadow: 0 1px 2px #333;
|
102
159
|
width: 7.5%;
|
103
160
|
text-align: right;
|
104
161
|
float: left;
|
105
|
-
|
162
|
+
-moz-border-radius: 0.2em;
|
106
163
|
-webkit-border-radius: 0.2em;
|
107
|
-
|
108
|
-
border: 1px solid rgba(0, 0, 0, 0.
|
164
|
+
border-radius: 0.2em;
|
165
|
+
border: 1px solid rgba(0, 0, 0, 0.5);
|
109
166
|
list-style: none;
|
110
167
|
margin-left: -9.25%; }
|
111
168
|
figure > ol li {
|
169
|
+
background: rgba(125, 125, 125, 0.4);
|
112
170
|
margin: 0; }
|
113
|
-
|
114
|
-
|
115
|
-
|
171
|
+
figure > ol li:first-child {
|
172
|
+
border-top-left-radius: 0.2em;
|
173
|
+
border-top-right-radius: 0.2em; }
|
174
|
+
figure > ol li:last-child {
|
175
|
+
border-bottom-left-radius: 0.2em;
|
176
|
+
border-bottom-right-radius: 0.2em; }
|
177
|
+
figure > ol li.new {
|
178
|
+
background: #98B72E; }
|
179
|
+
figure > ol li.changed {
|
180
|
+
background: #FFBD40; }
|
116
181
|
figure > code {
|
182
|
+
font-size: 1em;
|
183
|
+
line-height: 1.5em;
|
184
|
+
font-family: "monaco", "Courier New", Courier, monospace, serif;
|
117
185
|
white-space: pre; }
|
118
186
|
|
119
187
|
body .hll {
|
@@ -0,0 +1,17 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%title Murdoc
|
5
|
+
%style=stylesheet
|
6
|
+
%body
|
7
|
+
- annotators.each_with_index do |annotator, i|
|
8
|
+
%h2 #{filenames[i]}
|
9
|
+
- annotator.paragraphs.each do |p|
|
10
|
+
- unless p.annotation.empty?
|
11
|
+
%section= p.formatted_annotation
|
12
|
+
- unless p.source.empty?
|
13
|
+
%figure
|
14
|
+
%ol
|
15
|
+
- 1.upto(p.source.split("\n").size) do |i|
|
16
|
+
%li= i + p.starting_line
|
17
|
+
<code>#{p.formatted_source.gsub("\n", '
')}</code>
|
data/murdoc.gemspec
CHANGED
@@ -2,18 +2,19 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
+
# stub: murdoc 0.1.13 ruby lib
|
5
6
|
|
6
7
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.1.
|
8
|
+
s.name = "murdoc"
|
9
|
+
s.version = "0.1.13"
|
9
10
|
|
10
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib"]
|
11
13
|
s.authors = ["Mark Abramov"]
|
12
|
-
s.date =
|
13
|
-
s.
|
14
|
-
s.
|
15
|
-
s.
|
16
|
-
s.executables = ["murdoc"]
|
14
|
+
s.date = "2015-07-06"
|
15
|
+
s.description = "Annotated documentation generator, see README.md for details"
|
16
|
+
s.email = "markizko@gmail.com"
|
17
|
+
s.executables = ["murdoc", "murdoc-strip-comments"]
|
17
18
|
s.extra_rdoc_files = [
|
18
19
|
"README.md"
|
19
20
|
]
|
@@ -29,45 +30,43 @@ Gem::Specification.new do |s|
|
|
29
30
|
"VERSION",
|
30
31
|
"autotest/discover.rb",
|
31
32
|
"bin/murdoc",
|
33
|
+
"bin/murdoc-strip-comments",
|
32
34
|
"lib/murdoc.rb",
|
33
35
|
"lib/murdoc/annotator.rb",
|
34
36
|
"lib/murdoc/formatter.rb",
|
37
|
+
"lib/murdoc/languages/html.rb",
|
35
38
|
"lib/murdoc/languages/javascript.rb",
|
36
39
|
"lib/murdoc/languages/ruby.rb",
|
37
40
|
"lib/murdoc/paragraph.rb",
|
38
41
|
"markup/stylesheet.css",
|
39
42
|
"markup/template.haml",
|
43
|
+
"markup/template_multifile.haml",
|
40
44
|
"murdoc.gemspec",
|
41
45
|
"spec/murdoc/annotator_spec.rb",
|
42
46
|
"spec/murdoc/formatter_spec.rb",
|
43
47
|
"spec/murdoc/paragraph_spec.rb",
|
44
48
|
"spec/spec_helper.rb"
|
45
49
|
]
|
46
|
-
s.homepage =
|
50
|
+
s.homepage = "http://github.com/markiz/murdoc"
|
47
51
|
s.licenses = ["Public Domain"]
|
48
|
-
s.
|
49
|
-
s.
|
50
|
-
s.summary = %q{Annotated documentation generator}
|
51
|
-
s.test_files = [
|
52
|
-
"spec/murdoc/annotator_spec.rb",
|
53
|
-
"spec/murdoc/formatter_spec.rb",
|
54
|
-
"spec/murdoc/paragraph_spec.rb",
|
55
|
-
"spec/spec_helper.rb"
|
56
|
-
]
|
52
|
+
s.rubygems_version = "2.4.5"
|
53
|
+
s.summary = "Annotated documentation generator"
|
57
54
|
|
58
55
|
if s.respond_to? :specification_version then
|
59
|
-
s.specification_version =
|
56
|
+
s.specification_version = 4
|
60
57
|
|
61
58
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
62
59
|
s.add_runtime_dependency(%q<kramdown>, [">= 0"])
|
63
60
|
s.add_runtime_dependency(%q<haml>, ["~> 3.0.0"])
|
64
61
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
62
|
+
s.add_development_dependency(%q<rake>, [">= 0"])
|
65
63
|
s.add_development_dependency(%q<rspec>, ["~> 2.4.0"])
|
66
64
|
s.add_development_dependency(%q<rdiscount>, ["~> 1.6.5"])
|
67
65
|
else
|
68
66
|
s.add_dependency(%q<kramdown>, [">= 0"])
|
69
67
|
s.add_dependency(%q<haml>, ["~> 3.0.0"])
|
70
68
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
69
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
71
70
|
s.add_dependency(%q<rspec>, ["~> 2.4.0"])
|
72
71
|
s.add_dependency(%q<rdiscount>, ["~> 1.6.5"])
|
73
72
|
end
|
@@ -75,6 +74,7 @@ Gem::Specification.new do |s|
|
|
75
74
|
s.add_dependency(%q<kramdown>, [">= 0"])
|
76
75
|
s.add_dependency(%q<haml>, ["~> 3.0.0"])
|
77
76
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
77
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
78
78
|
s.add_dependency(%q<rspec>, ["~> 2.4.0"])
|
79
79
|
s.add_dependency(%q<rdiscount>, ["~> 1.6.5"])
|
80
80
|
end
|
metadata
CHANGED
@@ -1,85 +1,111 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: murdoc
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.1.12
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.13
|
6
5
|
platform: ruby
|
7
|
-
authors:
|
6
|
+
authors:
|
8
7
|
- Mark Abramov
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2015-07-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
17
14
|
name: kramdown
|
18
|
-
requirement:
|
19
|
-
|
20
|
-
requirements:
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
21
17
|
- - ">="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version:
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
24
20
|
type: :runtime
|
25
21
|
prerelease: false
|
26
|
-
version_requirements:
|
27
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
28
|
name: haml
|
29
|
-
requirement:
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
- !ruby/object:Gem::Version
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
34
33
|
version: 3.0.0
|
35
34
|
type: :runtime
|
36
35
|
prerelease: false
|
37
|
-
version_requirements:
|
38
|
-
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 3.0.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
39
42
|
name: jeweler
|
40
|
-
requirement:
|
41
|
-
|
42
|
-
requirements:
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
43
45
|
- - ">="
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version:
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
46
48
|
type: :development
|
47
49
|
prerelease: false
|
48
|
-
version_requirements:
|
49
|
-
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
50
70
|
name: rspec
|
51
|
-
requirement:
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
- !ruby/object:Gem::Version
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
56
75
|
version: 2.4.0
|
57
76
|
type: :development
|
58
77
|
prerelease: false
|
59
|
-
version_requirements:
|
60
|
-
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.4.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
61
84
|
name: rdiscount
|
62
|
-
requirement:
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
- !ruby/object:Gem::Version
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
67
89
|
version: 1.6.5
|
68
90
|
type: :development
|
69
91
|
prerelease: false
|
70
|
-
version_requirements:
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 1.6.5
|
71
97
|
description: Annotated documentation generator, see README.md for details
|
72
98
|
email: markizko@gmail.com
|
73
|
-
executables:
|
99
|
+
executables:
|
74
100
|
- murdoc
|
101
|
+
- murdoc-strip-comments
|
75
102
|
extensions: []
|
76
|
-
|
77
|
-
extra_rdoc_files:
|
103
|
+
extra_rdoc_files:
|
78
104
|
- README.md
|
79
|
-
files:
|
80
|
-
- .document
|
81
|
-
- .rspec
|
82
|
-
- .travis.yml
|
105
|
+
files:
|
106
|
+
- ".document"
|
107
|
+
- ".rspec"
|
108
|
+
- ".travis.yml"
|
83
109
|
- Gemfile
|
84
110
|
- Gemfile.lock
|
85
111
|
- README.md
|
@@ -88,52 +114,44 @@ files:
|
|
88
114
|
- VERSION
|
89
115
|
- autotest/discover.rb
|
90
116
|
- bin/murdoc
|
117
|
+
- bin/murdoc-strip-comments
|
91
118
|
- lib/murdoc.rb
|
92
119
|
- lib/murdoc/annotator.rb
|
93
120
|
- lib/murdoc/formatter.rb
|
121
|
+
- lib/murdoc/languages/html.rb
|
94
122
|
- lib/murdoc/languages/javascript.rb
|
95
123
|
- lib/murdoc/languages/ruby.rb
|
96
124
|
- lib/murdoc/paragraph.rb
|
97
125
|
- markup/stylesheet.css
|
98
126
|
- markup/template.haml
|
127
|
+
- markup/template_multifile.haml
|
99
128
|
- murdoc.gemspec
|
100
129
|
- spec/murdoc/annotator_spec.rb
|
101
130
|
- spec/murdoc/formatter_spec.rb
|
102
131
|
- spec/murdoc/paragraph_spec.rb
|
103
132
|
- spec/spec_helper.rb
|
104
|
-
has_rdoc: true
|
105
133
|
homepage: http://github.com/markiz/murdoc
|
106
|
-
licenses:
|
134
|
+
licenses:
|
107
135
|
- Public Domain
|
136
|
+
metadata: {}
|
108
137
|
post_install_message:
|
109
138
|
rdoc_options: []
|
110
|
-
|
111
|
-
require_paths:
|
139
|
+
require_paths:
|
112
140
|
- lib
|
113
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
114
|
-
|
115
|
-
requirements:
|
141
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
116
143
|
- - ">="
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
version: "0"
|
122
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
|
-
none: false
|
124
|
-
requirements:
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
125
148
|
- - ">="
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
version:
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
128
151
|
requirements: []
|
129
|
-
|
130
152
|
rubyforge_project:
|
131
|
-
rubygems_version:
|
153
|
+
rubygems_version: 2.4.5
|
132
154
|
signing_key:
|
133
|
-
specification_version:
|
155
|
+
specification_version: 4
|
134
156
|
summary: Annotated documentation generator
|
135
|
-
test_files:
|
136
|
-
- spec/murdoc/annotator_spec.rb
|
137
|
-
- spec/murdoc/formatter_spec.rb
|
138
|
-
- spec/murdoc/paragraph_spec.rb
|
139
|
-
- spec/spec_helper.rb
|
157
|
+
test_files: []
|