import re
def indent(data):
while 1:
m = re.search("(\n(?:(?:( *)\* (?:[^\n]*))\n?)+)", data)
if m:
result = m.groups()
end = str(result[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)
data = re.sub("(\n(?:(?:( *)\* (?:[^\n]*))\n?)+)", '', 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