asciidoctor-fb2 0.2.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a4c7f00f477ddb1d95bb04eb0a834308288cae185c008ee0206197c9c4403d95
4
- data.tar.gz: '08772d526c95b49df5956b0ba12868aa58e4c1684b5e947aa5e233ee222c891f'
3
+ metadata.gz: 2c92fc77a9c3146a344b615e53430b2a1c33c04688a60a6dd175df173ec5e173
4
+ data.tar.gz: 991a87e1cede4126726357252f2bb19e30380912153f1a81a511ee81873124b2
5
5
  SHA512:
6
- metadata.gz: 56fbb9d6633d5b3ed3b55fc1b9aa8698c4805ddacae41c44cd376952e998ad89d379fb44bca7fa5ff42454ff6bec7cd717100b7408e013850c762bde7df0bedf
7
- data.tar.gz: 63a52028f548239dcc0d349f2d1ae8d371f53618c56aa47b04acb3eb1c42b9a93276dd579752d3ce143f36f61548b421e1f681d83ef47db3788cde303488aa0b
6
+ metadata.gz: 7da4ab8d23af356a2d321b9894d2747cfdf9913931566ace0b3945fb43e9dda32c76b1257e6555607cc3a47940c0e6e480213e395b60f5089120f5d6c2ad9db3
7
+ data.tar.gz: 49422fe74cb1ac22574d602a572abc5d79ae66883e20758ed721e7efc579771acf8359aa3acc67d8ad45400d344c8dd6421dab9cda46f04ab25ec358e2f26a0a
@@ -6,3 +6,8 @@ updates:
6
6
  directory: "/"
7
7
  schedule:
8
8
  interval: "daily"
9
+
10
+ - package-ecosystem: "github-actions"
11
+ directory: "/"
12
+ schedule:
13
+ interval: "daily"
@@ -9,18 +9,16 @@ jobs:
9
9
  - name: Set up Ruby
10
10
  uses: ruby/setup-ruby@v1
11
11
  with:
12
- ruby-version: 2.7
13
- - name: Build
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
- ruby: [2.4, 2.5, 2.6, 2.7]
22
- platform: [ubuntu-latest, macos-latest, windows-latest]
23
- runs-on: ${{ matrix.platform }}
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 }}
24
22
  steps:
25
23
  - name: Checkout
26
24
  uses: actions/checkout@v2
@@ -28,7 +26,6 @@ jobs:
28
26
  uses: ruby/setup-ruby@v1
29
27
  with:
30
28
  ruby-version: ${{ matrix.ruby }}
31
- - name: Build
32
- run: bundle install --jobs 4 --retry 3
29
+ bundler-cache: true
33
30
  - name: Test
34
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: 2.7
14
+ ruby-version: '3.0'
15
15
  - name: Publish to RubyGems.org
16
- run: |
17
- mkdir -p $HOME/.gem
18
- touch $HOME/.gem/credentials
19
- chmod 0600 $HOME/.gem/credentials
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
@@ -1,12 +1,40 @@
1
1
  = {project-name} Changelog
2
2
  :project-name: Asciidoctor FB2
3
3
  :project-handle: asciidoctor-fb2
4
- :slug: slonopotamus/{project-handle}
4
+ :slug: asciidoctor/{project-handle}
5
5
  :uri-project: https://github.com/{slug}
6
6
 
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
+
15
+ == 0.3.1 (2020-11-29) - @slonopotamus
16
+
17
+ * fix crash on `+toc::[]+` macro
18
+ * avoid adding `notes` body to FB2 if document doesn't have any footnotes
19
+ * fix invalid XML syntax for table cells
20
+
21
+ == 0.3.0 (2020-11-25) - @slonopotamus
22
+
23
+ * output MIME type for FB2 embedded binary files. https://github.com/slonopotamus/asciidoctor-fb2/issues/19[#19]
24
+ * handle `+image:file[]+` syntax for `+:front-cover-image:+` document attribute. https://github.com/slonopotamus/asciidoctor-fb2/issues/19[#19]
25
+
26
+ == 0.2.4 (2020-11-24) - @slonopotamus
27
+
28
+ * add support for table captions
29
+ * fix images from subfolders not loaded in Calibre
30
+ * add initial CSS support
31
+
32
+ == 0.2.3 (2020-11-24) - @slonopotamus
33
+
34
+ * add support for literal blocks
35
+ * fix crash for `menu` inline macro without submenu. https://github.com/slonopotamus/asciidoctor-fb2/issues/15[#15]
36
+ * add initial support for sidebar
37
+
10
38
  == 0.2.2 (2020-11-24) - @slonopotamus
