2
0

indent.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import re
  2. def indent(data):
  3. while 1:
  4. m = re.search("(\n(?:(?:( *)\* (?:[^\n]*))\n?)+)", data)
  5. if m:
  6. result = m.groups()
  7. end = str(result[0])
  8. while 1:
  9. isspace = re.search("\n( *)\* ([^\n]*)", end)
  10. if isspace:
  11. spacebar = isspace.groups()
  12. if len(spacebar[0]) == 0:
  13. up = 20
  14. else:
  15. up = len(spacebar[0]) * 20
  16. end = re.sub("\n( *)\* ([^\n]*)", "<li style='margin-left:" + str(up) + "px'>" + spacebar[1] + "</li>", end, 1)
  17. else:
  18. break
  19. end = re.sub("\n", '', end)
  20. data = re.sub("(\n(?:(?:( *)\* (?:[^\n]*))\n?)+)", '<ul style="margin-top: 10px; margin-bottom: 10px;" id="list">' + end + '</ul>', data, 1)
  21. else:
  22. break
  23. while 1:
  24. b = re.search("(<\/h[0-9]>|\n)( +)", data)
  25. if b:
  26. result = b.groups()
  27. up = re.sub(' ', '<span id="in"></span>', result[1])
  28. if re.search('<\/h[0-9]>', result[0]):
  29. data = re.sub("(?P<in>\/h[0-9]>)( +)", '\g<in>' + up, data, 1)
  30. else:
  31. data = re.sub("(?:\n)( +)", '<br>' + up, data, 1)
  32. else:
  33. break
  34. return data