Răsfoiți Sursa

인터위키 HTML 지정 기능, 나무마크 새로운 문법 반영

Surplus_Up (2DU) 6 ani în urmă
părinte
comite
57ca30ebc9
6 a modificat fișierele cu 61 adăugiri și 12 ștergeri
  1. 1 1
      app.py
  2. 2 0
      language/en-US.json
  3. 6 4
      language/ko-KR.json
  4. 8 2
      route/inter_wiki_plus.py
  5. 42 3
      route/tool/set_mark/namu.py
  6. 2 2
      version.json

+ 1 - 1
app.py

@@ -131,7 +131,7 @@ if setup_tool != 0:
     create_data['filter'] = ['name', 'regex', 'sub']
     create_data['scan'] = ['user', 'title']
     create_data['acl'] = ['title', 'decu', 'dis', 'view', 'why']
-    create_data['inter'] = ['title', 'link']
+    create_data['inter'] = ['title', 'link', 'icon']
     create_data['html_filter'] = ['html', 'kind', 'plus']
     create_data['oauth_conn'] = ['provider', 'wiki_id', 'sns_id', 'name', 'picture']
 

+ 2 - 0
language/en-US.json

@@ -26,6 +26,7 @@
         "document" : "Document",
         "discussion" : "Discussion",
         "backlink" : "Backlink",
+        "link" : "Link",
         "closed" : "Closed",
         "reload" : "Reload",
         "send" : "Send",
@@ -91,6 +92,7 @@
         "markup" : "Markup",
         "title" : "Title",
         "reference" : "Reference",
+        "icon" : "Icon",
         "_comment_1.1_" : "Time",
             "second" : "Second(s)",
             "hour" : "Hour(s)",

+ 6 - 4
language/ko-KR.json

@@ -158,7 +158,7 @@
     "admin": "관리자",
     "edit_filter_list": "편집 필터 목록",
     "wiki_skin": "위키 스킨",
-    "admin_group" : "관리자 그룹",
+    "admin_group": "관리자 그룹",
     "all": "전체",
     "skin_error": "이 스킨은 설정을 지원하지 않습니다.",
     "member": "가입자",
@@ -291,7 +291,9 @@
     "direct_input": "직접 입력",
     "acl_record": "ACL 기록",
     "main_bottom_body": "본문 하단",
-    "reference" : "참고",
-    "owner_acl" : "소유자만",
-    "last_edit_time" : "최근 수정 시각"
+    "reference": "참고",
+    "owner_acl": "소유자만",
+    "last_edit_time": "최근 수정 시각",
+    "link": "링크",
+    "icon": "아이콘"
 }

+ 8 - 2
route/inter_wiki_plus.py

@@ -5,7 +5,11 @@ def inter_wiki_plus_2(conn, tools, name):
     
     if flask.request.method == 'POST':
         if tools == 'plus_inter_wiki':
-            curs.execute('insert into inter (title, link) values (?, ?)', [flask.request.form.get('title', None), flask.request.form.get('link', None)])
+            curs.execute('insert into inter (title, link, icon) values (?, ?, ?)', [
+                flask.request.form.get('title', None), 
+                flask.request.form.get('link', None),
+                flask.request.form.get('icon', None)
+            ])
             
             admin_check(None, 'inter_wiki_plus')
         elif tools == 'plus_edit_filter':
@@ -78,7 +82,9 @@ def inter_wiki_plus_2(conn, tools, name):
             form_data = '''
                 <input placeholder="''' + load_lang('name') + '''" type="text" name="title">
                 <hr class=\"main_hr\">
-                <input placeholder="link" type="text" name="link">
+                <input placeholder="''' + load_lang('link') + '''" type="text" name="link">
+                <hr class=\"main_hr\">
+                <input placeholder="''' + load_lang('icon') + ''' (HTML)" type="text" name="icon">
             '''
         elif tools == 'plus_edit_filter':
             curs.execute("select regex, sub from filter where name = ?", [name])

+ 42 - 3
route/tool/set_mark/namu.py

@@ -25,6 +25,8 @@ def table_parser(data, cel_data, start_data, num = 0):
             all_table += 'height: ' + table_height.groups()[0] + 'px;'
         else:
             all_table += 'height: ' + table_height.groups()[0] + ';'
+
+    # width, height
     
     table_align = re.search("&lt;table ?align=((?:(?!&gt;).)*)&gt;", data)
     if table_align:
@@ -50,6 +52,8 @@ def table_parser(data, cel_data, start_data, num = 0):
             row_style += 'text-align: center;'
         else:
             row_style += 'text-align: left;'
+        
+    # align
     
     table_cel = re.search("&lt;-((?:(?!&gt;).)*)&gt;", data)
     if table_cel:
