2DU 9 rokov pred
rodič
commit
37d588ed46
3 zmenil súbory, kde vykonal 56 pridanie a 79 odobranie
  1. 43 43
      app.py
  2. 11 35
      templates/index.html
  3. 2 1
      version.md

+ 43 - 43
app.py

@@ -1692,9 +1692,9 @@ def backlink(name = None, number = None):
                 i = i + 1
                 v = v + 1
                 
-        return render_template('index.html', logo = data['name'], data = div, title = name, plus = '(역링크)')
+        return render_template('index.html', logo = data['name'], data = div, title = name, sub = '역링크')
     else:
-        return render_template('index.html', logo = data['name'], data = '', title = name, plus = '(역링크)')
+        return render_template('index.html', logo = data['name'], data = '', title = name, sub = '역링크')
 
 @app.route('/recentdiscuss')
 def recentdiscuss():
@@ -1864,35 +1864,35 @@ def gethistory(name = None, number = None):
                 else:
                     i = i + 1
                     
-            return render_template('index.html', logo = data['name'], rows = div, tn = 5, title = name, page = parse.quote(name).replace('/','%2F'), select = select)
+            return render_template('index.html', logo = data['name'], rows = div, tn = 5, title = name, page = parse.quote(name).replace('/','%2F'), select = select, sub = '역사')
         else:
-            return render_template('index.html', logo = data['name'], rows = '', tn = 5, title = name, page = parse.quote(name).replace('/','%2F'), select = select)
+            return render_template('index.html', logo = data['name'], rows = '', tn = 5, title = name, page = parse.quote(name).replace('/','%2F'), select = select, sub = '역사')
 
-@app.route('/search', methods=['POST', 'GET'])
+@app.route('/search', methods=['POST'])
 def search():
-    if(request.method == 'POST'):
-        curs.execute("select * from data where title = '" + pymysql.escape_string(request.form["search"]) + "'")
+    curs.execute("select * from data where title = '" + pymysql.escape_string(request.form["search"]) + "'")
+    rows = curs.fetchall()
+    if(rows):
+        return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(request.form["search"]).replace('/','%2F') + '" />'
+    else:
+        curs.execute("select * from data where title like '%" + pymysql.escape_string(request.form["search"]) + "%'")
         rows = curs.fetchall()
         if(rows):
-            return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(request.form["search"]).replace('/','%2F') + '" />'
+            i = 0
+            
+            div = '<li>문서가 없습니다. <a href="/w/' + parse.quote(request.form["search"]).replace('/','%2F') + '">바로가기</a></li><br>'
+            
+            while True:
+                try:
+                    div = div + '<li><a href="/w/' + parse.quote(rows[i]['title']).replace('/','%2F') + '">' + rows[i]['title'] + '</a></li>'
+                except:
+                    break
+                    
+                i = i + 1
         else:
-            curs.execute("select * from data where title like '%" + pymysql.escape_string(request.form["search"]) + "%'")
-            rows = curs.fetchall()
-            div = ''
-            if(rows):
-                i = 0
-                div = div + '<li>문서가 없습니다. <a href="/w/' + parse.quote(request.form["search"]).replace('/','%2F') + '">바로가기</a></li><br>'
-                while True:
-                    try:
-                        div = div + '<li><a href="/w/' + parse.quote(rows[i]['title']).replace('/','%2F') + '">' + rows[i]['title'] + '</a></li>'
-                    except:
-                        break
-                    i = i + 1
-            else:
-                return div + '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(request.form["search"]).replace('/','%2F') + '" />'
-            return render_template('index.html', logo = data['name'], data = div, title = '검색')
-    else:
-        return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(data['frontpage']).replace('/','%2F') + '" />'
+            return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(request.form["search"]).replace('/','%2F') + '" />'
+            
+        return render_template('index.html', logo = data['name'], data = div, title = '검색')
 
 @app.route('/w/<path:name>')
 def w(name = None):
@@ -2156,7 +2156,7 @@ def rew(name = None, number = None):
         else:
             left = ''
             
-        return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = enddata, license = data['license'], tn = 6, left = left)
+        return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = enddata, license = data['license'], tn = 6, left = left, sub = '옛 문서')
     else:
         return '<meta http-equiv="refresh" content="0;url=/history/' + parse.quote(name).replace('/','%2F') + '" />'
 
@@ -2184,7 +2184,7 @@ def raw(name = None):
         enddata = re.sub('"', '&quot;', enddata)
         enddata = re.sub("\n", '<br>', enddata)
         
-        return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = enddata, license = data['license'], tn = 7)
+        return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = enddata, license = data['license'], tn = 7, sub = 'Raw')
     else:
         return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(name).replace('/','%2F') + '" />'
 