11
39
 
12
40
  * do not crash on inline line break macro. https://github.com/slonopotamus/asciidoctor-fb2/issues/14[#14]
data/README.adoc CHANGED
@@ -2,7 +2,7 @@
2
2
  Marat Radchenko <marat@slonopotamus.org>
3
3
  :project-name: Asciidoctor FB2
4
4
  :project-handle: asciidoctor-fb2
5
- :slug: slonopotamus/{project-handle}
5
+ :slug: asciidoctor/{project-handle}
6
6
  :uri-project: https://github.com/{slug}
7
7
  :uri-ci: {uri-project}/actions?query=branch%3Amaster
8
8
  :uri-gem: https://rubygems.org/gems/{project-handle}
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.authors = ['Marat Radchenko']
9
9
  s.email = ['marat@slonopotamus.org']
10
10
  s.summary = 'Converts AsciiDoc documents to FB2 e-book formats'
11
- s.homepage = 'https://github.com/slonopotamus/asciidoctor-fb2'
11
+ s.homepage = 'https://github.com/asciidoctor/asciidoctor-fb2'
12
12
  s.license = 'MIT'
13
13
  s.required_ruby_version = '>= 2.4.0'
14
14
 
@@ -19,11 +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.3.0'
22
+ s.add_runtime_dependency 'fb2rb', '~> 0.6.0'
23
+ s.add_runtime_dependency 'mime-types', '~> 3.0'
23
24
 
24
25
  s.add_development_dependency 'asciidoctor-diagram', '~> 2.0'
25
26
  s.add_development_dependency 'rake', '~> 13.0'
26
27
  s.add_development_dependency 'rspec', '~> 3.10.0'
27
- s.add_development_dependency 'rubocop', '~> 0.93.0'
28
- s.add_development_dependency 'rubocop-rspec', '~> 1.44.0'
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'
29
31
  end
data/data/fb2.css ADDED
@@ -0,0 +1,3 @@
1
+ body {
2
+ text-align: justify
3
+ }
@@ -3,14 +3,18 @@
3
3
  require 'asciidoctor'
4
4
  require 'asciidoctor/converter'
5
5
  require 'fb2rb'
6
+ require 'mime/types'
6
7
 
7
8
  module Asciidoctor
8
9
  module FB2
10
+ DATA_DIR = File.expand_path(File.join(__dir__, '..', 'data'))
11
+
9
12
  # Converts AsciiDoc documents to FB2 e-book formats
10
13
  class Converter < Asciidoctor::Converter::Base # rubocop:disable Metrics/ClassLength
11
14
  include ::Asciidoctor::Writer
12
15
 
13
16
  CSV_DELIMITER_REGEX = /\s*,\s*/.freeze
17
+ IMAGE_ATTRIBUTE_VALUE_RX = /^image:{1,2}(.*?)\[(.*?)\]$/.freeze
14
18
 
15
19
  register_for 'fb2'
16
20
 
@@ -25,6 +29,8 @@ module Asciidoctor
25
29
  # @param node [Asciidoctor::Document]
26
30
  def convert_document(node) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
27
31
  @book = FB2rb::Book.new
32
+ @book.add_stylesheet('text/css', File.join(DATA_DIR, 'fb2.css'))
33
+
28
34
  document_info = @book.description.document_info
29
35
  title_info = @book.description.title_info
30
36
 
@@ -38,29 +44,28 @@ module Asciidoctor
38
44
  end
39
45
  node.authors.each do |author|
