md2man 1.0.2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
![Obligatory screenshot of md2man(1) in action!](http://ompldr.org/vYnFvbw)
|
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:
|