Просмотр исходного кода

인터위키 재 설계 해야겠다

2DU 9 лет назад
Родитель
Сommit
225aa5b9cc
1 измененных файлов с 17 добавлено и 17 удалено
  1. 17 17
      app.py

+ 17 - 17
app.py

@@ -24,6 +24,21 @@ def namumark(title, data):
     data = re.sub('>', '>', data)
     data = re.sub('"', '"', data)
     
+    while True:
+        m = re.search("\[include\((((?!\)\]).)*)\)\]", data)
+        if(m):
+            results = m.groups()
+            curs.execute("select * from data where title = '" + pymysql.escape_string(results[0]) + "'")
+            rows = curs.fetchall()
+            if(rows):
+                enddata = rows[0]['data']
+                enddata = re.sub("\[include\((((?!\)\]).)*)\)\]", "", enddata)
+                data = re.sub("\[include\((((?!\)\]).)*)\)\]", enddata, data, 1)
+            else:
+                data = re.sub("\[include\((((?!\)\]).)*)\)\]", "[[" + results[0] + "]]", data, 1)
+        else:
+            break
+    
     data = re.sub('^#(?:redirect|넘겨주기)\s(?P<in>[^\n]*)', '<meta http-equiv="refresh" content="0;url=/w/\g<in>/redirect/' + title + '" />', data)
     
     data = '\n' + data + '\n'
@@ -108,6 +123,8 @@ def namumark(title, data):
     data = re.sub('\^\^(?P<in>.+?)\^\^(?!\^)', '<sup>\g<in></sup>', data)
     data = re.sub(',,(?P<in>.+?),,(?!,)', '<sub>\g<in></sub>', data)
     
+    data = re.sub('{{\|(?P<in>(?:(?!\|}}).)*)\|}}', '<table><tbody><tr><td>\g<in></td></tr></tbody></table>', data)
+    
     data = re.sub("##\s?(?P<in>[^\n]*)\n", "<div style='display:none;'>\g<in></div>", data);
     
     data = re.sub("\[br\]",'<br>', data);
@@ -137,23 +154,6 @@ def namumark(title, data):
         else:
             break
             
-    while True:
-        m = re.search("\[\[(?:((?:(?!:|http(?:s):\/\/).)*)\:((?:(?!\]\]|\|).)*))(\|(?:(?:(?!\]\]).)*))?\]\]", data)
-        if(m):
-            results = m.groups()
-            try:
-                if(results[2]):
-                    data = re.sub("\[\[(?:((?:(?!:|http(?:s):\/\/).)*)\:((?:(?!\]\]|\|).)*))(\|(?:(?:(?!\]\]).)*))?\]\]", "[[" + interwiki[results[0]] + results[1] + results[2] + "]]", data, 1)
-                else:
-                    data = re.sub("\[\[(?:((?:(?!:|http(?:s):\/\/).)*)\:((?:(?!\]\]|\|).)*))(\|(?:(?:(?!\]\]).)*))?\]\]", "[[" + interwiki[results[0]] + results[1] + "]]", data, 1)
-            except:
-                if(results[2]):
-                    data = re.sub("\[\[(?:((?:(?!:|http(?:s):\/\/).)*)\:((?:(?!\]\]|\|).)*))(\|(?:(?:(?!\]\]).)*))?\]\]", "[[" + results[1] + results[2] + "]]", data, 1)
-                else:
-                    data = re.sub("\[\[(?:((?:(?!:|http(?:s):\/\/).)*)\:((?:(?!\]\]|\|).)*))(\|(?:(?:(?!\]\]).)*))?\]\]", "[[" + results[1] + "]]", data, 1)
-        else:
-            break
-            
     while True:
         m = re.search("\[\[(((?!\]\]).)*)\]\]", data)
         if(m):