Add file injection to help split apart big files without needing to prerender individual pieces
This commit is contained in:
parent
f12f23e8a3
commit
3ebd5934b3
@ -31,6 +31,8 @@ unless they have the following names:
|
|||||||
* (protect): The layer will not be deleted if it is hidden. Good for clone sources.
|
* (protect): The layer will not be deleted if it is hidden. Good for clone sources.
|
||||||
* (child visible): The layer will be visible if its parent layer is also made visible. Good if you
|
* (child visible): The layer will be visible if its parent layer is also made visible. Good if you
|
||||||
break artwork up into multiple layers (inks, colors, shading, etc.)
|
break artwork up into multiple layers (inks, colors, shading, etc.)
|
||||||
|
* (inject filename.svg): Include all the layers of another SVG file as child layers of this layer.
|
||||||
|
Does not copy patterns/gradients yet!
|
||||||
|
|
||||||
Hiding/showing layers is the way that you make certain card elements appear/disappear on
|
Hiding/showing layers is the way that you make certain card elements appear/disappear on
|
||||||
different types of cards with with different properties. You can also replace the text in
|
different types of cards with with different properties. You can also replace the text in
|
||||||
|
@ -66,6 +66,7 @@ module SVGGVS
|
|||||||
end
|
end
|
||||||
|
|
||||||
with_new_target do |target|
|
with_new_target do |target|
|
||||||
|
target.inject!
|
||||||
target.active_layers = card[:active_layers]
|
target.active_layers = card[:active_layers]
|
||||||
target.replacements = card[:replacements]
|
target.replacements = card[:replacements]
|
||||||
end
|
end
|
||||||
|
@ -12,6 +12,26 @@ module SVGGVS
|
|||||||
@target
|
@target
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def injected_sources
|
||||||
|
@injected_sources ||= {}
|
||||||
|
end
|
||||||
|
|
||||||
|
def inject!
|
||||||
|
css("g[inkscape|groupmode='layer']").each do |layer|
|
||||||
|
if filename = layer['inkscape:label'][/inject (.*\.svg)/, 1]
|
||||||
|
injected_sources[filename] ||= begin
|
||||||
|
data = Nokogiri::XML(::File.read(filename))
|
||||||
|
|
||||||
|
data.css("svg > g[inkscape|groupmode='layer']")
|
||||||
|
end
|
||||||
|
|
||||||
|
injected_sources[filename].each do |additional_layer|
|
||||||
|
layer << additional_layer.to_xml
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def active_layers=(layers)
|
def active_layers=(layers)
|
||||||
css("g[inkscape|groupmode='layer']").each do |layer|
|
css("g[inkscape|groupmode='layer']").each do |layer|
|
||||||
if layers.include?(layer['inkscape:label'])
|
if layers.include?(layer['inkscape:label'])
|
||||||
|
Loading…
Reference in New Issue
Block a user