Преглед изворни кода

각주 안에 각주 지원

2DU пре 8 година
родитељ
комит
e6136dd768
1 измењених фајлова са 27 додато и 25 уклоњено
  1. 27 25
      mark.py

+ 27 - 25
mark.py

@@ -804,8 +804,9 @@ def namumark(title, data, num, in_c):
     a = 1
     tou = "<hr style='margin-top: 30px;' id='footnote'><div><br>"
     namu = []
+    pop_re = re.compile('\[\*([^\s]*)(?:\s((?:(?!\[|\]).)*))?\]')
     while(1):
-        b = re.search("\[\*([^\s]*)(?:\s(((?!\[|\]).)*))?\]", data)
+        b = pop_re.search(data)
         if(b):
             results = b.groups()
             if(not results[1] and results[0]):
@@ -815,47 +816,44 @@ def namumark(title, data, num, in_c):
                     try:
                         if(namu[i] == results[0]):
                             none_this = 0
-
                             break
                         else:
                             i += 2
                     except:
                         none_this = 1
-
                         break
                         
                 if(none_this == 0):
-                    data = re.sub("\[\*([^\s]*)(?:\s(((?!\[|\]).)*))?\]",   "<sup> \
-                                                                                <a href='javascript:void(0);' onclick='folding(" + str(fol_num) + ");' id='rfn-" + str(a) + "'>[" + results[0] + "]</a> \
-                                                                            </sup> \
-                                                                            <div class='popup' style='display: none;' id='folding_" + str(fol_num) + "'> \
-                                                                                <a onclick='folding(" + str(fol_num) + ");' href='#fn-" + str(a) + "'>[" + results[0] + "]</a> <a href='javascript:void(0);' onclick='folding(" + str(fol_num) + ");'>[X]</a> " + namu[i + 1] + " \
-                                                                            </div>", data, 1)
+                    data = pop_re.sub("<sup> \
+                                            <a href='javascript:void(0);' onclick='folding(" + str(fol_num) + ");' id='rfn-" + str(a) + "'>[" + results[0] + "]</a> \
+                                        </sup> \
+                                        <div class='popup' style='display: none;' id='folding_" + str(fol_num) + "'> \
+                                            <a onclick='folding(" + str(fol_num) + ");' href='#fn-" + str(a) + "'>#d#" + results[0] + "#/d#</a> <a href='javascript:void(0);' onclick='folding(" + str(fol_num) + ");'>[X]</a> " + namu[i + 1] + " \
+                                        </div>", data, 1)
                 else:
-                    data = re.sub("\[\*([^\s]*)(?:\s(((?!\[|\]).)*))?\]",   "<sup> \
-                                                                                <a href='javascript:void(0);' id='rfn-" + str(a) + "'>[" + results[0] + "]</a> \
-                                                                            </sup>", data, 1)
+                    data = pop_re.sub("<sup> \
+                                            <a href='javascript:void(0);' id='rfn-" + str(a) + "'>#d#" + results[0] + "#/d#</a> \
+                                        </sup>", data, 1)
             else:
                 if(results[0]):                
                     namu += [results[0]]
                     namu += [results[1]]
 
                     tou += "<span id='footnote-list'><a href='#rfn-" + str(a) + "' id='fn-" + str(a) + "'>[" + results[0] + "]</a> " + results[1] + "</span><br>"
-                    data = re.sub("\[\*([^\s]*)(?:\s(((?!\[|\]).)*))?\]",   "<sup> \
-                                                                                <a href='javascript:void(0);' onclick='folding(" + str(fol_num) + ");' id='rfn-" + str(a) + "'>[" + results[0] + "]</a> \
-                                                                            </sup> \
-                                                                            <div class='popup' style='display: none;' id='folding_" + str(fol_num) + "'> \
-                                                                                <a onclick='folding(" + str(fol_num) + ");' href='#fn-" + str(a) + "'>[" + results[0] + "]</a> <a href='javascript:void(0);' onclick='folding(" + str(fol_num) + ");'>[X]</a> " + results[1] + " \
-                                                                            </div>", data, 1)     
+                    data = pop_re.sub("<sup> \
+                                            <a href='javascript:void(0);' onclick='folding(" + str(fol_num) + ");' id='rfn-" + str(a) + "'>#d#" + results[0] + "#/d#</a> \
+                                        </sup> \
+                                        <div class='popup' style='display: none;' id='folding_" + str(fol_num) + "'> \
+                                            <a onclick='folding(" + str(fol_num) + ");' href='#fn-" + str(a) + "'>#d#" + results[0] + "#/d#</a> <a href='javascript:void(0);' onclick='folding(" + str(fol_num) + ");'>#d#X#/d#</a> " + results[1] + " \
+                                        </div>", data, 1)     
                 else:                    
                     tou += "<span id='footnote-list'><a href='#rfn-" + str(a) + "' id='fn-" + str(a) + "'>[" + str(a) + "]</a> " + results[1] + "</span><br>"
-                    data = re.sub("\[\*([^\s]*)(?:\s(((?!\[|\]).)*))?\]",   '<sup> \
-                                                                                <a href="javascript:void(0);" onclick="folding(' + str(fol_num) + ');" id="rfn-' + str(a) + '">[' + str(a) + ']</a> \
-                                                                            </sup> \
-                                                                            <div class="popup" style="display: none;" id="folding_' + str(fol_num) + '"> \
-                                                                                <a onclick="folding(' + str(fol_num) + ');" href="#fn-' + str(a) + '">[' + str(a) + ']</a> <a href="javascript:void(0);" onclick="folding(' + str(fol_num) + ');">[X]</a> ' + results[1] + ' \
-                                                                            </div>', data, 1)
-
+                    data = pop_re.sub('<sup> \
+                                            <a href="javascript:void(0);" onclick="folding(' + str(fol_num) + ');" id="rfn-' + str(a) + '">#d#' + str(a) + '#/d#</a> \
+                                        </sup> \
+                                        <div class="popup" style="display: none;" id="folding_' + str(fol_num) + '"> \
+                                            <a onclick="folding(' + str(fol_num) + ');" href="#fn-' + str(a) + '">#d#' + str(a) + '#/d#</a> <a href="javascript:void(0);" onclick="folding(' + str(fol_num) + ');">#d#X#/d#</a> ' + results[1] + ' \
+                                        </div>', data, 1)
                 a += 1
 
             fol_num += 2
@@ -864,8 +862,12 @@ def namumark(title, data, num, in_c):
 
             if(tou == "<hr style='margin-top: 30px;' id='footnote'><div><br></div>"):
                 tou = ""
+            else:
+                tou = re.sub('#d#(?P<in>(?:(?!#\/d#).)*)#\/d#', '[\g<in>]', tou)
 
             break
+            
+    data = re.sub('#d#(?P<in>(?:(?!#\/d#).)*)#\/d#', '[\g<in>]', data)
     
     data = re.sub("\[각주\](?:(?:<br>| |\r|\n)+)?$", "", data)
     data = re.sub("(?:(?:<br>| |\r|\n)+)$", "", data)