@@ -2223,7 +2223,7 @@ def revert(name = None, number = None):
             curs.execute("select * from history where title = '" + pymysql.escape_string(name) + "' and id = '" + str(number) + "'")
             rows = curs.fetchall()
             if(rows):
-                return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), r = parse.quote(str(number)).replace('/','%2F'), tn = 13, plus = '정말 되돌리시겠습니까?')
+                return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), r = parse.quote(str(number)).replace('/','%2F'), tn = 13, plus = '정말 되돌리시겠습니까?', sub = '되돌리기')
             else:
                 return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(name).replace('/','%2F') + '" />'
 
@@ -2282,9 +2282,9 @@ def edit(name = None):
             curs.execute("select * from data where title = '" + pymysql.escape_string(name) + "'")
             rows = curs.fetchall()
             if(rows):
-                return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = rows[0]['data'], tn = 2, notice = notice, left = left)
+                return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = rows[0]['data'], tn = 2, notice = notice, left = left, sub = '편집')
             else:
-                return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = '', tn = 2, notice = notice, left = left)
+                return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = '', tn = 2, notice = notice, left = left, sub = '편집')
                 
 @app.route('/edit/<path:name>/section/<int:number>', methods=['POST', 'GET'])
 def secedit(name = None, number = None):
@@ -2353,7 +2353,7 @@ def secedit(name = None, number = None):
                         j = 1
                         break
                 if(j == 0):
-                    return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = gdata, tn = 2, notice = notice, left = left, section = 1, number = number)
+                    return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = gdata, tn = 2, notice = notice, left = left, section = 1, number = number, sub = '편집')
                 else:
                     return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(name).replace('/','%2F') + '" />'
             else:
@@ -2380,7 +2380,7 @@ def preview(name = None):
             left = namumark(name, newdata)
         else:
             left = ''
-        return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = request.form["content"], tn = 2, preview = 1, enddata = enddata, left = left, notice = notice)
+        return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = request.form["content"], tn = 2, preview = 1, enddata = enddata, left = left, notice = notice, sub = '미리보기')
         
 @app.route('/preview/<path:name>/section/<int:number>', methods=['POST'])
 def secpreview(name = None, number = None):
@@ -2403,7 +2403,7 @@ def secpreview(name = None, number = None):
             left = namumark(name, newdata)
         else:
             left = ''
-        return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = request.form["content"], tn = 2, preview = 1, enddata = enddata, left = left, notice = notice, section = 1, number = number, odata = request.form["otent"])
+        return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), data = request.form["content"], tn = 2, preview = 1, enddata = enddata, left = left, notice = notice, section = 1, number = number, odata = request.form["otent"], sub = '미리보기')
 
 @app.route('/delete/<path:name>', methods=['POST', 'GET'])
 def delete(name = None):
@@ -2433,7 +2433,7 @@ def delete(name = None):
             if(can == 1):
                 return '<meta http-equiv="refresh" content="0;url=/ban" />'
             else:
-                return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), tn = 8, plus = '정말 삭제 하시겠습니까?')
+                return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), tn = 8, plus = '정말 삭제 하시겠습니까?', sub = '삭제')
         else:
             return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(name).replace('/','%2F') + '" />'
 
@@ -2483,11 +2483,11 @@ def move(name = None):
         if(can == 1):
             return '<meta http-equiv="refresh" content="0;url=/ban" />'
         else:
-            return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), tn = 9, plus = '정말 이동 하시겠습니까?')
+            return render_template('index.html', title = name, logo = data['name'], page = parse.quote(name).replace('/','%2F'), tn = 9, plus = '정말 이동 하시겠습니까?', sub = '이동')
 
 @app.route('/other')
 def other():
-    return render_template('index.html', title = '기타 메뉴', logo = data['name'], data = '<li><a href="/titleindex">모든 문서</a></li><li><a href="/blocklog/n/1">유저 차단 기록</a></li><li><a href="/userlog/n/1">유저 가입 기록</a></li><li><a href="/upload">업로드</a></li><li><a href="/manager/1">관리자 메뉴</a></li><li><a href="/manager/6">유저 기록</a></li><br>이 오픈나무의 버전은 <a href="https://github.com/2DU/openNAMU/blob/master/version.md">1.7.6</a> 입니다.')
+    return render_template('index.html', title = '기타 메뉴', logo = data['name'], data = '<li><a href="/titleindex">모든 문서</a></li><li><a href="/blocklog/n/1">유저 차단 기록</a></li><li><a href="/userlog/n/1">유저 가입 기록</a></li><li><a href="/upload">업로드</a></li><li><a href="/manager/1">관리자 메뉴</a></li><li><a href="/manager/6">유저 기록</a></li><br>이 오픈나무의 버전은 <a href="https://github.com/2DU/openNAMU/blob/master/version.md">1.7.7</a> 입니다.')
     
 @app.route('/manager/<int:num>', methods=['POST', 'GET'])
 def manager(num = None):
