Преглед на файлове

Revert "임시로 NoWiki 문법 삭제"

This reverts commit 3535bfc47553ef61f8568040f6fb7847666095ad.
ect (or 2du) преди 8 години
родител
ревизия
c1ab0ddba6
променени са 2 файла, в които са добавени 67 реда и са изтрити 0 реда
  1. 17 0
      set_mark/end.py
  2. 50 0
      set_mark/mid_pas.py

+ 17 - 0
set_mark/end.py

@@ -9,6 +9,23 @@ def end(data, category):
     data = re.sub("(\n#no-br#|#no-br#\n|#no-br#)", "", data)
     data = re.sub("<space>", " ", data)
 
+    com = re.compile('#base64#((?:(?!#\/base64#).)+)#\/base64#', re.DOTALL)
+    while 1:
+        m = com.search(data)
+        if m:
+            data = com.sub(parse.unquote(m.groups()[0]).replace('&#95;', '_').replace('\r\n', '<br>'), data, 1)
+        else:
+            break
+
+    com3 = re.compile('(?:#mid#|#\/mid2#)((?:(?!#\/mid#|#\/mid2#).)+)(?:#\/mid#|#\/mid2#)', re.DOTALL)
+    m = com3.search(data)
+    while 1:
+        m = com3.search(data)
+        if m:
+            data = com3.sub('{{{' + m.groups()[0] + '}}}', data, 1)
+        else:
+            break
+
     data = re.sub('<\/blockquote>(?:(?:\r)?\n){2}<blockquote>', '</blockquote><blockquote>', data)
     data = re.sub('<\/blockquote>(?:(?:\r)?\n)<br><blockquote>', '</blockquote><blockquote>', data)
 

+ 50 - 0
set_mark/mid_pas.py

@@ -5,7 +5,57 @@ def mid_pas(data, fol_num, include, in_c, toc_y):
     syntax = 0
     folding_test = 0
 
+    com = re.compile("{{{((?!(?:(?:\+|-)(?:[^ ]+))|(?:#|@)(?:(?:[0-9a-f-A-F]{3}){1,2}|(?:\w+))|(?:#!(?:html|wiki|noin|folding|syntax)))(?:(?!{|}).)+)}}}", re.DOTALL)
+    while 1:
+        m = com.search(data)
+        if m:
+            com4 = re.compile('#base64#((?:(?!#\/base64#).)+)#\/base64#', re.DOTALL)
+            test = com4.search(m.groups()[0])
+            if test:
+                test2 = com4.sub('#mid2#' + parse.unquote(test.groups()[0]).replace('&#95;', '_').replace('&#8208;', '-') + '#/mid2#', m.groups()[0])
+            else:
+                test2 = m.groups()[0]
+                
+            data = com.sub('#base64#' + parse.quote(test2).replace('_', '&#95;').replace('-', '&#8208;').replace('%3C', '&lt;').replace('%3E', '&gt;') + '#/base64#', data, 1)
+        else:
+            break
+
+        data = re.sub("{#base64#%7B%7B", "{{{#base64#", data)
+
+    p = re.compile('{{{((?!#mid#)(?:(?:(?:\+|-)(?:[^ ]+))|(?:#|@)(?:(?:[0-9a-f-A-F]{3}){1,2}|(?:\w+))|(?:#!(?:html|wiki|noin|folding|syntax)))(?:(?!{{{|}}}).)+)}}}', re.DOTALL)
+    while 1:
+        m = p.search(data)
+        if m:
+            data = p.sub('#mid#' + m.groups()[0] + '#/mid#', data, 1)
+        else:
+            break
+
     com = re.compile("{{{((?:(?!{{{|}}}).)*)}}}", re.DOTALL)
+    while 1:
+        m = com.search(data)
+        if m:
+            com4 = re.compile('#base64#((?:(?!#\/base64#).)+)#\/base64#', re.DOTALL)
+            test = com4.search(m.groups()[0])
+            if test:
+                test2 = com4.sub('#mid2#' + parse.unquote(test.groups()[0]).replace('&#95;', '_').replace('&#8208;', '-') + '#/mid2#', m.groups()[0])
+            else:
+                test2 = m.groups()[0]
+                
+            data = com.sub('#base64#' + parse.quote(test2).replace('_', '&#95;').replace('-', '&#8208;').replace('%3C', '&lt;').replace('%3E', '&gt;') + '#/base64#', data, 1)
+        else:
+            break
+
+        data = re.sub("{#base64#%7B%7B", "{{{#base64#", data)
+
+    com3 = re.compile('#mid#((?:(?!#\/mid#).)+)#\/mid#', re.DOTALL)
+    m = com3.search(data)
+    while 1:
+        m = com3.search(data)
+        if m:
+            data = com3.sub('{{{' + m.groups()[0] + '}}}', data, 1)
+        else:
+            break
+
     while 1:
         is_it = com.search(data)
         if is_it: