surplus-dev 4 лет назад
Родитель
Сommit
7734031306

+ 0 - 15
route/api_topic_sub.py

@@ -33,21 +33,6 @@ def api_topic_sub_2(conn, topic_num):
         for i in data:
             data_v = i[1] if i[4] != 'O' or admin == 1 else ''
             
-            data_r = render_set(data = data_v, num = 2, include = 'topic_' + i[0], acl = get_acl)
-            data_r_html = data_r[0]
-            data_r_js = data_r[1]
-            
-            data_r_html = re.sub(
-                r'<topic_a>((?:(?!<\/topic_a>).)+)<\/topic_a>', 
-                '<a href="\g<1>">\g<1></a>', 
-                data_r_html
-            )
-            data_r_html = re.sub(
-                r'&lt;topic_call&gt;@((?:(?!&lt;\/topic_call&gt;).)+)&lt;\/topic_call&gt;', 
-                '<a href="/w/user:\g<1>">@\g<1></a>', 
-                data_r_html
-            )
-            
             data_a[i[0]] = {
                 "data" : data_v,
                 "date" : i[2],

+ 0 - 2
route/api_w.py

@@ -5,7 +5,6 @@ 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(
@@ -47,7 +46,6 @@ def api_w_2(conn, name):
                         json_data = json_data.replace(i[0], '@' + i[3] + '@', 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] + '@', i[1])
 

+ 1 - 1
route/tool/func.py

@@ -84,7 +84,7 @@ if sys.version_info < (3, 6):
 global_lang = {}
 global_wiki_set = {}
 
-data_css_ver = '103'
+data_css_ver = '104'
 data_css = ''
 
 conn = ''

+ 15 - 1
route/tool/func_mark.py

@@ -106,11 +106,25 @@ def render_do(doc_name, doc_data, data_type, data_in):
     rep_data = curs.fetchall()
     rep_data = rep_data[0][0] if rep_data else 'namumark'
     
+    curs.execute(db_change('select html, plus, plus_t from html_filter where kind = "inter_wiki"'))
+    inter_wiki_data = curs.fetchall()
+    wiki_set_data = {
+        "inter_wiki" : {}
+    }
+    for i in inter_wiki_data:
+        wiki_set_data['inter_wiki'][i[0]] = {
+            "logo" : i[2],
+            "link" : i[1]
+        }
+        
+    wiki_set_data = json.dumps(wiki_set_data, ensure_ascii = False)
+    
     if data_type != 'backlink':
         if rep_data == 'namumark':
             data_in = (data_in + '_') if data_in else ''
             data_end = [
-                '<pre style="display: none;" id="' + data_in + 'render_content_load">' + html.escape(doc_data) + '</pre>'
+                '<pre style="display: none;" id="' + data_in + 'render_content_set">' + html.escape(wiki_set_data) + '</pre>' + \
+                '<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(

+ 1 - 0
route/tool/func_tool.py

@@ -6,6 +6,7 @@ import re
 
 import os
 import html
+import json
 import sqlite3
 import threading
 

+ 1 - 1
version.json

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

+ 1 - 1
views/main_css/js/load_topic.js

@@ -48,7 +48,7 @@ function new_topic_load(topic_num, type_do = 'top', some = '', where = 'top_topi
                         '<a href="$1">$1</a>'
                     );
                     data_i_pas = data_i_pas.replace(
-                        /&lt;topic_call&gt;((?:(?!&lt;\/topic_call&gt;).)+)&lt;\/topic_call&gt;/g,
+                        /&lt;topic_call&gt;@((?:(?!&lt;\/topic_call&gt;).)+)&lt;\/topic_call&gt;/g,
                         '<a href="/w/user:$1">@$1</a>', 
                     );
                 }

+ 5 - 1
views/main_css/js/render_namumark.js

@@ -8,7 +8,11 @@ function get_link_state(data) {
     var link_list_2 = {}
     for(var i = 0; document.getElementsByClassName(data + 'link_finder')[i]; i++) {
         var data_class = document.getElementsByClassName(data + 'link_finder')[i];
-        if(data_class.id !== 'out_link' && !data_class.href.match(/^#/)) {            
+        if(
+            data_class.id !== 'out_link' && 
+            data_class.id !== 'inside' && 
+            !data_class.href.match(/^#/)
+        ) {            
             link_list.push(data_class.title);
             
             if(!link_list_2[data_class.title]) {

+ 83 - 5
views/main_css/js/render_onmark.js

@@ -1,5 +1,5 @@
-// 인터위키
 // 표 캡션
+// 중괄호 문법 정리
 // Tool
 function do_url_change(data) {
     return encodeURIComponent(data);
@@ -203,11 +203,16 @@ function do_onmark_heading_render(data, name_doc, name_include) {
     return data;
 }
 
-function do_onmark_link_render(data, data_js, name_doc, name_include, data_nowiki) {
+function do_onmark_link_render(data, data_js, name_doc, name_include, data_nowiki, data_wiki_set) {
     var num_link = 0;
+    
     var category_data = '';
+    
     var category_re = /^(분류|category):/i;
+    let inter_re = /^inter:([^:]+):/i;
+    let out_link_re = /^http(s)?:\/\//i;
     var file_re = /^(파일|file|외부|out):/i;
+    
     var link_re = /\[\[(((?!\[\[|\]\]).)+)\]\]/;
     
     while(data.match(link_re)) {
@@ -302,7 +307,7 @@ function do_onmark_link_render(data, data_js, name_doc, name_include, data_nowik
                 ''
 
                 return '';
-            } else if(link_real.match(/^http(s)?:\/\//)) {
+            } else if(link_real.match(out_link_re)) {
                 var i = 0;
                 while(i < 2) {
                     if(i === 0) {
@@ -326,6 +331,61 @@ function do_onmark_link_render(data, data_js, name_doc, name_include, data_nowik
                             'name="' + name_include + 'set_link_' + num_link_str + '" ' + 
                             'title=""' +
                             'href="">' + link_out + '</a>';
+            } else if(link_real.match(inter_re)) {
+                let data_inter = link_real.match(inter_re);
+                let data_inter_link = '';
+                let data_inter_logo = '';
+                if(data_inter) {
+                    if(link_real === link_out) {
+                        link_real = link_real.replace(
+                            inter_re, 
+                            ''
+                        );
+                        
+                        link_out = link_real;
+                    } else {
+                        link_real = link_real.replace(
+                            inter_re, 
+                            ''
+                        );
+                    }
+                        
+                    console.log(data_inter);
+                    console.log(link_real);
+                    let data_inter_get = data_wiki_set['inter_wiki'][data_inter[1]];
+                    console.log(data_inter_get);
+                    if(data_inter_get) {
+                        data_inter_link = data_inter_get['link'];
+                        if(data_inter_get['logo'] !== '') {
+                            data_inter_logo = data_inter_get['logo'];
+                            data_inter_logo = data_inter_logo.replace(/&lt;/g, '<').replace(/&gt;/g, '>');
+                        } else {
+                            data_inter_logo = data_inter[1] + ':';
+                        }
+                    } else {
+                        return '';
+                    }
+                    
+                    data_js += '' +
+                        'document.getElementsByName("' + name_include + 'set_link_' + num_link_str + '")[0].title = ' + 
+                        '"' + do_js_safe_change(do_xss_change(data_inter[1] + ':' + link_real)) + '";' +
+                            '\n' +
+                    '';
+                    data_js += '' +
+                        'document.getElementsByName("' + name_include + 'set_link_' + num_link_str + '")[0].href = ' + 
+                        '"' + data_inter_link + do_url_change(link_real) + '";' +
+                            '\n' +
+                    '';
+
+                    return  '<a id="inside" ' +
+                            'class="' + name_include + 'link_finder" ' +
+                            'target="_blank" ' +
+                            'name="' + name_include + 'set_link_' + num_link_str + '" ' + 
+                            'title=""' +
+                            'href="">' + data_inter_logo + link_out + '</a>'; 
+                } else {
+                    return '';
+                }
             } else {
                 if(link_real.match(/^\//)) {
                     link_real = name_doc + link_real;
@@ -1138,9 +1198,17 @@ function do_onmark_remark_render(data) {
 }
 
 // Main
-function do_onmark_render(test_mode = 'test', name_id = '', name_include = '', name_doc = '', doc_data = '') {    
+function do_onmark_render(
+    test_mode = 'test', 
+    name_id = '', 
+    name_include = '', 
+    name_doc = '', 
+    doc_data = ''
+) {
+    let data_wiki_set = {};
 	if(test_mode === 'normal') {
         var data = '\n' + document.getElementById(name_id + '_load').innerHTML.replace(/\r/g, '') + '\n';
+        data_wiki_set = JSON.parse(document.getElementById(name_id + '_set').innerHTML);
     } else if(test_mode === 'manual') { 
         var data = '\n' + doc_data.replace(/\r/g, '') + '\n';
     } else {
@@ -1157,6 +1225,9 @@ function do_onmark_render(test_mode = 'test', name_id = '', name_include = '', n
     data_js = data_var[1];
     var passing = data_var[2];
     
+    console.log(data_wiki_set);
+    console.log('test');
+    
     if(passing === 0) {
         data = do_onmark_remark_render(data);
         
@@ -1191,7 +1262,14 @@ function do_onmark_render(test_mode = 'test', name_id = '', name_include = '', n
         data = do_onmark_table_render(data);
         console.log('table');
 
-        data_var = do_onmark_link_render(data, data_js, name_doc, name_include, data_nowiki);
+        data_var = do_onmark_link_render(
+            data, 
+            data_js, 
+            name_doc, 
+            name_include,
+            data_nowiki,
+            data_wiki_set
+        );
         data = data_var[0];
         data_js = data_var[1];
         console.log('link');