import sys
import os
-from string import *
+import string
+
+def gulp_file (fn):
+ f = open (fn)
+ return f.read ()
import __main__
import glob
-import regex
-latex_author_re = regex.compile('\\author{\([^}]+\)}')
-latex_title_re = regex.compile('\\title{\([^}]+\)}')
+import re
class Latex_head:
def __init__ (self):
def read_latex_header (fn):
s = gulp_file (fn)
- i = regex.search( '\\\\begin{document}', s)
-
- if i < 0:
- sys.stderr.write( 'Huh? empty file?')
- s = '\\author{(unknown)}\\title{(unknown)}'
-
- s = s[:i]
- s = regsub.gsub('%.*$', '', s)
- s = regsub.gsub('\n', ' ', s)
-
header = Latex_head()
- header.filename= fn;
+ m = re.search(r'\\author{([^}]+)}', s)
+ if m:
+ header.author = m.group (1)
- if latex_author_re.search (s) == -1 :
- sys.stderr.write( 'huh? No author?')
- header.author = 'unknown'
- else:
- header.author = latex_author_re.group (1)
- if latex_title_re.search (s) == -1:
- sys.stderr.write( 'huh? No title?')
- header.title = 'unknown'
+ m = re.search (r'\\title{([^}]+)}',s )
+ if m:
+ header.title = m.group (1)
else:
- header.title = latex_title_re.group (1)
+ header.title = 'No title'
+
header.outfile = fn
- header.outfile = regsub.gsub ('\.latex$', '.ps.gz', header.outfile)
- header.outfile = regsub.gsub ('\.tex$', '.ps.gz', header.outfile)
- header.outfile = regsub.gsub ('\.doc$', '.ps.gz', header.outfile)
+ header.outfile = re.sub ('\.latex$', '.ps.gz', header.outfile)
+ header.outfile = re.sub ('\.tex$', '.ps.gz', header.outfile)
+ header.outfile = re.sub ('\.doc$', '.ps.gz', header.outfile)
header.format = 'gzipped postscript'
return header
-bib_author_re = regex.compile('% *AUTHOR *= *\(.*\)$')
-bib_title_re = regex.compile('% *TITLE *= *\(.*\)$')
-
def bib_header (fn):
s = gulp_file (fn)
- if bib_author_re.search (s) == -1 :
- sys.stderr.write ('gulped file: ' + fn + '\n')
- raise 'huh?'
+ m = re.search ('% *AUTHOR *= *(.*)$',s)
+ header = Latex_head()
+ if m:
+ header.author = m.group (1)
- header = Latex_head()
- header.filename= fn;
- header.author = bib_author_re.group (1)
- if bib_title_re.search (s) == -1:
- sys.stderr.write ('gulped file: ' + fn + '\n')
- raise 'huh?'
- header.title = bib_title_re.group (1)
- header.outfile = regsub.gsub ( '\.bib$', '.html' , fn)
+
+ m = re.search ('% *TITLE *= *(.*)$',s )
+ if m:
+ header.title = m.group (1)
+ else:
+ header.title = '(bibliography without title)'
+
+ header.outfile = re.sub ( '\.bib$', '.html' , fn)
header.format = 'HTML'
return header
def read_pod_header (fn):
header = Latex_head ()
s = gulp_file (fn)
- i = regex.search( '[^\n \t]', s)
+ i = re.search( '[^\n \t]', s)
s = s[i:]
- i = regex.search( '\n\n', s)
+ i = re.search( '\n\n', s)
s = s[i+2:]
if i < 0:
sys.stderr.write ('gulped file: ' + fn + '\n')
raise 'huh?'
- i = regex.search( '\n\n', s)
+ i = re.search( '\n\n', s)
header.title = s[:i]
header.filename = fn
- header.outfile = regsub.gsub ('\.pod$', '.html', fn)
+ header.outfile = re.sub ('\.pod$', '.html', fn)
return header
def read_texinfo_header (fn):
header = Latex_head ()
s = gulp_file (fn)
- i = regex.search( '@node ', s)
- s = s[i+5:]
- i = regex.search( ',', s)
- if i < 0:
- sys.stderr.write ('gulped file: ' + fn + '\n')
- raise 'huh?'
- header.title = s[:i]
+ m = re.search( '@settitle (.*$)', s)
+ if m:
+ header.title = m.group (1)
header.filename = fn
- header.outfile = regsub.gsub ('\.texinfo$', '.html', fn)
+ header.outfile = re.sub ('\.tely', '.html', fn)
header.format = 'HTML'
- return header
-
-# urg
-# should make a 'next_parens'
-yo_article_re = regex.compile('article(\\([^)]*\\))[ \t\n]*(\\([^)]*\\))')
-yo_report_re = regex.compile('report(\\([^)]*\\))[\t\n ]*(\\([^)]*\\))')
-yo_sect_re = regex.compile('sect(\\([^)]*\\))')
-yo_chap_re = regex.compile('sect(\\([^)]*\\))')
+ return header
-def read_yo_header (fn):
+def read_tely_header (fn):
header = Latex_head ()
s = gulp_file (fn)
- if 0:
- pass
- elif yo_report_re.search (s) <> -1:
- header.author = yo_report_re.group(2)
- header.title = yo_report_re.group(1)
- elif yo_article_re.search (s) <> -1:
- header.author = yo_article_re.group(2)
- header.title = yo_article_re.group(1)
- elif yo_chap_re.search (s) <> -1:
- header.title = yo_chap_re.group (1)
- elif yo_sect_re.search (s) <> -1:
- header.title = yo_sect_re.group (1)
+ m = re.search( '@settitle (.*$)', s)
+ if m:
+ header.title = m.group (1)
header.filename = fn
- header.outfile = regsub.gsub ('\.yo$', '.html', fn)
+ header.outfile = re.sub ('\.tely', '.html', fn)
header.format = 'HTML'
- return header
+ return header
def print_html_head (l,o,h):
"Generate html index file for FILE...\n\n"
+ "Options:\n"
+ " -h, --help print this help\n"
- + " -p, --package=DIR specify package\n"
)
sys.exit (0)
import getopt
(options, files) = getopt.getopt(sys.argv[1:],
- 'e:hp:', ['help', 'prefix=', 'package=', 'title='])
+ 'e:h', ['help', 'prefix=', 'title='])
tex = ''
output =''
title = a
elif o == '-h' or o == '--help':
help ()
- elif o == '-p' or o == '--package':
- topdir = a
-sys.path.append (topdir + '/stepmake/bin')
-from packagepython import *
-package = Package (topdir)
-packager = Packager ()
l = sys.stdout
for x in files:
- if regex.search ('\\.bib$', x) <> -1:
+ if re.search ('\\.bib$', x) :
head = bib_header (x)
- elif regex.search ('\\.pod$', x) <> -1:
+ elif re.search ('\\.pod$', x) :
head = read_pod_header (x)
- elif regex.search ('\\.texinfo$', x) <> -1:
+ elif re.search ('\\.texinfo$', x) :
head = read_texinfo_header (x)
- elif regex.search ('\\.yo$', x) <> -1:
- head = read_yo_header (x)
+ elif re.search ('\\.tely$', x):
+ head = read_tely_header (x)
else:
head = read_latex_header (x)
if head.title == '':