#!/usr/bin/python
#
# Copyright (c) 2011-2012 David Bremner <david@tethera.net>
-# License: Same as notmuch
+#
# dependencies
# - python 2.6 for json
# - argparse; either python 2.7, or install separately
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see http://www.gnu.org/licenses/ .
+
+"""Generate HTML for one or more notmuch searches.
+
+Messages matching each search are grouped by thread. Each message
+that contains both a subject and message-id will have the displayed
+subject link to the Gmane view of the message.
+"""
from __future__ import print_function
from __future__ import unicode_literals
def _slug(self, string):
return self._slug_regexp.sub('-', string)
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--text', help='output plain text format',
+ action='store_true')
+parser.add_argument('--config', help='load config from given file',
+ metavar='PATH')
+parser.add_argument('--list-views', help='list views',
+ action='store_true')
+parser.add_argument('--get-query', help='get query for view',
+ metavar='VIEW')
+
+args = parser.parse_args()
+
+config = read_config(path=args.config)
_PAGES['text'] = Page()
_PAGES['html'] = HtmlPage(
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset={encoding}" />
- <title>Notmuch Patches</title>
+ <title>{title}</title>
<style media="screen" type="text/css">
table {{
border-spacing: 0;
tbody:nth-child(4n+3) tr td {{
background-color: #bce;
}}
+ hr {{
+ border: 0;
+ height: 1px;
+ color: #ccc;
+ background-color: #ccc;
+ }}
</style>
</head>
<body>
-<h2>Notmuch Patches</h2>
-<p>
-Generated: {date}<br />
-For more infomation see <a href="http://notmuchmail.org/nmbug">nmbug</a>
+<h2>{title}</h2>
+{blurb}
</p>
<h3>Views</h3>
-'''.format(date=datetime.datetime.utcnow().date(),
+'''.format(title=config['meta']['title'],
+ blurb=config['meta']['blurb'],
encoding=_ENCODING,
inter_message_padding='0.25em',
border_radius='0.5em'),
- footer='</body>\n</html>\n',
+ footer='''
+<hr>
+<p>Generated: {date}
+</body>
+</html>
+'''.format(date=datetime.datetime.utcnow().date())
)
-
-parser = argparse.ArgumentParser()
-parser.add_argument('--text', help='output plain text format',
- action='store_true')
-parser.add_argument('--config', help='load config from given file',
- metavar='PATH')
-parser.add_argument('--list-views', help='list views',
- action='store_true')
-parser.add_argument('--get-query', help='get query for view',
- metavar='VIEW')
-
-args = parser.parse_args()
-
-config = read_config(path=args.config)
-
if args.list_views:
for view in config['views']:
print(view['title'])