@@ -2577,7 +2577,7 @@ def topic(name = None):
                 
             i = i + 1
             
-        return render_template('index.html', title = name, page = parse.quote(name).replace('/','%2F'), logo = data['name'], plus = div, tn = 10, list = 1)
+        return render_template('index.html', title = name, page = parse.quote(name).replace('/','%2F'), logo = data['name'], plus = div, tn = 10, list = 1, sub = '토론 목록')
         
 @app.route('/topic/<path:name>/close')
 def topicstoplist(name = None):
@@ -2613,7 +2613,7 @@ def topicstoplist(name = None):
                 
             i = i + 1
             
-        return render_template('index.html', title = name, page = parse.quote(name).replace('/','%2F'), logo = data['name'], plus = div, tn = 10)
+        return render_template('index.html', title = name, page = parse.quote(name).replace('/','%2F'), logo = data['name'], plus = div, tn = 10, sub = '토론 목록')
 
 @app.route('/topic/<path:name>/sub/<path:sub>', methods=['POST', 'GET'])
 def sub(name = None, sub = None):
@@ -2760,7 +2760,7 @@ def sub(name = None, sub = None):
                 
             i = i + 1
             
-        return render_template('index.html', title = name, page = parse.quote(name).replace('/','%2F'), suburl = parse.quote(sub).replace('/','%2F'), sub = sub, logo = data['name'], rows = div, tn = 11, ban = ban, style = style)
+        return render_template('index.html', title = name, page = parse.quote(name).replace('/','%2F'), suburl = parse.quote(sub).replace('/','%2F'), toron = sub, logo = data['name'], rows = div, tn = 11, ban = ban, style = style, sub = '토론')
 
 @app.route('/topic/<path:name>/sub/<path:sub>/b/<number>')
 def blind(name = None, sub = None, number = None):
@@ -3035,7 +3035,7 @@ def ban(name = None):
                     else:
                         now = '차단'
                         
-                return render_template('index.html', title = name, page = parse.quote(name).replace('/','%2F'), logo = data['name'], tn = 16, now = now, today = getnow())
+                return render_template('index.html', title = name, page = parse.quote(name).replace('/','%2F'), logo = data['name'], tn = 16, now = now, today = getnow(), sub = '차단')
             else:
                 return '<meta http-equiv="refresh" content="0;url=/error/3" />'
 
@@ -3067,7 +3067,7 @@ def acl(name = None):
                     now = '유저 이상'
                 else:
                     now = '일반'
-                return render_template('index.html', title = name, page = parse.quote(name).replace('/','%2F'), logo = data['name'], tn = 19, now = '현재 ACL 상태는 ' + now)
+                return render_template('index.html', title = name, page = parse.quote(name).replace('/','%2F'), logo = data['name'], tn = 19, now = '현재 ACL 상태는 ' + now, sub = 'ACL')
             else:
                 return '<meta http-equiv="refresh" content="0;url=/w/' + parse.quote(name).replace('/','%2F') + '" />' 
         else:
@@ -3116,7 +3116,7 @@ def admin(name = None):
                             now = '권한 해제'
                         else:
                             now = '권한 부여'
-                        return render_template('index.html', title = name, page = parse.quote(name).replace('/','%2F'), logo = data['name'], tn = 18, now = now)
+                        return render_template('index.html', title = name, page = parse.quote(name).replace('/','%2F'), logo = data['name'], tn = 18, now = now, sub = '권한 부여')
                     else:
                         return '<meta http-equiv="refresh" content="0;url=/error/5" />'
                 else:
@@ -3203,7 +3203,7 @@ def diff(name = None, a = None, b = None):
             sm = difflib.SequenceMatcher(None, indata, enddata)
             c = show_diff(sm)
             
-            return render_template('index.html', title = name, logo = data['name'], data = c, plus = '(비교)')
+            return render_template('index.html', title = name, logo = data['name'], data = c, sub = '비교')
         else:
             return '<meta http-equiv="refresh" content="0;url=/history/' + parse.quote(name).replace('/','%2F') + '" />'
     else:

+ 11 - 35
templates/index.html

@@ -53,6 +53,13 @@
                 {% endautoescape %}
             </div>
             <div class="four-fifths column">
