def generate_archive_entry(): aeid = consts.ARCHIVEID print "Generate archive as entry %d"%aeid oute = entry.empty_entry() oute['id'] = aeid oute['title'] = consts.ARCHIVE_TITLE oute['slug'] = 'archive' oute['date'] = s2d('2013-09-25 12:00:00') oute['blurb'] = 'A list of all %s posts.'%consts.TITLE oute['url'] = '' + oute['slug'] + '.html' oute['body'] = '<ul class="archive">\n' entries = entry.get_entries() for k in entry.sorted_entry_keys(entries): oute['body'] += '<li><a href="%s">%s</a></li>\n'%(entries[k]['title']) oute['body'] += '</ul>\n' entries[oute['id']] = oute
def run_template_loop(tk, baseEntry, entries, numToDo=-1): ekeys = entry.sorted_entry_keys(entries) if numToDo == -1: numToDo = len(ekeys) tm = gTemplates[tk] s = tm['template'] for i in reTemplateTag.findall(s): nv = '' if i.startswith('loopentries-'): k = i[len('loopentries-'):] for key in ekeys[:numToDo]: nv += run_template_entry(k, entries[key]) + '\n' else: nv = run_template_tag(i, baseEntry) s = re.sub('\<@'+i+'@\>', nv, s) return s
def generate_index(): print "Generate index" entries = entry.get_entries() fn = os.path.join(consts.OUTDIR, 'index.html') fp = open(fn, 'w') ie = entry.empty_entry() ie['title'] = consts.INDEX_TITLE ie['blurb'] = consts.BLURB fp.write(template.run_template_entry('htmlHead.html', ie)) fp.write(template.run_template_loop('index.html', ie, entries, consts.NUM_INDEX_ENTRIES)) fp.write(template.run_template_entry('htmlFoot.html', ie)) fp.close() # write a faked entry back to the input dir(!) fn = os.path.join(consts.INDIR, '%d.md'%consts.ARCHIVEID) fp = open(fn, 'w') fp.write(entry.ENTRY_HEADER%(ie['title'], 'index', d2s_dt(consts.NOW), ie['blurb'], ie['tags'])) ekeys = entry.sorted_entry_keys(entries) for k in ekeys[:consts.NUM_INDEX_ENTRIES]: e = entries[k] url = '%s/%s.html'%(consts.BASEURL, e['slug']) fp.write('<a href="%s">%s</a>\n\n'%(url, e['title'])) fp.close()