2du 5 anni fa
parent
commit
4079ec3be7
4 ha cambiato i file con 73 aggiunte e 14 eliminazioni
  1. 1 1
      route/tool/func.py
  2. 1 1
      version.json
  3. 1 1
      views/main_css/css/main.css
  4. 70 11
      views/main_css/js/render_onmark.js

+ 1 - 1
route/tool/func.py

@@ -65,7 +65,7 @@ from .func_mark import *
         
 global_lang = {}
 
-data_css_ver = '79'
+data_css_ver = '80'
 data_css = ''
 
 conn = ''

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.3.0-stable-01 (beta-02) (dev-2021-04-17-01)",
+        "r_ver" : "v3.3.0-stable-01 (beta-02) (dev-2021-04-17-02)",
         "c_ver" : "3300101",
         "s_ver" : "11"
     }

+ 1 - 1
views/main_css/css/main.css

@@ -1,4 +1,4 @@
-body, html, video, table, div, iframe, input, textarea, img, hr, blockquote, pre {
+body, html, video, table, iframe, input, textarea, img, hr, blockquote, pre {
     max-width: 100%;
 }
 

+ 70 - 11
views/main_css/js/render_onmark.js

@@ -1,6 +1,4 @@
 // 인터위키
-// 폴딩
-// 인용문
 // Tool
 function do_url_change(data) {
     return encodeURIComponent(data);
@@ -489,6 +487,7 @@ function do_onmark_middle_render(data, data_js, name_include, data_nowiki, name_
     var syntax_on = 0;
     
     var html_n = 0;
+    var folding_n = 0;
     
     while(1) {
         var middle_data = data.match(middle_re);
@@ -538,9 +537,38 @@ function do_onmark_middle_render(data, data_js, name_include, data_nowiki, name_
                     data = data.replace(middle_re, '<span id="' + name_include + 'render_contect_' + String(html_n) + '">');
                     middle_stack.push('</span>');
                 } else if(middle_data[1] === '#!folding') {
-                    // 이 부분 완성해야함
-                    data = data.replace(middle_re, '<wiki_start style="">');
-                    middle_stack.push('<wiki_end>');
+                    folding_n += 1;
+                    
+                    var folding_re = /{{{#!folding(?: ([^\n]+)\n)?/;
+                    
+                    var folding = data.match(folding_re);
+                    var folding_name = folding[1] ? folding[1] : 'open';
+                    
+                    if(folding_n > 100) {
+                        break;
+                    }
+                    
+                    data_js += '' +
+                        'if(document.getElementById("get_' + name_include + 'folding_' + String(folding_n) + '")) { ' + 
+                            'document.getElementById("get_' + name_include + 'folding_' + String(folding_n) + '").innerHTML = ' + 
+                                '"' + do_js_safe_change(folding_name) + '"; ' + 
+                            '' + 
+                        '}' + 
+                        '\n' + 
+                    ''
+                    data = data.replace(folding_re, '' +
+                        '<div style="display: inline-block;">' +
+                            '<b>' + 
+                                '<a href="javascript:do_open_folding(\'' + name_include + 'folding_' + String(folding_n) + '\');" ' + 
+                                    'id="get_' + name_include + 'folding_' + String(folding_n) + '">' + 
+                                '</a>' + 
+                            '</b>' + 
+                        '</div>' +
+                        '<div id="' + name_include + 'folding_' + String(folding_n) + '" style="display: none;">' +
+                            '\n' +
+                            '<wiki_start style="">' +
+                    '');
+                    middle_stack.push('<folding_end>');
                 } else {
                     data = data.replace(middle_re, '<nowiki_start>' + middle_data[1]);
                     middle_stack.push('<nowiki_end>');
@@ -554,12 +582,14 @@ function do_onmark_middle_render(data, data_js, name_include, data_nowiki, name_
         middle_stack.pop();
     }
     
-    data = data.replace(/\n<div_wiki_end>/g, '<div_wiki_end>');
+    data = data.replace(/<folding_end>/g, '<wiki_end></div>');
+    data = data.replace(/\n<wiki_end>/g, '<wiki_end>');
     
     data = data.replace(/<middle_start>/g, '{{{');
     data = data.replace(/<middle_end>/g, '}}}');
     
-    var code_re = /<nowiki_start>(\n*(?:(?:(?!<nowiki_start>|<nowiki_end>).)+\n*)+)<nowiki_end>/;
+    
+    var code_re = /<nowiki_start>((?:(?!<nowiki_start>|<nowiki_end>).)+)<nowiki_end>/s;
     var code_n = 0;
     while(1) {
         code_n += 1;
@@ -574,7 +604,7 @@ function do_onmark_middle_render(data, data_js, name_include, data_nowiki, name_
         data = data.replace(code_re, '<span id="' + name_include + 'nowiki_mid_' + String(code_n) + '"></span>');
     }
     
-    var wiki_re = /<wiki_start ([^>]+)>(\n*(?:(?:(?!<wiki_start (?:[^>]+)>|<wiki_end>).)+\n*)+)<wiki_end>/;
+    var wiki_re = /<wiki_start ([^>]+)>((?:(?!<wiki_start (?:[^>]+)>|<wiki_end>).)+)<wiki_end>/s;
     var wiki_n = 0;
     while(1) {
         wiki_n += 1;
@@ -588,8 +618,6 @@ function do_onmark_middle_render(data, data_js, name_include, data_nowiki, name_
         wiki_data = do_nowiki_change(wiki_data[2]);
         wiki_data = do_onmark_render('manual', '', name_include + 'wiki_' + String(wiki_n) + '_', name_doc, wiki_data);
         
-        console.log([wiki_data[0]]);
-        
         data_js += wiki_data[1];
         data = data.replace(wiki_re, '<div ' + wiki_data_style + '>' + wiki_data[0] + '</div>');
     }
@@ -796,6 +824,8 @@ function do_onmark_table_render_sub(data, data_col) {
         }
     }
     
+    data_option_all['data'] = data_option_all['data'].replace(/^ +| +$/g, '');
+    
     return data_option_all;
 }
 
@@ -887,7 +917,7 @@ function do_onmark_list_render(data) {
             break;
         }
         
-        var list_end_data = '<ul style="padding: 0;">' + list_data[1].replace(list_short_re, function(x, x_1, x_2) {
+        var list_end_data = '<ul>' + list_data[1].replace(list_short_re, function(x, x_1, x_2) {
             return '<li style="margin-left: ' + String(x_1.length * 20) + 'px;">' + x_2 + '</li>';
         }) + '</ul>';
 
@@ -911,6 +941,27 @@ function do_onmark_math_render(data, data_js, name_include) {
     return [data, data_js];
 }
 
+function do_onmark_quote_render(data) {
+    data = data.replace(/(\n(?:&gt;(?:[^\n]+)\n)+)/g, function(x, x_1) {
+        return '\n<start_point><blockquote>' + do_onmark_quote_render(x_1.replace(/\n&gt; */g, '\n')).replace(/^\n/, '') + '</blockquote><end_point>\n';
+    });
+    
+    return data;
+}
+
+function do_onmark_hr_render(data) {
+    var hr_re = /\n-{4,}\n/;
+    while(1) {
+        if(!data.match(hr_re)) {
+            break;
+        }
+        
+        data = data.replace(hr_re, '\n<start_point><hr><end_point>\n');
+    }
+    
+    return data;
+}
+
 // Main
 function do_onmark_render(test_mode = 'test', name_id = '', name_include = '', name_doc = '', doc_data = '') {    
 	if(test_mode === 'normal') {
@@ -932,33 +983,41 @@ asdf || asdf`
     var data_var = do_onmark_math_render(data, data_js, name_include);
     data = data_var[0];
     data_js = data_var[1];
+    console.log('math')
     
     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_var = do_onmark_include_render(data, data_js, name_include, data_nowiki);
     data = data_var[0];
     data_js = data_var[1];
+    console.log('include')
     
     data_var = do_onmark_middle_render(data, data_js, name_include, data_nowiki, name_doc);
     data = data_var[0];
     data_js = data_var[1];
     data_nowiki = data_var[2];
+    console.log('middle')
     
     data = do_onmark_text_render(data);
     data = do_onmark_heading_render(data, name_doc, name_include);
     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 = data_var[0];
     data_js = data_var[1];
     
     data = do_onmark_macro_render(data);
+    data = do_onmark_quote_render(data);
     data = do_onmark_list_render(data);
+    data = do_onmark_hr_render(data);
     data = do_onmark_footnote_render(data, name_include);
     data = do_onmark_last_render(data, name_include);
+    console.log('all')
     
     data_js += '' + 
         'get_link_state("' + name_include + '");\n' +