kramdown-man 0.1.8 → 0.1.9
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/.github/workflows/ruby.yml +4 -9
- data/ChangeLog.md +6 -0
- data/LICENSE.txt +1 -1
- data/README.md +7 -6
- data/Rakefile +1 -1
- data/gemspec.yml +7 -0
- data/kramdown-man.gemspec +2 -1
- data/lib/kramdown/converter/man.rb +19 -11
- data/lib/kramdown/man/task.rb +2 -0
- data/lib/kramdown/man/version.rb +3 -1
- data/lib/kramdown/man.rb +2 -0
- data/man/kramdown-man.1 +26 -5
- data/man/kramdown-man.1.md +19 -2
- data/spec/{kramdown/converter → converter}/man_spec.rb +26 -9
- data/spec/{kramdown/document_spec.rb → document_spec.rb} +2 -2
- data/spec/{kramdown/man_spec.rb → man_spec.rb} +1 -1
- metadata +15 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dda435844039b4d61396829d332060c2db27506a3a7eee5d9859e09d9bd49e42
|
4
|
+
data.tar.gz: 46fcc59f2081b7aef517ab9e0e280c4961d370aecca163d78f69a8b3f26298dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d81ca83bdb40321fd8ab52f2c15dc7e94d585641bac442e214a5acb4e9840f2ac38c4e4cb180d6ac03fac6852c3aeacd723988ca93bf837a226912f30cbc2f9e
|
7
|
+
data.tar.gz: 218ca5e6ee857373114abe7d50747cfa89337c0f7a172ee599fbc4e82e60cfb66f12e6ed291dc7d37d904713c0692bde5d8b1fa191d132c1578aa528832de7a8
|
data/.github/workflows/ruby.yml
CHANGED
@@ -1,10 +1,6 @@
|
|
1
1
|
name: CI
|
2
2
|
|
3
|
-
on:
|
4
|
-
push:
|
5
|
-
branches: [ master ]
|
6
|
-
pull_request:
|
7
|
-
branches: ['**']
|
3
|
+
on: [ push, pull_request ]
|
8
4
|
|
9
5
|
jobs:
|
10
6
|
tests:
|
@@ -13,12 +9,11 @@ jobs:
|
|
13
9
|
fail-fast: false
|
14
10
|
matrix:
|
15
11
|
ruby:
|
16
|
-
- 2.4
|
17
|
-
- 2.5
|
18
|
-
- 2.6
|
19
|
-
- 2.7
|
20
12
|
- 3.0
|
13
|
+
- 3.1
|
14
|
+
- 3.2
|
21
15
|
- jruby
|
16
|
+
- truffleruby
|
22
17
|
name: Ruby ${{ matrix.ruby }}
|
23
18
|
steps:
|
24
19
|
- uses: actions/checkout@v2
|
data/ChangeLog.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
### 0.1.9 / 2023-12-01
|
2
|
+
|
3
|
+
* Allow markdown `man:file.ext` style links, since man pages can be named after
|
4
|
+
file names (ex: `shard.yml`).
|
5
|
+
* Use the `.PP` roff macro instead of the deprecated `.HP` macro.
|
6
|
+
|
1
7
|
### 0.1.8 / 2020-12-26
|
2
8
|
|
3
9
|
* Upgrade to kramdown 2.x.
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
* [Homepage](https://github.com/postmodern/kramdown-man#readme)
|
4
4
|
* [Issues](https://github.com/postmodern/kramdown-man/issues)
|
5
5
|
* [Documentation](http://rubydoc.info/gems/kramdown-man/frames)
|
6
|
-
* [Email](mailto:postmodern.mod3 at gmail.com)
|
7
6
|
|
8
7
|
## Description
|
9
8
|
|
@@ -17,10 +16,11 @@ A [Kramdown][kramdown] convert for converting Markdown files into man pages.
|
|
17
16
|
* Supports bullet lists.
|
18
17
|
* Supports multi-paragraph list items and blockquotes.
|
19
18
|
* Supports horizontal rules.
|
20
|
-
* Supports converting `[bash](man:bash(1))`
|
19
|
+
* Supports converting `[bash](man:bash(1))` and `[bash](man:bash.1)` links
|
20
|
+
into man page references.
|
21
21
|
* Provides Rake task for converting `man/*.md` into man pages.
|
22
22
|
* Uses the pure-Ruby [Kramdown][kramdown] markdown parser.
|
23
|
-
* Supports [Ruby]
|
23
|
+
* Supports [Ruby] 3.x, [JRuby], and [TruffleRuby].
|
24
24
|
|
25
25
|
## Synopsis
|
26
26
|
|
@@ -67,9 +67,9 @@ Define a `man` and file tasks which render all `*.md` files within the
|
|
67
67
|
|
68
68
|
Normal paragraph.
|
69
69
|
|
70
|
-
`command` [`--foo`]
|
70
|
+
`command` [`--foo`] **FILE**
|
71
71
|
|
72
|
-
`command` [`--foo`]
|
72
|
+
`command` [`--foo`] **FILE**
|
73
73
|
|
74
74
|
`--tagged`
|
75
75
|
Text here.
|
@@ -168,7 +168,7 @@ Email <bob@example.com>
|
|
168
168
|
|
169
169
|
## Copyright
|
170
170
|
|
171
|
-
Copyright (c) 2013-
|
171
|
+
Copyright (c) 2013-2023 Hal Brodigan
|
172
172
|
|
173
173
|
See {file:LICENSE.txt} for details.
|
174
174
|
|
@@ -177,3 +177,4 @@ See {file:LICENSE.txt} for details.
|
|
177
177
|
|
178
178
|
[Ruby]: http://www.ruby-lang.org/
|
179
179
|
[JRuby]: http://jruby.org/
|
180
|
+
[TruffleRuby]: https://github.com/oracle/truffleruby#readme
|
data/Rakefile
CHANGED
data/gemspec.yml
CHANGED
@@ -6,6 +6,13 @@ authors: Postmodern
|
|
6
6
|
email: postmodern.mod3@gmail.com
|
7
7
|
homepage: https://github.com/postmodern/kramdown-man#readme
|
8
8
|
|
9
|
+
metadata:
|
10
|
+
documentation_uri: https://rubydoc.info/gems/kramdown-man
|
11
|
+
source_code_uri: https://github.com/postmodern/kramdown-man
|
12
|
+
bug_tracker_uri: https://github.com/postmodern/kramdown-man/issues
|
13
|
+
changelog_uri: https://github.com/postmodern/kramdown-man/blob/master/ChangeLog.md
|
14
|
+
rubygems_mfa_required: 'true'
|
15
|
+
|
9
16
|
dependencies:
|
10
17
|
kramdown: ~> 2.0
|
11
18
|
|
data/kramdown-man.gemspec
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'yaml'
|
4
4
|
|
@@ -20,6 +20,7 @@ Gem::Specification.new do |gem|
|
|
20
20
|
gem.authors = Array(gemspec['authors'])
|
21
21
|
gem.email = gemspec['email']
|
22
22
|
gem.homepage = gemspec['homepage']
|
23
|
+
gem.metadata = gemspec['metadata'] if gemspec['metadata']
|
23
24
|
|
24
25
|
glob = lambda { |patterns| gem.files & Dir[*patterns] }
|
25
26
|
|
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require_relative '../man/version'
|
3
4
|
|
4
5
|
require 'kramdown/converter/base'
|
@@ -703,7 +704,7 @@ module Kramdown
|
|
703
704
|
|
704
705
|
".TP\n#{first_line}\n#{rest}"
|
705
706
|
else
|
706
|
-
".
|
707
|
+
".PP\n#{convert_children(children)}"
|
707
708
|
end
|
708
709
|
else
|
709
710
|
".PP\n#{convert_children(children)}"
|
@@ -760,20 +761,27 @@ module Kramdown
|
|
760
761
|
#
|
761
762
|
def convert_a(a)
|
762
763
|
href = escape(a.attr['href'])
|
764
|
+
scheme, path = href.split(':',2)
|
765
|
+
|
763
766
|
text = convert_children(a.children)
|
764
767
|
|
765
|
-
case
|
766
|
-
when
|
767
|
-
email =
|
768
|
+
case scheme
|
769
|
+
when 'mailto'
|
770
|
+
email = path
|
768
771
|
|
769
|
-
unless text == email
|
770
|
-
|
772
|
+
unless text == email
|
773
|
+
"#{text}\n.MT #{email}\n.ME"
|
774
|
+
else
|
775
|
+
"\n.MT #{email}\n.ME"
|
771
776
|
end
|
772
|
-
when
|
773
|
-
match =
|
777
|
+
when 'man'
|
778
|
+
if (match = path.match(/\A(?<page>[A-Za-z0-9_-]+)(?:\((?<section>\d[a-z]?)\)|\\\.(?<section>\d[a-z]?))\z/))
|
779
|
+
page = match[:page]
|
780
|
+
section = match[:section]
|
774
781
|
|
775
|
-
|
776
|
-
else
|
782
|
+
"\n.BR #{page} (#{section})"
|
783
|
+
else
|
784
|
+
"\n.BR #{path}"
|
777
785
|
end
|
778
786
|
else
|
779
787
|
"#{text}\n.UR #{href}\n.UE"
|
data/lib/kramdown/man/task.rb
CHANGED
data/lib/kramdown/man/version.rb
CHANGED
data/lib/kramdown/man.rb
CHANGED
data/man/kramdown-man.1
CHANGED
@@ -1,7 +1,12 @@
|
|
1
|
-
.\" Generated by kramdown-man 0.1.
|
1
|
+
.\" Generated by kramdown-man 0.1.9
|
2
2
|
.\" https://github.com/postmodern/kramdown-man#readme
|
3
3
|
.TH kramdown-man.1 "April 2013" kramdown-man "User Manuals"
|
4
4
|
.LP
|
5
|
+
.SH SYNOPSIS
|
6
|
+
.LP
|
7
|
+
.PP
|
8
|
+
\fBkramdown-man\fR \[lB]\fIoptions\fP\[rB] <\fIINPUT\fP >\fIOUTPUT\fP
|
9
|
+
.LP
|
5
10
|
.SH DESCRIPTION
|
6
11
|
.LP
|
7
12
|
.PP
|
@@ -9,6 +14,22 @@ A Kramdown
|
|
9
14
|
.UR http:\[sl]\[sl]kramdown\.gettalong\.org\[sl]
|
10
15
|
.UE plugin for converting Markdown files into man pages\.
|
11
16
|
.LP
|
17
|
+
.SH ARGUMENTS
|
18
|
+
.LP
|
19
|
+
.TP
|
20
|
+
\fIINPUT\fP
|
21
|
+
The input markdown file to convert\.
|
22
|
+
.LP
|
23
|
+
.TP
|
24
|
+
\fIOUTPUT\fP
|
25
|
+
The output file for the man page\.
|
26
|
+
.LP
|
27
|
+
.SH OPTIONS
|
28
|
+
.LP
|
29
|
+
.TP
|
30
|
+
\fB-h\fR, \fB--help\fR
|
31
|
+
Prints the usage for \fBkramdown-man\fR\.
|
32
|
+
.LP
|
12
33
|
.SH EXAMPLE
|
13
34
|
.LP
|
14
35
|
.nf
|
@@ -55,11 +76,11 @@ Normal paragraph\.
|
|
55
76
|
Normal paragraph\.
|
56
77
|
.LP
|
57
78
|
.nf
|
58
|
-
\`command\` \[lB]\`\-\-foo\`\[rB]
|
79
|
+
\`command\` \[lB]\`\-\-foo\`\[rB] **FILE**
|
59
80
|
.fi
|
60
81
|
.LP
|
61
|
-
.
|
62
|
-
\fBcommand\fR \[lB]\fB--foo\fR\[rB] \
|
82
|
+
.PP
|
83
|
+
\fBcommand\fR \[lB]\fB--foo\fR\[rB] \fBFILE\fP
|
63
84
|
.LP
|
64
85
|
.nf
|
65
86
|
\`\-\-tagged\`
|
@@ -180,4 +201,4 @@ int main()
|
|
180
201
|
Postmodern
|
181
202
|
.MT postmodern\.mod3\[at]gmail\.com
|
182
203
|
.ME
|
183
|
-
.LP
|
204
|
+
.LP
|
data/man/kramdown-man.1.md
CHANGED
@@ -1,9 +1,26 @@
|
|
1
1
|
# kramdown-man.1 "April 2013" kramdown-man "User Manuals"
|
2
2
|
|
3
|
+
## SYNOPSIS
|
4
|
+
|
5
|
+
`kramdown-man` [*options*] \<*INPUT* \>*OUTPUT*
|
6
|
+
|
3
7
|
## DESCRIPTION
|
4
8
|
|
5
9
|
A [Kramdown][kramdown] plugin for converting Markdown files into man pages.
|
6
10
|
|
11
|
+
## ARGUMENTS
|
12
|
+
|
13
|
+
*INPUT*
|
14
|
+
The input markdown file to convert.
|
15
|
+
|
16
|
+
*OUTPUT*
|
17
|
+
The output file for the man page.
|
18
|
+
|
19
|
+
## OPTIONS
|
20
|
+
|
21
|
+
`-h`, `--help`
|
22
|
+
Prints the usage for `kramdown-man`.
|
23
|
+
|
7
24
|
## EXAMPLE
|
8
25
|
|
9
26
|
require 'kramdown'
|
@@ -35,9 +52,9 @@ A [Kramdown][kramdown] plugin for converting Markdown files into man pages.
|
|
35
52
|
|
36
53
|
Normal paragraph.
|
37
54
|
|
38
|
-
`command` [`--foo`]
|
55
|
+
`command` [`--foo`] **FILE**
|
39
56
|
|
40
|
-
`command` [`--foo`]
|
57
|
+
`command` [`--foo`] **FILE**
|
41
58
|
|
42
59
|
`--tagged`
|
43
60
|
Text here.
|
@@ -1,8 +1,7 @@
|
|
1
|
-
|
2
|
-
require_relative '../../spec_helper'
|
1
|
+
require 'spec_helper'
|
3
2
|
|
4
3
|
# HACK: load our version of kramdown/converter/man.rb and not kramdown's
|
5
|
-
require_relative '
|
4
|
+
require_relative '../../lib/kramdown/converter/man'
|
6
5
|
|
7
6
|
describe Kramdown::Converter::Man do
|
8
7
|
let(:markdown) { File.read('man/kramdown-man.1.md') }
|
@@ -418,8 +417,8 @@ Hello world.
|
|
418
417
|
context "when there is no newline" do
|
419
418
|
let(:doc) { Kramdown::Document.new("`#{flag}` `#{option}`") }
|
420
419
|
|
421
|
-
it "should convert the p element into a '.
|
422
|
-
expect(subject.convert_p(p)).to eq(".
|
420
|
+
it "should convert the p element into a '.PP\\n...'" do
|
421
|
+
expect(subject.convert_p(p)).to eq(".PP\n\\fB#{flag}\\fR \\fB#{option}\\fR")
|
423
422
|
end
|
424
423
|
end
|
425
424
|
end
|
@@ -463,8 +462,8 @@ Hello world.
|
|
463
462
|
context "when there is no newline" do
|
464
463
|
let(:doc) { Kramdown::Document.new("*#{flag}* *#{option}*") }
|
465
464
|
|
466
|
-
it "should convert the p element into a '.
|
467
|
-
expect(subject.convert_p(p)).to eq(".
|
465
|
+
it "should convert the p element into a '.PP\\n...'" do
|
466
|
+
expect(subject.convert_p(p)).to eq(".PP\n\\fI#{escaped_flag}\\fP \\fI#{escaped_option}\\fP")
|
468
467
|
end
|
469
468
|
end
|
470
469
|
end
|
@@ -539,14 +538,32 @@ Hello world.
|
|
539
538
|
expect(subject.convert_a(link)).to eq("\n.BR #{man}")
|
540
539
|
end
|
541
540
|
|
542
|
-
context "when
|
541
|
+
context "and when the path is of the form 'page(section)'" do
|
543
542
|
let(:section) { '1' }
|
544
543
|
let(:doc) { Kramdown::Document.new("[#{man}](man:#{man}(#{section}))") }
|
545
544
|
|
546
|
-
it "should convert the link elements into '.BR
|
545
|
+
it "should convert the link elements into '.BR page (section)'" do
|
547
546
|
expect(subject.convert_a(link)).to eq("\n.BR #{man} (#{section})")
|
548
547
|
end
|
549
548
|
end
|
549
|
+
|
550
|
+
context "and when the path is of the form 'page.section'" do
|
551
|
+
let(:section) { '1' }
|
552
|
+
let(:doc) { Kramdown::Document.new("[#{man}](man:#{man}.#{section})") }
|
553
|
+
|
554
|
+
it "should convert the link elements into '.BR page (section)'" do
|
555
|
+
expect(subject.convert_a(link)).to eq("\n.BR #{man} (#{section})")
|
556
|
+
end
|
557
|
+
end
|
558
|
+
|
559
|
+
context "when the path ends with a file extension" do
|
560
|
+
let(:file) { 'shard.yml' }
|
561
|
+
let(:doc) { Kramdown::Document.new("[#{man}](man:#{file})") }
|
562
|
+
|
563
|
+
it "should convert the link elements into '.BR file'" do
|
564
|
+
expect(subject.convert_a(link)).to eq("\n.BR #{file.gsub('.','\\.')}")
|
565
|
+
end
|
566
|
+
end
|
550
567
|
end
|
551
568
|
end
|
552
569
|
|
@@ -1,9 +1,9 @@
|
|
1
|
-
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
require 'kramdown/man'
|
4
4
|
|
5
5
|
describe Kramdown::Document, :integration do
|
6
|
-
let(:man_dir) { File.expand_path('
|
6
|
+
let(:man_dir) { File.expand_path('../man',__dir__) }
|
7
7
|
let(:markdown_path) { File.join(man_dir,'kramdown-man.1.md') }
|
8
8
|
let(:markdown) { File.read(markdown_path) }
|
9
9
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kramdown-man
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Postmodern
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kramdown
|
@@ -67,15 +67,20 @@ files:
|
|
67
67
|
- lib/kramdown/man/version.rb
|
68
68
|
- man/kramdown-man.1
|
69
69
|
- man/kramdown-man.1.md
|
70
|
-
- spec/
|
71
|
-
- spec/
|
72
|
-
- spec/
|
70
|
+
- spec/converter/man_spec.rb
|
71
|
+
- spec/document_spec.rb
|
72
|
+
- spec/man_spec.rb
|
73
73
|
- spec/spec_helper.rb
|
74
74
|
homepage: https://github.com/postmodern/kramdown-man#readme
|
75
75
|
licenses:
|
76
76
|
- MIT
|
77
|
-
metadata:
|
78
|
-
|
77
|
+
metadata:
|
78
|
+
documentation_uri: https://rubydoc.info/gems/kramdown-man
|
79
|
+
source_code_uri: https://github.com/postmodern/kramdown-man
|
80
|
+
bug_tracker_uri: https://github.com/postmodern/kramdown-man/issues
|
81
|
+
changelog_uri: https://github.com/postmodern/kramdown-man/blob/master/ChangeLog.md
|
82
|
+
rubygems_mfa_required: 'true'
|
83
|
+
post_install_message:
|
79
84
|
rdoc_options: []
|
80
85
|
require_paths:
|
81
86
|
- lib
|
@@ -90,8 +95,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
95
|
- !ruby/object:Gem::Version
|
91
96
|
version: '0'
|
92
97
|
requirements: []
|
93
|
-
rubygems_version: 3.
|
94
|
-
signing_key:
|
98
|
+
rubygems_version: 3.4.10
|
99
|
+
signing_key:
|
95
100
|
specification_version: 4
|
96
101
|
summary: Converts markdown to man pages
|
97
102
|
test_files: []
|