Quellcode durchsuchen

render pass stage 1

잉여개발기 (SPDV) vor 3 Jahren
Ursprung
Commit
b4d2f2eb94
3 geänderte Dateien mit 114 neuen und 70 gelöschten Zeilen
  1. 1 1
      route/tool/func.py
  2. 70 31
      route/tool/func_render_namumark.py
  3. 43 38
      views/main_css/css/main.css

+ 1 - 1
route/tool/func.py

@@ -1278,7 +1278,7 @@ def render_set(doc_name = '', doc_data = '', data_type = 'view', data_in = '', d
                     if acl_check(include_data[1], 'render') == 0:
                         include_regex = re.compile('<div id="' + include_data[0] + '"><\/div>')
                         
-                        include_data_render = class_do_render(conn, render_lang_data).do_render(include_data[1], include_data[2], data_type, include_data[0] + '_' + data_in)
+                        include_data_render = class_do_render(conn, render_lang_data).do_render(include_data[1], include_data[2], data_type, include_data[0] + data_in)
                         include_data_render[0] = '<div id="' + include_data[0] + '">' + include_data_render[0] + '</div>'
 
                         get_class_render[0] = re.sub(include_regex, include_data_render[0], get_class_render[0])

+ 70 - 31
route/tool/func_render_namumark.py

@@ -7,7 +7,7 @@ class class_do_render_namumark:
         self.doc_data = doc_data
         self.doc_name = doc_name
         self.doc_include = doc_include
-        
+
         self.lang_data = lang_data
 
         self.data_temp_storage = {}
@@ -97,9 +97,6 @@ class class_do_render_namumark:
         return data
 
     def get_tool_footnote_make(self):
-        if self.doc_name != '':
-            return ''
-
         data = ''
         for for_a in self.data_footnote:
             if data == '':
@@ -111,9 +108,9 @@ class class_do_render_namumark:
                 data += '(' + for_a + ') '
 
                 for for_b in self.data_footnote[for_a]['list']:
-                    data += '<sup><a href="#rfn-' + for_b + '">(' + for_b + ')</a></sup> '
+                    data += '<sup><a id="' + self.doc_include + 'fn_' + for_b + '" href="#' + self.doc_include + 'rfn_' + for_b + '">(' + for_b + ')</a></sup> '
             else:
-                data += '<a href="#rfn-' + self.data_footnote[for_a]['list'][0] + '">(' + for_a + ') </a> '
+                data += '<a id="' + self.doc_include + 'fn_' + self.data_footnote[for_a]['list'][0] + '" href="#' + self.doc_include + 'rfn_' + self.data_footnote[for_a]['list'][0] + '">(' + for_a + ') </a> '
 
             data += self.data_footnote[for_a]['data']
 
@@ -583,6 +580,9 @@ class class_do_render_namumark:
                                 elif data_sub[0] == 'bgcolor':
                                     file_bgcolor = data_sub[1]
 
+                    link_main_org = ''
+                    link_sub = link_main
+
                     link_out_regex = r'^(외부|out):'
                     link_in_regex = r'^(파일|file):'
                     if re.search(link_out_regex, link_main):
@@ -591,11 +591,20 @@ class class_do_render_namumark:
                         link_main = self.get_tool_data_restore(link_main, do_type = 'slash')
                         link_main = html.unescape(link_main)
                         link_main = re.sub(r'"', '&quot;', link_main)
+                        
+                        link_exist = ''
                     else:
                         link_main = re.sub(link_in_regex, '', link_main)
 
                         link_main = self.get_tool_data_restore(link_main, do_type = 'slash')
                         link_main = html.unescape(link_main)
+
+                        self.curs.execute(db_change("select title from data where title = ?"), [link_main])
+                        db_data = self.curs.fetchall()
+                        if db_data:
+                            link_exist = ''
+                        else:
+                            link_exist = 'opennamu_not_exist_link'
                         
                         link_extension_regex = r'\.([^.]+)$'
                         link_extension = re.search(link_extension_regex, link_main)
@@ -605,6 +614,7 @@ class class_do_render_namumark:
                             link_extension = 'jpg'
 
                         link_main = re.sub(link_extension_regex, '', link_main)
+                        link_main_org = link_main
 
                         link_main = '/image/' + url_pas(sha224_replace(link_main)) + '.' + link_extension
 
@@ -612,9 +622,14 @@ class class_do_render_namumark:
                     if file_align == 'center':
                         file_end = '<div style="text-align:center;">' + file_end + '</div>'
 
-                    data_name = self.get_tool_data_storage(file_end, '', link_data_full)
+                    if link_exist != '':
+                        data_name = self.get_tool_data_storage('<a class="' + link_exist + '" href="/upload?name=' + url_pas(link_main_org) + '">', '</a>', link_data_full)
+
+                        self.render_data = re.sub(link_regex, '<' + data_name + '>' + link_sub + '</' + data_name + '>', self.render_data, 1)
+                    else:
+                        data_name = self.get_tool_data_storage(file_end, '', link_data_full)
 
-                    self.render_data = re.sub(link_regex, '<' + data_name + '></' + data_name + '>', self.render_data, 1)
+                        self.render_data = re.sub(link_regex, '<' + data_name + '></' + data_name + '>', self.render_data, 1)
                 # category
                 elif re.search(r'^(분류|category):', link_main):
                     link_main = re.sub(r'^(분류|category):', '', link_main)
@@ -631,15 +646,23 @@ class class_do_render_namumark:
                     if re.search(r'#blur$', link_main):
                         link_main = re.sub(r'#blur$', '', link_main)
 
-                        category_blur = 'class="opennamu_category_blur"'
+                        category_blur = 'opennamu_category_blur'
                     
                     link_sub = link_main
 
                     link_main = self.get_tool_data_restore(link_main, do_type = 'slash')
                     link_main = html.unescape(link_main)
+
+                    self.curs.execute(db_change("select title from data where title = ?"), [link_main])
+                    db_data = self.curs.fetchall()
+                    if db_data:
+                        link_exist = ''
+                    else:
+                        link_exist = 'opennamu_not_exist_link'
+
                     link_main = url_pas(link_main)
 
-                    self.data_category += '<a ' + category_blur + ' href="/w/' + link_main + '">' + link_sub + '</a>'
+                    self.data_category += '<a class="' + category_blur + ' ' + link_exist + '" href="/w/' + link_main + '">' + link_sub + '</a>'
 
                     self.render_data = re.sub(link_regex, '', self.render_data, 1)
                 # out link
@@ -683,6 +706,18 @@ class class_do_render_namumark:
                     # main link fix
                     link_main = self.get_tool_data_restore(link_main, do_type = 'slash')
                     link_main = html.unescape(link_main)
+
+                    self.curs.execute(db_change("select title from data where title = ?"), [link_main])
+                    db_data = self.curs.fetchall()
+                    if db_data:
+                        link_exist = ''
+                    else:
+                        link_exist = 'opennamu_not_exist_link'
+
+                    link_same = ''
+                    if link_main == self.doc_name and self.doc_include == '':
+                        link_same = 'opennamu_same_link'
+
                     link_main = url_pas(link_main)
 
                     if link_main != '':
@@ -696,7 +731,7 @@ class class_do_render_namumark:
                         link_sub = ''
                         link_sub_storage = link_main_org
 
-                    data_name = self.get_tool_data_storage('<a href="' + link_main + link_data_sharp + '">' + link_sub_storage, '</a>', link_data_full)
+                    data_name = self.get_tool_data_storage('<a class="' + link_exist + ' ' + link_same + '" href="' + link_main + link_data_sharp + '">' + link_sub_storage, '</a>', link_data_full)
 
                     self.render_data = re.sub(link_regex, '<' + data_name + '>' + link_sub + '</' + data_name + '>', self.render_data, 1)
 
@@ -801,32 +836,34 @@ class class_do_render_namumark:
                 include_name = self.get_tool_data_restore(include_name, do_type = 'slash')
                 include_name = html.unescape(include_name)
 
-                # include link func
-                include_link = ''
-                if flask.request.cookies.get('main_css_include_link', '') == '1':
-                    include_link = '<div><a href="/w/' + url_pas(include_name) + '">(' + include_name_org + ')</a></div>'
-
                 # load include db data
                 self.curs.execute(db_change("select data from data where title = ?"), [include_name])
                 db_data = self.curs.fetchall()
                 if db_data:
+                    # include link func
+                    include_link = ''
+                    if flask.request.cookies.get('main_css_include_link', '') == '1':
+                        include_link = '<div><a href="/w/' + url_pas(include_name) + '">(' + include_name_org + ')</a></div>'
+
                     include_data = db_data[0][0]
-                else:
-                    include_data = ''
 
-                # parameter replace
-                include_data = re.sub(r'(\\+)?@([^@=]+)=((?:\\@|[^@])+)@', do_render_include_default_sub, include_data)
-                include_data = re.sub(r'(\\+)?@([^@=]+)@', do_render_include_default_sub, include_data)
+                    # parameter replace
+                    include_data = re.sub(r'(\\+)?@([^@=]+)=((?:\\@|[^@])+)@', do_render_include_default_sub, include_data)
+                    include_data = re.sub(r'(\\+)?@([^@=]+)@', do_render_include_default_sub, include_data)
 
-                # remove include
-                include_data = re.sub(include_regex, '', include_data)
+                    # remove include
+                    include_data = re.sub(include_regex, '', include_data)
 
-                self.data_include += [['opennamu_include_' + str(include_num), include_name, include_data]]
+                    self.data_include += [['opennamu_include_' + str(include_num), include_name, include_data]]
 
-                data_name = self.get_tool_data_storage('' + \
-                    include_link + \
-                    '<div id="opennamu_include_' + str(include_num) + '"></div>' + \
-                '', '', match_org)
+                    data_name = self.get_tool_data_storage('' + \
+                        include_link + \
+                        '<div id="opennamu_include_' + str(include_num) + '"></div>' + \
+                    '', '', match_org)
+                else:
+                    include_link = '<div><a class="opennamu_not_exist_link" href="/w/' + url_pas(include_name) + '">(' + include_name_org + ')</a></div>'
+
+                    data_name = self.get_tool_data_storage(include_link, '', match_org)
 
                 self.render_data = re.sub(include_regex, '<' + data_name + '></' + data_name + '>', self.render_data, 1)
 
@@ -875,7 +912,7 @@ class class_do_render_namumark:
                         self.data_footnote[footnote_name]['list'] += [str(footnote_num)]
                         footnote_first = self.data_footnote[footnote_name]['list'][0]
                     
-                        data_name = self.get_tool_data_storage('<sup><a id="rfn-' + str(footnote_num) + '" href="#fn-' + footnote_first + '">(' + footnote_name + ' (' + str(footnote_num) + ')' + ')</a></sup>', '', footnote_data_org)
+                        data_name = self.get_tool_data_storage('<sup><a id="' + self.doc_include + 'rfn_' + str(footnote_num) + '" href="#' + self.doc_include + 'fn_' + footnote_first + '">(' + footnote_name + ' (' + str(footnote_num) + ')' + ')</a></sup>', '', footnote_data_org)
 
                         self.render_data = re.sub(footnote_regex, '<' + data_name + '></' + data_name + '>', self.render_data, 1)
                     else:
@@ -883,7 +920,7 @@ class class_do_render_namumark:
                         self.data_footnote[footnote_name]['list'] = [str(footnote_num)]
                         self.data_footnote[footnote_name]['data'] = footnote_text_data
 
-                        data_name = self.get_tool_data_storage('<sup><a id="rfn-' + str(footnote_num) + '" href="#fn-' + str(footnote_num) + '">(' + footnote_name + footnote_name_add + ')</a></sup>', '', footnote_data_org)
+                        data_name = self.get_tool_data_storage('<sup><a id="' + self.doc_include + 'rfn_' + str(footnote_num) + '" href="#' + self.doc_include + 'fn_' + str(footnote_num) + '">(' + footnote_name + footnote_name_add + ')</a></sup>', '', footnote_data_org)
 
                         self.render_data = re.sub(footnote_regex, '<' + data_name + '></' + data_name + '>', self.render_data, 1)
 
@@ -894,7 +931,7 @@ class class_do_render_namumark:
 
     def do_render_last(self):
         # add category
-        if self.doc_name == '':
+        if self.doc_include == '':
             if self.data_category != '':
                 data_name = self.get_tool_data_storage(self.data_category, '</div>', '')
 
@@ -921,6 +958,8 @@ class class_do_render_namumark:
         # <render_n> restore
         self.render_data = self.get_tool_data_restore(self.render_data)
 
+        self.render_data = '<div class="opennamu_render_complete">' + self.render_data + '</div>'
+
     def __call__(self):
         self.do_render_include_default()
         self.do_render_slash()

+ 43 - 38
views/main_css/css/main.css

@@ -33,42 +33,7 @@ td {
     padding: 8px 10px;
 }
 
-/* 링크 */
-a {
-    color: dodgerblue;
-    
-    text-decoration: none;
-}
-
-#not_thing {
-    color: red;
-}
-
-#inside, #out_link, #out_link::before, .opennamu_link_out {
-    color: green;
-}
-
-#out_link::before, .opennamu_link_out::before {
-    content: '🅴';
-    
-    font-weight: lighter;
-    
-    background: transparent;
-}
-
-#include_link {
-    display: none;
-}
-
-.hidden_link {
-    filter: blur(3px);
-}
-
-.hidden_link:hover {
-    filter: none;
-}
-
-/* 리스트 */
+/* list */
 .inside_ul li {
     margin-left: 20px;
 
@@ -76,7 +41,7 @@ a {
     margin-bottom: 5px;
 }
 
-/* 토론 관련 */
+/* thread */
 .opennamu_comment {
     width: 100%;
 }
@@ -123,6 +88,37 @@ a {
 }
 
 /* render */
+/* - link */
+a {
+    color: dodgerblue;
+    
+    text-decoration: none;
+}
+
+#not_thing, .opennamu_not_exist_link {
+    color: red;
+}
+
+.opennamu_same_link {
+    font-weight: bold;
+}
+
+#inside, #out_link, .opennamu_link_out {
+    color: green;
+}
+
+#out_link::before, .opennamu_link_out::before {
+    content: '🅴';
+    
+    font-weight: lighter;
+    
+    background: transparent;
+}
+
+#include_link {
+    display: none;
+}
+
 /* - toc */
 #toc, .opennamu_TOC {
     border: 1px solid gainsboro;
@@ -158,6 +154,15 @@ a {
 #cate {
     margin-top: 20px;
 }
+
+.hidden_link {
+    filter: blur(3px);
+}
+
+.hidden_link:hover {
+    filter: none;
+}
+
 /* - footnote */
 .opennamu_footnote {
     border-top: 1px solid gainsboro;
@@ -207,7 +212,7 @@ hr {
     border-top: 1px solid gainsboro;
 }
 
-.render_content_load, .render_content {
+.render_content_load, .render_content, .opennamu_render_complete {
     white-space: pre-wrap;
     
     line-break: anywhere;