comparison bitsyblog/bitsyblog.py @ 50:cf77bd13aad9

add support for headers
author k0s <k0scist@gmail.com>
date Sat, 26 Dec 2009 21:41:00 -0500
parents 3fe54d84b9be
children c7819dbf7733
comparison
equal deleted inserted replaced
49:4efeb3ecab7a 50:cf77bd13aad9
29 from blog import FileBlog 29 from blog import FileBlog
30 from cStringIO import StringIO 30 from cStringIO import StringIO
31 from docutils.utils import SystemMessage 31 from docutils.utils import SystemMessage
32 from genshi.builder import Markup 32 from genshi.builder import Markup
33 from genshi.template import TemplateLoader 33 from genshi.template import TemplateLoader
34 #from lxml import etree
35 from pkg_resources import resource_filename 34 from pkg_resources import resource_filename
36 from urlparse import urlparse 35 from urlparse import urlparse
37 from user import FilespaceUsers 36 from user import FilespaceUsers
38 from webob import Request, Response, exc 37 from webob import Request, Response, exc
39 38
51 defaults = { 'date_format': '%H:%M %F', 50 defaults = { 'date_format': '%H:%M %F',
52 'file_dir': os.path.dirname(__file__), 51 'file_dir': os.path.dirname(__file__),
53 'subject': '[ %(date)s ]:', 52 'subject': '[ %(date)s ]:',
54 'n_links': 5, # number of links for navigation 53 'n_links': 5, # number of links for navigation
55 'site_name': 'bitsyblog', 54 'site_name': 'bitsyblog',
55 'header': None,
56 'auto_reload': 'True', 56 'auto_reload': 'True',
57 'help_file': None, 57 'help_file': None,
58 } 58 }
59 59
60 60
76 76
77 # template renderer 77 # template renderer
78 self.loader = TemplateLoader(resource_filename(__name__, 'templates'), 78 self.loader = TemplateLoader(resource_filename(__name__, 'templates'),
79 auto_reload=self.auto_reload.lower()=='true') 79 auto_reload=self.auto_reload.lower()=='true')
80 80
81 # static file renderer
82
83 # helpfile 81 # helpfile
84 if self.help_file and os.path.exists(self.help_file): 82 if self.help_file and os.path.exists(self.help_file):
85 help = file(self.help_file).read() 83 help = file(self.help_file).read()
86 self.help = docutils.core.publish_string(help, 84 self.help = docutils.core.publish_string(help,
87 writer_name='html', 85 writer_name='html',
88 settings_overrides={'report_level': 5}) 86 settings_overrides={'report_level': 5})
89 87
88 # header
89 if self.header:
90 self.header = Markup(self.header)
91
90 # for BitsyAuth 92 # for BitsyAuth
91 self.newuser = self.users.new 93 self.newuser = self.users.new
92 94
93 ### methods dealing with HTTP 95 ### methods dealing with HTTP
94 96
98 # genshi data dictionary 100 # genshi data dictionary
99 request.environ['data'] = { 'site_name': self.site_name, 101 request.environ['data'] = { 'site_name': self.site_name,
100 'request': request, 102 'request': request,
101 'link': self.link, 103 'link': self.link,
102 'logo': self.logo(request), 104 'logo': self.logo(request),
105 'header': self.header,
103 'user_url': self.user_url, 106 'user_url': self.user_url,
104 'permalink': self.permalink } 107 'permalink': self.permalink }
105 108
106 res = self.response_functions.get(request.method, self.error())(request) 109 res = self.response_functions.get(request.method, self.error())(request)
107 return res(environ, start_response) 110 return res(environ, start_response)