md2man 1.0.2 → 1.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.
- data/HISTORY.markdown +43 -22
- data/README.markdown +11 -13
- data/bin/md2man +1 -1
- data/lib/md2man/document.rb +14 -0
- data/lib/md2man/roff.rb +9 -4
- data/lib/md2man/version.rb +1 -1
- data/man/man1/md2man.1 +2 -2
- data/md2man.gemspec +6 -5
- metadata +32 -12
data/HISTORY.markdown
CHANGED
@@ -1,54 +1,75 @@
|
|
1
|
+
------------------------------------------------------------------------------
|
2
|
+
Version 1.1.0 (2012-02-02)
|
3
|
+
------------------------------------------------------------------------------
|
4
|
+
|
5
|
+
Improvements:
|
6
|
+
|
7
|
+
* Add `Md2Man::Document` module for programmatic processing of
|
8
|
+
cross-references to other UNIX manual pages within Redcarpet.
|
9
|
+
|
10
|
+
Housekeeping:
|
11
|
+
|
12
|
+
* README: not all systems support `man -l` option.
|
13
|
+
|
14
|
+
* gemspec: upgrade to redcarpet 2.1.0.
|
15
|
+
|
16
|
+
* bundler suggests moving all dev deps into gemspec.
|
17
|
+
|
18
|
+
* README: fix installation commands for development.
|
19
|
+
|
20
|
+
* README: simplify project slogan to be more memorable.
|
21
|
+
|
1
22
|
------------------------------------------------------------------------------
|
2
23
|
Version 1.0.2 (2012-01-09)
|
3
24
|
------------------------------------------------------------------------------
|
4
25
|
|
5
|
-
|
26
|
+
Corrections:
|
6
27
|
|
7
|
-
* Blockquote's leading paragraph regexp was not anchored.
|
28
|
+
* Blockquote's leading paragraph regexp was not anchored.
|
8
29
|
|
9
|
-
*
|
30
|
+
* Freezing internal constants prevents monkey patching.
|
10
31
|
|
11
|
-
|
32
|
+
Housekeeping:
|
12
33
|
|
13
|
-
* Upgraded to Binman 3 for better interoperability with Bundler.
|
34
|
+
* Upgraded to Binman 3 for better interoperability with Bundler.
|
14
35
|
|
15
|
-
*
|
36
|
+
* Added example input file from the Linux Man Page Howto.
|
16
37
|
|
17
|
-
* Forgot to change project slogan in the gem package.
|
38
|
+
* Forgot to change project slogan in the gem package.
|
18
39
|
|
19
40
|
------------------------------------------------------------------------------
|
20
41
|
Version 1.0.1 (2011-12-06)
|
21
42
|
------------------------------------------------------------------------------
|
22
43
|
|
23
|
-
|
44
|
+
Divergences:
|
24
45
|
|
25
|
-
* Renamed the project from "redcarpet-manpage" to "md2man".
|
46
|
+
* Renamed the project from "redcarpet-manpage" to "md2man".
|
26
47
|
|
27
|
-
|
48
|
+
* `RedcarpetManpage::Renderer` is now `Md2Man::Engine`.
|
28
49
|
|
29
|
-
|
50
|
+
* `RedcarpetManpage::RENDERER` is now `Md2Man::ENGINE`.
|
30
51
|
|
31
|
-
* Tagged paragraphs no longer require the first line to begin with italic or
|
32
|
-
|
52
|
+
* Tagged paragraphs no longer require the first line to begin with italic or
|
53
|
+
bold styling. All that matters is that the subsequent lines are indented.
|
33
54
|
|
34
|
-
|
55
|
+
Improvements:
|
35
56
|
|
36
|
-
* Added md2man(1) executable for command-line usage.
|
57
|
+
* Added md2man(1) executable for command-line usage.
|
37
58
|
|
38
|
-
* Added support for all HTML 4.0 and XHTML 1.0 entities.
|
59
|
+
* Added support for all HTML 4.0 and XHTML 1.0 entities.
|
39
60
|
|
40
|
-
* Added support for tables, horizontal rules, and more.
|
61
|
+
* Added support for tables, horizontal rules, and more.
|
41
62
|
|
42
|
-
* Added `Md2Man::Roff` mixin for advanced Redcarpet2 usage.
|
63
|
+
* Added `Md2Man::Roff` mixin for advanced Redcarpet2 usage.
|
43
64
|
|
44
|
-
* Improved README with some new and revised documentation.
|
65
|
+
* Improved README with some new and revised documentation.
|
45
66
|
|
46
|
-
|
67
|
+
Housekeeping:
|
47
68
|
|
48
|
-
* Rewrote entire Markdown to Roff conversion from scratch while doing TDD.
|
69
|
+
* Rewrote entire Markdown to Roff conversion from scratch while doing TDD.
|
49
70
|
|
50
71
|
------------------------------------------------------------------------------
|
51
72
|
Version 0.0.1 (2011-10-13)
|
52
73
|
------------------------------------------------------------------------------
|
53
74
|
|
54
|
-
|
75
|
+
First release! Happy birthday! Woohoo! :-)
|
data/README.markdown
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
md2man -
|
1
|
+
md2man - markdown to manpage
|
2
2
|
==============================================================================
|
3
3
|
|
4
4
|
md2man is a Ruby library and command-line program that converts [Markdown]
|
@@ -15,7 +15,7 @@ Demonstration
|
|
15
15
|
|
16
16
|
Try converting [this example Markdown file][example] into a UNIX man page:
|
17
17
|
|
18
|
-
md2man EXAMPLE.markdown
|
18
|
+
md2man EXAMPLE.markdown > EXAMPLE.man && man ./EXAMPLE.man
|
19
19
|
|
20
20
|

