indent.py 1.4 KB

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