Bläddra i källkod

mod section edit

2du 5 år sedan
förälder
incheckning
37f2fa6abc
4 ändrade filer med 90 tillägg och 13 borttagningar
  1. 18 9
      route/edit.py
  2. 1 1
      route/tool/func.py
  3. 1 1
      version.json
  4. 70 2
      views/main_css/js/load_editor.js

+ 18 - 9
route/edit.py

@@ -181,11 +181,6 @@ def edit_2(conn, name):
                 <span   id="server_set"
                         style="display: none;">''' + json.dumps(server_set) + '''</span>
                 <form method="post">
-                    <script>
-                        do_paste_image();
-                        do_not_out();
-                        ''' + add_script + '''
-                    </script>
                     <div ''' + editor_display + '''>''' + edit_button() + '''</div>
                     <div    id="monaco_editor"
                             class="content" 
@@ -196,9 +191,13 @@ def edit_2(conn, name):
                                 placeholder="''' + p_text + '''" 
                                 name="content">''' + html.escape(data) + '''</textarea>
                     <hr class="main_hr">
-                    <input placeholder="''' + load_lang('why') + '''" name="send">
-                    <textarea style="display: none;" id="origin">''' + html.escape(data) + '''</textarea>
-                    <input style="display: none;" name="ver" value="''' + doc_ver + '''">
+                    <input  placeholder="''' + load_lang('why') + '''" 
+                            name="send">
+                    <textarea   style="display: none;" 
+                                id="origin">''' + html.escape(data) + '''</textarea>
+                    <input  style="display: none;" 
+                            name="ver" 
+                            value="''' + doc_ver + '''">
                     <hr class="main_hr">
                     ''' + captcha_get() + ip_warring() + cccb_text + '''
                     <button id="save"
@@ -206,14 +205,24 @@ def edit_2(conn, name):
                             onclick="
                                 monaco_to_content(); 
                                 save_stop_exit();
+                                section_edit_do();
                             ">''' + load_lang('save') + '''</button>
                     <button id="preview" 
                             type="button" 
-                            onclick="monaco_to_content(); load_preview(\'''' + url_pas(name) + '\');">' + load_lang('preview') + '''</button>
+                            onclick="
+                                monaco_to_content(); 
+                                load_preview(\'''' + url_pas(name) + '''\');
+                            ">''' + load_lang('preview') + '''</button>
                 </form>
                 ''' + b_text + '''
                 <hr class="main_hr">
                 <div id="see_preview"></div>
+                <script>
+                    section_edit_init();
+                    do_paste_image();
+                    do_not_out();
+                    ''' + add_script + '''
+                </script>
             ''',
             menu = [
                 ['w/' + url_pas(name), load_lang('return')],

+ 1 - 1
route/tool/func.py

@@ -64,7 +64,7 @@ for i in range(0, 2):
         
 global_lang = {}
 
-data_css_ver = '86'
+data_css_ver = '87'
 data_css = ''
 
 conn = ''

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.3.0-stable-01b (beta-03b) (dev-2021-05-16-01)",
+        "r_ver" : "v3.3.0-stable-01b (beta-03b) (dev-2021-05-21-01)",
         "c_ver" : "3300101",
         "s_ver" : "12"
     }

+ 70 - 2
views/main_css/js/load_editor.js

@@ -5,7 +5,10 @@ function do_insert_data(name, data) {
 
         var sel = document.selection.createRange();
         sel.text = data;
-    } else if(document.getElementById(name).selectionStart || document.getElementById(name).selectionStart == '0') {
+    } else if(
+        document.getElementById(name).selectionStart || 
+        document.getElementById(name).selectionStart == '0'
+    ) {
         var startPos = document.getElementById(name).selectionStart;
         var endPos = document.getElementById(name).selectionEnd;
         var myPos = document.getElementById(name).value;
@@ -139,6 +142,71 @@ function load_raw_preview(name_1, name_2) {
     document.getElementById(name_2).innerHTML = document.getElementById(name_1).value;
 }
 
-function section_edit_make() {
+function section_edit_init() {
+    var data_server = JSON.parse(
+        document.getElementById('server_set').innerHTML
+    );
     
+    if(data_server['markup'] === 'namumark') {
+        var data = document.getElementById('content').value;
+        var data_org = data;
+        var data_section = Number(data_server['section']);
+        var re_heading = /(^|\n)(={1,6})(#)? ?([^=]+) ?#?={1,6}(\n|$)/;
+        for(i = 1; data.match(re_heading); i++) {
+            if(i === data_section) {
+                var start_point = data.search(re_heading);
+                if(data[start_point] === '\n') {
+                    start_point += 1;
+                }
+                
+                data = data.replace(re_heading, function(x) {
+                    return '.'.repeat(x.length);
+                });
+                
+                var end_point = data.search(re_heading);
+                if(end_point === -1) {
+                    end_point = data.length;
+                }
+                
+                data = data_org.slice(start_point, end_point);
+                document.getElementById('content').value = data;
+                
+                data_server['start_point'] = start_point;
+                data_server['end_point'] = end_point - 1;
+                
+                document.getElementById('server_set').innerHTML = JSON.stringify(data_server);
+                
+                break;
+            } else {
+                data = data.replace(re_heading, function(x) {
+                    return '.'.repeat(x.length);
+                });
+            }
+        }
+    }
+}
+
+function section_edit_do() {
+    var data_server = JSON.parse(
+        document.getElementById('server_set').innerHTML
+    );
+    
+    console.log(data_server, data_server['start_point']);
+    if(data_server['start_point'] !== undefined) {
+        var data = document.getElementById('origin').value;
+        var data_section = document.getElementById('content').value;
+        
+        var start_point = data_server['start_point'];
+        var end_point = data_server['end_point'];
+        
+        console.log(data.length, end_point);
+        if(data.length > end_point) {
+            var data_new = '';
+            data_new += data.slice(0, start_point);
+            data_new += data_section;
+            data_new += data.slice(end_point, data.length - 1);
+            
+            document.getElementById('content').value = data_new;
+        }
+    }
 }