asciidoctor-pdf 1.5.0.alpha.17 → 1.5.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.adoc +75 -2
  3. data/NOTICE.adoc +14 -11
  4. data/README.adoc +105 -27
  5. data/asciidoctor-pdf.gemspec +4 -1
  6. data/data/themes/base-theme.yml +4 -0
  7. data/data/themes/default-theme.yml +17 -34
  8. data/data/themes/default-with-fallback-font-theme.yml +22 -0
  9. data/docs/theming-guide.adoc +1057 -867
  10. data/lib/asciidoctor-pdf/asciidoctor_ext/abstract_block.rb +5 -0
  11. data/lib/asciidoctor-pdf/asciidoctor_ext/document.rb +3 -0
  12. data/lib/asciidoctor-pdf/asciidoctor_ext/image.rb +4 -4
  13. data/lib/asciidoctor-pdf/asciidoctor_ext/logging_shim.rb +8 -2
  14. data/lib/asciidoctor-pdf/asciidoctor_ext/section.rb +16 -8
  15. data/lib/asciidoctor-pdf/asciidoctor_ext.rb +3 -1
  16. data/lib/asciidoctor-pdf/converter.rb +758 -499
  17. data/lib/asciidoctor-pdf/core_ext/hash.rb +5 -0
  18. data/lib/asciidoctor-pdf/core_ext/regexp.rb +3 -0
  19. data/lib/asciidoctor-pdf/core_ext.rb +2 -0
  20. data/lib/asciidoctor-pdf/formatted_text/formatter.rb +8 -1
  21. data/lib/asciidoctor-pdf/formatted_text/inline_image_arranger.rb +3 -1
  22. data/lib/asciidoctor-pdf/formatted_text/parser.rb +24 -12
  23. data/lib/asciidoctor-pdf/formatted_text/parser.treetop +1 -1
  24. data/lib/asciidoctor-pdf/formatted_text/text_background_and_border_renderer.rb +45 -0
  25. data/lib/asciidoctor-pdf/formatted_text/transform.rb +44 -21
  26. data/lib/asciidoctor-pdf/formatted_text.rb +1 -0
  27. data/lib/asciidoctor-pdf/index_catalog.rb +9 -3
  28. data/lib/asciidoctor-pdf/measurements.rb +1 -1
  29. data/lib/asciidoctor-pdf/prawn_ext/extensions.rb +37 -21
  30. data/lib/asciidoctor-pdf/prawn_ext/images.rb +18 -7
  31. data/lib/asciidoctor-pdf/roman_numeral.rb +12 -0
  32. data/lib/asciidoctor-pdf/theme_loader.rb +99 -69
  33. data/lib/asciidoctor-pdf/version.rb +1 -1
  34. metadata +45 -5
@@ -0,0 +1,5 @@
1
+ class Asciidoctor::AbstractBlock
2
+ def sections?
3
+ !sections.empty?
4
+ end unless method_defined? :sections?
5
+ end
@@ -0,0 +1,3 @@
1
+ class Asciidoctor::Document
2
+ alias catalog references unless method_defined? :catalog
3
+ end
@@ -3,13 +3,13 @@ module Image
3
3
  DataUriRx = /^data:image\/(?<fmt>png|jpe?g|gif|pdf|bmp|tiff);base64,(?<data>.*)$/
4
4
 
5
5
  class << self
6
- def format path, node = nil
7
- (node && (node.attr 'format', nil, false)) || (::File.extname path).downcase[1..-1]
6
+ def format path, attributes = nil
7
+ (attributes && attributes['format']) || ((ext = ::File.extname path).downcase.slice 1, ext.length)
8
8
  end
9
9
  end
10
10
 
11
11
  def format
12
- (attr 'format', nil, false) || ::File.extname(inline? ? target : (attr 'target')).downcase[1..-1]
12
+ (attr 'format', nil, false) || ((ext = ::File.extname(inline? ? target : (attr 'target'))).downcase.slice 1, ext.length)
13
13
  end
