Browse Source

Merge pull request #2487 from openNAMU/dev

버그 확인용
잉여개발기 1 year ago
parent
commit
920199de37

+ 2 - 0
route/main_setting_external.py

@@ -98,6 +98,8 @@ def main_setting_external():
                         <h3>''' + get_lang(conn, 'smtp_setting') + '''</h3>
                         <h3>''' + get_lang(conn, 'smtp_setting') + '''</h3>
                         <a href="https://support.google.com/mail/answer/7126229">(Google)</a>
                         <a href="https://support.google.com/mail/answer/7126229">(Google)</a>
                         <hr class="main_hr">
                         <hr class="main_hr">
+                        <a href="/setting/email_send">(''' + get_lang(conn, 'test') + ''')</a>
+                        <hr class="main_hr">
 
 
                         <span>''' + get_lang(conn, 'smtp_server') + '''</span>
                         <span>''' + get_lang(conn, 'smtp_server') + '''</span>
                         <hr class="main_hr">
                         <hr class="main_hr">

+ 4 - 7
route/tool/func.py

@@ -149,9 +149,7 @@ def python_to_golang_sync(func_name, other_set = {}):
             res = requests.post('http://localhost:' + db_data + '/', data = other_set)
             res = requests.post('http://localhost:' + db_data + '/', data = other_set)
             data = res.text
             data = res.text
 
 
-            if "database is locked" == data:
-                pass
-            elif "error" == data:
+            if "error" == data:
                 raise
                 raise
             else:
             else:
                 return data
                 return data
@@ -174,9 +172,7 @@ async def python_to_golang(func_name, other_set = {}):
                 async with session.post('http://localhost:' + db_data + '/', data = other_set) as res:
                 async with session.post('http://localhost:' + db_data + '/', data = other_set) as res:
                     data = await res.text()
                     data = await res.text()
 
 
-                    if "database is locked" == data:
-                        pass
-                    elif "error" == data:
+                    if "error" == data:
                         raise
                         raise
                     else:
                     else:
                         return data
                         return data
@@ -1243,7 +1239,7 @@ def skin_check(conn, set_n = 0):
         return skin
         return skin
     
     
 def cache_v():
 def cache_v():
-    return '.cache_v283'
+    return '.cache_v284'
 
 
 def wiki_css(data):
 def wiki_css(data):
     with class_temp_db() as m_conn:
     with class_temp_db() as m_conn:
