목차\r\n\r\n'
while 1:
toc = re.search('\r\n(={1,6}) ?((?:(?!=).)+) ?={1,6}\r\n', data)
if toc:
toc = toc.groups()
toc_number = len(toc[0])
# 더 크면 그 전 스택은 초기화
if toc_full > toc_number:
for i in range(toc_number, 6):
toc_stack[i] = 0
if toc_top_stack > toc_number:
toc_top_stack = toc_number
toc_full = toc_number
toc_stack[toc_number - 1] += 1
toc_number = str(toc_number)
all_stack = ''
# 스택 합치기
for i in range(0, 6):
all_stack += str(toc_stack[i]) + '.'
all_stack = re.sub('0.', '', all_stack)
data = re.sub('\r\n(={1,6}) ?((?:(?!=).)+) ?={1,6}\r\n', '\r\n
' + all_stack + ' ' + toc[1] + '
\r\n', data, 1)
toc_data += '
' + all_stack + ' ' + toc[1] + '\r\n'
else:
break
toc_data += '
'
data = re.sub('\[목차\]', toc_data, data)
while 1:
hr = re.search('\r\n-{4,9}\r\n', data)
if hr:
data = re.sub('\r\n-{4,9}\r\n', '| ', table, 1)
else:
break
while 1:
cel_table = re.search('((?:\|\|)+)((?:<(?:(?:(?!>).)+)>)*)((?:(?!\|\||<\/td>).)+)', table)
if cel_table:
cel_table = cel_table.groups()
return_table = table_parser(cel_table[1], cel_table[2], cel_table[0], number)
table = re.sub('((?:\|\|)+)((?:<(?:(?:(?!>).)+)>)*)', ' | ', table, 1)
else:
break
data = re.sub('((?:(?:(?:(?:\|\|)+(?:(?:(?!\|\|).(?:\r\n)*)+))+)\|\|(?:\r\n)?)+)', table, data, 1)
else:
break
while 1:
link = re.search('\[\[((?:(?!\]\]).)+)\]\]', data)
if link:
link = link.groups()[0]
link_split = re.search('((?:(?!\|).)+)(?:\|((?:(?!\|).)+))', link)
if link_split:
link_split = link_split.groups()
main_link = link_split[0]
see_link = link_split[1]
else:
main_link = link
see_link = link
if re.search('^wiki:', main_link):
data = re.sub('\[\[((?:(?!\]\]).)+)\]\]', '' + see_link + '', data, 1)
if re.search('^http(s)?:\/\/', main_link):
data = re.sub('\[\[((?:(?!\]\]).)+)\]\]', '' + see_link + '', data, 1)
else:
if re.search('^:', main_link):
main_link = re.sub('^:', '', main_link)
curs.execute("select title from data where title = ?", [main_link])
if not curs.fetchall():
link_class = 'class="not_thing"'
else:
link_class = ''
data = re.sub('\[\[((?:(?!\]\]).)+)\]\]', '' + see_link + '', data, 1)
else:
break
# 마지막 처리
data = re.sub('(?P )\r\n', '\g', data)
data = re.sub('<\/ul>\r\n\r\n', '\r\n', data)
data = re.sub('\r\n', ' ', data)
return data |