14
14
 
15
15
  def target_and_format
@@ -17,7 +17,7 @@ module Image
17
17
  if (image_path.start_with? 'data:') && (m = DataUriRx.match image_path)
18
18
  [(m[:data].extend ::Base64), m[:fmt]]
19
19
  else
20
- [image_path, (attr 'format', nil, false) || (::File.extname image_path).downcase[1..-1]]
20
+ [image_path, (attr 'format', nil, false) || ((ext = ::File.extname image_path).downcase.slice 1, ext.length)]
21
21
  end
22
22
  end
23
23
  end
@@ -1,11 +1,17 @@
1
1
  module Asciidoctor
2
2
  class StubLogger
3
3
  class << self
4
- def warn message
4
+ def info message = nil
5
+ # ignore since this isn't a real logger
6
+ end
7
+
8
+ def warn message = nil
9
+ message = block_given? ? yield : message unless message
5
10
  ::Kernel.warn %(asciidoctor: WARNING: #{message})
6
11
  end
7
12
 
8
- def error message
13
+ def error message = nil
14
+ message = block_given? ? yield : message unless message
9
15
  ::Kernel.warn %(asciidoctor: ERROR: #{message})
10
16
  end
11
17
  end
@@ -1,17 +1,25 @@
1
1
  class Asciidoctor::Section
2
2
  def numbered_title opts = {}
3
3
  unless (@cached_numbered_title ||= nil)
4
- if (slevel = (@level == 0 && @special ? 1 : @level)) == 0
5
- @is_numbered = false
6
- @cached_numbered_title = @cached_formal_numbered_title = title
7
- elsif @numbered && !@caption && slevel <= (@document.attr 'sectnumlevels', 3).to_i
4
+ slevel = @level == 0 && @special ? 1 : @level
5
+ if @numbered && !@caption && slevel <= (@document.attr 'sectnumlevels', 3).to_i
8
6
  @is_numbered = true
9
- @cached_numbered_title = %(#{sectnum} #{title})
10
- @cached_formal_numbered_title = if slevel == 1 && @document.doctype == 'book'
11
- %(#{@document.attr 'chapter-label', 'Chapter'} #{@cached_numbered_title}).lstrip
7
+ @cached_formal_numbered_title = if @document.doctype == 'book'
8
+ if slevel == 0
9
+ @cached_numbered_title = %(#{sectnum nil, ':'} #{title})
10
+ %(#{@document.attr 'part-signifier', 'Part'} #{@cached_numbered_title}).lstrip
11
+ elsif slevel == 1
12
+ @cached_numbered_title = %(#{sectnum} #{title})
13
+ %(#{@document.attr 'chapter-signifier', (@document.attr 'chapter-label', 'Chapter')} #{@cached_numbered_title}).lstrip
14
+ else
15
+ @cached_numbered_title = %(#{sectnum} #{title})
16
+ end
12
17
  else
13
- @cached_numbered_title
18
+ @cached_numbered_title = %(#{sectnum} #{title})
14
19
  end
20
+ elsif slevel == 0
21
+ @is_numbered = false
22
+ @cached_numbered_title = @cached_formal_numbered_title = title
15
23
  else
16
24
  @is_numbered = false
17
25
  @cached_numbered_title = @cached_formal_numbered_title = captioned_title
@@ -1,4 +1,6 @@
1
- # NOTE these are all candidates for inclusion in Asciidoctor core
1
+ # NOTE these are either candidates for inclusion in Asciidoctor core or backports
2
+ require_relative 'asciidoctor_ext/abstract_block'
3
+ require_relative 'asciidoctor_ext/document'
2
4
  require_relative 'asciidoctor_ext/section'
3
5
  require_relative 'asciidoctor_ext/list'
4
6
  require_relative 'asciidoctor_ext/list_item'