asciidoctor-pdf 1.5.0.rc.2 → 1.5.0.rc.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.adoc +29 -0
- data/README.adoc +33 -6
- data/asciidoctor-pdf.gemspec +3 -7
- data/data/fonts/ABOUT-notoemoji-subset +3 -0
- data/data/fonts/ABOUT-notoserif-subset +1 -1
- data/data/fonts/mplus1mn-bold-ascii.ttf +0 -0
- data/data/fonts/mplus1mn-bold-subset.ttf +0 -0
- data/data/fonts/mplus1mn-bold_italic-ascii.ttf +0 -0
- data/data/fonts/mplus1mn-bold_italic-subset.ttf +0 -0
- data/data/fonts/mplus1mn-italic-ascii.ttf +0 -0
- data/data/fonts/mplus1mn-italic-subset.ttf +0 -0
- data/data/fonts/mplus1mn-regular-ascii-conums.ttf +0 -0
- data/data/fonts/mplus1mn-regular-subset.ttf +0 -0
- data/data/fonts/mplus1p-regular-fallback.ttf +0 -0
- data/data/fonts/notoemoji-subset.ttf +0 -0
- data/data/fonts/notoserif-bold-subset.ttf +0 -0
- data/data/fonts/notoserif-bold_italic-subset.ttf +0 -0
- data/data/fonts/notoserif-italic-subset.ttf +0 -0
- data/data/fonts/notoserif-regular-subset.ttf +0 -0
- data/data/themes/default-theme.yml +1 -1
- data/data/themes/default-with-fallback-font-theme.yml +4 -17
- data/docs/theming-guide.adoc +38 -13
- data/lib/asciidoctor/pdf.rb +0 -1
- data/lib/asciidoctor/pdf/converter.rb +154 -123
- data/lib/asciidoctor/pdf/ext/asciidoctor/logging_shim.rb +9 -1
- data/lib/asciidoctor/pdf/ext/core.rb +1 -0
- data/lib/asciidoctor/pdf/ext/core/file.rb +9 -0
- data/lib/asciidoctor/pdf/ext/prawn/extensions.rb +10 -0
- data/lib/asciidoctor/pdf/ext/prawn/font/afm.rb +2 -6
- data/lib/asciidoctor/pdf/ext/prawn/formatted_text/box.rb +40 -0
- data/lib/asciidoctor/pdf/formatted_text/formatter.rb +5 -6
- data/lib/asciidoctor/pdf/formatted_text/fragment_position_renderer.rb +2 -1
- data/lib/asciidoctor/pdf/formatted_text/inline_image_arranger.rb +7 -12
- data/lib/asciidoctor/pdf/formatted_text/inline_image_renderer.rb +1 -4
- data/lib/asciidoctor/pdf/formatted_text/transform.rb +1 -1
- data/lib/asciidoctor/pdf/theme_loader.rb +10 -9
- data/lib/asciidoctor/pdf/version.rb +1 -1
- metadata +10 -64
- data/lib/asciidoctor/pdf/temporary_path.rb +0 -15
@@ -7,6 +7,10 @@ module Asciidoctor
|
|
7
7
|
# ignore since this isn't a real logger
|
8
8
|
end
|
9
9
|
|
10
|
+
def info?
|
11
|
+
false
|
12
|
+
end
|
13
|
+
|
10
14
|
def warn message = nil
|
11
15
|
::Kernel.warn %(asciidoctor: WARNING: #{message || (block_given? ? yield : '???')})
|
12
16
|
end
|
@@ -17,9 +21,13 @@ module Asciidoctor
|
|
17
21
|
end
|
18
22
|
end
|
19
23
|
|
20
|
-
module
|
24
|
+
module Logging
|
21
25
|
def logger
|
22
26
|
StubLogger
|
23
27
|
end
|
28
|
+
|
29
|
+
def message_with_context text, _context = {}
|
30
|
+
text
|
31
|
+
end
|
24
32
|
end
|
25
33
|
end
|
@@ -22,6 +22,8 @@ module Asciidoctor
|
|
22
22
|
italic: [:italic].to_set,
|
23
23
|
bold_italic: [:bold, :italic].to_set,
|
24
24
|
}).default = ::Set.new
|
25
|
+
# NOTE must use a visible char for placeholder or else Prawn won't reserve space for the fragment
|
26
|
+
PlaceholderChar = ?\u2063
|
25
27
|
|
26
28
|
# - :height is the height of a line
|
27
29
|
# - :leading is spacing between adjacent lines
|
@@ -309,6 +311,12 @@ module Asciidoctor
|
|
309
311
|
end
|
310
312
|
end
|
311
313
|
|
314
|
+
# Override width of string to check for placeholder char, which uses character spacing to control width
|
315
|
+
#
|
316
|
+
def width_of_string string, options = {}
|
317
|
+
string == PlaceholderChar ? @character_spacing : super
|
318
|
+
end
|
319
|
+
|
312
320
|
def icon_font_data family
|
313
321
|
::Prawn::Icon::FontData.load self, family
|
314
322
|
end
|
@@ -751,6 +759,7 @@ module Asciidoctor
|
|
751
759
|
start_new_page_discretely template: file, template_page: opts[:page]
|
752
760
|
# prawn-templates sets text_rendering_mode to :unknown, which breaks running content; revert
|
753
761
|
@text_rendering_mode = prev_text_rendering_mode
|
762
|
+
yield if block_given?
|
754
763
|
if opts.fetch :advance, true
|
755
764
|
# NOTE set page size & layout explicitly in case imported page differs
|
756
765
|
# I'm not sure it's right to start a new page here, but unfortunately there's no other
|
@@ -824,6 +833,7 @@ module Asciidoctor
|
|
824
833
|
@scratch ||= if defined? @prototype # rubocop:disable Naming/MemoizedInstanceVariableName
|
825
834
|
scratch = Marshal.load Marshal.dump @prototype
|
826
835
|
scratch.instance_variable_set :@prototype, @prototype
|
836
|
+
scratch.instance_variable_set :@tmp_files, @tmp_files
|
827
837
|
# TODO: set scratch number on scratch document
|
828
838
|
scratch
|
829
839
|
else
|
@@ -1,11 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class Prawn::Font::AFM
|
4
|
-
|
5
|
-
include ::Asciidoctor::Logging
|
6
|
-
else
|
7
|
-
include ::Asciidoctor::LoggingShim
|
8
|
-
end
|
4
|
+
include ::Asciidoctor::Logging
|
9
5
|
|
10
6
|
FALLBACK_CHARS = {
|
11
7
|
?\u200b => '',
|
@@ -26,7 +22,7 @@ class Prawn::Font::AFM
|
|
26
22
|
text.encode 'windows-1252', fallback: FALLBACK_CHARS
|
27
23
|
rescue ::Encoding::UndefinedConversionError
|
28
24
|
logger.warn %(The following text could not be fully converted to the Windows-1252 character set:
|
29
|
-
#{text.gsub(/^/, '| ').rstrip})
|
25
|
+
#{text.gsub(/^/, '| ').rstrip}) if logger.info? && !@document.scratch?
|
30
26
|
text.encode 'windows-1252', undef: :replace, replace: ?\u00ac
|
31
27
|
rescue ::Encoding::InvalidByteSequenceError
|
32
28
|
raise Prawn::Errors::IncompatibleStringEncoding,
|
@@ -1,6 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
Prawn::Text::Formatted::Box.prepend (Module.new do
|
4
|
+
include ::Asciidoctor::Logging
|
5
|
+
|
4
6
|
def draw_fragment_overlay_styles fragment
|
5
7
|
if (underline = (styles = fragment.styles).include? :underline) || (styles.include? :strikethrough)
|
6
8
|
(doc = fragment.document).save_graphics_state do
|
@@ -14,4 +16,42 @@ Prawn::Text::Formatted::Box.prepend (Module.new do
|
|
14
16
|
end
|
15
17
|
end
|
16
18
|
end
|
19
|
+
|
20
|
+
def find_font_for_this_glyph char, current_font, fallback_fonts_to_check, original_font = current_font
|
21
|
+
@document.font current_font
|
22
|
+
if fallback_fonts_to_check.empty?
|
23
|
+
logger.warn %(Could not locate the character `#{char}' in the following fonts: #{([original_font].concat @fallback_fonts).join ', '}) if logger.info? && !@document.scratch?
|
24
|
+
current_font
|
25
|
+
elsif @document.font.glyph_present? char
|
26
|
+
current_font
|
27
|
+
else
|
28
|
+
find_font_for_this_glyph char, fallback_fonts_to_check.shift, fallback_fonts_to_check, original_font
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def process_vertical_alignment text
|
33
|
+
return super if ::Symbol === (valign = @vertical_align)
|
34
|
+
|
35
|
+
return if defined? @vertical_alignment_processed
|
36
|
+
@vertical_alignment_processed = true
|
37
|
+
|
38
|
+
valign, offset = valign
|
39
|
+
|
40
|
+
if valign == :top
|
41
|
+
@at[1] -= offset
|
42
|
+
return
|
43
|
+
end
|
44
|
+
|
45
|
+
wrap text
|
46
|
+
h = height
|
47
|
+
|
48
|
+
case valign
|
49
|
+
when :center
|
50
|
+
@at[1] -= (@height - h + @descender) * 0.5 + offset
|
51
|
+
when :bottom
|
52
|
+
@at[1] -= (@height - h) + offset
|
53
|
+
end
|
54
|
+
|
55
|
+
@height = h
|
56
|
+
end
|
17
57
|
end)
|
@@ -4,11 +4,9 @@ module Asciidoctor
|
|
4
4
|
module PDF
|
5
5
|
module FormattedText
|
6
6
|
class Formatter
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
include ::Asciidoctor::LoggingShim
|
11
|
-
end
|
7
|
+
include ::Asciidoctor::Logging
|
8
|
+
|
9
|
+
attr_accessor :scratch
|
12
10
|
|
13
11
|
FormattingSnifferPattern = /[<&]/
|
14
12
|
WHITESPACE = %( \t\n)
|
@@ -16,6 +14,7 @@ module Asciidoctor
|
|
16
14
|
def initialize options = {}
|
17
15
|
@parser = MarkupParser.new
|
18
16
|
@transform = Transform.new merge_adjacent_text_nodes: true, theme: options[:theme]
|
17
|
+
@scratch = false
|
19
18
|
end
|
20
19
|
|
21
20
|
def format string, *args
|
@@ -25,7 +24,7 @@ module Asciidoctor
|
|
25
24
|
if FormattingSnifferPattern.match? string
|
26
25
|
if (parsed = @parser.parse string)
|
27
26
|
return @transform.apply parsed.content, [], inherited
|
28
|
-
|
27
|
+
elsif !@scratch
|
29
28
|
logger.error %(failed to parse formatted text: #{string})
|
30
29
|
end
|
31
30
|
end
|
@@ -2,12 +2,13 @@
|
|
2
2
|
|
3
3
|
module Asciidoctor::PDF::FormattedText
|
4
4
|
class FragmentPositionRenderer
|
5
|
-
attr_reader :top, :right, :bottom, :left
|
5
|
+
attr_reader :top, :right, :bottom, :left, :page_number
|
6
6
|
|
7
7
|
def render_behind fragment
|
8
8
|
@top = fragment.top
|
9
9
|
@right = (@left = fragment.left) + fragment.width
|
10
10
|
@bottom = fragment.bottom
|
11
|
+
@page_number = fragment.document.page_number
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
@@ -3,15 +3,9 @@
|
|
3
3
|
module Asciidoctor::PDF::FormattedText
|
4
4
|
module InlineImageArranger
|
5
5
|
include ::Asciidoctor::PDF::Measurements
|
6
|
-
|
7
|
-
include ::Asciidoctor::Logging
|
8
|
-
else
|
9
|
-
include ::Asciidoctor::LoggingShim
|
10
|
-
end
|
6
|
+
include ::Asciidoctor::Logging
|
11
7
|
|
12
|
-
|
13
|
-
ImagePlaceholderChar = '.'
|
14
|
-
TemporaryPath = ::Asciidoctor::PDF::TemporaryPath
|
8
|
+
PlaceholderChar = ::Asciidoctor::Prawn::Extensions::PlaceholderChar
|
15
9
|
|
16
10
|
def wrap fragments
|
17
11
|
arrange_images fragments
|
@@ -113,11 +107,14 @@ module Asciidoctor::PDF::FormattedText
|
|
113
107
|
end
|
114
108
|
end
|
115
109
|
|
116
|
-
fragment
|
110
|
+
# NOTE we can't rely on the fragment width because the line wrap mechanism ignores it;
|
111
|
+
# it only considers the text (string) and character spacing, rebuilding the string several times
|
112
|
+
fragment[:text] = PlaceholderChar
|
113
|
+
fragment[:character_spacing] = image_w
|
117
114
|
fragment[:image_width] = fragment[:width] = image_w
|
118
115
|
fragment[:image_height] = image_h
|
119
116
|
rescue
|
120
|
-
logger.warn %(could not embed image: #{image_path}; #{$!.message}#{::Prawn::Errors::UnsupportedImageType === $! ? '; install prawn-gmagick gem to add support' : ''})
|
117
|
+
logger.warn %(could not embed image: #{image_path}; #{$!.message}#{::Prawn::Errors::UnsupportedImageType === $! ? '; install prawn-gmagick gem to add support' : ''}) unless scratch
|
121
118
|
drop = true # delegate to cleanup logic in ensure block
|
122
119
|
ensure
|
123
120
|
# NOTE skip rendering image in scratch document or if image can't be loaded
|
@@ -126,8 +123,6 @@ module Asciidoctor::PDF::FormattedText
|
|
126
123
|
fragment.delete :image_info
|
127
124
|
# NOTE retain key to indicate we've visited fragment already
|
128
125
|
fragment[:image_obj] = nil
|
129
|
-
# NOTE in main document, temporary image path is unlinked by renderer
|
130
|
-
image_path.unlink if TemporaryPath === image_path && image_path.exist?
|
131
126
|
end
|
132
127
|
end
|
133
128
|
end
|
@@ -2,8 +2,6 @@
|
|
2
2
|
|
3
3
|
module Asciidoctor::PDF::FormattedText
|
4
4
|
module InlineImageRenderer
|
5
|
-
TemporaryPath = ::Asciidoctor::PDF::TemporaryPath
|
6
|
-
|
7
5
|
module_function
|
8
6
|
|
9
7
|
# Embeds the image object in this fragment into the document in place of the
|
@@ -36,6 +34,7 @@ module Asciidoctor::PDF::FormattedText
|
|
36
34
|
pdf.float do
|
37
35
|
image_obj.draw
|
38
36
|
image_obj.document.warnings.each do |img_warning|
|
37
|
+
# NOTE shim logger can't be imported into a module, so use the one from the PDF document instead
|
39
38
|
pdf.logger.warn %(problem encountered in image: #{data[:image_path]}; #{img_warning})
|
40
39
|
end
|
41
40
|
end
|
@@ -47,8 +46,6 @@ module Asciidoctor::PDF::FormattedText
|
|
47
46
|
|
48
47
|
# prevent any text from being written
|
49
48
|
fragment.conceal
|
50
|
-
ensure
|
51
|
-
data[:image_path].unlink if TemporaryPath === data[:image_path] && data[:image_path].exist?
|
52
49
|
end
|
53
50
|
end
|
54
51
|
end
|
@@ -170,7 +170,7 @@ module Asciidoctor
|
|
170
170
|
when :img
|
171
171
|
attributes = node[:attributes]
|
172
172
|
fragment = {
|
173
|
-
image_path: attributes[:
|
173
|
+
image_path: attributes[:src],
|
174
174
|
image_format: attributes[:format],
|
175
175
|
# a zero-width space in the text will cause the image to be duplicated
|
176
176
|
text: (attributes[:alt].delete ZeroWidthSpace),
|
@@ -8,11 +8,7 @@ module Asciidoctor
|
|
8
8
|
module PDF
|
9
9
|
class ThemeLoader
|
10
10
|
include ::Asciidoctor::PDF::Measurements
|
11
|
-
|
12
|
-
include ::Asciidoctor::Logging
|
13
|
-
else
|
14
|
-
include ::Asciidoctor::LoggingShim
|
15
|
-
end
|
11
|
+
include ::Asciidoctor::Logging
|
16
12
|
|
17
13
|
DataDir = ::File.absolute_path %(#{__dir__}/../../../data)
|
18
14
|
ThemesDir = ::File.join DataDir, 'themes'
|
@@ -80,6 +76,10 @@ module Asciidoctor
|
|
80
76
|
theme_data.base_font_color ||= '000000'
|
81
77
|
theme_data.code_font_family ||= (theme_data.literal_font_family || 'Courier')
|
82
78
|
theme_data.conum_font_family ||= (theme_data.literal_font_family || 'Courier')
|
79
|
+
if (heading_font_family = theme_data.heading_font_family)
|
80
|
+
theme_data.abstract_title_font_family ||= heading_font_family
|
81
|
+
theme_data.sidebar_title_font_family ||= heading_font_family
|
82
|
+
end
|
83
83
|
end
|
84
84
|
theme_data.__dir__ = theme_dir
|
85
85
|
theme_data
|
@@ -91,7 +91,7 @@ module Asciidoctor
|
|
91
91
|
data = data.each_line.map {|line|
|
92
92
|
line.sub(HexColorEntryRx) { %(#{(m = $~)[:k]}: #{m[:h] || (m[:k].end_with? 'color') ? "'#{m[:v]}'" : m[:v]}) }
|
93
93
|
}.join unless (::File.dirname filename) == ThemesDir
|
94
|
-
yaml_data = ::SafeYAML.load data
|
94
|
+
yaml_data = ::SafeYAML.load data, filename
|
95
95
|
if ::Hash === yaml_data && (yaml_data.key? 'extends')
|
96
96
|
if (extends = yaml_data.delete 'extends')
|
97
97
|
[*extends].each do |extend_path|
|
@@ -127,16 +127,17 @@ module Asciidoctor
|
|
127
127
|
process_entry %(#{key}_#{subkey}), subval, data if subkey == 'catalog' || subkey == 'fallbacks'
|
128
128
|
end if ::Hash === val
|
129
129
|
elsif key == 'font_catalog'
|
130
|
-
data[key] = ::Hash === val ? val.reduce({}
|
130
|
+
data[key] = ::Hash === val ? (val.reduce (val.delete 'merge') ? data[key] || {} : {} do |accum, (name, styles)| # rubocop:disable Style/EachWithObject
|
131
|
+
styles = %w(normal bold italic bold_italic).map {|style| [style, styles] }.to_h if ::String === styles
|
131
132
|
accum[name] = styles.reduce({}) do |subaccum, (style, path)| # rubocop:disable Style/EachWithObject
|
132
133
|
if (path.start_with? 'GEM_FONTS_DIR') && (sep = path[13])
|
133
134
|
path = %(#{FontsDir}#{sep}#{path.slice 14, path.length})
|
134
135
|
end
|
135
|
-
subaccum[style] = expand_vars path, data
|
136
|
+
subaccum[style == 'regular' ? 'normal' : style] = expand_vars path, data
|
136
137
|
subaccum
|
137
138
|
end if ::Hash === styles
|
138
139
|
accum
|
139
|
-
end : {}
|
140
|
+
end) : {}
|
140
141
|
elsif key == 'font_fallbacks'
|
141
142
|
data[key] = ::Array === val ? val.map {|name| expand_vars name.to_s, data } : []
|
142
143
|
elsif key.start_with? 'admonition_icon_'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asciidoctor-pdf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.0.rc.
|
4
|
+
version: 1.5.0.rc.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Allen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-
|
12
|
+
date: 2020-02-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: asciidoctor
|
@@ -169,14 +169,14 @@ dependencies:
|
|
169
169
|
requirements:
|
170
170
|
- - "~>"
|
171
171
|
- !ruby/object:Gem::Version
|
172
|
-
version: 1.
|
172
|
+
version: 1.6.0
|
173
173
|
type: :runtime
|
174
174
|
prerelease: false
|
175
175
|
version_requirements: !ruby/object:Gem::Requirement
|
176
176
|
requirements:
|
177
177
|
- - "~>"
|
178
178
|
- !ruby/object:Gem::Version
|
179
|
-
version: 1.
|
179
|
+
version: 1.6.0
|
180
180
|
- !ruby/object:Gem::Dependency
|
181
181
|
name: rake
|
182
182
|
requirement: !ruby/object:Gem::Requirement
|
@@ -191,34 +191,6 @@ dependencies:
|
|
191
191
|
- - "~>"
|
192
192
|
- !ruby/object:Gem::Version
|
193
193
|
version: 13.0.0
|
194
|
-
- !ruby/object:Gem::Dependency
|
195
|
-
name: deep-cover-core
|
196
|
-
requirement: !ruby/object:Gem::Requirement
|
197
|
-
requirements:
|
198
|
-
- - "~>"
|
199
|
-
- !ruby/object:Gem::Version
|
200
|
-
version: 0.7.0
|
201
|
-
type: :development
|
202
|
-
prerelease: false
|
203
|
-
version_requirements: !ruby/object:Gem::Requirement
|
204
|
-
requirements:
|
205
|
-
- - "~>"
|
206
|
-
- !ruby/object:Gem::Version
|
207
|
-
version: 0.7.0
|
208
|
-
- !ruby/object:Gem::Dependency
|
209
|
-
name: simplecov
|
210
|
-
requirement: !ruby/object:Gem::Requirement
|
211
|
-
requirements:
|
212
|
-
- - "~>"
|
213
|
-
- !ruby/object:Gem::Version
|
214
|
-
version: 0.17.0
|
215
|
-
type: :development
|
216
|
-
prerelease: false
|
217
|
-
version_requirements: !ruby/object:Gem::Requirement
|
218
|
-
requirements:
|
219
|
-
- - "~>"
|
220
|
-
- !ruby/object:Gem::Version
|
221
|
-
version: 0.17.0
|
222
194
|
- !ruby/object:Gem::Dependency
|
223
195
|
name: rspec
|
224
196
|
requirement: !ruby/object:Gem::Requirement
|
@@ -253,42 +225,14 @@ dependencies:
|
|
253
225
|
requirements:
|
254
226
|
- - "~>"
|
255
227
|
- !ruby/object:Gem::Version
|
256
|
-
version: 3.
|
257
|
-
type: :development
|
258
|
-
prerelease: false
|
259
|
-
version_requirements: !ruby/object:Gem::Requirement
|
260
|
-
requirements:
|
261
|
-
- - "~>"
|
262
|
-
- !ruby/object:Gem::Version
|
263
|
-
version: 3.14.0
|
264
|
-
- !ruby/object:Gem::Dependency
|
265
|
-
name: rubocop
|
266
|
-
requirement: !ruby/object:Gem::Requirement
|
267
|
-
requirements:
|
268
|
-
- - "~>"
|
269
|
-
- !ruby/object:Gem::Version
|
270
|
-
version: 0.78.0
|
271
|
-
type: :development
|
272
|
-
prerelease: false
|
273
|
-
version_requirements: !ruby/object:Gem::Requirement
|
274
|
-
requirements:
|
275
|
-
- - "~>"
|
276
|
-
- !ruby/object:Gem::Version
|
277
|
-
version: 0.78.0
|
278
|
-
- !ruby/object:Gem::Dependency
|
279
|
-
name: rubocop-rspec
|
280
|
-
requirement: !ruby/object:Gem::Requirement
|
281
|
-
requirements:
|
282
|
-
- - "~>"
|
283
|
-
- !ruby/object:Gem::Version
|
284
|
-
version: 1.37.0
|
228
|
+
version: '3.0'
|
285
229
|
type: :development
|
286
230
|
prerelease: false
|
287
231
|
version_requirements: !ruby/object:Gem::Requirement
|
288
232
|
requirements:
|
289
233
|
- - "~>"
|
290
234
|
- !ruby/object:Gem::Version
|
291
|
-
version:
|
235
|
+
version: '3.0'
|
292
236
|
- !ruby/object:Gem::Dependency
|
293
237
|
name: coderay
|
294
238
|
requirement: !ruby/object:Gem::Requirement
|
@@ -336,6 +280,7 @@ files:
|
|
336
280
|
- bin/asciidoctor-pdf-optimize
|
337
281
|
- data/fonts/ABOUT-mplus1mn-subset
|
338
282
|
- data/fonts/ABOUT-mplus1p-subset
|
283
|
+
- data/fonts/ABOUT-notoemoji-subset
|
339
284
|
- data/fonts/ABOUT-notoserif-subset
|
340
285
|
- data/fonts/LICENSE-mplus
|
341
286
|
- data/fonts/LICENSE-notoserif
|
@@ -348,6 +293,7 @@ files:
|
|
348
293
|
- data/fonts/mplus1mn-regular-ascii-conums.ttf
|
349
294
|
- data/fonts/mplus1mn-regular-subset.ttf
|
350
295
|
- data/fonts/mplus1p-regular-fallback.ttf
|
296
|
+
- data/fonts/notoemoji-subset.ttf
|
351
297
|
- data/fonts/notoserif-bold-subset.ttf
|
352
298
|
- data/fonts/notoserif-bold_italic-subset.ttf
|
353
299
|
- data/fonts/notoserif-italic-subset.ttf
|
@@ -373,6 +319,7 @@ files:
|
|
373
319
|
- lib/asciidoctor/pdf/ext/asciidoctor/section.rb
|
374
320
|
- lib/asciidoctor/pdf/ext/core.rb
|
375
321
|
- lib/asciidoctor/pdf/ext/core/array.rb
|
322
|
+
- lib/asciidoctor/pdf/ext/core/file.rb
|
376
323
|
- lib/asciidoctor/pdf/ext/core/hash.rb
|
377
324
|
- lib/asciidoctor/pdf/ext/core/numeric.rb
|
378
325
|
- lib/asciidoctor/pdf/ext/core/object.rb
|
@@ -419,7 +366,6 @@ files:
|
|
419
366
|
- lib/asciidoctor/pdf/pdfmark.rb
|
420
367
|
- lib/asciidoctor/pdf/roman_numeral.rb
|
421
368
|
- lib/asciidoctor/pdf/sanitizer.rb
|
422
|
-
- lib/asciidoctor/pdf/temporary_path.rb
|
423
369
|
- lib/asciidoctor/pdf/text_transformer.rb
|
424
370
|
- lib/asciidoctor/pdf/theme_loader.rb
|
425
371
|
- lib/asciidoctor/pdf/version.rb
|
@@ -446,7 +392,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
446
392
|
- !ruby/object:Gem::Version
|
447
393
|
version: 1.3.1
|
448
394
|
requirements: []
|
449
|
-
rubygems_version: 3.
|
395
|
+
rubygems_version: 3.0.6
|
450
396
|
signing_key:
|
451
397
|
specification_version: 4
|
452
398
|
summary: Converts AsciiDoc documents to PDF using Asciidoctor and Prawn
|