2du 5 лет назад
Родитель
Сommit
f7346db482

+ 9 - 1
lang/en-US.json

@@ -241,7 +241,14 @@
                 "main_head" : "Global <HEAD>",
                 "main_body" : "Top of body",
                 "main_bottom_body" : "Bottom of body",
+                "ext_api_req_set" : "External API required setting",
             "_comment_2.2.2_" : "Main",
+                "basic_set" : "Basic settings",
+                "design_set" : "Design-related settings",
+                "login_set" : "Login-related settings",
+                "server_set" : "Server-related settings",
+                "edit_set" : "Edit-related settings",
+    
                 "wiki_name" : "Wiki[s] name",
                 "wiki_logo" : "Wiki[s] logo",
                 "main_page" : "Main page",
@@ -278,7 +285,7 @@
                 "edit_help" : "Editing textarea phrase",
                 "upload_help" : "File upload phrase",
                 "upload_default" : "File upload other Default",
-            "_comment_2.2.4_" : "Google",
+            "_comment_2.2.4_" : "Ext_API",
                 "recaptcha" : "reCAPTCHA",
                 "smtp_setting" : "Email SMTP setting",
                 "smtp_server" : "SMTP Server address",
@@ -286,6 +293,7 @@
                 "smtp_port" : "SMTP Server port",
                 "smtp_username" : "SMTP Username",
                 "smtp_password" : "SMTP Password",
+                "oauth" : "OAuth",
         "_comment_2.3_" : "List",
             "open_discussion_list" : "Open discussion(s) list",
             "discussion_list" : "Discussion(s) list",

+ 8 - 1
lang/ko-KR.json

@@ -391,5 +391,12 @@
     "input_email_error" : "입력 값에 문제가 있습니다.",
     "short_page" : "짧은 문서 목록",
     "long_page" : "긴 문서 목록",
-    "ua_get_off" : "가입자 정보 수집 끄기"
+    "ua_get_off" : "가입자 정보 수집 끄기",
+    "ext_api_req_set" : "외부 API 필요 설정",
+    "oauth" : "OAuth",
+    "basic_set" : "기본 설정",
+    "design_set" : "디자인 관련 설정",
+    "login_set" : "로그인 관련 설정",
+    "server_set" : "서버 관련 설정",
+    "edit_set" : "편집 관련 설정"
 }

+ 3 - 0
route/login_register.py

@@ -121,6 +121,9 @@ def login_register_2(conn):
                     <hr class="main_hr">
                     ''' + approval_question + '''
                     ''' + captcha_get() + '''
+                    <hr class="main_hr">
+                    (Google)
+                    <hr class="main_hr">
                     <button type="submit">''' + load_lang('save') + '''</button>
                     ''' + http_warring() + '''
                 </form>

+ 54 - 45
route/main_setting.py

@@ -8,24 +8,17 @@ def main_setting_2(conn, num, db_set):
 
     if num == 0:
         li_list = [
-            load_lang('main_setting'),
-            load_lang('text_setting'),
-            load_lang('main_head'),
-            load_lang('main_body'),
-            'robots.txt',
-            'Google',
-            load_lang('main_bottom_body'),
-            load_lang('main_acl_setting'),
-            load_lang('wiki_logo')
+            [1, load_lang('main_setting')],
+            [2, load_lang('text_setting')],
+            [5, 'robots.txt'],
+            [6, load_lang('ext_api_req_set')],
+            [3, load_lang('main_head')],
+            [4, load_lang('main_body')],
+            [7, load_lang('main_bottom_body')]
         ]
 
