Giulio@747: # This script works with Python 3.0 or above Giulio@722: Giulio@722: import glob, os, re Giulio@722: Giulio@722: chapter_re = re.compile(r'<(chapter|appendix|preface)\s+id="([^"]+)">') Giulio@722: filename_re = re.compile(r'<\?dbhtml filename="([^"]+)"\?>') Giulio@722: title_re = re.compile(r'<title>(.*)</title>') Giulio@722: Giulio@722: chapters = (sorted(glob.glob('../ch*.xml')) + Giulio@722: sorted(glob.glob('../app*.xml'))) Giulio@722: Giulio@722: fp = open('index-read.html.in', 'w') Giulio@722: Giulio@722: print(''' Giulio@722: <div class="navheader"><h1 class="booktitle">Mercurial: la guida definitiva<div class="authors">di Bryan O'Sullivan</div></h1></div> Giulio@722: <div class="book"><ul class="booktoc">''', file=fp) Giulio@722: Giulio@722: ch = 0 Giulio@722: app = 0 Giulio@722: ab = 0 Giulio@722: for c in chapters: Giulio@722: filename = None Giulio@722: title = None Giulio@722: chapid = None Giulio@722: chaptype = None Giulio@722: for line in open(c): Giulio@722: m = chapter_re.search(line) Giulio@722: if m: Giulio@722: chaptype, chapid = m.groups() Giulio@722: m = filename_re.search(line) Giulio@722: if m: Giulio@722: filename = m.group(1) Giulio@722: m = title_re.search(line) Giulio@722: if m: Giulio@722: title = m.group(1) Giulio@722: if filename and title and chapid: Giulio@722: if chaptype == 'appendix': Giulio@722: num = chr(ord('A') + app) Giulio@722: app += 1 Giulio@722: else: Giulio@722: num = ch Giulio@722: ch += 1 Giulio@722: ab += 1 Giulio@722: date = os.popen('hg log -l1 --template "{date|isodate}" ' + c).read().split(None, 1)[0] Giulio@722: args = { Giulio@722: 'ab': "ab"[ab % 2], Giulio@722: 'date': date, Giulio@722: 'chapid': chapid, Giulio@722: 'num': num, Giulio@722: 'filename': filename, Giulio@722: 'title': title, Giulio@722: } Giulio@722: print('<li class="zebra_%(ab)s"><span class="chapinfo">%(date)s<a href="/feeds/comments/%(chapid)s/"><img src="figs/rss.png"/></a></span>%(num)s. <a href="%(filename)s">%(title)s</a></li>' % args, file=fp) Giulio@722: break Giulio@722: Giulio@722: print('</ul></div>', file=fp) Giulio@722: Giulio@722: fp.close()