|
@@ -1,14 +1,15 @@
|
|
|
import re
|
|
import re
|
|
|
|
|
+from urllib import parse
|
|
|
|
|
|
|
|
def mid_pas(data, fol_num, include, in_c, toc_y):
|
|
def mid_pas(data, fol_num, include, in_c, toc_y):
|
|
|
syntax = 0
|
|
syntax = 0
|
|
|
folding_test = 0
|
|
folding_test = 0
|
|
|
|
|
|
|
|
- p = re.compile('{{{((?:(?:(?:\+|-)[0-5])|(?:#|@)(?:(?:[0-9a-f-A-F]{3}){1,2}|(?:\w+))|(?:#!(?:html|wiki|noin|folding|syntax)))(?:(?!{{{|}}}).)+)}}}', re.DOTALL)
|
|
|
|
|
|
|
+ p = re.compile('{{{((?!#mid#)(?:(?:(?:\+|-)(?:[^ ]+))|(?:#|@)(?:(?:[0-9a-f-A-F]{3}){1,2}|(?:\w+))|(?:#!(?:html|wiki|noin|folding|syntax)))(?:(?!{{{|}}}).)+)}}}', re.DOTALL)
|
|
|
while 1:
|
|
while 1:
|
|
|
m = p.search(data)
|
|
m = p.search(data)
|
|
|
if m:
|
|
if m:
|
|
|
- data = p.sub('###' + m.groups()[0] + '/###', data, 1)
|
|
|
|
|
|
|
+ data = p.sub('#mid#' + m.groups()[0] + '#/mid#', data, 1)
|
|
|
else:
|
|
else:
|
|
|
break
|
|
break
|
|
|
|
|
|
|
@@ -16,11 +17,22 @@ def mid_pas(data, fol_num, include, in_c, toc_y):
|
|
|
while 1:
|
|
while 1:
|
|
|
m = com.search(data)
|
|
m = com.search(data)
|
|
|
if m:
|
|
if m:
|
|
|
- data = com.sub('<code>' + m.groups()[0] + '</code>', data, 1)
|
|
|
|
|
|
|
+ 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('_', '_').replace('‐', '-') + \
|
|
|
|
|
+ '#/mid2#', m.groups()[0])
|
|
|
|
|
+ else:
|
|
|
|
|
+ test2 = m.groups()[0]
|
|
|
|
|
+
|
|
|
|
|
+ data = com.sub('#base64#' + parse.quote(test2).replace('_', '_').replace('-', '‐').replace('%3C', '<').replace('%3E', '>') + \
|
|
|
|
|
+ '#/base64#', data, 1)
|
|
|
else:
|
|
else:
|
|
|
break
|
|
break
|
|
|
|
|
|
|
|
- com3 = re.compile('###((?:(?!\/###).)+)\/###', re.DOTALL)
|
|
|
|
|
|
|
+ data = re.sub("{#base64#%7B%7B", "{{{#base64#", data)
|
|
|
|
|
+
|
|
|
|
|
+ com3 = re.compile('#mid#((?:(?!#\/mid#).)+)#\/mid#', re.DOTALL)
|
|
|
m = com3.search(data)
|
|
m = com3.search(data)
|
|
|
while 1:
|
|
while 1:
|
|
|
m = com3.search(data)
|
|
m = com3.search(data)
|
|
@@ -29,13 +41,6 @@ def mid_pas(data, fol_num, include, in_c, toc_y):
|
|
|
else:
|
|
else:
|
|
|
break
|
|
break
|
|
|
|
|
|
|
|
- com2 = re.compile("<code>((?:(?!(?:<code>|<\/code>)).)*)<\/code>", re.DOTALL)
|
|
|
|
|
- da_com = com2.findall(data)
|
|
|
|
|
- for com_da in da_com:
|
|
|
|
|
- mid_data = com_da.replace('<', '<').replace('>', '>')
|
|
|
|
|
- mid_data = re.sub("(?P<in>.)", "#no#\g<in>#/no#", mid_data)
|
|
|
|
|
- data = com2.sub(mid_data, data, 1)
|
|
|
|
|
-
|
|
|
|
|
while 1:
|
|
while 1:
|
|
|
is_it = com.search(data)
|
|
is_it = com.search(data)
|
|
|
if is_it:
|
|
if is_it:
|
|
@@ -131,12 +136,5 @@ def mid_pas(data, fol_num, include, in_c, toc_y):
|
|
|
data = com.sub(it_d, data, 1)
|
|
data = com.sub(it_d, data, 1)
|
|
|
else:
|
|
else:
|
|
|
break
|
|
break
|
|
|
-
|
|
|
|
|
- com2 = re.compile("<code>((?:(?!(?:<code>|<\/code>)).)*)<\/code>", re.DOTALL)
|
|
|
|
|
- da_com = com2.findall(data)
|
|
|
|
|
- for com_da in da_com:
|
|
|
|
|
- mid_data = com_da.replace('<', '<').replace('>', '>')
|
|
|
|
|
- mid_data = re.sub("(?P<in>.)", "#no#\g<in>#/no#", mid_data)
|
|
|
|
|
- data = com2.sub(mid_data, data, 1)
|
|
|
|
|
|
|
|
|
|
return [data, fol_num]
|
|
return [data, fol_num]
|