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'
(.*)')
Giulio@722:
Giulio@722: chapters = (sorted(glob.glob('../ch*.xml')) +
Giulio@722: sorted(glob.glob('../app*.xml')))
Giulio@722:
Giulio@776: fp = open('index-read.html.in', 'w', encoding='utf-8')
Giulio@722:
Giulio@722: print('''
Giulio@722:
Giulio@722: ''', 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@776: for line in open(c, encoding='utf-8'):
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('- %(date)s
%(num)s. %(title)s ' % args, file=fp)
Giulio@722: break
Giulio@722:
Giulio@722: print('
', file=fp)
Giulio@722:
Giulio@722: fp.close()