+                <h1 class="title">{{title}}{% if acl %} <sub>{{acl}}</sub>{% endif %}{% if sub %} <sub>({{sub}})</sub>{% endif %}</h1>
+                {% if redirect %}
+                {% autoescape false %}
+                <li style="margin-top: -20px;">{{redirect}}</li>
+                <br>
+                {% endautoescape %}
+                {% endif %}
                 {% if tn == 1 %}
                 <div id="tool">
                     <nav class="menu">
@@ -67,13 +74,6 @@
                         <a class="menu-item" style="{{style}}" href="/w/{{uppage}}">상위</a>
                     </nav>
                 </div>
-                <h1 class="title">{{title}} <sub>{{acl}}</sub></h1>
-                {% if redirect %}
-                {% autoescape false %}
-                <li style="margin-top: -20px;">{{redirect}}</li>
-                <br>
-                {% endautoescape %}
-                {% endif %}
                 <div>
                     {% autoescape false %}
                     {{data}}
@@ -95,11 +95,6 @@
                     </nav>
                 </div>
                 {% endif %}
-                {% if preview == 1 %}
-                <h1 class="title">{{title}} <sub>(미리보기)</sub></h1>
-                {% else %}
-                <h1 class="title">{{title}} <sub>(수정)</sub></h1>
-                {% endif %}
                 {% if notice %}
                 <br>
                 <span>{{notice}}</span>
@@ -140,7 +135,6 @@
                 {% endautoescape %}
                 {% endif %}
                 {% elif tn == 3 %}
-                <h1 class="title">{{title}}</h1>
                 <table style="width: 100%;">
                     <tbody>
                         <tr>
@@ -154,7 +148,6 @@
                 {{rows}}
                 {% endautoescape %}
                 {% elif tn == 4 %}
-                <h1 class="title">{{title}}</h1>
                 {% autoescape false %}
                 {{rows}}
                 {% endautoescape %}
@@ -165,7 +158,6 @@
                         <a class="menu-item" href="/w/{{page}}">문서</a>
                     </nav>
                 </div>
-                <h1 class="title">{{title}} <sub>(역사)</sub></h1>
                 <form class="usrform" method='POST' action='/history/{{page}}/n/1'>
                 <select name="a">
                     {% autoescape false %}
@@ -195,11 +187,10 @@
                 {% elif tn == 6 %}
                 <div id="tool">
                     <nav class="menu">
-                        <a class="menu-item selected" href="#" onclick="return false">옛문서</a>
+                        <a class="menu-item selected" href="#" onclick="return false">옛 문서</a>
                         <a class="menu-item" href="javascript:history.back(-1);">뒤로가기</a>
                     </nav>
                 </div>
-                <h1 class="title">{{title}} <sub>(옛문서)</sub></h1>
                 <div>
                     {% autoescape false %}
                     {{data}}
@@ -208,18 +199,16 @@
                 {% elif tn == 7 %}
                 <div id="tool">
                     <nav class="menu">
-                        <a class="menu-item selected" href="#" onclick="return false">raw</a>
+                        <a class="menu-item selected" href="#" onclick="return false">Raw</a>
                         <a class="menu-item" href="/w/{{page}}">문서</a>
                     </nav>
                 </div>
-                <h1 class="title">{{title}} <sub>(raw)</sub></h1>
                 <div>
                     {% autoescape false %}
                     {{data}}
                     {% endautoescape %}
                 </div>
                 {% elif tn == 8 %}
-                <h1 class="title">{{title}} <sub>(삭제)</sub></h1>
                 <div id="tool">
                     <nav class="menu">
                         <a class="menu-item selected" href="#" onclick="return false">삭제</a>
@@ -233,7 +222,6 @@
                     <button class="btn btn-primary" type="submit">삭제</button>
                 </form>
                 {% elif tn == 9 %}
-                <h1 class="title">{{title}} <sub>(이동)</sub></h1>
                 <div id="tool">
                     <nav class="menu">
                         <a class="menu-item selected" href="#" onclick="return false">이동</a>
@@ -250,7 +238,6 @@
                     <button class="btn btn-primary" type="submit">이동</button>
                 </form>
                 {% elif tn == 10 %}
-                <h1 class="title">{{title}} <sub>(토론 목록)</sub></h1>
                 {% if list == 1 %}
                 <div id="tool">
                     <nav class="menu">
@@ -266,7 +253,7 @@
                     </nav>
                 </div>
                 {% endif %}
-                <form id="usrform" method="POST" action="/topic/{{page}}">
+                <form id="usrform" style="margin-top: -30px;" method="POST" action="/topic/{{page}}">
                     {% autoescape false %}
                     {{plus}}
                     {% endautoescape %}
