';
} else if(in_data.match(/#!folding/i)) {
mid_list.push('div');
return '';
} else if(in_data.match(/#!html/i)) {
mid_list.push('span');
html_number += 1;
return '';
} else {
mid_list.push('code');
mid_stack += 1;
return '' + in_data;
}
} else {
mid_list.push('code');
mid_stack += 1;
return '' + in_data;
}
}
}
});
console.log(mid_stack);
console.log(mid_num);
console.log(mid_list);
data = data.replace(/<\/div> *\n/ig, '');
data = data.replace(/((?:(?!\n).)+) *\n/ig, function(all, in_data) {
return in_data + ' [+]';
});
data = data.replace(/((?:(?!\n).)+) *\n/ig, function(all, in_data) {
return '';
});
data = data.replace(/style=((?:(?!\n).)+) *\n/ig, function(all, in_data) {
return '';
});
var nowiki_num = 0;
var nowiki_list = {};
data = data.replace(/(\n*((?:(?!<\/code>).)+\n*)+)<\/code>/g, function(all, in_data) {
nowiki_num += 1;
nowiki_list['nowiki_' + String(nowiki_num)] = in_data;
return '';
});
var math_list = [];
var math_num = 0;
data = data.replace(/\[math\(((?:(?!\)]).)+)\)]/ig, function(all, in_data) {
var math_data = in_data.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, "\"").replace(/'/g, "'");
math_num += 1;
math_list.push(['math_' + String(math_num), math_data]);
return '';
});
data = data.replace(/~~((?:(?!~~).)+)~~/g, '$1');
data = data.replace(/--((?:(?!--).)+)--/g, '$1');
data = data.replace(/__((?:(?!__).)+)__/g, '$1');
data = data.replace(/'''((?:(?!''').)+)'''/g, '$1');
data = data.replace(/''((?:(?!'').)+)''/g, '$1');
data = data.replace(/\^\^((?:(?!\^\^).)+)\^\^/g, '$1');
data = data.replace(/,,((?:(?!,,).)+),,/g, '$1');
data = data.replace(/\n( {1,})\* ([^\n]+)/g, function(all, margin_data, in_data) {
return '' + in_data + ' '
});
data = data.replace(/\n( {1,})/g, function(all, margin_data) {
return '\n'
});
var link_list = [];
var file_list = [];
var link_num = 0;
var file_num = 0;
var category = ''
while(1) {
if(data.match(/\[\[((?:(?!\[\[|]]).)+)]]/)) {
data = data.replace(/\[\[((?:(?!\[\[|]]).)+)]]/, function(all, in_data) {
if(in_data.match(/^(?:category|분류):/i)) {
var back_data = in_data.replace(/^(?:category|분류):/i, '');
var front_data = back_data;
back_data = 'category:' + back_data.replace(/#blur$/, '');
if(front_data.match(/#blur$/)) {
front_data = '#blur';
}
link_list.push([back_data, 'link_' + String(link_num)]);
link_num += 1;
if(category === '') {
category += '
Category : '
}
category += '' + front_data + ' | ';
return '';
} else if(in_data.match(/^(?:file|파일):/i)) {
file_list.push([in_data.replace(/^(?:file|파일):/i, ''), 'file_' + String(file_num)]);
file_num += 1;
return '';
} else if(in_data.match(/^http(?:s)?:\/\//i)) {
var link_part = divi_link(in_data);
var front_data = link_part[0];
var back_data = link_part[1];
return '' + front_data + '';
} else {
var link_part = divi_link(in_data);
var front_data = link_part[0];
var back_data = link_part[1];
link_list.push([back_data, 'link_' + String(link_num)]);
link_num += 1;
return '' + front_data + '';
}
});
} else {
break;
}
}
if(category !== '') {
category = category.replace(/ \| $/, '') + ''
}
data = data.replace(/\[([^(\]]+)\(((?:(?!\)]).)+)\)]/g, function(all, name, in_data) {
if(name.match(/^youtube|kakaotv|nicovideo$/i)) {
var video_code = in_data.match(/^([^,]+)/);
if(video_code) {
video_code = video_code[1];
} else {
video_code = 'test';
}
if(name === 'youtube') {
var video_src = 'https://www.youtube.com/embed/' + video_code
} else if(name === 'kakaotv') {
var video_src = 'https://tv.kakao.com/embed/player/cliplink/' + video_code +'?service=kakao_tv'
} else {
var video_src = 'https://embed.nicovideo.jp/watch/' + video_code
}
var width_data = in_data.match(/, *width=([^,]+)/);
if(width_data) {
width_data = width_data[1];
} else {
width_data = '560';
}
var height_data = in_data.match(/, *height=([^,]+)/);
if(height_data) {
height_data = height_data[1];
} else {
height_data = '315';
}
return '' +
'' +
'';
} else if(name.match(/^ruby$/i)) {
var main_text = in_data.match(/^([^,]+)/);
if(main_text) {
main_text = main_text[1];
} else {
main_text = 'test';
}
var ruby_text = in_data.match(/, *ruby=([^,]+)/);
if(ruby_text) {
ruby_text = ruby_text[1];
} else {
ruby_text = 'test';
}
var color_text = in_data.match(/, *color=([^,]+)/);
if(color_text) {
color_text = 'color:' + color_text[1];
} else {
color_text = '';
}
return '' +
'' +
main_text +
'' +
'' +
'' +
'' +
'';
} else if(name.match(/^anchor$/i)) {
return '';
} else {
return all;
}
});
var toc_array = [0, 0, 0, 0, 0, 0];
var before_data = 0;
var edit_number = 0;
var toc_data = 'TOC\n\n'
data = data.replace(/\n(={1,6}) ?([^\n]+) (?:={1,6})/g, function(all, num, in_data) {
num = num.length;
edit_number += 1;
if(before_data > num) {
var i = num;
while(1) {
if(i == 6) {
break;
}
toc_array[i] = 0;
i += 1;
}
}
before_data = num;
toc_array[num - 1] += 1;
num = String(num);
var toc_num = (toc_array.join('.') + '.').replace(/0\./g, '');
if(!toc_num.match(/\./)) {
toc_num += '0.';
}
toc_data += '' +
'' +
'' + toc_num + ' ' + in_data +
'' +
'\n' +
'';
return '' +
'\n' +
'' +
'' + toc_num + ' ' + in_data +
'' +
'(Edit)' +
'' +
' ' +
'';
});
toc_data += '';
data = data.replace(/<\/h([0-9])>\n/g, '');
data = data.replace(/\[([^\]]+)\]/g, function(all, name) {
if(name.match(/^br$/i)) {
return '\n'
} else if(name.match(/^목차|tableofcontents$/i)) {
return toc_data;
} else if(name.match(/^date|datetime$/i)) {
return get_today();
} else {
return all;
}
});
var ref_num = 0;
var ref_data = '
';
var name_ref_data = {};
while(1) {
if(data.match(/(?:\[\*([^ \]]*)(?: ((?:(?!\[\*|\]).)+))?\]|\[(?:각주|footnote)])/)) {
data = data.replace(/(?:\[\*([^ \]]*)(?: ((?:(?!\[\*|\]).)+))?\]|\[(?:각주|footnote)])/, function(all, name_data, in_data) {
if(all.match(/^\[(?:각주|footnote)]$/i)) {
var new_ref_data = ref_data;
ref_data = '
';
return new_ref_data + '
';
} else {
ref_num += 1;
if(name_data) {
if(in_data) {
name_ref_data[name_data] = in_data;
ref_data += '' +
'- ' +
'(' + name_data + ') ' + in_data + ''
'
' +
''
} else {
ref_data += '' +
'- ' +
'(' + name_data + ')' +
'
' +
''
}
} else {
ref_data += '' +
'- ' +
'(' + String(ref_num) + ') ' + in_data + ''
'
' +
''
}
if(name_data) {
return '' +
'' +
'' +
'(' + name_data + ')' +
'' +
'' +
'';
} else {
return '' +
'' +
'' +
'(' + String(ref_num) + ')' +
'' +
'' +
'';
}
}
});
} else {
break;
}
}
if(ref_data !== '
') {
data += ref_data + '
';
}
var i = 1;
while(1) {
if(nowiki_list['nowiki_' + String(i)]) {
data = data.replace('', '' + nowiki_list['nowiki_' + String(i)] + '');
i += 1;
} else {
break;
}
}
data = data.replace(/^(\n| )+/g, '');
data = data.replace(/(\n| )+$/g, '');
data = data.replace(/\n/g, '
');
data = data.replace(/&/g, '&');
data += category;
document.getElementById(target).innerHTML = data;
i = 0;
while(1) {
if(math_list[i]) {
try {
katex.render(math_list[i][1], document.getElementById(math_list[i][0]));
} catch {
try {
document.getElementById(math_list[i][0]).innerHTML = '' + math_list[i][1] + '';
} catch {}
}
i += 1;
} else {
break;
}
}
i = 0;
while(1) {
if(link_list[i]) {
get_link_state(link_list[i]);
i += 1;
} else {
break;
}
}
i = 0;
while(1) {
if(file_list[i]) {
get_file_state(file_list[i]);
i += 1;
} else {
break;
}
}
render_html("html_render_contect");
}