end.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import re
  2. from urllib import parse
  3. def end(data, category):
  4. if category:
  5. data += '<div style="margin-top: 30px;" id="cate">분류: ' + category + '</div>'
  6. data = re.sub("\r\n(?P<in><h[0-6])", "\g<in>", data)
  7. data = re.sub("(\n#no-br#|#no-br#\n|#no-br#)", "", data)
  8. data = re.sub("&lt;space&gt;", " ", data)
  9. com = re.compile('#base64#((?:(?!#\/base64#).)+)#\/base64#', re.DOTALL)
  10. while 1:
  11. m = com.search(data)
  12. if m:
  13. data = com.sub(parse.unquote(m.groups()[0]).replace('&#95;', '_').replace('\r\n', '<br>'), data, 1)
  14. else:
  15. break
  16. com3 = re.compile('(?:#mid#|#\/mid2#)((?:(?!#\/mid#|#\/mid2#).)+)(?:#\/mid#|#\/mid2#)', re.DOTALL)
  17. m = com3.search(data)
  18. while 1:
  19. m = com3.search(data)
  20. if m:
  21. data = com3.sub('{{{' + m.groups()[0] + '}}}', data, 1)
  22. else:
  23. break
  24. data = re.sub('<\/blockquote>(?:(?:\r)?\n){2}<blockquote>', '</blockquote><blockquote>', data)
  25. data = re.sub('<\/blockquote>(?:(?:\r)?\n)<br><blockquote>', '</blockquote><blockquote>', data)
  26. data = re.sub('\n', '<br>', data)
  27. data = re.sub('<br><ul id="list">', '<ul id="list">', data)
  28. data = re.sub('<\/ul>\r<br>', '</ul>', data)
  29. data = re.sub('<\/table>\r<br><ul ', '</table><ul ', data)
  30. data = re.sub('<hr id="under_bar"([^>]*)>(\r)?<br>', '<hr id="under_bar" style="margin-top: -5px;">', data)
  31. data = re.sub('&lt;isbr&gt;', '\r\n', data)
  32. data = re.sub('^(?:<br>|\r|\n| )+', '', data)
  33. data = re.sub('^<div style="margin-top: 30px;" id="cate">', '<div id="cate">', data)
  34. data = re.sub('&amp;#92;', '&#92;', data)
  35. if re.search('\[math\]((?:(?!\[\/math\]).)*)\[\/math\]', data):
  36. data += '<script type="text/x-mathjax-config">MathJax.Hub.Config({ extensions: ["tex2jax.js", "AMSmath.js"], jax: ["input/TeX", "output/HTML-CSS"], tex2jax: { inlineMath: [ [\'[math]\',\'[/math]\'] ],processEscapes: true }, }); </script>'
  37. data += '<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>'
  38. return data