You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

48 lines
1.3 KiB

#!/bin/python
from __future__ import with_statement
import os
import sys
from glob import glob
from datetime import datetime
with open('header.html') as f:
header = f.read().decode('utf-8')
with open('footer.html') as f:
footer = f.read().decode('utf-8')
mails = sorted(glob('*.raw'))
latest = None
def format_title(name):
return datetime.strptime(name, '%Y-%m-%d').strftime('%B') + ' Newsletter'
navigation = u'<ul id="nav">'
navigation += u'<li><span class="title">Pad.ma Newsletter</span></li>'
for mail in reversed(mails):
name = mail[:-4]
navigation += u'<li><a href="%s.html">%s</a></li>' % (name, format_title(name))
if not latest:
latest = "%s.html" % name
navigation += u'</ul>'
for mail in reversed(mails):
name = mail[:-4]
print name
title = format_title(name)
nav = navigation.replace(u'<li><a href="%s.html">%s</a></li>' % (name, title), u'<li>%s</li>' % title)
with open(mail) as f:
body = f.read().decode('utf-8')
body = '<div id="content">' + body + '</div>'
with open('%s.html' % name, 'w') as f:
f.write(header.encode('utf-8'))
f.write(nav.encode('utf-8'))
f.write(body.encode('utf-8'))
f.write(footer.encode('utf-8'))
os.system('ln -sf "%s" index.html' % latest)