X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=webber.py;h=22e18428a1c587ef0f9515b7c06c2db51f8dd811;hb=3aefec56219486fdf7b6868aa882fa3459853ea7;hp=07136de40733244f7f26a0ce75918834d02c012b;hpb=fe5970b6817eca2a96df15e9d1818485a49b3a19;p=webber.git diff --git a/webber.py b/webber.py index 07136de..22e1842 100644 --- a/webber.py +++ b/webber.py @@ -50,7 +50,15 @@ class Directory(Holder): def __init__(self, **kw): Holder.__init__(self, **kw) - directories[kw["rel_path"]] = self + kw["rel_path"] = self + if self.rel_path == "": + self.rel_path = "." + directories[self.rel_path] = self + try: + self.load(os.path.join(self.abs_path, "directory.conf")) + #print self + except IOError: + pass files = {} @@ -217,7 +225,7 @@ def get_link_from(source, dest): if not isinstance(dest, File): dest = get_file_for(dest) if not dest: - print "NO DEST" + warning("unknown link from %s to %s" % (source.rel_path, dest)) return "." rel_path = relpath(directories[source.direc].abs_path, directories[dest.direc].abs_path) try: @@ -477,9 +485,9 @@ def read_file(direc, file): return_holder=False) if not contents: return + file.contents = contents log("filtering file %s" % file.rel_path, level=6) - file.contents = contents res = run_hooks("filter", direc=direc, file=file) @@ -617,7 +625,7 @@ def scan_files(): direc = directories[file.direc] - # Output-Filename "berechnen" + # "calculate" output file name if file.render and file.render == "html": file.out_path = os.path.splitext(s)[0] + ".html" @@ -682,9 +690,8 @@ def render_files(): if not file.contents: continue - # TODO: einige Fragmente sollen u.U. in eine andere - # Webseite eingebaut werden und sollten daher nicht in - # ein HTML-File landen + # TODO: make it possible to render also "fragments", e.g. + # parts that don't end up immediately in a the HTML file. contents = run_hooks("pagetemplate", direc=direc, file=file, @@ -702,12 +709,13 @@ def render_files(): except OSError: pass - # TODO: evtl. überprüfen, ob contents == f.read(), dann nicht schreiben + # TODO: check if contents == f.read(). In this case we don't + # need to save. Probably overkill. log("writing file %s" % fname_out, level=6) f = open(fname_out, "w") f.write(contents) f.close() - # TODO: Time-Stamps setzen? + os.utime(fname_out, (file.mtime, file.mtime)) #print file.mtime, file.get("ctime","?") #print direc.keys()