asciidoctor-fb2 0.3.1 → 0.4.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/.github/dependabot.yml +5 -0
- data/.github/workflows/ci.yml +6 -8
- data/.github/workflows/release.yml +5 -10
- data/CHANGELOG.adoc +5 -0
- data/asciidoctor-fb2.gemspec +4 -3
- data/lib/asciidoctor_fb2.rb +29 -25
- data/lib/asciidoctor_fb2/version.rb +1 -1
- metadata +23 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c92fc77a9c3146a344b615e53430b2a1c33c04688a60a6dd175df173ec5e173
|
4
|
+
data.tar.gz: 991a87e1cede4126726357252f2bb19e30380912153f1a81a511ee81873124b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7da4ab8d23af356a2d321b9894d2747cfdf9913931566ace0b3945fb43e9dda32c76b1257e6555607cc3a47940c0e6e480213e395b60f5089120f5d6c2ad9db3
|
7
|
+
data.tar.gz: 49422fe74cb1ac22574d602a572abc5d79ae66883e20758ed721e7efc579771acf8359aa3acc67d8ad45400d344c8dd6421dab9cda46f04ab25ec358e2f26a0a
|
data/.github/dependabot.yml
CHANGED
data/.github/workflows/ci.yml
CHANGED
@@ -9,17 +9,16 @@ jobs:
|
|
9
9
|
- name: Set up Ruby
|
10
10
|
uses: ruby/setup-ruby@v1
|
11
11
|
with:
|
12
|
-
ruby-version:
|
13
|
-
|
14
|
-
run: bundle install --jobs 4 --retry 3
|
12
|
+
ruby-version: '3.0'
|
13
|
+
bundler-cache: true
|
15
14
|
- name: Lint
|
16
15
|
run: bundle exec rake lint
|
17
16
|
test:
|
18
17
|
strategy:
|
19
18
|
matrix:
|
20
|
-
ruby: [jruby, 2.4, 2.5, 2.6, 2.7]
|
21
|
-
|
22
|
-
runs-on: ${{ matrix.
|
19
|
+
ruby: ['jruby', '2.4', '2.5', '2.6', '2.7', '3.0']
|
20
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
21
|
+
runs-on: ${{ matrix.os }}
|
23
22
|
steps:
|
24
23
|
- name: Checkout
|
25
24
|
uses: actions/checkout@v2
|
@@ -27,7 +26,6 @@ jobs:
|
|
27
26
|
uses: ruby/setup-ruby@v1
|
28
27
|
with:
|
29
28
|
ruby-version: ${{ matrix.ruby }}
|
30
|
-
|
31
|
-
run: bundle install --jobs 4 --retry 3
|
29
|
+
bundler-cache: true
|
32
30
|
- name: Test
|
33
31
|
run: bundle exec rake spec
|
@@ -11,14 +11,9 @@ jobs:
|
|
11
11
|
- name: Set up Ruby
|
12
12
|
uses: ruby/setup-ruby@v1
|
13
13
|
with:
|
14
|
-
ruby-version:
|
14
|
+
ruby-version: '3.0'
|
15
15
|
- name: Publish to RubyGems.org
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
printf -- "---\n:rubygems_api_key: ${RUBYGEMS_API_KEY}\n" > $HOME/.gem/credentials
|
21
|
-
gem build *.gemspec
|
22
|
-
gem push *.gem
|
23
|
-
env:
|
24
|
-
RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
|
16
|
+
uses: dawidd6/action-publish-gem@v1
|
17
|
+
with:
|
18
|
+
api_key: ${{ secrets.RUBYGEMS_API_KEY }}
|
19
|
+
|
data/CHANGELOG.adoc
CHANGED
@@ -7,6 +7,11 @@
|
|
7
7
|
This document provides a high-level view of the changes to the {project-name} by release.
|
8
8
|
For a detailed view of what has changed, refer to the {uri-project}/commits/master[commit history] on GitHub.
|
9
9
|
|
10
|
+
== 0.4.0 (2021-02-14) - @slonopotamus
|
11
|
+
|
12
|
+
* fix table cells markup
|
13
|
+
* bump fb2rb to 0.6.0
|
14
|
+
|
10
15
|
== 0.3.1 (2020-11-29) - @slonopotamus
|
11
16
|
|
12
17
|
* fix crash on `+toc::[]+` macro
|
data/asciidoctor-fb2.gemspec
CHANGED
@@ -19,12 +19,13 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.require_paths = ['lib']
|
20
20
|
|
21
21
|
s.add_runtime_dependency 'asciidoctor', '~> 2.0'
|
22
|
-
s.add_runtime_dependency 'fb2rb', '~> 0.
|
22
|
+
s.add_runtime_dependency 'fb2rb', '~> 0.6.0'
|
23
23
|
s.add_runtime_dependency 'mime-types', '~> 3.0'
|
24
24
|
|
25
25
|
s.add_development_dependency 'asciidoctor-diagram', '~> 2.0'
|
26
26
|
s.add_development_dependency 'rake', '~> 13.0'
|
27
27
|
s.add_development_dependency 'rspec', '~> 3.10.0'
|
28
|
-
s.add_development_dependency 'rubocop', '~> 1.
|
29
|
-
s.add_development_dependency 'rubocop-
|
28
|
+
s.add_development_dependency 'rubocop', '~> 1.9.0'
|
29
|
+
s.add_development_dependency 'rubocop-rake', '~> 0.5.0'
|
30
|
+
s.add_development_dependency 'rubocop-rspec', '~> 2.2.0'
|
30
31
|
end
|
data/lib/asciidoctor_fb2.rb
CHANGED
@@ -44,30 +44,28 @@ module Asciidoctor
|
|
44
44
|
end
|
45
45
|
node.authors.each do |author|
|
46
46
|
title_info.authors << FB2rb::Author.new(
|
47
|
-
author.firstname,
|
48
|
-
author.middlename,
|
49
|
-
author.lastname,
|
50
|
-
nil
|
51
|
-
[],
|
52
|
-
author.email.nil? ? [] : [author.email]
|
47
|
+
first_name: author.firstname,
|
48
|
+
middle_name: author.middlename,
|
49
|
+
last_name: author.lastname,
|
50
|
+
emails: author.email.nil? ? [] : [author.email]
|
53
51
|
)
|
54
52
|
end
|
55
53
|
|
56
54
|
if node.attr? 'series-name'
|
57
55
|
series_name = node.attr 'series-name'
|
58
56
|
series_volume = node.attr 'series-volume', 1
|
59
|
-
title_info.sequences << FB2rb::Sequence.new(series_name, series_volume)
|
57
|
+
title_info.sequences << FB2rb::Sequence.new(name: series_name, number: series_volume)
|
60
58
|
end
|
61
59
|
|
62
60
|
date = node.attr('revdate') || node.attr('docdate')
|
63
|
-
fb2date = FB2rb::FB2Date.new(date, Date.parse(date))
|
61
|
+
fb2date = FB2rb::FB2Date.new(display_value: date, value: Date.parse(date))
|
64
62
|
title_info.date = document_info.date = fb2date
|
65
63
|
|
66
64
|
unless (cover_image = node.attr('front-cover-image')).nil?
|
67
65
|
cover_image = Regexp.last_match(1) if cover_image =~ IMAGE_ATTRIBUTE_VALUE_RX
|
68
66
|
cover_image_path = node.image_uri(cover_image)
|
69
67
|
register_binary(node, cover_image_path, 'image')
|
70
|
-
title_info.coverpage = FB2rb::Coverpage.new([%(##{cover_image_path})])
|
68
|
+
title_info.coverpage = FB2rb::Coverpage.new(images: [%(##{cover_image_path})])
|
71
69
|
end
|
72
70
|
|
73
71
|
document_info.id = node.attr('uuid', '')
|
@@ -81,7 +79,7 @@ module Asciidoctor
|
|
81
79
|
<title><p>#{node.doctitle}</p></title>
|
82
80
|
#{node.content}
|
83
81
|
</section>)
|
84
|
-
@book.bodies << FB2rb::Body.new(
|
82
|
+
@book.bodies << FB2rb::Body.new(content: body)
|
85
83
|
unless node.document.footnotes.empty?
|
86
84
|
notes = []
|
87
85
|
node.document.footnotes.each do |footnote|
|
@@ -90,7 +88,7 @@ module Asciidoctor
|
|
90
88
|
<p>#{footnote.text}</p>
|
91
89
|
</section>)
|
92
90
|
end
|
93
|
-
@book.bodies << FB2rb::Body.new('notes', notes * "\n")
|
91
|
+
@book.bodies << FB2rb::Body.new(name: 'notes', content: notes * "\n")
|
94
92
|
end
|
95
93
|
@book
|
96
94
|
end
|
@@ -382,30 +380,36 @@ module Asciidoctor
|
|
382
380
|
lines * "\n"
|
383
381
|
end
|
384
382
|
|
383
|
+
# @param cell [Asciidoctor::Table::Cell]
|
384
|
+
def get_cell_content(cell) # rubocop:disable Metrics/MethodLength
|
385
|
+
case cell.style
|
386
|
+
when :asciidoc
|
387
|
+
cell.content
|
388
|
+
when :emphasis
|
389
|
+
%(<emphasis>#{cell.text}</emphasis>)
|
390
|
+
when :literal
|
391
|
+
%(<code>#{cell.text}</code>)
|
392
|
+
when :monospaced
|
393
|
+
%(<code>#{cell.text}</code>)
|
394
|
+
when :strong
|
395
|
+
%(<strong>#{cell.text}</strong>)
|
396
|
+
else
|
397
|
+
cell.text
|
398
|
+
end
|
399
|
+
end
|
400
|
+
|
385
401
|
# @param node [Asciidoctor::Table]
|
386
402
|
def convert_table(node) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
387
403
|
lines = []
|
388
404
|
lines << %(<subtitle>#{node.captioned_title}</subtitle>) if node.title?
|
389
405
|
lines << '<table>'
|
390
|
-
node.rows.to_h.each do |tsec, rows|
|
406
|
+
node.rows.to_h.each do |tsec, rows|
|
391
407
|
next if rows.empty?
|
392
408
|
|
393
409
|
rows.each do |row|
|
394
410
|
lines << '<tr>'
|
395
411
|
row.each do |cell|
|
396
|
-
cell_content =
|
397
|
-
cell.text
|
398
|
-
else
|
399
|
-
case cell.style
|
400
|
-
when :asciidoc
|
401
|
-
cell.content
|
402
|
-
when :literal
|
403
|
-
%(<p><pre>#{cell.text}</pre></p>)
|
404
|
-
else
|
405
|
-
(cell_content = cell.content).empty? ? '' : %(<p>#{cell_content * "</p>\n<p>"}</p>)
|
406
|
-
end
|
407
|
-
end
|
408
|
-
|
412
|
+
cell_content = get_cell_content(cell)
|
409
413
|
cell_tag_name = (tsec == :head || cell.style == :header ? 'th' : 'td')
|
410
414
|
cell_attrs = [
|
411
415
|
%(halign="#{cell.attr 'halign'}"),
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asciidoctor-fb2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marat Radchenko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciidoctor
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.6.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.6.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: mime-types
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,28 +100,42 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 1.
|
103
|
+
version: 1.9.0
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 1.
|
110
|
+
version: 1.9.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rubocop-rake
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.5.0
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.5.0
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: rubocop-rspec
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
129
|
- - "~>"
|
116
130
|
- !ruby/object:Gem::Version
|
117
|
-
version: 2.
|
131
|
+
version: 2.2.0
|
118
132
|
type: :development
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
136
|
- - "~>"
|
123
137
|
- !ruby/object:Gem::Version
|
124
|
-
version: 2.
|
138
|
+
version: 2.2.0
|
125
139
|
description:
|
126
140
|
email:
|
127
141
|
- marat@slonopotamus.org
|
@@ -170,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
170
184
|
- !ruby/object:Gem::Version
|
171
185
|
version: '0'
|
172
186
|
requirements: []
|
173
|
-
rubygems_version: 3.
|
187
|
+
rubygems_version: 3.2.3
|
174
188
|
signing_key:
|
175
189
|
specification_version: 4
|
176
190
|
summary: Converts AsciiDoc documents to FB2 e-book formats
|