From 741447e73706b120e60b0371bf7cac1bc14ab8cf Mon Sep 17 00:00:00 2001 From: tizac Date: Wed, 21 Nov 2012 23:38:51 +0800 Subject: [PATCH] init --- .gitignore | 18 + code.py | 91 ++++ config.py | 5 + merge_static | 20 + model.py | 168 ++++++ static/book | 1 + static/css/style.css | 556 ++++++++++++++++++++ static/css/style0801.css | 480 +++++++++++++++++ static/css/style0803.css | 693 +++++++++++++++++++++++++ static/css/style1031.css | 696 +++++++++++++++++++++++++ static/css/style1121.css | 778 ++++++++++++++++++++++++++++ static/icon210 | 1 + static/img | 1 + static/photo | 1 + static/vedio_img | 1 + templates/activity.html | 93 ++++ templates/article_edit.html | 87 ++++ templates/article_image_upload.html | 34 ++ templates/article_view.html | 76 +++ templates/articles.html | 52 ++ templates/articles_create.html | 62 +++ templates/base.html | 23 + templates/catalog.html | 72 +++ templates/event.html | 58 +++ templates/events_old.html | 567 ++++++++++++++++++++ templates/index.html | 42 ++ templates/login.html | 26 + templates/memories.html | 49 ++ templates/photo_view.html | 46 ++ templates/photos.html | 35 ++ templates/photos_year.html | 38 ++ templates/vedio_create.html | 53 ++ templates/vedio_edit.html | 61 +++ templates/vedio_view.html | 39 ++ templates/vedios.html | 122 +++++ templates/words.html | 49 ++ templates/words_create.html | 46 ++ view.py | 278 ++++++++++ 38 files changed, 5518 insertions(+) create mode 100644 .gitignore create mode 100644 code.py create mode 100644 config.py create mode 100755 merge_static create mode 100644 model.py create mode 120000 static/book create mode 100644 static/css/style.css create mode 100644 static/css/style0801.css create mode 100644 static/css/style0803.css create mode 100644 static/css/style1031.css create mode 100644 static/css/style1121.css create mode 120000 static/icon210 create mode 120000 static/img create mode 120000 static/photo create mode 120000 static/vedio_img create mode 100644 templates/activity.html create mode 100644 templates/article_edit.html create mode 100644 templates/article_image_upload.html create mode 100644 templates/article_view.html create mode 100644 templates/articles.html create mode 100644 templates/articles_create.html create mode 100644 templates/base.html create mode 100644 templates/catalog.html create mode 100644 templates/event.html create mode 100644 templates/events_old.html create mode 100644 templates/index.html create mode 100644 templates/login.html create mode 100644 templates/memories.html create mode 100644 templates/photo_view.html create mode 100644 templates/photos.html create mode 100644 templates/photos_year.html create mode 100644 templates/vedio_create.html create mode 100644 templates/vedio_edit.html create mode 100644 templates/vedio_view.html create mode 100644 templates/vedios.html create mode 100644 templates/words.html create mode 100644 templates/words_create.html create mode 100644 view.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ffdf85f --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +*.elc +*.pyc +*~ +*.swp +*.swo +*.bak +*.log +*.svn +.svn +*.nohup + +*.htm.py +*.txt.py +.*.js +.*.css + +*.db +sessions diff --git a/code.py b/code.py new file mode 100644 index 0000000..f8833d7 --- /dev/null +++ b/code.py @@ -0,0 +1,91 @@ +#!/usr/bin/python +#coding:utf-8 + +import web + +#for import view and other local module +if __name__!='__main__': + import os + import sys + abspath = os.path.dirname(__file__) + sys.path.append(abspath) + os.chdir(abspath) + +import sys +if sys.getdefaultencoding() != 'utf-8': + reload(sys) + sys.setdefaultencoding('utf-8') + +from view import * +from sqlalchemy.orm import scoped_session, sessionmaker + +def load_sqlalchemy(handler): + web.ctx.orm = scoped_session(sessionmaker(bind=engine)) + try: + return handler() + except web.HTTPError: + web.ctx.orm.commit() + raise + except: + web.ctx.orm.rollback() + raise + finally: + web.ctx.orm.commit() + + +#--- Control settings ---- +urls = ( + '/', 'index', + '/login', 'login', + '/logout', 'logout', + '/events', 'events', + '/event/(\d+)', 'event', + '/articles', 'articles', + '/articles/catalog/(\d+)', 'catalog', + '/articles/catalog/create/(\d+)', 'articles_create', + '/article/(\d+)', 'article_view', + '/article/edit/(\d+)', 'article_edit', + '/article/image/upload/(\d+)', 'article_image_upload', + '/image/delete/(\d+)', 'image_delete', + '/photos', 'photos', + '/photos/year/(\d+)', 'photos_year', + '/photo/(\d+)/(\d+)','photo_view', + '/memories', 'memories', + '/words', 'words', + '/words/create', 'words_create', + '/word/delete/(\d+)', 'word_delete', + '/word/show/(\d+)', 'word_show', + '/word/hide/(\d+)', 'word_hide', + '/vedios', 'vedios', + '/vedio/(\d+)', 'vedio_view', + '/vedio/create', 'vedio_create', + '/vedio/edit/(\d+)', 'vedio_edit', + '/activity/goldencampass', 'activity', + ) + + +app = web.application(urls, globals()) +app.add_processor(load_sqlalchemy) + + +#web.config.debug = False + +if __name__!='__main__': + session = web.session.Session(app, web.session.DiskStore(os.path.join(abspath,'sessions')),initializer={'isAdmin':0}) +else: + session = web.session.Session(app, web.session.DiskStore('sessions'),initializer={'isAdmin':0}) + +def session_hook(): + web.ctx.session = session + web.template.Template.globals['session'] = session + + +if __name__ == "__main__": + app.add_processor(web.loadhook(session_hook)) + app.run() +else: + app.add_processor(web.loadhook(session_hook)) + application=app.wsgifunc() + + + diff --git a/config.py b/config.py new file mode 100644 index 0000000..165ef17 --- /dev/null +++ b/config.py @@ -0,0 +1,5 @@ +import os + +MAIN_PATH = os.getcwd() +STATIC_PATH = MAIN_PATH + '/static' +PASSWD = '73a21e6a277f2b4c365cfde2fa8e8bb64f566f8eeb8d069dab8a36e0' diff --git a/merge_static b/merge_static new file mode 100755 index 0000000..71c3bee --- /dev/null +++ b/merge_static @@ -0,0 +1,20 @@ +#!/usr/bin/python +#coding:utf8 + +import os +import re + +m = re.compile('.*/') +s = m.match(os.getcwd()) +path = s.group(0) + +#path = '/home/tizac/camp/sites/static' + +dirs = ['book', 'icon210', 'img', 'photo', 'vedio_img'] + +for d in dirs: + cmd = 'rm ./static/%s' % (d) + os.system(cmd) + cmd = 'ln -s %sstatic/%s ./static/' % (path, d) + os.system(cmd) + diff --git a/model.py b/model.py new file mode 100644 index 0000000..8fcacf6 --- /dev/null +++ b/model.py @@ -0,0 +1,168 @@ +#!/usr/bin/python +#coding:utf-8 + +import web +import re +import time + +from datetime import datetime +from web.utils import storage + + +from sqlalchemy import create_engine +#engine = create_engine("mysql://tizac:m1y4q5tb@localhost/dongdong?charset=utf8" , echo=False) +engine = create_engine("sqlite:///dongdong.db" , echo=False) + +from sqlalchemy.ext.declarative import declarative_base +Base = declarative_base() + + +from sqlalchemy import Column, Integer, String, DateTime +from sqlalchemy import Table, Text +from sqlalchemy import ForeignKey +from sqlalchemy import and_, or_ +from sqlalchemy.orm import relationship, backref + + +class Word(Base): + __tablename__ = 'Word' + + id = Column(Integer, unique=True, primary_key=True) + title = Column(String(256), nullable=False) + content = Column(Text, nullable=False) + author = Column(String(256), nullable=False) + time = Column(DateTime, nullable=False) + hide = Column(Integer, nullable=False) + + def __init__(self, args): + self.title = args.title + self.content = args.content + self.author = args.author + self.time = datetime.now() + self.hide = 0 + + def __repr__(self): + return "" % self.id + + +class Article(Base): + __tablename__ = 'Article' + + id = Column(Integer, unique=True, primary_key=True) + title = Column(String(256), nullable=False) + time = Column(DateTime) + source = Column(String(256)) + content = Column(Text, nullable=False) + catalog_id = Column(Integer, ForeignKey('Catalog.id')) + ishtml = Column(Integer, nullable=False ) + catalog = relationship('Catalog', backref = backref('article', order_by=time)) + + def __init__(self, args): + self.update(args) + + def update(self, args): + self.title = args.title + if args.time: + ttuple = time.strptime(args.time, "%Y-%m-%d") + tdate = datetime(ttuple[0],ttuple[1],ttuple[2]) + self.time = tdate + self.source = args.source + self.content = args.content + try: + c1 = web.ctx.orm.query(Catalog).filter_by(name = args.catalog).one() + except: + c1 = Catalog(args.catalog) + self.catalog = c1 + + def __repr__(self): + return "" % self.id + + def content_to_html(self): + #print "%r"%self.content + if self.ishtml==1: + html=self.content + else: + strbr = re.compile(r'\r\n') + html = strbr.sub('
', self.content) + #strspace = re.compile(r' ') + #html = strspace.sub(' ', html) + #html = markdown.markdown(html) + #print html + return html + + +class Catalog(Base): + __tablename__ = 'Catalog' + + id = Column(Integer, unique=True, primary_key=True, autoincrement=True) + name = Column(String(64), nullable=False, unique=True) + weight = Column(Integer, nullable=False ) + channel = Column(Integer, nullable=False ) + + def __init__(self,name): + self.name=name + + def __repr__(self): + return 'Catalog(%r)' % (self.name) + + +class Image(Base): + __tablename__='Image' + + id = Column(Integer, unique=True, primary_key=True, autoincrement=True) + name = Column(String(256), nullable=False, unique=True) + article_id = Column(Integer, ForeignKey('Article.id')) + article = relationship('Article', backref = backref('image')) + + def __init__(self, name, article_id): + self.name = name + a1 = web.ctx.orm.query(Article).filter_by(id = article_id).one() + self.article = a1 + + def __repr__(self): + return 'Image(%r, %r)' % (self.id, self.name) + + +class Photo(Base): + __tablename__='Photo' + + id = Column(Integer, unique=True, primary_key=True, autoincrement=True) + year = Column(Integer) + name = Column(String(256), nullable=False, unique=True) + + +class Vedio(Base): + __tablename__='Vedio' + + id = Column(Integer, unique=True, primary_key=True, autoincrement=True) + #name = Column(String(256), nullable=False, unique=True) + title = Column(String(256), nullable=False, unique=True) + url = Column(String(512), nullable=False, unique=True) + catalog_id = Column(Integer, ForeignKey('Catalog.id')) + catalog = relationship('Catalog', backref = backref('vedio', order_by=title)) + + + + def __init__(self, args): + self.update(args) + + def update(self, args): + self.title= args.title + self.url = args.url + try: + c1 = web.ctx.orm.query(Catalog).filter_by(name = args.catalog).one() + except: + c1 = Catalog(args.catalog) + self.catalog = c1 + + + +#--------------------------------------------------------------------- + +metadata = Base.metadata + +if __name__ == "__main__": + metadata.create_all(engine) + from sqlalchemy.orm import sessionmaker + Session = sessionmaker(bind=engine) + session = Session() diff --git a/static/book b/static/book new file mode 120000 index 0000000..7e41098 --- /dev/null +++ b/static/book @@ -0,0 +1 @@ +/home/tizac/camp/sites/static/book \ No newline at end of file diff --git a/static/css/style.css b/static/css/style.css new file mode 100644 index 0000000..1a3593d --- /dev/null +++ b/static/css/style.css @@ -0,0 +1,556 @@ +body{ +margin:0; +padding:0; +} + +div.body { +width:80%; +background:white; +margin:0px auto; +padding:0px; +overflow:auto; +} + +a{ +text-decoration:none; +color:black; +font-size:18px; +padding:2px 5px; +} + +a:hover { +color:white; +background:black; +} + +h3 { +margin:20px 0; +font-size:22px; +} + +div.h3 { +font-size:24px; +} + +a.h3 { +font-size:24px; +} + +div.h4 { +font-size:20px; +color:black; +} + +a.h4 { +font-size:20px; +} + +ul.article { +color:black; +} + +ul.article li { +margin:8px 0; +} + +ul.article li span{ +color:black; +} + +div.shelf{ +width:70%; +margin:0px auto; +padding:0px; +} + +div.head{ +width:100%; +color:black; +overflow:auto; +text-align:center; +} + +div.head h1 { +font-size:35px; +margin:10px; +margin-top:20px; +} + +div.head h2 { +font-size:18px; +margin:5px; +font-weight:normal; +} + +div.menu { +background:black; +width:100%; +margin:8px 0; +overflow:auto; +text-align:center; +} + +div.menu ul{ +float: left; +width: 90%; +margin: 0% 5%; +padding: 0; +padding-left: 25px; +list-style-type:none; +} + +div.menu ul li { +width:16%; +float:left; +} + +div.menu ul li a { +width:80%; +float:left; +margin:0 2%; +padding:8px 8%; +color:white; +font-size: 20px; +} + +div.menu ul li a:hover { +color:white; +background:#bbbbbb; +} + +div.menu ul li a.selected { +color:white; +background:#bbbbbb; +} + +div.profile { +margin:10px auto; +padding:10px; +border: 1px solid gray; +width:300px; +overflow:auto; +} + +img.profile { +width:100%; +} + +p{ +font-size: 18px; +} + +div.foot { +height:10px +} + +pre { +font-size:18px; +} + +div.events { +background: red; +overflow:auto; +} + +h3.title { +margin:0; +padding:0; +font-size:24px; +} + +hr { +margin: 20px 0; +} + +div.photo img { +float:left; +margin:auto; +} + +div.photo { +height:210px; +width:210px; +float:left; +margin:5px; +padding:5px; +} + + +div.word { +margin:20px auto; +margin-bottom:50px; +overflow:auto; +} + +table.words { +width:100%; +} + +table.words tr{ +width:100%; +} + +table.words th { +font-weight: normal; +width:15%; +font-size:18px; +} + +table.words td { +width:85%; +font-size:18px; +} + +table.words input { +width:100%; +padding:5px; +border: 1px solid #bbbbbb; +font-size:18px; +} + +table.words input.submit { +float:right; +width:100px; +margin-right:20px; +padding:2px; +} + +table.words textarea { +width:100%; +height:100px; +padding:5px; +border: 1px solid #bbbbbb; +font-size:18px; +} + +a.word_create { +float:right; +} + +div.line { +overflow:auto; +width:100%; +} + +div.m20 { +width:100%; +margin:20px auto; +} + + +div.words { +width:70%; +margin:0 auto; +} + +h4 { +margin:0; +padding:0; +} + +ul.word { +margin:20px 0; +padding:0; +float:left; +width:100%; +list-style-type:none; +} + +ul.word li { +margin:3px 0; +float:left; +width:100%; +font-size:20px; +} + + + +ul.word li.author { +color:gray; +font-size:16px; +} + +div.login { +margin:50px auto ; +width:300px; +} + +table.words textarea.content { +width:100%; +height:400px; +padding:5px; +border: 1px solid #bbbbbb; +font-size:18px; +} + + + +table.upload img{ +width:200px; +} + +table.upload td{ +padding:0px 20px; +} + +span.right { +float:right; +color:black; +font-size:18px; +} + +span.content { +color:gray; +} + +a.button { +background:#bbbbbb; +color:black; +border:1px solid gray; +} + +a.button:hover { +color:white; +background:#444444; +} + +ul.catalog li { +margin:10px 0; +} + +div.intro { +width:250px; +overflow:auto; +background:#eeeeee; +margin:20px 0; +padding:13px; +border:1px solid #aaaaaa; +} + +div.intro ul { +float:left; +margin:5px 0; +color:black; +} + +div.intro li { +font-size:18px; +margin:2px 0; +} + +div.intro hr { +width:92%; +margin:5px 4%; +margin-bottom:0; +float:left; +} + +div.intro span { +width:92%; +margin:0px 4%; +margin-bottom:0; +font-size:20px; +overflow:auto; +float:left; +} + +div.photos { +margin:20px 0; +} + +ul.photos { +margin:0; +padding:0; +width:100%; +float:left; +list-style-type:none; +} + +ul.photos li { +float:left; +width:270px; +height:220px; +border:1px solid gray; +padding:10px; +margin:10px; +} + + +ul.photos li:hover { +color:white; +background:#dddddd; +} + +ul.photos a { +margin:0; +padding:0; +} + +ul.photos img { +width:100%; +} + +ul.photos div { +margin:10px auto; +color:black; +width:80px; +font-size:20px; +} + +div.photo_view { +margin:20px 0; +width:100%; +} + + +div.photo_view img { +width:100%; +} + +p { +font-size:20px; +} + +ul.word span { +background:#eeeeee; +overflow:auto; +} + +ul.word li.content { +margin:20px 0; +} + +ul.word img { +margin:20px; +margin-left:0; +} + +ul.word img.left { +margin:20px; +float:left; +margin-left:0px; +} + + +ul.word img.right { +margin:20px; +float:right; +margin-right:0px; +} + + +ul.word img.center{ +margin:20px 0px; +} + +ul.word img.w100 { +width:100%; +margin:20px 0; +} + +ul.word img.w50{ +width:50%; +} + +ul.word img.w40{ +width:40%; +} + +ul.word img.w60{ +width:60%; +} + +ul.word img.w30{ +width:30%; +} + +ul.word img.w70{ +width:70%; +} + + +ul.word img.w80{ +width:80%; +} + +div.page { +width:200px; +margin:20px auto; +} + +a.photo { +background:none; +padding:0; +margin:0; +} + +table.events { +font-size:18px; +} + +table.events td { +padding:0 10px; +} + +table.events td.t1 { +width:220px; +} + +table.events td.t2 { +width:100px; +} + +div.book{ +width:33%; +float:left; +margin:10px 0; +padding:0; +height:160px; +} + +div.book span.img{ +float:left; +width:40%; +} + +div.book img{ +width:90%; +float:left; +} + +div.book span.title{ +float:left; +margin:0; +padding:0; +width:55%; +} + +div.book ul { +margin:0; +padding:0; +list-style-type:none; +float:left; +} + +div.book ul li { +margin:0; +padding:0; +float:left; +width:100%; +font-size:16px; +color:gray; +} + +div.book ul li.title { +color:#006699; +} + +div.bottom { +width:100%; +margin-bottom:100px; +float:left; +} + +ul.word li.gray { +font-color:gray; +} diff --git a/static/css/style0801.css b/static/css/style0801.css new file mode 100644 index 0000000..845824c --- /dev/null +++ b/static/css/style0801.css @@ -0,0 +1,480 @@ +body{ +margin:0; +padding:0; +} + +div.body { +width:80%; +background:white; +margin:0px auto; +padding:0px; +overflow:auto; +} + + +a{ +text-decoration:none; +color:#006699; +font-size:18px; +padding:2px 5px; +} + +a:hover { +color:white; +background:#006699; +} + +div.h3 { +font-size:24px; +} + +a.h3 { +font-size:24px; +} + +div.h4 { +font-size:20px; +color:#006699; +} + +a.h4 { +font-size:20px; +} + +ul.article { +color:#006699; +} + +ul.article li { +margin:8px 0; +} + +ul.article li span{ +color:#006699; +} + +div.shelf{ +width:70%; +margin:0px auto; +padding:0px; +} + +div.head{ +width:100%; +color:black; +overflow:auto; +text-align:center; +} + +div.head h1 { +font-size:35px; +margin:10px; +margin-top:20px; +} + +div.head h2 { +font-size:18px; +margin:5px; +font-weight:normal; +} + +div.menu { +background:black; +width:100%; +margin:8px 0; +overflow:auto; +text-align:center; +} + +div.menu ul{ +float: left; +width: 90%; +margin: 0% 5%; +padding: 0; +padding-left: 25px; +list-style-type:none; +} + +div.menu ul li { +width:16%; +float:left; +} + +div.menu ul li a { +width:80%; +float:left; +margin:0 2%; +padding:8px 8%; +color:white; +font-size: 20px; +} + +div.menu ul li a:hover { +color:white; +background:#bbbbbb; +} + +div.menu ul li a.selected { +color:white; +background:#bbbbbb; +} + +div.profile { +margin:10px auto; +padding:10px; +border: 1px solid gray; +width:300px; +overflow:auto; +} + +img.profile { +width:100%; +} + +p{ +font-size: 18px; +} + +div.foot { +height:10px +} + +pre { +font-size:18px; +} + +div.events { +background: red; +overflow:auto; +} + +h3.title { +margin:0; +padding:0; +font-size:24px; +} + +hr { +margin: 20px 0; +} + +div.photo img { +float:left; +margin:auto; +} + +div.photo { +height:210px; +width:210px; +float:left; +margin:5px; +padding:5px; +} + + +div.word { +margin:20px auto; +margin-bottom:50px; +overflow:auto; +} + +table.words { +width:100%; +} + +table.words tr{ +width:100%; +} + +table.words th { +font-weight: normal; +width:15%; +font-size:18px; +} + +table.words td { +width:85%; +font-size:18px; +} + +table.words input { +width:100%; +padding:5px; +border: 1px solid #bbbbbb; +font-size:18px; +} + +table.words input.submit { +float:right; +width:100px; +margin-right:20px; +padding:2px; +} + +table.words textarea { +width:100%; +height:100px; +padding:5px; +border: 1px solid #bbbbbb; +font-size:18px; +} + +a.word_create { +float:right; +} + +div.line { +overflow:auto; +width:100%; +} + +div.m20 { +width:100%; +margin:20px auto; +} + + +div.words { +width:70%; +margin:0 auto; +} + +h4 { +margin:0; +padding:0; +} + +ul.word { +margin:20px 0; +padding:0; +float:left; +width:100%; +list-style-type:none; +} + +ul.word li { +margin:3px 0; +float:left; +width:100%; +font-size:20px; +} + +ul.word li.author { +color:gray; +font-size:16px; +} + +div.login { +margin:50px auto ; +width:300px; +} + +table.words textarea.content { +width:100%; +height:400px; +padding:5px; +border: 1px solid #bbbbbb; +font-size:18px; +} + + + +table.upload img{ +width:200px; +} + +table.upload td{ +padding:0px 20px; +} + +span.right { +float:right; +color:black; +font-size:18px; +} + +span.content { +color:gray; +} + +a.button { +background:#bbbbbb; +color:black; +border:1px solid gray; +} + +a.button:hover { +color:white; +background:#444444; +} + +ul.catalog li { +margin:10px 0; +} + +div.intro { +width:250px; +overflow:auto; +background:#eeeeee; +margin:20px 0; +padding:13px; +border:1px solid #aaaaaa; +} + +div.intro ul { +float:left; +margin:5px 0; +color:#006699; +} + +div.intro li { +font-size:18px; +margin:2px 0; +} + +div.intro hr { +width:92%; +margin:5px 4%; +margin-bottom:0; +float:left; +} + +div.intro span { +width:92%; +margin:0px 4%; +margin-bottom:0; +font-size:20px; +overflow:auto; +float:left; +color:#006699; +} + +div.photos { +margin:20px 0; +} + +ul.photos { +margin:0; +padding:0; +width:100%; +float:left; +list-style-type:none; +} + +ul.photos li { +float:left; +width:270px; +height:240px; +border:1px solid gray; +padding:10px; +margin:10px; +} + + +ul.photos li:hover { +background: #dddddd; +} + +ul.photos a { +margin:0; +padding:0; +} + +ul.photos img { +width:100%; +} + +ul.photos div { +margin:10px auto; +color:black; +width:80px; +font-size:18px; +} + +div.photo_view { +margin:20px 0; +width:100%; +} + + +div.photo_view img { +width:100%; +} + +p { +font-size:20px; +} + +ul.word span { +background:#eeeeee; +overflow:auto; +} + +ul.word li.content { +margin:20px 0; +} + +ul.word img { +margin:20px; +margin-left:0; +} + +ul.word img.left { +margin:20px; +float:left; +margin-left:0px; +} + + +ul.word img.right { +margin:20px; +float:right; +margin-right:0px; +} + + +ul.word img.center{ +margin:20px 0px; +} + +ul.word img.w100 { +width:100%; +margin:20px 0; +} + +ul.word img.w50{ +width:50%; +} + +ul.word img.w40{ +width:40%; +} + +ul.word img.w60{ +width:60%; +} + +ul.word img.w30{ +width:30%; +} + +ul.word img.w70{ +width:70%; +} + + +ul.word img.w80{ +width:80%; +} + +div.page { +width:200px; +margin:20px auto; +} + +a.photo { +background:none; +padding:0; +margin:0; +} + diff --git a/static/css/style0803.css b/static/css/style0803.css new file mode 100644 index 0000000..37544eb --- /dev/null +++ b/static/css/style0803.css @@ -0,0 +1,693 @@ +body{ +margin:0; +padding:0; +} + +div.body { +width:80%; +background:white; +margin:0px auto; +padding:0px; +overflow:auto; +} + +a{ +text-decoration:none; +color:black; +font-size:20px; +padding:2px 5px; +} + +a:hover { +color:white; +background:black; +} + +a.active { +color:white; +background:black; +} + +h3 { +margin:20px 0; +font-size:22px; +} + +div.h3 { +font-size:24px; +} + +a.h3 { +font-size:24px; +} + +div.h4 { +font-size:20px; +color:black; +background:#eeeeee; +padding:10px 2%; +border:1px solid #aaaaaa; +margin-bottom:20px; +} + +a.h4 { +font-size:20px; +} + +ul.article { +color:black; +} + +ul.article li { +margin:8px 0; +} + +ul.article li a { +font-size:20px; +} + +ul.article li span{ +color:black; +} + +div.shelf{ +width:70%; +margin:0px auto; +padding:0px; +} + +div.head{ +width:100%; +color:black; +overflow:auto; +text-align:center; +} + +div.head h1 { +font-size:35px; +margin:10px; +margin-top:20px; +} + +div.head h2 { +font-size:20px; +margin:5px; +font-weight:normal; +} + +div.menu { +background:black; +width:100%; +margin:8px 0; +overflow:auto; +text-align:center; +} + +div.menu ul{ +float: left; +width: 90%; +margin: 0% 5%; +padding: 0; +list-style-type:none; +} + +div.menu ul li { +padding:0; +margin:0; +width:14.2%; +float:left; +} + +div.menu ul li a { +width:80%; +float:left; +margin:0 2%; +padding:8px 8%; +color:white; +font-size: 20px; +} + +div.menu ul li a:hover { +color:white; +background:#bbbbbb; +} + +div.menu ul li a.selected { +color:white; +background:#bbbbbb; +} + +div.profile { +margin:5px auto; +padding:10px; +border: 1px solid gray; +width:300px; +overflow:auto; +} + +img.profile { +width:100%; +} + +p{ +font-size: 18px; +} + +div.foot { +float:left; +width:100%; +text-align:center; +overflow:auto; +padding:20px 0; +border-top: 1px dashed gray; +margin:30px 0; +#background:#eeeeee; +color:gray; +} + +pre { +font-size:18px; +} + +div.events { +background: red; +overflow:auto; +} + +h3.title { +margin:0; +padding:0; +font-size:24px; +} + +hr { +margin: 20px 0; +} + +div.photo img { +float:left; +margin:auto; +} + +div.photo { +height:210px; +width:210px; +float:left; +margin:5px; +padding:5px; +} + + +div.word { +margin:20px auto; +margin-bottom:50px; +overflow:auto; +} + +table.words { +width:100%; +} + +table.words tr{ +width:100%; +} + +table.words th { +font-weight: normal; +width:15%; +font-size:18px; +} + +table.words td { +width:85%; +font-size:18px; +} + +table.words input { +width:95%; +padding:5px; +border: 1px solid #bbbbbb; +font-size:18px; +} + +table.words input.submit { +float:right; +width:100px; +margin-right:5%; +padding:2px; +} + + +table.words textarea { +width:95%; +height:100px; +padding:5px; +border: 1px solid #bbbbbb; +font-size:18px; +} + +a.word_create { +float:right; +} + +div.line { +overflow:auto; +width:100%; +} + +div.m20 { +width:100%; +margin:20px auto; +} + +div.vedio { +width:100%; +margin:20px 0 60px 0; +} + +div.words { +width:70%; +margin:0 auto; +} + +h4 { +margin:0; +padding:0; +} + +ul.word { +margin:0px 0; +padding:0; +float:left; +width:100%; +list-style-type:none; +} + +ul.word li { +margin:3px 0; +float:left; +width:100%; +font-size:20px; +} + +ul.word li.gray { +color:gray; +} + +ul.word li.gray a { +color:gray; +font-size:20px; +} + + +ul.word li.author { +color:gray; +font-size:16px; +} + +ul.words { +margin:20px 0; +padding:0; +float:left; +width:100%; +list-style-type:none; +} + +ul.words li { +margin:3px 0; +float:left; +width:100%; +font-size:20px; +} + +ul.words li.gray { +color:gray; +} + +ul.words li.gray a { +color:gray; +font-size:20px; +} + + +ul.words li.author { +color:gray; +font-size:16px; +} + + +div.login { +margin:50px auto ; +width:300px; +} + +table.words textarea.content { +width:100%; +height:400px; +padding:5px; +border: 1px solid #bbbbbb; +font-size:18px; +} + + + +table.upload img{ +width:200px; +} + +table.upload td{ +padding:0px 20px; +} + +span.right { +float:right; +color:black; +font-size:18px; +} + +span.content { +color:gray; +} + +a.button { +background:#bbbbbb; +color:black; +border:1px solid gray; +padding:3px 7px; +} + +a.button:hover { +color:white; +background:#444444; +} + +ul.catalog li { +margin:10px 0; +} + + +div.content { + width:77%; + padding:0; + overflow:auto; + float:right; +} + +div.intro { +width:22%; +overflow:auto; +background:#eeeeee; +margin:0; +padding:0; +padding-bottom:10px; +border:1px solid #aaaaaa; +float:left; +} + +div.intro ul { + width:100%; +float:left; +margin:0; +color:black; +padding:0; +list-style : none; +} + +div.intro li { +width:80%; +padding:6px 10%; +} + + +div.intro li a { +font-size:20px; +} + + +div.intro hr { +width:92%; +color:#aaaaaa; +margin:10px 4%; +float:left; +} + +div.intro span { +margin:12px 10%; +margin-bottom:0; +font-size:22px; +overflow:auto; +float:left; +} + +div.photos { +margin:20px 0; +} + +ul.photos { +margin:0; +padding:0; +width:100%; +float:left; +list-style-type:none; +} + +ul.photos li { +float:left; +width:285px; +height:240px; +border:1px solid gray; +padding:10px; +margin:10px; +} + + +ul.photos li:hover { +color:white; +background:#dddddd; +} + +ul.photos a { +margin:0; +padding:0; +} + +ul.photos img { +width:100%; +} + +ul.photos div { +margin:10px auto; +color:black; +width:80px; +font-size:20px; +} + +div.photo_view { +margin:20px 0; +width:100%; +} + + +div.photo_view img { +width:100%; +} + +p { +font-size:20px; +} + +ul.word span { +background:#eeeeee; +overflow:auto; +} + +ul.word li.content { + width:100%; + float:left; +margin:20px 0; +} + +ul.word img { +margin:20px; +margin-left:0; +} + +ul.word img.left { +margin:20px; +float:left; +margin-left:0px; +} + + +ul.word img.right { +margin:20px; +float:right; +margin-right:0px; +} + + +ul.word img.center{ +margin:20px 0px; +} + +ul.word img.w100 { +width:100%; +margin:20px 0; +} + +ul.word img.w50{ +width:50%; +} + +ul.word img.w40{ +width:40%; +} + +ul.word img.w60{ +width:60%; +} + +ul.word img.w30{ +width:30%; +} + +ul.word img.w70{ +width:70%; +} + + +ul.word img.w80{ +width:80%; +} + +div.page { +width:250px; +margin:20px auto; +} + +a.photo { +background:none; +padding:0; +margin:0; +} + +table.events { + width:100%; +font-size:20px; +} + +table.events td { +padding:0 10px; +} + +table.events td.t1 { +width:220px; +} + +table.events td.t2 { +width:100px; +} + + +div.bottom { +width:100%; +margin-bottom:100px; +float:left; +} + + +ul.vedio{ +margin:20px 0; +padding:0; +float:left; +width:100%; +list-style-type:none; +} + +ul.vedio li { +width:18%; +margin:1%; +text-align:center; +float:left; +} + +ul.vedio li img { +width:93%; +padding:3%; +border:1px solid gray; +} + + +ul.vedio li a:hover { +color:black; +background:none; +width:100%; +} + +ul.vedio li span { +width:100%; +color:gray; +font-size:18px; +} + +div.article { + padding:0 3%; +} + +div.book{ +width:350px; +float:left; +margin:0px 0; +padding:0; +height:220px; +} + +div.book img { + padding:0; + margin:0; +} + +div.book span{ + background:white; + } + +div.book span.img{ +float:left; +width:140px; +padding:0; +margin:0; +} + +div.book img{ +width:90%; +float:left; +} + +div.book span.title{ +float:left; +margin:0; +padding:0; +width:55%; +} + +div.book ul { +margin:0; +padding:0; +list-style-type:none; +float:left; +} + +div.book ul li { +margin:0; +padding:0; +float:left; +width:100%; +font-size:18px; +color:gray; +} + +div.book ul li.title { +color:#006699; +margin-bottom:8px; +} + diff --git a/static/css/style1031.css b/static/css/style1031.css new file mode 100644 index 0000000..605047a --- /dev/null +++ b/static/css/style1031.css @@ -0,0 +1,696 @@ +body{ +margin:0; +padding:0; +} + +div.body { +width:80%; +background:white; +margin:0px auto; +padding:0px; +overflow:auto; +} + +a{ +text-decoration:none; +color:black; +font-size:20px; +padding:2px 5px; +} + +a:hover { +color:white; +background:black; +} + +a.active { +color:white; +background:black; +} + +h3 { +margin:20px 0; +font-size:22px; +} + +div.h3 { +font-size:24px; +} + +a.h3 { +font-size:24px; +} + +div.h4 { +font-size:20px; +color:black; +background:#eeeeee; +padding:10px 2%; +border:1px solid #aaaaaa; +margin-bottom:20px; +} + +a.h4 { +font-size:20px; +} + +ul.article { +color:black; +} + +ul.article li { +margin:8px 0; +} + +ul.article li a { +font-size:20px; +} + +ul.article li span{ +color:black; +} + +div.shelf{ +width:70%; +margin:0px auto; +padding:0px; +} + +div.head{ +width:100%; +color:black; +overflow:auto; +text-align:center; +} + +div.head h1 { +font-size:35px; +margin:10px; +margin-top:20px; +} + +div.head h2 { +font-size:20px; +margin:5px; +font-weight:normal; +} + +div.menu { +background:black; +width:100%; +margin:8px 0; +overflow:auto; +text-align:center; +} + +div.menu ul{ +float: left; +width: 90%; +margin: 0% 5%; +padding: 0; +list-style-type:none; +} + +div.menu ul li { +padding:0; +margin:0; +width:14.2%; +float:left; +} + +div.menu ul li a { +width:80%; +float:left; +margin:0 2%; +padding:8px 8%; +color:white; +font-size: 20px; +} + +div.menu ul li a:hover { +color:white; +background:#bbbbbb; +} + +div.menu ul li a.selected { +color:white; +background:#bbbbbb; +} + +div.profile { +margin:5px auto; +padding:10px; +border: 1px solid gray; +width:300px; +overflow:auto; +} + +img.profile { +width:100%; +} + +p{ +font-size: 18px; +} + +div.foot { +float:left; +width:100%; +text-align:center; +overflow:auto; +padding:20px 0; +border-top: 1px dashed gray; +margin:30px 0; +#background:#eeeeee; +color:gray; +} + +pre { +font-size:18px; +} + +div.events { +background: red; +overflow:auto; +} + +h3.title { +margin:0; +padding:0; +font-size:24px; +} + +hr { +margin: 20px 0; +} + +div.photo img { +float:left; +margin:auto; +} + +div.photo { +height:210px; +width:210px; +float:left; +margin:5px; +padding:5px; +} + + +div.word { +margin:20px auto; +margin-bottom:50px; +overflow:auto; +} + +table.words { +width:100%; +} + +table.words tr{ +width:100%; +} + +table.words th { +font-weight: normal; +width:15%; +font-size:18px; +} + +table.words td { +width:85%; +font-size:18px; +} + +table.words input { +width:95%; +padding:5px; +border: 1px solid #bbbbbb; +font-size:18px; +} + +table.words input.submit { +float:right; +width:100px; +margin-right:5%; +padding:2px; +} + + +table.words textarea { +width:95%; +height:100px; +padding:5px; +border: 1px solid #bbbbbb; +font-size:18px; +} + +a.word_create { +float:right; +} + +div.line { +overflow:auto; +width:100%; +} + +div.m20 { +width:100%; +margin:20px auto; +} + +div.vedio { +width:100%; +margin:20px 0 60px 0; +} + +div.words { +width:70%; +margin:0 auto; +} + +h4 { +margin:0; +padding:0; +} + +ul.word { +margin:0px 0; +padding:0; +float:left; +width:100%; +list-style-type:none; +} + +ul.word li { +margin:3px 0; +float:left; +width:100%; +font-size:20px; +} + +ul.word li.gray { +color:gray; +} + +ul.word li.gray a { +color:gray; +font-size:20px; +} + + +ul.word li.author { +color:gray; +font-size:16px; +} + +ul.words { +margin:20px 0; +padding:0; +float:left; +width:100%; +list-style-type:none; +} + +ul.words li { +margin:3px 0; +float:left; +width:100%; +font-size:20px; +} + +ul.words li.gray { +color:gray; +} + +ul.words li.gray a { +color:gray; +font-size:20px; +} + + +ul.words li.author { +color:gray; +font-size:16px; +} + + +div.login { +margin:50px auto ; +width:300px; +} + +table.words textarea.content { +width:100%; +height:400px; +padding:5px; +border: 1px solid #bbbbbb; +font-size:18px; +} + + + +table.upload img{ +width:200px; +} + +table.upload td{ +padding:0px 20px; +} + +span.right { +float:right; +color:black; +font-size:18px; +} + +span.content { +color:gray; +} + +a.button { +background:#bbbbbb; +color:black; +border:1px solid gray; +padding:3px 7px; +} + +a.button:hover { +color:white; +background:#444444; +} + +ul.catalog li { +margin:10px 0; +} + + +div.content { + width:75%; + padding:0; + overflow:auto; + float:right; +} + +div.intro { +width:24%; +overflow:auto; +background:#eeeeee; +margin:0; +padding:0; +padding-bottom:10px; +border:1px solid #aaaaaa; +float:left; +} + +div.intro ul { + width:100%; +float:left; +margin:0; +color:black; +padding:0; +list-style : none; +} + +div.intro li { +width:80%; +padding:6px 10%; +} + + +div.intro li a { +font-size:20px; +} + + +div.intro hr { +width:92%; +color:#aaaaaa; +margin:10px 4%; +float:left; +} + +div.intro span { +margin:12px 10%; +margin-bottom:0; +font-size:22px; +overflow:auto; +float:left; +} + +div.photos { +margin:20px 0; +} + +ul.photos { +margin:0; +padding:0; +width:100%; +float:left; +list-style-type:none; +} + +ul.photos li { +float:left; +width:270px; +height:230px; +border:1px solid gray; +padding:10px; +margin:10px; +} + + +ul.photos li:hover { +color:white; +#background:#dddddd; +} + +ul.photos a { +margin:0; +padding:0; +} + +ul.photos img { +width:100%; +} + +ul.photos div { +margin:10px auto; +color:black; +width:80px; +font-size:20px; +} + +div.photo_view { +margin:20px 0; +width:100%; +} + + +div.photo_view img { +width:100%; +} + +p { +font-size:20px; +} + +ul.word span { +background:#eeeeee; +overflow:auto; +} + +ul.word li.content { + width:100%; + float:left; +margin:20px 0; +} + +ul.word img { +margin:20px; +margin-left:0; +} + +ul.word img.left { +margin:20px; +float:left; +margin-left:0px; +} + + +ul.word img.right { +margin:20px; +float:right; +margin-right:0px; +} + + +ul.word img.center{ +margin:20px 0px; +} + +ul.word img.w100 { +width:100%; +margin:20px 0; +} + +ul.word img.w50{ +width:50%; +} + +ul.word img.w40{ +width:40%; +} + +ul.word img.w60{ +width:60%; +} + +ul.word img.w30{ +width:30%; +} + +ul.word img.w70{ +width:70%; +} + + +ul.word img.w80{ +width:80%; +} + +div.page { +width:250px; +margin:20px auto; +} + +a.photo { +background:none; +padding:0; +margin:0; +color:white; +background:white; +} + + +table.events { + width:100%; +font-size:20px; +} + +table.events td { +padding:0 10px; +} + +table.events td.t1 { +width:220px; +} + +table.events td.t2 { +width:100px; +} + + +div.bottom { +width:100%; +margin-bottom:100px; +float:left; +} + + +ul.vedio{ +margin:20px 0; +padding:0; +float:left; +width:100%; +list-style-type:none; +} + +ul.vedio li { +width:18%; +margin:1%; +text-align:center; +float:left; +} + +ul.vedio li img { +width:93%; +padding:3%; +border:1px solid gray; +} + + +ul.vedio li a:hover { +color:black; +background:none; +width:100%; +} + +ul.vedio li span { +width:100%; +color:gray; +font-size:18px; +} + +div.article { + padding:0 3%; +} + +div.book{ +width:340px; +float:left; +margin:0px 0; +padding:0; +height:220px; +} + +div.book img { + padding:0; + margin:0; +} + +div.book span{ + background:white; + } + +div.book span.img{ +float:left; +width:140px; +padding:0; +margin:0; +} + +div.book img{ +width:90%; +float:left; +} + +div.book span.title{ +float:left; +margin:0; +padding:0; +width:55%; +} + +div.book ul { +margin:0; +padding:0; +list-style-type:none; +float:left; +} + +div.book ul li { +margin:0; +padding:0; +float:left; +width:100%; +font-size:18px; +color:gray; +} + +div.book ul li.title { +color:#006699; +margin-bottom:8px; +} + diff --git a/static/css/style1121.css b/static/css/style1121.css new file mode 100644 index 0000000..b5dc874 --- /dev/null +++ b/static/css/style1121.css @@ -0,0 +1,778 @@ +body{ +margin:0; +padding:0; +} + +div.body { +width:1000px; +background:white; +margin:0px auto; +padding:0px; +overflow:auto; +} + +a{ +text-decoration:none; +color:black; +font-size:20px; +padding:2px 5px; +} + +a:hover { +color:white; +background:black; +} + +a.none { +background:white; +} + +a.none:hover { +background:white; +} + +a.f16 { +font-size:16px; +} + +a.green { +color:green; +} + +a.green:hover { +color:white; +background:green; +} + +a.active { +color:white; +background:black; +} + +h3 { +margin:20px 0; +font-size:22px; +} + +div.h3 { +font-size:24px; +} + +a.h3 { +font-size:24px; +} + +div.h4 { +font-size:20px; +color:black; +background:#eeeeee; +padding:10px 2%; +border:1px solid #aaaaaa; +margin-bottom:20px; +} + +a.h4 { +font-size:20px; +} + +ul.article { +color:black; +} + +ul.article li { +margin:8px 0; +} + +ul.article li a { +font-size:20px; +} + +ul.article li span{ +color:black; +} + +div.shelf{ +width:70%; +margin:0px auto; +padding:0px; +} + +div.head{ +width:100%; +color:black; +overflow:auto; +text-align:center; +} + +div.head h1 { +font-size:35px; +margin:10px; +margin-top:20px; +} + +div.head h2 { +font-size:20px; +margin:5px; +font-weight:normal; +} + +div.menu { +background:black; +width:100%; +margin:8px 0; +overflow:auto; +text-align:center; +} + +div.menu ul{ +float: left; +width: 90%; +margin: 0% 5%; +padding: 0; +list-style-type:none; +} + +div.menu ul li { +padding:0; +margin:0; +width:14.2%; +float:left; +} + +div.menu ul li a { +width:80%; +float:left; +margin:0 2%; +padding:8px 8%; +color:white; +font-size: 20px; +} + +div.menu ul li a:hover { +color:white; +background:#bbbbbb; +} + +div.menu ul li a.selected { +color:white; +background:#bbbbbb; +} + +div.profile { +margin:5px auto; +padding:10px; +border: 1px solid gray; +width:300px; +overflow:auto; +} + +img.profile { +width:100%; +} + +p{ +font-size: 18px; +} + +div.foot { +float:left; +width:100%; +text-align:center; +overflow:auto; +padding:20px 0; +border-top: 1px dashed gray; +margin:30px 0; +#background:#eeeeee; +color:gray; +} + +pre { +font-size:18px; +} + +div.events { +background: red; +overflow:auto; +} + +h3.title { +margin:0; +padding:0; +font-size:24px; +} + +hr { +margin: 20px 0; +} + +div.photo img { +float:left; +margin:auto; +} + +div.photo { +height:210px; +width:210px; +float:left; +margin:5px; +padding:5px; +} + + +div.word { +margin:20px auto; +margin-bottom:50px; +overflow:auto; +} + +table.words { +width:100%; +} + +table.words tr{ +width:100%; +} + +table.words th { +font-weight: normal; +width:15%; +font-size:18px; +} + +table.words td { +width:85%; +font-size:18px; +} + +table.words input { +width:95%; +padding:5px; +border: 1px solid #bbbbbb; +font-size:18px; +} + +table.words input.submit { +float:right; +width:100px; +margin-right:5%; +padding:2px; +} + + +table.words textarea { +width:95%; +height:100px; +padding:5px; +border: 1px solid #bbbbbb; +font-size:18px; +} + +a.word_create { +float:right; +} + +div.line { +overflow:auto; +width:100%; +} + +div.m20 { +width:100%; +margin:20px auto; +} + +div.vedio { +width:100%; +margin:20px 0 60px 0; +} + +div.words { +width:70%; +margin:0 auto; +} + +h4 { +margin:0; +padding:0; +} + +ul.word { +margin:0px 0; +padding:0; +float:left; +width:100%; +list-style-type:none; +} + +ul.word li { +margin:3px 0; +float:left; +width:100%; +font-size:20px; +} + +ul.word li.gray { +color:gray; +} + +ul.word li.gray a { +color:gray; +font-size:20px; +} + + +ul.word li.author { +color:gray; +font-size:16px; +} + +ul.words { +margin:20px 0; +padding:0; +float:left; +width:100%; +list-style-type:none; +} + +ul.words li { +margin:3px 0; +float:left; +width:100%; +font-size:20px; +} + +ul.words li.gray { +color:gray; +} + +ul.words li.gray a { +color:gray; +font-size:20px; +} + + +ul.words li.author { +color:gray; +font-size:16px; +} + + +div.login { +margin:50px auto ; +width:300px; +} + +table.words textarea.content { +width:100%; +height:400px; +padding:5px; +border: 1px solid #bbbbbb; +font-size:18px; +} + + + +table.upload img{ +width:200px; +} + +table.upload td{ +padding:0px 20px; +} + +span.right { +float:right; +color:black; +font-size:18px; +} + +span.content { +color:gray; +} + +a.button { +background:#bbbbbb; +color:black; +border:1px solid gray; +padding:3px 7px; +} + +a.button:hover { +color:white; +background:#444444; +} + +ul.catalog li { +margin:10px 0; +} + + +div.content { + width:75%; + padding:0; + overflow:auto; + float:right; +} + +div.intro { +width:24%; +overflow:auto; +background:#eeeeee; +margin:0; +padding:0; +padding-bottom:10px; +border:1px solid #aaaaaa; +float:left; +} + +div.intro ul { + width:100%; +float:left; +margin:0; +color:black; +padding:0; +list-style : none; +} + +div.intro li { +width:80%; +padding:6px 10%; +} + + +div.intro li a { +font-size:20px; +} + + +div.intro hr { +width:92%; +color:#aaaaaa; +margin:10px 4%; +float:left; +} + +div.intro span { +margin:12px 10%; +margin-bottom:0; +font-size:22px; +overflow:auto; +float:left; +} + +div.photos { +margin:20px 0; +} + +ul.photos { +margin:0; +padding:0; +width:100%; +float:left; +list-style-type:none; +} + +ul.photos li { +float:left; +width:270px; +height:230px; +border:1px solid gray; +padding:10px; +margin:10px; +} + + +ul.photos li:hover { +color:white; +#background:#dddddd; +} + +ul.photos a { +margin:0; +padding:0; +} + +ul.photos img { +width:100%; +} + +ul.photos div { +margin:10px auto; +color:black; +width:80px; +font-size:20px; +} + +div.photo_view { +margin:20px 0; +width:100%; +} + + +div.photo_view img { +width:100%; +} + +p { +font-size:20px; +} + +ul.word span { +background:#eeeeee; +overflow:auto; +} + +ul.word li.content { + width:100%; + float:left; +margin:20px 0; +} + +ul.word img { +margin:20px; +margin-left:0; +} + +ul.word img.left { +margin:20px; +float:left; +margin-left:0px; +} + + +ul.word img.right { +margin:20px; +float:right; +margin-right:0px; +} + + +ul.word img.center{ +margin:20px 0px; +} + +ul.word img.w100 { +width:100%; +margin:20px 0; +} + +ul.word img.w50{ +width:50%; +} + +ul.word img.w40{ +width:40%; +} + +ul.word img.w60{ +width:60%; +} + +ul.word img.w30{ +width:30%; +} + +ul.word img.w70{ +width:70%; +} + + +ul.word img.w80{ +width:80%; +} + +div.page { +width:250px; +margin:20px auto; +} + +a.photo { +background:none; +padding:0; +margin:0; +color:white; +background:white; +} + + +table.events { + width:100%; +font-size:20px; +} + +table.events td { +padding:0 10px; +} + +table.events td.t1 { +width:220px; +} + +table.events td.t2 { +width:100px; +} + + +div.bottom { +width:100%; +margin-bottom:100px; +float:left; +} + + +ul.vedio{ +margin:20px 0; +padding:0; +float:left; +width:100%; +list-style-type:none; +} + +ul.vedio li { +width:18%; +margin:1%; +text-align:center; +float:left; +} + +ul.vedio li img { +width:93%; +padding:3%; +border:1px solid gray; +} + + +ul.vedio li a:hover { +color:black; +background:none; +width:100%; +} + +ul.vedio li span { +width:100%; +color:gray; +font-size:18px; +} + +div.article { + padding:0 3%; +} + +div.book{ +width:340px; +float:left; +margin:0px 0; +padding:0; +height:220px; +} + +div.book img { + padding:0; + margin:0; +} + +div.book span{ + background:white; + } + +div.book span.img{ +float:left; +width:140px; +padding:0; +margin:0; +} + +div.book img{ +width:90%; +float:left; +} + +div.book span.title{ +float:left; +margin:0; +padding:0; +width:55%; +} + +div.book ul { +margin:0; +padding:0; +list-style-type:none; +float:left; +} + +div.book ul li { +margin:0; +padding:0; +float:left; +width:100%; +font-size:18px; +color:gray; +} + +div.book ul li.title { +color:#006699; +margin-bottom:8px; +} + +div.activity { +background: #eeeeee; +border:1px dashed gray; +padding:5px 20px; +font-size:20px; +} + +div.activity p { +font-size:18px; +} + +div.activity ul { +list-style-type:none; +padding:0px; +font-size:18px; +} + +div.activity li { +padding:2px 0px; +} + + +div.activity li.h { +font-size:20px; +} + +a.email { +color:green; +background:white; +} + +a.email:hover { +color:green; +background:white; +} + +div.activity-img { +width:80%; +margin:0 auto; +} + +div.activity-img img { +width:100%; +margin:0; +} + +span.green { +text-decoration:underline; +} + +div.index-activity { +margin-top:40px; +float:right; +} + +div.index-activity a { +font-size:16px; +text-decoration:underline; +} + + diff --git a/static/icon210 b/static/icon210 new file mode 120000 index 0000000..6399c81 --- /dev/null +++ b/static/icon210 @@ -0,0 +1 @@ +/home/tizac/camp/sites/static/icon210 \ No newline at end of file diff --git a/static/img b/static/img new file mode 120000 index 0000000..89dd082 --- /dev/null +++ b/static/img @@ -0,0 +1 @@ +/home/tizac/camp/sites/static/img \ No newline at end of file diff --git a/static/photo b/static/photo new file mode 120000 index 0000000..d2f0ff9 --- /dev/null +++ b/static/photo @@ -0,0 +1 @@ +/home/tizac/camp/sites/static/photo \ No newline at end of file diff --git a/static/vedio_img b/static/vedio_img new file mode 120000 index 0000000..d2d5108 --- /dev/null +++ b/static/vedio_img @@ -0,0 +1 @@ +/home/tizac/camp/sites/static/vedio_img \ No newline at end of file diff --git a/templates/activity.html b/templates/activity.html new file mode 100644 index 0000000..c296345 --- /dev/null +++ b/templates/activity.html @@ -0,0 +1,93 @@ +$def with () + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ + + + +
+ + +

+由冬冬翻译的黑暗物质三部曲第一部《黄金罗盘》已印制完毕。经清华大学登山队记念冬冬协调小组的协商,决定向冬冬的朋友们免费赠送此书,以此记住冬冬。 +

+ + +
+ + + +
+ +

+图书成品由两本书和6个书签组成,塑封成一体。两本书的内容完全一样,仅封面设计不同。 +总共印制2000本,即1000套书,数量有限。
+

+ +

+如有意收藏此书,可发邮件至,并请在标题注明索取冬冬样书。 +

+ +
+
    +
  • +索取样书注意事项如下:
  • +
  • +(1) 所有有意收藏此图书的冬冬的朋友,均可以来信索取此书,因数量有限,每人限两套; +
  • +
  • +(2) 图书为免费赠送,并采取快递形式寄出,由于资金受限,快递费用采取到付形式,由收书人支付; +
  • +
  • +(3) 因工作原因,无法保证随时邮寄,但保证每周或者每两周快递一次; +
  • +
  • +(4) 您提供的快递地址务必详细,必须包括收件人、收件地址、邮编、手机号及索要套数。 +
  • +
  • +(5) 如果想一个地址解决多人问题,我们欢迎,但必须写明都是哪些冬冬的朋友所要,具体原因请见第(1)条。 +
  • +
+
+ +

+感谢清华大学登山队严冬冬纪念基金提供的资金资助,感谢那些在本书出版过程中提供帮助的朋友们,感谢Philip Pullman写了一本冬冬喜欢的书,感谢冬冬又为我们提供了一本好书,最后也感谢为记住冬冬所做的所有努力。 +

+ + +
+ +

+最后再做如下声明:
+本书的翻译纯为爱好者的兴趣之作,目的完全在于交流。
+本书的印刷只是为了记念冬冬,记住冬冬对本书的爱和执着。
+本书并未取得出版商或原作者同意,请任何组织或个人不要将本书任何部分用作商业用途!
+

+

+如果你也深爱着莱拉和威尔,瑟拉菲娜和伊欧雷克,还有他们的世界,请购买正版。
+英文版:The Golden Compass,Philip Pullman,New York Random House-Laurel Leaf,1995
+中文版:黄金罗盘,[英]普尔曼著,周景兴译,上海译文出版社,2008
+

+ +
+ +
+ diff --git a/templates/article_edit.html b/templates/article_edit.html new file mode 100644 index 0000000..28c5b23 --- /dev/null +++ b/templates/article_edit.html @@ -0,0 +1,87 @@ +$def with (article, catalog) + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ +
+ + + + + + + + + $if article.time: + + $else: + + + + + + + + + + + + + + + + + + + +
标题:
发表时间:
来源:
分类: + +
内容:
+
+
+ +
+$if session.get('isAdmin','1'): + 上传图片 +
+ +
+ +$for img in article.image: + + + + + +
<img class="w80" src="/static/img/$img.name"> +
+ +
+
+
+ + diff --git a/templates/article_image_upload.html b/templates/article_image_upload.html new file mode 100644 index 0000000..005c6db --- /dev/null +++ b/templates/article_image_upload.html @@ -0,0 +1,34 @@ +$def with (article) + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ + +
+ +
+ +
+ +
+ + +
diff --git a/templates/article_view.html b/templates/article_view.html new file mode 100644 index 0000000..e599546 --- /dev/null +++ b/templates/article_view.html @@ -0,0 +1,76 @@ +$def with (catalogs, catalog, article) + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ +
+目录 +
+
    + $for c in catalogs: + $if c.id == catalog.id: +
  • $c.name
  • + $else: +
  • $c.name
  • +
