Surplus_Up (2DU) 4 лет назад
Родитель
Сommit
0e0792f149

+ 5 - 1
app.py

@@ -805,7 +805,11 @@ def main_test_func():
 def main_shutdown():
     return main_shutdown_2(conn)
 
-@app.route('/<regex("easter_egg\.html|\.(?:txt|xml)$"):data>')
+@app.route('/easter_egg.xml')
+def main_easter_egg():
+    return main_easter_egg_2(conn)
+
+@app.route('/<regex("[^.]+\.(?:txt|xml)"):data>')
 def main_file(data = ''):
     return main_file_2(conn, data)
 

+ 30 - 58
route/api_w.py

@@ -5,6 +5,7 @@ def api_w_2(conn, name):
 
     data_arg_v = flask.request.args.get('v', '')
     if flask.request.method == 'POST':
+        print(data_arg_v)
         if data_arg_v == '' or data_arg_v == 'preview':
             data_org = flask.request.form.get('data', '')
             data_pas = render_set(
@@ -19,13 +20,22 @@ def api_w_2(conn, name):
             })
         elif data_arg_v == 'include':
             name_org = flask.request.args.get('name_org', '')
-            if name_org == '':
-                name_org = name
+            name_org = name if name_org == '' else name_org
+            
+            include_data = flask.request.args.get('include', '')
+                
+            try:
+                include_list = json.loads(flask.request.form.get('include_list', ''))
+            except:
+                include_list = []
 
-            json_data = data[0][0]
+            curs.execute(db_change("select data from data where title = ?"), [name])
+            sql_data = curs.fetchall()
+            if not sql_data:
+                return flask.jsonify({})
+            else:
+                json_data = sql_data[0][0]
 
-            include_data = flask.request.args.get('include', '')
-            if include_data != '':
                 get_all_change_1 = []
                 find_replace_moment = re.findall(r'(@([^=@]+)=([^=@]+)@|@([^=@]+)@)', json_data)
                 for i in find_replace_moment:
@@ -36,25 +46,22 @@ def api_w_2(conn, name):
                     else:
                         json_data = json_data.replace(i[0], '@' + i[3] + '@', 1)
 
-                get_all_change_2 = re.findall(r'(@(?:[^@]*)@),([^,]*),', flask.request.args.get('change', '')) + get_all_change_1
+                get_all_change_2 = include_list + get_all_change_1
+                print(get_all_change_2)
                 for i in get_all_change_2:
-                    json_data = json_data.replace(
-                        i[0].replace('<amp>', '&'), 
-                        i[1].replace('<amp>', '&').replace('<comma>', ','), 
-                        1
-                    )
-
-            data_pas = render_set(
-                doc_name = name_org, 
-                doc_data = json_data, 
-                data_type = 'api_view',
-                data_in = include_data
-            )
-
-            return flask.jsonify({
-                "data" : data_pas[0], 
-                "js_data" : data_pas[1]
-            })
+                    json_data = json_data.replace('@' + i[0] + '@', i[1])
+
+                data_pas = render_set(
+                    doc_name = name_org, 
+                    doc_data = json_data, 
+                    data_type = 'api_view',
+                    data_in = include_data
+                )
+
+                return flask.jsonify({
+                    "data" : data_pas[0], 
+                    "js_data" : data_pas[1]
+                })
         elif data_arg_v == 'exist':
             try:
                 title_list = json.loads(flask.request.form.get('title_list', ''))
@@ -93,41 +100,6 @@ def api_w_2(conn, name):
                 sql_data = curs.fetchall()
                 if not sql_data:
                     return flask.jsonify({})
