X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=webber.py;h=9913e81d0d4041e83149d6fa00982487452ebcf5;hb=2c9c814b53a4ba5977eed442a2ef227fea401dfb;hp=22e18428a1c587ef0f9515b7c06c2db51f8dd811;hpb=3aefec56219486fdf7b6868aa882fa3459853ea7;p=webber.git diff --git a/webber.py b/webber.py index 22e1842..9913e81 100644 --- a/webber.py +++ b/webber.py @@ -60,6 +60,9 @@ class Directory(Holder): except IOError: pass + def __repr__(self): + return "" % self.rel_path + files = {} current_file = None @@ -128,6 +131,9 @@ class File(Holder): self.contents = "".join(txt) + def __repr__(self): + return "" % self.rel_path + _get_file_for_cache = {} def get_file_for(name): @@ -147,6 +153,10 @@ def get_file_for(name): #print " via linktitle:", s _get_file_for_cache[name] = f return f + if f.title == name: + #print " via title:", s + _get_file_for_cache[name] = f + return f except: pass # Allow exact match as well @@ -215,8 +225,8 @@ def relpath(base_path, target): def get_link_from(source, dest): - #print "get_link_from", source, dest - #print source + if dest is None: + raise KeyError if not isinstance(source, File): source = get_file_for(source) if not source: @@ -445,12 +455,14 @@ def iso_to_time(val): return int(time.mktime(t)) @set_function("format_date") -def format_date(timestamp): - return time.strftime(cfg.date_format, time.localtime(timestamp)) +def format_date(timestamp, format=None): + if not format: + format = cfg.date_format + return time.strftime(format, time.localtime(timestamp)) @set_function("get_time") -def get_time(): - return format_date(time.time()) +def get_time(format=None): + return format_date(time.time(), format) @set_function("get_current_file") def get_current_file(): @@ -519,7 +531,7 @@ def walk_tree(dirpath): full_path = os.path.join(dirpath, s) ok = True if os.path.isdir(full_path): - for e in cfg.exclude_dir: + for e in cfg.exclude_dirs: if fnmatch.fnmatchcase(s, e): log("ignoring directory %s" % s, level=7) ok = False @@ -777,7 +789,12 @@ def main(): # link contents of webber.ini into cfg and set some defaults, # then let plugins fixup things in cfg.* cfg.inheritFrom(options) - cfg.setDefault("exclude_dir", ["plugins"]) + cfg.setDefault("exclude_dirs", []) + cfg.setDefault("exclude_files", ["webber.conf", "directory.conf", "*.tmpl"]) + cfg.setDefault("copy_files", []) + cfg.setDefault("input_encoding", "iso-8859-1") + cfg.setDefault("output_encoding", "iso-8859-1") + cfg.setDefault("template", "default") run_hooks("checkconfig") run_hooks("start")