+
+ + +
+ +
+> +$if article.catalog.id<100: + 冬冬文集 +$else: + 追忆文章 +>$article.catalog.name +> + $article.title +
+ +$if session.get('isAdmin','1'): + + +
+
    +
  • + $article.title +

    +
  • + $if article.time: +
  • 发表时间:$article.time.date()
  • + $if article.source: +
  • 原文链接:$article.source
  • +
  • $:article.content_to_html()
  • +
+
+ +
diff --git a/templates/articles.html b/templates/articles.html new file mode 100644 index 0000000..0b73d30 --- /dev/null +++ b/templates/articles.html @@ -0,0 +1,52 @@ +$def with (catalogs) + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ +
+目录 +
+ +
+ + +
+$for catalog in catalogs: + +
+ + $catalog.name...(共$catalog.count篇) + + +
+
diff --git a/templates/articles_create.html b/templates/articles_create.html new file mode 100644 index 0000000..eef9440 --- /dev/null +++ b/templates/articles_create.html @@ -0,0 +1,62 @@ +$def with (catalog, catalogs) + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
标题:
发表时间:
来源:
分类: + +
内容:
+
+
diff --git a/templates/base.html b/templates/base.html new file mode 100644 index 0000000..877e3ec --- /dev/null +++ b/templates/base.html @@ -0,0 +1,23 @@ +$def with (page) + + + + + + + + + 严冬冬 + + + +
+ + $:page + + +
+ 任何与本网站相关事宜,敬请联系 Remembering.dongdong@gmail.com +
+
+ diff --git a/templates/catalog.html b/templates/catalog.html new file mode 100644 index 0000000..b91de24 --- /dev/null +++ b/templates/catalog.html @@ -0,0 +1,72 @@ +$def with (catalogs, catalog, articles) + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ +
+目录 +
+
    + $for c in catalogs: + $if c.id == catalog.id: +
  • $c.name
  • + $else: +
  • $c.name
  • +
