7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/metanorma/mirror/handlers/figure.rb', line 7
def self.call(element, context:)
attrs = figure_attrs(element)
content = []
img = SafeAttr.read(element, :image)
if img
img_attrs = {}
src = SafeAttr.read(img, :source)
img_attrs[:src] =
src && !src.strip.empty? ? src : SafeAttr.read(img, :filename)
img_attrs[:alt] = SafeAttr.read(img, :alt)
img_attrs[:height] = SafeAttr.read(img, :height)
img_attrs[:width] = SafeAttr.read(img, :width)
content << Handlers.build_node("image", attrs: img_attrs.compact)
end
subfigures = SafeAttr.read(element, :figure)
subfigures&.each do |sub|
result = context.registry.handle(sub, context: context)
result.append_to(content)
end
notes = SafeAttr.read(element, :note)
notes&.each do |n|
result = context.registry.handle(n, context: context)
result.append_to(content)
end
Handlers.build_node("figure", attrs: attrs, content: content)
end
|