@@ -1585,6 +1581,7 @@ def render_set(conn, doc_name = '', doc_data = '', data_type = 'view', markup =
 
 
                 .opennamu_render_complete td {
                 .opennamu_render_complete td {
                     padding: 5px 10px !important;
                     padding: 5px 10px !important;
+                    word-break: break-all;
                 }
                 }
 
 
                 .opennamu_render_complete summary {
                 .opennamu_render_complete summary {

+ 11 - 3
route/tool/func_render_namumark.py

@@ -163,7 +163,7 @@ class class_do_render_namumark:
             if data == '':
             if data == '':
                 data += '<div class="opennamu_footnote">'
                 data += '<div class="opennamu_footnote">'
             else:
             else:
-                data += '<br>'
+                data += '<hr class="main_hr">'
 
 
             if len(self.data_footnote[for_a]['list']) > 1:
             if len(self.data_footnote[for_a]['list']) > 1:
                 data += '(' + for_a + ') '
                 data += '(' + for_a + ') '
@@ -1707,7 +1707,13 @@ class class_do_render_namumark:
                     else:
                     else:
                         do_any_thing += '&lt;' + table_parameter + '&gt;'
                         do_any_thing += '&lt;' + table_parameter + '&gt;'
                 elif len(table_parameter_split) == 1:
                 elif len(table_parameter_split) == 1:
-                    if table_parameter == 'nopad':
+                    if table_parameter == 'keepall':
+                        table_parameter_all['td'] += 'word-break: keep-all !important;'
+                    elif table_parameter == 'rowkeepall':
+                        table_parameter_all['tr'] += 'word-break: keep-all !important;'
+                    elif table_parameter == 'colkeepall':
+                        table_parameter_all['col'] += 'word-break: keep-all !important;'
+                    elif table_parameter == 'nopad':
                         table_parameter_all['td'] += 'padding: 0 !important;'
                         table_parameter_all['td'] += 'padding: 0 !important;'
                     elif re.search(r'^-[0-9]+$', table_parameter):
                     elif re.search(r'^-[0-9]+$', table_parameter):
                         table_colspan_auto = 0
                         table_colspan_auto = 0
@@ -1882,7 +1888,7 @@ class class_do_render_namumark:
                             self.render_data = re.sub(middle_regex, lambda x : middle_data_org, self.render_data, 1)
                             self.render_data = re.sub(middle_regex, lambda x : middle_data_org, self.render_data, 1)
                             continue
                             continue
 
 
-                        wiki_data = re.sub(r'^#!wiki +', '', middle_data)
+                        wiki_data = re.sub(r'^#!wiki *', '', middle_data)
 
 
                         wiki_regex = re.compile('^(?:(?:style=(&quot;(?:(?:(?!&quot;).)*)&quot;|&#x27;(?:(?:(?!&#x27;).)*)&#x27;)))(?:\n| +)', re.I)
                         wiki_regex = re.compile('^(?:(?:style=(&quot;(?:(?:(?!&quot;).)*)&quot;|&#x27;(?:(?:(?!&#x27;).)*)&#x27;)))(?:\n| +)', re.I)
                         wiki_dark_regex = re.compile('^(?:(?:dark-style=(&quot;(?:(?:(?!&quot;).)*)&quot;|&#x27;(?:(?:(?!&#x27;).)*)&#x27;)))(?:\n| +)', re.I)
                         wiki_dark_regex = re.compile('^(?:(?:dark-style=(&quot;(?:(?:(?!&quot;).)*)&quot;|&#x27;(?:(?:(?!&#x27;).)*)&#x27;)))(?:\n| +)', re.I)
@@ -2154,6 +2160,8 @@ class class_do_render_namumark:
                 data = re.sub(inter_data_regex, self.replace_sub, data)
                 data = re.sub(inter_data_regex, self.replace_sub, data)
                 
                 
                 data = self.do_inter_render(data, self.doc_set['doc_include'] + 'opennamu_inter_render_' + str(self.inter_count))
                 data = self.do_inter_render(data, self.doc_set['doc_include'] + 'opennamu_inter_render_' + str(self.inter_count))
+                data = re.sub(r'\|\|', '<no_td>', data)
+                
                 self.inter_count += 1
                 self.inter_count += 1
 
 
                 return data
                 return data

+ 1 - 1
route/view_w.py

@@ -181,7 +181,7 @@ async def view_w(name = 'Test', do_type = ''):
             name_view = name
             name_view = name
 
 
         doc_data = json.loads((await api_w_raw(name)).data)
         doc_data = json.loads((await api_w_raw(name)).data)
-        if doc_data["response"] != "not exist":
+        if doc_data["response"] == "ok":
             render_data = json.loads((await api_w_render(name, request_method = 'POST', request_data = {
             render_data = json.loads((await api_w_render(name, request_method = 'POST', request_data = {
                 'name' : name,
                 'name' : name,
                 'data' : doc_data["data"]
                 'data' : doc_data["data"]

+ 10 - 8
route/view_w_raw.py

@@ -1,6 +1,8 @@
 from .tool.func import *
 from .tool.func import *
 
 
-def view_w_raw(name = '', rev = '', doc_acl = ''):
+from .go_api_w_raw import api_w_raw
+
+async def view_w_raw(name = '', rev = '', doc_acl = ''):
     with get_db_connect() as conn:
     with get_db_connect() as conn:
         rev_str = str(rev)
         rev_str = str(rev)
 
 
@@ -12,16 +14,16 @@ def view_w_raw(name = '', rev = '', doc_acl = ''):
         else:
         else:
             menu = [['w/' + url_pas(name), get_lang(conn, 'return')]]
             menu = [['w/' + url_pas(name), get_lang(conn, 'return')]]
 
 
+        data = json.loads((await api_w_raw(name, rev)).data)
+        if data["response"] == "ok":
+            data_in = data["data"]
+        else:
+            data_in = ''
+
         p_data = ''
         p_data = ''
         p_data += '''
         p_data += '''
             <div id="opennamu_preview_area">
             <div id="opennamu_preview_area">
-                <script defer src="/views/main_css/js/route/w_raw.js''' + cache_v() + '''"></script>
-                <textarea id="opennamu_editor_doc_name" style="display: none;">''' + html.escape(name) + '''</textarea>
-                <textarea id="opennamu_editor_rev" style="display: none;">''' + rev_str + '''</textarea>
-                <button id="opennamu_preview_button" type="button" onclick="opennamu_w_raw_preview();">''' + get_lang(conn, 'preview') + '''</button>
-                <hr class="main_hr">
-                <textarea readonly id="opennamu_edit_textarea" class="opennamu_textarea_500"></textarea>
-                <script>window.addEventListener("DOMContentLoaded", function() { opennamu_w_raw(); });</script>
+                <textarea readonly id="opennamu_edit_textarea" class="opennamu_textarea_500">''' + html.escape(data_in) + '''</textarea>
             </div>
             </div>
         '''
         '''
         
         

+ 2 - 2
version.json

@@ -1,6 +1,6 @@
 {
 {
-    "r_ver" : "v3.5.1-v24",
+    "r_ver" : "v3.5.1-v28",
     "c_ver" : "20241202",
     "c_ver" : "20241202",
     "s_ver" : "20240426",
     "s_ver" : "20240426",
-    "bin_link" : "https://github.com/openNAMU/GopenNAMU/releases/download/v2025-01-16-v1/"
+    "bin_link" : "https://github.com/openNAMU/GopenNAMU/releases/download/v2025-02-25-v1/"
 }
 }

+ 9 - 9
views/main_css/js/func/render.js

@@ -118,7 +118,7 @@ function opennamu_do_render_html(name = '') {
                 if(['b', 'i', 's', 'del', 'strong', 'bold', 'em', 'sub', 'sup'].includes(t_data[key])) {
                 if(['b', 'i', 's', 'del', 'strong', 'bold', 'em', 'sub', 'sup'].includes(t_data[key])) {
                     return '<' + t_data[key] + '>' + in_data_2 + '</' + t_data[key] + '>'
                     return '<' + t_data[key] + '>' + in_data_2 + '</' + t_data[key] + '>'
                 } else if(t_data[key] === 'div' || t_data[key] === 'span') {
                 } else if(t_data[key] === 'div' || t_data[key] === 'span') {
-                    let style_data = in_data.match(/ style=['"]([^'"]*)['"]/);
+                    let style_data = in_data?.match(/ style=['"]([^'"]*)['"]/);
                     if(style_data) {
                     if(style_data) {
                         style_data = style_data[1];
                         style_data = style_data[1];
 
 
@@ -140,7 +140,7 @@ function opennamu_do_render_html(name = '') {
 
 
                     return '<' + t_data[key] + ' style="' + style_data + '">' + in_data_2 + '</' + t_data[key] + '>';
                     return '<' + t_data[key] + ' style="' + style_data + '">' + in_data_2 + '</' + t_data[key] + '>';
                 } else if(t_data[key] === 'a') {
                 } else if(t_data[key] === 'a') {
-                    let link_data = in_data.match(/ href=['"]([^'"]*)['"]/);
+                    let link_data = in_data?.match(/ href=['"]([^'"]*)['"]/);
                     if(link_data) {
                     if(link_data) {
                         link_data = link_data[1].replace(/^javascript:/ig, '');
                         link_data = link_data[1].replace(/^javascript:/ig, '');
                     } else {
                     } else {
@@ -149,7 +149,7 @@ function opennamu_do_render_html(name = '') {
 
 
                     return '<' + t_data[key] + ' class="opennamu_link_out" href="' + link_data + '">' + in_data_2 + '</' + t_data[key] + '>';
                     return '<' + t_data[key] + ' class="opennamu_link_out" href="' + link_data + '">' + in_data_2 + '</' + t_data[key] + '>';
                 } else if(t_data[key] === 'iframe') {
                 } else if(t_data[key] === 'iframe') {
-                    let src_data = in_data.match(/ src=['"]([^'"]*)['"]/);
+                    let src_data = in_data?.match(/ src=['"]([^'"]*)['"]/);
                     if(src_data) {
                     if(src_data) {
                         src_data = src_data[1];
                         src_data = src_data[1];
 
 
@@ -165,14 +165,14 @@ function opennamu_do_render_html(name = '') {
                         src_data = '';
                         src_data = '';
                     }
                     }
 
 
-                    let width_data = in_data.match(/ width=['"]([^'"]*)['"]/);
+                    let width_data = in_data?.match(/ width=['"]([^'"]*)['"]/);
                     if(width_data) {
                     if(width_data) {
                         width_data = width_data[1];
                         width_data = width_data[1];
                     } else {
                     } else {
                         width_data = '';
                         width_data = '';
                     }
                     }
 
 
-                    let height_data = in_data.match(/ height=['"]([^'"]*)['"]/);
+                    let height_data = in_data?.match(/ height=['"]([^'"]*)['"]/);
                     if(height_data) {
                     if(height_data) {
                         height_data = height_data[1];
                         height_data = height_data[1];
                     } else {
                     } else {
@@ -181,21 +181,21 @@ function opennamu_do_render_html(name = '') {
 
 
                     return '<' + t_data[key] + ' src="' + src_data + '" width="' + width_data + '" height="' + height_data + '" allowfullscreen frameborder="0">' + in_data_2 + '</' + t_data[key] + '>';
                     return '<' + t_data[key] + ' src="' + src_data + '" width="' + width_data + '" height="' + height_data + '" allowfullscreen frameborder="0">' + in_data_2 + '</' + t_data[key] + '>';
                 } else {
                 } else {
-                    let src_data = in_data.match(/ src=['"]([^'"]*)['"]/);
+                    let src_data = in_data?.match(/ src=['"]([^'"]*)['"]/);
                     if(src_data) {
                     if(src_data) {
                         src_data = src_data[1];
                         src_data = src_data[1];
                     } else {
                     } else {
                         src_data = '';
                         src_data = '';
                     }
                     }
 
 
-                    let width_data = in_data.match(/ width=['"]([^'"]*)['"]/);
+                    let width_data = in_data?.match(/ width=['"]([^'"]*)['"]/);
                     if(width_data) {
                     if(width_data) {
                         width_data = width_data[1];
                         width_data = width_data[1];
                     } else {
                     } else {
                         width_data = '';
                         width_data = '';
                     }
                     }
 
 
-                    let height_data = in_data.match(/ height=['"]([^'"]*)['"]/);
+                    let height_data = in_data?.match(/ height=['"]([^'"]*)['"]/);
                     if(height_data) {
                     if(height_data) {
                         height_data = height_data[1];
                         height_data = height_data[1];
                     } else {
                     } else {
@@ -335,4 +335,4 @@ function opennamu_do_toc() {
     data.innerHTML = data.innerHTML.replace(/<div class="opennamu_toc"><\/div>/g, function(match) {
     data.innerHTML = data.innerHTML.replace(/<div class="opennamu_toc"><\/div>/g, function(match) {
         return '<div class="opennamu_TOC" id="toc"><div class="opennamu_TOC_title">TOC</div><br>' + toc_html + '</div>';
         return '<div class="opennamu_TOC" id="toc"><div class="opennamu_TOC_title">TOC</div><br>' + toc_html + '</div>';
     });
     });
-}
+}

+ 6 - 1
views/main_css/js/route/setting_404_page.js

@@ -71,7 +71,12 @@ function opennamu_setting_404_page() {
         data_html += '</select>';
         data_html += '</select>';
         data_html += '<hr class="main_hr">';
         data_html += '<hr class="main_hr">';
 
 
-        data_html += '<textarea class="opennamu_textarea_500" id="opennamu_setting_404_page_textarea">' + data[2]['data'][0][0] + '</textarea>';
+        let set_data = '';
+        if(data[2]['data'].length > 0) {
+            set_data = data[2]['data'][0][0];
+        }
+
+        data_html += '<textarea class="opennamu_textarea_500" id="opennamu_setting_404_page_textarea">' + set_data + '</textarea>';
         data_html += '<hr class="main_hr">';
         data_html += '<hr class="main_hr">';
 
 
         data_html += '<button id="opennamu_save_button" onclick="opennamu_setting_404_page_post();">' + data[0]['data'][0] + '</button> ';
         data_html += '<button id="opennamu_save_button" onclick="opennamu_setting_404_page_post();">' + data[0]['data'][0] + '</button> ';

+ 0 - 48
views/main_css/js/route/w_raw.js

@@ -1,48 +0,0 @@
-"use strict";
-
-function opennamu_w_raw(render = '') {
-    let name = "test";
-    if(document.getElementById('opennamu_editor_doc_name')) {
-        name = opennamu_xss_filter_decode(document.getElementById('opennamu_editor_doc_name').innerHTML);
-    }
-
-    let rev = "";
-    if(document.getElementById("opennamu_editor_rev")) {
-        rev = document.getElementById("opennamu_editor_rev").innerHTML;
-    }
-
-    let url = "";
-    if(rev !== '') {
-        url = "/api/raw_rev/" + rev + "/" + opennamu_do_url_encode(name);
-    } else {
-        url = "/api/raw/" + opennamu_do_url_encode(name);
-    }
-
-    fetch(url).then(function(res) {
-        return res.json();
-    }).then(function(data) {
-        if(document.getElementById("opennamu_edit_textarea")) {
-            if(data["data"]) {
-                document.getElementById("opennamu_edit_textarea").value = data["data"];
-            }
-
-            if(render === 'do') {
-                opennamu_w_raw_preview();
-            }
-        }
-    });
-}
-
-function opennamu_w_raw_preview() {
-    let name = "test";
-    if(document.getElementById('opennamu_editor_doc_name')) {
-        name = opennamu_xss_filter_decode(document.getElementById('opennamu_editor_doc_name').innerHTML);
-    }
-
-    let data = "";
-    if(document.getElementById('opennamu_edit_textarea')) {
-        data = document.getElementById('opennamu_edit_textarea').value;
-    }
-
-    opennamu_do_render('opennamu_preview_area', data, name);
-}