+
+ + +
+ +
+> +$if catalog.id<100: + 冬冬文集 +$else: + 追忆文章 +>$catalog.name +
+ + +
+$if session.get('isAdmin','1'): + 添加文章 +
+ +
    +$for article in articles: +
  • + $if session.get('isAdmin','1'): + 修改文章 + $article.title + $if article.time: + $article.time.date() + +
  • +
+ +
diff --git a/templates/event.html b/templates/event.html new file mode 100644 index 0000000..cfc77d4 --- /dev/null +++ b/templates/event.html @@ -0,0 +1,58 @@ +$def with (articles, article) + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ + +
+目录 +
+ +
+ + + +
+$if session.get('isAdmin','1'): + + +
+
    +
  • + $article.title +

    +
  • + $if article.time: +
  • 发表时间:$article.time.date()
  • + $if article.source: +
  • 原文链接:$article.source
  • +
  • $:article.content_to_html()
  • +
+
+ +
diff --git a/templates/events_old.html b/templates/events_old.html new file mode 100644 index 0000000..483b7cc --- /dev/null +++ b/templates/events_old.html @@ -0,0 +1,567 @@ +$def with () + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ +

严冬冬(1984年11月16日-2012年7月9日),中国一名自由登山者,自由职业翻译。

+

他出生于辽宁省鞍山市,2001年以鞍山市理科状元身份考入清华大学生命科学与技术系。2002年3月加入清华大学学生山野协会,曾任攀登队长。2005年毕业后仍以技术指导身份随清华登山队攀登雪山。

