nmbug-status: Optionally load the header and footer templates from the config

For folks that don't like the default templates for whatever reason.
This commit is contained in:
W. Trevor King 2014-05-31 15:20:27 -07:00 committed by David Bremner
parent f10024f30d
commit 7f2bbe93a5
2 changed files with 36 additions and 16 deletions

15
NEWS
View file

@ -7,6 +7,21 @@ Library changes
Add return status to notmuch_database_close and
notmuch_database_destroy
nmbug-status
------------
`nmbug-status` can now optionally load header and footer templates
from the config file. Use something like:
{
"meta": {
"header": "<!DOCTYPE html>\n<html lang="en">\n...",
"footer": "</body></html>",
...
},
...
},
Notmuch 0.18.1 (2014-06-25)
===========================

View file

@ -275,20 +275,8 @@ parser.add_argument('--get-query', help='get query for view',
args = parser.parse_args()
config = read_config(path=args.config)
now = datetime.datetime.utcnow()
context = {
'date': now,
'datetime': now.strftime('%Y-%m-%d %H:%M:%SZ'),
'title': config['meta']['title'],
'blurb': config['meta']['blurb'],
'encoding': _ENCODING,
'inter_message_padding': '0.25em',
'border_radius': '0.5em',
}
_PAGES['text'] = Page()
_PAGES['html'] = HtmlPage(
header='''<!DOCTYPE html>
header_template = config['meta'].get('header', '''<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset={encoding}" />
@ -338,13 +326,30 @@ _PAGES['html'] = HtmlPage(
{blurb}
</p>
<h3>Views</h3>
'''.format(**context),
footer='''
''')
footer_template = config['meta'].get('footer', '''
<hr>
<p>Generated: {datetime}
</body>
</html>
'''.format(**context),
''')
now = datetime.datetime.utcnow()
context = {
'date': now,
'datetime': now.strftime('%Y-%m-%d %H:%M:%SZ'),
'title': config['meta']['title'],
'blurb': config['meta']['blurb'],
'encoding': _ENCODING,
'inter_message_padding': '0.25em',
'border_radius': '0.5em',
}
_PAGES['text'] = Page()
_PAGES['html'] = HtmlPage(
header=header_template.format(**context),
footer=footer_template.format(**context),
)
if args.list_views: