md2man 1.3.2 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/HISTORY.markdown CHANGED
@@ -1,3 +1,25 @@
1
+ ## Version 1.4.0 (2012-10-14)
2
+
3
+ Minor:
4
+
5
+ * roff: emit non-first H1 headings as H2 headings
6
+
7
+ * html: add `Md2Man::HTML::Engine` class for HTML manual page generation
8
+
9
+ * html: add md2man-html(1) bin script for command line access to the above
10
+
11
+ * html: add ID attributes on all headings for easy permalinking
12
+
13
+ * rake: add `md2man/rakefile` to process markdown files in man/
14
+
15
+ This library provides a `rake md2man` task that builds UNIX and HTML
16
+ manual pages from Markdown files (with ".markdown", ".mkd", or ".md"
17
+ extension) inside your `man/man*/` directories. It also provides
18
+ sub-tasks to build *only* UNIX or HTML manual pages separately.
19
+
20
+ It also hooks into Bundler's gem packaging tasks to automatically build
21
+ your manual pages for packaging into a gem. See the README for details.
22
+
1
23
  ## Version 1.3.2 (2012-10-13)
2
24
 
3
25
  Patch:
data/README.markdown CHANGED
@@ -104,8 +104,30 @@ md2man extends [Markdown] syntax in the following ways, as provisioned in the
104
104
 
105
105
  md2man extends [Markdown] semantics in the following ways:
106
106
 