-        x = 0
-        li_data = ''
-
-        for li in li_list:
-            x += 1
-            li_data += '<li><a href="/setting/' + str(x) + '">' + li + '</a></li>'
-
+        li_data = ''.join(['<li><a href="/setting/' + str(li[0]) + '">' + li[1] + '</a></li>' for li in li_list])
+        
         return easy_minify(flask.render_template(skin_check(),
             imp = [load_lang('setting'), wiki_set(), custom(), other2([0, 0])],
             data = '<h2>' + load_lang('list') + '</h2><ul class="inside_ul">' + li_data + '</ul>',
@@ -139,12 +132,13 @@ def main_setting_2(conn, num, db_set):
             return easy_minify(flask.render_template(skin_check(),
                 imp = [load_lang('main_setting'), wiki_set(), custom(), other2([0, 0])],
                 data = '''
-                    <form method="post">
+                    <form method="post" id="main_set_data">
+                        <h2>1. ''' + load_lang('basic_set') + '''</h2>
                         <span>''' + load_lang('wiki_name') + '''</span>
                         <hr class="main_hr">
                         <input name="name" value="''' + html.escape(d_list[0]) + '''">
                         <hr class="main_hr">
-                        <span><a href="/setting/10">(''' + load_lang('wiki_logo') + ''')</a></span>
+                        <span><a href="/setting/9">(''' + load_lang('wiki_logo') + ''')</a></span>
                         <hr class="main_hr">
                         <span>''' + load_lang('main_page') + '''</span>
                         <hr class="main_hr">
@@ -153,35 +147,41 @@ def main_setting_2(conn, num, db_set):
                         <span>''' + load_lang('bottom_text') + ''' (HTML)</span>
                         <hr class="main_hr">
                         <input name="license" value="''' + html.escape(d_list[3]) + '''">
+                        <h2>2. ''' + load_lang('design_set') + '''</h2>
+                        <span>''' + load_lang('wiki_skin') + '''</span>
+                        <hr class="main_hr">
+                        <select name="skin">''' + load_skin(d_list[5] if d_list[5] != '' else 'tenshi') + '''</select>
+                        <h2>3. ''' + load_lang('login_set') + '''</h2>
+                        <input type="checkbox" name="reg" ''' + check_box_div[0] + '''> ''' + load_lang('no_register') + '''
+                        <hr class="main_hr">
+                        <input type="checkbox" name="ip_view" ''' + check_box_div[1] + '''> ''' + load_lang('hide_ip') + '''
                         <hr class="main_hr">
+                        <input type="checkbox" name="email_have" ''' + check_box_div[2] + '''> ''' + \
+                             load_lang('email_required') + ' <a href="/setting/6">(' + load_lang('smtp_setting_required') + ''')</a>
+                        <hr class="main_hr">
+                        <input type="checkbox" name="requires_approval" ''' + check_box_div[3] + '''> ''' + load_lang('requires_approval') + '''
+                        <hr class="main_hr">
+                        <input type="checkbox" name="ua_get" ''' + check_box_div[4] + '''> ''' + load_lang('ua_get_off') + '''
+                        <h2>4. ''' + load_lang('server_set') + '''</h2>
                         <span>''' + load_lang('max_file_size') + ''' (MB)</span>
                         <hr class="main_hr">
                         <input name="upload" value="''' + html.escape(d_list[4]) + '''">
                         <hr class="main_hr">
                         <span ''' + sqlite_only + '''>
-                            <span>''' + load_lang('backup_interval') + ' (' + load_lang('hour') + ') (' + load_lang('off') + ' : 0) (' + load_lang('restart_required') + ''')</span>
+                            <span>
+                                ''' + load_lang('backup_interval') + ' (' + load_lang('hour') + ') (' + load_lang('off') + ' : 0) ' + \
+                                '(' + load_lang('restart_required') + ''')</span>
                             <hr class="main_hr">
                             <input name="back_up" value="''' + html.escape(d_list[9]) + '''">
                             <hr class="main_hr">
-                            <span>''' + load_lang('backup_where') + ' (' + load_lang('empty') + ' : ' + load_lang('default') + ') (' + load_lang('restart_required') + ''') (EX : ./data/backup.db)</span>
+                            <span>
+                                ''' + load_lang('backup_where') + ' (' + load_lang('empty') + ' : ' + load_lang('default') + ') ' + \
+                                '(' + load_lang('restart_required') + ''') (EX : ./data/backup.db)
+                            </span>
                             <hr class="main_hr">
                             <input name="backup_where" value="''' + html.escape(d_list[21]) + '''">
                             <hr class="main_hr">
                         </span>
-                        <span>''' + load_lang('wiki_skin') + '''</span>
-                        <hr class="main_hr">
-                        <select name="skin">''' + load_skin(d_list[5] if d_list[5] != '' else 'tenshi') + '''</select>
-                        <hr class="main_hr">
-                        <input type="checkbox" name="reg" ''' + check_box_div[0] + '''> ''' + load_lang('no_register') + '''
-                        <hr class="main_hr">
-                        <input type="checkbox" name="ip_view" ''' + check_box_div[1] + '''> ''' + load_lang('hide_ip') + '''
-                        <hr class="main_hr">
-                        <input type="checkbox" name="email_have" ''' + check_box_div[2] + '''> ''' + load_lang('email_required') + ' <a href="/setting/6">(' + load_lang('smtp_setting_required') + ''')</a>
-                        <hr class="main_hr">
-                        <input type="checkbox" name="requires_approval" ''' + check_box_div[3] + '''> ''' + load_lang('requires_approval') + '''
-                        <hr class="main_hr">
-                        <input type="checkbox" name="ua_get" ''' + check_box_div[4] + '''> ''' + load_lang('ua_get_off') + '''
-                        <hr class="main_hr">
                         <span>''' + load_lang('wiki_host') + '''</span>
                         <hr class="main_hr">
                         <input name="host" value="''' + html.escape(d_list[16]) + '''">
@@ -202,16 +202,19 @@ def main_setting_2(conn, num, db_set):
                         <hr class="main_hr">
                         <select name="encode">''' + acl_div[0] + '''</select>
                         <hr class="main_hr">
-                        <span>''' + load_lang('slow_edit') + ' (' + load_lang('second') + ') (' + load_lang('off') + ''' : 0)</span>
-                        <hr class="main_hr">
-                        <input name="''' + i_list[19] + '''" value="''' + html.escape(d_list[19]) + '''">
-                        <hr class="main_hr">
                         <span>''' + load_lang('domain') + '''</span> (EX : http://2du.pythonanywhere.com/)
                         <hr class="main_hr">
                         <input name="''' + i_list[22] + '''" value="''' + html.escape(d_list[22]) + '''">
+                        <h2>5. ''' + load_lang('edit_set') + '''</h2>
+                        <span><a href="/setting/8">(''' + load_lang('main_acl_setting') + ''')</a></span>
+                        <hr class="main_hr">
+                        <span>''' + load_lang('slow_edit') + ' (' + load_lang('second') + ') (' + load_lang('off') + ''' : 0)</span>
+                        <hr class="main_hr">
+                        <input name="''' + i_list[19] + '''" value="''' + html.escape(d_list[19]) + '''">
                         <hr class="main_hr">
                         <button id="save" type="submit">''' + load_lang('save') + '''</button>
                     </form>
+                    <script>simple_render('main_set_data');</script>
                 ''',
                 menu = [['setting', load_lang('return')]]
             ))
@@ -538,10 +541,12 @@ def main_setting_2(conn, num, db_set):
                 re_ver += '<option value="v3">v3</option><option value="">v2</option>'
 
             return easy_minify(flask.render_template(skin_check(),
-                imp = ['Google', wiki_set(), custom(), other2([0, 0])],
+                imp = [load_lang('ext_api_req_set'), wiki_set(), custom(), other2([0, 0])],
                 data = '''
-                    <form method="post">
-                        <h2><a href="https://www.google.com/recaptcha/admin">''' + load_lang('recaptcha') + '''</a></h2>
+                    <form method="post" id="main_set_data">
+                        <h2>1. ''' + load_lang('recaptcha') + '''</h2>
+                        <a href="https://www.google.com/recaptcha/admin">(Google)</a>
+                        <hr class="main_hr">
                         <span>''' + load_lang('public_key') + '''</span>
                         <hr class="main_hr">
                         <input name="recaptcha" value="''' + html.escape(d_list[0]) + '''">
@@ -554,7 +559,9 @@ def main_setting_2(conn, num, db_set):
                             ''' + re_ver + '''
                         </select>
                         <hr class="main_hr">
-                        <h2>''' + load_lang('smtp_setting') + ' (' + load_lang('restart_required') + ''')</h1>
+                        <h2>2. ''' + load_lang('smtp_setting') + '''</h1>
+                        <a href="https://support.google.com/mail/answer/7126229">(Google)</a>
+                        <hr class="main_hr">
                         <span>''' + load_lang('smtp_server') + '''</span>
                         <hr class="main_hr">
                         <input name="smtp_server" value="''' + html.escape(d_list[2]) + '''">
@@ -564,9 +571,9 @@ def main_setting_2(conn, num, db_set):
                         <input name="smtp_port" value="''' + html.escape(d_list[3]) + '''">
                         <hr class="main_hr">
                         <span>''' + load_lang('smtp_security') + '''</span>
-                        <hr class="main_hr">'''
-                        + security_radios +
-                        '''<hr class="main_hr">
+                        <hr class="main_hr">
+                        ''' + security_radios + '''
+                        <hr class="main_hr">
                         <span>''' + load_lang('smtp_username') + '''</span>
                         <hr class="main_hr">
                         <input name="smtp_email" value="''' + html.escape(d_list[5]) + '''">
@@ -574,9 +581,11 @@ def main_setting_2(conn, num, db_set):
                         <span>''' + load_lang('smtp_password') + '''</span>
                         <hr class="main_hr">
                         <input type="password" name="smtp_pass" value="''' + html.escape(d_list[6]) + '''">
+                        <h2>3. ''' + load_lang('oauth') + '''</h2>
                         <hr class="main_hr">
                         <button id="save" type="submit">''' + load_lang('save') + '''</button>
                     </form>
+                    <script>simple_render('main_set_data');</script>
                 ''',
                 menu = [['setting', load_lang('return')]]
             ))

+ 2 - 59
views/main_css/js/load_skin_set.js

@@ -428,63 +428,6 @@ function main_css_skin_set() {
             <li><a id="note_2_end" href="#note_2">(ko-KR)</a> ' + main_css_load_lang('only_korean') + '</li> \
         </ul> \
     ';
-
-    // 목차 구현
-    var toc_all_data = '<div id="toc"><span id="toc_title">TOC</span><br>';
-    var skin_set_data = document.getElementById("main_skin_set").innerHTML;
-    var split_toc;
-    var toc_data;
-    i = 1;
-    while(1) {
-        toc_data = skin_set_data.match(/<h[1-6]>([^<>]+)<\/h[1-6]>/);
-        if(toc_data) {
-            split_toc = toc_data[1].match(/^([^ ]+)(.+)/);
-            toc_all_data += '' + 
-                '<br>' +
-                '<span style="margin-left: ' + String(((toc_data[1].match(/\./g) || []).length - 1) * 10) + 'px;">' +
-                    '<a href="#toc_' + String(i) + '">' + split_toc[1] + '</a>' + split_toc[2] +
-                '</span>' +
-            '';
-
-            skin_set_data = skin_set_data.replace(
-                /<(h[1-6])>([^<>]+)<\/h[1-6]>/, 
-                '<$1 id="toc_' + String(i) + '"><a href="#toc">' + split_toc[1] + '</a>' + split_toc[2] + '</$1>'
-            );
-            i += 1;
-        } else {
-            break;
-        }
-    }
-    document.getElementById("main_skin_set").innerHTML = toc_all_data + '</div>' + skin_set_data;
-
-    // 각주 구현
-    skin_set_data = document.getElementById("main_skin_set").innerHTML;
-    var note_list = {};
-    var plus_note;
-    i = 1;
-    while(1) {
-        toc_data = skin_set_data.match(/<sup>([^<>]+)<\/sup>/);
-        if(toc_data) {
-            if(!note_list[toc_data[1]]) {
-                note_list[toc_data[1]] = [String(i), 0];
-            } else {
-                note_list[toc_data[1]][1] += 1;
-            }
-
-            if(note_list[toc_data[1]][1] != 0) {
-                plus_note = '_' + String(note_list[toc_data[1]][1]);
-            } else {
-                plus_note = '';
-            }
-            
-            skin_set_data = skin_set_data.replace(
-                /<sup>([^<>]+)<\/sup>/, 
-                '<sup><a id="note_' + note_list[toc_data[1]][0] + plus_note + '" href="#note_' + note_list[toc_data[1]][0] + '_end">$1</a></sup>'
-            );
-            i += 1;
-        } else {
-            break;
-        }
-    }
-    document.getElementById("main_skin_set").innerHTML = skin_set_data;    
+ 
+    simple_render('main_skin_set');
 }

+ 62 - 0
views/main_css/js/load_something.js

@@ -79,6 +79,68 @@ function send_render(i = 0) {
     }
 }
 
+function simple_render(name_ele) {
+    var skin_set_data = document.getElementById(name_ele).innerHTML;
+    
+    // 목차 구현
+    var toc_all_data = '<div id="toc"><span id="toc_title">TOC</span><br>';
+    var split_toc;
+    var toc_data;
+    i = 1;
+    while(1) {
+        toc_data = skin_set_data.match(/<h[1-6]>([^<>]+)<\/h[1-6]>/);
+        if(toc_data) {
+            split_toc = toc_data[1].match(/^([^ ]+)(.+)/);
+            toc_all_data += '' + 
+                '<br>' +
+                '<span style="margin-left: ' + String(((toc_data[1].match(/\./g) || []).length - 1) * 10) + 'px;">' +
+                    '<a href="#toc_' + String(i) + '">' + split_toc[1] + '</a>' + split_toc[2] +
+                '</span>' +
+            '';
+
+            skin_set_data = skin_set_data.replace(
+                /<(h[1-6])>([^<>]+)<\/h[1-6]>/, 
+                '<$1 id="toc_' + String(i) + '"><a href="#toc">' + split_toc[1] + '</a>' + split_toc[2] + '</$1>'
+            );
+            i += 1;
+        } else {
+            break;
+        }
+    }
+    skin_set_data = toc_all_data + '</div>' + skin_set_data;
+
+    // 각주 구현
+    var note_list = {};
+    var plus_note;
+    i = 1;
+    while(1) {
+        toc_data = skin_set_data.match(/<sup>([^<>]+)<\/sup>/);
+        if(toc_data) {
+            if(!note_list[toc_data[1]]) {
+                note_list[toc_data[1]] = [String(i), 0];
+            } else {
+                note_list[toc_data[1]][1] += 1;
+            }
+
+            if(note_list[toc_data[1]][1] != 0) {
+                plus_note = '_' + String(note_list[toc_data[1]][1]);
+            } else {
+                plus_note = '';
+            }
+            
+            skin_set_data = skin_set_data.replace(
+                /<sup>([^<>]+)<\/sup>/, 
+                '<sup><a id="note_' + note_list[toc_data[1]][0] + plus_note + '" href="#note_' + note_list[toc_data[1]][0] + '_end">$1</a></sup>'
+            );
+            i += 1;
+        } else {
+            break;
+        }
+    }
+    
+    document.getElementById(name_ele).innerHTML = skin_set_data;
+}
+
 function ie_end_support() {
     if(document.currentScript === undefined) {
         window.location = 'microsoft-edge:' + window.location;

+ 0 - 2
views/main_css/js/render_onmark.js

@@ -506,7 +506,6 @@ function do_onmark_middle_render(data, data_js, name_include, data_nowiki, name_
                 /^(?:(?:(?:(#|@)((?:[0-9a-f-A-F]{3}){1,2}))(?:,(?:#|@)(?:(?:[0-9a-f-A-F]{3}){1,2}))?|(#|@)([a-zA-Z]+))|(\+|-)([1-5])|#!(html|wiki|syntax|folding|html))$/i
             );
             if(middle_type) {
-                console.log(middle_type);
                 if(middle_data_x_1[middle_data_x_1.length - 1] === '\\') {
                     return middle_data_before + '{{{' + middle_data_x_1 + '<mid_e>';
                 } else if(middle_type[1]) {
@@ -848,7 +847,6 @@ function do_onmark_table_render_main(data) {
                 table_col_count[table_col] = 0;
             }
             
-            console.log(table_col, table_col_count);
             if(table_col_count[table_col] !== 0) {
                 table_col_count[table_col] -= 1;
                 table_col += 1;

+ 1 - 1
views/tenshi/css/main.css

@@ -353,7 +353,7 @@ button {
     cursor: pointer;
 }
 
-input[type="checkbox"] {
+input[type="checkbox"], input[type="radio"] {
     box-shadow: None;
     background: transparent;
 }

+ 1 - 1
views/tenshi/index.html

@@ -8,7 +8,7 @@
             <title>{{imp[0]}} - {{imp[1][0]}}</title>
         {% endif %}
         {{imp[3][3]|safe}}
-        <link rel="stylesheet" href="/views/tenshi/css/main.css?ver=19">
+        <link rel="stylesheet" href="/views/tenshi/css/main.css?ver=20">
         <script src="/views/tenshi/js/skin_set.js?ver=8"></script>
         <script src="/views/tenshi/js/main.js?ver=3"></script>
         <script>main_load(); window.addEventListener('DOMContentLoaded', skin_set);</script>