md2man 5.0.3 → 5.1.0
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/README.markdown +5 -5
- data/VERSION.markdown +24 -0
- data/bin/md2man-html +29 -19
- data/bin/md2man-rake +8 -5
- data/bin/md2man-roff +6 -5
- data/lib/md2man/html.rb +7 -1
- data/lib/md2man/rakefile.rb +15 -3
- data/lib/md2man/version.rb +1 -1
- data/man/index.html +3 -3
- data/man/man0/EXAMPLE.html +1 -1
- data/man/man0/README.html +58 -58
- data/man/man0/VERSION.html +30 -16
- data/man/man1/md2man-html.1 +7 -10
- data/man/man1/md2man-html.1.html +18 -18
- data/man/man1/md2man-rake.1 +9 -6
- data/man/man1/md2man-rake.1.html +6 -6
- data/man/man1/md2man-roff.1 +7 -10
- data/man/man1/md2man-roff.1.html +4 -4
- data/man/man5/md2man.5 +18 -22
- data/man/man5/md2man.5.html +55 -54
- data/man/man5/md2man.5.markdown +13 -13
- data/man/style.css +209 -0
- data/md2man.gemspec +5 -4
- data/test/md2man/html_test.rb +28 -4
- metadata +18 -6
- data/EXAMPLE.png +0 -0
- data/man/man0/EXAMPLE.png +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e2b43ab0002aa28599a544ae6b69821c1beb5c0c
|
4
|
+
data.tar.gz: 1f648fe79e0cad50810c1b4c6d2dca2d6dd438c8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9d194ed93f611e4e65fcb19c510aa1d8f434cd9bb48120a8d0e14e79fbfebf00e3e092b5dc53e4d2e1a7190599f9006c6de9dc525ae598a5bd81bdaf5db9d08
|
7
|
+
data.tar.gz: b4c861ff0edd218ada2239e764283ed443114fb7ac0a1e8c6cb6e44f85eca86c2e78fd4de16b1d1a0fbff4841500f6942db3f4e0732fd22404b686ebc05f320c
|
data/README.markdown
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
# md2man - markdown to manpage
|
6
6
|
|
7
7
|
md2man is a Ruby library and a set of command-line programs that convert
|
8
|
-
[Markdown] into UNIX
|
8
|
+
[Markdown] into UNIX manpages as well as HTML webpages using [Redcarpet].
|
9
9
|
|
10
10
|
## Features
|
11
11
|
|
@@ -188,7 +188,7 @@ engine = Redcarpet::Markdown.new(YourManpageRenderer, your_options_hash)
|
|
188
188
|
your_html_output = engine.render(your_markdown_input)
|
189
189
|
```
|
190
190
|
|
191
|
-
### Building
|
191
|
+
### Building manpages
|
192
192
|
|
193
193
|
#### At the command line
|
194
194
|
|
@@ -203,8 +203,8 @@ md2man-rake --help
|
|
203
203
|
Add this snippet to your gemspec file:
|
204
204
|
|
205
205
|
```ruby
|
206
|
-
s.files += Dir['man/man?/*.?']
|
207
|
-
s.files += Dir['man/**/*.{html,css
|
206
|
+
s.files += Dir['man/man?/*.?'] # UNIX manpages
|
207
|
+
s.files += Dir['man/**/*.{html,css}'] # HTML manpages
|
208
208
|
s.add_development_dependency 'md2man', '~> 5.0'
|
209
209
|
```
|
210
210
|
|
@@ -231,6 +231,6 @@ gem spec pkg/*.gem | fgrep man/
|
|
231
231
|
Released under the ISC license. See the LICENSE file for details.
|
232
232
|
|
233
233
|
[roff]: http://troff.org
|
234
|
-
[Markdown]: http://daringfireball.net/projects/markdown/
|
235
234
|
[Redcarpet]: https://github.com/vmg/redcarpet
|
235
|
+
[Markdown]: http://daringfireball.net/projects/markdown/
|
236
236
|
[tables]: http://michelf.com/projects/php-markdown/extra/#table
|
data/VERSION.markdown
CHANGED
@@ -1,3 +1,27 @@
|
|
1
|
+
## Version 5.1.0 (2016-02-28)
|
2
|
+
|
3
|
+
### Minor:
|
4
|
+
|
5
|
+
* md2man-html(1): add syntax highlighting to fenced code blocks.
|
6
|
+
|
7
|
+
* md2man-rake(1): add directory name to README and "man/index" title.
|
8
|
+
|
9
|
+
Fallback to adding directory name for standalone titles, such as "README"
|
10
|
+
and "man/index", so that users know what project those manuals belong to.
|
11
|
+
|
12
|
+
* md2man-rake(1): allow running task names without namespace.
|
13
|
+
|
14
|
+
You can now run `md2man-rake man` instead of `md2man-rake md2man:man`,
|
15
|
+
and similarly `md2man-rake web` instead of `md2man-rake md2man:web`.
|
16
|
+
|
17
|
+
### Patch:
|
18
|
+
|
19
|
+
* Clarify optionalness of PATTERN in `--help` option.
|
20
|
+
|
21
|
+
* md2man(5): paragraph types reflect .PP, .TP, .IP.
|
22
|
+
|
23
|
+
* Link to Markdown website instead of markdown(7).
|
24
|
+
|
1
25
|
## Version 5.0.3 (2016-02-21)
|
2
26
|
|
3
27
|
This release fixes a crash, fixes roff bugs, improves CSS styling for HTML
|
data/bin/md2man-html
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin =======================================================================
|
3
3
|
|
4
|
-
# MD2MAN-HTML 1 2016-02-
|
4
|
+
# MD2MAN-HTML 1 2016-02-28 5.1.0
|
5
5
|
|
6
6
|
## NAME
|
7
7
|
|
8
|
-
md2man-html - convert md2man(5) flavored
|
8
|
+
md2man-html - convert md2man(5) flavored [Markdown] text into HTML
|
9
9
|
|
10
10
|
## SYNOPSIS
|
11
11
|
|
@@ -13,7 +13,7 @@ md2man-html - convert md2man(5) flavored markdown(7) into HTML
|
|
13
13
|
|
14
14
|
## DESCRIPTION
|
15
15
|
|
16
|
-
This program converts md2man(5) flavored
|
16
|
+
This program converts the md2man(5) flavored [Markdown] text from the given
|
17
17
|
*FILE* into HTML and then prints the result to the standard output stream.
|
18
18
|
If *FILE* is not given, then the standard input stream is read in its place.
|
19
19
|
|
@@ -22,11 +22,13 @@ If *FILE* is not given, then the standard input stream is read in its place.
|
|
22
22
|
Each component of the `.TH` directive in roff(7), described under "Top-level
|
23
23
|
headings" in md2man(5), is wrapped in stylable `<span>` elements as follows:
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
25
|
+
```html
|
26
|
+
<span class="md2man-title">...</span>
|
27
|
+
<span class="md2man-section">...</span>
|
28
|
+
<span class="md2man-date">...</span>
|
29
|
+
<span class="md2man-source">...</span>
|
30
|
+
<span class="md2man-manual">...</span>
|
31
|
+
```
|
30
32
|
|
31
33
|
### Heading permalinks
|
32
34
|
|
@@ -36,19 +38,23 @@ lowercase, and squeezed and stripped of HTML tags and non-word characters.
|
|
36
38
|
|
37
39
|
For example, a heading labeled `Ver<s>iON 3(2</s>!4)))` would be emitted as:
|
38
40
|
|
39
|
-
|
40
|
-
|
41
|
+
```html
|
42
|
+
<h2 id="ver-ion-3-2-4">Ver<s>iON 3(2</s>!4)))<a name="ver-ion-3-2-4"
|
43
|
+
href="#ver-ion-3-2-4" class="md2man-permalink" title="permalink"></a></h2>
|
44
|
+
```
|
41
45
|
|
42
46
|
For example, multiple headings labeled `Hello, world!` would be emitted as:
|
43
47
|
|
44
|
-
|
45
|
-
|
48
|
+
```html
|
49
|
+
<h2 id="hello-world">Hello, world!<a name="hello-world"
|
50
|
+
href="#hello-world" class="md2man-permalink" title="permalink"></a></h2>
|
46
51
|
|
47
|
-
|
48
|
-
|
52
|
+
<h2 id="hello-world-1">Hello, world!<a name="hello-world-1"
|
53
|
+
href="#hello-world-1" class="md2man-permalink" title="permalink"></a></h2>
|
49
54
|
|
50
|
-
|
51
|
-
|
55
|
+
<h2 id="hello-world-2">Hello, world!<a name="hello-world-2"
|
56
|
+
href="#hello-world-2" class="md2man-permalink" title="permalink"></a></h2>
|
57
|
+
```
|
52
58
|
|
53
59
|
### Cross references
|
54
60
|
|
@@ -58,16 +64,20 @@ attributes.
|
|
58
64
|
|
59
65
|
For example, the `printf(3)` cross reference would be emitted as this HTML:
|
60
66
|
|
61
|
-
|
67
|
+
```html
|
68
|
+
<a class="md2man-reference" href="../man3/printf.3.html">printf(3)</a>
|
69
|
+
```
|
62
70
|
|
63
71
|
## OPTIONS
|
64
72
|
|
65
73
|
`-h` [*PATTERN*], `--help` [*PATTERN*]
|
66
|
-
Show this help manual and search for *PATTERN* regular expression
|
74
|
+
Show this help manual and optionally search for *PATTERN* regular expression.
|
67
75
|
|
68
76
|
## SEE ALSO
|
69
77
|
|
70
|
-
md2man-roff(1), md2man-rake(1), md2man(5)
|
78
|
+
md2man-roff(1), md2man-rake(1), md2man(5), [Markdown]
|
79
|
+
|
80
|
+
[Markdown]: http://daringfireball.net/projects/markdown/syntax
|
71
81
|
|
72
82
|
=end =========================================================================
|
73
83
|
|
data/bin/md2man-rake
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin =======================================================================
|
3
3
|
|
4
|
-
# MD2MAN-RAKE 1 2016-02-
|
4
|
+
# MD2MAN-RAKE 1 2016-02-28 5.1.0
|
5
5
|
|
6
6
|
## NAME
|
7
7
|
|
@@ -25,20 +25,21 @@ If no *TASK* is specified, then the `md2man` task is run by default.
|
|
25
25
|
`md2man`
|
26
26
|
Runs the `md2man:man` and `md2man:web` tasks, in that order.
|
27
27
|
|
28
|
-
`md2man:man`
|
28
|
+
`md2man:man` or `man`
|
29
29
|
Builds UNIX manual pages from `*.markdown`, `*.mkd`, and `*.md` files
|
30
30
|
found in or beneath the `man/` subdirectory in your working directory.
|
31
31
|
|
32
|
-
`md2man:web`
|
32
|
+
`md2man:web` or `web`
|
33
33
|
Builds HTML manual pages from `*.markdown`, `*.mkd`, and `*.md` files
|
34
34
|
found in or beneath the `man/` subdirectory in your working directory.
|
35
35
|
|
36
36
|
## OPTIONS
|
37
37
|
|
38
38
|
`-h` [*PATTERN*], `--help` [*PATTERN*]
|
39
|
-
Show this help manual and search for *PATTERN* regular expression
|
39
|
+
Show this help manual and optionally search for *PATTERN* regular expression.
|
40
40
|
|
41
|
-
|
41
|
+
...
|
42
|
+
Anything else is passed to rake(1); run `rake --help` for documentation.
|
42
43
|
|
43
44
|
## SEE ALSO
|
44
45
|
|
@@ -54,5 +55,7 @@ Rake.application.init File.basename(__FILE__)
|
|
54
55
|
|
55
56
|
require 'md2man/rakefile'
|
56
57
|
task :default => :md2man
|
58
|
+
task :man => 'md2man:man'
|
59
|
+
task :web => 'md2man:web'
|
57
60
|
|
58
61
|
Rake.application.top_level
|
data/bin/md2man-roff
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
=begin =======================================================================
|
3
3
|
|
4
|
-
# MD2MAN-ROFF 1 2016-02-
|
4
|
+
# MD2MAN-ROFF 1 2016-02-28 5.1.0
|
5
5
|
|
6
6
|
## NAME
|
7
7
|
|
8
|
-
md2man-roff - convert md2man(5) flavored
|
8
|
+
md2man-roff - convert md2man(5) flavored [Markdown] text into roff(7)
|
9
9
|
|
10
10
|
## SYNOPSIS
|
11
11
|
|
@@ -13,7 +13,7 @@ md2man-roff - convert md2man(5) flavored markdown(7) into roff(7)
|
|
13
13
|
|
14
14
|
## DESCRIPTION
|
15
15
|
|
16
|
-
This program converts md2man(5) flavored
|
16
|
+
This program converts the md2man(5) flavored [Markdown] text from the given
|
17
17
|
*FILE* into roff(7) and then prints the result to the standard output stream.
|
18
18
|
If *FILE* is not given, then the standard input stream is read in its place.
|
19
19
|
|
@@ -32,13 +32,14 @@ It issues a warning when it encounters these instead. Patches are welcome!
|
|
32
32
|
## OPTIONS
|
33
33
|
|
34
34
|
`-h` [*PATTERN*], `--help` [*PATTERN*]
|
35
|
-
Show this help manual and search for *PATTERN* regular expression
|
35
|
+
Show this help manual and optionally search for *PATTERN* regular expression.
|
36
36
|
|
37
37
|
## SEE ALSO
|
38
38
|
|
39
|
-
md2man-html(1), md2man-rake(1), md2man(5)
|
39
|
+
md2man-html(1), md2man-rake(1), md2man(5), [Markdown]
|
40
40
|
|
41
41
|
[Redcarpet]: https://github.com/vmg/redcarpet
|
42
|
+
[Markdown]: http://daringfireball.net/projects/markdown/syntax
|
42
43
|
|
43
44
|
=end =========================================================================
|
44
45
|
|
data/lib/md2man/html.rb
CHANGED
@@ -63,8 +63,14 @@ module Md2Man::HTML
|
|
63
63
|
].join
|
64
64
|
end
|
65
65
|
|
66
|
+
SYNTAX_HIGHLIGHTER = Class.new do
|
67
|
+
require 'rouge'
|
68
|
+
require 'rouge/plugins/redcarpet'
|
69
|
+
extend Rouge::Plugins::Redcarpet
|
70
|
+
end
|
71
|
+
|
66
72
|
def block_code code, language
|
67
|
-
|
73
|
+
SYNTAX_HIGHLIGHTER.block_code super, language
|
68
74
|
end
|
69
75
|
|
70
76
|
#---------------------------------------------------------------------------
|
data/lib/md2man/rakefile.rb
CHANGED
@@ -67,6 +67,12 @@ parse_manpage_info = lambda do |html_file_body|
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
+
build_html_title = lambda do |title, info|
|
71
|
+
# fallback to adding directory name for standalone titles, such as "README"
|
72
|
+
# and "man/index", so that users know what project those manuals belong to
|
73
|
+
[title, info || Dir.pwd.pathmap('%n')].join(' — ')
|
74
|
+
end
|
75
|
+
|
70
76
|
directory 'man'
|
71
77
|
|
72
78
|
file 'man/index.html' => ['man'] + webs do |t|
|
@@ -86,13 +92,19 @@ file 'man/index.html' => ['man'] + webs do |t|
|
|
86
92
|
buffer << '</div>'
|
87
93
|
content = buffer.join
|
88
94
|
|
89
|
-
title = t.name.pathmap('%X')
|
95
|
+
title = build_html_title.call(t.name.pathmap('%X'), nil)
|
90
96
|
output = wrap_html_template.call(title, content, nil)
|
91
97
|
File.open(t.name, 'w') {|f| f << output }
|
92
98
|
end
|
93
99
|
|
94
100
|
file 'man/style.css' => ['man', __FILE__.pathmap('%X/style.css')] do |t|
|
95
|
-
cp t.prerequisites.last, t.name
|
101
|
+
cp t.prerequisites.last, t.name
|
102
|
+
|
103
|
+
# add syntax highlighting theme
|
104
|
+
File.open(t.name, 'a') do |css|
|
105
|
+
require 'rouge'
|
106
|
+
css << Rouge::Themes::Github.render
|
107
|
+
end
|
96
108
|
end
|
97
109
|
|
98
110
|
mkds.zip(webs).each do |src, dst|
|
@@ -106,7 +118,7 @@ mkds.zip(webs).each do |src, dst|
|
|
106
118
|
|
107
119
|
name = parse_manpage_name.call(dst)
|
108
120
|
info = parse_manpage_info.call(output)
|
109
|
-
title =
|
121
|
+
title = build_html_title.call(name, info)
|
110
122
|
|
111
123
|
subdir = dst.pathmap('%d').sub('man/', '')
|
112
124
|
ascent = '../' * (dst.count('/') - 1)
|
data/lib/md2man/version.rb
CHANGED
data/man/index.html
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<meta charset="utf-8" />
|
5
|
-
<meta name="generator" content="md2man 5.0
|
6
|
-
<title>man/index</title>
|
5
|
+
<meta name="generator" content="md2man 5.1.0 https://github.com/sunaku/md2man" />
|
6
|
+
<title>man/index — md2man</title>
|
7
7
|
<link rel="stylesheet" href="style.css"/>
|
8
8
|
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
|
9
9
|
</head>
|
10
|
-
<body><div class="container-fluid"><h2 id="man0">man0</h2><dl class="dl-horizontal"><dt><a href="man0/EXAMPLE.html">EXAMPLE</a></dt><dd>frobnicate the bar library</dd></dl><dl class="dl-horizontal"><dt><a href="man0/README.html">README</a></dt><dd></dd></dl><dl class="dl-horizontal"><dt><a href="man0/VERSION.html">VERSION</a></dt><dd></dd></dl><h2 id="man1">man1</h2><dl class="dl-horizontal"><dt><a href="man1/md2man-html.1.html">md2man-html(1)</a></dt><dd>convert md2man(5) flavored
|
10
|
+
<body><div class="container-fluid"><h2 id="man0">man0</h2><dl class="dl-horizontal"><dt><a href="man0/EXAMPLE.html">EXAMPLE</a></dt><dd>frobnicate the bar library</dd></dl><dl class="dl-horizontal"><dt><a href="man0/README.html">README</a></dt><dd></dd></dl><dl class="dl-horizontal"><dt><a href="man0/VERSION.html">VERSION</a></dt><dd></dd></dl><h2 id="man1">man1</h2><dl class="dl-horizontal"><dt><a href="man1/md2man-html.1.html">md2man-html(1)</a></dt><dd>convert md2man(5) flavored Markdown text into HTML</dd></dl><dl class="dl-horizontal"><dt><a href="man1/md2man-rake.1.html">md2man-rake(1)</a></dt><dd>run rake(1) tasks from md2man(1)</dd></dl><dl class="dl-horizontal"><dt><a href="man1/md2man-roff.1.html">md2man-roff(1)</a></dt><dd>convert md2man(5) flavored Markdown text into roff(7)</dd></dl><h2 id="man5">man5</h2><dl class="dl-horizontal"><dt><a href="man5/md2man.5.html">md2man(5)</a></dt><dd>UNIX manual page flavoring for Markdown</dd></dl></div></body>
|
11
11
|
</html>
|
data/man/man0/EXAMPLE.html
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<meta charset="utf-8" />
|
5
|
-
<meta name="generator" content="md2man 5.0
|
5
|
+
<meta name="generator" content="md2man 5.1.0 https://github.com/sunaku/md2man" />
|
6
6
|
<title>EXAMPLE — frobnicate the bar library</title>
|
7
7
|
<link rel="stylesheet" href="../style.css"/>
|
8
8
|
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
|
data/man/man0/README.html
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<meta charset="utf-8" />
|
5
|
-
<meta name="generator" content="md2man 5.0
|
6
|
-
<title>README</title>
|
5
|
+
<meta name="generator" content="md2man 5.1.0 https://github.com/sunaku/md2man" />
|
6
|
+
<title>README — md2man</title>
|
7
7
|
<link rel="stylesheet" href="../style.css"/>
|
8
8
|
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
|
9
9
|
</head>
|
@@ -13,7 +13,7 @@
|
|
13
13
|
<li>Bugs: <a href="https://github.com/sunaku/md2man/issues">https://github.com/sunaku/md2man/issues</a></li>
|
14
14
|
</ul>
|
15
15
|
<h1 id="md2man-markdown-to-manpage"><span class="md2man-title">md2man</span> <span class="md2man-section">-</span> <span class="md2man-date">markdown</span> <span class="md2man-source">to</span> <span class="md2man-manual">manpage</span><a name="md2man-markdown-to-manpage" href="#md2man-markdown-to-manpage" class="md2man-permalink" title="permalink"></a></h1><p>md2man is a Ruby library and a set of command-line programs that convert
|
16
|
-
<a href="http://daringfireball.net/projects/markdown/">Markdown</a> into UNIX
|
16
|
+
<a href="http://daringfireball.net/projects/markdown/">Markdown</a> into UNIX manpages as well as HTML webpages using <a href="https://github.com/vmg/redcarpet">Redcarpet</a>.</p><h2 id="features">Features<a name="features" href="#features" class="md2man-permalink" title="permalink"></a></h2>
|
17
17
|
<ul>
|
18
18
|
<li><p>Formats indented, tagged, and normal paragraphs: described in <a class="md2man-reference" href="../man5/md2man.5.html">md2man(5)</a>.</p></li>
|
19
19
|
<li><p>Translates all HTML4 and XHTML1 entities into native <a href="http://troff.org">roff</a> equivalents.</p></li>
|
@@ -23,101 +23,101 @@
|
|
23
23
|
<h3 id="examples">Examples<a name="examples" href="#examples" class="md2man-permalink" title="permalink"></a></h3><p>Try converting
|
24
24
|
<a href="https://raw.github.com/sunaku/md2man/master/EXAMPLE.markdown">this example Markdown file</a>
|
25
25
|
into
|
26
|
-
<a href="https://github.com/sunaku/md2man/raw/gh-pages/man/man0/EXAMPLE">a UNIX manual page</a>:</p><pre><code>md2man-roff EXAMPLE.markdown > EXAMPLE.1
|
26
|
+
<a href="https://github.com/sunaku/md2man/raw/gh-pages/man/man0/EXAMPLE">a UNIX manual page</a>:</p><pre class="highlight shell"><code>md2man-roff EXAMPLE.markdown > EXAMPLE.1
|
27
27
|
</code></pre>
|
28
28
|
<p>You can view <a href="https://github.com/sunaku/md2man/raw/gh-pages/man/man0/EXAMPLE">the resulting UNIX manual page</a> in your <a class="md2man-reference">man(1)</a>
|
29
|
-
viewer:</p><pre><code>man -l EXAMPLE.1
|
29
|
+
viewer:</p><pre class="highlight shell"><code>man -l EXAMPLE.1
|
30
30
|
</code></pre>
|
31
31
|
<p><img src="https://github.com/sunaku/md2man/raw/gh-pages/EXAMPLE.png" alt="screenshot"></p><p>Next, try converting
|
32
32
|
<a href="https://raw.github.com/sunaku/md2man/master/EXAMPLE.markdown">the same example file</a>
|
33
33
|
into
|
34
|
-
<a href="https://sunaku.github.io/md2man/man/man0/EXAMPLE.html">a HTML web page</a>:</p><pre><code>md2man-html EXAMPLE.markdown > EXAMPLE.html
|
34
|
+
<a href="https://sunaku.github.io/md2man/man/man0/EXAMPLE.html">a HTML web page</a>:</p><pre class="highlight shell"><code>md2man-html EXAMPLE.markdown > EXAMPLE.html
|
35
35
|
</code></pre>
|
36
36
|
<p>You can view <a href="https://sunaku.github.io/md2man/man/man0/EXAMPLE.html">the resulting HTML manual page</a> in your web
|
37
|
-
browser:</p><pre><code>firefox EXAMPLE.html
|
37
|
+
browser:</p><pre class="highlight shell"><code>firefox EXAMPLE.html
|
38
38
|
</code></pre>
|
39
|
-
<h2 id="installation">Installation<a name="installation" href="#installation" class="md2man-permalink" title="permalink"></a></h2><pre><code>gem install md2man
|
39
|
+
<h2 id="installation">Installation<a name="installation" href="#installation" class="md2man-permalink" title="permalink"></a></h2><pre class="highlight shell"><code>gem install md2man
|
40
40
|
</code></pre>
|
41
|
-
<h3 id="development">Development<a name="development" href="#development" class="md2man-permalink" title="permalink"></a></h3><pre><code>git clone https://github.com/sunaku/md2man
|
42
|
-
cd md2man
|
41
|
+
<h3 id="development">Development<a name="development" href="#development" class="md2man-permalink" title="permalink"></a></h3><pre class="highlight shell"><code>git clone https://github.com/sunaku/md2man
|
42
|
+
<span class="nb">cd </span>md2man
|
43
43
|
bundle install
|
44
|
-
bundle exec rake --tasks
|
45
|
-
bundle exec md2man-roff --help
|
46
|
-
bundle exec md2man-html --help
|
44
|
+
bundle <span class="nb">exec </span>rake --tasks <span class="c"># packaging tasks</span>
|
45
|
+
bundle <span class="nb">exec </span>md2man-roff --help <span class="c"># run it directly</span>
|
46
|
+
bundle <span class="nb">exec </span>md2man-html --help <span class="c"># run it directly</span>
|
47
47
|
</code></pre>
|
48
|
-
<h2 id="usage">Usage<a name="usage" href="#usage" class="md2man-permalink" title="permalink"></a></h2><h3 id="for-roff-output">For <a href="http://troff.org">roff</a> output<a name="for-roff-output" href="#for-roff-output" class="md2man-permalink" title="permalink"></a></h3><h4 id="at-the-command-line">At the command line<a name="at-the-command-line" href="#at-the-command-line" class="md2man-permalink" title="permalink"></a></h4><p>See <a class="md2man-reference" href="../man1/md2man-roff.1.html">md2man-roff(1)</a> manual:</p><pre><code>md2man-roff --help
|
48
|
+
<h2 id="usage">Usage<a name="usage" href="#usage" class="md2man-permalink" title="permalink"></a></h2><h3 id="for-roff-output">For <a href="http://troff.org">roff</a> output<a name="for-roff-output" href="#for-roff-output" class="md2man-permalink" title="permalink"></a></h3><h4 id="at-the-command-line">At the command line<a name="at-the-command-line" href="#at-the-command-line" class="md2man-permalink" title="permalink"></a></h4><p>See <a class="md2man-reference" href="../man1/md2man-roff.1.html">md2man-roff(1)</a> manual:</p><pre class="highlight shell"><code>md2man-roff --help
|
49
49
|
</code></pre>
|
50
|
-
<h4 id="inside-a-ruby-script">Inside a Ruby script<a name="inside-a-ruby-script" href="#inside-a-ruby-script" class="md2man-permalink" title="permalink"></a></h4><p>Use the default renderer:</p><pre><code>require
|
50
|
+
<h4 id="inside-a-ruby-script">Inside a Ruby script<a name="inside-a-ruby-script" href="#inside-a-ruby-script" class="md2man-permalink" title="permalink"></a></h4><p>Use the default renderer:</p><pre class="highlight ruby"><code><span class="nb">require</span> <span class="s1">'md2man/roff/engine'</span>
|
51
51
|
|
52
|
-
your_roff_output = Md2Man
|
52
|
+
<span class="n">your_roff_output</span> <span class="o">=</span> <span class="no">Md2Man</span><span class="o">::</span><span class="no">Roff</span><span class="o">::</span><span class="no">ENGINE</span><span class="p">.</span><span class="nf">render</span><span class="p">(</span><span class="n">your_markdown_input</span><span class="p">)</span>
|
53
53
|
</code></pre>
|
54
|
-
<p>Build your own renderer:</p><pre><code>require
|
54
|
+
<p>Build your own renderer:</p><pre class="highlight ruby"><code><span class="nb">require</span> <span class="s1">'md2man/roff/engine'</span>
|
55
55
|
|
56
|
-
engine = Redcarpet
|
57
|
-
your_roff_output = engine
|
56
|
+
<span class="n">engine</span> <span class="o">=</span> <span class="no">Redcarpet</span><span class="o">::</span><span class="no">Markdown</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="no">Md2Man</span><span class="o">::</span><span class="no">Roff</span><span class="o">::</span><span class="no">Engine</span><span class="p">,</span> <span class="n">your_options_hash</span><span class="p">)</span>
|
57
|
+
<span class="n">your_roff_output</span> <span class="o">=</span> <span class="n">engine</span><span class="p">.</span><span class="nf">render</span><span class="p">(</span><span class="n">your_markdown_input</span><span class="p">)</span>
|
58
58
|
</code></pre>
|
59
|
-
<p>Define your own renderer:</p><pre><code>require
|
59
|
+
<p>Define your own renderer:</p><pre class="highlight ruby"><code><span class="nb">require</span> <span class="s1">'md2man/roff/engine'</span>
|
60
60
|
|
61
|
-
class YourManpageRenderer
|
62
|
-
|
63
|
-
end
|
61
|
+
<span class="k">class</span> <span class="nc">YourManpageRenderer</span> <span class="o"><</span> <span class="no">Md2Man</span><span class="o">::</span><span class="no">Roff</span><span class="o">::</span><span class="no">Engine</span>
|
62
|
+
<span class="c1"># ... your stuff here ...</span>
|
63
|
+
<span class="k">end</span>
|
64
64
|
|
65
|
-
engine = Redcarpet
|
66
|
-
your_roff_output = engine
|
65
|
+
<span class="n">engine</span> <span class="o">=</span> <span class="no">Redcarpet</span><span class="o">::</span><span class="no">Markdown</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="no">YourManpageRenderer</span><span class="p">,</span> <span class="n">your_options_hash</span><span class="p">)</span>
|
66
|
+
<span class="n">your_roff_output</span> <span class="o">=</span> <span class="n">engine</span><span class="p">.</span><span class="nf">render</span><span class="p">(</span><span class="n">your_markdown_input</span><span class="p">)</span>
|
67
67
|
</code></pre>
|
68
|
-
<p>Mix-in your own renderer:</p><pre><code>require
|
68
|
+
<p>Mix-in your own renderer:</p><pre class="highlight ruby"><code><span class="nb">require</span> <span class="s1">'md2man/roff'</span>
|
69
69
|
|
70
|
-
class YourManpageRenderer
|
71
|
-
include Md2Man
|
72
|
-
|
73
|
-
end
|
70
|
+
<span class="k">class</span> <span class="nc">YourManpageRenderer</span> <span class="o"><</span> <span class="no">Redcarpet</span><span class="o">::</span><span class="no">Render</span><span class="o">::</span><span class="no">Base</span>
|
71
|
+
<span class="kp">include</span> <span class="no">Md2Man</span><span class="o">::</span><span class="no">Roff</span>
|
72
|
+
<span class="c1"># ... your stuff here ...</span>
|
73
|
+
<span class="k">end</span>
|
74
74
|
|
75
|
-
engine = Redcarpet
|
76
|
-
your_roff_output = engine
|
75
|
+
<span class="n">engine</span> <span class="o">=</span> <span class="no">Redcarpet</span><span class="o">::</span><span class="no">Markdown</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="no">YourManpageRenderer</span><span class="p">,</span> <span class="n">your_options_hash</span><span class="p">)</span>
|
76
|
+
<span class="n">your_roff_output</span> <span class="o">=</span> <span class="n">engine</span><span class="p">.</span><span class="nf">render</span><span class="p">(</span><span class="n">your_markdown_input</span><span class="p">)</span>
|
77
77
|
</code></pre>
|
78
|
-
<h3 id="for-html-output">For HTML output<a name="for-html-output" href="#for-html-output" class="md2man-permalink" title="permalink"></a></h3><h4 id="at-the-command-line-1">At the command line<a name="at-the-command-line-1" href="#at-the-command-line-1" class="md2man-permalink" title="permalink"></a></h4><p>See <a class="md2man-reference" href="../man1/md2man-html.1.html">md2man-html(1)</a> manual:</p><pre><code>md2man-html --help
|
78
|
+
<h3 id="for-html-output">For HTML output<a name="for-html-output" href="#for-html-output" class="md2man-permalink" title="permalink"></a></h3><h4 id="at-the-command-line-1">At the command line<a name="at-the-command-line-1" href="#at-the-command-line-1" class="md2man-permalink" title="permalink"></a></h4><p>See <a class="md2man-reference" href="../man1/md2man-html.1.html">md2man-html(1)</a> manual:</p><pre class="highlight shell"><code>md2man-html --help
|
79
79
|
</code></pre>
|
80
|
-
<h4 id="inside-a-ruby-script-1">Inside a Ruby script<a name="inside-a-ruby-script-1" href="#inside-a-ruby-script-1" class="md2man-permalink" title="permalink"></a></h4><p>Use the default renderer:</p><pre><code>require
|
80
|
+
<h4 id="inside-a-ruby-script-1">Inside a Ruby script<a name="inside-a-ruby-script-1" href="#inside-a-ruby-script-1" class="md2man-permalink" title="permalink"></a></h4><p>Use the default renderer:</p><pre class="highlight ruby"><code><span class="nb">require</span> <span class="s1">'md2man/html/engine'</span>
|
81
81
|
|
82
|
-
your_html_output = Md2Man
|
82
|
+
<span class="n">your_html_output</span> <span class="o">=</span> <span class="no">Md2Man</span><span class="o">::</span><span class="no">HTML</span><span class="o">::</span><span class="no">ENGINE</span><span class="p">.</span><span class="nf">render</span><span class="p">(</span><span class="n">your_markdown_input</span><span class="p">)</span>
|
83
83
|
</code></pre>
|
84
|
-
<p>Build your own renderer:</p><pre><code>require
|
84
|
+
<p>Build your own renderer:</p><pre class="highlight ruby"><code><span class="nb">require</span> <span class="s1">'md2man/html/engine'</span>
|
85
85
|
|
86
|
-
engine = Redcarpet
|
87
|
-
your_html_output = engine
|
86
|
+
<span class="n">engine</span> <span class="o">=</span> <span class="no">Redcarpet</span><span class="o">::</span><span class="no">Markdown</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="no">Md2Man</span><span class="o">::</span><span class="no">HTML</span><span class="o">::</span><span class="no">Engine</span><span class="p">,</span> <span class="n">your_options_hash</span><span class="p">)</span>
|
87
|
+
<span class="n">your_html_output</span> <span class="o">=</span> <span class="n">engine</span><span class="p">.</span><span class="nf">render</span><span class="p">(</span><span class="n">your_markdown_input</span><span class="p">)</span>
|
88
88
|
</code></pre>
|
89
|
-
<p>Define your own renderer:</p><pre><code>require
|
89
|
+
<p>Define your own renderer:</p><pre class="highlight ruby"><code><span class="nb">require</span> <span class="s1">'md2man/html/engine'</span>
|
90
90
|
|
91
|
-
class YourManpageRenderer
|
92
|
-
|
93
|
-
end
|
91
|
+
<span class="k">class</span> <span class="nc">YourManpageRenderer</span> <span class="o"><</span> <span class="no">Md2Man</span><span class="o">::</span><span class="no">HTML</span><span class="o">::</span><span class="no">Engine</span>
|
92
|
+
<span class="c1"># ... your stuff here ...</span>
|
93
|
+
<span class="k">end</span>
|
94
94
|
|
95
|
-
engine = Redcarpet
|
96
|
-
your_html_output = engine
|
95
|
+
<span class="n">engine</span> <span class="o">=</span> <span class="no">Redcarpet</span><span class="o">::</span><span class="no">Markdown</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="no">YourManpageRenderer</span><span class="p">,</span> <span class="n">your_options_hash</span><span class="p">)</span>
|
96
|
+
<span class="n">your_html_output</span> <span class="o">=</span> <span class="n">engine</span><span class="p">.</span><span class="nf">render</span><span class="p">(</span><span class="n">your_markdown_input</span><span class="p">)</span>
|
97
97
|
</code></pre>
|
98
|
-
<p>Mix-in your own renderer:</p><pre><code>require
|
98
|
+
<p>Mix-in your own renderer:</p><pre class="highlight ruby"><code><span class="nb">require</span> <span class="s1">'md2man/html'</span>
|
99
99
|
|
100
|
-
class YourManpageRenderer
|
101
|
-
include Md2Man
|
102
|
-
|
103
|
-
end
|
100
|
+
<span class="k">class</span> <span class="nc">YourManpageRenderer</span> <span class="o"><</span> <span class="no">Redcarpet</span><span class="o">::</span><span class="no">Render</span><span class="o">::</span><span class="no">Base</span>
|
101
|
+
<span class="kp">include</span> <span class="no">Md2Man</span><span class="o">::</span><span class="no">HTML</span>
|
102
|
+
<span class="c1"># ... your stuff here ...</span>
|
103
|
+
<span class="k">end</span>
|
104
104
|
|
105
|
-
engine = Redcarpet
|
106
|
-
your_html_output = engine
|
105
|
+
<span class="n">engine</span> <span class="o">=</span> <span class="no">Redcarpet</span><span class="o">::</span><span class="no">Markdown</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="no">YourManpageRenderer</span><span class="p">,</span> <span class="n">your_options_hash</span><span class="p">)</span>
|
106
|
+
<span class="n">your_html_output</span> <span class="o">=</span> <span class="n">engine</span><span class="p">.</span><span class="nf">render</span><span class="p">(</span><span class="n">your_markdown_input</span><span class="p">)</span>
|
107
107
|
</code></pre>
|
108
|
-
<h3 id="building-
|
108
|
+
<h3 id="building-manpages">Building manpages<a name="building-manpages" href="#building-manpages" class="md2man-permalink" title="permalink"></a></h3><h4 id="at-the-command-line-2">At the command line<a name="at-the-command-line-2" href="#at-the-command-line-2" class="md2man-permalink" title="permalink"></a></h4><p>See <a class="md2man-reference" href="../man1/md2man-rake.1.html">md2man-rake(1)</a> manual:</p><pre class="highlight shell"><code>md2man-rake --help
|
109
109
|
</code></pre>
|
110
|
-
<h4 id="inside-a-ruby-script-2">Inside a Ruby script<a name="inside-a-ruby-script-2" href="#inside-a-ruby-script-2" class="md2man-permalink" title="permalink"></a></h4><p>Add this snippet to your gemspec file:</p><pre><code>s
|
111
|
-
s
|
112
|
-
s
|
110
|
+
<h4 id="inside-a-ruby-script-2">Inside a Ruby script<a name="inside-a-ruby-script-2" href="#inside-a-ruby-script-2" class="md2man-permalink" title="permalink"></a></h4><p>Add this snippet to your gemspec file:</p><pre class="highlight ruby"><code><span class="n">s</span><span class="p">.</span><span class="nf">files</span> <span class="o">+=</span> <span class="no">Dir</span><span class="p">[</span><span class="s1">'man/man?/*.?'</span><span class="p">]</span> <span class="c1"># UNIX manpages</span>
|
111
|
+
<span class="n">s</span><span class="p">.</span><span class="nf">files</span> <span class="o">+=</span> <span class="no">Dir</span><span class="p">[</span><span class="s1">'man/**/*.{html,css}'</span><span class="p">]</span> <span class="c1"># HTML manpages</span>
|
112
|
+
<span class="n">s</span><span class="p">.</span><span class="nf">add_development_dependency</span> <span class="s1">'md2man'</span><span class="p">,</span> <span class="s1">'~> 5.0'</span>
|
113
113
|
</code></pre>
|
114
|
-
<p>Add this line to your Rakefile:</p><pre><code>require
|
114
|
+
<p>Add this line to your Rakefile:</p><pre class="highlight ruby"><code><span class="nb">require</span> <span class="s1">'md2man/rakefile'</span>
|
115
115
|
</code></pre>
|
116
116
|
<p>You now have a <code>rake md2man</code> task that builds manual pages from Markdown files
|
117
117
|
(with ".markdown", ".mkd", or ".md" extension) inside <code>man/man*/</code> directories.
|
118
118
|
There are also sub-tasks to build manual pages individually as <a href="http://troff.org">roff</a> or HTML.</p><p>If you're using Bundler, this task also hooks into Bundler's gem packaging
|
119
|
-
tasks and ensures that your manual pages are built for packaging into a gem:</p><pre><code>bundle exec rake build
|
120
|
-
gem spec pkg
|
119
|
+
tasks and ensures that your manual pages are built for packaging into a gem:</p><pre class="highlight ruby"><code><span class="n">bundle</span> <span class="nb">exec</span> <span class="n">rake</span> <span class="n">build</span>
|
120
|
+
<span class="n">gem</span> <span class="n">spec</span> <span class="n">pkg</span><span class="o">/*</span><span class="p">.</span><span class="nf">gem</span> <span class="o">|</span> <span class="n">fgrep</span> <span class="n">man</span><span class="o">/</span>
|
121
121
|
</code></pre>
|
122
122
|
<h2 id="license">License<a name="license" href="#license" class="md2man-permalink" title="permalink"></a></h2><p>Released under the ISC license. See the LICENSE file for details.</p></div></body>
|
123
123
|
</html>
|