]> oss.titaniummirror.com Git - webber.git/blobdiff - webber.py
doc: give a little overview about webber's function
[webber.git] / webber.py
index 07136de40733244f7f26a0ce75918834d02c012b..22e18428a1c587ef0f9515b7c06c2db51f8dd811 100644 (file)
--- 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()