+

2008年5月8日北京奥运圣火珠峰传递过程中,严冬冬作为登山队后援队员随队登顶,成为首位成功登顶珠穆朗玛峰的清华大学学生。自2009年起,他开辟了幺妹峰中央南壁“自由之魂”等一系列新路线。2009年、2010年、2011年他连续获得中国户外金犀牛奖最佳攀登奖。

+

2012年7月9日,严冬冬在攀登新疆西天山却勒博斯峰下撤途中不幸罹难。

+ + + + +
+

主要攀登经历

+

在校期间户外活动

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
2002年3月某周四 冬冬经由同班同学介绍,于三教3303填写报名表,加入山野协会
2002年4月21日 清华大学户外技能大赛
2002年5月26日 鹫峰-阳台山-妙峰山拉练
2002年5月3-6日 黄华城-慕田峪穿越
2002年6月1日 凤凰岭-阳台山拉练
2002年6月16日 香山拉练
2002年9月21-22日 后山铺-冷风甸-黑龙秘径穿越
2002年10月1-3日 小五台东-中-西台穿越
2002年12月11日 体育代表队响箭晚会,在登山队小品《取经新编》中扮演唐僧
2003年1月18日-1月19日 中国登协技术培训
2003年2月10-14日 小五台雪山模拟
2003年3月7-9日 京东第一瀑-冷风甸-云蒙山公园探路
2003年3月15-16日 云蒙山对穿
2003年3月29-30日 黑坨山探路
2003年4月6日 鹫峰-阳台山拉练
2003年9月21日 鹫峰-阳台山穿越
2003年9月28-30日 德清莫干山登山越野赛
2003年10月5-6日 京东第一瀑-北石城穿越
2003年10月19日 2003北京国际马拉松赛
2003年10月25-26 峥嵘鸟登山节
2003年11月1-2日 西龙门涧-灵山穿越
2003年11月8-9日 百花山联合野营
2003年11月16日 香山-清华公路夜跑庆生
2003年11月23-24日 水泉峪-黑龙密径探路
2003年12月 登协技术培训
2003年12月5-7日 小五台南中西穿越
2004年1月8-10日 冬训攀冰第二批
2004年1月10日-1月12日 攀冰第三批
2004年1月13日-1月15日 小五台西沟上中东山脊探路
2004年1月19日-1月23日 寒假中的自觉锻炼
2004年2月11日-2月14日 雪山模拟第一批
2004年2月17日-2月20日 雪山模拟第二批
2004年3月6日 鹫峰-阳台山拉练
2004年3月7日 野外部香山训练+探路
2004年3月13日 太舟坞-望京亭-快活林拉练
2004年4月10日 海陀拉练
2004年4月24-25日 小五台探路
2004年5月4-7日 小五台北东中西穿越
2004年5月15日 妙峰山负重拉练
2004年9月26日 迎新拉练
2004年10月23日 第四届清华大学校园攀岩赛
2004年11月14日 狼儿峪-阳台山拉练
2004年12月3-5日 云蒙山探路、
2004年12月17-19日 冬季小五台-南中西穿越
2005年1月14-16日 攀冰第一批
2005年1月16-18日 攀冰第二批
2005年1月25-27日 灵山雪山模拟第二批
2005年5月1-4日 小五台五台连穿
2005年9月24-25日 京津冀大学生狼牙山登山节
2005年10月22-23日 小五台中西沟-中台-中南沟探路
2005年11月12日 黄山国际登山节
2005年12月23-25日 攀冰训练
2005年12月30日-2006年1月2日 攀冰训练
2006年1月12-14日 冬训攀冰第一批
2006年1月14-16日 冬训攀冰第二批
2006年1月16-18日 冬训攀冰第三批
2006年2月12日 天仙瀑攀冰
2006年10月4-5日 白河攀岩
2006年12月29-31日 第零批攀冰技术指导
2007年1月26-28日 攀冰比赛
2009年1月14-16日 第一批攀冰技术指导
2009年1月16-18日 第二批攀冰技术指导
+ +
+

在校期间雪山攀登

+ + + + + + + + + +
2002年6月27日-8月5日 清华大学西藏宁金抗沙峰登山队 前站队员 登至海拔6400米
2003年7月9日-7月29日 清华大学西藏桑丹康桑峰科考队 科考队员
2004年6月24日-7月17日 清华大学青海各拉丹东峰登山队 前站队员 登至海拔5900米
2005年6月27日-7月13日 清华大学西藏念青唐古拉中央峰登山队 攀登队长 登至海拔7028米
2006年6月21日-7月21日 清华大学四川雀儿山登山队 技术指导、前站队员 登顶海拔6168米
2007年7月3日-8月5日 清华大学西藏宁金抗沙峰登山队 技术指导、前站 登至海拔7130米
2010年1月27日-2月6日 清华大学四川玄武峰登山队 技术指导 登顶海拔5383米
2010年7月5日-7月23日 两岸清华大学青海各拉丹冬峰登山队 技术指导 登顶海拔6621米
+ +
+

