10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/gibier/renderer.rb', line 10
def expand_tag
str = self.gsub(/<br>\n/, '<br></br>')
m = /\A(?<head>.*?)(?<body><(?<tag>\w+)( (?<attrs>{(\w+:.+?)(, \w:.+?)*}))?>(?<inner>.*?)<\/\k<tag>>)(?<tail>.*?)\z/.match(str)
if m
arr = []
arr << m[:head].escape unless m[:head].empty?
arr << "#{m[:tag]}(#{m[:attrs] || "nil"}, #{m[:inner].expand_tag})" unless m[:body].empty?
arr << m[:tail].expand_tag unless m[:tail].empty?
arr.join(',')
else
self.escape
end
end
|