maidstone-hackspace/website/generate.py

57 lines
1.7 KiB
Python

import os
import sys
import codecs
import argparse
from scaffold import web
web.load_widgets('website/widgets')
from website.pages import web
from website.pages import header, footer
from website.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()
def generate_rss():
pass
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Generate static pages')
parser.add_argument('--folder', dest='folder', default='./static/html/' ,nargs='?', help='output folder')
#module, function, output file
pages_list = (
('pages.homepage', 'index', 'index.htm'),
('pages.blog', 'index', 'blog.htm'),
('pages.chat', 'index', 'chat.htm'),
('pages.donate', 'index', 'donate.htm'),
('pages.competition', 'index', 'competition.htm'))
args = parser.parse_args()
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=10, file=sys.stdout)