Update of /cvsroot/ht2html/ht2html
In directory sc8-pr-cvs1:/tmp/cvs-serv28676
Modified Files:
HTParser.py
Log Message:
Fill in additional information from index.ht; this allows the author
and author-email to be loaded from a single place for the entire
directory. Specific files can still override this if desired.
Index: HTParser.py
===================================================================
RCS file: /cvsroot/ht2html/ht2html/HTParser.py,v
retrieving revision 2.0
retrieving revision 2.1
diff -C2 -d -r2.0 -r2.1
*** HTParser.py 22 Mar 2002 17:45:40 -0000 2.0
--- HTParser.py 29 Jul 2003 15:34:26 -0000 2.1
***************
*** 8,14 ****
from types import StringType
-
class HTParser(rfc822.Message):
def __init__(self, filename, default_author=None, default_email=None):
self.__filename = filename
--- 8,16 ----
from types import StringType
class HTParser(rfc822.Message):
+
+ DEFAULTS_FILE = "index.ht"
+
def __init__(self, filename, default_author=None, default_email=None):
self.__filename = filename
***************
*** 16,25 ****
self.__extraheaders = {}
rfc822.Message.__init__(self, fp)
# Massage some standard headers we require.
#
# title
if not self.has_key('title'):
! parts = self.__filename.split(os.sep)
! self.__extraheaders['title'] = parts[-1]
# author
if not self.has_key('author'):
--- 18,29 ----
self.__extraheaders = {}
rfc822.Message.__init__(self, fp)
+ basename = os.path.basename(self.__filename)
# Massage some standard headers we require.
#
# title
if not self.has_key('title'):
! self.__extraheaders['title'] = basename
! if basename != self.DEFAULTS_FILE:
! self.__load_defaults()
# author
if not self.has_key('author'):
***************
*** 57,61 ****
# might be using an older rfc822
def get(self, name, default=None):
! if self.has_key(name):
return self.getheader(name)
elif self.__extraheaders.has_key(name):
--- 61,65 ----
# might be using an older rfc822
def get(self, name, default=None):
! if rfc822.Message.has_key(self, name):
return self.getheader(name)
elif self.__extraheaders.has_key(name):
***************
*** 64,67 ****
--- 68,75 ----
return default
+ def has_key(self, name):
+ return (rfc822.Message.has_key(self, name)
+ or self.__extraheaders.has_key(name))
+
def process_sidebar(self):
# first process all link files. Either we hard code the use of
***************
*** 87,91 ****
self.sidebar.append(('mailto:' + email, author))
! # regular expressions used in massage()
cre = re.compile(
r'(<h3>(?P<h3>.*?)</h3>)|'
--- 95,109 ----
self.sidebar.append(('mailto:' + email, author))
! def __load_defaults(self):
! dir = os.path.dirname(self.__filename)
! if not os.path.isfile(os.path.join(dir, self.DEFAULTS_FILE)):
! return
! fp = open(os.path.join(dir, self.DEFAULTS_FILE))
! msg = rfc822.Message(fp)
! for k, v in msg.items():
! if not self.__extraheaders.has_key(k):
! self.__extraheaders[k] = v
!
! # regular expressions used in __parse()
cre = re.compile(
r'(<h3>(?P<h3>.*?)</h3>)|'
|