func_render_namumark.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. from .func_tool import *
  2. class class_do_render_namumark:
  3. def __init__(
  4. self,
  5. curs,
  6. doc_name,
  7. doc_data,
  8. doc_include
  9. ):
  10. self.curs = curs
  11. self.doc_data = doc_data
  12. self.doc_name = doc_name
  13. self.doc_include = doc_include
  14. self.data_nowiki = {}
  15. self.data_backlink = []
  16. self.data_toc = ''
  17. self.data_footnote = ''
  18. self.data_category = ''
  19. def do_render_text(self):
  20. # <b>
  21. self.render_data = re.sub(
  22. r"&#x27;&#x27;&#x27;((?:(?!&#x27;&#x27;&#x27;).)+)&#x27;&#x27;&#x27;",
  23. '<b>\g<1></b>',
  24. self.render_data
  25. )
  26. # <i>
  27. self.render_data = re.sub(
  28. r"&#x27;&#x27;((?:(?!&#x27;&#x27;).)+)&#x27;&#x27;",
  29. '<i>\g<1></i>',
  30. self.render_data
  31. )
  32. # <u>
  33. self.render_data = re.sub(
  34. r"__((?:(?!__).)+)__",
  35. '<u>\g<1></u>',
  36. self.render_data
  37. )
  38. # <sup>
  39. self.render_data = re.sub(
  40. r"\^\^\^((?:(?!\^\^\^).)+)\^\^\^",
  41. '<sup>\g<1></sup>',
  42. self.render_data
  43. )
  44. # <sup> 2
  45. self.render_data = re.sub(
  46. r"\^\^((?:(?!\^\^).)+)\^\^",
  47. '<sup>\g<1></sup>',
  48. self.render_data
  49. )
  50. # <sub>
  51. self.render_data = re.sub(
  52. r",,,((?:(?!,,,).)+),,,",
  53. '<sub>\g<1></sub>',
  54. self.render_data
  55. )
  56. # <sub> 2
  57. self.render_data = re.sub(
  58. r",,((?:(?!,,).)+),,",
  59. '<sub>\g<1></sub>',
  60. self.render_data
  61. )
  62. # <s>
  63. self.render_data = re.sub(
  64. r"--((?:(?!--).)+)--",
  65. '<s>\g<1></s>',
  66. self.render_data
  67. )
  68. # <s> 2
  69. self.render_data = re.sub(
  70. r"~~((?:(?!~~).)+)~~",
  71. '<s>\g<1></s>',
  72. self.render_data
  73. )
  74. def do_render_last(self):
  75. # remove front_br and back_br
  76. self.render_data = re.sub(
  77. r'\n<front_br>',
  78. '',
  79. self.render_data
  80. )
  81. self.render_data = re.sub(
  82. r'<back_br>\n',
  83. '',
  84. self.render_data
  85. )
  86. # \n to <br>
  87. self.render_data = re.sub(
  88. r'\n',
  89. '<br>',
  90. self.render_data
  91. )
  92. def __call__(self):
  93. self.render_data = html.escape(self.doc_data)
  94. self.render_data_js = ''
  95. self.do_render_text()
  96. self.do_render_last()
  97. return [
  98. self.render_data, # HTML
  99. self.render_data_js, # JS
  100. [] # Other
  101. ]