1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #main.py import os, config, lib from bottle import run, route, template from controllers import login, posting, post, author from models import postdb from public import setup @route ( '/' ) def main(): config.kargs[ 'blogTitle' ] = "គេហទំព័រខ្មែរអង្គរ" config.kargs[ 'posts' ] = postdb.select(config.kargs[ 'frontPagePostLimit' ]) config.kargs[ 'thumbs' ] = lib.getPostThumbs(config.kargs[ 'posts' ]) return template( 'home' , data = config.kargs) if 'DYNO' in os.environ: run(host = '0.0.0.0' , port = os.environ.get( 'PORT' , 9000 )) else : run(host = 'localhost' , port = 9000 , debug = True , reloader = True ) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #lib.py from bs4 import BeautifulSoup def getPostThumbs(posts): postContents = [BeautifulSoup(post[ 6 ], "html.parser" ) for post in posts] images = [] for postContent in postContents: image = postContent.find( 'img' ) if not image: newTag = postContent.new_tag( 'img' , src = "/static/images/no-image.png" ) images.append(newTag) else : images.append(image) thumbs = [image[ 'src' ] for image in images] return thumbs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | <!--views/dashboard/footer.tpl--> <style> .footer{ min-height : 150px ; background : rgb ( 247 , 247 , 248 ); padding : 0px ; box-sizing: border-box; margin : 15px auto ; } .post-panel{ padding : 15px ; background : rgb ( 247 , 247 , 248 ); font : 16px / 1.5 Limonf 3 , Oswald; display : grid; grid-template-columns: calc( 25% - 11.25px ) calc( 25% - 11.25px ) calc( 25% - 11.25px ) calc( 25% - 11.25px ); grid-gap: 15px ; margin-bottom : 15px ; } .post-panel:last-child{ margin-bottom : 0 ; } .post-panel .post-thumb img{ width : 100% ; float : left ; margin-bottom : 5px ; } .post-panel .post-title{ text-align : left ; display : block ; } .post-panel .post-author{ text-align : right ; } .post-panel .post-date{ font : bold 14px / 1.5 'Lucida Sans' ; } @media only screen and ( max-width : 600px ){ .post-panel{ grid-template-columns: 100% ; } } </style> < footer class = "footer region" > < div class = "post-panel" > %if data['posts']: %for v in range(len(data['posts'])): < div class = "post-outer" > < a class = "post-thumb" href = "/post/{{data['posts'][v][0]}}" >< img src = "{{data['thumbs'][v]}}" /></ a > < div class = "title-wrapper" > < a class = "post-title" href = "/post/{{data['posts'][v][0]}}" >{{data['posts'][v][1]}}</ a > %postdate = data['posts'][v][3].strftime("%d-%m-%Y") < div class = "post-date" >{{postdate}}</ div > </ div > </ div > %end %end </ div > </ footer > </ div > <!--site--> </ body > </ html > |
GitHub: https://github.com/Sokhavuth/kwblog
Heroku: https://khmerweb-kwblog.herokuapp.com/