2du 5 лет назад
Родитель
Сommit
3eb64cf6ef
1 измененных файлов с 28 добавлено и 18 удалено
  1. 28 18
      views/main_css/js/load_onmark_render.js

+ 28 - 18
views/main_css/js/load_onmark_render.js

@@ -13,30 +13,37 @@ function do_onmark_text_render(data) {
 function do_onmark_heading_render(data) {
     var heading_re = /<br>(={1,6}) ?([^=]+) ?={1,6}<br>/;
     var heading_level_all = [0, 0, 0, 0, 0, 0];
-    while(data.match(heading_re)) {
-        console.log(data.match(heading_re));
-        data = data.replace(heading_re, function(x, heading_level, heading_data) {
-            console.log(heading_level);
-            heading_level = heading_level.length;
-            heading_level_all[heading_level - 1] += 1;
+    while(1) {        
+        var heading_data = data.match(heading_re);
+        if(!heading_data) {
+            break;
+        }
+          
+        var heading_level = heading_data[1].length;
+        heading_level_all[heading_level - 1] += 1;
 
-            var i = 6;
-            while(i > heading_level - 1) {
-                heading_level_all[i] = 0;
+        var i = 6;
+        while(i > heading_level - 1) {
+            heading_level_all[i] = 0;
 
-                i -= 1;
+            i -= 1;
+        }
+
+        heading_level = String(heading_level);
+        var heading_level_string = '';
+        i = 0;
+        while(i < 6) {
+            if(heading_level_all[i] !== 0) {
+                heading_level_string += String(heading_level_all[i]) + '.';
             }
 
-            console.log(heading_level_all);
-            heading_level = String(heading_level);
-            heading_level_string = heading_level_all.join('.');
-            console.log(heading_level_string);
-            
-            return '<h' + heading_level + '>' + heading_data + '</h' + heading_level + '><br>';
-        });
+            i += 1;
+        }
+
+        data = data.replace(heading_re, '<h' + heading_level + '>' + heading_level_string + ' ' + heading_data[2] + '</h' + heading_level + '><br>');
     }
     
-    console.log(data.match(heading_re));
+    data = data.replace(/(<\/h[0-9]>)<br>/g, '$1');
     
     return data;
 }
@@ -48,5 +55,8 @@ function do_onmark_render(id_name) {
     data = do_onmark_text_render(data);
     data = do_onmark_heading_render(data);
     
+    data = data.replace(/^(<br>| )+/, '');
+    data = data.replace(/(<br>| )+$/, '');
+    
     document.getElementById(id_name).innerHTML = data;
 }