107
- * There can be at most one top-level heading (H1). It is emitted as `.TH`
108
- in the [Roff] output, defining the UNIX manual page's header and footer.
107
+ * The first top-level heading (H1) found in the document is emitted as `.TH`
108
+ in the roff(7) output to define the UNIX manual page's header and footer.
109
+ Any subsequent top-level headings (H1) are treated as second-level (H2).
110
+
111
+ ### Pre-building man pages
112
+
113
+ Add the following lines to your gemspec:
114
+
115
+ s.files += Dir['man/man?/*.?']
116
+ s.add_development_dependency 'md2man', '~> 1.4'
117
+
118
+ Add the following line to your Rakefile:
119
+
120
+ require 'md2man/rakefile'
121
+
122
+ You now have a `rake md2man` task that builds manual pages from Markdown files
123
+ (with ".markdown", ".mkd", or ".md" extension) inside `man/man*/` directories.
124
+ There are also sub-tasks to build *only* UNIX or HTML manual pages separately.
125
+
126
+ If you're using Bundler, this task also hooks into Bundler's gem packaging
127
+ tasks and ensures that your manual pages are built for packaging into a gem:
128
+
129
+ bundle exec rake build
130
+ gem spec pkg/*.gem | fgrep man/man
109
131
 
110
132
  ## License
111
133
 
data/bin/md2man CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  =begin =======================================================================
3
3
 
4
- # MD2MAN 1 2012-10-13 1.3.2
4
+ # MD2MAN 1 2012-10-14 1.4.0
5
5
 
6
6
  ## NAME
7
7
 
@@ -32,8 +32,9 @@ md2man extends markdown(7) syntax in the following ways, as provisioned in the
32
32
 
33
33
  md2man extends markdown(7) semantics in the following ways:
34
34
 
35
- * There can be at most one top-level heading (H1). It is emitted as `.TH`
35
+ * The first top-level heading (H1) found in the document is emitted as `.TH`
36
36
  in the roff(7) output to define the UNIX manual page's header and footer.
37
+ Any subsequent top-level headings (H1) are treated as second-level (H2).
37
38
 
38
39
  ### Markdown extensions
39
40
 
@@ -53,7 +54,7 @@ The following [Redcarpet] extensions are enabled while processing markdown(7):
53
54
 
54
55
  ## SEE ALSO
55
56
 
56
- markdown(7), roff(7)
57
+ md2man-html(1)
57
58
 
58
59
  [md2man]: https://github.com/sunaku/md2man
59
60
  [Redcarpet]: https://github.com/vmg/redcarpet
data/bin/md2man-html ADDED
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env ruby
2
+ =begin =======================================================================
3
+
4
+ # MD2MAN-HTML 1 2012-10-14 1.4.0
5
+
6
+ ## NAME
7
+
8
+ md2man-html - convert md2man(1) flavored markdown(7) into HTML
9
+
10
+ ## SYNOPSIS
11
+
12
+ `md2man-html` [*OPTION*]... [*FILE*]
13
+
14
+ ## DESCRIPTION
15
+
16
+ This program converts the markdown(7) input from the given *FILE* into HTML
17
+ and then prints the result to stdout. stdin is read if *FILE* is not given.
18
+
19
+ ### Document format
20
+
21
+ See md2man(1) for details about the document format and Markdown extensions.
22
+
23
+ ### Cross linking
24
+
25
+ References to other manual pages are converted into hyperlinks that have
26
+ class="manpage-reference" and href="../man${section}/${page}.${section}.html"
27
+ attributes.
28
+
29
+ For example, the markdown(7) reference would be converted into HTML as:
30
+
31
+ <a class="manpage-reference" href="../man7/markdown.7.html">markdown(7)</a>
32
+
33
+ ## OPTIONS
34
+
35
+ `-h`, `--help`
36
+ Show this help manual.
37
+
38
+ ## SEE ALSO
39
+
40
+ md2man(1)
41
+
42
+ =end =========================================================================
43
+
44
+ require 'binman'
45
+ BinMan.help
46
+
47
+ require 'md2man/html/engine'
48
+ puts Md2Man::HTML::ENGINE.render(ARGF.read)
@@ -0,0 +1,21 @@
1
+ require 'redcarpet'
2
+ require 'md2man/html'
3
+
4
+ module Md2Man
5
+ module HTML
6
+
7
+ class Engine < Redcarpet::Render::HTML
8
+ include HTML
9
+ end
10
+
11
+ ENGINE = Redcarpet::Markdown.new(Engine,
12
+ :tables => true,
13
+ :autolink => true,
14
+ :superscript => true,
15
+ :strikethrough => true,
16
+ :no_intra_emphasis => false,
17
+ :fenced_code_blocks => true
18
+ )
19
+
20
+ end
21
+ end
@@ -0,0 +1,55 @@
1
+ require 'cgi'
2
+ require 'md2man/document'
3
+
4
+ module Md2Man
5
+ module HTML
6
+
7
+ include Document
8
+
9
+ #---------------------------------------------------------------------------
10
+ # block-level processing
11
+ #---------------------------------------------------------------------------
12
+
13
+ def normal_paragraph text
14
+ "<p>#{text}</p>"
15
+ end
16
+
17
+ def tagged_paragraph text
18
+ head, *body = text.lines.to_a
19
+ "<dl><dt>#{head.chomp}</dt><dd>#{body.join}</dd></dl>"
20
+ end
21
+
22
+ def indented_paragraph text
23
+ "<dl><dd>#{text}</dd></dl>"
24
+ end
25
+
26
+ def block_code code, language
27
+ "<pre>#{codespan(super)}</pre>"
28
+ end
29
+
30
+ def header text, level
31
+ id = text.gsub(/<.+?>/, '-'). # strip all HTML tags
32
+ gsub(/\W+/, '-').gsub(/^-|-$/, '') # fold non-word chars
33
+ %{<h#{level} id="#{id}">#{text}</h#{level}>}
34
+ end
35
+
36
+ #---------------------------------------------------------------------------
37
+ # span-level processing
38
+ #---------------------------------------------------------------------------
39
+
40
+ def codespan code
41
+ "<code>#{CGI.escapeHTML(super)}</code>"
42
+ end
43
+
44
+ def reference page, section, addendum
45
+ url = reference_url(page, section)
46
+ %{<a class="manpage-reference" href="#{url}">#{page}(#{section})</a>#{addendum}}
47
+ end
48
+
49
+ # You can override this in a derived class to compute URLs as you like!
50
+ def reference_url page, section
51
+ "../man#{section}/#{page}.#{section}.html"
52
+ end
53
+
54
+ end
55
+ end
@@ -0,0 +1,71 @@
1
+ require 'rake'
2
+
3
+ # build man pages before building ruby gem using bundler
4
+ %w[build install release].each {|t| task t => :md2man }
5
+
6
+ #-----------------------------------------------------------------------------
7
+ desc 'Build manual pages from Markdown files in man/.'
8
+ task :md2man => ['md2man:man', 'md2man:web']
9
+ #-----------------------------------------------------------------------------
10
+
11
+ mkds = FileList['man/man*/*.{markdown,mkd,md}']
12
+ mans = mkds.pathmap('%X')
13
+ webs = mans.pathmap('%p.html')
14
+
15
+ render_file_task = lambda do |src, dst, renderer|
16
+ directory dir = dst.pathmap('%d')
17
+ file dst => [dir, src] do
18
+ input = File.read(src)
19
+ output = renderer.call(input)
20
+ File.open(dst, 'w') {|f| f << output }
21
+ end
22
+ end
23
+
24
+ #-----------------------------------------------------------------------------
25
+ desc 'Build UNIX manual pages from Markdown files in man/.'
26
+ task 'md2man:man' => mans
27
+ #-----------------------------------------------------------------------------
28
+
29
+ mkds.zip(mans).each do |src, dst|
30
+ render_file_task.call src, dst, lambda {|input|
31
+ require 'md2man/engine'
32
+ Md2Man::ENGINE.render(input)
33
+ }
34
+ end
35
+
36
+ #-----------------------------------------------------------------------------
37
+ desc 'Build HTML manual pages from Markdown files in man/.'
38
+ task 'md2man:web' => 'man/index.html'
39
+ #-----------------------------------------------------------------------------
40
+
41
+ file 'man/index.html' => webs do |t|
42
+ output = []
43
+ dirs = webs.group_by {|web| web.pathmap('%d') }.each do |dir, dir_webs|
44
+ subdir = dir.pathmap('%f')
45
+ output << %{<h2 id="#{subdir}">#{subdir}</h2>}
46
+ dir_webs.each do |web|
47
+ title = web.pathmap('%n').sub(/\.(.+)$/, '(\1)')
48
+ link = %{<a href="#{subdir}/#{web.pathmap('%f')}">#{title}</a>}
49
+ info = File.read(web).scan(%r{<h2.*?>NAME</h2>(.+?)<h2}m).flatten.first.
50
+ to_s.split(/\s+-\s+/, 2).last.to_s.gsub(/<.+?>/, '') # strip HTML
51
+ output << "<dl><dt>#{link}</dt><dd>#{info}</dd></dl>"
52
+ end
53
+ File.open("#{dir}/index.html", 'w') do |f|
54
+ f << %{<meta http-equiv="refresh" content="0;url=../index.html##{subdir}"/>}
55
+ end
56
+ end
57
+ File.open(t.name, 'w') {|f| f.puts output }
58
+ end
59
+
60
+ mkds.zip(webs).each do |src, dst|
61
+ render_file_task.call src, dst, lambda {|input|
62
+ require 'md2man/html/engine'
63
+ output = Md2Man::HTML::ENGINE.render(input)
64
+ navbar = '<div class="manpath-navigation">' + [
65
+ %{<a href="../index.html">#{dst.pathmap('%1d')}</a>},
66
+ %{<a href="index.html">#{dst.pathmap('%-1d')}</a>},
67
+ %{<a href="">#{dst.pathmap('%n')}</a>},
68
+ ].join(' &rarr; ') + '</div>'
69
+ [navbar, output, navbar].join('<hr/>')
70
+ }
71
+ end
data/lib/md2man/roff.rb CHANGED
@@ -12,6 +12,7 @@ module Roff
12
12
  def preprocess document
13
13
  @ordered_list_id = 0
14
14
  @table_cells = {}
15
+ @h1_seen = false
15
16
  super
16
17
  end
17
18
 
@@ -57,7 +58,13 @@ module Roff
57
58
  def header text, level
58
59
  macro =
59
60
  case level
60
- when 1 then :TH
61
+ when 1
62
+ if @h1_seen
63
+ :SH
64
+ else
65
+ @h1_seen = true
66
+ :TH
67
+ end
61
68
  when 2 then :SH
62
69
  else :SS
63
70
  end
@@ -1,3 +1,3 @@
1
1
  module Md2Man
2
- VERSION = "1.3.2"
2
+ VERSION = "1.4.0"
3
3
  end
@@ -0,0 +1,44 @@
1
+ .TH MD2MAN\-HTML 1 2012\-10\-14 1.4.0
2
+ .SH NAME
3
+ .PP
4
+ md2man\-html \- convert
5
+ .BR md2man (1)
6
+ flavored
7
+ .BR markdown (7)
8
+ into HTML
9
+ .SH SYNOPSIS
10
+ .PP
11
+ \fB\fCmd2man-html\fR [\fIOPTION\fP]... [\fIFILE\fP]
12
+ .SH DESCRIPTION
13
+ .PP
14
+ This program converts the
15
+ .BR markdown (7)
16
+ input from the given \fIFILE\fP into HTML
17
+ and then prints the result to stdout. stdin is read if \fIFILE\fP is not given.
18
+ .SS Document format
19
+ .PP
20
+ See
21
+ .BR md2man (1)
22
+ for details about the document format and Markdown extensions.
23
+ .SS Cross linking
24
+ .PP
25
+ References to other manual pages are converted into hyperlinks that have
26
+ class="manpage\-reference" and href="../man${section}/${page}.${section}.html"
27
+ attributes.
28
+ .PP
29
+ For example, the
30
+ .BR markdown (7)
31
+ reference would be converted into HTML as:
32
+ .PP
33
+ .RS
34
+ .nf
35
+ <a class="manpage-reference" href="../man7/markdown.7.html">markdown(7)</a>
36
+ .fi
37
+ .RE
38
+ .SH OPTIONS
39
+ .TP
40
+ \fB\fC-h\fR, \fB\fC--help\fR
41
+ Show this help manual.
42
+ .SH SEE ALSO
43
+ .PP
44
+ .BR md2man (1)
data/man/man1/md2man.1 CHANGED
@@ -1,4 +1,4 @@
1
- .TH MD2MAN 1 2012\-10\-13 1.3.2
1
+ .TH MD2MAN 1 2012\-10\-14 1.4.0
2
2
  .SH NAME
3
3
  .PP
4
4
  md2man \- convert
@@ -49,10 +49,11 @@ md2man extends
49
49
  semantics in the following ways:
50
50
  .RS
51
51
  .IP \(bu 2
52
- There can be at most one top\-level heading (H1). It is emitted as \fB\fC.TH\fR
52
+ The first top\-level heading (H1) found in the document is emitted as \fB\fC.TH\fR
53
53
  in the
54
54
  .BR roff (7)
55
55
  output to define the UNIX manual page's header and footer.
56
+ Any subsequent top\-level headings (H1) are treated as second\-level (H2).
56
57
  .RE
57
58
  .SS Markdown extensions
58
59
  .PP
@@ -81,5 +82,4 @@ fenced_code_blocks
81
82
  Show this help manual.
82
83
  .SH SEE ALSO
83
84
  .PP
84
- .BR markdown (7),
85
- .BR roff (7)
85
+ .BR md2man-html (1)
data/md2man.gemspec CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.summary = 'markdown to manpage'
12
12
  s.description = 'Converts markdown documents into UNIX manual pages.'
13
13
 
14
- s.files = `git ls-files`.split("\n") + Dir['man/**/*']
14
+ s.files = `git ls-files`.split("\n") + Dir['man/man?/*.?']
15
15
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
16
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
17
  s.require_paths = ['lib']
@@ -0,0 +1,127 @@
1
+ require 'test_helper'
2
+ require 'md2man/html/engine'
3
+
4
+ describe 'html engine' do
5
+ before do
6
+ @markdown = Redcarpet::Markdown.new(Md2Man::HTML::Engine)
7
+ end
8
+
9
+ def heredoc document
10
+ document.gsub(/^\s*\|/, '').chomp
11
+ end
12
+
13
+ it 'renders nothing as nothing' do
14
+ @markdown.render('').must_be_empty
15
+ end
16
+
17
+ it 'renders paragraphs' do
18
+ @markdown.render(heredoc(<<-INPUT)).must_equal(heredoc(<<-OUTPUT))
19
+ |just some paragraph
20
+ |spanning
21
+ |multiple
22
+ |lines
23
+ |but within 4-space indent
24
+ INPUT
25
+ |<p>just some paragraph
26
+ |spanning
27
+ |multiple
28
+ |lines
29
+ |but within 4-space indent</p>
30
+ OUTPUT
31
+ end
32
+
33
+ it 'renders tagged paragraphs with uniformly two-space indented bodies' do
34
+ @markdown.render(heredoc(<<-INPUT)).must_equal(heredoc(<<-OUTPUT))
35
+ |just some paragraph
36
+ | spanning
37
+ | multiple
38
+ | lines
39
+ | but within 4-space indent
40
+ |
41
+ | and a single line following
42
+ |
43
+ | and multiple
44
+ | lines following
45
+ INPUT
46
+ |<dl><dt>just some paragraph</dt><dd>spanning
47
+ |multiple
48
+ |lines
49
+ |but within 4-space indent</dd></dl><dl><dd>and a single line following</dd></dl><dl><dd>and multiple
50
+ |lines following</dd></dl>
51
+ OUTPUT
52
+ end
53
+
54
+ it 'renders references to other man pages as hyperlinks in middle of line' do
55
+ @markdown.render(heredoc(<<-INPUT)).must_equal(heredoc(<<-OUTPUT))
56
+ |convert them from markdown(7) into roff(7), using
57
+ INPUT
58
+ |<p>convert them from <a class="manpage-reference" href="../man7/markdown.7.html">markdown(7)</a> into <a class="manpage-reference" href="../man7/roff.7.html">roff(7)</a>, using</p>
59
+ OUTPUT
60
+ end
61
+
62
+ it 'renders references to other man pages as hyperlinks at beginning of line' do
63
+ @markdown.render(heredoc(<<-INPUT)).must_equal(heredoc(<<-OUTPUT))
64
+ |markdown(1) into roff(2)
65
+ INPUT
66
+ |<p><a class="manpage-reference" href="../man1/markdown.1.html">markdown(1)</a> into <a class="manpage-reference" href="../man2/roff.2.html">roff(2)</a></p>
67
+ OUTPUT
68
+ end
69
+
70
+ it 'does not render references inside code blocks' do
71
+ @markdown.render(heredoc(<<-INPUT)).must_equal(heredoc(<<-OUTPUT))
72
+ | this is a code block
73
+ | containing markdown(7),
74
+ | roff(7), and much more!
75
+ INPUT
76
+ |<pre><code>this is a code block
77
+ |containing markdown(7),
78
+ |roff(7), and much more!
79
+ |</code></pre>
80
+ OUTPUT
81
+ end
82
+
83
+ it 'does not render references inside code spans' do
84
+ @markdown.render(heredoc(<<-INPUT)).must_equal(heredoc(<<-OUTPUT))
85
+ |this is a code span `containing markdown(7), roff(7), and` much more!
86
+ INPUT
87
+ |<p>this is a code span <code>containing markdown(7), roff(7), and</code> much more!</p>
88
+ OUTPUT
89
+ end
90
+
91
+ it 'escapes backslashes inside code blocks' do
92
+ # NOTE: we have to escape backslashes in the INPUT to
93
+ # prevent Ruby from interpreting them as escapes
94
+ @markdown.render(heredoc(<<-INPUT)).must_equal(heredoc(<<-OUTPUT))
95
+ | _______ _______
96
+ | ___ /___________ /__
97
+ | _ __/ __ \\ __/ /_/
98
+ | / /_/ /_/ / / / ,\\
99
+ | \\__/\\____/_/ /_/|_\\
100
+ | >>>------>
101
+ INPUT
102
+ |<pre><code>_______ _______
103
+ | ___ /___________ /__
104
+ | _ __/ __ \\ __/ /_/
105
+ | / /_/ /_/ / / / ,\\
106
+ | \\__/\\____/_/ /_/|_\\
107
+ | &gt;&gt;&gt;------&gt;
108
+ |</code></pre>
109
+ OUTPUT
110
+ end
111
+
112
+ it 'adds ID attributes on headings for permalinking' do
113
+ @markdown.render(heredoc(<<-INPUT)).must_equal(heredoc(<<-OUTPUT))
114
+ |# foo *BAR*
115
+ |## bar BAZ
116
+ |### --BAZ-QUX--
117
+ |#### qux (MOZ)
118
+ |##### {m}oz END
119
+ INPUT
120
+ <h1 id="foo-BAR">foo <em>BAR</em></h1>\
121
+ <h2 id="bar-BAZ">bar BAZ</h2>\
122
+ <h3 id="BAZ-QUX">--BAZ-QUX--</h3>\
123
+ <h4 id="qux-MOZ">qux (MOZ)</h4>\
124
+ <h5 id="m-oz-END">{m}oz END</h5>
125
+ OUTPUT
126
+ end
127
+ end
@@ -9,7 +9,7 @@
9
9
  require 'test_helper'
10
10
  require 'md2man/engine'
11
11
 
12
- describe Md2Man::Roff do
12
+ describe 'roff engine' do
13
13
  before do
14
14
  @markdown = Redcarpet::Markdown.new(
15
15
  Md2Man::Engine,
@@ -229,6 +229,30 @@ describe Md2Man::Roff do
229
229
  OUTPUT
230
230
  end
231
231
 
232
+ it 'renders non-first top-level headings as 2nd-level headings' do
233
+ @markdown.render(heredoc(<<-INPUT)).must_equal(heredoc(<<-OUTPUT))
234
+ |just some h1 heading
235
+ |====================
236
+ |
237
+ |yet another h1 heading
238
+ |======================
239
+ INPUT
240
+ |.TH just some h1 heading
241
+ |.SH yet another h1 heading
242
+ OUTPUT
243
+
244
+ @markdown.render(heredoc(<<-INPUT)).must_equal(heredoc(<<-OUTPUT))
245
+ |BINMAN 1 "2011-11-05" "1.1.0" "Ruby User Manuals"
246
+ |=================================================
247
+ |
248
+ |DUPMAN 1 "2011-11-05" "1.1.0" "Ruby User Manuals"
249
+ |=================================================
250
+ INPUT
251
+ |.TH BINMAN 1 "2011\\-11\\-05" "1.1.0" "Ruby User Manuals"
252
+ |.SH DUPMAN 1 "2011\\-11\\-05" "1.1.0" "Ruby User Manuals"
253
+ OUTPUT
254
+ end
255
+
232
256
  it 'renders 2nd-level headings' do
233
257
  @markdown.render(heredoc(<<-INPUT)).must_equal(heredoc(<<-OUTPUT))
234
258
  |just some h2 heading
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: md2man
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-13 00:00:00.000000000 Z
12
+ date: 2012-10-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: binman
@@ -80,6 +80,7 @@ email:
80
80
  - sunaku@gmail.com
81
81
  executables:
82
82
  - md2man
83
+ - md2man-html
83
84
  extensions: []
84
85
  extra_rdoc_files: []
85
86
  files:
@@ -92,14 +93,20 @@ files:
92
93
  - README.markdown
93
94
  - Rakefile
94
95
  - bin/md2man
96
+ - bin/md2man-html
95
97
  - lib/md2man.rb
96
98
  - lib/md2man/document.rb
97
99
  - lib/md2man/engine.rb
100
+ - lib/md2man/html.rb
101
+ - lib/md2man/html/engine.rb
102
+ - lib/md2man/rakefile.rb
98
103
  - lib/md2man/roff.rb
99
104
  - lib/md2man/version.rb
100
105
  - md2man.gemspec
106
+ - test/md2man/html_test.rb
101
107
  - test/md2man/roff_test.rb
102
108
  - test/test_helper.rb
109
+ - man/man1/md2man-html.1
103
110
  - man/man1/md2man.1
104
111
  homepage: http://github.com/sunaku/md2man
105
112
  licenses: []
@@ -115,7 +122,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
115
122
  version: '0'
116
123
  segments:
117
124
  - 0
118
- hash: 3059084899837276996
125
+ hash: -1838080913948275679
119
126
  required_rubygems_version: !ruby/object:Gem::Requirement
120
127
  none: false
121
128
  requirements:
@@ -124,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
131
  version: '0'
125
132
  segments:
126
133
  - 0
127
- hash: 3059084899837276996
134
+ hash: -1838080913948275679
128
135
  requirements: []
129
136
  rubyforge_project:
130
137
  rubygems_version: 1.8.23
@@ -132,5 +139,6 @@ signing_key:
132
139
  specification_version: 3
133
140
  summary: markdown to manpage
134
141
  test_files:
142
+ - test/md2man/html_test.rb
135
143
  - test/md2man/roff_test.rb
136
144
  - test/test_helper.rb