@@ -282,14 +269,13 @@
                     {% endif %}
                 </form>
                 {% elif tn == 11 %}
-                <h1 class="title">{{title}} <sub>(토론)</sub></h1>
                 <div id="tool">
                     <nav class="menu">
                         <a class="menu-item selected" href="#" onclick="return false">토론</a>
                         <a class="menu-item" href="/topic/{{page}}">토론 목록</a>
                     </nav>
                 </div>
-                <h2>{{sub}}</h2>
+                <h2 style="margin-top: -15px;">{{toron}}</h2>
                 <br>
                 {% autoescape false %}
                 {{rows}}
@@ -306,7 +292,6 @@
                 </form>
                 {% endif %}
                 {% elif tn == 12 %}
-                <h1 class="title">{{title}}</h1>
                 <table style="width: 100%;">
                     <tbody>
                         <tr>
@@ -319,7 +304,6 @@
                 {{rows}}
                 {% endautoescape %}
                 {% elif tn == 13 %}
-                <h1 class="title">{{title}} <sub>(되돌리기)</sub></h1>
                 <div id="tool">
                     <nav class="menu">
                         <a class="menu-item selected" href="#" onclick="return false">되돌리기</a>
@@ -333,7 +317,6 @@
                     <button class="btn btn-primary" type="submit">되돌리기</button>
                 </form>
                 {% elif tn == 15 %}
-                <h1 class="title">{{title}}</h1>
                 {% if title == '회원가입' %}
                 <form id="usrform" method="POST" action="/register">
                 {% elif title == '비밀번호 변경' %}
@@ -364,7 +347,6 @@
                     <button class="btn btn-primary" type="submit">{{enter}}</button>
                 </form>
                 {% elif tn == 16 %}
-                <h1 class="title">{{title}} <sub>(차단)</sub></h1>
                 <form id="usrform" method="POST" action="/ban/{{page}}">
                     {% if now == '차단' or now == '대역 차단' %}
                     <input class="form-control" name="end" style="width: 100%">
@@ -396,7 +378,6 @@
                     <button class="btn btn-primary" type="submit">{{now}}</button>
                 </form>
                 {% elif tn == 18 %}
-                <h1 class="title">{{title}} <sub>(권한 부여)</sub></h1>
                 <form id="usrform" method="POST" action="/admin/{{page}}">
                     {% if now == '권한 부여' %}
                     <select name="select">
@@ -409,7 +390,6 @@
                     <button class="btn btn-primary" type="submit">{{now}}</button>
                 </form>
                 {% elif tn == 19 %}
-                <h1 class="title">{{title}} <sub>(ACL)</sub></h1>
                 <p>{{now}}</p>
                 <form id="usrform" method="POST" action="/acl/{{page}}">
                     <select name="select">
@@ -422,7 +402,6 @@
                     <button class="btn btn-primary" type="submit">ACL 변경</button>
                 </form>
                 {% elif tn == 20 %}
-                <h1 class="title">{{title}}</h1>
                 <table style="width: 100%;">
                     <tbody>
                         <tr>
@@ -438,7 +417,6 @@
                 {{rows}}
                 {% endautoescape %}
                 {% elif tn == 21 %}
-                <h1 class="title">{{title}}</h1>
                 <div>
                     <form action="" method=post enctype=multipart/form-data>
                         <input type=file name=file>
@@ -447,7 +425,6 @@
                 </div>
                 <span>{{number}}MB 이하 파일만 업로드 가능하고 파일 명에 ./\*<>|:? 들은 불가능 하며 확장자는 jpg, png, gif, jpeg만 가능 합니다.</span>
                 {% elif tn == 22 %}
-                <h1 class="title">{{title}}</h1>
                 <table style="width: 100%;">
                     <tbody>
                         <tr>
@@ -467,7 +444,6 @@
                         <a class="menu-item" href="javascript:history.back(-1);">뒤로가기</a>
                     </nav>
                 </div>
-                <h1 class="title">{{title}} {% if plus %}<sub>{{plus}}</sub>{% endif %}</h1>
                 <div>
                     {% autoescape false %}
                     {{data}}

+ 2 - 1
version.md

@@ -62,6 +62,7 @@
  * 사용자 목록 개선 (완료)
  * 서명 문법
  * 설계 변경 (완료)
+ * 디자인 패치 (완료)
 
 ## 보류
  * 토론에 AJAX 적용
@@ -84,7 +85,7 @@
 
 ----
 ## 기타
- * 버전 1.7.6 - 정식
+ * 버전 1.7.7 - 정식
 
 ----
 ## 개발 이념