import re
def indent(data):
while 1:
m = re.search("(\n(?:(?:( *)\* ?(?:((?!\n|\|\|).)*))\n?)+)", data)
if m:
end = m.groups()[0]
while 1:
isspace = re.search("\n( *)\* ?([^\n]*)", end)
if isspace:
spacebar = isspace.groups()
if len(spacebar[0]) == 0:
up = 20
else:
up = len(spacebar[0]) * 20
end = re.sub("\n( *)\* ?([^\n]*)", '
' + spacebar[1] + '', end, 1)
else:
break
end = re.sub("\n", '', end)
if re.search(' <\/li>$', end):
test = ' '
else:
test = ''
data = re.sub("(\n(?:(?:( *)\* ?(?:((?!\n|\|\|).)*))\n?)+)", '' + test, data, 1)
else:
break
while 1:
b = re.search("(<\/h[0-9]>|\n)( +)", data)
if b:
result = b.groups()
up = re.sub(' ', '', result[1])
if re.search('<\/h[0-9]>', result[0]):
data = re.sub("(?P\/h[0-9]>)( +)", '\g' + up, data, 1)
else:
data = re.sub("(?:\n)( +)", '
' + up, data, 1)
else:
break
return data