23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/pandoc-filter.rb', line 23
def self.walk(x)
if x.kind_of?(Array)
result = []
x.each do |item|
if item.kind_of?(Hash) && item.has_key?('t')
res = @block.call(item['t'], item['c'], @format, @meta)
if !res
result.push(walk(item))
elsif res.kind_of?(Array)
res.each do |z|
result.push(walk(z))
end
else
result.push(walk(res))
end
else
result.push(walk(item))
end
end
return result
elsif x.kind_of?(Hash)
result = {}
x.each do |key,value|
result[key] = walk(value)
end
return result
else
return x
end
end
|