40
46
  title_info.authors << FB2rb::Author.new(
41
- author.firstname,
42
- author.middlename,
43
- author.lastname,
44
- nil,
45
- [],
46
- 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]
47
51
  )
48
52
  end
49
53
 
50
54
  if node.attr? 'series-name'
51
55
  series_name = node.attr 'series-name'
52
56
  series_volume = node.attr 'series-volume', 1
53
- title_info.sequences << FB2rb::Sequence.new(series_name, series_volume)
57
+ title_info.sequences << FB2rb::Sequence.new(name: series_name, number: series_volume)
54
58
  end
55
59
 
56
60
  date = node.attr('revdate') || node.attr('docdate')
57
- fb2date = FB2rb::FB2Date.new(date, Date.parse(date))
61
+ fb2date = FB2rb::FB2Date.new(display_value: date, value: Date.parse(date))
58
62
  title_info.date = document_info.date = fb2date
59
63
 
60
64
  unless (cover_image = node.attr('front-cover-image')).nil?
65
+ cover_image = Regexp.last_match(1) if cover_image =~ IMAGE_ATTRIBUTE_VALUE_RX
61
66
  cover_image_path = node.image_uri(cover_image)
62
- register_binary(node, cover_image_path)
63
- title_info.coverpage = FB2rb::Coverpage.new([%(##{cover_image_path})])
67
+ register_binary(node, cover_image_path, 'image')
68
+ title_info.coverpage = FB2rb::Coverpage.new(images: [%(##{cover_image_path})])
64
69
  end
65
70
 
66
71
  document_info.id = node.attr('uuid', '')
@@ -74,8 +79,8 @@ module Asciidoctor
74
79
  <title><p>#{node.doctitle}</p></title>
75
80
  #{node.content}
76
81
  </section>)
77
- @book.bodies << FB2rb::Body.new(nil, body)
78
- if node.document.footnotes
82
+ @book.bodies << FB2rb::Body.new(content: body)
83
+ unless node.document.footnotes.empty?
79
84
  notes = []
80
85
  node.document.footnotes.each do |footnote|
81
86
  notes << %(<section id="note-#{footnote.index}">
@@ -83,7 +88,7 @@ module Asciidoctor
83
88
  <p>#{footnote.text}</p>
84
89
  </section>)
85
90
  end
86
- @book.bodies << FB2rb::Body.new('notes', notes * "\n")
91
+ @book.bodies << FB2rb::Body.new(name: 'notes', content: notes * "\n")
87
92
  end
88
93
  @book
89
94
  end
@@ -108,6 +113,11 @@ module Asciidoctor
108
113
  end
109
114
  end
110
115
 
116
+ # @param _node [Asciidoctor::Block]
117
+ def convert_toc(_node)
118
+ ''
119
+ end
120
+
111
121
  # @param node [Asciidoctor::Block]
112
122
  def convert_paragraph(node)
113
123
  lines = [
@@ -137,7 +147,7 @@ module Asciidoctor
137
147
  # @param node [Asciidoctor::Block]
138
148
  def convert_verse(node)
139
149
  body = node.content&.split("\n\n")&.map do |stanza|
140
- %(<stanza>\n<v>#{stanza.split("\n").join("</v>\n<v>")}</v>\n</stanza>)
150
+ %(<stanza>\n<v>#{stanza.split("\n") * "</v>\n<v>"}</v>\n</stanza>)
141
151
  end&.join("\n")
142
152
 
143
153
  citetitle = node.attr('citetitle')
@@ -155,6 +165,11 @@ module Asciidoctor
155
165
 
156
166
  # @param node [Asciidoctor::Block]
157
167
  def convert_listing(node)
168
+ convert_literal(node)
169
+ end
170
+
171
+ # @param node [Asciidoctor::Block]
172
+ def convert_literal(node)
158
173
  lines = []
159
174
  node.content.split("\n").each do |line|
160
175
  lines << %(<p><code>#{line}</code></p>)
@@ -186,11 +201,11 @@ module Asciidoctor
186
201
  caret = '&#160;<strong>&#8250;</strong> '
187
202
  menu = node.attr('menu')
188
203
  menuitem = node.attr('menuitem')
189
- submenus = node.attr('submenus').join(%(</b>#{caret}<b>))
204
+ submenus = node.attr('submenus') * %(</b>#{caret}<b>)
190
205
 
191
206
  result = %(<strong>#{menu}</strong>)
192
- result += %(#{caret}<strong>#{submenus}</strong>) unless submenus.empty?
193
- result += %(#{caret}<strong>#{menuitem}</strong>) unless menuitem.empty?
207
+ result += %(#{caret}<strong>#{submenus}</strong>) unless submenus.nil_or_empty?
208
+ result += %(#{caret}<strong>#{menuitem}</strong>) unless menuitem.nil_or_empty?
194
209
 
195
210
  result
196
211
  end
@@ -207,7 +222,7 @@ module Asciidoctor
207
222
 
208
223
  # @param node [Asciidoctor::Inline]
209
224
  def convert_inline_kbd(node)
210
- %(<strong>#{node.attr('keys').join('</strong>+<strong>')}</strong>)
225
+ %(<strong>#{node.attr('keys') * '</strong>+<strong>'}</strong>)
211
226
  end
212
227
 
213
228
  # @param node [Asciidoctor::Inline]
@@ -238,13 +253,13 @@ module Asciidoctor
238
253
 
239
254
  # @param node [Asciidoctor::Inline]
240
255
  def convert_inline_image(node)
241
- image_attrs = register_binary(node, node.image_uri(node.target))
256
+ image_attrs = register_binary(node, node.image_uri(node.target), 'image')
242
257
  %(<image #{image_attrs * ' '}/>)
243
258
  end
244
259
 
245
260
  # @param node [Asciidoctor::Block]
246
261
  def convert_image(node)
247
- image_attrs = register_binary(node, node.image_uri(node.attr('target')))
262
+ image_attrs = register_binary(node, node.image_uri(node.attr('target')), 'image')
248
263
  image_attrs << %(title="#{node.captioned_title}") if node.title?
249
264
  image_attrs << %(id="#{node.id}") if node.id
250
265
  %(<p><image #{image_attrs * ' '}/></p>)
@@ -257,9 +272,15 @@ module Asciidoctor
257
272
  doc
258
273
  end
259
274
 
275
+ def determine_mime_type(filename, media_type)
276
+ mime_types = MIME::Types.type_for(filename)
277
+ mime_types.delete_if { |x| x.media_type != media_type }
278
+ mime_types.empty? ? nil : mime_types[0].content_type
279
+ end
280
+
260
281
  # @param node [Asciidoctor::AbstractNode]
261
282
  # @param target [String]
262
- def register_binary(node, target) # rubocop:disable Metrics/MethodLength
283
+ def register_binary(node, target, media_type) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
263
284
  unless Asciidoctor::Helpers.uriish?(target)
264
285
  out_dir = node.attr('outdir', nil, true) || doc_option(node.document, :to_dir)
265
286
  fs_path = File.join(out_dir, target)
@@ -269,7 +290,12 @@ module Asciidoctor
269
290
  end
270
291
 
271
292
  if File.readable?(fs_path)
272
- @book.add_binary(target, fs_path)
293
+ # Calibre fails to load images if they contain path separators
294
+ target.sub!('/', '_')
295
+ target.sub!('\\', '_')
296
+
297
+ mime_type = determine_mime_type(target, media_type)
298
+ @book.add_binary(target, fs_path, mime_type)
273
299
  target = %(##{target})
274
300
  end
275
301
  end
@@ -287,6 +313,13 @@ module Asciidoctor
287
313
  lines * "\n"
288
314
  end
289
315
 
316
+ # @param node [Asciidoctor::Block]
317
+ def convert_sidebar(node)
318
+ title_tag = node.title.nil_or_empty? ? '' : %(<p><strong>#{node.title}</strong></p>)
319
+ %(#{title_tag}
320
+ #{node.content})
321
+ end
322
+
290
323
  # @param node [Asciidoctor::List]
291
324
  def convert_ulist(node)
292
325
  lines = []
@@ -347,28 +380,36 @@ module Asciidoctor
347
380
  lines * "\n"
348
381
  end
349
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
+
350
401
  # @param node [Asciidoctor::Table]
351
402
  def convert_table(node) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
352
- lines = ['<table>']
353
- node.rows.to_h.each do |tsec, rows| # rubocop:disable Metrics/BlockLength
403
+ lines = []
404
+ lines << %(<subtitle>#{node.captioned_title}</subtitle>) if node.title?
405
+ lines << '<table>'
406
+ node.rows.to_h.each do |tsec, rows|
354
407
  next if rows.empty?
355
408
 
356
409
  rows.each do |row|
357
410
  lines << '<tr>'
358
411
  row.each do |cell|
359
- cell_content = if tsec == :head
360
- cell.text
361
- else
362
- case cell.style
363
- when :asciidoc
364
- cell.content
365
- when :literal
366
- %(<p><pre>#{cell.text}</pre></p>)
367
- else
368
- (cell_content = cell.content).empty? ? '' : %(<p>#{cell_content.join "</p>\n<p>"}</p>)
369
- end
370
- end
371
-
412
+ cell_content = get_cell_content(cell)
372
413
  cell_tag_name = (tsec == :head || cell.style == :header ? 'th' : 'td')
373
414
  cell_attrs = [
374
415
  %(halign="#{cell.attr 'halign'}"),
@@ -376,7 +417,7 @@ module Asciidoctor
376
417
  ]
377
418
  cell_attrs << %(colspan="#{cell.colspan}") if cell.colspan
378
419
  cell_attrs << %(rowspan="#{cell.rowspan}") if cell.rowspan
379
- lines << %(<#{cell_tag_name} #{cell_attrs * ' '}">#{cell_content}</#{cell_tag_name}>)
420
+ lines << %(<#{cell_tag_name} #{cell_attrs * ' '}>#{cell_content}</#{cell_tag_name}>)
380
421
  end
381
422
  lines << '</tr>'
382
423
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Asciidoctor
4
4
  module FB2
5
- VERSION = '0.2.2'
5
+ VERSION = '0.4.0'
6
6
  end
7
7
  end
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.2.2
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: 2020-11-24 00:00:00.000000000 Z
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,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.3.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.3.0
40
+ version: 0.6.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: mime-types
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: asciidoctor-diagram
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -86,28 +100,42 @@ dependencies:
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: 0.93.0
103
+ version: 1.9.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
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
90
118
  type: :development
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
122
  - - "~>"
95
123
  - !ruby/object:Gem::Version
96
- version: 0.93.0
124
+ version: 0.5.0
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: rubocop-rspec
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
129
  - - "~>"
102
130
  - !ruby/object:Gem::Version
103
- version: 1.44.0
131
+ version: 2.2.0
104
132
  type: :development
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
136
  - - "~>"
109
137
  - !ruby/object:Gem::Version
110
- version: 1.44.0
138
+ version: 2.2.0
111
139
  description:
112
140
  email:
113
141
  - marat@slonopotamus.org
@@ -129,6 +157,7 @@ files:
129
157
  - Rakefile
130
158
  - asciidoctor-fb2.gemspec
131
159
  - bin/asciidoctor-fb2
160
+ - data/fb2.css
132
161
  - lib/asciidoctor_fb2.rb
133
162
  - lib/asciidoctor_fb2/version.rb
134
163
  - tasks/bundler.rake
@@ -136,7 +165,7 @@ files:
136
165
  - tasks/console.rake
137
166
  - tasks/rspec.rake
138
167
  - tasks/rubocop.rake
139
- homepage: https://github.com/slonopotamus/asciidoctor-fb2
168
+ homepage: https://github.com/asciidoctor/asciidoctor-fb2
140
169
  licenses:
141
170
  - MIT
142
171
  metadata: {}
@@ -155,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
184
  - !ruby/object:Gem::Version
156
185
  version: '0'
157
186
  requirements: []
158
- rubygems_version: 3.1.4
187
+ rubygems_version: 3.2.3
159
188
  signing_key:
160
189
  specification_version: 4
161
190
  summary: Converts AsciiDoc documents to FB2 e-book formats