murdoc 0.1.12 → 0.1.13
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|