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)