maidstone-hackspace/site/generate.py

66 lines
1.9 KiB
Python

import os
import sys
import codecs
import argparse
sys.path.append(os.path.abspath('../../../scaffold/'))
sys.path.insert(0,os.path.abspath('../../../scaffold/'))
from scaffold import web
web.load_widgets('widgets')
from libs.rss_fetcher import feed_reader
import constants as site
import pages
from pages import web
from pages import header, footer
from pages import blog
from pages import competition
from pages import donate
from config.settings import *
def examples():
""" page for testing new components"""
header()
#this is as simple as you can get
web.page.section('put some content on the page')
#render to the template
web.template.body.append(web.page.render())
#finish of the page
return footer()
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Generate static pages')
parser.add_argument('--folder', dest='folder', default='./html/' ,nargs='?', help='output folder')
#module, function, output file
pages_list = (
('pages.homepage', 'index', 'index.html'),
('pages.blog', 'index', 'blog.html'),
('pages.chat', 'index', 'chat.html'),
('pages.donate', 'index', 'donate.html'),
('pages.competition', 'index', 'competition.html'))
args = parser.parse_args()
print args.folder
for module, page, filename in pages_list:
page_module = __import__(module, globals(), locals(), page)
with codecs.open(args.folder + '%s' % filename, 'w', "utf-8") as fp:
try:
fp.write(getattr(page_module, page)().decode('utf-8'))
print('Successfully Generated %s%s' % (args.folder, filename))
except Exception as e:
print('Failed to Generate %s%s' % (args.folder, filename))
import traceback
exc_type, exc_value, exc_traceback = sys.exc_info()
traceback.print_tb(exc_traceback, limit=5, file=sys.stdout)