Răsfoiți Sursa

마크다운 파서 기반 쌓는 중

Surplus_Up (2DU) 6 ani în urmă
părinte
comite
f9eda7ecee

+ 9 - 7
route/tool/set_mark/markdown.py

@@ -1,12 +1,14 @@
+from . import tool
+
+import datetime
+import html
+import re
+
 def markdown(conn, data, title, main_num):
     curs = conn.cursor()
     
-    plus_data = ''
+    data = '<div id="render_contect">' + re.sub('\r\n', '<br>', html.escape(data)) + '</div>'
+    plus_data = '<script>render_markdown();</script>'
     backlink = []
     
-    
-    return [
-        '<div id="render_contect">' + data + '</div>', 
-        plus_data, 
-        backlink
-    ]
+    return [data, plus_data, backlink]

+ 13 - 1
views/main_css/js/do_preview.js

@@ -13,7 +13,19 @@ function do_preview(name) {
 
     xhr.onreadystatechange = function() {
         if(this.readyState === 4 && this.status === 200) {
-            p_data.innerHTML = JSON.parse(this.responseText)['data'];
+            g_data = JSON.parse(this.responseText)['data'];
+            p_data.innerHTML = g_data;
+            
+            while(1) {
+                m_data = g_data.match(/<script>((?:(?!<\/script>).)+)<\/script>/);
+                if(m_data) {
+                    eval(m_data[1]);
+                    
+                    g_data = g_data.replace(/<script>((?:(?!<\/script>).)+)<\/script>/, '', 1);
+                } else {
+                    break;
+                }
+            }
         }
     }
 }

+ 7 - 0
views/main_css/js/render_markdown.js

@@ -1,3 +1,10 @@
 function render_markdown() {
+    data = document.getElementById('render_contect').innerHTML;
+   
+    data = data.replace(/\*\*((?:(?!\*\*).)+)\*\*/, '<g>$1</g>');
+    data = data.replace(/__((?:(?!__).)+)__/, '<b>$1</b>');
+    data = data.replace(/\*((?:(?!\*).)+)\*/, '<i>$1</i>');
+    data = data.replace(/_((?:(?!_).)+)_/, '<i>$1</i>');
     
+    document.getElementById('render_contect').innerHTML = data;
 }