import re from urllib import parse def url_pas(data): return(parse.quote(data).replace('/','%2F')) def toc_pas(data, title, num, toc_y): if(not re.search('\[목차\]', data)): if(not re.search('\[목차\(없음\)\]', data)): data = re.sub("(?P(={1,6})\s?([^=]*)\s?(?:={1,6})(?:\s+)?\n)", "[목차]\n\g", data, 1) else: data = re.sub("\[목차\(없음\)\]", "", data) data = re.sub("(\n)(?P\r\n(={1,6})\s?([^=]*)\s?(?:={1,6})(?:\s+)?\n)", "\g", data) i = [0, 0, 0, 0, 0, 0, 0] last = 0 toc_c = -1 toc_d = -1 span = '' rtoc = '
목차

' while(1): i[0] += 1 m = re.search('(={1,6})\s?([^=]*)\s?(?:={1,6})(?:\s+)?\r\n', data) if(m): result = m.groups() wiki = len(result[0]) if(last < wiki): last = wiki else: last = wiki for a in range(wiki + 1, 7): i[a] = 0 i[wiki] += 1 toc = str(i[1]) + '.' + str(i[2]) + '.' + str(i[3]) + '.' + str(i[4]) + '.' + str(i[5]) + '.' + str(i[6]) + '.' toc = re.sub("(?P[0-9]0(?:[0]*)?)\.", '\g#.', toc) toc = re.sub("0\.", '', toc) toc = re.sub("#\.", '.', toc) toc = re.sub("\.$", '', toc) if(toc_c == -1): margin = 'style="margin-top: 30px;"' toc_c = toc.count('.') else: toc_d = toc.count('.') if(toc_c == toc_d): margin = 'style="margin-top: 30px;"' else: if(toc_d < toc_c): margin = 'style="margin-top: 30px;"' else: margin = 'style="margin-top: 15px;"' toc_c = toc_d t = toc.count('.') span = '' * t rtoc += span + '' + toc + '. ' + result[1] + '
' c = re.sub(" $", "", result[1]) d = c c = re.sub("\[\[(([^|]*)\|)?(?P[^\]]*)\]\]", "\g", c) edit_d = '' if(toc_y == 1): edit_d = ' [편집]' data = re.sub('(={1,6})\s?([^=]*)\s?(?:={1,6})(?:\s+)?\n', '' + toc + '. ' + d + edit_d + '
\n', data, 1) else: rtoc += '
' break data = re.sub("\[목차\]", rtoc, data) return(data)