epuber 0.9.0 → 0.9.1
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7acd7fcb74da144389521daa83a8fb681015b82d5cc8a1da35de6058d26fec3
|
4
|
+
data.tar.gz: d61a1ac243fc871f6bf2a114d24936b123ed5a28666057b76fb3fc0da6109265
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 85a24b75e370556e3a028e0c118b4f4bc36395c4140472ddfde4be4c46fd95549fecf3d18c28d72bf545b13f9850d82394ea509b8a97d9e3f1078f678d28647e
|
7
|
+
data.tar.gz: 62483b8f634b572336cbede86754baa95d3627ac0c69d4f47e44ca701e57b201b53e0b9568a22fd7d4c3ebee6f345c1b132012be303f0ab73ed4db26d332deb3
|
@@ -40,8 +40,6 @@ module Epuber
|
|
40
40
|
# @return [String]
|
41
41
|
#
|
42
42
|
def process_css(content, compilation_context)
|
43
|
-
file_resolver = compilation_context.file_resolver
|
44
|
-
|
45
43
|
parser = UI.print_step_processing_time('css parsing') do
|
46
44
|
parser = CssParser::Parser.new
|
47
45
|
parser.load_string!(content)
|
@@ -69,27 +67,10 @@ module Epuber
|
|
69
67
|
next if path.start_with?('data:') || path.start_with?('http://') || path.start_with?('https://')
|
70
68
|
|
71
69
|
resource_group = DECLARATION_TO_FILE_GROUP_MAP[property]
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
rescue FileFinders::FileNotFoundError, FileFinders::MultipleFilesFoundError
|
77
|
-
new_path = XHTMLProcessor.resolved_link_to_file(path,
|
78
|
-
resource_group,
|
79
|
-
dirname,
|
80
|
-
file_resolver.source_finder).to_s
|
81
|
-
pkg_abs_path = File.expand_path(new_path, dirname).unicode_normalize
|
82
|
-
pkg_new_path = Pathname.new(pkg_abs_path)
|
83
|
-
.relative_path_from(Pathname.new(file_resolver.source_path))
|
84
|
-
.to_s
|
85
|
-
|
86
|
-
file_class = FileResolver.file_class_for(File.extname(new_path))
|
87
|
-
file = file_class.new(pkg_new_path)
|
88
|
-
file.path_type = :manifest
|
89
|
-
file_resolver.add_file(file)
|
90
|
-
end
|
91
|
-
|
92
|
-
new_url = FileResolver.renamed_file_with_path(new_path)
|
70
|
+
new_url = SourceFile.resolve_relative_file(destination_path,
|
71
|
+
path,
|
72
|
+
compilation_context.file_resolver,
|
73
|
+
group: resource_group)
|
93
74
|
content = content.gsub(value, "url(#{quote}#{new_url}#{quote})")
|
94
75
|
end
|
95
76
|
end
|
@@ -112,6 +112,37 @@ module Epuber
|
|
112
112
|
MSG
|
113
113
|
end
|
114
114
|
end
|
115
|
+
|
116
|
+
def self.resolve_relative_file(destination_path, pattern, file_resolver, group: nil)
|
117
|
+
dirname = File.dirname(destination_path)
|
118
|
+
|
119
|
+
begin
|
120
|
+
new_path = file_resolver.dest_finder.find_file(pattern, groups: group, context_path: dirname)
|
121
|
+
rescue FileFinders::FileNotFoundError, FileFinders::MultipleFilesFoundError
|
122
|
+
begin
|
123
|
+
new_path = XHTMLProcessor.resolved_link_to_file(pattern,
|
124
|
+
group,
|
125
|
+
dirname,
|
126
|
+
file_resolver.source_finder).to_s
|
127
|
+
rescue XHTMLProcessor::UnparseableLinkError,
|
128
|
+
FileFinders::FileNotFoundError,
|
129
|
+
FileFinders::MultipleFilesFoundError => e
|
130
|
+
UI.warning(e.to_s, location: img)
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
pkg_abs_path = File.expand_path(new_path, dirname).unicode_normalize
|
135
|
+
pkg_new_path = Pathname.new(pkg_abs_path)
|
136
|
+
.relative_path_from(Pathname.new(file_resolver.source_path))
|
137
|
+
.to_s
|
138
|
+
|
139
|
+
file_class = FileResolver.file_class_for(File.extname(new_path))
|
140
|
+
file = file_class.new(pkg_new_path)
|
141
|
+
file.path_type = :manifest
|
142
|
+
file_resolver.add_file(file)
|
143
|
+
|
144
|
+
FileResolver.renamed_file_with_path(new_path)
|
145
|
+
end
|
115
146
|
end
|
116
147
|
end
|
117
148
|
end
|
@@ -342,34 +342,15 @@ module Epuber
|
|
342
342
|
end
|
343
343
|
|
344
344
|
def self.resolve_resources_in(node_css_query, attribute_name, resource_group, xhtml_doc, file_path, file_resolver)
|
345
|
-
dirname = File.dirname(file_path)
|
346
|
-
|
347
345
|
xhtml_doc.css(node_css_query).each do |img|
|
348
346
|
path = img[attribute_name]
|
349
347
|
next if path.nil?
|
350
348
|
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
pkg_abs_path = File.expand_path(new_path, dirname).unicode_normalize
|
357
|
-
pkg_new_path = Pathname.new(pkg_abs_path).relative_path_from(Pathname.new(file_resolver.source_path)).to_s
|
358
|
-
|
359
|
-
file_class = FileResolver.file_class_for(File.extname(new_path))
|
360
|
-
file = file_class.new(pkg_new_path)
|
361
|
-
file.path_type = :manifest
|
362
|
-
file_resolver.add_file(file)
|
363
|
-
|
364
|
-
new_path = FileResolver.renamed_file_with_path(new_path)
|
365
|
-
rescue UnparseableLinkError, FileFinders::FileNotFoundError, FileFinders::MultipleFilesFoundError => e
|
366
|
-
UI.warning(e.to_s, location: img)
|
367
|
-
|
368
|
-
next
|
369
|
-
end
|
370
|
-
end
|
371
|
-
|
372
|
-
img[attribute_name] = new_path
|
349
|
+
new_path = Compiler::FileTypes::SourceFile.resolve_relative_file(file_path,
|
350
|
+
path,
|
351
|
+
file_resolver,
|
352
|
+
group: resource_group)
|
353
|
+
img[attribute_name] = new_path if new_path
|
373
354
|
end
|
374
355
|
end
|
375
356
|
|
data/lib/epuber/version.rb
CHANGED