|
@@ -177,7 +177,7 @@ def link_fix(main_link):
|
|
|
|
|
|
|
|
return [main_link, other_link]
|
|
return [main_link, other_link]
|
|
|
|
|
|
|
|
-def start(conn, data, title):
|
|
|
|
|
|
|
+def start(conn, data, title, lang):
|
|
|
# DB 지정
|
|
# DB 지정
|
|
|
curs = conn.cursor()
|
|
curs = conn.cursor()
|
|
|
|
|
|
|
@@ -256,7 +256,7 @@ def start(conn, data, title):
|
|
|
else:
|
|
else:
|
|
|
break
|
|
break
|
|
|
|
|
|
|
|
- include_parser = re.sub('\[\[분류:(((?!\]\]|#include).)+)\]\]', '', include_parser)
|
|
|
|
|
|
|
+ include_parser = re.sub('\[\[' + lang['template'] + ':(((?!\]\]|#include).)+)\]\]', '', include_parser)
|
|
|
include_parser = html.escape(include_parser)
|
|
include_parser = html.escape(include_parser)
|
|
|
|
|
|
|
|
data = re.sub('\[include\(((?:(?!\)\]).)+)\)\]', '<include>\n<a id="include_link" href="/w/' + tool.url_pas(include_link) + '">[' + include_link + ']</a>\n' + include_parser + '\n</include>', data, 1)
|
|
data = re.sub('\[include\(((?:(?!\)\]).)+)\)\]', '<include>\n<a id="include_link" href="/w/' + tool.url_pas(include_link) + '">[' + include_link + ']</a>\n' + include_parser + '\n</include>', data, 1)
|
|
@@ -402,7 +402,7 @@ def start(conn, data, title):
|
|
|
else:
|
|
else:
|
|
|
folding_data = ['Test']
|
|
folding_data = ['Test']
|
|
|
|
|
|
|
|
- data = re.sub('{{{#!folding ?((?:(?!\n).)*)\n?', '<div>' + str(folding_data[0]) + ' <div style="display: inline-block;"><a href="javascript:void(0);" onclick="folding(' + str(fol_num) + ');">[작동]</a></div_end><div id="folding_' + str(fol_num) + '" style="display: none;"><div id="wiki_div" style="">', data, 1)
|
|
|
|
|
|
|
+ data = re.sub('{{{#!folding ?((?:(?!\n).)*)\n?', '<div>' + str(folding_data[0]) + ' <div style="display: inline-block;"><a href="javascript:void(0);" onclick="folding(' + str(fol_num) + ');">[Do]</a></div_end><div id="folding_' + str(fol_num) + '" style="display: none;"><div id="wiki_div" style="">', data, 1)
|
|
|
|
|
|
|
|
fol_num += 1
|
|
fol_num += 1
|
|
|
else:
|
|
else:
|
|
@@ -553,18 +553,18 @@ def start(conn, data, title):
|
|
|
data = re.sub('\n#(?:redirect|넘겨주기) (?P<in>(?:(?!\n).)+)\n', '<meta http-equiv="refresh" content="0; url=/w/' + tool.url_pas(main_link) + '?froms=' + tool.url_pas(title) + other_link + '">', data, 1)
|
|
data = re.sub('\n#(?:redirect|넘겨주기) (?P<in>(?:(?!\n).)+)\n', '<meta http-equiv="refresh" content="0; url=/w/' + tool.url_pas(main_link) + '?froms=' + tool.url_pas(title) + other_link + '">', data, 1)
|
|
|
|
|
|
|
|
# [목차(없음)] 처리
|
|
# [목차(없음)] 처리
|
|
|
- if not re.search('\[목차\(없음\)\]\n', data):
|
|
|
|
|
- if not re.search('\[목차\]', data):
|
|
|
|
|
- data = re.sub('\n(?P<in>={1,6}) ?(?P<out>(?:(?!=).)+) ?={1,6}\n', '\n[목차]\n\g<in> \g<out> \g<in>\n', data, 1)
|
|
|
|
|
|
|
+ if not re.search('\[(?:목차|tableofcontents)\((?:없음|no)\)\]\n', data):
|
|
|
|
|
+ if not re.search('\[(?:목차|tableofcontents)\]', data):
|
|
|
|
|
+ data = re.sub('\n(?P<in>={1,6}) ?(?P<out>(?:(?!=).)+) ?={1,6}\n', '\n[(?:목차|tableofcontents)]\n\g<in> \g<out> \g<in>\n', data, 1)
|
|
|
else:
|
|
else:
|
|
|
- data = re.sub('\[목차\(없음\)\]\n', '', data)
|
|
|
|
|
|
|
+ data = re.sub('\[(?:목차|tableofcontents)\((?:없음|no)\)\]\n', '', data)
|
|
|
|
|
|
|
|
# 문단 문법
|
|
# 문단 문법
|
|
|
toc_full = 0
|
|
toc_full = 0
|
|
|
toc_top_stack = 6
|
|
toc_top_stack = 6
|
|
|
toc_stack = [0, 0, 0, 0, 0, 0]
|
|
toc_stack = [0, 0, 0, 0, 0, 0]
|
|
|
edit_number = 0
|
|
edit_number = 0
|
|
|
- toc_data = '<div id="toc"><span style="font-size: 18px;">목차</span>\n\n'
|
|
|
|
|
|
|
+ toc_data = '<div id="toc"><span style="font-size: 18px;">TOC</span>\n\n'
|
|
|
while 1:
|
|
while 1:
|
|
|
toc = re.search('\n(={1,6}) ?((?:(?!\n).)+) ?\n', data)
|
|
toc = re.search('\n(={1,6}) ?((?:(?!\n).)+) ?\n', data)
|
|
|
if toc:
|
|
if toc:
|
|
@@ -592,7 +592,7 @@ def start(conn, data, title):
|
|
|
|
|
|
|
|
all_stack = re.sub('0.', '', all_stack)
|
|
all_stack = re.sub('0.', '', all_stack)
|
|
|
|
|
|
|
|
- data = re.sub('\n(={1,6}) ?((?:(?!\n).)+) ?\n', '\n<h' + toc_number + ' id="s-' + re.sub('\.$', '', all_stack) + '"><a href="#toc">' + all_stack + '</a> ' + re.sub('=*$', '', toc[1]) + ' <span style="font-size: 12px"><a href="/edit/' + tool.url_pas(title) + '?section=' + str(edit_number) + '">(편집)</a></span></h' + toc_number + '>\n', data, 1)
|
|
|
|
|
|
|
+ data = re.sub('\n(={1,6}) ?((?:(?!\n).)+) ?\n', '\n<h' + toc_number + ' id="s-' + re.sub('\.$', '', all_stack) + '"><a href="#toc">' + all_stack + '</a> ' + re.sub('=*$', '', toc[1]) + ' <span style="font-size: 12px"><a href="/edit/' + tool.url_pas(title) + '?section=' + str(edit_number) + '">(' + lang['edit'] + ')</a></span></h' + toc_number + '>\n', data, 1)
|
|
|
|
|
|
|
|
toc_data += '<span style="margin-left: ' + str((toc_full - toc_top_stack) * 10) + 'px;"><a href="#s-' + re.sub('\.$', '', all_stack) + '">' + all_stack + '</a> ' + re.sub('\[\*((?:(?! |\]).)*)(?: ((?:(?!\]).)+))?\]', '', re.sub('=*$', '', toc[1])) + '</span>\n'
|
|
toc_data += '<span style="margin-left: ' + str((toc_full - toc_top_stack) * 10) + 'px;"><a href="#s-' + re.sub('\.$', '', all_stack) + '">' + all_stack + '</a> ' + re.sub('\[\*((?:(?! |\]).)*)(?: ((?:(?!\]).)+))?\]', '', re.sub('=*$', '', toc[1])) + '</span>\n'
|
|
|
else:
|
|
else:
|
|
@@ -600,7 +600,7 @@ def start(conn, data, title):
|
|
|
|
|
|
|
|
toc_data += '</div>'
|
|
toc_data += '</div>'
|
|
|
|
|
|
|
|
- data = re.sub('\[목차\]', toc_data, data)
|
|
|
|
|
|
|
+ data = re.sub('\[(?:목차|tableofcontents)\]', toc_data, data)
|
|
|
|
|
|
|
|
while 1:
|
|
while 1:
|
|
|
hr = re.search('\n-{4,9}\n', data)
|
|
hr = re.search('\n-{4,9}\n', data)
|
|
@@ -778,7 +778,7 @@ def start(conn, data, title):
|
|
|
break
|
|
break
|
|
|
|
|
|
|
|
# 링크 관련 문법 구현
|
|
# 링크 관련 문법 구현
|
|
|
- category = '\n<hr><div id="cate">분류: '
|
|
|
|
|
|
|
+ category = '\n<hr><div id="cate">' + lang['category'] + ': '
|
|
|
while 1:
|
|
while 1:
|
|
|
link = re.search('\[\[((?:(?!\[\[|\]\]).)+)\]\]', data)
|
|
link = re.search('\[\[((?:(?!\[\[|\]\]).)+)\]\]', data)
|
|
|
if link:
|
|
if link:
|
|
@@ -794,7 +794,7 @@ def start(conn, data, title):
|
|
|
main_link = link
|
|
main_link = link
|
|
|
see_link = link
|
|
see_link = link
|
|
|
|
|
|
|
|
- if re.search('^(파일|외부):', main_link):
|
|
|
|
|
|
|
+ if re.search('^(' + lang['file'] + '|' + lang['out'] + '):', main_link):
|
|
|
file_style = ''
|
|
file_style = ''
|
|
|
|
|
|
|
|
width = re.search('width=((?:(?!&).)+)', see_link)
|
|
width = re.search('width=((?:(?!&).)+)', see_link)
|
|
@@ -823,13 +823,13 @@ def start(conn, data, title):
|
|
|
else:
|
|
else:
|
|
|
file_align = ''
|
|
file_align = ''
|
|
|
|
|
|
|
|
- if re.search('^외부:', main_link):
|
|
|
|
|
- file_src = re.sub('^외부:', '', main_link)
|
|
|
|
|
|
|
+ if re.search('^' + lang['out'] + ':', main_link):
|
|
|
|
|
+ file_src = re.sub('^' + lang['out'] + ':', '', main_link)
|
|
|
|
|
|
|
|
file_alt = main_link
|
|
file_alt = main_link
|
|
|
exist = 'Yes'
|
|
exist = 'Yes'
|
|
|
else:
|
|
else:
|
|
|
- file_data = re.search('^파일:((?:(?!\.).)+)\.(.+)$', main_link)
|
|
|
|
|
|
|
+ file_data = re.search('^' + lang['file'] + ':((?:(?!\.).)+)\.(.+)$', main_link)
|
|
|
if file_data:
|
|
if file_data:
|
|
|
file_data = file_data.groups()
|
|
file_data = file_data.groups()
|
|
|
file_name = file_data[0]
|
|
file_name = file_data[0]
|
|
@@ -841,7 +841,7 @@ def start(conn, data, title):
|
|
|
file_end = 'jpg'
|
|
file_end = 'jpg'
|
|
|
|
|
|
|
|
file_src = '/image/' + tool.sha224(file_name) + '.' + file_end
|
|
file_src = '/image/' + tool.sha224(file_name) + '.' + file_end
|
|
|
- file_alt = '파일:' + file_name + '.' + file_end
|
|
|
|
|
|
|
+ file_alt = '' + lang['file'] + ':' + file_name + '.' + file_end
|
|
|
|
|
|
|
|
curs.execute("select title from data where title = ?", [file_alt])
|
|
curs.execute("select title from data where title = ?", [file_alt])
|
|
|
exist = curs.fetchall()
|
|
exist = curs.fetchall()
|
|
@@ -850,12 +850,12 @@ def start(conn, data, title):
|
|
|
data = re.sub('\[\[((?:(?!\[\[|\]\]).)+)\]\]', '<span style="' + file_align + '"><img style="' + file_style + '" alt="' + file_alt + '" src="' + file_src + '"></span>', data, 1)
|
|
data = re.sub('\[\[((?:(?!\[\[|\]\]).)+)\]\]', '<span style="' + file_align + '"><img style="' + file_style + '" alt="' + file_alt + '" src="' + file_src + '"></span>', data, 1)
|
|
|
else:
|
|
else:
|
|
|
data = re.sub('\[\[((?:(?!\[\[|\]\]).)+)\]\]', '<a id="not_thing" href="/w/' + tool.url_pas(file_alt) + '">' + file_alt + '</a>', data, 1)
|
|
data = re.sub('\[\[((?:(?!\[\[|\]\]).)+)\]\]', '<a id="not_thing" href="/w/' + tool.url_pas(file_alt) + '">' + file_alt + '</a>', data, 1)
|
|
|
- elif re.search('^분류:', main_link):
|
|
|
|
|
|
|
+ elif re.search('^' + lang['category'] + ':', main_link):
|
|
|
see_link = re.sub('#include', '', see_link)
|
|
see_link = re.sub('#include', '', see_link)
|
|
|
main_link = re.sub('#include', '', main_link)
|
|
main_link = re.sub('#include', '', main_link)
|
|
|
|
|
|
|
|
if re.search('#blur', main_link):
|
|
if re.search('#blur', main_link):
|
|
|
- see_link = '스포일러'
|
|
|
|
|
|
|
+ see_link = 'Hidden'
|
|
|
link_id = 'id="inside"'
|
|
link_id = 'id="inside"'
|
|
|
|
|
|
|
|
main_link = re.sub('#blur', '', main_link)
|
|
main_link = re.sub('#blur', '', main_link)
|
|
@@ -864,7 +864,7 @@ def start(conn, data, title):
|
|
|
|
|
|
|
|
backlink += [[title, main_link, 'cat']]
|
|
backlink += [[title, main_link, 'cat']]
|
|
|
|
|
|
|
|
- category += '<a ' + link_id + ' href="' + tool.url_pas(main_link) + '">' + re.sub('^분류:', '', see_link) + '</a> / '
|
|
|
|
|
|
|
+ category += '<a ' + link_id + ' href="' + tool.url_pas(main_link) + '">' + re.sub('^' + lang['category'] + ':', '', see_link) + '</a> / '
|
|
|
data = re.sub('\[\[((?:(?!\[\[|\]\]).)+)\]\]', '', data, 1)
|
|
data = re.sub('\[\[((?:(?!\[\[|\]\]).)+)\]\]', '', data, 1)
|
|
|
elif re.search('^wiki:', main_link):
|
|
elif re.search('^wiki:', main_link):
|
|
|
data = re.sub('\[\[((?:(?!\[\[|\]\]).)+)\]\]', '<a id="inside" href="/' + tool.url_pas(re.sub('^wiki:', '', main_link)) + '">' + see_link + '</a>', data, 1)
|
|
data = re.sub('\[\[((?:(?!\[\[|\]\]).)+)\]\]', '<a id="inside" href="/' + tool.url_pas(re.sub('^wiki:', '', main_link)) + '">' + see_link + '</a>', data, 1)
|
|
@@ -880,7 +880,7 @@ def start(conn, data, title):
|
|
|
else:
|
|
else:
|
|
|
data = re.sub('\[\[((?:(?!\[\[|\]\]).)+)\]\]', '<a id="inside" href="' + inter[0][0] + inter_data[1] + '">' + inter_data[0] + ':' + inter_data[1] + '</a>', data, 1)
|
|
data = re.sub('\[\[((?:(?!\[\[|\]\]).)+)\]\]', '<a id="inside" href="' + inter[0][0] + inter_data[1] + '">' + inter_data[0] + ':' + inter_data[1] + '</a>', data, 1)
|
|
|
else:
|
|
else:
|
|
|
- data = re.sub('\[\[((?:(?!\[\[|\]\]).)+)\]\]', '인터위키 정보 없음', data, 1)
|
|
|
|
|
|
|
+ data = re.sub('\[\[((?:(?!\[\[|\]\]).)+)\]\]', 'Not exist', data, 1)
|
|
|
elif re.search('^\/', main_link):
|
|
elif re.search('^\/', main_link):
|
|
|
under_title = re.search('^(\/(?:.+))$', main_link)
|
|
under_title = re.search('^(\/(?:.+))$', main_link)
|
|
|
under_title = under_title.groups()[0]
|
|
under_title = under_title.groups()[0]
|
|
@@ -929,7 +929,7 @@ def start(conn, data, title):
|
|
|
footnote_re = {}
|
|
footnote_re = {}
|
|
|
footdata_all = '\n<hr><ul id="footnote_data">'
|
|
footdata_all = '\n<hr><ul id="footnote_data">'
|
|
|
while 1:
|
|
while 1:
|
|
|
- footnote = re.search('(?:\[\*((?:(?! |\]).)*)(?: ((?:(?!\]).)+))?\]|(\[각주\]))', data)
|
|
|
|
|
|
|
+ footnote = re.search('(?:\[\*((?:(?! |\]).)*)(?: ((?:(?!\]).)+))?\]|(\[(?:각주|footnote)\]))', data)
|
|
|
if footnote:
|
|
if footnote:
|
|
|
footnote_data = footnote.groups()
|
|
footnote_data = footnote.groups()
|
|
|
if footnote_data[2]:
|
|
if footnote_data[2]:
|
|
@@ -943,7 +943,7 @@ def start(conn, data, title):
|
|
|
|
|
|
|
|
footdata_all += '<li><a href="#rfn-' + str(footdata[0]) + '" id="fn-' + str(footdata[0]) + '">(' + footdata[1] + ')</a> ' + footdata_in + '</li>'
|
|
footdata_all += '<li><a href="#rfn-' + str(footdata[0]) + '" id="fn-' + str(footdata[0]) + '">(' + footdata[1] + ')</a> ' + footdata_in + '</li>'
|
|
|
|
|
|
|
|
- data = re.sub('(?:\[\*((?:(?! ).)*) ((?:(?!\]).)+)\]|(\[각주\]))', footdata_all + '</ul>', data, 1)
|
|
|
|
|
|
|
+ data = re.sub('(?:\[\*((?:(?! ).)*) ((?:(?!\]).)+)\]|(\[(?:각주|footnote)\]))', footdata_all + '</ul>', data, 1)
|
|
|
|
|
|
|
|
footnote_all = []
|
|
footnote_all = []
|
|
|
footdata_all = '\n<hr><ul id="footnote_data">'
|
|
footdata_all = '\n<hr><ul id="footnote_data">'
|
|
@@ -959,9 +959,9 @@ def start(conn, data, title):
|
|
|
|
|
|
|
|
footnote_all += [[float(footshort), footshort, 0]]
|
|
footnote_all += [[float(footshort), footshort, 0]]
|
|
|
|
|
|
|
|
- data = re.sub('(?:\[\*((?:(?! |\]).)*)(?: ((?:(?!\]).)+))?\]|(\[각주\]))', '<sup><a href="#fn-' + footshort + '" id="rfn-' + footshort + '">(' + footshort + ')</a></sup>', data, 1)
|
|
|
|
|
|
|
+ data = re.sub('(?:\[\*((?:(?! |\]).)*)(?: ((?:(?!\]).)+))?\]|(\[(?:각주|footnote)\]))', '<sup><a href="#fn-' + footshort + '" id="rfn-' + footshort + '">(' + footshort + ')</a></sup>', data, 1)
|
|
|
else:
|
|
else:
|
|
|
- data = re.sub('(?:\[\*((?:(?! |\]).)*)(?: ((?:(?!\]).)+))?\]|(\[각주\]))', '<sup><a href="#">(' + footnote_name + ')</a></sup>', data, 1)
|
|
|
|
|
|
|
+ data = re.sub('(?:\[\*((?:(?! |\]).)*)(?: ((?:(?!\]).)+))?\]|(\[(?:각주|footnote)\]))', '<sup><a href="#">(' + footnote_name + ')</a></sup>', data, 1)
|
|
|
else:
|
|
else:
|
|
|
footnote_number += 1
|
|
footnote_number += 1
|
|
|
|
|
|
|
@@ -977,7 +977,7 @@ def start(conn, data, title):
|
|
|
|
|
|
|
|
footnote_all += [[footnote_number, footnote_name, footnote]]
|
|
footnote_all += [[footnote_number, footnote_name, footnote]]
|
|
|
|
|
|
|
|
- data = re.sub('(?:\[\*((?:(?! |\]).)*)(?: ((?:(?!\]).)+))?\]|(\[각주\]))', '<sup><a href="#fn-' + str(footnote_number) + '" id="rfn-' + str(footnote_number) + '">(' + footnote_name + ')</a></sup>', data, 1)
|
|
|
|
|
|
|
+ data = re.sub('(?:\[\*((?:(?! |\]).)*)(?: ((?:(?!\]).)+))?\]|(\[(?:각주|footnote)\]))', '<sup><a href="#fn-' + str(footnote_number) + '" id="rfn-' + str(footnote_number) + '">(' + footnote_name + ')</a></sup>', data, 1)
|
|
|
else:
|
|
else:
|
|
|
break
|
|
break
|
|
|
|
|
|
|
@@ -1003,7 +1003,7 @@ def start(conn, data, title):
|
|
|
category += '</div>'
|
|
category += '</div>'
|
|
|
category = re.sub(' / <\/div>$', '</div>', category)
|
|
category = re.sub(' / <\/div>$', '</div>', category)
|
|
|
|
|
|
|
|
- if category == '\n<hr><div id="cate">분류: </div>':
|
|
|
|
|
|
|
+ if category == '\n<hr><div id="cate">' + lang['category'] + ': </div>':
|
|
|
category = ''
|
|
category = ''
|
|
|
|
|
|
|
|
data += category
|
|
data += category
|