From: Fred L. D. <fd...@us...> - 2003-07-29 15:34:29
|
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>)|' |