-                elif data_arg_include != '':
-                    name_org = flask.request.args.get('name_org', '')
-                    name_org = name if name_org == '' else name_org
-
-                    json_data = sql_data[0][0]
-
-                    get_all_change_1 = []
-                    find_replace_moment = re.findall(r'(@([^=@]+)=([^=@]+)@|@([^=@]+)@)', json_data)
-                    for i in find_replace_moment:
-                        if i[1] != '':
-                            get_all_change_1 += [['@' + i[1] + '@', i[2]]]
-
-                            json_data = json_data.replace(i[0], '@' + i[1] + '@', 1)
-                        else:
-                            json_data = json_data.replace(i[0], '@' + i[3] + '@', 1)
-
-                    get_all_change_2 = re.findall(r'(@(?:[^@]*)@),([^,]*),', flask.request.args.get('change', '')) + get_all_change_1
-                    for i in get_all_change_2:
-                        json_data = json_data.replace(
-                            i[0].replace('<amp>', '&'), 
-                            i[1].replace('<amp>', '&').replace('<comma>', ','), 
-                            1
-                        )
-
-                    data_pas = render_set(
-                        doc_name = name_org, 
-                        doc_data = json_data, 
-                        data_type = 'api_view',
-                        data_in = data_arg_include
-                    )
-
-                    return flask.jsonify({
-                        "data" : data_pas[0], 
-                        "js_data" : data_pas[1]
-                    })
                 else:
                     data_pas = render_set(
                         doc_name = name, 

+ 1 - 1
route/list_user.py

@@ -8,7 +8,7 @@ def list_user_2(conn):
 
     list_data = '<ul class="inside_ul">'
 
-    curs.execute(db_change("select id, date from user order by date desc limit ?, 50"), [sql_num])
+    curs.execute(db_change("select id, data from user_set where name = 'date' order by data desc limit ?, 50"), [sql_num])
     user_list = curs.fetchall()
     for data in user_list:
         list_data += '' + \

+ 10 - 0
route/main_easter_egg.py

@@ -0,0 +1,10 @@
+from .tool.func import *
+
+def main_easter_egg_2(conn):
+    curs = conn.cursor()
+
+    return easy_minify(flask.render_template(skin_check(),
+        imp = ['easter_egg.html', wiki_set(), wiki_custom(), wiki_css([0, 0])],
+        data = open('./views/main_css/file/easter_egg.html', encoding='utf8').read(),
+        menu = 0
+    ))

+ 7 - 14
route/main_file.py

@@ -4,19 +4,12 @@ from . import main_error_404
 def main_file_2(conn, data):
     curs = conn.cursor()
 
-    if data == 'easter_egg.html':
-        return easy_minify(flask.render_template(skin_check(),
-            imp = ['easter_egg.html', wiki_set(), wiki_custom(), wiki_css([0, 0])],
-            data = open('./views/main_css/file/easter_egg.html', encoding='utf8').read(),
-            menu = 0
-        ))
-    elif re.search(r'\.(txt|xml)$', data, flags = re.I):
-        if data == 'robots.txt' and not os.path.exists('robots.txt'):
-            return flask.Response('User-agent: *\nDisallow: /\nAllow: /$\nAllow: /w/', mimetype = 'text/plain')
-        elif os.path.exists(data):
-            if re.search(r'\.txt$', data, flags = re.I):
-                return flask.send_from_directory('./', data, mimetype = 'text/plain')
-            else:
-                return flask.send_from_directory('./', data, mimetype = 'text/xml')
+    if data == 'robots.txt' and not os.path.exists('robots.txt'):
+        return flask.Response('User-agent: *\nDisallow: /\nAllow: /$\nAllow: /w/', mimetype = 'text/plain')
+    elif os.path.exists(data):
+        if re.search(r'\.txt$', data, flags = re.I):
+            return flask.send_from_directory('./', data, mimetype = 'text/plain')
+        else:
+            return flask.send_from_directory('./', data, mimetype = 'text/xml')
 
     return main_error_404.main_error_404_2(conn)

+ 1 - 2
route/tool/func.py

@@ -84,7 +84,7 @@ if sys.version_info < (3, 6):
 global_lang = {}
 global_wiki_set = {}
 
-data_css_ver = '102'
+data_css_ver = '103'
 data_css = ''
 
 conn = ''
@@ -406,7 +406,6 @@ def update(ver_num, set_data):
             curs.execute(db_change(
                 "insert into user_set (name, id, data) values (?, ?, ?)"
             ), ['application', i[0], json.dumps(sql_data)])
-            
     
     conn.commit()
 

+ 3 - 2
route/tool/func_mark.py

@@ -115,13 +115,14 @@ def render_do(doc_name, doc_data, data_type, data_in):
         if rep_data == 'namumark':
             data_in = (data_in + '_') if data_in else ''
             data_end = [
-                '<div class="render_content" id="' + data_in + 'render_content">' + html.escape(doc_data) + '</div>', 
+                '<pre style="display: none;" id="' + data_in + 'render_content_load">' + html.escape(doc_data) + '</pre>'
+                '<div class="render_content" id="' + data_in + 'render_content"></div>', 
                 '''
                     do_onmark_render(
                         test_mode = "normal", 
                         name_id = "''' + data_in + '''render_content",
                         name_include = "''' + data_in + '''",
-                        name_doc = "''' + doc_name.replace('"', '//"') + '''",
+                        name_doc = "''' + doc_name.replace('"', '//"') + '''"
                     );
                 ''',
                 []

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.4.0-stable-01b (beta-01b) (dev-21.09.15-01)",
+        "r_ver" : "v3.4.0-stable-01b (beta-01b) (dev-21.09.16-01)",
         "c_ver" : "3400101",
         "s_ver" : "12"
     }

+ 4 - 16
views/main_css/js/render_namumark.js

@@ -220,24 +220,12 @@ function get_file_state(data, i = 0) {
 }
 
 function load_include(name_doc, name_ob, data_include, name_org = '') {
-    var change = '';
-    for(var key in data_include) {
-        change += '' +
-            '@' + data_include[key][0].replace('&', '<amp>') + '@,' + 
-            data_include[key][1].replace(',', '<comma>').replace('&', '<amp>') + ',' +
-        ''
-    }
+    var data_form = new FormData();
+    data_form.append('include_list', JSON.stringify(data_include));
     
-    var url = '' +
-        "/api/w/" + encodeURI(name_doc) + 
-        "?include=" + name_ob + 
-        "&change=" + change +
-        '&name_org=' + name_org +
-    '';
-
     var xhr = new XMLHttpRequest();
-    xhr.open("GET", url);
-    xhr.send();
+    xhr.open("POST", "/api/w/" + encodeURI(name_doc) + "?v=include&include=" + name_ob + "&name_org=" + name_org);
+    xhr.send(data_form);
 
     xhr.onreadystatechange = function() {
         if(this.readyState === 4 && this.status === 200) {

+ 54 - 38
views/main_css/js/render_onmark.js

@@ -349,7 +349,7 @@ function do_onmark_link_render(data, data_js, name_doc, name_include, data_nowik
                         }
                     } else {
                         var var_link_type = 'title';
-                        var var_link_data = do_js_safe_change(link_main) + link_sub;
+                        var var_link_data = do_js_safe_change(link_main);
                     }
 
                     data_js += '' +
@@ -530,6 +530,8 @@ function do_onmark_macro_render(data, data_js) {
 }
 
 function do_onmark_middle_render(data, data_js, name_include, data_nowiki, name_doc) {
+    // 이것도 nowiki 처럼 가야할 듯
+    
     var middle_re = /{{{((?:(?!{{{|}}}).)+)}}}/s;
     
     var html_n = 0;
@@ -692,41 +694,53 @@ function do_onmark_last_render(data) {
 
 function do_onmark_include_render(data, data_js, name_include, data_nowiki) {
     var include_re = /\[include\(((?:(?!\)\]).)+)\)\]/i;
-    var i = 0;
-    while(1) {
-        i += 1;
-        
-        var include_data = data.match(include_re);
-        if(!include_data) {
-            break;
+    
+    if(name_include === '') {
+        var i = 0;
+        while(1) {
+            i += 1;
+            
+            var include_data = data.match(include_re);
+            if(!include_data) {
+                break;
+            }
+            
+            var include_name = do_nowiki_change(
+                include_data[1].match(/^([^,]+)/)[1],
+                data_nowiki
+            );
+            var include_add_re = /, *([^=]+)=((?:(?:(?!\)]|,).)+)+)/;
+            var include_add_data = []
+            var include_data = include_data[1];
+            while(1) {
+                var include_add = include_data.match(include_add_re);
+                if(!include_add) {
+                    break;
+                }
+                
+                include_add_data.push([
+                    include_add[1], 
+                    do_nowiki_change(include_add[2], data_nowiki)
+                ]);
+                include_data = include_data.replace(include_add_re, '');
+            }
+            
+            data = data.replace(include_re,
+                '<a id="' + name_include + 'include_link" class="include_' + String(i) + '" href="">(' + include_name + ')</a>' +
+                '<div id="' + name_include + 'include_' + String(i) + '"></div>'
+            );
+            
+            data_js += 'load_include("' + do_js_safe_change(include_name) + '", "' + name_include + 'include_' + String(i) + '", ' + JSON.stringify(include_add_data) + ');\n'
         }
-        
-        var include_name = do_nowiki_change(
-            include_data[1].match(/^([^,]+)/)[1],
-            data_nowiki
-        );
-        var include_add_re = /, *([^=]+)=((?:(?:(?!\)]|,).)+)+)/;
-        var include_add_data = []
-        var include_data = include_data[1];
+    } else {
         while(1) {
-            var include_add = include_data.match(include_add_re);
-            if(!include_add) {
+            var include_data = data.match(include_re);
+            if(!include_data) {
                 break;
             }
             
-            include_add_data.push([
-                include_add[1], 
-                do_nowiki_change(include_add[2], data_nowiki)
-            ]);
-            include_data = include_data.replace(include_add_re, '');
+            data = data.replace(include_re, '');
         }
-        
-        data = data.replace(include_re,
-            '<a id="' + name_include + 'include_link" class="include_' + String(i) + '" href="">(' + include_name + ')</a>' +
-            '<div id="' + name_include + 'include_' + String(i) + '"></div>'
-        );
-        
-        data_js += 'load_include("' + do_js_safe_change(include_name) + '", "' + name_include + 'include_' + String(i) + '", ' + JSON.stringify(include_add_data) + ');\n'
     }
     
     return [data, data_js];
@@ -1126,7 +1140,7 @@ function do_onmark_remark_render(data) {
 // Main
 function do_onmark_render(test_mode = 'test', name_id = '', name_include = '', name_doc = '', doc_data = '') {    
 	if(test_mode === 'normal') {
-        var data = '\n' + document.getElementById(name_id).innerHTML.replace(/\r/g, '') + '\n';
+        var data = '\n' + document.getElementById(name_id + '_load').innerHTML.replace(/\r/g, '') + '\n';
     } else if(test_mode === 'manual') { 
         var data = '\n' + doc_data.replace(/\r/g, '') + '\n';
     } else {
@@ -1146,7 +1160,15 @@ function do_onmark_render(test_mode = 'test', name_id = '', name_include = '', n
     if(passing === 0) {
         data = do_onmark_remark_render(data);
         
-        var data_var = do_onmark_math_render(data, data_js, name_include);
+        data_var = do_onmark_nowiki_before_render(data, data_js, name_include, data_nowiki);
+        data = data_var[0];
+        data_js = data_var[1];
+        data_nowiki = data_var[2];
+        console.log('nowiki');
+        
+        console.log(data);
+        
+        data_var = do_onmark_math_render(data, data_js, name_include);
         data = data_var[0];
         data_js = data_var[1];
         console.log('math');
@@ -1161,12 +1183,6 @@ function do_onmark_render(test_mode = 'test', name_id = '', name_include = '', n
         data_js = data_var[1];
         data_nowiki = data_var[2];
         console.log('middle');
-        
-        data_var = do_onmark_nowiki_before_render(data, data_js, name_include, data_nowiki);
-        data = data_var[0];
-        data_js = data_var[1];
-        data_nowiki = data_var[2];
-        console.log('nowiki');
 
         data = do_onmark_text_render(data);
         console.log('text');