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 = '' 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 + '. ' + re.sub('(?:\[\*([^\s]*)(?:\s((?:(?!\[|\]).)*))?\])', '', result[1]) + '
' c = re.sub(" $", "", result[1]) d = c c = re.sub("\[\[(([^|]*)\|)?(?P[^\]]*)\]\]", "\g", c) c = re.sub('(?:\[\*([^\s]*)(?:\s((?:(?!\[|\]).)*))?\])', '', c) edit_d = '' if toc_y == 1: edit_d = ' (편집)' data = re.sub('(={1,6})\s?([^=]*)\s?(?:={1,6})(?:\s+)?\n', '#table-no-br#' + toc + '. ' + d + edit_d + '
\n', data, 1) else: rtoc += '
' break data = re.sub("\[목차\]", rtoc, data) return data