@@ -61,9 +65,17 @@ def table_parser(data, cel_data, start_data, num = 0):
     if table_row:
         row = 'rowspan="' + table_row.groups()[0] + '"'
 
+    # <>
+
     row_bgcolor = re.search("&lt;rowbgcolor=(#(?:[0-9a-f-A-F]{3}){1,2}|\w+)&gt;", data)
     if row_bgcolor:
         row_style += 'background: ' + row_bgcolor.groups()[0] + ';'
+
+    row_bgcolor = re.search("&lt;rowcolor=(#(?:[0-9a-f-A-F]{3}){1,2}|\w+)&gt;", data)
+    if row_bgcolor:
+        row_style += 'color: ' + row_bgcolor.groups()[0] + ';'
+
+    # row
         
     table_border = re.search("&lt;table ?bordercolor=(#(?:[0-9a-f-A-F]{3}){1,2}|\w+)&gt;", data)
     if table_border:
@@ -72,10 +84,20 @@ def table_parser(data, cel_data, start_data, num = 0):
     table_bgcolor = re.search("&lt;table ?bgcolor=(#(?:[0-9a-f-A-F]{3}){1,2}|\w+)&gt;", data)
     if table_bgcolor:
         all_table += 'background: ' + table_bgcolor.groups()[0] + ';'
+
+    table_bgcolor = re.search("&lt;table ?color=(#(?:[0-9a-f-A-F]{3}){1,2}|\w+)&gt;", data)
+    if table_bgcolor:
+        all_table += 'color: ' + table_bgcolor.groups()[0] + ';'
+
+    # all
         
     bgcolor = re.search("&lt;(?:bgcolor=)?(#(?:[0-9a-f-A-F]{3}){1,2}|\w+)&gt;", data)
     if bgcolor:
         cel_style += 'background: ' + bgcolor.groups()[0] + ';'
+
+    bgcolor = re.search("&lt;color=(#(?:[0-9a-f-A-F]{3}){1,2}|\w+)&gt;", data)
+    if bgcolor:
+        cel_style += 'color: ' + bgcolor.groups()[0] + ';'
         
     cel_width = re.search("&lt;width=((?:(?!&gt;).)*)&gt;", data)
     if cel_width:
@@ -90,6 +112,8 @@ def table_parser(data, cel_data, start_data, num = 0):
             cel_style += 'height: ' + cel_height.groups()[0] + 'px;'
         else:
             cel_style += 'height: ' + cel_height.groups()[0] + ';'
+
+    # cel
         
     text_right = re.search("&lt;\)&gt;", data)
     text_center = re.search("&lt;:&gt;", data)
@@ -831,13 +855,28 @@ def namu(conn, data, title, main_num, include_num):
                 inter_data = re.search('^inter:((?:(?!:).)+):((?:(?!\]\]|\|).)+)', main_link)
                 inter_data = inter_data.groups()
 
-                curs.execute('select link from inter where title = ?', [inter_data[0]])
+                curs.execute('select link, icon from inter where title = ?', [inter_data[0]])
                 inter = curs.fetchall()
                 if inter:
+                    if inter[0][1] != '':
+                        inter_view = inter[0][1]
+                    else:
+                        inter_view = inter_data[0] + ':'
+
                     if see_link != main_link:
-                        data = re.sub('\[\[((?:(?!\[\[|\]\]).)+)\]\]', '<a id="inside" href="' + inter[0][0] + inter_data[1] + '">' + inter_data[0] + ':' + see_link + '</a>', data, 1)
+                        data = re.sub(
+                            '\[\[((?:(?!\[\[|\]\]).)+)\]\]',
+                            '<a id="inside" href="' + inter[0][0] + inter_data[1] + '">' + inter_view + see_link + '</a>',
+                            data, 
+                            1
+                        )
                     else:
-                        data = re.sub('\[\[((?:(?!\[\[|\]\]).)+)\]\]', '<a id="inside" href="' + inter[0][0] + inter_data[1] + '">' + inter_data[0] + ':' + inter_data[1] + '</a>', data, 1)
+                        data = re.sub(
+                            '\[\[((?:(?!\[\[|\]\]).)+)\]\]',
+                            '<a id="inside" href="' + inter[0][0] + inter_data[1] + '">' + inter_view + inter_data[1] + '</a>', 
+                            data, 
+                            1
+                        )
                 else:
                     data = re.sub('\[\[((?:(?!\[\[|\]\]).)+)\]\]', 'Not exist', data, 1)
             elif re.search('^\/', main_link):

+ 2 - 2
version.json

@@ -1,7 +1,7 @@
 {
     "master" : {
-        "r_ver" : "v3.1.4-master-03",
-        "c_ver" : "400003",
+        "r_ver" : "v3.1.4-master-04",
+        "c_ver" : "400004",
         "s_ver" : "3"
     }, "stable" : {
         "r_ver" : "v3.1.3-stable-02",