|
21
21
|
|
@@ -23,27 +23,25 @@ Try converting [this example Markdown file][example] into a UNIX man page:
|
|
23
23
|
Installation
|
24
24
|
------------------------------------------------------------------------------
|
25
25
|
|
26
|
-
As a Ruby gem:
|
27
|
-
|
28
26
|
gem install md2man
|
29
27
|
|
30
|
-
|
28
|
+
### Development
|
31
29
|
|
32
30
|
git clone git://github.com/sunaku/md2man
|
33
31
|
cd md2man
|
34
|
-
bundle install
|
32
|
+
bundle install --binstubs=bundle_bin
|
33
|
+
bundle_bin/md2man --help # run it directly
|
34
|
+
bundle exec rake -T # packaging tasks
|
35
35
|
|
36
36
|
------------------------------------------------------------------------------
|
37
|
-
|
37
|
+
Usage
|
38
38
|
------------------------------------------------------------------------------
|
39
39
|
|
40
|
-
|
40
|
+
### At the command line
|
41
41
|
|
42
42
|
md2man --help
|
43
43
|
|
44
|
-
|
45
|
-
Library Usage
|
46
|
-
------------------------------------------------------------------------------
|
44
|
+
### In your Ruby scripts
|
47
45
|
|
48
46
|
Use the default renderer:
|
49
47
|
|
@@ -80,7 +78,7 @@ Mix-in your own renderer:
|
|
80
78
|
your_roff_output = engine.render(your_markdown_input)
|
81
79
|
|
82
80
|
------------------------------------------------------------------------------
|
83
|
-
Document
|
81
|
+
Document format
|
84
82
|
------------------------------------------------------------------------------
|
85
83
|
|
86
84
|
md2man attaches the following additional semantics to its [Markdown] input:
|
@@ -97,7 +95,7 @@ md2man attaches the following additional semantics to its [Markdown] input:
|
|
97
95
|
are unindented accordingly before emission as `.TP` in the [Roff] output.
|
98
96
|
|
99
97
|
------------------------------------------------------------------------------
|
100
|
-
|
98
|
+
Known issues
|
101
99
|
------------------------------------------------------------------------------
|
102
100
|
|
103
101
|
At present, md2man does not translate the following [Redcarpet2] node types:
|
data/bin/md2man
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
module Md2Man
|
2
|
+
module Document
|
3
|
+
|
4
|
+
def postprocess document
|
5
|
+
# encode references to other manual pages
|
6
|
+
document.gsub(/(\S+)\(([1-9nol])\)([[:punct:]]?\s*)/){ reference $1,$2,$3 }
|
7
|
+
end
|
8
|
+
|
9
|
+
def reference page, section, addendum
|
10
|
+
warn "md2man/document: reference not implemented: #{page}(#{section})"
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
data/lib/md2man/roff.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
+
require 'md2man/document'
|
2
|
+
|
1
3
|
module Md2Man
|
2
4
|
module Roff
|
3
5
|
|
6
|
+
include Document
|
7
|
+
|
4
8
|
#---------------------------------------------------------------------------
|
5
9
|
# document-level processing
|
6
10
|
#---------------------------------------------------------------------------
|
@@ -12,14 +16,11 @@ module Roff
|
|
12
16
|
end
|
13
17
|
|
14
18
|
def postprocess document
|
15
|
-
|
19
|
+
super.strip.
|
16
20
|
|
17
21
|
# ensure that spaces after URLs appear properly
|
18
22
|
gsub(/(?<=^\.[UM]E) \s/, "\n").
|
19
23
|
|
20
|
-
# encode references to other man pages as "hyperlinks"
|
21
|
-
gsub(/(\S+)(\([1-9nol]\)[[:punct:]]?\s*)/, "\n.BR \\1 \\2\n").
|
22
|
-
|
23
24
|
# squeeze blank lines to prevent double-spaced output
|
24
25
|
gsub(/^\n/, '')
|
25
26
|
end
|
@@ -130,6 +131,10 @@ module Roff
|
|
130
131
|
# span-level processing
|
131
132
|
#---------------------------------------------------------------------------
|
132
133
|
|
134
|
+
def reference page, section, addendum
|
135
|
+
"\n.BR #{page} (#{section})#{addendum}\n"
|
136
|
+
end
|
137
|
+
|
133
138
|
def linebreak
|
134
139
|
"\n.br\n"
|
135
140
|
end
|
data/lib/md2man/version.rb
CHANGED
data/man/man1/md2man.1
CHANGED
data/md2man.gemspec
CHANGED
@@ -8,15 +8,16 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.authors,
|
9
9
|
s.email = File.read('LICENSE').scan(/Copyright \d+ (.+) <(.+?)>/).transpose
|
10
10
|
s.homepage = "http://github.com/sunaku/md2man"
|
11
|
-
s.summary = "
|
12
|
-
s.description =
|
11
|
+
s.summary = "Markdown to manpage."
|
12
|
+
s.description = "Write UNIX man pages in Markdown."
|
13
13
|
|
14
14
|
s.files = `git ls-files`.split("\n") + Dir["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"]
|
18
18
|
|
19
|
-
s.add_runtime_dependency
|
20
|
-
s.add_runtime_dependency
|
21
|
-
s.add_development_dependency
|
19
|
+
s.add_runtime_dependency 'binman', '~> 3'
|
20
|
+
s.add_runtime_dependency 'redcarpet', '>= 2.1.0', '< 3'
|
21
|
+
s.add_development_dependency 'minitest', '>= 2.7.0', '< 3'
|
22
|
+
s.add_development_dependency 'rake', '>= 0.9.2.2', '< 1'
|
22
23
|
end
|
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.0
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-02-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: binman
|
16
|
-
requirement: &
|
16
|
+
requirement: &24893480 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,24 +21,24 @@ dependencies:
|
|
21
21
|
version: '3'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *24893480
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: redcarpet
|
27
|
-
requirement: &
|
27
|
+
requirement: &24892820 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 2.0
|
32
|
+
version: 2.1.0
|
33
33
|
- - <
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: '3'
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
|
-
version_requirements: *
|
38
|
+
version_requirements: *24892820
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: minitest
|
41
|
-
requirement: &
|
41
|
+
requirement: &24891000 !ruby/object:Gem::Requirement
|
42
42
|
none: false
|
43
43
|
requirements:
|
44
44
|
- - ! '>='
|
@@ -49,8 +49,22 @@ dependencies:
|
|
49
49
|
version: '3'
|
50
50
|
type: :development
|
51
51
|
prerelease: false
|
52
|
-
version_requirements: *
|
53
|
-
|
52
|
+
version_requirements: *24891000
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: rake
|
55
|
+
requirement: &24888980 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - ! '>='
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 0.9.2.2
|
61
|
+
- - <
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '1'
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: *24888980
|
67
|
+
description: Write UNIX man pages in Markdown.
|
54
68
|
email:
|
55
69
|
- sunaku@gmail.com
|
56
70
|
executables:
|
@@ -67,6 +81,7 @@ files:
|
|
67
81
|
- Rakefile
|
68
82
|
- bin/md2man
|
69
83
|
- lib/md2man.rb
|
84
|
+
- lib/md2man/document.rb
|
70
85
|
- lib/md2man/engine.rb
|
71
86
|
- lib/md2man/roff.rb
|
72
87
|
- lib/md2man/version.rb
|
@@ -86,19 +101,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
86
101
|
- - ! '>='
|
87
102
|
- !ruby/object:Gem::Version
|
88
103
|
version: '0'
|
104
|
+
segments:
|
105
|
+
- 0
|
106
|
+
hash: -102355908338846194
|
89
107
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
108
|
none: false
|
91
109
|
requirements:
|
92
110
|
- - ! '>='
|
93
111
|
- !ruby/object:Gem::Version
|
94
112
|
version: '0'
|
113
|
+
segments:
|
114
|
+
- 0
|
115
|
+
hash: -102355908338846194
|
95
116
|
requirements: []
|
96
117
|
rubyforge_project:
|
97
118
|
rubygems_version: 1.8.11
|
98
119
|
signing_key:
|
99
120
|
specification_version: 3
|
100
|
-
summary:
|
121
|
+
summary: Markdown to manpage.
|
101
122
|
test_files:
|
102
123
|
- test/md2man/roff_test.rb
|
103
124
|
- test/test_helper.rb
|
104
|
-
has_rdoc:
|