فهرست منبع

fix onmark bug

2du 5 سال پیش
والد
کامیت
aaf6e82873
2فایلهای تغییر یافته به همراه41 افزوده شده و 48 حذف شده
  1. 34 47
      route/tool/func_mark.py
  2. 7 1
      views/main_css/js/render_onmark.js

+ 34 - 47
route/tool/func_mark.py

@@ -5,19 +5,11 @@ import threading
 
 from .func_tool import *
 
+# 커스텀 마크 언젠간 다시 추가 예정
+
 conn = ''
 curs = ''
 
-if os.path.exists('route/tool/custom.py'):
-    from .custom import custom_mark
-else:
-    def custom_mark(conn, doc_data, doc_name, data_in):
-        return [
-            doc_data, 
-            '', 
-            []
-        ]
-
 def load_conn2(data):
     global conn
     global curs
@@ -80,36 +72,39 @@ def render_do(doc_name, doc_data, data_type, data_in):
     curs.execute(db_change('select data from other where name = "markup"'))
     rep_data = curs.fetchall()
     rep_data = rep_data[0][0] if rep_data else 'namumark'
-    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>', 
-            '''
-                do_onmark_render(
-                    test_mode = "normal", 
-                    name_id = "''' + data_in + '''render_content",
-                    name_include = "''' + data_in + '''",
-                    name_doc = "''' + doc_name.replace('"', '//"') + '''",
-                );
-            ''',
-            []
-        ]
-    elif rep_data == 'custom':
-        data_end = custom_mark(
-            conn, 
-            doc_data, 
-            doc_name, 
-            data_in
-        )
-    else:
-        data_end = [
-            doc_data, 
-            '', 
-            []
-        ]
+    
+    if data_type != 'backlink':
+        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>', 
+                '''
+                    do_onmark_render(
+                        test_mode = "normal", 
+                        name_id = "''' + data_in + '''render_content",
+                        name_include = "''' + data_in + '''",
+                        name_doc = "''' + doc_name.replace('"', '//"') + '''",
+                    );
+                ''',
+                []
+            ]
+        else:
+            data_end = [
+                doc_data, 
+                '', 
+                []
+            ]
 
-    if data_type == 'backlink':
+        if data_type == 'api_view':
+            return [
+                data_end[0], 
+                data_end[1]
+            ]
+        else:
+            return data_end[0] + '<script>' + data_end[1] + '</script>'
+    else:
         # backlink = backlink_generate(rep_data, html.escape(doc_data), doc_name)
+        
         backlink = []
         if backlink == []:
             curs.execute(db_change("insert into back (title, link, type) values ('test', ?, 'nothing')"), [doc_name])
@@ -117,12 +112,4 @@ def render_do(doc_name, doc_data, data_type, data_in):
             curs.executemany(db_change("insert into back (link, title, type) values (?, ?, ?)"), backlink)
             curs.execute(db_change("delete from back where title = ? and type = 'no'"), [doc_name])
 
-        conn.commit()
-    else:
-        if data_type == 'api_view':
-            return [
-                data_end[0], 
-                data_end[1]
-            ]
-        else:
-            return data_end[0] + '<script>' + data_end[1] + '</script>'
+        conn.commit()

+ 7 - 1
views/main_css/js/render_onmark.js

@@ -1,4 +1,5 @@
 // 인터위키
+// 표 캡션
 // Tool
 function do_url_change(data) {
     return encodeURIComponent(data);
@@ -89,8 +90,13 @@ function do_onmark_text_render(data) {
     data = data.replace(/'''((?:(?!''').)+)'''/g, '<b>$1</b>');
     data = data.replace(/''((?:(?!'').)+)''/g, '<i>$1</i>');
     data = data.replace(/__((?:(?!__).)+)__/g, '<u>$1</u>');
+    
+    data = data.replace(/\^\^\^((?:(?!\^\^\^).)+)\^\^\^/g, '<sup>$1</sup>');
     data = data.replace(/\^\^((?:(?!\^\^).)+)\^\^/g, '<sup>$1</sup>');
+    
+    data = data.replace(/,,,((?:(?!,,,).)+),,,/g, '<sub>$1</sub>');
     data = data.replace(/,,((?:(?!,,).)+),,/g, '<sub>$1</sub>');
+    
     data = data.replace(/--((?:(?!--).)+)--/g, '<s>$1</s>');
     data = data.replace(/~~((?:(?!~~).)+)~~/g, '<s>$1</s>');
     
@@ -283,7 +289,7 @@ function do_onmark_link_render(data, data_js, name_doc, name_include, data_nowik
 
                     data_js += '' +
                         'document.getElementsByName("' + name_include + 'set_link_' + num_link_str + '")[0].' + var_link_type + ' = ' + 
-                            '"' + do_js_safe_change(link_real) + '";' +
+                            '"' + do_js_safe_change(do_xss_change(link_real)) + '";' +
                         '\n' +
                     '';