毕业后的攀登活动

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
2006年5月 四川雀儿山侦测式攀登
2007年6月22日-7月2日 青海玉珠峰,港大/清华/北大联合攀登,登至5800米
2007年秋 参加国家登山队珠峰火炬活动集训
2008年2月 西藏启孜峰侧峰,登顶海拔5900米
2008年5月8日 西藏珠穆朗玛峰,北京奥运圣火珠峰传递,登顶海拔8844米
2008年8月 青海岗什卡峰,登顶海拔5250米
2008年10月 四川田海子山,单人探路,登至海拔5200米
2008年12月 四川四姑娘山幺妹峰,中央南壁路线,登至海拔5600米
2008年12月25日 四川半脊峰,单日13小时39分钟,登顶海拔5430米
2009年2月15-19日 四川四姑娘山幺妹峰南壁中央路线,登至海拔5950米
2009年5月2日-11日 四川雪宝顶,SOHU登山队教练,登顶海拔5588米
2009年7月5日-8日 四川阿妣峰,登至海拔5550米
2009年10月4日 西藏希夏邦马中央峰,登顶海拔8012米
2009年11月23-27日 四川四姑娘山幺妹峰,于25日18点10分登顶了幺妹峰南尖顶,开辟中央南壁“自由之魂”(The Free Spirits)新路线,登顶海拔6247米
2010年1月11日 四川尖山子,单日solo,登顶海拔5472米
2010年1月 四川迟布峰,登至海拔5000米
2010年2月8-11日 四川五色山南壁,开辟“另一天”(Another Day)新路线,登顶海拔5430米
2010年5月 西藏东雄峰,开辟“礼物”(Present)新路线,登顶海拔6095米
2010年8月 新疆博格达东侧卫峰
2010年8月18日 四川阿妣峰,单日登顶,开辟阿妣峰西壁“颤抖”(Shivering)新路线,登顶海拔5694米
2010年10月 云南哈巴雪山,登顶海拔5396米
2010年10月 云南玉龙雪山
2010年11月 四川爱德加峰北壁
2010年11月 四川白海子山,登至海拔5350米
2010年12月 西藏宁金抗沙峰,西南-南-东南路线,登顶海拔7206米
2011年1月29-31日 四川阿妣峰,登至海拔5500米
2011年3月 四川嘉子/勒多曼因,登至5200米
2011年5月 西藏纳木那尼III峰及古纳峰侦察攀登
2011年7月 新疆西天山却勒博斯峰,首登4944峰,后攀登却勒博斯西北卫峰,登顶海拔5863米
2011年10月1日-7日 四川贡嘎山域勒多曼因峰,开辟北壁“纪念陈家慧”(Remember Chris)新路线,登顶海拔6112米
2011年10月18日-24日 四川贡嘎山域嘉子峰,开辟西壁“自由之舞”(Liberal Dance)新路线,海拔6540米
2011年10月30日-31日 四川小贡嘎山,开辟“爽”(Thrill)新路线,登顶海拔6027米
2012年1月 四川九架峰Solo,实登弯月顶北脊,登至海拔5050米
2012年3月25日-4月5日 从广西阳朔港至广东深圳历时12天单人划艇,全程614公里
2012年7月9日 新疆西天山却勒博斯峰,登顶却勒博斯峰附近未名峰。登顶海拔5900米。7月9日18时15分,下撤途中至海拔4400米坠入暗冰裂缝,后经队友全力救援无效后不幸罹难
+ +
+

攀登获奖情况

+ + + + + + + + +
2008年 国家体育运动荣誉奖章
2009年 年度中国户外金犀牛奖最佳攀登奖
2009年 年度亚洲金冰镐奖最佳技术攀登奖提名
2010年 上海世博园金冰镐象征奖
2010年 年度中国户外金犀牛奖最佳攀登奖
2011年 嘉子峰西壁新路线登顶获得年度中国户外金犀牛奖最佳攀登奖
2012年 北美重量级登山奖项Mugs Stump
+
+

翻译作品集

+
+ + +
    +
  • 猫头鹰的叫声
  • +
  • 卡尔·希尔森 著
  • +
  • 严冬冬 译
  • +
  • 吉林文史出版社
  • +
  • 2007-2
  • +
+
+
+ +
+ + +
    +
  • 这书能让你戒烟
  • +
  • 亚伦·卡尔
  • +
  • 严冬冬 译
  • +
  • 吉林文史出版社
  • +
  • 2008
  • +
+
+
+ + +
+ + +
    +
  • 心宽一寸 病退一丈
  • +
  • 西瓦妮·古德曼
  • +
  • 严冬冬 译
  • +
  • 吉林文史出版社
  • +
  • 2008-1
  • +
+
+
+ + +
+ + +
    +
  • 水是最好的药Ⅲ
  • +
  • [美]F·巴特曼
  • +
  • 严冬冬 译
  • +
  • 吉林文史出版社
  • +
  • 2008-1 +
+
+
+ + +
+ + +
    +
  • 身体自愈的秘密
  • +
  • [美]倪毛信
  • +
  • 严冬冬 译
  • +
  • 吉林文史出版社
  • +
  • 2008-10
  • +
+
+
+ + + +
+ + +
    +
  • 三杯茶
  • +
  • [美]葛瑞格·摩顿森
  • +
  • 黄玉华/严冬冬 译
  • +
  • 吉林文史出版社
  • +
  • 2009-1
  • +
+
+
+ + + +
+ + +
    +
  • 少有人走的路III : 心灵地图
  • +
  • 托马斯·摩尔
  • +
  • 严冬冬 译
  • +
  • 吉林文史出版社
  • +
  • 2009-4
  • +
+
+
+ + + + + +
+ + +
    +
  • 像女人一样行动 像男人一样思考
  • +
  • 史蒂夫·哈维
  • +
  • 严冬冬 译
  • +
  • 吉林文史出版社
  • +
  • 2009-7
  • +
+
+
+ + + + +
+ + +
    +
  • 极限登山
  • +
  • 德怀特(Mark F.Twight)
  • +
  • 严冬冬 译
  • +
  • 科学出版社
  • +
  • 2009-8
  • +
+
+
+ + + + +
+ + +
    +
  • 365天不抱怨的智慧
  • +
  • [美]派昆
  • +
  • 严冬冬 译
  • +
  • 吉林出版集团
  • +
  • 2009-10-1
  • +
+
+
+ + + + +
+ + +
    +
  • 接纳不完美的自己
  • +
  • 黛比·福特(Ford.D.)
  • +
  • 严冬冬 译
  • +
  • 吉林文史出版社
  • +
  • 2009-11-1
  • +
+
+
+ + + + +
+ + +
    +
  • 登山手册
  • +
  • 克雷格·康纳利
  • +
  • 严冬冬 译
  • +
  • 人民邮电出版社
  • +
  • 2010-1
  • +
+
+
+ + + + +
+ + +
    +
  • 黄金法则
  • +
  • 拿破仑·希尔
  • +
  • 严冬冬 译
  • +
  • 中信出版社
  • +
  • 2010-5
  • +
+
+
+ + + + +
+ + +
    +
  • 催眠术圣经
  • +
  • [美]奥蒙德·麦吉尔
  • +
  • 严冬冬 译
  • +
  • 2010-8
  • +
+
+
+ + + + +
+ + +
    +
  • 完全攀登指南
  • +
  • [英]希尔
  • +
  • 龚海宁/蒙娃 译 严冬冬 审校
  • +
  • 人民邮电出版社
  • +
  • 2010-8
  • +
+
+
+ + + + +
+ + +
    +
  • 国际登山技术手册
  • +
  • 皮特·希尔
  • +
  • 严冬冬 译
  • +
  • 2010-8
  • +
+
+
+ + + + +
+ + +
    +
  • 放养孩子
  • +
  • [美]勒诺·斯科纳兹
  • +
  • 严冬冬 译
  • +
  • 中信出版社
  • +
  • 2010-11-02
  • +
+
+
+ + + + + + +
+ + +
    +
  • 失落的秘密
  • +
  • [美]拿破仑·希尔
  • +
  • 祝东枚/严冬冬 译
  • +
  • 中信出版社
  • +
  • 2011-3
  • +
+
+
+ + + + +
+ + +
    +
  • 与狼共奔的女人
  • +
  • 克拉利萨·品卡罗·埃斯蒂斯
  • +
  • 严冬冬 译
  • +
  • 2011-6
  • +
+
+
+ + + + +
+ + +
    +
  • 少有人走的路:心智成熟的旅程
  • +
  • [美]M·斯科特·派克
  • +
  • 于海生/严冬冬 译
  • +
  • 吉林文史出版社
  • +
  • 2011-6
  • +
+
+
+ + + + +
+ + +
    +
  • 少有人走的路4:心灵地图
  • +
  • 托马斯·摩尔
  • +
  • 严冬冬 译
  • +
  • 吉林文史出版社
  • +
  • 2011-6
  • +
+
+
+ + + + +
+ + +
    +
  • 中国黑室:鲜为人知的中日谍报战
  • +
  • 赫伯特·雅德利
  • +
  • 严冬冬 译
  • +
  • 吉林文史出版社
  • +
  • 2011-9
  • +
+
+
+ + + + +
+ + +
    +
  • 登山手册
  • +
  • 克雷格·康纳利
  • +
  • 严冬冬 译
  • +
  • 2012-1
  • +
+
+
+ + + + +
+ + +
    +
  • 社会动物:爱、性格和成就的潜在根源
  • +
  • [美]布鲁克斯
  • +
  • 佘引/严冬冬 译
  • +
  • 中信出版社
  • +
  • 2012-5
  • +
+
+
+ + + + +
+ + +
    +
  • 随机生存的智慧:黑天鹅语录
  • +
  • [美]纳西姆·塔勒布
  • +
  • 严冬冬 译
  • +
  • 中信出版社
  • +
  • 2012-6-20
  • +
+
+
+ + +
+
+

遇难

+

2012年7月9日,严冬冬攀登新疆西天山却勒博斯峰,登顶却勒博斯峰附近未名峰,登顶海拔5900米。7月9日18时15分,下撤途中至海拔4400米坠入暗冰裂缝,后经队友全力救援无效后不幸罹难。

+
diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..d27e810 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,42 @@ +$def with () + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ + + +
+ +
+ +
+

+ 要跟他保持连接的方法也很简单,就是记住,remember,就这样简单。 + 不需要做任何形式的东西,或者至少不需要刻意去做。 + 但是你心里记住这个人,他的影响就不会那么容易散掉。 +

+

+ ——严冬冬,《纪念陈家慧》 +

