end.py 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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#|%0A).)+)#\/base64#', re.DOTALL)
  10. while 1:
  11. m = com.search(data)
  12. if m:
  13. data = com.sub('<code>' + parse.unquote(m.groups()[0]).replace('&#95;', '_') + '</code>', data, 1)
  14. else:
  15. break
  16. com = re.compile('#base64#((?:(?!#\/base64#).)+)#\/base64#', re.DOTALL)
  17. while 1:
  18. m = com.search(data)
  19. if m:
  20. data = com.sub('<pre style="margin-top: 10px;">' + parse.unquote(m.groups()[0]).replace('&#95;', '_').replace('\r\n', '<br>') + '</pre>', data, 1)
  21. else:
  22. break
  23. com3 = re.compile('(?:#mid#|#\/mid2#)((?:(?!#\/mid#|#\/mid2#).)+)(?:#\/mid#|#\/mid2#)', re.DOTALL)
  24. m = com3.search(data)
  25. while 1:
  26. m = com3.search(data)
  27. if m:
  28. data = com3.sub('{{{' + m.groups()[0] + '}}}', data, 1)
  29. else:
  30. break
  31. data = re.sub('<\/blockquote>(?:(?:\r)?\n){2}<blockquote>', '</blockquote><blockquote>', data)
  32. data = re.sub('<\/blockquote>(?:(?:\r)?\n)<br><blockquote>', '</blockquote><blockquote>', data)
  33. data = re.sub('\n', '<br>', data)
  34. data = re.sub('<br><ul id="list">', '<ul id="list">', data)
  35. data = re.sub('<\/ul>\r<br>', '</ul>', data)
  36. data = re.sub('<\/table>\r<br><ul ', '</table><ul ', data)
  37. data = re.sub('<pre style="margin-top: 10px;"><br>', '<pre style="margin-top: 10px;">', data)
  38. data = re.sub('<\/pre>\r<br>', '</pre>', data)
  39. data = re.sub('<hr id="under_bar"([^>]*)>(\r)?<br>', '<hr id="under_bar" style="margin-top: -5px;">', data)
  40. data = re.sub('&lt;isbr&gt;', '\r\n', data)
  41. data = re.sub('^(?:<br>|\r|\n| )+', '', data)
  42. data = re.sub('^<div style="margin-top: 30px;" id="cate">', '<div id="cate">', data)
  43. data = re.sub('&amp;#92;', '&#92;', data)
  44. data = data.replace('#mid#', '{{{')
  45. data = data.replace('#/mid#', '}}}')
  46. data = data.replace('#mid2#', '{{{')
  47. data = data.replace('#/mid2#', '}}}')
  48. if re.search('&lt;math&gt;((?:(?!&lt;\/math&gt;).)*)&lt;\/math&gt;', data):
  49. 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>'
  50. data += '<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>'
  51. return data