belaran@976: # This script works with Python 3.0 or above
belaran@976:
belaran@976: import glob, os, re
belaran@976:
belaran@976: chapter_re = re.compile(r'<(chapter|appendix|preface|bibliography)\s+id="([^"]+)">')
belaran@976: filename_re = re.compile(r'<\?dbhtml filename="([^"]+)"\?>')
belaran@976: title_re = re.compile(r'
(.*)')
belaran@976:
belaran@976: chapters = (sorted(glob.glob('../ch*.xml')) +
belaran@976: sorted(glob.glob('../app*.xml')) +
belaran@976: sorted(glob.glob('../biblio*.xml')))
belaran@976:
belaran@976: fp = open('index-read.html.in', 'w', encoding='utf-8')
belaran@976:
belaran@976: print('''
belaran@976:
belaran@976: ''', file=fp)
belaran@976:
belaran@976: ch = 0
belaran@976: app = 0
belaran@976: ab = 0
belaran@976: for c in chapters:
belaran@976: filename = None
belaran@976: title = None
belaran@976: chapid = None
belaran@976: chaptype = None
belaran@976: for line in open(c, encoding='utf-8'):
belaran@976: m = chapter_re.search(line)
belaran@976: if m:
belaran@976: chaptype, chapid = m.groups()
belaran@976: m = filename_re.search(line)
belaran@976: if m:
belaran@976: filename = m.group(1)
belaran@976: m = title_re.search(line)
belaran@976: if m:
belaran@976: title = m.group(1)
belaran@976: if filename and title and chapid:
belaran@976: if chaptype == 'bibliography':
belaran@976: num = ''
belaran@976: elif chaptype == 'appendix':
belaran@976: num = str(chr(ord('A') + app)) + '. '
belaran@976: app += 1
belaran@976: else:
belaran@976: num = str(ch) + '. '
belaran@976: ch += 1
belaran@976: if '&' in title:
belaran@976: title = title.replace('&', '\&')
belaran@976: ab += 1
belaran@976: date = os.popen('hg log -l1 --template "{date|isodate}" ' + c).read().split(None, 1)[0]
belaran@976: args = {
belaran@976: 'ab': "ab"[ab % 2],
belaran@976: 'date': date,
belaran@976: # 'chapid': chapid,
belaran@976: 'num': num,
belaran@976: 'filename': filename,
belaran@976: 'title': title,
belaran@976: }
belaran@976: print('- %(date)s%(num)s%(title)s
' % args, file=fp)
belaran@976: break
belaran@976:
belaran@976: print('
', file=fp)
belaran@976:
belaran@976: fp.close()