+
+ + diff --git a/templates/login.html b/templates/login.html new file mode 100644 index 0000000..aaa07e1 --- /dev/null +++ b/templates/login.html @@ -0,0 +1,26 @@ +$def with () +$if session.isAdmin == 1: +
+ Welcome, Admin. + 返回首页 +
+$else: +
+ +
diff --git a/templates/memories.html b/templates/memories.html new file mode 100644 index 0000000..1f8f3d6 --- /dev/null +++ b/templates/memories.html @@ -0,0 +1,49 @@ +$def with (catalogs) + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ + + +$for catalog in catalogs: + diff --git a/templates/photo_view.html b/templates/photo_view.html new file mode 100644 index 0000000..a5d13ab --- /dev/null +++ b/templates/photo_view.html @@ -0,0 +1,46 @@ +$def with (year, filename, total, idx) + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ + + + + +
+
+ $if idx>0: + <上一张 +     + $if idx+1下一张> +
+
diff --git a/templates/photos.html b/templates/photos.html new file mode 100644 index 0000000..4064ece --- /dev/null +++ b/templates/photos.html @@ -0,0 +1,35 @@ +$def with () + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ +
+ +
diff --git a/templates/photos_year.html b/templates/photos_year.html new file mode 100644 index 0000000..7842475 --- /dev/null +++ b/templates/photos_year.html @@ -0,0 +1,38 @@ +$def with (year, files) + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ + + +
+$for index in range(0,len(files)): +
+ + + +
+
diff --git a/templates/vedio_create.html b/templates/vedio_create.html new file mode 100644 index 0000000..236ea1c --- /dev/null +++ b/templates/vedio_create.html @@ -0,0 +1,53 @@ +$def with (catalogs) + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
视频标题:
视频链接:
分类: + +
+
+
diff --git a/templates/vedio_edit.html b/templates/vedio_edit.html new file mode 100644 index 0000000..01c9d2e --- /dev/null +++ b/templates/vedio_edit.html @@ -0,0 +1,61 @@ +$def with (vedio, catalogs) + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
ID:
视频标题:
视频链接:
分类: + +
+
+
+
diff --git a/templates/vedio_view.html b/templates/vedio_view.html new file mode 100644 index 0000000..1270ec3 --- /dev/null +++ b/templates/vedio_view.html @@ -0,0 +1,39 @@ +$def with (vedio) + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ + + + + +
+ + +
+ + diff --git a/templates/vedios.html b/templates/vedios.html new file mode 100644 index 0000000..c13f504 --- /dev/null +++ b/templates/vedios.html @@ -0,0 +1,122 @@ +$def with (catalogs) + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ + +$if session.get('isAdmin','1'): + + +$for catalog in catalogs: + + + + + diff --git a/templates/words.html b/templates/words.html new file mode 100644 index 0000000..f4aa624 --- /dev/null +++ b/templates/words.html @@ -0,0 +1,49 @@ +$def with (words) + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ + + +
+$for word in words: +
    +
  • $word.title

  • +
  • $word.content
  • +
  • + $if word.author: + $word.author + $else: + 匿名 +    + $word.time.date() +
  • +
  • + $if session.get('isAdmin','1'): + 删除 + 隐藏 + 显示 +
  • + +
+
diff --git a/templates/words_create.html b/templates/words_create.html new file mode 100644 index 0000000..d9b7ddb --- /dev/null +++ b/templates/words_create.html @@ -0,0 +1,46 @@ +$def with () + + + + +
+

严冬冬

+

1984.11.16 - 2012.07.09

+

自由登山者,自由职业翻译

+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + +
标题:
内容:
作者:
+
+
diff --git a/view.py b/view.py new file mode 100644 index 0000000..3bfccde --- /dev/null +++ b/view.py @@ -0,0 +1,278 @@ +#!/usr/bin/python +#coding:utf-8 + +import web +import os + +from model import * +from config import STATIC_PATH, PASSWD +import hashlib + + +render = web.template.render('templates', base='base') + + +#------------------------------ Render Classes ------------------------------ + +class login: + def GET(self): + return render.login() + def POST(self): + i = web.input(username=None, password=None) + if i.username and i.password: + key = hashlib.sha224(i.username+i.password).hexdigest() + if key==PASSWD: + web.ctx.session.isAdmin = 1 + return render.login() + raise web.seeother('/') + +def login_required(func): + def Function(*args): + if web.ctx.session.isAdmin == 0: + return "Pemissions denied" + else: + return func(*args) + return Function + +class logout: + @login_required + def GET(self): + web.ctx.session.isAdmin = 0 + raise web.seeother('/') + +class index: + def GET(self): + return render.index() + +class events: + def GET(self): + raise web.seeother('/event/350') + +class event: + def GET(self, id): + article = web.ctx.orm.query(Article).filter_by(id = id).one() + articles = web.ctx.orm.query(Article).filter(Article.catalog_id==0).all() + return render.event(articles, article) + +class photos: + def GET(self): + return render.photos() + +class photos_year: + def GET(self, year): + photos= os.listdir(STATIC_PATH + '/photo/' + year) + photos.sort() + return render.photos_year(year, photos) + + +class photo_view: + def GET(self, year, idx): + year = str(year) + idx = int(idx) + photos= os.listdir(STATIC_PATH + '/photo/' + year) + photos.sort() + total = len(photos) + if idx>=total: + raise web.seeother('/photo/%s/%s'% (year, idx-1)) + filename = photos[idx] + return render.photo_view(year, filename, total, idx) + + +class words: + def GET(self): + if web.ctx.session.isAdmin == 0: + words = web.ctx.orm.query(Word).filter_by(hide = 0).order_by(Word.time.desc()).all() + else: + words = web.ctx.orm.query(Word).order_by(Word.time.desc()).all() + return render.words(words) + + +class words_create: + def GET(self): + return render.words_create() + def POST(self): + d = web.input() + w1 = Word(d) + web.ctx.orm.add(w1) + raise web.seeother('/words') + + +class word_delete: + @login_required + def GET(self,id): + w1 = web.ctx.orm.query(Word).filter_by(id = id).one() + web.ctx.orm.delete(w1) + raise web.seeother('/words') + + +class word_hide: + @login_required + def GET(self,id): + w1 = web.ctx.orm.query(Word).filter_by(id = id).one() + w1.hide = 1 + web.ctx.orm.add(w1) + raise web.seeother('/words') + + +class word_show: + @login_required + def GET(self,id): + w1 = web.ctx.orm.query(Word).filter_by(id = id).one() + w1.hide = 0 + web.ctx.orm.add(w1) + raise web.seeother('/words') + + +class articles: + def GET(self): + web.seeother('/articles/catalog/4') + + +class catalog: + def GET(self,id): + catalog = web.ctx.orm.query(Catalog).filter_by(id = id).one() + catalogs = web.ctx.orm.query(Catalog).filter_by(channel=catalog.channel).order_by(Catalog.weight).all() + articles = catalog.article + return render.catalog(catalogs, catalog, articles) + + +class articles_create: + @login_required + def GET(self, catalog_id): + catalog = web.ctx.orm.query(Catalog).filter_by(id = catalog_id).one() + catalogs = web.ctx.orm.query(Catalog).all() + return render.articles_create(catalog, catalogs) + + @login_required + def POST(self, catalog_id): + d = web.input() + a1 = Article(d) + web.ctx.orm.add(a1) + raise web.seeother('/articles/catalog/%s' % catalog_id) + + +class article_view: + def GET(self, id): + article = web.ctx.orm.query(Article).filter_by(id = id).one() + catalog = article.catalog + catalogs = web.ctx.orm.query(Catalog).filter(Catalog.channel==catalog.channel).order_by(Catalog.weight).all() + return render.article_view(catalogs, catalog, article) + + +class article_edit: + @login_required + def GET(self, id): + article = web.ctx.orm.query(Article).filter_by(id = id).one() + catalog = web.ctx.orm.query(Catalog).all() + return render.article_edit(article, catalog) + + @login_required + def POST(self, id): + d = web.input() + if d.submit == u"修改文章": + article = web.ctx.orm.query(Article).filter_by(id = id).one() + article.update(d) + web.ctx.orm.add(article) + catalog = article.catalog + web.ctx.orm.commit() + raise web.seeother('/articles/catalog/%s' % catalog.id) + if d.submit == u"删除文章": + article = web.ctx.orm.query(Article).filter_by(id = id).one() + catalog = article.catalog + web.ctx.orm.delete(article) + raise web.seeother('/articles/catalog/%s' % catalog.id) + + +class article_image_upload: + @login_required + def GET(self, id): + article = web.ctx.orm.query(Article).filter_by(id = id).one() + return render.article_image_upload(article) + + @login_required + def POST(self, id): + x = web.input(myfile={}) + filedir = STATIC_PATH + '/img' + if 'myfile' in x: + # upload file + filepath=x.myfile.filename.replace('\\','/') + filename=filepath.split('/')[-1] + filename = unicode(filename, 'utf-8') + filename = id + '_' +filename + fout = open(filedir +'/'+ filename,'w') + fout.write(x.myfile.file.read()) + fout.close() + # save filename + img = Image(filename, id) + web.ctx.orm.add(img) + raise web.seeother('/article/edit/%s'% id) + + +class image_delete: + @login_required + def POST(self, id): + img1 = web.ctx.orm.query(Image).filter_by(id = id).one() + os.remove(STATIC_PATH + '/img/' + img1.name) + web.ctx.orm.delete(img1) + raise web.seeother("/article/edit/%s" % img1.article.id) + + +class memories: + def GET(self): + ''' + catalogs = web.ctx.orm.query(Catalog).filter_by(channel=2).order_by(Catalog.weight).all() + for cat in catalogs: + cat.count = len(cat.article) + return render.memories(catalogs) + ''' + raise web.seeother('/articles/catalog/100') + + +class vedios: + def GET(self): + catalogs = web.ctx.orm.query(Catalog).filter(Catalog.channel==3).order_by(Catalog.name).all() + return render.vedios(catalogs) + + +class vedio_create: + @login_required + def GET(self): + catalogs = web.ctx.orm.query(Catalog).filter(Catalog.channel==3).order_by(Catalog.name).all() + return render.vedio_create(catalogs) + @login_required + def POST(self): + d = web.input() + print d + v1 = Vedio(d) + web.ctx.orm.add(v1) + raise web.seeother('/vedios') + + +class vedio_edit: + @login_required + def GET(self, id): + vedio = web.ctx.orm.query(Vedio).filter_by(id = id).one() + catalogs = web.ctx.orm.query(Catalog).filter(Catalog.channel==3).order_by(Catalog.name).all() + return render.vedio_edit(vedio, catalogs) + + @login_required + def POST(self, id): + d = web.input() + if d.submit == u"修改视频": + v = web.ctx.orm.query(Vedio).filter_by(id = id).one() + v.update(d) + web.ctx.orm.add(v) + raise web.seeother('/vedios') + if d.submit == u"删除视频": + v = web.ctx.orm.query(Vedio).filter_by(id = id).one() + web.ctx.orm.delete(v) + raise web.seeother('/vedios') + +class vedio_view: + def GET(self, id): + vedio = web.ctx.orm.query(Vedio).filter_by(id = id).one() + return render.vedio_view(vedio) + +class activity: + def GET(self): + return render.activity()